| 1 19 package org.netbeans.modules.j2ee.websphere6.dd.loaders.appbnd; 20 21 import java.io.IOException ; 22 import org.netbeans.modules.j2ee.websphere6.dd.beans.AuthorizationsType; 23 import org.netbeans.modules.j2ee.websphere6.dd.beans.WSAppBnd; 24 import org.netbeans.modules.j2ee.websphere6.dd.loaders.WSMultiViewDataObject; 25 import org.netbeans.modules.xml.multiview.*; 26 import org.netbeans.modules.xml.multiview.ui.*; 27 import org.openide.nodes.*; 28 import org.openide.util.RequestProcessor; 29 import org.openide.util.NbBundle; 30 import org.netbeans.modules.xml.multiview.Error; 31 35 public class WSAppBndToolBarMVElement extends ToolBarMultiViewElement implements java.beans.PropertyChangeListener { 36 private ToolBarDesignEditor comp; 37 private SectionView view; 38 private WSAppBndDataObject dObj; 39 private PanelFactory factory; 40 private RequestProcessor.Task repaintingTask; 41 private boolean needInit=true; 42 private static final long serialVersionUID = 76117428339792L; 43 44 private javax.swing.Action addAuthorizationAction, removeAuthorizationAction; 45 private static final String APPBND_MV_ID = WSMultiViewDataObject.MULTIVIEW_APPBND + 46 WSMultiViewDataObject.DD_MULTIVIEW_POSTFIX; 47 public WSAppBndToolBarMVElement(WSAppBndDataObject dObj) { 48 super(dObj); 49 this.dObj=dObj; 50 comp = new ToolBarDesignEditor(); 51 factory=new PanelFactory(comp,dObj); 52 53 addAuthorizationAction = new AddAuthorizationAction(NbBundle.getMessage(WSAppBndToolBarMVElement.class,"LBL_addAuthorization")); 54 removeAuthorizationAction = new RemoveAuthorizationAction(NbBundle.getMessage(WSAppBndToolBarMVElement.class,"LBL_removeAuthorization")); 55 56 setVisualEditor(comp); 57 repaintingTask = RequestProcessor.getDefault().create(new Runnable () { 58 public void run() { 59 javax.swing.SwingUtilities.invokeLater(new Runnable () { 60 public void run() { 61 repaintView(); 62 } 63 }); 64 } 65 }); 66 } 67 68 private void repaintView() { 69 view =new WSAppBndView(dObj); 70 comp.setContentView(view); 71 Object lastActive = comp.getLastActive(); 72 if (lastActive!=null) { 73 ((SectionView)view).openPanel(lastActive); 74 } else { 75 } 77 view.checkValidity(); 78 } 80 81 82 83 public SectionView getSectionView() { 84 return view; 85 } 86 public WSAppBndView getAppBndView() { 87 return (WSAppBndView)view; 88 } 89 90 public void componentShowing() { 91 super.componentShowing(); 92 if (needInit) { 93 repaintView(); 94 needInit=false; 95 } 96 comp.setContentView(view); 98 try { 99 ((SectionView)view).openPanel(dObj.getAppBnd()); 100 } catch(java.io.IOException e) { 101 } 102 view.checkValidity(); 103 } 104 105 public void componentOpened() { 106 super.componentOpened(); 107 try { 108 dObj.getAppBnd().addPropertyChangeListener(this); 109 } catch(IOException ex) { 110 ex=null; 111 } 112 } 113 114 public void componentClosed() { 115 super.componentClosed(); 116 try { 117 dObj.getAppBnd().removePropertyChangeListener(this); 118 } catch(IOException ex) { 119 ex=null; 120 } 121 } 122 public void propertyChange(java.beans.PropertyChangeEvent evt) { 123 if (!dObj.isChangedFromUI()) { 124 String name = evt.getPropertyName(); 125 if ( name.indexOf("ApplicationBnd")>0 ) { if (APPBND_MV_ID.equals(dObj.getSelectedPerspective().preferredID())) { 128 repaintingTask.schedule(100); 129 } else { 130 needInit=true; 131 } 132 } 133 } 134 } 135 136 private class WSAppBndView extends SectionView { 137 private SectionContainer bindingsCont; 138 private WSAppBnd appbnd; 139 private SectionContainer authorizationsCont; 140 141 WSAppBndView(WSAppBndDataObject dObj) { 142 super(factory); 143 144 Children rootChildren = new Children.Array(); 145 Node root = new AbstractNode(rootChildren); 146 try { 147 this.appbnd=dObj.getAppBnd(); 148 rootChildren.add(new Node[]{ 149 createAppBndAttrNode(), 150 createAppAuthorizationsNode() 151 }); 152 } catch (java.io.IOException ex) { 153 System.out.println("ex="+ex); 154 root.setDisplayName("Invalid AppBnd"); 155 } finally { 156 setRoot(root); 157 } 158 159 } 160 161 162 public SectionContainer getAuthorizationsContainer() { 163 return authorizationsCont; 164 } 165 166 private Node createAppBndAttrNode() { 167 Node appbndNode = new WSAppBndNode(dObj); 168 addSection(new SectionPanel(this,appbndNode,appbnd)); 170 return appbndNode; 171 } 172 173 private Node createAppAuthorizationsNode() { 174 175 AuthorizationsType[] authorizations = appbnd.getAuthorizationTable().getAuthorizations(); 176 Children extch = new Children.Array(); 177 Node[] authorizationNodes=null; 178 179 if(authorizations!=null && authorizations.length>0) { 180 authorizationNodes = new Node[authorizations.length]; 181 for (int i=0;i<authorizations.length;i++) { 182 authorizationNodes[i] = new AuthorizationNode(); 183 authorizationNodes[i].setDisplayName("Authorization #"+(i+1)); 184 } 185 extch.add(authorizationNodes); 186 } 187 188 Node authorizationsNode = new SectionContainerNode(extch); 189 authorizationsNode.setDisplayName("Authorizations"); 190 191 192 authorizationsCont = new SectionContainer(this,authorizationsNode,"Authorizations"); 193 authorizationsCont.setHeaderActions(new javax.swing.Action []{addAuthorizationAction}); 194 195 196 if(authorizations!=null) { 198 SectionPanel[] pan = new SectionPanel[authorizations.length]; 199 200 for (int i=0;i<authorizations.length;i++) { 201 pan[i] = new SectionPanel(this, authorizationNodes[i], authorizations[i]); 202 pan[i].setHeaderActions(new javax.swing.Action []{removeAuthorizationAction}); 203 authorizationsCont.addSection(pan[i]); 204 } 205 } 206 addSection(authorizationsCont); 207 208 return authorizationsNode; 209 } 210 } 211 212 private class AddAuthorizationAction extends javax.swing.AbstractAction { 213 214 AddAuthorizationAction(String actionName) { 215 super(actionName); 216 } 219 public void actionPerformed(java.awt.event.ActionEvent evt) { 220 221 try{ 222 dObj.setChangedFromUI(true); 223 long time_id=java.lang.System.currentTimeMillis(); 224 WSAppBnd appbnd=dObj.getAppBnd(); 225 int number=appbnd.getAuthorizationTable().sizeAuthorizations()+1; 226 AuthorizationsType appAuthorization=new AuthorizationsType(); 227 appAuthorization.setDefaults(); 228 appbnd.getAuthorizationTable().addAuthorization(appAuthorization); 229 230 231 Node authorizationNode = new AuthorizationNode(); 232 view.getRoot().getChildren().add(new Node[]{authorizationNode}); 233 authorizationNode.setDisplayName(authorizationNode.getDisplayName()+number); 234 dObj.setChangedFromUI(true); 235 dObj.modelUpdatedFromUI(); 236 SectionPanel sectionPanel=new SectionPanel(view,authorizationNode,appAuthorization); 238 sectionPanel.setHeaderActions(new javax.swing.Action []{removeAuthorizationAction}); 239 240 ((WSAppBndView)view).getAuthorizationsContainer().addSection(sectionPanel,true); 241 dObj.setChangedFromUI(false); 242 243 } catch (java.io.IOException ex) { 244 } catch (java.lang.IllegalArgumentException ex) { 245 } 246 } 247 } 248 private class RemoveAuthorizationAction extends javax.swing.AbstractAction { 249 250 RemoveAuthorizationAction(String actionName) { 251 super(actionName); 252 } 255 256 public void actionPerformed(java.awt.event.ActionEvent evt) { 257 258 SectionPanel sectionPanel = ((SectionPanel.HeaderButton)evt.getSource()).getSectionPanel(); 259 AuthorizationsType appAuthorization = (AuthorizationsType) sectionPanel.getKey(); 260 262 try { 263 dObj.setChangedFromUI(true); 264 dObj.getAppBnd().getAuthorizationTable().removeAuthorization(appAuthorization); 265 sectionPanel.getSectionView().removeSection(sectionPanel.getNode()); 266 sectionPanel.getSectionView().updateUI(); 267 sectionPanel.updateUI(); 268 269 dObj.modelUpdatedFromUI(); 270 271 } catch (java.io.IOException ec) { 272 273 } finally { 274 dObj.setChangedFromUI(false); 275 } 276 277 } 278 } 279 280 281 public Error validateView() { 282 344 return null; 345 } 346 347 348 public static class WSAppBndNode extends org.openide.nodes.AbstractNode { 349 WSAppBndNode(WSAppBndDataObject appbnd) { 350 super(org.openide.nodes.Children.LEAF); 351 setDisplayName("Binding Deployment Information"); 353 } 355 } 356 357 public static class AuthorizationNode extends org.openide.nodes.AbstractNode { 358 359 public AuthorizationNode() { 360 super(org.openide.nodes.Children.LEAF); 361 setDisplayName("Authorization #"); 362 364 } 365 } 366 } 367 | Popular Tags |