1 19 20 package org.netbeans.modules.xml.wsdl.ui.navigator; 21 22 import java.beans.PropertyChangeEvent ; 23 import java.util.Collection ; 24 import javax.swing.JComponent ; 25 import org.netbeans.spi.navigator.NavigatorPanel; 26 import org.openide.loaders.DataObject; 27 import org.openide.util.Lookup; 28 import org.openide.util.LookupEvent; 29 import org.openide.util.LookupListener; 30 import org.openide.util.NbBundle; 31 import org.openide.windows.TopComponent; 32 33 39 public class WSDLNavigatorPanel implements LookupListener, NavigatorPanel { 40 private WSDLNavigatorContent navigator; 41 private Lookup.Result selection; 42 43 46 public WSDLNavigatorPanel() { 47 } 48 49 public String getDisplayHint() { 50 return NbBundle.getMessage(WSDLNavigatorPanel.class, 51 "LBL_WSDLNavigatorPanel_Hint"); 52 } 53 54 public String getDisplayName() { 55 return NbBundle.getMessage(WSDLNavigatorPanel.class, 56 "LBL_WSDLNavigatorPanel_Name"); 57 } 58 59 public JComponent getComponent() { 60 if (navigator == null) { 61 navigator = new WSDLNavigatorContent(); 62 } 63 return navigator; 64 } 65 66 public Lookup getLookup() { 67 return null; 68 } 69 70 public void panelActivated(Lookup context) { 71 getComponent(); 72 TopComponent.getRegistry().addPropertyChangeListener(navigator); 73 selection = context.lookup(new Lookup.Template(DataObject.class)); 74 selection.addLookupListener(this); 75 resultChanged(null); 76 navigator.propertyChange(new PropertyChangeEvent (this, 78 TopComponent.getRegistry().PROP_ACTIVATED_NODES, false, true)); 79 } 80 81 public void panelDeactivated() { 82 TopComponent.getRegistry().removePropertyChangeListener(navigator); 83 selection.removeLookupListener(this); 84 selection = null; 85 } 88 89 public void resultChanged(LookupEvent ev) { 90 Collection selected = selection.allInstances(); 91 if (selected.size() == 1) { 92 DataObject dobj = (DataObject) selected.iterator().next(); 93 navigator.navigate(dobj); 94 } 95 } 96 } 97 | Popular Tags |