import java.awt.*; import java.awt.event.*; import java.io.*; public class FileCommand implements ActionListener { static final int NEW = 0; static final int OPEN = 1; static final int SAVE = 2; static final int SAVEAS = 3; static final int EXIT = 4; private static boolean m_hasfilename; private static String m_filename; private int m_id; private Gui m_gui; private TextArea m_area; public FileCommand(int id, Gui frame) { this.m_id = id; this.m_gui = frame; m_area = m_gui.getScript(); m_hasfilename = false; } public void actionPerformed(ActionEvent e) { switch(m_id) { case NEW: newFile(); break; case OPEN: openFile(); break; case SAVE: save(); break; case SAVEAS: saveAs(); break; case EXIT: System.exit(0); } } public void newFile() { m_area.setText(""); m_filename = null; m_hasfilename = false; m_gui.setTitle("Web Script: No Title"); } public void openFile() { FileDialog fd = new FileDialog(m_gui,"Open Script"); fd.setDirectory("."); fd.setVisible(true); String dir = fd.getDirectory(); String name = fd.getFile(); if((dir != null) && (name != null)) { BufferedReader br; try { br = new BufferedReader( new FileReader(dir + name)); } catch (FileNotFoundException e) { System.out.println("File Not Found"); return; } m_area.setText(""); try { String line; while((line =br.readLine()) != null) { m_area.append(line); m_area.append("\n"); } br.close(); m_filename = new String(dir + name); m_hasfilename = true; m_gui.setTitle("Web Script: " + m_filename); } catch (IOException e) { System.out.println("File Read Error"); } } } public void save() { if(m_hasfilename == false) saveAs(); else { BufferedWriter wr; try { wr = new BufferedWriter( new FileWriter(m_filename)); } catch (IOException e) { System.out.println("File Create Error"); return; } try { wr.write(m_area.getText()); wr.close(); } catch (IOException e) { System.out.println("File Write Error"); } } } public void saveAs() { FileDialog fd = new FileDialog(m_gui,"Save Script",FileDialog.SAVE); fd.setDirectory("."); fd.setVisible(true); String dir = fd.getDirectory(); String name = fd.getFile(); if((dir != null) && (name != null)) { BufferedWriter wr; try { wr = new BufferedWriter( new FileWriter(dir + name)); } catch (IOException e) { System.out.println("File Create Error"); return; } try { wr.write(m_area.getText()); wr.close(); m_filename = new String(dir + name); m_hasfilename = true; m_gui.setTitle("Web Script: " + m_filename); } catch (IOException e) { System.out.println("File Write Error"); } } } }