Search in sources :

Example 6 with SapphireDiagramEditorPagePart

use of org.eclipse.sapphire.ui.diagram.editor.SapphireDiagramEditorPagePart in project liferay-ide by liferay.

the class NewNodeAddActionHandler method insertDiagramPart.

public Object insertDiagramPart(Presentation context, boolean enableDirectEditing) {
    ISapphirePart spPart = getNodeTemplate().parent();
    SapphireDiagramEditorPagePart diagramPart = (SapphireDiagramEditorPagePart) spPart;
    DiagramNodePart nodePart = getNodeTemplate().createNewDiagramNode();
    Point pt = diagramPart.getMouseLocation();
    nodePart.setNodeBounds(pt.getX(), pt.getY());
    if (enableDirectEditing) {
        // Select the new node and put it in direct-edit mode
        diagramPart.selectAndDirectEdit(nodePart);
    }
    return nodePart;
}
Also used : SapphireDiagramEditorPagePart(org.eclipse.sapphire.ui.diagram.editor.SapphireDiagramEditorPagePart) ISapphirePart(org.eclipse.sapphire.ui.ISapphirePart) Point(org.eclipse.sapphire.ui.Point) DiagramNodePart(org.eclipse.sapphire.ui.diagram.editor.DiagramNodePart)

Example 7 with SapphireDiagramEditorPagePart

use of org.eclipse.sapphire.ui.diagram.editor.SapphireDiagramEditorPagePart in project liferay-ide by liferay.

the class ShowDiagramPartActionHandler method run.

@Override
protected Object run(Presentation context) {
    SapphireDiagramEditorPagePart diagramPart = context.part().nearest(SapphireDiagramEditorPagePart.class);
    if (diagramPart != null) {
        LabelProvider labelProvider = new LabelProvider() {

            @Override
            public Image getImage(Object element) {
                if (element instanceof DiagramNodePart) {
                    DiagramNodePart diagramNodePart = (DiagramNodePart) element;
                    Element modelElement = diagramNodePart.getLocalModelElement();
                    return diagramPart.getSwtResourceCache().image(modelElement.type().image());
                } else if (element instanceof DiagramConnectionPart) {
                    return diagramPart.getSwtResourceCache().image(Transition.TYPE.image());
                } else {
                    return diagramPart.getSwtResourceCache().image(WorkflowNode.TYPE.image());
                }
            }

            @Override
            public String getText(Object element) {
                if (element instanceof DiagramNodePart) {
                    return ((DiagramNodePart) element).getId();
                } else if (element instanceof DiagramConnectionPart) {
                    return ((DiagramConnectionPart) element).getLabel();
                } else {
                    if (element != null) {
                        return element.toString();
                    }
                    return "";
                }
            }
        };
        ElementListSelectionDialog dialog = new ElementListSelectionDialog(((SwtPresentation) context).shell(), labelProvider);
        List<SapphirePart> parts = new ArrayList<>();
        parts.addAll(diagramPart.getNodes());
        parts.addAll(diagramPart.getConnections());
        dialog.setElements(parts.toArray());
        dialog.setMultipleSelection(false);
        dialog.setHelpAvailable(false);
        dialog.setTitle("Find Part");
        dialog.setMessage("Select part:");
        dialog.open();
        Object[] result = dialog.getResult();
        if ((result != null) && (result.length == 1)) {
            // select node in diagram
            ISapphirePart part = (ISapphirePart) result[0];
            if (part instanceof DiagramConnectionPart || part instanceof DiagramNodePart) {
                /*
					 * diagramPart.setSelections( ReadOnlyListFactory.create(
					 * part ) );
					 */
                SapphireDiagramEditor diagramEditor = diagramPart.adapt(SapphireDiagramEditor.class);
                GraphicalViewer viewer = diagramEditor.getGraphicalViewer();
                GraphicalEditPart editpart = diagramEditor.getGraphicalEditPart(part);
                if (editpart != null) {
                    // Force a layout first.
                    viewer.flush();
                    viewer.select(editpart);
                    viewer.reveal(editpart);
                }
            }
        }
    }
    return null;
}
Also used : GraphicalViewer(org.eclipse.gef.GraphicalViewer) Element(org.eclipse.sapphire.Element) ArrayList(java.util.ArrayList) SapphireDiagramEditor(org.eclipse.sapphire.ui.swt.gef.SapphireDiagramEditor) ISapphirePart(org.eclipse.sapphire.ui.ISapphirePart) SapphirePart(org.eclipse.sapphire.ui.SapphirePart) ISapphirePart(org.eclipse.sapphire.ui.ISapphirePart) SapphireDiagramEditorPagePart(org.eclipse.sapphire.ui.diagram.editor.SapphireDiagramEditorPagePart) ElementListSelectionDialog(org.eclipse.ui.dialogs.ElementListSelectionDialog) DiagramConnectionPart(org.eclipse.sapphire.ui.diagram.DiagramConnectionPart) LabelProvider(org.eclipse.jface.viewers.LabelProvider) GraphicalEditPart(org.eclipse.gef.GraphicalEditPart) DiagramNodePart(org.eclipse.sapphire.ui.diagram.editor.DiagramNodePart)

Aggregations

SapphireDiagramEditorPagePart (org.eclipse.sapphire.ui.diagram.editor.SapphireDiagramEditorPagePart)7 DiagramNodePart (org.eclipse.sapphire.ui.diagram.editor.DiagramNodePart)6 DiagramConnectionPart (org.eclipse.sapphire.ui.diagram.DiagramConnectionPart)4 ISapphirePart (org.eclipse.sapphire.ui.ISapphirePart)3 ConnectionService (org.eclipse.sapphire.ui.diagram.ConnectionService)3 CanTransition (com.liferay.ide.kaleo.core.model.CanTransition)2 Position (com.liferay.ide.kaleo.core.model.Position)2 Transition (com.liferay.ide.kaleo.core.model.Transition)2 WorkflowNode (com.liferay.ide.kaleo.core.model.WorkflowNode)2 WorkflowNodeMetadata (com.liferay.ide.kaleo.core.model.WorkflowNodeMetadata)2 ArrayList (java.util.ArrayList)2 Point (org.eclipse.sapphire.ui.Point)2 SapphireDiagramEditor (org.eclipse.sapphire.ui.swt.gef.SapphireDiagramEditor)2 ConnectionBendpoint (com.liferay.ide.kaleo.core.model.ConnectionBendpoint)1 TransitionMetadata (com.liferay.ide.kaleo.core.model.TransitionMetadata)1 WorkflowDefinitionEditor (com.liferay.ide.kaleo.ui.editor.WorkflowDefinitionEditor)1 GraphicalEditPart (org.eclipse.gef.GraphicalEditPart)1 GraphicalViewer (org.eclipse.gef.GraphicalViewer)1 CreationFactory (org.eclipse.gef.requests.CreationFactory)1 ConnectionCreationTool (org.eclipse.gef.tools.ConnectionCreationTool)1