new ServiceTrackerCustomizer() {
public void removedService(ServiceReference sr, Object service) {
// remove node from navi tree
for (int i = 0; i < pluginNode.getChildCount(); i++) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) pluginNode.getChildAt(i);
PluginConfigGUI gui = (PluginConfigGUI) node.getUserObject();
if (gui == service) {
naviModel.removeNodeFromParent(node);
}
}
// remove panel from main panel
cards.removeLayoutComponent((Component)service);
mainPanel.remove((Component)service);
}
public void modifiedService(ServiceReference arg0, Object arg1) {
}
public Object addingService(ServiceReference sr) {
PluginConfigGUI gui = (PluginConfigGUI) sr.getBundle().getBundleContext().getService(sr);
addPlugin(gui);
return gui;
}
});
}