in taverna-activity-palette-ui/src/main/java/org/apache/taverna/workbench/ui/servicepanel/ServiceTreeClickListener.java [92:206]
private void handleMouseEvent(MouseEvent evt) {
FilterTreeSelectionModel selectionModel = (FilterTreeSelectionModel) tree
.getSelectionModel();
// Discover the tree row that was clicked on
int selRow = tree.getRowForLocation(evt.getX(), evt.getY());
if (selRow == -1)
return;
// Get the selection path for the row
TreePath selectionPath = tree
.getPathForLocation(evt.getX(), evt.getY());
if (selectionPath == null)
return;
// Get the selected node
final FilterTreeNode selectedNode = (FilterTreeNode) selectionPath
.getLastPathComponent();
selectionModel.clearSelection();
selectionModel.mySetSelectionPath(selectionPath);
if (evt.isPopupTrigger()) {
JPopupMenu menu = new JPopupMenu();
Object selectedObject = selectedNode.getUserObject();
logger.info(selectedObject.getClass().getName());
if (!(selectedObject instanceof ServiceDescription)) {
menu.add(new ShadedLabel("Tree", BLUE));
menu.add(new JMenuItem(new AbstractAction("Expand all",
plusIcon) {
@Override
public void actionPerformed(ActionEvent evt) {
invokeLater(new Runnable() {
@Override
public void run() {
panel.expandAll(selectedNode, true);
}
});
}
}));
menu.add(new JMenuItem(new AbstractAction("Collapse all",
minusIcon) {
@Override
public void actionPerformed(ActionEvent evt) {
invokeLater(new Runnable() {
@Override
public void run() {
panel.expandAll(selectedNode, false);
}
});
}
}));
}
if (selectedObject instanceof ServiceDescription) {
final ServiceDescription sd = (ServiceDescription) selectedObject;
menu.add(new ShadedLabel(sd.getName(), ORANGE));
menu.add(new AbstractAction("Add to workflow") {
@Override
public void actionPerformed(ActionEvent e) {
WorkflowView.importServiceDescription(sd, false, editManager,
menuManager, selectionManager, serviceRegistry);
}
});
menu.add(new AbstractAction("Add to workflow with name...") {
@Override
public void actionPerformed(ActionEvent e) {
WorkflowView.importServiceDescription(sd, true, editManager,
menuManager, selectionManager, serviceRegistry);
}
});
}
Map<String, ServiceDescriptionProvider> nameMap = getServiceDescriptionProviderMap(selectedNode);
boolean first = true;
for (String name : nameMap.keySet()) {
final ServiceDescriptionProvider sdp = nameMap.get(name);
if (!(sdp instanceof ConfigurableServiceProvider))
continue;
if (first) {
menu.add(new ShadedLabel(
"Remove individual service provider", GREEN));
first = false;
}
menu.add(new AbstractAction(name) {
@Override
public void actionPerformed(ActionEvent e) {
serviceDescriptionRegistry
.removeServiceDescriptionProvider(sdp);
}
});
}
if (selectedNode.isRoot()) { // Root "Available services"
menu.add(new ShadedLabel("Default and added service providers",
ORANGE));
menu.add(new RemoveUserServicesAction(
serviceDescriptionRegistry));
menu.add(new RemoveDefaultServicesAction(
serviceDescriptionRegistry));
menu.add(new RestoreDefaultServicesAction(
serviceDescriptionRegistry));
menu.add(new ShadedLabel("Import/export services", halfShade(RED)));
menu.add(new ImportServiceDescriptionsFromFileAction(
serviceDescriptionRegistry));
menu.add(new ImportServiceDescriptionsFromURLAction(
serviceDescriptionRegistry));
menu.add(new ExportServiceDescriptionsAction(
serviceDescriptionRegistry));
}
menu.show(evt.getComponent(), evt.getX(), evt.getY());
}
}