use of org.talend.designer.core.ui.action.GEFCopyAction in project tdi-studio-se by Talend.
the class AbstractTalendEditor method configureGraphicalViewer.
@Override
protected void configureGraphicalViewer() {
super.configureGraphicalViewer();
/** * Manage the view in the Outline ** */
ScrollingGraphicalViewer viewer = (ScrollingGraphicalViewer) getGraphicalViewer();
viewer.setSelectionManager(new TalendSelectionManager());
TalendScalableFreeformRootEditPart root = new TalendScalableFreeformRootEditPart(getEditorInput());
List<String> zoomLevels = new ArrayList<String>();
zoomLevels.add(ZoomManager.FIT_ALL);
zoomLevels.add(ZoomManager.FIT_WIDTH);
zoomLevels.add(ZoomManager.FIT_HEIGHT);
root.getZoomManager().setZoomLevelContributions(zoomLevels);
// root.getZoomManager().setZoomAnimationStyle(ZoomManager.ANIMATE_NEVER);
IAction zoomIn = new ZoomInAction(root.getZoomManager());
IAction zoomOut = new ZoomOutAction(root.getZoomManager());
getActionRegistry().registerAction(zoomIn);
getActionRegistry().registerAction(zoomOut);
IHandlerService service = (IHandlerService) getEditorSite().getService(IHandlerService.class);
service.activateHandler(zoomIn.getActionDefinitionId(), new ActionHandler(zoomIn));
service.activateHandler(zoomOut.getActionDefinitionId(), new ActionHandler(zoomOut));
IAction directEditAction = new DirectEditAction(this);
getActionRegistry().registerAction(directEditAction);
getSelectionActions().add(directEditAction.getId());
IAction copyAction = new GEFCopyAction(this);
getActionRegistry().registerAction(copyAction);
getSelectionActions().add(copyAction.getId());
// setAction(copyAction.getId(), copyAction);
IAction pasteAction = new GEFPasteAction(this);
getActionRegistry().registerAction(pasteAction);
getSelectionActions().add(pasteAction.getId());
// setAction(pasteAction.getId(), pasteAction);
IAction deleteAction = new GEFDeleteAction(this);
getActionRegistry().registerAction(deleteAction);
getSelectionActions().add(deleteAction.getId());
// setAction(deleteAction.getId(), deleteAction);
IAction undoAction = new GEFUndoAction(this);
getActionRegistry().registerAction(undoAction);
getSelectionActions().add(undoAction.getId());
IAction redoAction = new GEFRedoAction(this);
getActionRegistry().registerAction(redoAction);
getSelectionActions().add(redoAction.getId());
IAction setRefAction = new ConnectionSetAsMainRef(this);
getActionRegistry().registerAction(setRefAction);
getSelectionActions().add(setRefAction.getId());
IAction modifyMergeAction = new ModifyMergeOrderAction(this);
getActionRegistry().registerAction(modifyMergeAction);
getSelectionActions().add(modifyMergeAction.getId());
IAction modifyOutputOrderAction = new ModifyOutputOrderAction(this);
getActionRegistry().registerAction(modifyOutputOrderAction);
getSelectionActions().add(modifyOutputOrderAction.getId());
List<IAction> calcOrderActions = ModifyConnectionOrderAction.getOrderActions(this);
for (IAction orderAction : calcOrderActions) {
getActionRegistry().registerAction(orderAction);
getSelectionActions().add(orderAction.getId());
}
viewer.setRootEditPart(root);
PartFactory partFactory = new PartFactory();
// set the factory to use for creating EditParts for elements in the model
getGraphicalViewer().setEditPartFactory(partFactory);
getGraphicalViewer().setKeyHandler(new NodePartKeyHander(getGraphicalViewer()).setParent(getCommonKeyHandler()));
// GraphicalViewer graViewer = getGraphicalViewer();
// graViewer.setKeyHandler(new GraphicalViewerKeyHandler(graViewer));
initializeActivationCodeTrigger();
/** * Management of the context menu ** */
ContextMenuProvider cmProvider = new TalendEditorContextMenuProvider(this, viewer, getActionRegistry());
viewer.setContextMenu(cmProvider);
/** * Management of the Zoom ** */
/*
* ZoomManager manager = (ZoomManager) getGraphicalViewer().getProperty(ZoomManager.class.toString()); if
* (manager != null) { manager.setZoom(getProcess().getZoom()); }
*/
// Scroll-wheel Zoom
getGraphicalViewer().setProperty(MouseWheelHandler.KeyGenerator.getKey(SWT.MOD1), MouseWheelZoomHandler.SINGLETON);
/** * Snap To Grid ** */
// Grid properties
getGraphicalViewer().setProperty(SnapToGrid.PROPERTY_GRID_SPACING, new Dimension(AbstractTalendEditor.GRID_SIZE, AbstractTalendEditor.GRID_SIZE));
getGraphicalViewer().setProperty(SnapToGrid.PROPERTY_GRID_ENABLED, new Boolean(true));
// We keep grid visibility and enablement in sync
getGraphicalViewer().setProperty(SnapToGrid.PROPERTY_GRID_VISIBLE, new Boolean(true));
IAction showGrid = new ToggleGridAction(getGraphicalViewer());
getActionRegistry().registerAction(showGrid);
/** * Snap To Geometry ** */
getGraphicalViewer().setProperty(SnapToGeometry.PROPERTY_SNAP_ENABLED, new Boolean(false));
IAction snapAction = new ToggleSnapToGeometryAction(getGraphicalViewer());
getActionRegistry().registerAction(snapAction);
configurationSubJob(viewer);
}
use of org.talend.designer.core.ui.action.GEFCopyAction in project tdi-studio-se by Talend.
the class TalendEditorContextMenuProvider method buildContextMenu.
/**
* Called when the context menu is about to show. Actions, whose state is enabled, will appear in the context menu.
*
* @see org.eclipse.gef.ContextMenuProvider#buildContextMenu(org.eclipse.jface.action.IMenuManager)
*/
@Override
public void buildContextMenu(final IMenuManager menu) {
if (!isEnableContextMenu()) {
return;
}
// Add standard action groups to the menu
menu.add(new Separator(GROUP_CONNECTIONS));
menu.add(new Separator(GEFActionConstants.GROUP_UNDO));
menu.add(new Separator(GEFActionConstants.GROUP_COPY));
menu.add(new Separator(GEFActionConstants.GROUP_EDIT));
menu.add(new Separator(GEFActionConstants.GROUP_REST));
menu.add(new Separator(GROUP_OTHER));
menu.add(new Separator(GEFActionConstants.GROUP_VIEW));
menu.add(new Separator(GROUP_BREAKPOINT));
IAction action;
// target group id
menu.appendToGroup(// target group id
GEFActionConstants.GROUP_UNDO, // action to add
getAction(ActionFactory.UNDO.getId()));
menu.appendToGroup(GEFActionConstants.GROUP_UNDO, getAction(ActionFactory.REDO.getId()));
if (part != null) {
// new GEFCopyAction(part);
action = getAction(ActionFactory.COPY.getId());
if (action instanceof GEFCopyAction) {
((GEFCopyAction) action).update();
}
menu.appendToGroup(GEFActionConstants.GROUP_EDIT, action);
// new GEFPasteAction(part);
action = getAction(ActionFactory.PASTE.getId());
GEFPasteAction pasteAction = (GEFPasteAction) action;
Point p = Display.getCurrent().getCursorLocation();
p = this.getViewer().getControl().toControl(p);
// gcui see bug 7812:Copy/Paste component in Job designer.
LayerManager layerManager = (LayerManager) this.getViewer().getEditPartRegistry().get(LayerManager.ID);
IFigure contentLayer = layerManager.getLayer(LayerConstants.PRINTABLE_LAYERS);
// System.out.println("X:" + contentLayer.getSize().width + " Y:" + contentLayer.getSize().height);
org.eclipse.draw2d.geometry.Point p1 = new org.eclipse.draw2d.geometry.Point(p.x, p.y);
contentLayer.translateToAbsolute(p1);
// System.out.println("relative:" + p);
p.x = 2 * (p.x) - p1.x;
p.y = 2 * (p.y) - p1.y;
// System.out.println("absolute:" + p);
pasteAction.setCursorLocation(p);
menu.appendToGroup(GEFActionConstants.GROUP_EDIT, action);
menu.appendToGroup(GEFActionConstants.GROUP_EDIT, getAction(ActionFactory.DELETE.getId()));
menu.appendToGroup(GEFActionConstants.GROUP_EDIT, getAction(ActionFactory.SELECT_ALL.getId()));
action = new ActivateElementAction(part);
((ActivateElementAction) action).update();
if (action.isEnabled()) {
menu.appendToGroup(GEFActionConstants.GROUP_REST, action);
}
action = new ActivateSubjobAction(part);
((ActivateSubjobAction) action).update();
if (action.isEnabled()) {
menu.appendToGroup(GEFActionConstants.GROUP_REST, action);
}
action = new ActivateSubjobOneComponentAction(part);
((ActivateSubjobOneComponentAction) action).update();
if (action.isEnabled()) {
menu.appendToGroup(GEFActionConstants.GROUP_REST, action);
}
action = getAction(ConnectionSetAsMainRef.ID);
if (action.isEnabled()) {
menu.appendToGroup(GEFActionConstants.GROUP_REST, action);
}
action = getAction(ModifyMergeOrderAction.ID);
if (action.isEnabled()) {
menu.appendToGroup(GEFActionConstants.GROUP_REST, action);
}
action = getAction(ModifyOutputOrderAction.ID);
if (action.isEnabled()) {
menu.appendToGroup(GEFActionConstants.GROUP_REST, action);
}
List<String> orderActionIDs = ModifyConnectionOrderAction.getOrderActionIDs();
for (String id : orderActionIDs) {
action = getAction(id);
if (action != null && action.isEnabled()) {
menu.appendToGroup(GEFActionConstants.GROUP_REST, action);
}
}
//$NON-NLS-1$
MenuManager subMenu = new MenuManager(Messages.getString("TalendEditorContextMenuProvider.Row"));
menu.appendToGroup(GROUP_CONNECTIONS, subMenu);
action = new ConnectionCreateAction(part, EConnectionType.FLOW_MAIN);
((ConnectionCreateAction) action).update();
List<INodeConnector> connectors = ((ConnectionCreateAction) action).getConnectors();
if (connectors.size() > 1) {
for (INodeConnector connector : connectors) {
if (connector.isMultiSchema()) {
action = new ConnectionCreateAction(part, connector);
((ConnectionCreateAction) action).update();
if (action.isEnabled() && connector.isShow()) {
List<String> menuList = ((ConnectionCreateAction) action).getMenuList();
for (int i = 0; i < menuList.size(); i++) {
action = new ConnectionCreateAction(part, connector);
((ConnectionCreateAction) action).update();
((ConnectionCreateAction) action).setText(menuList.get(i));
subMenu.add(action);
}
}
} else {
action = new ConnectionCreateAction(part, connector);
((ConnectionCreateAction) action).update();
if (action.isEnabled() && connector.isShow()) {
((ConnectionCreateAction) action).setText(connector.getMenuName());
subMenu.add(action);
}
}
}
} else {
if (connectors.size() == 1) {
action = new ConnectionCreateAction(part, connectors.get(0));
((ConnectionCreateAction) action).update();
if (action.isEnabled() && connectors.get(0).isShow()) {
List<String> menuList = ((ConnectionCreateAction) action).getMenuList();
for (int i = 0; i < menuList.size(); i++) {
action = new ConnectionCreateAction(part, connectors.get(0));
((ConnectionCreateAction) action).update();
((ConnectionCreateAction) action).setText(menuList.get(i));
subMenu.add(action);
}
}
}
}
retrieveConnectors(subMenu, EConnectionType.ITERATE);
retrieveConnectors(subMenu, EConnectionType.ROUTE);
retrieveConnectors(subMenu, EConnectionType.ROUTE_TRY);
retrieveConnectors(subMenu, EConnectionType.ROUTE_CATCH);
retrieveConnectors(subMenu, EConnectionType.ROUTE_FINALLY);
retrieveConnectors(subMenu, EConnectionType.ROUTE_ENDBLOCK);
//$NON-NLS-1$
subMenu = new MenuManager("Link");
menu.appendToGroup(GROUP_CONNECTIONS, subMenu);
action = new ConnectionCreateAction(part, EConnectionType.TABLE);
((ConnectionCreateAction) action).update();
if (action.isEnabled()) {
List<String> menuList = ((ConnectionCreateAction) action).getMenuList();
for (int i = 0; i < menuList.size(); i++) {
action = new ConnectionCreateAction(part, EConnectionType.TABLE);
((ConnectionCreateAction) action).update();
((ConnectionCreateAction) action).setText(menuList.get(i));
subMenu.add(action);
}
}
//$NON-NLS-1$
subMenu = new MenuManager("Move to joblet");
menu.appendToGroup(GROUP_OTHER, subMenu);
action = getMoveToJobletAction(part, null, null);
if (action != null) {
((AddToJobletAction) action).update();
List<Node> nodeList = ((AddToJobletAction) action).getJobletNodeList();
Map<INode, IConnection> nodeMap = ((AddToJobletAction) action).getJobletNodeMap();
if (nodeList != null) {
for (Node jobletNode : nodeList) {
action = getMoveToJobletAction(part, jobletNode, nodeMap);
if (action != null) {
((AddToJobletAction) action).update();
action.setText(jobletNode.getLabel());
subMenu.add(action);
}
}
}
}
action = getMoveToJobAction(part);
if (action != null) {
((SelectionAction) action).update();
if (action.isEnabled()) {
menu.appendToGroup(GROUP_OTHER, action);
}
}
//$NON-NLS-1$
subMenu = new MenuManager(Messages.getString("TalendEditorContextMenuProvider.Trigger"));
menu.appendToGroup(GROUP_CONNECTIONS, subMenu);
/*
* action = new ConnectionCreateAction(part, EConnectionType.RUN_BEFORE); ((ConnectionCreateAction)
* action).update(); if (action.isEnabled()) { subMenu.add(action); }
*/
retrieveConnectors(subMenu, EConnectionType.ON_SUBJOB_OK);
retrieveConnectors(subMenu, EConnectionType.ON_SUBJOB_ERROR);
subMenu.add(new Separator());
retrieveConnectors(subMenu, EConnectionType.SYNCHRONIZE);
retrieveConnectors(subMenu, EConnectionType.PARALLELIZE);
subMenu.add(new Separator());
retrieveConnectors(subMenu, EConnectionType.RUN_IF);
retrieveConnectors(subMenu, EConnectionType.ROUTE_WHEN);
retrieveConnectors(subMenu, EConnectionType.ROUTE_OTHER);
retrieveConnectors(subMenu, EConnectionType.ON_COMPONENT_OK);
retrieveConnectors(subMenu, EConnectionType.ON_COMPONENT_ERROR);
retrieveConnectors(subMenu, EConnectionType.STARTS);
action = new NodeBreakpointAction(part);
((NodeBreakpointAction) action).update();
if (action.isEnabled()) {
menu.appendToGroup(GEFActionConstants.GROUP_REST, action);
}
action = new ShowComponentSettingViewerAction(part);
((ShowComponentSettingViewerAction) action).update();
if (action.isEnabled()) {
menu.appendToGroup(GROUP_OTHER, action);
}
action = new DisplaySubjobAction(part);
((SelectionAction) action).update();
if (action.isEnabled()) {
menu.appendToGroup(GROUP_OTHER, action);
}
if (PluginChecker.isAutoParalelPluginLoaded()) {
action = new SetParallelizationAction(part);
((SelectionAction) action).update();
if (action.isEnabled()) {
menu.appendToGroup(GROUP_OTHER, action);
}
action = new DisableParallelizationAction(part);
((SelectionAction) action).update();
if (action.isEnabled()) {
menu.appendToGroup(GROUP_OTHER, action);
}
}
// see feature 5027
action = new ParallelExecutionAction(part);
((SelectionAction) action).update();
if (PluginChecker.isTeamEdition() && action.isEnabled()) {
menu.appendToGroup(GROUP_OTHER, action);
}
action = new SearchComponentAction(part);
((SelectionAction) action).update();
if (action.isEnabled()) {
menu.appendToGroup(GROUP_OTHER, action);
}
action = new TraceEnableAction(part);
((SelectionAction) action).update();
if (action.isEnabled()) {
menu.appendToGroup(GROUP_BREAKPOINT, action);
}
action = new TraceDisableAction(part);
((SelectionAction) action).update();
if (action.isEnabled()) {
menu.appendToGroup(GROUP_BREAKPOINT, action);
}
action = new FilterTraceColumnAction(part);
((SelectionAction) action).update();
if (action.isEnabled()) {
menu.appendToGroup(GROUP_BREAKPOINT, action);
}
action = new ShowBreakpointAction(part);
((SelectionAction) action).update();
if (action.isEnabled()) {
menu.appendToGroup(GROUP_BREAKPOINT, action);
}
action = new OpenJobHierarchyAction(part);
((SelectionAction) action).update();
if (action.isEnabled()) {
menu.appendToGroup(GROUP_OTHER, action);
}
action = new OpentRunJobComponentAction(part);
((SelectionAction) action).update();
if (action.isEnabled()) {
menu.appendToGroup(GEFActionConstants.GROUP_VIEW, action);
}
action = new BringForwardAction(part);
((SelectionAction) action).update();
if (action.isEnabled()) {
menu.appendToGroup(GEFActionConstants.GROUP_VIEW, action);
}
action = new BringToFrontAction(part);
((SelectionAction) action).update();
if (action.isEnabled()) {
menu.appendToGroup(GEFActionConstants.GROUP_VIEW, action);
}
action = new SendBackwardAction(part);
((SelectionAction) action).update();
if (action.isEnabled()) {
menu.appendToGroup(GEFActionConstants.GROUP_VIEW, action);
}
action = new SendToBackAction(part);
((SelectionAction) action).update();
if (action.isEnabled()) {
menu.appendToGroup(GEFActionConstants.GROUP_VIEW, action);
}
List<SelectionAction> instances = CustomExternalActions.getInstances(part);
for (SelectionAction selectionAction : instances) {
selectionAction.update();
if (selectionAction.isEnabled()) {
menu.appendToGroup(GEFActionConstants.GROUP_VIEW, selectionAction);
}
}
}
}
Aggregations