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 UnshareBundleDialog 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 UnshareBundleDialog dialog = new UnshareBundleDialog(frame, true, admin, defaultBundleName); 30 dialog.setLocationRelativeTo(frameComp); 31 dialog.setVisible(true); 32 return dialog.isOK(); 33 } 34 35 36 public UnshareBundleDialog(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 recoverCheckBox = new javax.swing.JCheckBox (); 64 forcelCheckBox = new javax.swing.JCheckBox (); 65 jPanel2 = new javax.swing.JPanel (); 66 chooseSharedBundleButton = new javax.swing.JButton (); 67 jPanel3 = new javax.swing.JPanel (); 68 unsharelButton = new javax.swing.JButton (); 69 cancelButton = new javax.swing.JButton (); 70 71 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 72 setTitle("Unshare Bundle"); 73 jPanel4.setLayout(new java.awt.BorderLayout ()); 74 75 jPanel4.setMinimumSize(new java.awt.Dimension (400, 93)); 76 jPanel4.setPreferredSize(new java.awt.Dimension (400, 170)); 77 jPanel1.setLayout(new java.awt.BorderLayout ()); 78 79 jPanel1.setBorder(new javax.swing.border.EmptyBorder (new java.awt.Insets (1, 10, 1, 10))); 80 jPanel1.setMinimumSize(new java.awt.Dimension (26, 23)); 81 jPanel1.setPreferredSize(new java.awt.Dimension (26, 23)); 82 jPanel5.setLayout(new java.awt.GridLayout (4, 0)); 83 84 bundleNameLabel.setText("Bundle Name:"); 85 jPanel5.add(bundleNameLabel); 86 87 bundleNameTextField.setMinimumSize(new java.awt.Dimension (200, 21)); 88 bundleNameTextField.setPreferredSize(new java.awt.Dimension (200, 21)); 89 jPanel5.add(bundleNameTextField); 90 91 recoverCheckBox.setSelected(true); 92 recoverCheckBox.setText("Recover Licences from Share Clients"); 93 jPanel5.add(recoverCheckBox); 94 95 forcelCheckBox.setText("Force (unshare even if not all licences recovered)"); 96 jPanel5.add(forcelCheckBox); 97 98 jPanel1.add(jPanel5, java.awt.BorderLayout.NORTH); 99 100 jPanel4.add(jPanel1, java.awt.BorderLayout.CENTER); 101 102 chooseSharedBundleButton.setText("Choose Shared Bundle"); 103 chooseSharedBundleButton.addActionListener(new java.awt.event.ActionListener () 104 { 105 public void actionPerformed(java.awt.event.ActionEvent evt) 106 { 107 chooseSharedBundleButtonActionPerformed(evt); 108 } 109 }); 110 111 jPanel2.add(chooseSharedBundleButton); 112 113 jPanel4.add(jPanel2, java.awt.BorderLayout.NORTH); 114 115 unsharelButton.setText("Unshare Bundle"); 116 unsharelButton.addActionListener(new java.awt.event.ActionListener () 117 { 118 public void actionPerformed(java.awt.event.ActionEvent evt) 119 { 120 unsharelButtonActionPerformed(evt); 121 } 122 }); 123 124 jPanel3.add(unsharelButton); 125 126 cancelButton.setText("Cancel"); 127 cancelButton.addActionListener(new java.awt.event.ActionListener () 128 { 129 public void actionPerformed(java.awt.event.ActionEvent evt) 130 { 131 cancelButtonActionPerformed(evt); 132 } 133 }); 134 135 jPanel3.add(cancelButton); 136 137 jPanel4.add(jPanel3, java.awt.BorderLayout.SOUTH); 138 139 getContentPane().add(jPanel4, java.awt.BorderLayout.CENTER); 140 141 pack(); 142 } 144 private void chooseSharedBundleButtonActionPerformed(java.awt.event.ActionEvent evt) { LocalInfoDesc[] localInfoDescs = null; 147 try 148 { 149 localInfoDescs = admin.localInfoDescsList(); 150 } 151 catch (RemoteException e) 152 { 153 JOptionPane.showMessageDialog(this, "RMI Error occured while accessing SOFA net node:\n" + e, "Error", JOptionPane.ERROR_MESSAGE); 154 return; 155 } 156 157 int size = 0; 158 int i; 159 for (i = 0; i < localInfoDescs.length; i++) 160 { 161 if (localInfoDescs[i].isShareManager()) size++; 162 } 163 164 LocalInfoDesc[] shareManagers = new LocalInfoDesc[size]; 165 int j = 0; 166 for (i = 0; i < localInfoDescs.length; i++) 167 { 168 if (localInfoDescs[i].isShareManager()) 169 { 170 shareManagers[j++] = localInfoDescs[i]; 171 } 172 } 173 174 Arrays.sort(shareManagers); 175 176 LocalInfoDesc result = (LocalInfoDesc)ListDialog.showDialog(this, this, "Shared Bundles (in Share Mananger Mode):", "Choose Shared Bundle to Unshare", shareManagers, null, null, false, true); 177 if (result != null) bundleNameTextField.setText(result.bundleName); 178 } 180 private void unsharelButtonActionPerformed(java.awt.event.ActionEvent evt) { String bundleName = bundleNameTextField.getText(); 183 boolean recoverLicences = recoverCheckBox.isSelected(); 184 boolean force = forcelCheckBox.isSelected(); 185 186 BundleInfo bundleInfo = new BundleInfo(); 187 try 188 { 189 bundleInfo.fromBundleName(bundleName); 190 } 191 catch (BundleInfo.InvalidBundleNameException e) 192 { 193 JOptionPane.showMessageDialog(this, "Invalid name of bundle:\n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); 194 return; 195 } 196 197 try 198 { 199 admin.unshareBundle(bundleName, recoverLicences, force); 200 } 201 catch (RemoteException e) 202 { 203 JOptionPane.showMessageDialog(this, e, "Error", JOptionPane.ERROR_MESSAGE); 204 dispose(); 205 return; 206 } 207 catch (RMIAdminException e) 208 { 209 JOptionPane.showMessageDialog(this, e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); 210 dispose(); 211 return; 212 } 213 214 JOptionPane.showMessageDialog(this, "Bundle '" + bundleName + "' successfully unshared"); 215 216 isOK = true; 217 dispose(); 218 } 220 private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) { dispose(); 223 } 225 226 private javax.swing.JLabel bundleNameLabel; 228 private javax.swing.JTextField bundleNameTextField; 229 private javax.swing.JButton cancelButton; 230 private javax.swing.JButton chooseSharedBundleButton; 231 private javax.swing.JCheckBox forcelCheckBox; 232 private javax.swing.JPanel jPanel1; 233 private javax.swing.JPanel jPanel2; 234 private javax.swing.JPanel jPanel3; 235 private javax.swing.JPanel jPanel4; 236 private javax.swing.JPanel jPanel5; 237 private javax.swing.JCheckBox recoverCheckBox; 238 private javax.swing.JButton unsharelButton; 239 241 } 242 | Popular Tags |