1 16 17 package org.mc4j.console.connection.wizard; 18 19 import org.openide.util.NbBundle; 20 21 import javax.swing.*; 22 import javax.swing.filechooser.FileFilter ; 23 import java.awt.*; 24 import java.io.File ; 25 import java.util.ArrayList ; 26 import java.util.List ; 27 28 34 public class ClassPathListVisualPanel extends JPanel { 35 36 40 private final ClassPathListPanel panel; 41 42 private static File startingDirectory; 43 44 45 public ClassPathListVisualPanel(ClassPathListPanel panel) { 46 this.panel = panel; 47 initComponents(); 48 49 this.jListEntries.setModel(new DefaultListModel()); 50 setName(NbBundle.getMessage(ClassPathListVisualPanel.class, "TITLE_WizardPanel")); 52 63 64 DefaultListModel model = new DefaultListModel(); 65 File [] installedLibraries = panel.getInstalledLibraries(); 66 if (installedLibraries != null) { 67 for (int i = 0; i < installedLibraries.length; i++) { 68 File installedLibrary = installedLibraries[i]; 69 model.addElement(installedLibrary.getAbsolutePath()); 70 } 71 } 72 this.jListExtraLibraries.setModel(model); 73 } 74 75 public void setFileList(List <File > fileList) { 76 ((DefaultListModel)this.jListEntries.getModel()).removeAllElements(); 77 if (fileList != null) { 78 for (File file : fileList) { 79 ((DefaultListModel) this.jListEntries.getModel()).addElement(file); 80 } 81 } 82 } 83 84 public List <File > getFileList() { 85 List <File > results = new ArrayList <File >(); 86 int count = this.jListEntries.getModel().getSize(); 87 for (int i = 0; i < count; i++) { 88 results.add((File ) this.jListEntries.getModel().getElementAt(i)); 89 } 90 return results; 91 } 92 93 public Dimension getPreferredSize() { 94 return new Dimension(600, 400); 95 } 96 97 102 private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; 104 105 jPanelTop = new javax.swing.JPanel (); 106 jScrollPane1 = new javax.swing.JScrollPane (); 107 jListEntries = new javax.swing.JList (); 108 jButtonAdd = new javax.swing.JButton (); 109 jButtonRemove = new javax.swing.JButton (); 110 jPanelBottom = new javax.swing.JPanel (); 111 jScrollPane2 = new javax.swing.JScrollPane (); 112 jListExtraLibraries = new javax.swing.JList (); 113 114 setLayout(new java.awt.GridLayout (2, 1, 0, 5)); 115 116 jPanelTop.setLayout(new java.awt.GridBagLayout ()); 117 118 jPanelTop.setBorder(new javax.swing.border.TitledBorder ("Custom classpath and server libraries")); 119 jScrollPane1.setPreferredSize(new java.awt.Dimension (259, 105)); 120 jListEntries.setVisibleRowCount(6); 121 jScrollPane1.setViewportView(jListEntries); 122 123 gridBagConstraints = new java.awt.GridBagConstraints (); 124 gridBagConstraints.gridheight = java.awt.GridBagConstraints.REMAINDER; 125 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 126 jPanelTop.add(jScrollPane1, gridBagConstraints); 127 128 jButtonAdd.setText("Add..."); 129 jButtonAdd.addActionListener(new java.awt.event.ActionListener () { 130 public void actionPerformed(java.awt.event.ActionEvent evt) { 131 jButtonAddActionPerformed(evt); 132 } 133 }); 134 135 gridBagConstraints = new java.awt.GridBagConstraints (); 136 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 137 gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST; 138 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 139 jPanelTop.add(jButtonAdd, gridBagConstraints); 140 141 jButtonRemove.setText("Remove"); 142 jButtonRemove.addActionListener(new java.awt.event.ActionListener () { 143 public void actionPerformed(java.awt.event.ActionEvent evt) { 144 jButtonRemoveActionPerformed(evt); 145 } 146 }); 147 148 gridBagConstraints = new java.awt.GridBagConstraints (); 149 gridBagConstraints.gridx = 1; 150 gridBagConstraints.gridy = 1; 151 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 152 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 153 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 154 jPanelTop.add(jButtonRemove, gridBagConstraints); 155 156 add(jPanelTop); 157 158 jPanelBottom.setLayout(new java.awt.GridBagLayout ()); 159 160 jPanelBottom.setBorder(new javax.swing.border.TitledBorder ("Additional mc4jlib directory libraries")); 161 jScrollPane2.setPreferredSize(new java.awt.Dimension (350, 95)); 162 jListExtraLibraries.setVisibleRowCount(5); 163 jListExtraLibraries.setEnabled(false); 164 jScrollPane2.setViewportView(jListExtraLibraries); 165 166 gridBagConstraints = new java.awt.GridBagConstraints (); 167 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 168 gridBagConstraints.gridheight = java.awt.GridBagConstraints.REMAINDER; 169 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 170 gridBagConstraints.insets = new java.awt.Insets (8, 8, 8, 8); 171 jPanelBottom.add(jScrollPane2, gridBagConstraints); 172 173 add(jPanelBottom); 174 175 } 177 private void jButtonRemoveActionPerformed(java.awt.event.ActionEvent evt) { int index = this.jListEntries.getSelectedIndex(); 180 ((DefaultListModel) this.jListEntries.getModel()).remove(index); 181 } 183 private void jButtonAddActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser chooser = new JFileChooser(); 186 if (ClassPathListVisualPanel.startingDirectory != null) 187 chooser.setCurrentDirectory(ClassPathListVisualPanel.startingDirectory); 188 189 chooser.setFileFilter(new FileFilter () { 190 public boolean accept(File path) { 191 return (path.isDirectory() || 192 (path.getName().toLowerCase().endsWith(".jar")) || 193 (path.getName().toLowerCase().endsWith(".zip"))); 194 } 195 public String getDescription() { 196 return "Library files or class directories"; 197 } 198 }); 199 chooser.setMultiSelectionEnabled(true); 200 chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); 201 int returnVal; 202 if ("Mac OS X".equals(System.getProperty ("os.name"))) { 203 chooser.setDialogTitle("Select additional libraries or directories"); 204 returnVal = chooser.showOpenDialog(null); 205 } else { 206 returnVal = chooser.showDialog(null,"Select"); 207 } 208 if (returnVal == JFileChooser.APPROVE_OPTION) { 209 File [] selectedFiles = chooser.getSelectedFiles(); 210 for (int i = 0; i < selectedFiles.length; i++) { 211 File selectedFile = selectedFiles[i]; 212 ((DefaultListModel)this.jListEntries.getModel()).addElement(selectedFile); 213 } 214 215 ClassPathListVisualPanel.startingDirectory = chooser.getCurrentDirectory(); 216 217 } 218 } 220 private javax.swing.JButton jButtonAdd; 222 private javax.swing.JButton jButtonRemove; 223 private javax.swing.JList jListEntries; 224 private javax.swing.JList jListExtraLibraries; 225 private javax.swing.JPanel jPanelBottom; 226 private javax.swing.JPanel jPanelTop; 227 private javax.swing.JScrollPane jScrollPane1; 228 private javax.swing.JScrollPane jScrollPane2; 229 231 } 232 | Popular Tags |