/** Creates the internal frame for opening a site and displaying its information @author Travis Zimmerman @version 1.0 File Name: DeleteSiteInternalFrame.java */ import java.awt.*; import javax.swing.*; import javax.swing.border.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.*; import java.util.ArrayList; public class DeleteSiteInternalFrame extends JInternalFrame { public DeleteSiteInternalFrame() { super("Delete Site", true, //resizable true, //closable true, //maximizable true);//iconifiable try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch(Exception e) { System.out.println("Error setting native LAF: " + e); } JLabel header = new JLabel("Delete Site"); header.setForeground( Color.black ); header.setFont( new Font( "courier", Font.BOLD, 24 )); JPanel headerPanel = new JPanel(); headerPanel.add(header); mySites = new ArrayList(); final File sitesFile = new File("sites.tez"); //read in all the sites from the file if (sitesFile.exists()) { try { ObjectInputStream in = new ObjectInputStream(new FileInputStream(sitesFile)); mySites = (ArrayList)in.readObject(); in.close(); } catch (java.io.FileNotFoundException e) {} catch (java.io.IOException e) {} catch (java.lang.ClassNotFoundException e) {} } //else put something in the menu about no existing sites siteChooser = new JComboBox(); for (int i = 0; i < mySites.size(); i++) siteChooser.addItem( ((Site)mySites.get(i)).getAddress() ); deleteButton = new JButton("Delete"); cancelButton = new JButton("Cancel"); JButton blankButton = new JButton(); JPanel blankPanel = new JPanel(); blankPanel.add(siteChooser); blankPanel.add(blankButton); blankButton.setVisible(false); JPanel siteChooserPanel = new JPanel(); siteChooserPanel.setLayout( new GridLayout(2, 1) ); siteChooserPanel.add(siteChooser); siteChooserPanel.add(blankPanel); JPanel buttonPanel = new JPanel(); buttonPanel.setLayout( new GridLayout(2, 1) ); buttonPanel.add(deleteButton); buttonPanel.add(cancelButton); JPanel mainPanel = new JPanel(); mainPanel.setLayout( new GridLayout(1, 2, 20, 20) ); mainPanel.add(siteChooserPanel); mainPanel.add(buttonPanel); getContentPane().add(mainPanel, BorderLayout.CENTER); setSize(WIDTH, HEIGHT); setLocation(OFFSET, OFFSET); //-----Button Listeners & Handlers----- class DeleteButtonListener implements ActionListener { public void actionPerformed(ActionEvent event) { for (int i = 0; i < mySites.size(); i++) if ( ( ((Site)mySites.get(i)).getAddress() ).equals( (String)siteChooser.getSelectedItem() ) ) currentSelection = i; //remove the selected site from the array mySites.remove(currentSelection); //save all the sites back to the file try { ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream(sitesFile) ); out.writeObject(mySites); out.close(); } catch (java.io.FileNotFoundException e) {} catch (java.io.IOException e) {} try { setClosed(true); } catch (java.beans.PropertyVetoException e) {} } } DeleteButtonListener myDeleteButtonListener = new DeleteButtonListener(); deleteButton.addActionListener(myDeleteButtonListener); class CancelButtonListener implements ActionListener { public void actionPerformed(ActionEvent event) { try { setClosed(true); } catch (java.beans.PropertyVetoException e) {} } }; CancelButtonListener myCancelButtonListener = new CancelButtonListener(); cancelButton.addActionListener(myCancelButtonListener); } //instance fields ArrayList mySites; int currentSelection; JComboBox siteChooser; JButton deleteButton; JButton cancelButton; private final int WIDTH = 510; private final int HEIGHT = 80; private final int OFFSET = 5; }