package estructura.projecto.Editor;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class Dudush
{
private final JScrollPane scroll;
private int letras = 0;
private final JFrame ventana;
private final JLabel estado;
private JPanel panel;
private final JTextArea texto;
public Dudush()
{
ventana = new JFrame("Dudush v.0.1. Editor oficial de Dudu ++");
estado = new JLabel("estado");
panel = new JPanel();
texto = new JTextArea();
scroll = new JScrollPane(texto);
texto.addKeyListener( new KeyListener()
{
public void keyPressed(KeyEvent e)
{
if ( e.getKeyCode()==127 || e.getKeyCode()==8)
{
if (letras>0) letras--;
}
else
{
if ( (!(e.getKeyCode()>=37 && e.getKeyCode()<=40)) && e.getKeyCode()!=10 )letras++; } estado.setText("letras: "+letras); System.out.println("key ->"+e.getKeyCode() );
}
public void keyReleased(KeyEvent e)
{
}
public void keyTyped(KeyEvent e)
{
}
}
);
panel.setLayout (new BorderLayout());
panel.add(texto,BorderLayout.NORTH);
panel.add(estado,BorderLayout.SOUTH);
ventana.setLayout(new GridLayout(2,1));
ventana.getContentPane().add(texto);
ventana.add(estado);
ventana.setSize(500,300);
//Create the menu bar.
JMenuBar menuBar = new JMenuBar();
ventana.setJMenuBar(menuBar);
//Build the first menu.
JMenu mnuArchivo = new JMenu("Archivo");
menuBar.add(mnuArchivo);
JMenuItem abrir = new JMenuItem("Abrir");
abrir.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println("abrir");
JFileChooser fc = new JFileChooser();
int retorno = fc.showOpenDialog(ventana);
fc.setVisible(true);
if(retorno == JFileChooser.APPROVE_OPTION) {
String nombre = fc.getSelectedFile().getName();
String path = fc.getSelectedFile().getAbsolutePath();
System.out.println(nombre+" "+path);
try
{
FileInputStream fi = new FileInputStream(path);
boolean done=false;
while (!done)
{
int buff=fi.read();
//System.out.println("ss"+buff);
if (buff==-1) done=true;
else texto.setText(texto.getText()+String.valueOf((char)buff));
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
});
JMenuItem guardar = new JMenuItem("Guardar");
guardar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Guardar");
JFileChooser fc = new JFileChooser();
int retorno = fc.showOpenDialog(ventana);
fc.setVisible(true);
if(retorno == JFileChooser.APPROVE_OPTION) {
String nombre=fc.getSelectedFile().getName();
String path=fc.getSelectedFile().getAbsolutePath();
System.out.println(nombre+" "+path);
try{
FileWriter impri = new FileWriter((path),false);
impri.append(texto.getText());
impri.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
});
JMenuItem imprimir = new JMenuItem("Imprimir");
imprimir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("imprimir");
try{
FileWriter impri = new FileWriter("c:\\temp",false);
impri.append(texto.getText());
impri.close();
Process proc = Runtime.getRuntime().exec("cmd /C type c:\\temp>LPT1");
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
});
JMenuItem salir=new JMenuItem("Salir");
salir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
mnuArchivo.add(abrir);
mnuArchivo.add(guardar);
mnuArchivo.add(imprimir);
mnuArchivo.add(salir);
ventana.setExtendedState(ventana.getExtendedState() | JFrame.MAXIMIZED_BOTH);
ventana.setVisible(true);
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
/*ventana.setState(JFrame.NORMAL);
Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension dimension = toolkit.getScreenSize();
ventana.setSize(dimension);
*/
}
public static void main(String args[])
{
Dudush editor=new Dudush();
}
}