Search in sources :

Example 6 with Node

use of com.liferay.ide.kaleo.core.model.Node in project liferay-ide by liferay.

the class NotificationsListAddActionHandler method addNotificationDefaults.

public static void addNotificationDefaults(ActionNotification newNotification) {
    String defaultTemplateLanguage = KaleoModelUtil.getDefaultValue(newNotification, KaleoCore.DEFAULT_TEMPLATE_LANGUAGE_KEY, TemplateLanguageType.FREEMARKER);
    Node[] nodes = new Node[0];
    if (newNotification.nearest(Task.class) != null) {
        Task task = newNotification.nearest(Task.class);
        ElementList<TaskActionNotification> taskNotifications = task.getTaskNotifications();
        nodes = taskNotifications.toArray(new Node[0]);
    } else {
        ActionTimer actionTimer = newNotification.nearest(ActionTimer.class);
        ElementList<ActionNotification> actionNotifications = actionTimer.getNotifications();
        nodes = actionNotifications.toArray(new Node[0]);
    }
    String newName = getDefaultName("newNotification1", newNotification, nodes);
    newNotification.setName(newName);
    newNotification.setTemplateLanguage(defaultTemplateLanguage);
    newNotification.setExecutionType(Executable.DEFAULT_EXECUTION_TYPE);
    if (newNotification.nearest(Task.class) != null) {
        newNotification.setTemplate("/* specify task notification template */");
    } else {
        newNotification.setTemplate("/* specify notification template */");
    }
    ElementList<NotificationTransport> notificationTransports = newNotification.getNotificationTransports();
    NotificationTransport insertTransport = notificationTransports.insert();
    insertTransport.setNotificationTransport("email");
}
Also used : ActionTimer(com.liferay.ide.kaleo.core.model.ActionTimer) NotificationTransport(com.liferay.ide.kaleo.core.model.NotificationTransport) Task(com.liferay.ide.kaleo.core.model.Task) Node(com.liferay.ide.kaleo.core.model.Node) TaskActionNotification(com.liferay.ide.kaleo.core.model.TaskActionNotification) ActionNotification(com.liferay.ide.kaleo.core.model.ActionNotification) TaskActionNotification(com.liferay.ide.kaleo.core.model.TaskActionNotification)

Example 7 with Node

use of com.liferay.ide.kaleo.core.model.Node in project liferay-ide by liferay.

the class AbstractKaleoEditorHelper method openEditor.

public void openEditor(ISapphirePart sapphirePart, Element modelElement, ValueProperty valueProperty) {
    try {
        Object content = modelElement.property(valueProperty).content();
        if (content == null) {
            content = "";
        }
        IProject project = sapphirePart.adapt(IProject.class);
        IEditorInput editorInput = modelElement.adapt(IEditorInput.class);
        String name = editorInput.getName();
        Node node = modelElement.nearest(Node.class);
        String nodeName = node.getName().content();
        HiddenFileEditorInput hiddenFileEditorInput = _getHiddenFileEditorInput(project, name, nodeName, content.toString());
        IEditorSite editorSite = sapphirePart.adapt(IEditorSite.class);
        IWorkbenchWindow wbWindow = editorSite.getWorkbenchWindow();
        IEditorPart editorPart = wbWindow.getActivePage().openEditor(hiddenFileEditorInput, _editorId);
        ITextEditor textEditor = (ITextEditor) editorPart.getAdapter(ITextEditor.class);
        IDocumentListener documentListener = new IDocumentListener() {

            public void documentAboutToBeChanged(DocumentEvent event) {
            }

            public void documentChanged(DocumentEvent event) {
                String contents = event.getDocument().get();
                modelElement.property(valueProperty).write(contents);
            }
        };
        IDocumentProvider documentProvider = textEditor.getDocumentProvider();
        documentProvider.getDocument(hiddenFileEditorInput).addDocumentListener(documentListener);
        IWorkbenchPartSite wbPartSite = editorPart.getSite();
        IPartListener partListener = new IPartListener() {

            public void partActivated(IWorkbenchPart part) {
            }

            public void partBroughtToTop(IWorkbenchPart part) {
            }

            public void partClosed(IWorkbenchPart part) {
                if ((part != null) && part.equals(editorPart)) {
                    new WorkspaceJob("delete temp editor file") {

                        @Override
                        public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
                            try {
                                IFile file = hiddenFileEditorInput.getFile();
                                file.getParent().delete(true, null);
                            } catch (CoreException ce) {
                            }
                            return Status.OK_STATUS;
                        }
                    }.schedule(100);
                }
            }

            public void partDeactivated(IWorkbenchPart part) {
            }

            public void partOpened(IWorkbenchPart part) {
            }
        };
        wbPartSite.getPage().addPartListener(partListener);
    } catch (Exception e) {
        KaleoUI.logError("Error opening editor.", e);
    }
}
Also used : IWorkbenchWindow(org.eclipse.ui.IWorkbenchWindow) IStatus(org.eclipse.core.runtime.IStatus) ITextEditor(org.eclipse.ui.texteditor.ITextEditor) IFile(org.eclipse.core.resources.IFile) IPartListener(org.eclipse.ui.IPartListener) Node(com.liferay.ide.kaleo.core.model.Node) IDocumentListener(org.eclipse.jface.text.IDocumentListener) WorkspaceJob(org.eclipse.core.resources.WorkspaceJob) IEditorPart(org.eclipse.ui.IEditorPart) DocumentEvent(org.eclipse.jface.text.DocumentEvent) IProject(org.eclipse.core.resources.IProject) CoreException(org.eclipse.core.runtime.CoreException) PartInitException(org.eclipse.ui.PartInitException) UnsupportedEncodingException(java.io.UnsupportedEncodingException) HiddenFileEditorInput(com.liferay.ide.kaleo.ui.editor.HiddenFileEditorInput) IWorkbenchPartSite(org.eclipse.ui.IWorkbenchPartSite) IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) IDocumentProvider(org.eclipse.ui.texteditor.IDocumentProvider) CoreException(org.eclipse.core.runtime.CoreException) IWorkbenchPart(org.eclipse.ui.IWorkbenchPart) IEditorInput(org.eclipse.ui.IEditorInput) IEditorSite(org.eclipse.ui.IEditorSite)

Example 8 with Node

use of com.liferay.ide.kaleo.core.model.Node in project liferay-ide by liferay.

the class JoinNodeAddActionHandler method postDiagramNodePartAdded.

@Override
public void postDiagramNodePartAdded(NewNodeOp op, CanTransition newNodeFromWizard, CanTransition newNode) {
    NewJoinNodeOp newJoinNodeOp = op.nearest(NewJoinNodeOp.class);
    Join newJoin = newNode.nearest(Join.class);
    WorkflowDefinition workflowDefinition = newJoin.nearest(WorkflowDefinition.class);
    for (Node nodeName : newJoinNodeOp.getConnectedNodes()) {
        for (WorkflowNode diagramNode : workflowDefinition.getDiagramNodes()) {
            if (nodeName.getName().content() != null) {
                String name = nodeName.getName().content();
                if (name.equals(diagramNode.getName().content())) {
                    CanTransition canTransition = diagramNode.nearest(CanTransition.class);
                    Transition newTransition = canTransition.getTransitions().insert();
                    newTransition.setName(newJoin.getName().content());
                    newTransition.setTarget(newJoin.getName().content());
                }
            }
        }
    }
    if (newJoinNodeOp.getExitTransitionName().content() != null) {
        Transition newTransition = newJoin.getTransitions().insert();
        newTransition.setTarget(newJoinNodeOp.getExitTransitionName().content());
        newTransition.setName(newJoinNodeOp.getExitTransitionName().content());
    }
}
Also used : Node(com.liferay.ide.kaleo.core.model.Node) WorkflowNode(com.liferay.ide.kaleo.core.model.WorkflowNode) CanTransition(com.liferay.ide.kaleo.core.model.CanTransition) Transition(com.liferay.ide.kaleo.core.model.Transition) Join(com.liferay.ide.kaleo.core.model.Join) WorkflowDefinition(com.liferay.ide.kaleo.core.model.WorkflowDefinition) CanTransition(com.liferay.ide.kaleo.core.model.CanTransition) NewJoinNodeOp(com.liferay.ide.kaleo.core.op.NewJoinNodeOp) WorkflowNode(com.liferay.ide.kaleo.core.model.WorkflowNode)

Example 9 with Node

use of com.liferay.ide.kaleo.core.model.Node in project liferay-ide by liferay.

the class JoinXorNodeAddActionHandler method postDiagramNodePartAdded.

@Override
public void postDiagramNodePartAdded(NewNodeOp op, CanTransition newNodeFromWizard, CanTransition newNode) {
    NewJoinXorNodeOp newJoinXorNodeOp = op.nearest(NewJoinXorNodeOp.class);
    JoinXor newJoinXor = newNode.nearest(JoinXor.class);
    WorkflowDefinition workflowDefinition = newJoinXor.nearest(WorkflowDefinition.class);
    for (Node nodeName : newJoinXorNodeOp.getConnectedNodes()) {
        for (WorkflowNode diagramNode : workflowDefinition.getDiagramNodes()) {
            if (nodeName.getName().content() != null) {
                String name = nodeName.getName().content();
                if (name.equals(diagramNode.getName().content())) {
                    CanTransition canTransition = diagramNode.nearest(CanTransition.class);
                    Transition newTransition = canTransition.getTransitions().insert();
                    newTransition.setName(newJoinXor.getName().content());
                    newTransition.setTarget(newJoinXor.getName().content());
                }
            }
        }
    }
    if (newJoinXorNodeOp.getExitTransitionName().content() != null) {
        Transition newTransition = newJoinXor.getTransitions().insert();
        newTransition.setTarget(newJoinXorNodeOp.getExitTransitionName().content());
        newTransition.setName(newJoinXorNodeOp.getExitTransitionName().content());
    }
}
Also used : JoinXor(com.liferay.ide.kaleo.core.model.JoinXor) NewJoinXorNodeOp(com.liferay.ide.kaleo.core.op.NewJoinXorNodeOp) Node(com.liferay.ide.kaleo.core.model.Node) WorkflowNode(com.liferay.ide.kaleo.core.model.WorkflowNode) CanTransition(com.liferay.ide.kaleo.core.model.CanTransition) Transition(com.liferay.ide.kaleo.core.model.Transition) WorkflowDefinition(com.liferay.ide.kaleo.core.model.WorkflowDefinition) CanTransition(com.liferay.ide.kaleo.core.model.CanTransition) WorkflowNode(com.liferay.ide.kaleo.core.model.WorkflowNode)

Example 10 with Node

use of com.liferay.ide.kaleo.core.model.Node in project liferay-ide by liferay.

the class ActionsListAddActionHandler method addActionDefaults.

public static void addActionDefaults(Action newAction) {
    Node[] actions = new Node[0];
    if (newAction.nearest(Task.class) != null) {
        Task task = newAction.nearest(Task.class);
        actions = task.getTaskActions().toArray(new Node[0]);
    } else {
        ActionTimer actionTimer = newAction.nearest(ActionTimer.class);
        actions = actionTimer.getActions().toArray(new Node[0]);
    }
    String newName = getDefaultName("newAction1", newAction, actions);
    String defaultScriptLanguage = KaleoModelUtil.getDefaultValue(newAction, KaleoCore.DEFAULT_SCRIPT_LANGUAGE_KEY, ScriptLanguageType.GROOVY);
    newAction.setName(newName);
    newAction.setScriptLanguage(defaultScriptLanguage);
    newAction.setExecutionType(Executable.DEFAULT_EXECUTION_TYPE);
    if (newAction.nearest(Task.class) != null) {
        newAction.setScript("/* specify task action script */");
    } else {
        newAction.setScript("/* specify action script */");
    }
}
Also used : ActionTimer(com.liferay.ide.kaleo.core.model.ActionTimer) Task(com.liferay.ide.kaleo.core.model.Task) Node(com.liferay.ide.kaleo.core.model.Node)

Aggregations

Node (com.liferay.ide.kaleo.core.model.Node)11 CanTransition (com.liferay.ide.kaleo.core.model.CanTransition)5 Transition (com.liferay.ide.kaleo.core.model.Transition)5 WorkflowDefinition (com.liferay.ide.kaleo.core.model.WorkflowDefinition)5 Join (com.liferay.ide.kaleo.core.model.Join)3 Task (com.liferay.ide.kaleo.core.model.Task)3 WorkflowNode (com.liferay.ide.kaleo.core.model.WorkflowNode)3 ActionTimer (com.liferay.ide.kaleo.core.model.ActionTimer)2 Fork (com.liferay.ide.kaleo.core.model.Fork)2 JoinXor (com.liferay.ide.kaleo.core.model.JoinXor)2 ActionNotification (com.liferay.ide.kaleo.core.model.ActionNotification)1 Condition (com.liferay.ide.kaleo.core.model.Condition)1 NotificationTransport (com.liferay.ide.kaleo.core.model.NotificationTransport)1 State (com.liferay.ide.kaleo.core.model.State)1 TaskActionNotification (com.liferay.ide.kaleo.core.model.TaskActionNotification)1 ChooseDiagramNode (com.liferay.ide.kaleo.core.op.ChooseDiagramNode)1 NewForkNode (com.liferay.ide.kaleo.core.op.NewForkNode)1 NewForkNodeOp (com.liferay.ide.kaleo.core.op.NewForkNodeOp)1 NewJoinNodeOp (com.liferay.ide.kaleo.core.op.NewJoinNodeOp)1 NewJoinXorNodeOp (com.liferay.ide.kaleo.core.op.NewJoinXorNodeOp)1