Package pl.net.bluesoft.rnd.processtool.ui.activity

Source Code of pl.net.bluesoft.rnd.processtool.ui.activity.QueueListPane

package pl.net.bluesoft.rnd.processtool.ui.activity;

import com.vaadin.ui.Component;
import com.vaadin.ui.Window;
import pl.net.bluesoft.rnd.processtool.ProcessToolContext;
import pl.net.bluesoft.rnd.processtool.model.BpmTask;
import pl.net.bluesoft.rnd.processtool.model.ProcessInstance;
import pl.net.bluesoft.rnd.processtool.model.ProcessInstanceFilter;
import pl.net.bluesoft.rnd.processtool.model.QueueType;
import pl.net.bluesoft.rnd.processtool.model.TaskState;
import pl.net.bluesoft.rnd.processtool.model.nonpersistent.ProcessQueue;
import pl.net.bluesoft.rnd.processtool.ui.tasks.TaskTableItem;
import pl.net.bluesoft.rnd.processtool.ui.widgets.taskitem.TaskItemProvider;
import pl.net.bluesoft.rnd.processtool.ui.widgets.taskitem.TaskItemProviderBase;
import pl.net.bluesoft.rnd.processtool.ui.widgets.taskitem.TaskItemProviderParams;

import static org.aperteworkflow.util.vaadin.VaadinExceptionHandler.Util.withErrorHandling;

/**
* @author tlipski@bluesoft.net.pl
*/
public class QueueListPane extends ProcessListPane {
    private ProcessQueue queue;

    public QueueListPane(ActivityMainPane activityMainPane) {
        super(activityMainPane, null);
    }

    public void setQueue(ProcessQueue queue) {
        this.queue = queue;
        setTitle(queue.getDescription());
    }

    @Override
    protected Component getTaskItem(final TaskTableItem tti) {
        ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext();
        ProcessInstance pi = tti.getTask().getProcessInstance();
        TaskItemProviderBase tip = getTaskItemProvider(ctx, pi);
        TaskItemProviderParams params = getTaskItemProviderParams(ctx, tti);
        params.setQueue(queue);
        return tip.getQueuePane(params);
    }

    @Override
    protected void onClick(final TaskItemProviderParams params) {
        withErrorHandling(getApplication(), new Runnable() {
            public void run() {
                BpmTask task = getBpmSession().assignTaskFromQueue(queue, params.getTask(),
                        ProcessToolContext.Util.getThreadProcessToolContext());
                if (task != null) {
                    getApplication().getMainWindow().showNotification(getMessage("process-tool.task.assigned"),
                            Window.Notification.TYPE_HUMANIZED_MESSAGE);
                    displayProcessData(task);
                }
            }
        });
    }

    protected void displayProcessData(BpmTask task) {
        activityMainPane.displayProcessData(task);
    }

    @Override
    protected ProcessInstanceFilter getDefaultFilter() {
        ProcessInstanceFilter tfi = new ProcessInstanceFilter();
        if (queue != null) {
            tfi.addQueue(queue.getName());
        }
        tfi.addQueueType(QueueType.OWN_IN_QUEUE);
        return tfi;
    }
}
TOP

Related Classes of pl.net.bluesoft.rnd.processtool.ui.activity.QueueListPane

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.