/** Creates the internal frame for opening a site and displaying its information @author Travis Zimmerman @version 1.0 File Name: OpenSiteInternalFrame.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 OpenSiteInternalFrame extends JInternalFrame { public OpenSiteInternalFrame() { super("Open 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("Open Site"); header.setForeground( Color.black ); header.setFont( new Font( "courier", Font.BOLD, 24 )); JPanel headerPanel = new JPanel(); headerPanel.add(header); addressLabel.setFont( new Font("courier", Font.BOLD, 12) ); companyLabel.setFont( new Font("courier", Font.BOLD, 12) ); designerLabel.setFont( new Font("courier", Font.BOLD, 12) ); topicLabel.setFont( new Font("courier", Font.BOLD, 12) ); startDateLabel.setFont( new Font("courier", Font.BOLD, 12) ); webmasterEmailAddressLabel.setFont( new Font("courier", Font.BOLD, 12) ); hostedByLabel.setFont( new Font("courier", Font.BOLD, 12) ); hostAddressLabel.setFont( new Font("courier", Font.BOLD, 12) ); hostUserNameLabel.setFont( new Font("courier", Font.BOLD, 12) ); hostPasswordLabel.setFont( new Font("courier", Font.BOLD, 12) ); ftpAddressLabel.setFont( new Font("courier", Font.BOLD, 12) ); ftpUserNameLabel.setFont( new Font("courier", Font.BOLD, 12) ); ftpPasswordLabel.setFont( new Font("courier", Font.BOLD, 12) ); mySites = new ArrayList(); 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() ); displayButton = new JButton("Display"); JPanel choicePanel = new JPanel(); choicePanel.setLayout( new GridLayout(1,2) ); choicePanel.add(siteChooser); choicePanel.add(displayButton); JPanel topPanel = new JPanel(); topPanel.setLayout( new GridLayout(2,1,20,20) ); topPanel.add(headerPanel); topPanel.add(choicePanel); topPanel.setSize(20, 20); getContentPane().add(topPanel, BorderLayout.NORTH); //make all the stuff for the info panel JPanel addressPanel = new JPanel(); addressPanel.setLayout( new GridLayout(2,1) ); addressPanel.add(addressLabel); addressPanel.add(addressDisplay); addressPanel.setBorder(new TitledBorder(new EtchedBorder())); JPanel companyPanel = new JPanel(); companyPanel.setLayout( new GridLayout(2,1) ); companyPanel.add(companyLabel); companyPanel.add(companyDisplay); companyPanel.setBorder(new TitledBorder(new EtchedBorder())); JPanel topicPanel = new JPanel(); topicPanel.setLayout( new GridLayout(2,1) ); topicPanel.add(topicLabel); topicPanel.add(topicDisplay); topicPanel.setBorder(new TitledBorder(new EtchedBorder())); JPanel designerPanel = new JPanel(); designerPanel.setLayout( new GridLayout(2,1) ); designerPanel.add(designerLabel); designerPanel.add(designerDisplay); designerPanel.setBorder(new TitledBorder(new EtchedBorder())); JPanel startDatePanel = new JPanel(); startDatePanel.setLayout( new GridLayout(2,1) ); startDatePanel.add(startDateLabel); startDatePanel.add(startDateDisplay); startDatePanel.setBorder(new TitledBorder(new EtchedBorder())); JPanel webmasterEmailAddressPanel = new JPanel(); webmasterEmailAddressPanel.setLayout( new GridLayout(2,1) ); webmasterEmailAddressPanel.add(webmasterEmailAddressLabel); webmasterEmailAddressPanel.add(webmasterEmailAddressDisplay); webmasterEmailAddressPanel.setBorder(new TitledBorder(new EtchedBorder())); JPanel hostedByPanel = new JPanel(); hostedByPanel.setLayout( new GridLayout(2,1) ); hostedByPanel.add(hostedByLabel); hostedByPanel.add(hostedByDisplay); hostedByPanel.setBorder(new TitledBorder(new EtchedBorder())); JPanel hostAddressPanel = new JPanel(); hostAddressPanel.setLayout( new GridLayout(2,1) ); hostAddressPanel.add(hostAddressLabel); hostAddressPanel.add(hostAddressDisplay); hostAddressPanel.setBorder(new TitledBorder(new EtchedBorder())); JPanel hostUserNamePanel = new JPanel(); hostUserNamePanel.setLayout( new GridLayout(2,1) ); hostUserNamePanel.add(hostUserNameLabel); hostUserNamePanel.add(hostUserNameDisplay); hostUserNamePanel.setBorder(new TitledBorder(new EtchedBorder())); JPanel hostPasswordPanel = new JPanel(); hostPasswordPanel.setLayout( new GridLayout(2,1) ); hostPasswordPanel.add(hostPasswordLabel); hostPasswordPanel.add(hostPasswordDisplay); hostPasswordPanel.setBorder(new TitledBorder(new EtchedBorder())); JPanel ftpAddressPanel = new JPanel(); ftpAddressPanel.setLayout( new GridLayout(2,1) ); ftpAddressPanel.add(ftpAddressLabel); ftpAddressPanel.add(ftpAddressDisplay); ftpAddressPanel.setBorder(new TitledBorder(new EtchedBorder())); JPanel ftpUserNamePanel = new JPanel(); ftpUserNamePanel.setLayout( new GridLayout(2,1) ); ftpUserNamePanel.add(ftpUserNameLabel); ftpUserNamePanel.add(ftpUserNameDisplay); ftpUserNamePanel.setBorder(new TitledBorder(new EtchedBorder())); JPanel ftpPasswordPanel = new JPanel(); ftpPasswordPanel.setLayout( new GridLayout(2,1) ); ftpPasswordPanel.add(ftpPasswordLabel); ftpPasswordPanel.add(ftpPasswordDisplay); ftpPasswordPanel.setBorder(new TitledBorder(new EtchedBorder())); JPanel blankPanel = new JPanel(); blankPanel.setLayout( new GridLayout(2,1) ); blankPanel.add( new JLabel(" ") ); blankPanel.add( new JLabel(" ") ); JPanel leftPanel = new JPanel(); leftPanel.setLayout( new GridLayout(7,1) ); leftPanel.add(addressPanel); leftPanel.add(topicPanel); leftPanel.add(startDatePanel); leftPanel.add(hostedByPanel); leftPanel.add(hostAddressPanel); leftPanel.add(hostUserNamePanel); leftPanel.add(hostPasswordPanel); JPanel rightPanel = new JPanel(); rightPanel.setLayout( new GridLayout(7,1) ); rightPanel.add(companyPanel); rightPanel.add(designerPanel); rightPanel.add(webmasterEmailAddressPanel); rightPanel.add(ftpAddressPanel); rightPanel.add(ftpUserNamePanel); rightPanel.add(ftpPasswordPanel); rightPanel.add(blankPanel); JPanel infoPanel = new JPanel(); infoPanel.setLayout( new GridLayout(1, 2, 10, 10) ); infoPanel.add(leftPanel); infoPanel.add(rightPanel); getContentPane().add(infoPanel, BorderLayout.CENTER); closeButton = new JButton("Close"); JPanel buttonPanel = new JPanel(); buttonPanel.setLayout( new GridLayout(1,2) ); buttonPanel.add(blankPanel); buttonPanel.add(closeButton); getContentPane().add(buttonPanel, BorderLayout.SOUTH); setSize(WIDTH, HEIGHT); setLocation(OFFSET, OFFSET); //-----Button Listeners & Handlers----- class DisplayButtonListener 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; addressDisplay.setText( ((Site)mySites.get(currentSelection)).getAddress() ); companyDisplay.setText( ((Site)mySites.get(currentSelection)).getCompany() ); designerDisplay.setText( ((Site)mySites.get(currentSelection)).getDesigner() ); topicDisplay.setText( ((Site)mySites.get(currentSelection)).getTopic() ); startDateDisplay.setText( ((Site)mySites.get(currentSelection)).getStartDate() ); webmasterEmailAddressDisplay.setText( ((Site)mySites.get(currentSelection)).getWebmasterEmailAddress() ); hostedByDisplay.setText( ((Site)mySites.get(currentSelection)).getHost() ); hostAddressDisplay.setText( ((Site)mySites.get(currentSelection)).getHostAddress() ); hostUserNameDisplay.setText( ((Site)mySites.get(currentSelection)).getHostUserName() ); hostPasswordDisplay.setText( ((Site)mySites.get(currentSelection)).getHostPassword() ); ftpAddressDisplay.setText( ((Site)mySites.get(currentSelection)).getFTPAddress() ); ftpUserNameDisplay.setText( ((Site)mySites.get(currentSelection)).getFTPUserName() ); ftpPasswordDisplay.setText( ((Site)mySites.get(currentSelection)).getFTPPassword() ); } } DisplayButtonListener myDisplayButtonListener = new DisplayButtonListener(); displayButton.addActionListener(myDisplayButtonListener); class CloseButtonListener implements ActionListener { public void actionPerformed(ActionEvent event) { try { setClosed(true); } catch (java.beans.PropertyVetoException e) {} } }; CloseButtonListener myCloseButtonListener = new CloseButtonListener(); closeButton.addActionListener(myCloseButtonListener); } //instance fields ArrayList mySites; int currentSelection; JComboBox siteChooser; JLabel addressLabel = new JLabel("Address (URL): "); JLabel companyLabel = new JLabel("Company: "); JLabel designerLabel = new JLabel("Designer: "); JLabel topicLabel = new JLabel("Topic: "); JLabel startDateLabel = new JLabel("Launch Date: "); JLabel webmasterEmailAddressLabel = new JLabel("Webmaster Email Address: "); JLabel hostedByLabel = new JLabel("Hosted by: "); JLabel hostAddressLabel = new JLabel("Host address (URL): "); JLabel hostUserNameLabel = new JLabel("Host user name: "); JLabel hostPasswordLabel = new JLabel("Host password: "); JLabel ftpAddressLabel = new JLabel("FTP address (URL): "); JLabel ftpUserNameLabel = new JLabel("FTP user name: "); JLabel ftpPasswordLabel = new JLabel("FTP password: "); JLabel addressDisplay = new JLabel(" "); JLabel companyDisplay = new JLabel(" "); JLabel designerDisplay = new JLabel(" "); JLabel topicDisplay = new JLabel(" "); JLabel startDateDisplay = new JLabel(" "); JLabel webmasterEmailAddressDisplay = new JLabel(" "); JLabel hostedByDisplay = new JLabel(" "); JLabel hostAddressDisplay = new JLabel(" "); JLabel hostUserNameDisplay = new JLabel(" "); JLabel hostPasswordDisplay = new JLabel(" "); JLabel ftpAddressDisplay = new JLabel(" "); JLabel ftpUserNameDisplay = new JLabel(" "); JLabel ftpPasswordDisplay = new JLabel(" "); JButton displayButton; JButton closeButton; private final int WIDTH = 450; private final int HEIGHT = 460; private final int OFFSET = 30; }