/*
 * JEdit.java
 *
 */

import java.awt.*;
import java.io.*;

class JEdit extends Frame
{
  TextArea jText = new TextArea();
  String jFile = new String();

  JEdit()
  {
    super("JEdit Alpha 0.1");
    setLayout(new BorderLayout());
    add("Center", jText);
    jText.setFont(new Font("Courrier",Font.PLAIN,12));
    //jText.setBackground(Color.black);
    //jText.setForeground(Color.white);
    Menu menu = new Menu("File");
    menu.add(new MenuItem("Open"));
    menu.add(new MenuItem("Save"));
    menu.add(new MenuItem("Save As"));
    menu.add(new MenuItem("Quit"));
    Menu menu2 = new Menu("Help");
    menu2.add(new MenuItem("About"));
    MenuBar menuBar = new MenuBar();
    menuBar.add(menu);
    menuBar.add(menu2);
    setMenuBar(menuBar);
    pack();
    setBounds(100,100,480,400);
  }

  public boolean action (Event event, Object obj)
  {
    if (((String)obj).equals("Quit"))
      dispose();
	else if (((String)obj).equals("Open"))
	  loadFile();
	else if (((String)obj).equals("Save"))
	  saveFile();
	else if (((String)obj).equals("Save As"))
	  saveFileAs();
	else if (((String)obj).equals("About"))
	  about();
    return true;
  }

  private void loadFile()
  {
    FileDialog fd = new FileDialog(this,"Open a file", FileDialog.LOAD);
    fd.show();
    jFile=fd.getDirectory()+fd.getFile();
	if (jFile==null)
	  return;
	try
	{
	  FileInputStream fis = new FileInputStream(fd.getDirectory()+fd.getFile());
	  byte [] donnees = new byte [fis.available()];
	  fis.read(donnees);
	  jText.setText(new String(donnees,0));
	  fis.close();
	}
	catch (IOException e)
	{
	  jText.setText("Unable to open file...");
	}
  }

  private void saveFile()
  {
	try
	{
	  FileOutputStream fos = new FileOutputStream(jFile);
	  PrintStream pfos = new PrintStream(fos);
	  pfos.print(jText.getText());
	  fos.close();
	}
	catch (IOException e)
	{
	  jText.setText("Unable to save file...");
	}
  }

  private void saveFileAs()
  {
    FileDialog fd = new FileDialog(this,"Save file as", FileDialog.SAVE);
	fd.show();
	String jFile=fd.getDirectory()+fd.getFile();
	if (jFile==null)
	  return;
	try
	{
	  FileOutputStream fos = new FileOutputStream(fd.getDirectory()+fd.getFile());
	  PrintStream pfos = new PrintStream(fos);
	  pfos.print(jText.getText());
	  fos.close();
	}
	catch (IOException e)
	{
	  jText.setText("Unable to save file as");
	}
  }

  private void about()
  {
  }

  public static void main(String[] s)
  {
    new JEdit().show();
  }
}

