// Add the 'Parameter visibility' sub menu for all parameters of the socket if appropriate
ParamVisibilityHelper.addParamMenu(ie, modeler, socketFigure);
// 'Parameter Value Wizard' popup
final NodeFigure nodeFigure = (NodeFigure) socketFigure.getParent();
if (ParamValueWizard.isParameterValueWizardApplyable(modeler, nodeFigure, nodeParam.getSocket().getName()))
{
JaspiraAction wizardGroup = new JaspiraAction("popupwizard", null, null, null, null, 2, JaspiraAction.TYPE_GROUP);
wizardGroup.addMenuChild(new JaspiraAction(modeler, "modeler.edit.paramvaluewizard")
{
public void actionPerformed(ActionEvent e)
{
// Display parameter value wizard if appropriate
ParamValueWizard.displayParameterValueWizard(modeler, nodeFigure, nodeParam.getSocket().getName(), nodeParam.getName());
}
});
ie.add(wizardGroup);
}
// 'Create identical process variable' popup
String paramName = nodeParam.getName();
if (nodeParam.getProcess().getProcessVariableByName(paramName) == null)
{
JaspiraAction wizardGroup = new JaspiraAction("processvargroup", null, null, null, null, 2, JaspiraAction.TYPE_GROUP);
wizardGroup.addMenuChild(new JaspiraAction(modeler, "modeler.edit.createprocessvarfromparam")
{
public void actionPerformed(ActionEvent e)
{
// Forward to the process variables plugin
modeler.fireEvent("variables.createprocessvarfromparam", nodeParam);
}
});
ie.add(wizardGroup);
}
}
if (flavor [i].equals(ModelerFlavors.SOCKET_FIGURE))
{
final SocketFigure socketFigure = (SocketFigure) ie.getSafeTransferData(flavor [i]);
final NodeSocket socket = socketFigure.getNodeSocket();
// Add the 'Parameter visibility' sub menu if appropriate
ParamVisibilityHelper.addParamMenu(ie, modeler, socketFigure);
// 'Parameter Value Wizard' popup
final NodeFigure nodeFigure = (NodeFigure) socketFigure.getParent();
if (ParamValueWizard.isParameterValueWizardApplyable(modeler, nodeFigure, socket.getName()))
{
JaspiraAction wizardGroup = new JaspiraAction("popupwizard", null, null, null, null, 2, JaspiraAction.TYPE_GROUP);
wizardGroup.addMenuChild(new JaspiraAction(modeler, "modeler.edit.paramvaluewizard")
{
public void actionPerformed(ActionEvent e)
{
// Display parameter value wizard if appropriate
ParamValueWizard.displayParameterValueWizard(modeler, nodeFigure, socket.getName(), null);
}
});
ie.add(wizardGroup);
}
/* Currently unused, rathr leads to confusion
JaspiraAction socketToNodeGroup = new JaspiraAction("popupsockettonode", null, null, null, null, 2, JaspiraAction.TYPE_GROUP);
// 'Create initial node' popup
socketToNodeGroup.addMenuChild(new JaspiraAction(modeler, "modeler.edit.createentryfromsocket")
{
public void actionPerformed(ActionEvent e)
{
modeler.startUndo("Create Initial Node");
if (drawing.getProcess().getNodeByName(socket.getName()) != null)
{
// A node with this name already exists; issue a warning.
// The createFinalNodeFromSocket method will ensure that the new node
// has a unique name.
String msg = modeler.getPluginResourceCollection().getRequiredString("messages.nodealreadyexists");
JMsgBox.show(null, msg, JMsgBox.ICON_INFO);
}
// Create a node from the socket and add it to the process
NodeFigure nodeFigure = ModelerUtil.createInitialNodeFromSocket(socketFigure);
modeler.endUndo();
}
});
if (socket.isExitSocket())
{
// 'Create final node' popup
socketToNodeGroup.addMenuChild(new JaspiraAction(modeler, "modeler.edit.createexitfromsocket")
{
public void actionPerformed(ActionEvent e)
{
modeler.startUndo("Create Final Node");
if (drawing.getProcess().getNodeByName(socket.getName()) != null)
{
// A node with this name already exists; issue a warning.
// The createFinalNodeFromSocket method will ensure that the new node
// has a unique name.
String msg = modeler.getPluginResourceCollection().getRequiredString("messages.nodealreadyexists");
JMsgBox.show(null, msg, JMsgBox.ICON_INFO);
}
// Create a node from the socket and add it to the process
NodeFigure nodeFigure = ModelerUtil.createFinalNodeFromSocket(socketFigure);
modeler.endUndo();
}
});
}
ie.add(socketToNodeGroup);
*/
}
if (flavor [i].equals(ModelerFlavors.NODE_FIGURE))
{
final NodeFigure nodeFigure = (NodeFigure) ie.getSafeTransferData(flavor [i]);
group.addMenuChild(new JaspiraAction(modeler, "modeler.edit.mirrororientation")
{
public void actionPerformed(ActionEvent e)
{
modeler.startUndo("Flip Orientation");
nodeFigure.flipOrientation();
workspaceView.checkDamage();
modeler.endUndo();
}
});
group.addMenuChild(new JaspiraAction(modeler, "modeler.edit.rotateorientationcw")
{
public void actionPerformed(ActionEvent e)
{
modeler.startUndo("Rotate Orientation");
nodeFigure.changeOrientation(NodeFigure.ROTATE_CW);
workspaceView.checkDamage();
modeler.endUndo();
}
});
group.addMenuChild(new JaspiraAction(modeler, "modeler.edit.rotateorientationccw")
{
public void actionPerformed(ActionEvent e)
{
modeler.startUndo("Rotate Orientation");
nodeFigure.changeOrientation(NodeFigure.ROTATE_CCW);
workspaceView.checkDamage();
modeler.endUndo();
}
});