1 19 20 package org.netbeans.modules.xml.schema.abe.navigator; 21 22 import java.util.Collection ; 23 import javax.swing.JComponent ; 24 import org.netbeans.spi.navigator.NavigatorPanel; 25 import org.openide.loaders.DataObject; 26 import org.openide.util.Lookup; 27 import org.openide.util.LookupEvent; 28 import org.openide.util.LookupListener; 29 import org.openide.util.NbBundle; 30 import org.openide.windows.TopComponent; 31 32 37 public class ABENavigatorPanel implements LookupListener, NavigatorPanel { 38 private NavigatorContent navigator; 39 private Lookup.Result selection; 40 private DataObject dobj; 41 42 public String getDisplayHint() { 43 return NbBundle.getMessage(ABENavigatorPanel.class, 44 "LBL_NavigatorPanel_Hint"); 45 } 46 47 public String getDisplayName() { 48 return NbBundle.getMessage(ABENavigatorPanel.class, 49 "LBL_NavigatorPanel_Name"); 50 } 51 52 public JComponent getComponent() { 53 if (navigator == null) { 54 navigator = new NavigatorContent(); 55 } 56 return navigator; 57 } 58 59 public Lookup getLookup() { 60 return null; 61 } 62 63 public void panelActivated(Lookup context) { 64 getComponent(); 65 TopComponent.getRegistry().addPropertyChangeListener(navigator); 66 selection = context.lookup(new Lookup.Template(DataObject.class)); 67 selection.addLookupListener(this); 68 resultChanged(null); 69 } 70 71 public void panelDeactivated() { 72 TopComponent.getRegistry().removePropertyChangeListener(navigator); 73 selection.removeLookupListener(this); 74 selection = null; 75 navigator = null; 76 dobj = null; 77 } 78 79 public void resultChanged(LookupEvent ev) { 80 Collection selected = selection.allInstances(); 81 if (selected.size() == 1) { 82 DataObject olddobj = dobj; 83 dobj = (DataObject) selected.iterator().next(); 84 if (olddobj != dobj) { 85 navigator.show(dobj); 86 } 87 } 88 } 89 } 90 | Popular Tags |