Package org.activiti.designer.property.ui

Source Code of org.activiti.designer.property.ui.MessageEditor

package org.activiti.designer.property.ui;

/**
* @author Saeid Mirzaei
*/

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.activiti.bpmn.model.Message;
import org.activiti.designer.util.eclipse.ActivitiUiUtil;
import org.activiti.designer.util.editor.Bpmn2MemoryModel;
import org.activiti.designer.util.editor.ModelHandler;
import org.apache.commons.lang.StringUtils;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.graphiti.mm.pictograms.Diagram;
import org.eclipse.graphiti.platform.IDiagramEditor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.TableItem;

public class MessageEditor extends TableFieldEditor {
 
  protected Composite parent;
  public IDiagramEditor diagramEditor;
  public Diagram diagram;
 
  public MessageEditor(String key, Composite parent) {
   
    super(key, "", new String[] {"Id", "Name"},
        new int[] {200, 200}, parent);
    this.parent = parent;
  }

  public void initialize(Collection<Message> messageList) {
    removeTableItems();
    if(messageList == null || messageList.size() == 0) return;
    for (Message message : messageList) {
      addTableItem(message);
    }
  }

  @Override
  protected String createList(String[][] items) {
    return null;
  }

  @Override
  protected String[][] parseString(String string) {
    return null;
  }
 
  protected void addTableItem(Message message) {
   
    if(table != null) {
      TableItem tableItem = new TableItem(table, SWT.NONE);
      tableItem.setText(0, message.getId());
      tableItem.setText(1, message.getName());
    }
  }

  @Override
  protected String[] getNewInputObject() {
    MessageDialog dialog = new MessageDialog(parent.getShell(), getItems());
    dialog.open();
    if(StringUtils.isNotEmpty(dialog.id) && StringUtils.isNotEmpty(dialog.name)) {
      return new String[] { dialog.id, dialog.name};
    } else {
      return null;
    }
  }
 
  @Override
  protected String[] getChangedInputObject(TableItem item) {
    MessageDialog dialog = new MessageDialog(parent.getShell(), getItems(),
            item.getText(0), item.getText(1));
    dialog.open();
    if(StringUtils.isNotEmpty(dialog.id) && StringUtils.isNotEmpty(dialog.name)) {
      return new String[] { dialog.id, dialog.name};
    } else {
      return null;
    }
  }
 
  @Override
  protected void removedItem(int index) {
    // TODO Auto-generated method stub
  }
 
  @Override
  protected void selectionChanged() {
    super.selectionChanged();
    saveMessages();
  }
 
  private void saveMessages() {
    if(diagram == null) return;
    final Bpmn2MemoryModel model = ModelHandler.getModel(EcoreUtil.getURI(diagram));
    if (model == null) {
      return;
    }
   
    TransactionalEditingDomain editingDomain = diagramEditor.getEditingDomain();
    ActivitiUiUtil.runModelChange(new Runnable() {
      public void run() {
        List<Message> newMessageList = new ArrayList<Message>();
        for (TableItem item : getItems()) {
          String id = item.getText(0);
          String name = item.getText(1);
          if(StringUtils.isNotEmpty(id) && StringUtils.isNotEmpty(name)) {
           
            Message newMessage = new Message();
            newMessage.setId(id);
            newMessage.setName(name);
            newMessageList.add(newMessage);
          }
        }
        model.getBpmnModel().setMessages(newMessageList);
      }
    }, editingDomain, "Model Update");
  }
}
TOP

Related Classes of org.activiti.designer.property.ui.MessageEditor

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.