/*
 * TextViewer.java
 *
 * Created on January 11, 2006, 4:21 PM
 *
 * To change this template, choose Tools | Options and locate the template under
 * the Source Creation and Management node. Right-click the template and choose
 * Open. You can then make changes to the template in the Source Editor.
 */

package usda.weru.erosion;
import de.schlichtherle.truezip.file.TFileReader;
import de.schlichtherle.truezip.file.TFile;
import java.io.BufferedReader;
import java.io.IOException;
import usda.weru.util.wepsFileChooser2.WepsFileChooser2;


/**
 *
 * @author wjr
 */
public class TextViewer extends usda.weru.erosion.gui.TextViewer_n {
    private static final long serialVersionUID = 1L;
    
    /** Creates a new instance of TextViewer */
    public TextViewer() {
        super();
    }

	/**
	 *
	 * @param inpFile
	 */
	public TextViewer(TFile inpFile) {
		super();
//		String curFileName = inpFile.getAbsolutePath();
//		File datf = new File(inpFile.getParent(), inpFile.getName().replace(DataStore.InputExt, fileExt));
//		if (!datf.exists()) {
        if (!inpFile.exists()) {
			javax.swing.JOptionPane.showMessageDialog(this, "File " + inpFile.getName() + " not found\n"
										  + "Make a new run or open an existing one", "File not found",
										  javax.swing.JOptionPane.ERROR_MESSAGE);
			return;
		}
		readTextFile(inpFile);
		setTitle("Text Viewer " + inpFile.getName());
		setSize(600,500);
		try {
			JTA_text.setCaretPosition(JTA_text.getLineStartOffset( 0 ) );
		} catch (javax.swing.text.BadLocationException e) {
			//System.out.println("TV: " + e);
		}
//		pack();
////System.out.println("TV_TV: " + JTA_text.getPreferredSize());		
		//System.out.println("TV_TV: " + JSP_text.getViewport().getViewPosition());
		JSP_text.getViewport().setViewPosition(new java.awt.Point(0, 1000));
		//System.out.println("TV_TV: " + JSP_text.getViewport().getViewPosition());
//		JSP_text.getViewport().setViewPosition(new java.awt.Point(0, JTA_text.getPreferredSize().height-1));
//		JTA_text.scrollRectToVisible(new java.awt.Rectangle(0, 500, 1, 1));
		setVisible(true);
	}
    
	/**
	 *
	 * @param text
	 * @param title
	 */
	public TextViewer(String text, String title) {
		super();
		setTitle("Text Viewer " + title);
		JTA_text.append(text);
		setSize(500,300);
		try {
			JTA_text.setCaretPosition(JTA_text.getLineStartOffset( 0 ) );
		} catch (javax.swing.text.BadLocationException e) {
			//System.out.println("TV: " + e);
		}
		JSP_text.getViewport().setViewPosition(new java.awt.Point(0, 1000));
		setVisible(true);
	}

	/**
	 *
	 * @param args
	 */
	public static void main(String[] args) {
		WepsFileChooser2 chooser = new WepsFileChooser2("c:/weps.wrk/test");
//		ErosionFileFilter filter = new ErosionFileFilter();
//		filter.addExtension("in");
//		filter.setDescription("Erosion Input Files");
//		chooser.setFileFilter(filter);
		int returnVal = chooser.showDialog(null);
		if (returnVal == WepsFileChooser2.APPROVE_OPTION) {
			//System.out.println("You chose to open this file: " +
		//					   chooser.getSelectedFile().getName());
			/*TextViewer tv =*/ new TextViewer(new TFile(chooser.getSelectedFile()));
		}
    }

	/**
	 *
	 * @param inpFile
	 */
	public void readTextFile(TFile inpFile) {

		int lineNum = 0;

		try {
			BufferedReader in = new BufferedReader(new TFileReader(inpFile));
			String temp;
			while((temp = in.readLine())!=null) {
				JTA_text.append(temp + "\n");
				lineNum++;
			}
			in.close();
		} catch (IOException f) {
			//System.err.println("TV_rTF : " + lineNum + " " + f);
		}
	}

	/**
	 *
	 * @param evt
	 */
	@Override
	protected void formComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_formComponentResized

		JP_main.setSize(this.getSize().width-10, this.getSize().height-30);
		JSP_text.setSize(this.getSize().width-10, this.getSize().height-35);
		validate();
		repaint();
	}//GEN-LAST:event_formComponentResized

}
