Search in sources :

Example 1 with Task

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

the class TaskScriptedAssignmentCondition method initCondition.

@Override
protected void initCondition(ISapphirePart part, String parameter) {
    super.initCondition(part, parameter);
    Task task = _task();
    Listener assignmentTypeListener = new FilteredListener<PropertyContentEvent>() {

        @Override
        public void handleTypedEvent(PropertyContentEvent event) {
            updateConditionState();
        }
    };
    if (task != null) {
        task.attach(assignmentTypeListener, Task.PROP_SCRIPTED_ASSIGNMENT.name());
    }
    updateConditionState();
}
Also used : FilteredListener(org.eclipse.sapphire.FilteredListener) PropertyContentEvent(org.eclipse.sapphire.PropertyContentEvent) Task(com.liferay.ide.kaleo.core.model.Task) FilteredListener(org.eclipse.sapphire.FilteredListener) Listener(org.eclipse.sapphire.Listener)

Example 2 with Task

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

the class ChangeTaskAssignmentsActionHandler method run.

@Override
protected Object run(Presentation context) {
    Task task = _task(context);
    ChangeTaskAssignmentsOp op = ChangeTaskAssignmentsOp.TYPE.instantiate();
    for (WorkflowNode node : task.nearest(WorkflowDefinition.class).getDiagramNodes()) {
        Assignable assignable = node.nearest(Assignable.class);
        if (assignable != null) {
            for (Role role : assignable.getRoles()) {
                String name = role.getName().content(false);
                if (!isNullOrEmpty(name)) {
                    ElementList<RoleName> roleName = op.getRoleNames();
                    roleName.insert().setName(name);
                }
            }
        }
    }
    User existingUser = task.getUser().content(false);
    ElementList<Role> existingRoles = task.getRoles();
    ElementList<ResourceAction> existingActions = task.getResourceActions();
    Scriptable scriptedAssignment = task.getScriptedAssignment().content(false);
    if (existingUser != null) {
        op.getImpliedUser().copy(existingUser);
    } else if (ListUtil.isNotEmpty(existingRoles)) {
        op.getImpliedRole().copy(existingRoles.get(0));
        for (Role role : existingRoles) {
            Role newRole = op.getRoles().insert();
            newRole.copy(role);
            Boolean autoCreate = role.getAutoCreate().content(false);
            if (autoCreate != null) {
                newRole.setAutoCreate(role.getAutoCreate().content());
            }
        }
    } else if (ListUtil.isNotEmpty(existingActions)) {
        for (ResourceAction action : existingActions) {
            ElementList<ResourceAction> resourceActions = op.getResourceActions();
            ResourceAction resourceAction = resourceActions.insert();
            resourceAction.copy(action);
        }
    } else if (scriptedAssignment != null) {
        ElementHandle<Scriptable> scriptable = op.getScriptedAssignment();
        Scriptable content = scriptable.content(true);
        content.copy(scriptedAssignment);
    }
    DefinitionLoader loader = DefinitionLoader.context(NewWorkflowDefinitionWizard.class);
    DefinitionLoader loaderSdef = loader.sdef("WorkflowDefinitionWizards");
    SapphireWizard<ChangeTaskAssignmentsOp> wizard = new SapphireWizard<>(op, loaderSdef.wizard("changeTaskAssignmentsWizard"));
    int returnCode = new WizardDialog(((SwtPresentation) context).shell(), wizard).open();
    if (returnCode == IDialogConstants.OK_ID) {
        KaleoModelUtil.changeTaskAssignments(_task(context), op);
    }
    return null;
}
Also used : SapphireWizard(org.eclipse.sapphire.ui.forms.swt.SapphireWizard) Task(com.liferay.ide.kaleo.core.model.Task) User(com.liferay.ide.kaleo.core.model.User) WorkflowDefinition(com.liferay.ide.kaleo.core.model.WorkflowDefinition) Scriptable(com.liferay.ide.kaleo.core.model.Scriptable) WorkflowNode(com.liferay.ide.kaleo.core.model.WorkflowNode) Role(com.liferay.ide.kaleo.core.model.Role) RoleName(com.liferay.ide.kaleo.core.model.RoleName) DefinitionLoader(org.eclipse.sapphire.ui.def.DefinitionLoader) ElementHandle(org.eclipse.sapphire.ElementHandle) SwtPresentation(org.eclipse.sapphire.ui.forms.swt.SwtPresentation) WizardDialog(org.eclipse.jface.wizard.WizardDialog) ChangeTaskAssignmentsOp(com.liferay.ide.kaleo.core.op.ChangeTaskAssignmentsOp) Assignable(com.liferay.ide.kaleo.core.model.Assignable) ResourceAction(com.liferay.ide.kaleo.core.model.ResourceAction)

Example 3 with Task

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

the class TaskActionsDiagramNodeEditHandlerFactory method getActions.

@Override
protected ElementList<Action> getActions() {
    ElementList<Action> actions = null;
    Task task = getModelElement().nearest(Task.class);
    if (task != null) {
        actions = task.getTaskActions();
    }
    return actions;
}
Also used : Action(com.liferay.ide.kaleo.core.model.Action) Task(com.liferay.ide.kaleo.core.model.Task)

Example 4 with Task

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

the class TaskNodeAddActionHandler method postDiagramNodePartAdded.

@Override
public void postDiagramNodePartAdded(NewNodeOp op, CanTransition newNodeFromWizard, CanTransition newNode) {
    Task newTask = newNode.nearest(Task.class);
    NewTaskNode newTaskFromWizard = newNodeFromWizard.nearest(NewTaskNode.class);
    KaleoModelUtil.changeTaskAssignments(newTask, op.nearest(AssignableOp.class));
    for (Action taskAction : newTaskFromWizard.getTaskActions()) {
        ElementList<Action> action = newTask.getTaskActions();
        Action insertAction = action.insert();
        insertAction.copy(taskAction);
    }
    for (INewTaskNotification taskNotification : newTaskFromWizard.getNewTaskNotifications()) {
        ActionNotification newTaskNotification = newTask.getTaskNotifications().insert();
        newTaskNotification.setName(taskNotification.getName().content());
        newTaskNotification.setExecutionType(taskNotification.getExecutionType().content());
        newTaskNotification.setTemplateLanguage(taskNotification.getTemplateLanguage().content());
    }
}
Also used : AssignableOp(com.liferay.ide.kaleo.core.op.AssignableOp) Task(com.liferay.ide.kaleo.core.model.Task) Action(com.liferay.ide.kaleo.core.model.Action) INewTaskNotification(com.liferay.ide.kaleo.core.op.NewTaskNode.INewTaskNotification) NewTaskNode(com.liferay.ide.kaleo.core.op.NewTaskNode) ActionNotification(com.liferay.ide.kaleo.core.model.ActionNotification)

Example 5 with Task

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

the class ScriptableOpenActionHandler method scriptable.

protected Scriptable scriptable(Presentation context) {
    Scriptable retval = null;
    ISapphirePart part = context.part();
    if (part instanceof DetailSectionPart) {
        DetailSectionPart pageBook = part.nearest(DetailSectionPart.class);
        FormPart currentPage = pageBook.getCurrentPage();
        Element element = currentPage.getLocalModelElement();
        retval = element.nearest(Scriptable.class);
    } else {
        Element modelElement = context.part().getLocalModelElement();
        if (modelElement instanceof Task) {
            Task task = modelElement.nearest(Task.class);
            ElementHandle<Scriptable> scriptable = task.getScriptedAssignment();
            retval = scriptable.content(false);
        } else {
            retval = modelElement.nearest(Scriptable.class);
        }
    }
    return retval;
}
Also used : Task(com.liferay.ide.kaleo.core.model.Task) FormPart(org.eclipse.sapphire.ui.forms.FormPart) Element(org.eclipse.sapphire.Element) ISapphirePart(org.eclipse.sapphire.ui.ISapphirePart) Scriptable(com.liferay.ide.kaleo.core.model.Scriptable) DetailSectionPart(org.eclipse.sapphire.ui.forms.DetailSectionPart)

Aggregations

Task (com.liferay.ide.kaleo.core.model.Task)13 Action (com.liferay.ide.kaleo.core.model.Action)4 ActionNotification (com.liferay.ide.kaleo.core.model.ActionNotification)4 WorkflowDefinition (com.liferay.ide.kaleo.core.model.WorkflowDefinition)4 ActionTimer (com.liferay.ide.kaleo.core.model.ActionTimer)3 Node (com.liferay.ide.kaleo.core.model.Node)3 State (com.liferay.ide.kaleo.core.model.State)3 Transition (com.liferay.ide.kaleo.core.model.Transition)3 Element (org.eclipse.sapphire.Element)3 Condition (com.liferay.ide.kaleo.core.model.Condition)2 Fork (com.liferay.ide.kaleo.core.model.Fork)2 Join (com.liferay.ide.kaleo.core.model.Join)2 Scriptable (com.liferay.ide.kaleo.core.model.Scriptable)2 TaskActionNotification (com.liferay.ide.kaleo.core.model.TaskActionNotification)2 ArrayList (java.util.ArrayList)2 Assignable (com.liferay.ide.kaleo.core.model.Assignable)1 CanTransition (com.liferay.ide.kaleo.core.model.CanTransition)1 JoinXor (com.liferay.ide.kaleo.core.model.JoinXor)1 NotificationTransport (com.liferay.ide.kaleo.core.model.NotificationTransport)1 Position (com.liferay.ide.kaleo.core.model.Position)1