/* File Name: ClientOpenFrame.java */ package explorer.client.gui; import javax.swing.*; import javax.swing.tree.*; import java.net.URL; import java.awt.*; import java.util.Vector; import explorer.*; import explorer.client.CrossXClientFactory; import explorer.client.CrossXClient; /** * The Main GUI that gives the explorer View * Contains the Folder Panel, File Panel and Status Panel for file manipulations */ public class ClientOpenFrame extends JFrame { /** Creates new form JFrame */ public ClientOpenFrame() { JFrame.setDefaultLookAndFeelDecorated(true); initComponents(); } private void initComponents() { client=new CrossXClientFactory(); NorthPanel = new JPanel(); URL url= ClassLoader.getSystemResource("resources/cross_X_Header_Animated.gif"); lblHeader = new JLabel(new ImageIcon(url)); lblAddress = new JLabel(); txtAddress = new JTextField(); jToolBar = new JToolBar(); cmdBack = new JButton(); cmdForward = new JButton(); cmdUp = new JButton(); cmdOpen = new JButton(); cmdCopyTo = new JButton(); cmdMoveTo = new JButton(); cmdDelete = new JButton(); cmdProperties = new JButton(); cmdRename = new JButton(); CenterPane = new JSplitPane(); filepanel = new FilePanel(this); folderpanel=new FolderPanel(this,true); statusPanel = new JPanel(); lblNoOfObjects = new JLabel(); lblType = new JLabel(); lblOSName = new JLabel(); getContentPane().setLayout(new java.awt.BorderLayout(10, 10)); setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); setTitle("The Cross Platform Explorer" + " - developed by E.Susheel chandar and M.Gunasekaran"); setState(JFrame.MAXIMIZED_BOTH); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { exitForm(evt); } }); NorthPanel.setLayout(new java.awt.BorderLayout(10,10)); NorthPanel.setBackground(new java.awt.Color(255, 255, 255)); NorthPanel.add(lblHeader, java.awt.BorderLayout.NORTH); lblAddress.setText("Address: "); txtAddress.setText("CrossX:\\"); JPanel addressPanel=new JPanel(new java.awt.BorderLayout(10,10)); addressPanel.add(new JLabel(" "), java.awt.BorderLayout.NORTH); addressPanel.add(lblAddress, java.awt.BorderLayout.WEST); addressPanel.add(txtAddress, java.awt.BorderLayout.CENTER); NorthPanel.add(addressPanel, java.awt.BorderLayout.CENTER); url= ClassLoader.getSystemResource("resources/back.jpg"); cmdBack.setIcon(new ImageIcon(url)); cmdBack.setText("Back "); cmdBack.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cmdBackActionPerformed(evt); } }); jToolBar.add(cmdBack); url= ClassLoader.getSystemResource("resources/forward.jpg"); cmdForward.setIcon(new ImageIcon(url)); cmdForward.setText("Forward"); cmdForward.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cmdForwardActionPerformed(evt); } }); jToolBar.add(cmdForward); url= ClassLoader.getSystemResource("resources/up.jpg"); cmdUp.setIcon(new ImageIcon(url)); cmdUp.setText("Up "); cmdUp.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cmdUpActionPerformed(evt); } }); jToolBar.add(cmdUp); url= ClassLoader.getSystemResource("resources/open1.jpg"); cmdOpen.setIcon(new ImageIcon(url)); cmdOpen.setText("Open "); cmdOpen.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cmdOpenActionPerformed(evt); } }); jToolBar.add(cmdOpen); url= ClassLoader.getSystemResource("resources/copy.jpg"); cmdCopyTo.setIcon(new ImageIcon(url)); cmdCopyTo.setText("CopyTo"); cmdCopyTo.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cmdCopyToActionPerformed(evt); } }); jToolBar.add(cmdCopyTo); url= ClassLoader.getSystemResource("resources/moveto.jpg"); cmdMoveTo.setIcon(new ImageIcon(url)); cmdMoveTo.setText("MoveTo "); cmdMoveTo.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cmdMoveToActionPerformed(evt); } }); jToolBar.add(cmdMoveTo); url= ClassLoader.getSystemResource("resources/delete.jpg"); cmdDelete.setIcon(new ImageIcon(url)); cmdDelete.setText("Delete "); cmdDelete.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cmdDeleteActionPerformed(evt); } }); jToolBar.add(cmdDelete); url= ClassLoader.getSystemResource("resources/prop.jpg"); cmdProperties.setIcon(new ImageIcon(url)); cmdProperties.setText("Properties"); cmdProperties.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cmdPropertiesActionPerformed(evt); } }); jToolBar.add(cmdProperties); url= ClassLoader.getSystemResource("resources/rename.jpg"); cmdRename.setIcon(new ImageIcon(url)); cmdRename.setText("Rename "); cmdRename.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cmdRenameActionPerformed(evt); } }); jToolBar.add(cmdRename); addressPanel.add(jToolBar, java.awt.BorderLayout.SOUTH); getContentPane().add(NorthPanel, java.awt.BorderLayout.NORTH); CenterPane.setBackground(new java.awt.Color(255, 255, 255)); folderpanel.setBackground(new java.awt.Color(255, 255, 255)); CenterPane.setLeftComponent(folderpanel); filepanel.setBackground(new java.awt.Color(255, 255, 255)); CenterPane.setRightComponent(filepanel); Dimension size=java.awt.Toolkit.getDefaultToolkit().getScreenSize(); size.height= (int)size.getHeight()-270; CenterPane.setDividerLocation(150); CenterPane.setPreferredSize(size); setSize(size); this.setState(JFrame.MAXIMIZED_BOTH); getContentPane().add(CenterPane, java.awt.BorderLayout.CENTER); statusPanel.setLayout(new java.awt.GridLayout(1, 5, 10, 10)); statusPanel.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0))); statusPanel.add(lblNoOfObjects); //statusPanel.add(lblType); statusPanel.add(lblOSName); getContentPane().add(statusPanel, java.awt.BorderLayout.SOUTH); pack(); } /** * Sets the Address of the selected file object in the Address Bar */ public void setAddress(String add) { txtAddress.setText("CrossX:\\" + add); } public void setTypeStatus(String type) { lblType.setText(type); } /** * Sets the no of File Objects present in the frame */ public void setNoOfObjects(int num) { lblNoOfObjects.setText(num + " Object(s)"); if(currentClient==null) return; setOSName(currentClient.getOSName(),currentClient.getVersion(),currentClient.getSysName()); } /** * Sets the OS Name in the status bar */ public void setOSName(String OSName,String version,String SystemName) { lblOSName.setText("OS:" + OSName + " Version: " + version + " SystemName:" + SystemName); } private void cmdRenameActionPerformed(java.awt.event.ActionEvent evt) { filepanel.doRenameEvent(); } private void cmdPropertiesActionPerformed(java.awt.event.ActionEvent evt) { filepanel.doPropertyEvent(); } private void cmdDeleteActionPerformed(java.awt.event.ActionEvent evt) { try { filepanel.doDeleteEvent(); } catch(Exception e) { JOptionPane.showMessageDialog(this,e.getMessage()); } } private void cmdMoveToActionPerformed(java.awt.event.ActionEvent evt) { try { filepanel.doMoveToEvent(); } catch(java.rmi.RemoteException e) { JOptionPane.showMessageDialog(this,e.getMessage()); } } private void cmdCopyToActionPerformed(java.awt.event.ActionEvent evt) { try { filepanel.doCopyToEvent(); } catch(java.rmi.RemoteException e) { JOptionPane.showMessageDialog(this,e.getMessage()); } } private void cmdOpenActionPerformed(java.awt.event.ActionEvent evt) { try{ filepanel.doOpenEvent(); } catch(Exception e){ JOptionPane.showMessageDialog(this,e.getMessage()); } } private void cmdUpActionPerformed(java.awt.event.ActionEvent evt) { DefaultMutableTreeNode childNode = (DefaultMutableTreeNode)folderpanel.getSelectedNode(); DefaultMutableTreeNode parentNode= (DefaultMutableTreeNode)childNode.getParent(); if(parentNode==null) return; folderpanel.getTree().scrollPathToVisible(new TreePath(parentNode.getPath())); folderpanel.getTree().setSelectionPath(new TreePath(parentNode.getPath())); } private void cmdForwardActionPerformed(java.awt.event.ActionEvent evt) { folderpanel.navicateForward(); } private void cmdBackActionPerformed(java.awt.event.ActionEvent evt) { folderpanel.navicateBack(); } /** Exit the Application */ private void exitForm(java.awt.event.WindowEvent evt) { System.exit(0); } public explorer.client.CrossXClientFactory getClient() { return client; } public explorer.client.gui.FilePanel getFilepanel() { return filepanel; } public explorer.client.gui.FolderPanel getFolderpanel() { return folderpanel; } public CrossXClient getPresentClient() { return currentClient; } public void setPresentClient(CrossXClient currentClient) { this.currentClient = currentClient; } public static void main(String args[]) { ClientOpenFrame frame = new ClientOpenFrame(); frame.show(); } private JButton cmdBack; private JTextField txtAddress; private JButton cmdMoveTo; private JButton cmdUp; private JLabel lblHeader; private FilePanel filepanel; private FolderPanel folderpanel; private JToolBar jToolBar; private JButton cmdOpen; private JButton cmdProperties; private JPanel NorthPanel; private JButton cmdRename; private JLabel lblType; private JLabel lblOSName; private JButton cmdDelete; private JButton cmdCopyTo; private JSplitPane CenterPane; private JPanel statusPanel; private JButton cmdForward; private JLabel lblAddress; private JLabel lblNoOfObjects; private CrossXClientFactory client; private CrossXClient currentClient; }