1 19 20 package org.netbeans.modules.xml.wsdl.ui.netbeans.module; 21 22 import java.io.IOException ; 23 import javax.swing.Action ; 24 import javax.swing.undo.UndoManager ; 25 import org.netbeans.modules.xml.refactoring.CannotRefactorException; 26 import org.netbeans.modules.xml.refactoring.FileRenameRequest; 27 import org.netbeans.modules.xml.refactoring.RefactoringManager; 28 import org.netbeans.modules.xml.refactoring.ui.ModelProvider; 29 import org.netbeans.modules.xml.refactoring.ui.util.AnalysisUtilities; 30 import org.netbeans.modules.xml.wsdl.model.WSDLModel; 31 import org.netbeans.modules.xml.wsdl.ui.actions.WSDLViewOpenAction; 32 import org.openide.DialogDisplayer; 33 import org.openide.NotifyDescriptor; 34 import org.openide.loaders.DataNode; 35 import org.openide.loaders.DataObject; 36 import org.openide.nodes.Children; 37 import org.openide.util.NbBundle; 38 import org.openide.util.actions.SystemAction; 39 40 43 public class WSDLNode extends DataNode implements ModelProvider { 44 45 public WSDLNode(WSDLDataObject obj) { 46 this (obj, Children.LEAF); 47 } 48 49 private WSDLNode(DataObject obj, Children ch) { 50 super (obj, ch); 51 setIconBaseWithExtension("org/netbeans/modules/xml/wsdl/ui/netbeans/module/resources/wsdl16.png"); 52 } 53 54 public Action getPreferredAction() { 55 return SystemAction.get(WSDLViewOpenAction.class); 56 } 57 58 public void setName(String name, boolean rename) { 59 WSDLDataObject dobj = (WSDLDataObject) getDataObject(); 60 if (!rename || name != null && name.equals(dobj.getName())) { 61 return; 62 } 63 64 try { 65 WSDLEditorSupport editor = dobj.getWSDLEditorSupport(); 66 WSDLModel model = editor.getModel(); 67 UndoManager undo = editor.getUndoManager(); 68 model.removeUndoableEditListener(undo); 70 FileRenameRequest request = new FileRenameRequest(model, name); 71 try { 72 RefactoringManager.getInstance().execute(request, true); 73 if (model.startTransaction()) { 76 model.getDefinitions().setName(name); 77 } 78 } catch (CannotRefactorException cre) { 79 AnalysisUtilities.showRefactoringUI(request); 80 } finally { 81 model.endTransaction(); 82 } 83 model.addUndoableEditListener(undo); 84 editor.saveDocument(); 87 } catch (IOException ioe) { 88 String msg = NbBundle.getMessage(WSDLDataObject.class, 89 "MSG_UnableToRename", ioe.getMessage()); 90 NotifyDescriptor nd = new NotifyDescriptor.Message( 91 msg, NotifyDescriptor.ERROR_MESSAGE); 92 DialogDisplayer.getDefault().notify(nd); 93 } 94 } 95 96 public WSDLModel getModel() { 97 try { 98 WSDLDataObject dobj = (WSDLDataObject) getDataObject(); 99 return dobj.getWSDLEditorSupport().getModel(); 100 } catch(IOException ex) { 101 String msg = NbBundle.getMessage(WSDLDataObject.class, "MSG_UnableToLoadWsdl", ex.getMessage()); 102 NotifyDescriptor nd = new NotifyDescriptor.Message( 103 msg, NotifyDescriptor.ERROR_MESSAGE); 104 DialogDisplayer.getDefault().notify(nd); 105 } 106 return null; 107 } 108 } 109 | Popular Tags |