Package pruebas

Source Code of pruebas.ReadingFile

package pruebas;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Vector;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.KeyStroke;
import javax.swing.border.Border;
import javax.swing.border.TitledBorder;

import compilador.archivo.Historial;
import compilador.definiciones.KeyBoard;
import compilador.editor.gui.ToolPanel;

import file_filters.TextFilter;

public class ReadingFile extends JFrame implements ActionListener, KeyListener{
 
  /**
   * Date is Serial
   */
  private static final long serialVersionUID = 20090921;
 
  private JTextArea Hoja;
  private JPanel p1;
  private ToolPanel pH;
  private JPanel pI;
  private JLabel LStatus;
  private JLabel PathArchivo;
  private JLabel InfoCursor;
  private JScrollPane scrollText;
  private String NombreArchivo="";
  //private String PathArchivo="";
  private int col=0;
  private int lin=0;
  private int MaxLin=0;
  private TitledBorder BordeHoja;
  private Border ColorBorde;
  private Historial RecentlyFiles;
  private File[] RecentlyPaths;
 
  public ReadingFile(String title){
    super(title);
    RecentlyFiles = new Historial();
    RecentlyPaths = RecentlyFiles.getRecently();
    p1 = new JPanel();
    //pH = new ToolPanel(this);
    pI = new JPanel();
    Hoja = new JTextArea();
    InfoCursor = new JLabel("");
    PathArchivo = new JLabel("");
    LStatus = new JLabel("");
   
    pI.setLayout(new GridLayout(2,2));
    pI.add(LStatus);
    pI.add(InfoCursor);
    pI.add(PathArchivo);
   
    scrollText = new JScrollPane(Hoja);
        scrollText.setVerticalScrollBarPolicy(
                JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
        scrollText.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        scrollText.setPreferredSize(new Dimension(50, 50));
       
       
               
        ColorBorde = BorderFactory.createLineBorder(Color.black);       
        BordeHoja = BorderFactory.createTitledBorder(ColorBorde, "-");
        BordeHoja.setTitleJustification(TitledBorder.CENTER);
        Hoja.setBorder(BordeHoja);
       
        p1.setLayout(new GridLayout(1,1));
    p1.add(scrollText);
   
    this.setLayout(new BorderLayout());
    this.add(pH, BorderLayout.NORTH);
    this.add(p1,BorderLayout.CENTER);
    this.add(pI,BorderLayout.SOUTH);
    Hoja.setBackground(Color.gray);
    Hoja.setEditable(false);
    SelecArchivoT.addChoosableFileFilter(new TextFilter());
        SelecArchivoT.setAcceptAllFileFilterUsed(false);
        KeyListener enter = null;
        KeyEvent e;
        Hoja.addKeyListener(this);       
       
  }
 
  private static final String OPEN_ICON = "/Resources/gui/ico/open.png";
  private JMenuBar BarraMenu;
  private JMenu mArchivo;
  private JMenuItem smNuevo;
  private JMenuItem smAbrir;
  private JMenu smAbrirR;
  private JMenuItem smRecientes;
  private JMenuItem smCerrar;
  private JMenuItem menuItem;// item de menu
  private JMenuItem menuItemCp;
  private JMenuItem menuItemUp;
  private JCheckBoxMenuItem menuItemM;
  private JCheckBoxMenuItem menuItemS;
  private int TotalR=0;
 
  /**
   * Barra de menu para la ventana
   * @return BarraMenu , es la barra de menu
   */
  public JMenuBar createMenuBar() {
    BarraMenu = new JMenuBar();
    mArchivo = new JMenu("Archivo");
    mArchivo.setMnemonic(KeyEvent.VK_A);// mnemonic   
    BarraMenu.add(mArchivo);// pone el menu en la barra de menu
   
    smNuevo = new JMenuItem("Nuevo");
    //smNuevo.setMnemonic(KeyEvent.VK_N);
    smNuevo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,
        ActionEvent.CTRL_MASK));
    smNuevo.setActionCommand("ctrl+n");
    smNuevo.setToolTipText("Nuevo Texto" );
    mArchivo.add(smNuevo);
    mArchivo.addSeparator();
    smNuevo.setEnabled(false);
   
    smAbrir = new JMenuItem("Abrir",new ImageIcon(getClass().getResource(OPEN_ICON)))
    //smAbrir.setMnemonic(KeyEvent.VK_O);
    smAbrir.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
        ActionEvent.CTRL_MASK));
       
    smAbrir.setToolTipText("Abre un Archivo *.txt");
    mArchivo.add(smAbrir);
    smAbrir.addActionListener(this);
   
   
    smAbrirR = new JMenu ("Abrir recientes");
    smAbrirR.setMnemonic(KeyEvent.VK_P);
    smAbrirR.setToolTipText("Abre archivos recientes");
   
    for(int ix=0;ix<RecentlyPaths.length;ix++){
      if(RecentlyPaths[ix]!=null){
        smRecientes = new JMenuItem(RecentlyPaths[ix].getName());
        smRecientes.setToolTipText( RecentlyPaths[ix].getPath());
        smRecientes.addActionListener(this);
        smAbrirR.add(smRecientes);
        TotalR++;
      }
    }
    //Historial();
    mArchivo.add(smAbrirR);
    //smAbrirR.setEnabled(false);
    mArchivo.addSeparator();
   
    smCerrar = new JMenuItem ("Salir");
    smCerrar.setToolTipText("Termina Aplicación");
    mArchivo.add(smCerrar);
    smCerrar.addActionListener(this);
   
    return BarraMenu;
  }
 
  public void Historial(){
   
  }
 
  private JFileChooser SelecArchivoT = new JFileChooser();
  private File ArchivoTexto;
  /**
   * Abre archivo desde la interfaz
   */
  public boolean openFile(){
    //intervalo = SeleccionArchivo.showOpenDialog(this);
   
    //if(intervalo == JFileChooser.APPROVE_OPTION){
    if(SelecArchivoT.showOpenDialog(this) == JFileChooser.APPROVE_OPTION){
      ArchivoTexto = SelecArchivoT.getSelectedFile();         
     
      return true;
    }
    else{     
      BordeHoja = BorderFactory.createTitledBorder(ColorBorde, "-");
      return false;
    }
   
  }
 
  private BufferedReader bufferL;
  private String LineaT="";
  private String Status="";
  private Vector <String> VTexto;
 
  /**
   * Muestra el Texto del archivo
   */
  public boolean ShowFile(){
    ArchivoNuevo=false;
    VTexto = new  Vector();
    Hoja.setText("");
   
    BordeHoja = BorderFactory.createTitledBorder(ColorBorde, ""+ArchivoTexto.getName());     
    PathArchivo.setText("Ubicación: "+ArchivoTexto.getPath());
    PathArchivo.setToolTipText(ArchivoTexto.getPath());
    this.setTitle("Editor Mj ["+ArchivoTexto.getName()+"]");
   
    try {
      bufferL = new BufferedReader(new FileReader(ArchivoTexto));
     
    } catch (FileNotFoundException e) {
     
      e.printStackTrace();
      return false;   
    }
   
    try {
      while (( LineaT = bufferL.readLine()) != null){
        //bufferL.re
        //Hoja.setText(Hoja.getText()+LineaT+"\n");
        VTexto.add(LineaT);
        //VTexto.set(MaxLin, "-"+LineaT);
        MaxLin++;
      }
      bufferL.close();
    } catch (IOException e2) {   
      e2.printStackTrace();
      return false;
    }
    System.out.println(RecentlyFiles.setRecently(ArchivoTexto.getPath()));
   
    return true;
       
  }
 
  public void LoadBufferLine(){
    try {
      bufferL = new BufferedReader(new FileReader(ArchivoTexto));
    } catch (FileNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
 
  public void Abrir(){
    if(openFile()){     
      //LoadBufferLine();
        MaxLin=0;
        ArchivoCompleto = false;
       
        if(!ShowFile()){
          LStatus.setText("Error al cargar archivo");
        }
        else{
          LStatus.setText("Cargando archivo en buffer, enter para continuar");
        }
      }
     
      else{
        LStatus.setText("Se canceló la carga de archivo");
      }
     
      if(Hoja.getBackground()==Color.gray)
        Hoja.setBackground(Color.white);
  }
  public void actionPerformed(ActionEvent e) {
    if(e.getSource()==smAbrir){
      Abrir();
    }
    JMenuItem source = (JMenuItem) (e.getSource());
   
    for(int i =0;i<TotalR;i++){
      if (source.getText().compareTo(RecentlyPaths[i].getName()) == 0) {
        MaxLin=0;
        ArchivoCompleto = false;
        ArchivoTexto = RecentlyPaths[i];
        if(!ShowFile()){
          LStatus.setText("Error al cargar archivo");
        }
        else{
          LStatus.setText("Cargando archivo en buffer, enter para continuar");
        }
        if(Hoja.getBackground()==Color.gray)
          Hoja.setBackground(Color.white);
       
       
      }
    }
   
   
    if(e.getSource()==smCerrar){
      System.exit(0);
    }
  }

  private int i=0;
  private boolean ArchivoCompleto = false;
  private boolean ArchivoNuevo = true;
  public void keyPressed(KeyEvent e) {
    //System.out.println("*"+e.getKeyCode());
    if(e.getKeyCode()==KeyBoard.ENTER&&!ArchivoNuevo){

        if(MaxLin>i&&!ArchivoCompleto){
          Hoja.setText(Hoja.getText()+VTexto.get(i)+"\n");         
           i++;
           InfoCursor.setText("Columna: "+VTexto.get(i-1).length()+ " Linea: "+i );
           LStatus.setText("Se cargo la linea: "+i);
          }
        else{
          i=0;
          ArchivoCompleto=true;
          LStatus.setText("Se llego al final del archivo");
          InfoCursor.setText("Columna: 0 Linea: "+MaxLin );
          }
    }
   
  }

  @Override
  public void keyReleased(KeyEvent e) {
    // TODO Auto-generated method stub
    //System.out.println("*"+e.getKeyCode());
    //System.out.println("+"+e.getKeyChar());
  }

  @Override
  public void keyTyped(KeyEvent e) {
    // TODO Auto-generated method stub
    //System.out.println("*"+e.getKeyCode());
    //System.out.println("+"+e.getKeyChar());
  }
TOP

Related Classes of pruebas.ReadingFile

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.