?? actioneditor.java
字號(hào):
package com.opensymphony.workflow.designer.editor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import com.jgoodies.forms.builder.PanelBuilder;
import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;
import com.opensymphony.workflow.designer.dialogs.AttributeDialog;
import com.opensymphony.workflow.designer.WorkflowDesigner;
//import com.opensymphony.workflow.designer.InitialActionCell;
import com.opensymphony.workflow.designer.ResourceManager;
import com.opensymphony.workflow.designer.UIFactory;
import com.opensymphony.workflow.designer.beanutils.BeanConnector;
import com.opensymphony.workflow.designer.model.ConditionsTableModel;
import com.opensymphony.workflow.designer.model.FunctionsTableModel;
import com.opensymphony.workflow.designer.model.AttributesTableModel;
import com.opensymphony.workflow.designer.model.ValidatorsTableModel;
import com.opensymphony.workflow.loader.*;
/**
* @author jackflit
* Date: 2003-11-18
*/
public class ActionEditor extends DetailPanel implements ActionListener
{
private static final String[] BUTTONS = new String[]{"add", "remove", "edit"};
private JTextField id = UIFactory.createReadOnlyTextField(12);
private JTextField name = new JTextField(12);
private JTextField view = new JTextField(12);
private JCheckBox auto = new JCheckBox();
private JCheckBox finish = new JCheckBox();
private JComboBox restrict = new JComboBox(new String[]{"AND", "OR"});
private ConditionsTableModel conditionsModel = new ConditionsTableModel();
private JTable conditionsTable;
private FunctionsTableModel preModel = new FunctionsTableModel();
private JTable pre;
private FunctionsTableModel postModel = new FunctionsTableModel();
private JTable post;
private AttributesTableModel attributesModel = new AttributesTableModel();
private JTable attributesTable;
private ValidatorsTableModel validatorsModel = new ValidatorsTableModel();
private JTable validatorsTable;
private BeanConnector connector = new BeanConnector();
private ActionDescriptor descriptor;
public ActionEditor()
{
}
protected void initComponents()
{
String colLayout = "2dlu, max(32dlu;pref), 2dlu, pref:grow, 4dlu";
String rowLayout = "4dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref";
JTabbedPane tabbedPane = new JTabbedPane();
FormLayout layout = new FormLayout("2dlu, pref:grow, 2dlu", "2dlu, pref, 2dlu");
PanelBuilder builder = new PanelBuilder(this, layout);
CellConstraints cc = new CellConstraints();
////////////////////////////////////
// Tab1 (info)
////////////////////////////////////
FormLayout layoutInfo = new FormLayout(colLayout, rowLayout);
JPanel panelInfo = new JPanel();
PanelBuilder builderInfo = new PanelBuilder(panelInfo, layoutInfo);
//builder.addSeparator(ResourceManager.getString("info"), cc.xywh(2, 1, 3, 1));
builderInfo.addLabel(ResourceManager.getString("id"), cc.xy(2, 2));
connector.connect(id, "id");
builderInfo.add(id, cc.xy(4, 2));
builderInfo.addLabel(ResourceManager.getString("name"), cc.xy(2, 4));
connector.connect(name, "name");
builderInfo.add(name, cc.xy(4, 4));
builderInfo.addLabel(ResourceManager.getString("view"), cc.xy(2, 6));
connector.connect(view, "view");
builderInfo.add(view, cc.xy(4, 6));
builderInfo.addLabel(ResourceManager.getString("auto"), cc.xy(2, 8));
connector.connect(auto, "autoExecute");
builderInfo.add(auto, cc.xy(4, 8));
builderInfo.addLabel(ResourceManager.getString("finish"), cc.xy(2, 10));
connector.connect(finish, "finish");
builderInfo.add(finish, cc.xy(4, 10));
tabbedPane.add(ResourceManager.getString("info"), panelInfo);
///////////////////////////
// Tab2 (meta attributes)
///////////////////////////
FormLayout layoutAttrib = new FormLayout(colLayout, rowLayout);
JPanel panelAttrib = new JPanel();
PanelBuilder builderAttrib = new PanelBuilder(panelAttrib, layoutAttrib);
attributesTable = new JTable(attributesModel);
attributesTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
builderAttrib.add(UIFactory.createTablePanel(attributesTable), cc.xywh(2, 2, 3, 1)); // 2, 15, 3, 1
builderAttrib.add(UIFactory.getAddRemovePropertiesBar(this, "attribute", BUTTONS), cc.xywh(2, 4, 3, 1)); // 2, 16, 3, 1
tabbedPane.add(ResourceManager.getString("attributes"), panelAttrib);
/////////////////////////////
// Tab3 (permissions)
/////////////////////////////
FormLayout layoutPerm = new FormLayout(colLayout, rowLayout);
JPanel panelPerm = new JPanel();
PanelBuilder builderPerm = new PanelBuilder(panelPerm, layoutPerm);
//builderInfo.addSeparator(ResourceManager.getString("permissions"), cc.xywh(2, 8, 3, 1));
builderPerm.addLabel(ResourceManager.getString("type"), cc.xy(2, 2));
connector.connect(restrict, "restriction.conditionType");
builderPerm.add(restrict, cc.xy(4, 2));
conditionsTable = new JTable(conditionsModel);
conditionsTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
conditionsModel.setType(ConditionsTableModel.PERMISSION);
conditionsModel.setGraphModel(getModel());
builderPerm.add(UIFactory.createTablePanel(conditionsTable), cc.xywh(2, 4, 3, 1));
builderPerm.add(UIFactory.getAddRemovePropertiesBar(this, "permission", BUTTONS), cc.xywh(2, 6, 3, 1));
tabbedPane.add(ResourceManager.getString("permissions"), panelPerm);
/////////////////////////////
// Tab4 (validators)
/////////////////////////////
FormLayout layoutValid = new FormLayout(colLayout, rowLayout);
JPanel panelValid = new JPanel();
PanelBuilder builderValid = new PanelBuilder(panelValid, layoutValid);
validatorsTable = new JTable(validatorsModel);
validatorsTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//validatorsModel.setGraphModel(getModel());
builderValid.add(UIFactory.createTablePanel(validatorsTable), cc.xywh(2, 2, 3, 1));
builderValid.add(UIFactory.getAddRemovePropertiesBar(this, "validator", BUTTONS), cc.xywh(2, 4, 3, 1));
tabbedPane.add(ResourceManager.getString("validators"), panelValid);
/////////////////////////////
// Tab5 (pre-functions)
/////////////////////////////
FormLayout layoutPrefunc = new FormLayout(colLayout, rowLayout);
JPanel panelPrefunc = new JPanel();
PanelBuilder builderPrefunc = new PanelBuilder(panelPrefunc, layoutPrefunc);
pre = new JTable(preModel);
pre.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
preModel.setGraphModel(getModel());
builderPrefunc.add(UIFactory.createTablePanel(pre), cc.xywh(2, 2, 3, 1));
builderPrefunc.add(UIFactory.getAddRemovePropertiesBar(this, "pre", BUTTONS), cc.xywh(2, 4, 3, 1));
tabbedPane.add(ResourceManager.getString("prefunctions"), panelPrefunc);
/////////////////////////////
// Tab6 (post-functions)
/////////////////////////////
FormLayout layoutPostfunc = new FormLayout(colLayout, rowLayout);
JPanel panelPostfunc = new JPanel();
PanelBuilder builderPostfunc = new PanelBuilder(panelPostfunc, layoutPostfunc);
post = new JTable(postModel);
post.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
postModel.setGraphModel(getModel());
builderPostfunc.add(UIFactory.createTablePanel(post), cc.xywh(2, 2, 3, 1));
builderPostfunc.add(UIFactory.getAddRemovePropertiesBar(this, "post", BUTTONS), cc.xywh(2, 4, 3, 1));
tabbedPane.add(ResourceManager.getString("postfunctions"), panelPostfunc);
builder.add(tabbedPane, cc.xy(2, 2));
}
public String getTitle()
{
return ResourceManager.getString("title.start");
}
protected void viewClosed()
{
if(conditionsTable.isEditing())
{
conditionsTable.getCellEditor().stopCellEditing();
}
if(pre.isEditing())
{
pre.getCellEditor().stopCellEditing();
}
if(post.isEditing())
{
post.getCellEditor().stopCellEditing();
}
if(attributesTable.isEditing())
{
attributesTable.getCellEditor().stopCellEditing();
}
if(validatorsTable.isEditing())
{
validatorsTable.getCellEditor().stopCellEditing();
}
}
protected void updateView()
{
descriptor = (ActionDescriptor)getDescriptor();
RestrictionDescriptor restriction = descriptor.getRestriction();
if(restriction == null)
{
restriction = new RestrictionDescriptor();
restriction.setParent(descriptor);
ConditionsDescriptor conditions = DescriptorFactory.getFactory().createConditionsDescriptor();
restriction.setConditionsDescriptor(conditions);
conditions.setParent(restriction);
conditions.setType((String)restrict.getSelectedItem());
descriptor.setRestriction(restriction);
}
conditionsModel.setList(restriction.getConditionsDescriptor().getConditions());
conditionsTable.getSelectionModel().clearSelection();
preModel.setList(descriptor.getPreFunctions());
pre.getSelectionModel().clearSelection();
postModel.setList(descriptor.getPostFunctions());
post.getSelectionModel().clearSelection();
attributesModel.setMap(descriptor.getMetaAttributes());
attributesTable.getSelectionModel().clearSelection();
validatorsModel.setList(descriptor.getValidators());
validatorsTable.getSelectionModel().clearSelection();
connector.setSource(descriptor);
}
public void actionPerformed(ActionEvent e)
{
String command = e.getActionCommand();
if(command.equals("attributeadd"))
{
attributeadd();
}
else if(command.equals("attributeremove"))
{
attributeremove();
}
else if(command.equals("attributeedit"))
{
attributemodify();
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -