in taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph/DefaultGraphEventManager.java [133:226]
private void defineMenuForGraphElement(final GraphElement graphElement,
final int x, final int y, final Processor processor,
final Activity activity) {
if (graphController.getPortStyle(processor).equals(NONE)) {
menu.addSeparator();
menu.add(new JMenuItem(new AbstractAction("Show ports") {
@Override
public void actionPerformed(ActionEvent ev) {
graphController.setPortStyle(processor, ALL);
graphController.redraw();
}
}));
} else if (graphController.getPortStyle(processor).equals(ALL)) {
menu.addSeparator();
menu.add(new JMenuItem(new AbstractAction("Hide ports") {
@Override
public void actionPerformed(ActionEvent arg0) {
graphController.setPortStyle(processor, NONE);
graphController.redraw();
}
}));
}
if (activity.getType().equals(NESTED_WORKFLOW_URI)) {
menu.addSeparator();
menu.add(new JMenuItem(new AbstractAction("Show nested workflow") {
@Override
public void actionPerformed(ActionEvent arg0) {
graphController.setExpandNestedDataflow(activity, true);
graphController.redraw();
}
}));
}
menu.addSeparator();
GraphNode graphNode = (GraphNode) graphElement;
List<GraphNode> sourceNodes = graphNode.getSourceNodes();
if (sourceNodes.size() == 1) {
final GraphNode sourceNode = sourceNodes.get(0);
if (sourceNode.getLabel() != null) {
menu.add(new JMenuItem(new AbstractAction("Link from output '"
+ sourceNode.getLabel() + "'") {
@Override
public void actionPerformed(ActionEvent arg0) {
graphController.startEdgeCreation(sourceNode,
new Point(x, y));
}
}));
}
} else if (sourceNodes.size() > 0) {
JMenu linkMenu = new JMenu("Link from output...");
menu.add(linkMenu);
for (final GraphNode sourceNode : sourceNodes) {
linkMenu.add(new JMenuItem(new AbstractAction(sourceNode
.getLabel()) {
@Override
public void actionPerformed(ActionEvent arg0) {
graphController.startEdgeCreation(sourceNode,
new Point(x, y));
}
}));
}
}
List<GraphNode> sinkNodes = graphNode.getSinkNodes();
if (sinkNodes.size() == 1) {
final GraphNode sinkNode = sinkNodes.get(0);
if (sinkNode.getLabel() != null) {
menu.add(new JMenuItem(new AbstractAction("Link to input '"
+ sinkNode.getLabel() + "'") {
@Override
public void actionPerformed(ActionEvent arg0) {
graphController.startEdgeCreation(sinkNode, new Point(
x, y));
}
}));
}
} else if (sinkNodes.size() > 0) {
JMenu linkMenu = new JMenu("Link to input...");
menu.add(linkMenu);
for (final GraphNode sinkNode : sinkNodes) {
linkMenu.add(new JMenuItem(new AbstractAction(sinkNode
.getLabel()) {
@Override
public void actionPerformed(ActionEvent arg0) {
graphController.startEdgeCreation(sinkNode, new Point(
x, y));
}
}));
}
}
}