1 6 7 package SOFA.SOFAnet.Browser; 8 9 import SOFA.SOFAnet.Admin.RMI.*; 10 import SOFA.SOFAnet.Repository.BundleInfo; 11 import javax.swing.*; 12 import java.rmi.RemoteException ; 13 import java.util.*; 14 import java.awt.Component ; 15 import java.awt.Frame ; 16 17 21 public class CreateBinaryBundleDialog extends javax.swing.JDialog 22 { 23 private RMIAdminInterface admin; 24 private boolean isOK; 25 26 public static boolean showDialog(Component frameComp, RMIAdminInterface admin, String defaultBundleName) 27 { 28 Frame frame = JOptionPane.getFrameForComponent(frameComp); 29 CreateBinaryBundleDialog dialog = new CreateBinaryBundleDialog(frame, true, admin, defaultBundleName); 30 dialog.setLocationRelativeTo(frameComp); 31 dialog.setVisible(true); 32 return dialog.isOK(); 33 } 34 35 36 public CreateBinaryBundleDialog(java.awt.Frame parent, boolean modal, RMIAdminInterface admin, String defaultBundleName) 37 { 38 super(parent, modal); 39 this.admin = admin; 40 isOK = false; 41 initComponents(); 42 43 bundleNameTextField.setText(defaultBundleName); 44 } 45 46 public boolean isOK() 47 { 48 return isOK; 49 } 50 51 56 private void initComponents() { 58 jPanel4 = new javax.swing.JPanel (); 59 jPanel1 = new javax.swing.JPanel (); 60 jPanel5 = new javax.swing.JPanel (); 61 bundleNameLabel = new javax.swing.JLabel (); 62 bundleNameTextField = new javax.swing.JTextField (); 63 overwriteCheckBox = new javax.swing.JCheckBox (); 64 jPanel2 = new javax.swing.JPanel (); 65 chooseInstalledBundleButton = new javax.swing.JButton (); 66 jPanel3 = new javax.swing.JPanel (); 67 CreateBinaryBundleButton = new javax.swing.JButton (); 68 cancelButton = new javax.swing.JButton (); 69 70 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 71 setTitle("Create Binary Bundle"); 72 jPanel4.setLayout(new java.awt.BorderLayout ()); 73 74 jPanel4.setMinimumSize(new java.awt.Dimension (400, 93)); 75 jPanel4.setPreferredSize(new java.awt.Dimension (400, 150)); 76 jPanel1.setLayout(new java.awt.BorderLayout ()); 77 78 jPanel1.setBorder(new javax.swing.border.EmptyBorder (new java.awt.Insets (1, 10, 1, 10))); 79 jPanel1.setMinimumSize(new java.awt.Dimension (26, 23)); 80 jPanel1.setPreferredSize(new java.awt.Dimension (26, 23)); 81 jPanel5.setLayout(new java.awt.GridLayout (3, 0)); 82 83 bundleNameLabel.setText("Bundle Name:"); 84 jPanel5.add(bundleNameLabel); 85 86 bundleNameTextField.setMinimumSize(new java.awt.Dimension (200, 21)); 87 bundleNameTextField.setPreferredSize(new java.awt.Dimension (200, 21)); 88 jPanel5.add(bundleNameTextField); 89 90 overwriteCheckBox.setText("Overwrite"); 91 jPanel5.add(overwriteCheckBox); 92 93 jPanel1.add(jPanel5, java.awt.BorderLayout.NORTH); 94 95 jPanel4.add(jPanel1, java.awt.BorderLayout.CENTER); 96 97 chooseInstalledBundleButton.setText("Choose Installed Bundle"); 98 chooseInstalledBundleButton.addActionListener(new java.awt.event.ActionListener () 99 { 100 public void actionPerformed(java.awt.event.ActionEvent evt) 101 { 102 chooseInstalledBundleButtonActionPerformed(evt); 103 } 104 }); 105 106 jPanel2.add(chooseInstalledBundleButton); 107 108 jPanel4.add(jPanel2, java.awt.BorderLayout.NORTH); 109 110 CreateBinaryBundleButton.setText("Create Binary Bundle"); 111 CreateBinaryBundleButton.addActionListener(new java.awt.event.ActionListener () 112 { 113 public void actionPerformed(java.awt.event.ActionEvent evt) 114 { 115 CreateBinaryBundleButtonActionPerformed(evt); 116 } 117 }); 118 119 jPanel3.add(CreateBinaryBundleButton); 120 121 cancelButton.setText("Cancel"); 122 cancelButton.addActionListener(new java.awt.event.ActionListener () 123 { 124 public void actionPerformed(java.awt.event.ActionEvent evt) 125 { 126 cancelButtonActionPerformed(evt); 127 } 128 }); 129 130 jPanel3.add(cancelButton); 131 132 jPanel4.add(jPanel3, java.awt.BorderLayout.SOUTH); 133 134 getContentPane().add(jPanel4, java.awt.BorderLayout.CENTER); 135 136 pack(); 137 } 139 private void chooseInstalledBundleButtonActionPerformed(java.awt.event.ActionEvent evt) { LocalInfoDesc[] localInfoDescs = null; 142 try 143 { 144 localInfoDescs = admin.localInfoDescsList(); 145 } 146 catch (RemoteException e) 147 { 148 JOptionPane.showMessageDialog(this, "RMI Error occured while accessing SOFA net node:\n" + e, "Error", JOptionPane.ERROR_MESSAGE); 149 return; 150 } 151 152 int size = 0; 153 int i; 154 for (i = 0; i < localInfoDescs.length; i++) 155 { 156 if (localInfoDescs[i].isInstalled()) size++; 157 } 158 159 LocalInfoDesc[] shareClients = new LocalInfoDesc[size]; 160 int j = 0; 161 for (i = 0; i < localInfoDescs.length; i++) 162 { 163 if (localInfoDescs[i].isInstalled()) 164 { 165 shareClients[j++] = localInfoDescs[i]; 166 } 167 } 168 169 Arrays.sort(shareClients); 170 171 LocalInfoDesc result = (LocalInfoDesc)ListDialog.showDialog(this, this, "Installed Bundles:", "Choose Installed Bundle to Uninstall", shareClients, null, null, false, true); 172 if (result != null) bundleNameTextField.setText(result.bundleName); 173 } 175 private void CreateBinaryBundleButtonActionPerformed(java.awt.event.ActionEvent evt) { String bundleName = bundleNameTextField.getText(); 178 boolean overwrite = overwriteCheckBox.isSelected(); 179 180 BundleInfo bundleInfo = new BundleInfo(); 181 try 182 { 183 bundleInfo.fromBundleName(bundleName); 184 } 185 catch (BundleInfo.InvalidBundleNameException e) 186 { 187 JOptionPane.showMessageDialog(this, "Invalid name of bundle:\n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); 188 return; 189 } 190 191 try 192 { 193 admin.createBinaryBundle(bundleName, overwrite); 194 } 195 catch (RemoteException e) 196 { 197 JOptionPane.showMessageDialog(this, e, "Error", JOptionPane.ERROR_MESSAGE); 198 dispose(); 199 return; 200 } 201 catch (RMIAdminException e) 202 { 203 JOptionPane.showMessageDialog(this, e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); 204 dispose(); 205 return; 206 } 207 208 JOptionPane.showMessageDialog(this, "Binary Bundle '" + bundleName + "' successfully created"); 209 210 isOK = true; 211 dispose(); 212 } 214 private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) { dispose(); 217 } 219 220 private javax.swing.JButton CreateBinaryBundleButton; 222 private javax.swing.JLabel bundleNameLabel; 223 private javax.swing.JTextField bundleNameTextField; 224 private javax.swing.JButton cancelButton; 225 private javax.swing.JButton chooseInstalledBundleButton; 226 private javax.swing.JPanel jPanel1; 227 private javax.swing.JPanel jPanel2; 228 private javax.swing.JPanel jPanel3; 229 private javax.swing.JPanel jPanel4; 230 private javax.swing.JPanel jPanel5; 231 private javax.swing.JCheckBox overwriteCheckBox; 232 234 } 235 | Popular Tags |