1 19 20 package org.netbeans.modules.websvc.registry.actions; 21 22 import java.awt.Dialog ; 23 import javax.swing.event.DocumentListener ; 24 import javax.swing.text.BadLocationException ; 25 import javax.swing.text.Document ; 26 import org.netbeans.modules.websvc.registry.model.WebServiceGroup; 27 import org.netbeans.modules.websvc.registry.model.WebServiceListModel; 28 import org.openide.DialogDescriptor; 29 import org.openide.DialogDisplayer; 30 import org.openide.NotifyDescriptor; 31 import org.openide.util.actions.NodeAction; 32 import org.openide.util.*; 33 34 import org.netbeans.modules.websvc.registry.nodes.*; 35 import org.netbeans.modules.websvc.registry.nodes.WebServiceGroupNode; 36 import org.openide.nodes.Node; 37 38 41 public class AddWebServiceGroupAction extends NodeAction { 42 43 protected boolean enable(org.openide.nodes.Node[] node) { 44 return true; 45 } 46 47 public org.openide.util.HelpCtx getHelpCtx() { 48 return HelpCtx.DEFAULT_HELP; 49 } 50 51 public String getName() { 52 return NbBundle.getMessage(AddWebServiceGroupAction.class, "ADD_GROUP"); 53 } 54 55 protected void performAction(Node[] nodes) { 56 WebServiceListModel wsNodeModel = WebServiceListModel.getInstance(); 57 AddWSGroupPanel innerPanel = new AddWSGroupPanel(); 58 DialogDescriptor dialogDesc = new DialogDescriptor(innerPanel, 59 NbBundle.getMessage(AddWebServiceGroupAction.class, "TTL_AddWSGroup")); 60 MyDocListener dl = new MyDocListener(dialogDesc,wsNodeModel); 61 innerPanel.getTFDocument().addDocumentListener(dl); 62 Dialog dialog = DialogDisplayer.getDefault().createDialog(dialogDesc); 63 dialogDesc.setValid(false); 64 dialog.setVisible(true); 65 if (NotifyDescriptor.OK_OPTION.equals(dialogDesc.getValue())) { 66 WebServiceGroup wsGroup = new WebServiceGroup(); 67 String groupName = innerPanel.getGroupName(); 68 wsGroup.setName(groupName); 69 wsNodeModel.addWebServiceGroup(wsGroup); 70 } 71 innerPanel.getTFDocument().removeDocumentListener(dl); 72 dialog.dispose(); 73 } 74 75 76 protected boolean asynchronous() { 77 return false; 78 } 79 80 82 private class MyDocListener implements DocumentListener { 83 84 private DialogDescriptor dd; 85 private WebServiceListModel wsNodeModel; 86 87 MyDocListener(DialogDescriptor dd, WebServiceListModel wsNodeModel) { 88 this.dd=dd; 89 this.wsNodeModel=wsNodeModel; 90 } 91 92 public void removeUpdate(javax.swing.event.DocumentEvent e) { 93 update(e); 94 } 95 96 public void insertUpdate(javax.swing.event.DocumentEvent e) { 97 update(e); 98 } 99 100 public void changedUpdate(javax.swing.event.DocumentEvent e) { 101 update(e); 102 } 103 104 public void update(javax.swing.event.DocumentEvent e) { 105 Document doc = e.getDocument(); 106 try { 107 String text = doc.getText(0,doc.getLength()).trim(); 108 if (text.length()==0 || wsNodeModel.findWebServiceGroup(text) !=null) { 109 dd.setValid(false); 110 return; 111 } 112 } catch (BadLocationException ex){} 113 dd.setValid(true); 114 } 115 116 } 117 118 } 119 | Popular Tags |