http://docs.huihoo.com/javadoc/netbeans/5.5/org-netbeans-spi-navigator/overview-summary.html銆?br />
棣栧厛鏂板緩涓涓狽etbeans搴撳瓨錛屾ā鍧楄嚦灝戣渚濊禆“瀵艱埅API”銆?br />
鐒跺悗瀹炵幇NavigatorPanel鎺ュ彛錛?br />
/*
* author: Percival date: 12/11/09
* Have a good day!
*/
package org.hag.netbeans.plugin.rspecnavigator;
import java.io.IOException;
import java.util.Collection;
import javax.swing.JComponent;
import javax.swing.JList;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import org.netbeans.spi.navigator.NavigatorPanel;
import org.openide.filesystems.FileObject;
import org.openide.util.Exceptions;
import org.openide.util.Lookup;
import org.openide.util.LookupEvent;
import org.openide.util.LookupListener;
public class RspecNavigatorPanel implements NavigatorPanel {
private JList lstDescription;
private Lookup.Result<FileObject> lookupResult;
private LookupListener lookupListener;
public RspecNavigatorPanel() {
lstDescription = new JList();
lstDescription.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
RspecTag tag = (RspecTag) lstDescription.getSelectedValue();
if (tag != null) {
try {
tag.select();
} catch (IOException ex) {
Exceptions.printStackTrace(ex);
}
}
}
});
lookupListener = new LookupListener() {
public void resultChanged(LookupEvent ev) {
Collection<? extends FileObject> fileObjects = lookupResult.allInstances();
FileObject fileObject = fileObjects.isEmpty() ? null : fileObjects.iterator().next();
RspecTagListModel listModel = new RspecTagListModel(fileObject);
lstDescription.setModel(listModel);
}
};
}
public String getDisplayName() {
return "Rspec Descriptions";
}
public String getDisplayHint() {
return "Rspec Descriptions";
}
public JComponent getComponent() {
return lstDescription;
}
public void panelActivated(Lookup lookup) {
lookupResult = lookup.lookupResult(FileObject.class);
lookupResult.addLookupListener(lookupListener);
lookupListener.resultChanged(null);
}
public void panelDeactivated() {
lookupResult.removeLookupListener(lookupListener);
}
public Lookup getLookup() {
return null;
}
}
鏈鍚庡湪緋葷粺鏂囦歡緋葷粺涓敞鍐屼竴涓嬶細(xì)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.1//EN" "http://www.netbeans.org/dtds/filesystem-1_1.dtd">
<filesystem>
<folder name="Navigator">
<folder name="Panels">
<folder name="text">
<folder name="x-ruby">
<file name="org-hag-netbeans-plugin-rspecnavigator-RspecNavigatorPanel.instance"/>
</folder>
</folder>
</folder>
</folder>
</filesystem>
RspecNavigator婧愪唬鐮?/a>

]]>