Package pl.net.bluesoft.rnd.processtool

Examples of pl.net.bluesoft.rnd.processtool.ProcessToolContext


        step.setOutgoingTransitions(transitionNames);
        return step;
    }

  public String internalInvoke(final TaskWatch watch) {
    ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext();
    ProcessInstanceDAO dao = ctx.getProcessInstanceDAO();
    ProcessInstance pi = dao.getProcessInstance(Long.parseLong(processInstanceId));
    if (pi.getInternalId() == null) {
        pi.setInternalId(context.getScopeInstance().getExecution().getProcessInstance().getId());
        dao.saveProcessInstance(pi);
    }

    final ProcessToolProcessStep stepInstance = ctx.getRegistry().getStep(stepName);
    if (stepInstance == null) {
        throw new IllegalArgumentException("No step defined by name: " + stepName);
    }
    String res;
    try {
        PropertyAutoWiring.autowire(stepInstance, params);
        final BpmStep step = prepareStep(pi);
        res = watch.watchTask("actual step execution", new Callable<String>() {
        @Override
        public String call() throws Exception {
          return stepInstance.invoke(step, params);
        }
        });
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
    ctx.updateContext(pi);
    return res;
  }
View Full Code Here


    }
    return new String[]{};
  }

  private Collection<GenericPortletViewRenderer> getRegisteredViews() {
    ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext();
    ViewRegistry viewRegistry = ctx.getRegistry().getRegisteredService(ViewRegistry.class);
    return viewRegistry.getGenericPortletViews(PortletKeys.USER);
  }
View Full Code Here

        initJbpmConfiguration();
    }

    @Override
    public <T> T withExistingOrNewContext(ReturningProcessToolContextCallback<T> callback) {
        ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext();
        return ctx != null && ctx.isActive() ? callback.processWithContext(ctx) : withProcessToolContext(callback);
    }
View Full Code Here

    }

    @Override
    public <T> T withExistingOrNewContext(ReturningProcessToolContextCallback<T> callback) {
        ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext();
        return ctx != null && ctx.isActive() ? callback.processWithContext(ctx) : withProcessToolContext(callback);
    }
View Full Code Here

    public Expression params = null;

    @SuppressWarnings("unused") // it's called directly from BPM engine
    @Override
    public void execute(DelegateExecution execution) throws Exception {
        ProcessToolContext ptc = ProcessToolContext.Util.getThreadProcessToolContext();
        ProcessInstanceDAO dao = ptc.getProcessInstanceDAO();
        String processInstanceId = execution.getProcessInstanceId();
        ProcessInstance pi = dao.getProcessInstanceByInternalId(processInstanceId);

        String res;
        String stepName = (String) this.stepName.getValue(execution);
        Map params = new HashMap();
        if (this.params != null) {
            String xml = (String) this.params.getValue(execution);
            if (xml != null) {
                XStream xs = new XStream();
                xs.alias("map", java.util.Map.class);
                xs.registerConverter(new Converter() {
                    public boolean canConvert(Class clazz) {
                        return AbstractMap.class.isAssignableFrom(clazz);
                    }

                    public void marshal(Object value, HierarchicalStreamWriter writer, MarshallingContext context) {
                        AbstractMap<String, String> map = (AbstractMap<String, String>) value;
                        for (Map.Entry<String, String> entry : map.entrySet()) {
                            writer.startNode(entry.getKey().toString());
                            writer.setValue(entry.getValue().toString());
                            writer.endNode();
                        }
                    }

                    public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
                        Map<String, String> map = new HashMap<String, String>();

                        while (reader.hasMoreChildren()) {
                            reader.moveDown();
                            map.put(reader.getNodeName(), reader.getValue());
                            reader.moveUp();
                        }
                        return map;
                    }
                });
                params = (Map) xs.fromXML(xml);
            }
        }

        try {
            ProcessToolProcessStep stepInstance = ptc.getRegistry().getStep(stepName);
            if (stepInstance == null) {
                throw new IllegalArgumentException("No step defined by name: " + stepName);
            }
            processAutowiredProperties(stepInstance, params);
            res = stepInstance.invoke(prepareStep(pi, execution), params);
View Full Code Here

    this.application = application;
    initUI();
  }

  private void initUI() {
    final ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext();

    final Table table = getUserTasksTable(ctx);   
    Button addButton = new Button(getMessage("queues.add"));
    Button removeButton = new Button(getMessage("queues.remove"));
   
    Component refreshButton = refreshIcon(application, this);
        addComponent(horizontalLayout(new Label(getMessage("queues.help.short")), refreshButton));
    addComponent(table);
    HorizontalLayout hl = new HorizontalLayout();
    hl.setSpacing(true);
    hl.addComponent(addButton);
    hl.addComponent(removeButton);
    addComponent(hl);
    setSpacing(true);
   
    addButton.addListener(new ClickListener() {
      @Override
      public void buttonClick(ClickEvent event) {
        VerticalLayout pane = new VerticalLayout();
        pane.setMargin(true);
        pane.setWidth("500px");
        Form form = getAddQueueForm();
        pane.addComponent(form);
        addQueueWindow = new Window(getMessage("queues.add.title"), pane);
        addQueueWindow.setClosable(true);
        addQueueWindow.setModal(true);
        addQueueWindow.setSizeUndefined();
        addQueueWindow.setResizable(false);
        getApplication().getMainWindow().addWindow(addQueueWindow);
      }
    });
   
    removeButton.addListener(new ClickListener() {
     
      @Override
      public void buttonClick(ClickEvent event) {
        if (table.getValue() == null)
          return;
       
        ProcessQueue pq = (ProcessQueue)table.getValue();
        if (pq.getUserAdded() == null || pq.getUserAdded() == false) {
          getWindow().showNotification(getMessage("queues.remove.forbidden"));
          return;
        }
       
        final Collection<ProcessQueueConfig> queues = new ArrayList<ProcessQueueConfig>();
        ProcessQueueConfig config = new ProcessQueueConfig();
        config.setName(pq.getName());
        queues.add(config);
       
        withErrorHandling(getApplication(), new Runnable() {

          @Override
          public void run() {
            ProcessToolContext.Util.getThreadProcessToolContext().getRegistry().withProcessToolContext(new ProcessToolContextCallback() {
              @Override
              public void withContext(ProcessToolContext ctx) {
                ctx.getProcessDefinitionDAO().removeQueueConfigs(queues);
              }
            });
          }
        });
       
View Full Code Here

      new ItemClickEvent.ItemClickListener() {
        public void itemClick(final ItemClickEvent event) {
                    withErrorHandling(getApplication(), new Runnable() {
                        public void run() {
                             if (event.isDoubleClick()) {
                                 ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext();
                                 BeanItem<ProcessQueue> beanItem = bic.getItem(event.getItemId());
                                 BpmTask task = session.assignTaskFromQueue(beanItem.getBean(), ctx);
                                 if (task != null) {
                                     getWindow().executeJavaScript("Liferay.trigger('processtool.bpm.assignProcess', '"
                                             + task.getProcessInstance().getInternalId() + "');");
View Full Code Here

    return table;
  }

  public void refreshData() {
    bic.removeAllItems();
    ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext();
    for (ProcessQueue pq : session.getUserAvailableQueues(ctx)) {
      bic.addBean(pq);
    }
  }
View Full Code Here

        bic.removeAllItems();
        fillTaskList(bic);
    }

    private void fillTaskList(BeanItemContainer<TaskTableItem> bic) {
        ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext();
        List<BpmTask> tasks = session.findUserTasks(0, 1000, ctx);
        for (BpmTask task : tasks) {
            TaskTableItem tti = new TaskTableItem(task);
            if (!hasText(filterExpression) || tti.matchSearchCriteria(filterExpression)) {
                bic.addBean(tti);
View Full Code Here

        this.session = session;
        this.i18NSource = i18NSource;

        BeanItemContainer<ProcessDefinitionConfig> bic = new BeanItemContainer<ProcessDefinitionConfig>(ProcessDefinitionConfig.class);
        final ComboBox l = new ComboBox(getMessage("tasks.processType"), bic);
        ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext();

        for (ProcessDefinitionConfig cfg : session.getAvailableConfigurations(ctx)) {
            bic.addItem(cfg);
            l.setItemCaption(cfg, getMessage(cfg.getDescription()));
        }
        if (bic.size() != 0) {
            l.setValue(bic.firstItemId());
        }
        l.setNullSelectionAllowed(false);
        l.setNewItemsAllowed(false);
        l.setFilteringMode(ComboBox.FILTERINGMODE_OFF);

        l.setCaption(null);//getMessage("newProcess.caption"));
        Button b = new Button(getMessage("newProcess.start"));
        b.addStyleName("small default");
        b.addListener(new Button.ClickListener() {
            @Override
            public void buttonClick(Button.ClickEvent event) {
                if (l.getValue() == null) {
                    return;
                }
                withErrorHandling(getApplication(), new Runnable() {
                    public void run() {
                        ProcessToolContext ctx = ProcessToolContext.Util.getThreadProcessToolContext();
                        ProcessDefinitionConfig cfg = (ProcessDefinitionConfig) l.getValue();
                        cfg = ctx.getProcessDefinitionDAO().getActiveConfigurationByKey(cfg.getBpmDefinitionKey());
                        ProcessInstance instance = session.createProcessInstance(cfg, null, ctx, null, null, "portlet", null);
                        getWindow().showNotification(getMessage("newProcess.started"), 2000);
                        getWindow().executeJavaScript("Liferay.trigger('processtool.bpm.newProcess', '" + instance.getInternalId() + "');");
                        getWindow().executeJavaScript("vaadin.forceSync();");
View Full Code Here

TOP

Related Classes of pl.net.bluesoft.rnd.processtool.ProcessToolContext

Copyright © 2018 www.massapicom. 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.