All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.yaoqiang.bpmn.editor.dialog.panels.ResourceParameterBindingPanel Maven / Gradle / Ivy

package org.yaoqiang.bpmn.editor.dialog.panels;

import java.awt.BorderLayout;

import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JPanel;

import org.yaoqiang.bpmn.editor.dialog.XMLComboPanel;
import org.yaoqiang.bpmn.editor.dialog.BPMNPanelContainer;
import org.yaoqiang.bpmn.editor.dialog.XMLTablePanel;
import org.yaoqiang.bpmn.editor.dialog.XMLTextPanel;
import org.yaoqiang.bpmn.editor.dialog.XMLPanel;
import org.yaoqiang.bpmn.model.elements.XMLElement;
import org.yaoqiang.bpmn.model.elements.activities.ResourceParameterBinding;
import org.yaoqiang.bpmn.model.elements.activities.ResourceParameterBindings;
import org.yaoqiang.bpmn.model.elements.activities.ResourceRole;
import org.yaoqiang.bpmn.model.elements.core.common.Resource;
import org.yaoqiang.bpmn.model.elements.core.common.ResourceParameter;

/**
 * ResourceParameterBindingPanel
 * 
 * @author Shi Yaoqiang([email protected])
 */
public class ResourceParameterBindingPanel extends XMLPanel {

	private static final long serialVersionUID = 1L;

	protected XMLComboPanel parameterPanel;

	protected XMLPanel expressionPanel;

	public ResourceParameterBindingPanel(BPMNPanelContainer pc, ResourceParameterBinding owner, Resource resource) {
		super(pc, owner);
		this.setLayout(new BorderLayout());

		XMLElement resourceName = resource.get("name");
		XMLElement resourceId = resource.get("id");
		JPanel sourceParameterPanel = new JPanel();
		sourceParameterPanel.setLayout(new BoxLayout(sourceParameterPanel, BoxLayout.X_AXIS));
		sourceParameterPanel.add(new XMLTextPanel(pc, resourceName.toValue().length() == 0 ? resourceId : resourceName, "resource", false));
		sourceParameterPanel.add(Box.createHorizontalGlue());
		parameterPanel = new XMLComboPanel(pc, owner, "parameterRef", resource.getResourceParameterList(), false, false, true);
		sourceParameterPanel.add(parameterPanel);
		this.add(sourceParameterPanel, BorderLayout.NORTH);
		expressionPanel = new ExpressionPanel(pc, owner.getExpressionElement(), "expression", 360, 100);
		this.add(expressionPanel, BorderLayout.CENTER);
		
	}

	public void saveObjects() {
		ResourceParameterBinding rpb = (ResourceParameterBinding) owner;
		Object obj = parameterPanel.getSelectedItem();
		if (obj instanceof ResourceParameter) {
			rpb.setParameterRef(((ResourceParameter) obj).getId());
		}
		expressionPanel.saveObjects();
		ResourceParameterBindings rpbs = ((ResourceParameterBindings) getOwner().getParent());
		XMLTablePanel parentPanel = (XMLTablePanel) getParentPanel();
		XMLComboPanel resourceRefPanel = ((ResourceRolePanel)parentPanel.getParent().getParent()).getResourceRefPanel();
		if (rpbs.size() == 0) {
			resourceRefPanel.setEnabled(false);
		}
		Resource resource = (Resource) resourceRefPanel.getSelectedItem();
		if (rpb.getId().length() == 0) {
			rpb.setId(rpbs.createId(((ResourceRole)rpbs.getParent().getParent().getParent()).getId() + "_" + resource.getId() + "_B"));
		}
		rpbs.add(rpb);
		parentPanel.addRow(rpb);
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy