package com.vci.client.portal.UI;
|
|
import java.awt.BorderLayout;
|
import java.awt.Color;
|
import java.awt.FlowLayout;
|
import java.awt.GridBagConstraints;
|
import java.awt.GridBagLayout;
|
import java.awt.Insets;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import java.awt.event.FocusEvent;
|
import java.awt.event.FocusListener;
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.Comparator;
|
import java.util.HashMap;
|
import java.util.LinkedHashMap;
|
import java.util.LinkedList;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Map.Entry;
|
import java.util.regex.Matcher;
|
import java.util.regex.Pattern;
|
|
import javax.swing.ButtonGroup;
|
import javax.swing.DefaultComboBoxModel;
|
import javax.swing.DefaultListModel;
|
import javax.swing.JButton;
|
import javax.swing.JCheckBox;
|
import javax.swing.JComboBox;
|
import javax.swing.JLabel;
|
import javax.swing.JOptionPane;
|
import javax.swing.JPanel;
|
import javax.swing.JRadioButton;
|
import javax.swing.JScrollPane;
|
import javax.swing.JTextField;
|
import javax.swing.border.EmptyBorder;
|
|
import com.vci.client.LogonApplication;
|
import com.vci.client.common.PinyinCommon;
|
import com.vci.client.omd.btm.ui.BtmClient;
|
import com.vci.client.omd.btm.wrapper.BtmItemWrapper;
|
import com.vci.client.omd.linktype.LinkTypeStart;
|
import com.vci.client.omd.linktype.LinkTypeWrapper;
|
import com.vci.client.omd.provider.ApProvider;
|
import com.vci.client.omd.provider.BtmProvider;
|
import com.vci.client.omd.provider.LinkTypeProvider;
|
import com.vci.client.oq.QTClient;
|
import com.vci.client.oq.QTDClient;
|
import com.vci.client.portal.Formdesign.FormDesignDialog;
|
import com.vci.client.portal.platformPortal.CreateFormOrTableDialog;
|
import com.vci.client.portal.platformPortal.TableDialog;
|
import com.vci.client.portal.utility.PLDefination;
|
import com.vci.client.portal.utility.UITools;
|
import com.vci.client.ui.swing.VCIOptionPane;
|
import com.vci.client.ui.swing.components.VCIJDialog;
|
import com.vci.client.ui.swing.components.VCIJIntegerTextField;
|
import com.vci.client.ui.swing.components.VCIJTextArea;
|
import com.vci.client.ui.swing.components.VCIJTextField;
|
import com.vci.common.portal.constants.TemplateTypeConstants;
|
import com.vci.common.portal.enums.PortalVIType;
|
import com.vci.common.portal.enums.PortalVITypeFlag;
|
import com.vci.common.qt.object.QTConstants;
|
import com.vci.common.utility.ObjectUtility;
|
import com.vci.corba.common.VCIError;
|
import com.vci.corba.omd.atm.AttribItem;
|
import com.vci.corba.omd.btm.BtmItem;
|
import com.vci.corba.omd.ltm.LinkType;
|
import com.vci.corba.omd.qtm.QTInfo;
|
import com.vci.corba.portal.data.PLPageDefination;
|
import com.vci.corba.portal.data.PLUILayout;
|
import com.vci.corba.portal.data.PLTabPage;
|
import com.vci.corba.portal.data.PortalVI;
|
import com.vci.omd.constants.BusinessConstants;
|
import com.vci.omd.constants.LinkConstants;
|
import com.vci.omd.objects.OtherInfo;
|
|
/**
|
* UI组件定义维护窗口
|
*
|
*/
|
public class UIDesinDialog extends VCIJDialog {
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 2544981501338846700L;
|
|
private final JPanel contentPanel = new JPanel();
|
|
private JButton okButton;
|
private JButton cancelButton;
|
//==========add by guo------
|
// private int typeFlag;
|
private JButton createPOForm;
|
private JButton editPOForm;
|
|
private JButton createLOTreeTable;
|
private JButton editLOTreeTable;
|
|
private JButton createPOTreeTable;
|
private JButton editPOTreeTable;
|
|
private JButton createLOTable;
|
private JButton editLOTable;
|
|
private JButton createLOForm;
|
private JButton editLOForm;
|
|
private JButton createPOTable;
|
private JButton editPOTable;
|
|
private JPanel panel;
|
private JRadioButton tableRadio;
|
private JRadioButton customRadio;
|
private JRadioButton rdbtnTreeTable;
|
private final ButtonGroup bg = new ButtonGroup();
|
private final ButtonGroup bg1 = new ButtonGroup();
|
private JPanel northPanel;
|
private JRadioButton rootObjectRdb;
|
private JRadioButton relateRdb;
|
private JRadioButton PFKRdb;
|
private JPanel custermPanel;
|
private JPanel tableGernaralPanel;
|
private JPanel tree_tableGernaralPanel;
|
private JTextField controlpath;
|
private JPanel dynamicPal;
|
private JPanel gernalDynamicPal;
|
private JPanel tableObjectPal;
|
private JPanel relatetPal;
|
private JComboBox rootCom;
|
private JComboBox rootSelectTem;
|
private JComboBox relatCom;
|
private JComboBox relateLtCom;
|
private JComboBox relateSelectTem;
|
|
private final PLUILayout plpagelayoutdefination;
|
private final PLTabPage pltabpage;
|
private PLDefination pldefination;
|
private String plPageDefinationID;
|
private JLabel label_2;
|
private JPanel panel_1;
|
private JRadioButton navigatorfold;
|
private JRadioButton navigatorrole;
|
private JRadioButton navigatornodisply;
|
private String btmName;
|
private JPanel treeTablePanel;
|
private JLabel label_4;
|
private JPanel panel_3;
|
private JRadioButton graduallyRad;
|
private JRadioButton allRad;
|
private JLabel label_5;
|
private JTextField expandColsTxt;
|
private final Integer templateType = TemplateTypeConstants.TREETABLE;
|
private JLabel label_9;
|
private VCIJTextField nameTxt;
|
private JLabel label_10;
|
private JScrollPane scrollPane;
|
private VCIJTextArea descTxt;
|
private JRadioButton rdbtnForm;
|
private JRadioButton rdbtnTree;
|
private JLabel label_11;
|
private VCIJIntegerTextField seqTxt;
|
private final short disType;
|
private final PLPageDefination plPageDefination;
|
private JPanel formPanel;
|
private JLabel label_12;
|
private JRadioButton genralRdb;
|
private JLabel label_13;
|
private JRadioButton form_rootRdb;
|
private JLabel label_14;
|
private JComboBox rootObjCom;
|
private JLabel label_15;
|
private JComboBox rootObjSelectCom;
|
private JPanel treePanel;
|
private JLabel label_16;
|
private JComboBox tree_showTypeTxt;
|
private JLabel label_17;
|
private JPanel panel_4;
|
private JRadioButton tree_graduallyRad;
|
private JRadioButton tree_allRad;
|
private JLabel label_18;
|
private JPanel panel_5;
|
private JRadioButton tree_zhengRad;
|
private JRadioButton tree_fanRad;
|
private JCheckBox tree_isShowImage;
|
private JLabel label_19;
|
private JTextField tree_showLinkAbsTxt;
|
private JLabel label_20;
|
private JComboBox tree_validityTxt;
|
private JLabel label_21;
|
private JTextField tree_showAbsTxt;
|
private JLabel label_22;
|
private JTextField tree_separatorTxt;
|
private JLabel label_23;
|
private JComboBox tree_linkTypeTxt;
|
|
private JRadioButton tree_table_relateRdb;
|
|
private JRadioButton tree_table_rootObjectRdb;
|
|
private ButtonGroup tree_table_bg1;
|
|
private JPanel tree_table_gernalDynamicPal;
|
|
private JPanel form_relatetPal;
|
|
private JComboBox form_relatCom;
|
|
private JComboBox form_relateLtCom;
|
|
private JComboBox form_relateSelectTem;
|
|
private JPanel form_gernalDynamicPal;
|
|
private ClickEventInfoPanel cp;
|
private String plPageContextOId;
|
private List<String> firstAttrNames;
|
private List<String> sameKeySecList;
|
private List<String> DifferentKeySecList;
|
private List<String> sameKeyThrList;
|
private List<String> DifferentKeyThrList;
|
|
private Map<String/*第一段*/, List<String>/*第二段*/> firSecMap;
|
private Map<String/*第二段*/, List<String>/*第三段*/> secThrMap;
|
private JLabel lblParser;
|
private VCIJTextArea txtUIParser;
|
private JLabel lblUIParserNote;
|
private final String lblUIParserNoteContent = "" +
|
"<html>" +
|
"<p color='red'>示例:java_cs:xxx;java_bs:xxx;net_cs:xxx;net_bs:xxx;mobile_cs:xx;mobile_bs:xxx;</p>" +
|
"<p color='blue'>1、用英文半角分号;分隔各组值;(这里结尾的是中文字符的分号)</p>" +
|
"<p color='blue'>2、每组用英文半角冒号:分隔单一扩展属性名称及属性值;</p>" +
|
"<p color='blue'>3、其中的xxx是各种解析类的完整类型名称(完全限定名);</p>" +
|
"<p color='blue'>4、输入时,不要敲回车换行;</p>" +
|
"<p><br/></p>" +
|
"</html>";
|
|
private JLabel lblExtAttrs;
|
private VCIJTextArea txtExtAtt;
|
private JLabel lblExtAttrNote;
|
private final String lblExtAttrNoteContent = "" +
|
"<html>" +
|
"<p color='red'>示例:ext1:xx;ext2;ext3:xx;ext4:xxx;extn:xxx;</p>" +
|
"<p color='blue'>1、用英文半角分号;分隔各组值;</p>" +
|
"<p color='blue'>2、每组用英文半角冒号:分隔单一扩展属性名称及属性值;</p>" +
|
"<p color='blue'>3、可以定义任意组,但总字符长度不得超过4000;</p>" +
|
"<p color='blue'>4、输入时,不要敲回车换行;</p>" +
|
"<p><br/></p>" +
|
"</html>";
|
|
public UIDesinDialog(PLUILayout plpagelayoutdefination,
|
PLPageDefination plPageDefination, String btmName, short disType,
|
PLTabPage pltabpage) {
|
super(LogonApplication.frame, true);
|
setTitle("页面设计窗口");
|
this.plpagelayoutdefination = plpagelayoutdefination;
|
this.plPageDefination = plPageDefination;
|
this.btmName = btmName;
|
this.disType = disType;
|
this.pltabpage = pltabpage;
|
setBounds(100, 100, 750, 718);
|
init();
|
initRootCom();
|
initRootObjCom();
|
initRelateCom();
|
initShowType();
|
initLinkType();
|
intiValidity();
|
actionListener();
|
initData();
|
initActionControlPanel();
|
this.setLocationRelativeTo(null);
|
this.setVisible(true);
|
}
|
|
private void init() {
|
getContentPane().setLayout(new BorderLayout());
|
{
|
JPanel buttonPane = new JPanel();
|
getContentPane().add(buttonPane, BorderLayout.SOUTH);
|
buttonPane.setLayout(new BorderLayout(0, 0));
|
|
panel_7 = new JPanel();
|
FlowLayout flowLayout = (FlowLayout) panel_7.getLayout();
|
flowLayout.setAlignment(FlowLayout.RIGHT);
|
buttonPane.add(panel_7, BorderLayout.SOUTH);
|
{
|
okButton = new JButton("保存");
|
panel_7.add(okButton);
|
}
|
{
|
cancelButton = new JButton("关闭");
|
panel_7.add(cancelButton);
|
}
|
|
cp = new ClickEventInfoPanel();
|
buttonPane.add(cp, BorderLayout.NORTH);
|
}
|
{
|
northPanel = new JPanel();
|
getContentPane().add(northPanel, BorderLayout.NORTH);
|
northPanel.setLayout(new BorderLayout(0, 0));
|
northPanel.add(contentPanel, BorderLayout.NORTH);
|
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
|
GridBagLayout gbl_contentPanel = new GridBagLayout();
|
// gbl_contentPanel.columnWidths = new int[] { 0, 0, 0, 0, 0 };
|
// gbl_contentPanel.rowHeights = new int[] { 0, 0, 0, 0, 0, 0, 0, 0 };
|
// gbl_contentPanel.columnWeights = new double[] { 0.0, 0.0, 1.0, 1.0,
|
// Double.MIN_VALUE };
|
// gbl_contentPanel.rowWeights = new double[] { 0.0, 0.0, 1.0, 0.0,
|
// 0.0, 1.0, 1.0, Double.MIN_VALUE };
|
contentPanel.setLayout(gbl_contentPanel);
|
|
label_9 = new JLabel("名称");
|
GridBagConstraints gbc_label_9 = new GridBagConstraints();
|
gbc_label_9.insets = new Insets(0, 0, 0, 0);
|
gbc_label_9.gridx = 1;
|
gbc_label_9.gridy = 0;
|
contentPanel.add(label_9, gbc_label_9);
|
|
nameTxt = new VCIJTextField(true);
|
GridBagConstraints gbc_nameTxt = new GridBagConstraints();
|
gbc_nameTxt.insets = new Insets(0, 0, 0, 0);
|
gbc_nameTxt.fill = GridBagConstraints.BOTH;
|
gbc_nameTxt.gridx = 2;
|
gbc_nameTxt.gridy = 0;
|
// gbc_nameTxt.weightx = 1.0;
|
contentPanel.add(nameTxt, gbc_nameTxt);
|
// nameTxt.setColumns(10);
|
|
label_11 = new JLabel("编号");
|
GridBagConstraints gbc_label_11 = new GridBagConstraints();
|
gbc_label_11.insets = new Insets(0, 0, 0, 0);
|
gbc_label_11.gridx = 1;
|
gbc_label_11.gridy = 1;
|
contentPanel.add(label_11, gbc_label_11);
|
|
seqTxt = new VCIJIntegerTextField("");
|
seqTxt.setRequired(true);
|
GridBagConstraints gbc_seqTxt = new GridBagConstraints();
|
gbc_seqTxt.insets = new Insets(1, 0, 0, 0);
|
gbc_seqTxt.fill = GridBagConstraints.BOTH;
|
gbc_seqTxt.gridx = 2;
|
gbc_seqTxt.gridy = 1;
|
gbc_seqTxt.weightx = 1.0;
|
contentPanel.add(seqTxt, gbc_seqTxt);
|
// seqTxt.setColumns(10);
|
|
label_10 = new JLabel("描述");
|
GridBagConstraints gbc_label_10 = new GridBagConstraints();
|
gbc_label_10.insets = new Insets(0, 0, 0, 0);
|
gbc_label_10.gridx = 3;
|
gbc_label_10.gridy = 0;
|
contentPanel.add(label_10, gbc_label_10);
|
|
scrollPane = new JScrollPane();
|
GridBagConstraints gbc_scrollPane = new GridBagConstraints();
|
gbc_scrollPane.gridheight = 2;
|
gbc_scrollPane.insets = new Insets(0, 0, 0, 0);
|
gbc_scrollPane.fill = GridBagConstraints.BOTH;
|
gbc_scrollPane.gridx = 4;
|
gbc_scrollPane.gridy = 0;
|
gbc_scrollPane.weightx = 1.0;
|
contentPanel.add(scrollPane, gbc_scrollPane);
|
|
descTxt = new VCIJTextArea();
|
descTxt.setRows(2);
|
descTxt.setWrapStyleWord(true);
|
descTxt.setLineWrap(true);
|
scrollPane.setViewportView(descTxt);
|
|
|
/************************ UI解析类、扩展属性定义 ****************************/
|
{
|
lblParser = new JLabel("UI解析类");
|
gbc_scrollPane = new GridBagConstraints();
|
gbc_scrollPane.insets = new Insets(1, 0, 0, 0);
|
gbc_scrollPane.gridx = 1;
|
gbc_scrollPane.gridy = 3;
|
contentPanel.add(lblParser, gbc_scrollPane);
|
}
|
{
|
scrollPane = new JScrollPane();
|
gbc_scrollPane = new GridBagConstraints();
|
gbc_scrollPane.insets = new Insets(1, 0, 0, 0);
|
gbc_scrollPane.fill = GridBagConstraints.BOTH;
|
gbc_scrollPane.gridx = 2;
|
gbc_scrollPane.gridy = 3;
|
contentPanel.add(scrollPane, gbc_scrollPane);
|
{
|
txtUIParser = new VCIJTextArea();
|
txtUIParser.setRows(2);
|
txtUIParser.setWrapStyleWord(true);
|
txtUIParser.setLineWrap(true);
|
txtUIParser.setToolTipText(lblUIParserNoteContent);
|
scrollPane.setViewportView(txtUIParser);
|
}
|
}
|
|
{
|
lblExtAttrs = new JLabel("扩展属性");
|
GridBagConstraints gbc_label_3 = new GridBagConstraints();
|
gbc_label_3.insets = new Insets(0, 0, 0, 0);
|
gbc_label_3.gridx = 3;
|
gbc_label_3.gridy = 3;
|
contentPanel.add(lblExtAttrs, gbc_label_3);
|
}
|
{
|
scrollPane = new JScrollPane();
|
gbc_scrollPane = new GridBagConstraints();
|
gbc_scrollPane.fill = GridBagConstraints.BOTH;
|
gbc_scrollPane.gridx = 4;
|
gbc_scrollPane.gridy = 3;
|
gbc_scrollPane.weightx = 4.0;
|
contentPanel.add(scrollPane, gbc_scrollPane);
|
{
|
txtExtAtt = new VCIJTextArea();
|
txtExtAtt.setRows(2);
|
txtExtAtt.setWrapStyleWord(true);
|
txtExtAtt.setLineWrap(true);
|
txtExtAtt.setToolTipText(lblExtAttrNoteContent);
|
scrollPane.setViewportView(txtExtAtt);
|
}
|
}
|
/************************ UI解析类、扩展属性定义 ****************************/
|
|
|
{
|
JLabel label = new JLabel("模板类型");
|
GridBagConstraints gbc_label = new GridBagConstraints();
|
gbc_label.insets = new Insets(0, 0, 0, 0);
|
gbc_label.gridx = 1;
|
gbc_label.gridy = 5;
|
contentPanel.add(label, gbc_label);
|
}
|
{
|
panel = new JPanel();
|
FlowLayout flowLayout = (FlowLayout) panel.getLayout();
|
flowLayout.setAlignment(FlowLayout.LEFT);
|
GridBagConstraints gbc_panel = new GridBagConstraints();
|
gbc_panel.insets = new Insets(0, 0, 0, 0);
|
gbc_panel.gridwidth = 2;
|
gbc_panel.fill = GridBagConstraints.BOTH;
|
gbc_panel.gridx = 2;
|
gbc_panel.gridy = 5;
|
contentPanel.add(panel, gbc_panel);
|
{
|
tableRadio = new JRadioButton("Table");
|
tableRadio.setSelected(true);
|
panel.add(tableRadio);
|
}
|
{
|
customRadio = new JRadioButton("自定义模板");
|
panel.add(customRadio);
|
}
|
{
|
rdbtnTreeTable = new JRadioButton("TreeTable模板");
|
panel.add(rdbtnTreeTable);
|
}
|
rdbtnForm = new JRadioButton("Form");
|
panel.add(rdbtnForm);
|
|
rdbtnTree = new JRadioButton("Tree");
|
panel.add(rdbtnTree);
|
|
bg.add(tableRadio);
|
bg.add(customRadio);
|
bg.add(rdbtnTreeTable);
|
bg.add(rdbtnForm);
|
bg.add(rdbtnTree);
|
|
}
|
}
|
|
label_2 = new JLabel("显示内容");
|
GridBagConstraints gbc_label_2 = new GridBagConstraints();
|
gbc_label_2.insets = new Insets(0, 0, 0, 0);
|
gbc_label_2.gridx = 1;
|
gbc_label_2.gridy = 6;
|
contentPanel.add(label_2, gbc_label_2);
|
|
panel_1 = new JPanel();
|
FlowLayout flowLayout = (FlowLayout) panel_1.getLayout();
|
flowLayout.setAlignment(FlowLayout.LEFT);
|
GridBagConstraints gbc_panel_1 = new GridBagConstraints();
|
gbc_panel_1.gridwidth = 2;
|
gbc_panel_1.fill = GridBagConstraints.BOTH;
|
gbc_panel_1.gridx = 2;
|
gbc_panel_1.gridy = 6;
|
contentPanel.add(panel_1, gbc_panel_1);
|
|
ButtonGroup navigatorbg = new ButtonGroup();
|
|
navigatornodisply = new JRadioButton("不显示");
|
navigatornodisply.setSelected(true);
|
panel_1.add(navigatornodisply);
|
navigatorbg.add(navigatornodisply);
|
|
navigatorrole = new JRadioButton("显示角色");
|
panel_1.add(navigatorrole);
|
navigatorbg.add(navigatorrole);
|
navigatorfold = new JRadioButton("显示fold");
|
panel_1.add(navigatorfold);
|
navigatorbg.add(navigatorfold);
|
|
setgernaralPanel();
|
setTree_table_gernaralPanel();
|
setCustomPanel();
|
dynamicPal = new JPanel();
|
dynamicPal.setLayout(new BorderLayout(0, 0));
|
//test
|
// dynamicPal.add(tableGernaralPanel, BorderLayout.NORTH);
|
// dynamicPal.add(tree_tableGernaralPanel, BorderLayout.NORTH);
|
|
treePanel = new JPanel();
|
formPanel = new JPanel();
|
treeTablePanel = new JPanel();
|
gernalDynamicPal = new JPanel();
|
tree_table_gernalDynamicPal = new JPanel();
|
form_gernalDynamicPal = new JPanel();
|
form_gernalDynamicPal.setLayout(new BorderLayout());
|
setTreeTablePanel();
|
setRelatePanel();
|
setFormRelatePanel();
|
setTree_table_RelatePal();
|
setrootObjectPanel();
|
setFormPanel();
|
setTreePanel();
|
gernalDynamicPal.add(tableObjectPal);
|
dynamicPal.add(gernalDynamicPal);
|
dynamicPal.add(tree_table_gernalDynamicPal);
|
|
form_rootPal = new JPanel();
|
setFormRootPanel();
|
getContentPane().add(dynamicPal, BorderLayout.CENTER);
|
|
// gernalDynamicPal.add(treeTablePanel, BorderLayout.CENTER);
|
|
}
|
|
private void setFormRootPanel() {
|
GridBagLayout gbl_form_rootPal = new GridBagLayout();
|
gbl_form_rootPal.columnWidths = new int[]{0, 54, 0, 0};
|
gbl_form_rootPal.rowHeights = new int[]{15, 0, 0};
|
gbl_form_rootPal.columnWeights = new double[]{0.0, 0.0, 1.0, Double.MIN_VALUE};
|
gbl_form_rootPal.rowWeights = new double[]{0.0, 0.0, Double.MIN_VALUE};
|
form_rootPal.setLayout(gbl_form_rootPal);
|
|
label_14 = new JLabel("目标对象");
|
GridBagConstraints gbc_label_14 = new GridBagConstraints();
|
gbc_label_14.insets = new Insets(0, 0, 5, 5);
|
gbc_label_14.gridx = 1;
|
gbc_label_14.gridy = 0;
|
form_rootPal.add(label_14, gbc_label_14);
|
|
rootObjCom = new JComboBox();
|
GridBagConstraints gbc_rootObjCom = new GridBagConstraints();
|
gbc_rootObjCom.insets = new Insets(0, 0, 5, 0);
|
gbc_rootObjCom.fill = GridBagConstraints.HORIZONTAL;
|
gbc_rootObjCom.gridx = 2;
|
gbc_rootObjCom.gridy = 0;
|
gbc_rootObjCom.gridwidth = 3;
|
form_rootPal.add(rootObjCom, gbc_rootObjCom);
|
|
label_15 = new JLabel("选择模板");
|
GridBagConstraints gbc_label_15 = new GridBagConstraints();
|
gbc_label_15.insets = new Insets(0, 0, 0, 5);
|
gbc_label_15.gridx = 1;
|
gbc_label_15.gridy = 1;
|
form_rootPal.add(label_15, gbc_label_15);
|
|
rootObjSelectCom = new JComboBox();
|
GridBagConstraints gbc_rootObjSelectCom = new GridBagConstraints();
|
gbc_rootObjCom.insets = new Insets(0, 0, 0, 0);
|
gbc_rootObjSelectCom.fill = GridBagConstraints.HORIZONTAL;
|
gbc_rootObjSelectCom.gridx = 2;
|
gbc_rootObjSelectCom.gridy = 1;
|
form_rootPal.add(rootObjSelectCom, gbc_rootObjSelectCom);
|
//==add by guo==当模板类型为Form且对象为业务类型的时候,添加模板
|
createPOForm = new JButton("+");
|
GridBagConstraints gbc_createPOForm = new GridBagConstraints();
|
gbc_createPOForm.gridx = 3;
|
gbc_createPOForm.gridy = 1;
|
form_rootPal.add(createPOForm, gbc_createPOForm);
|
//编辑业务类型的Form模板
|
editPOForm = new JButton("编辑");
|
GridBagConstraints gbc_editPOForm = new GridBagConstraints();
|
gbc_editPOForm.gridx = 4;
|
gbc_editPOForm.gridy = 1;
|
form_rootPal.add(editPOForm, gbc_editPOForm);
|
}
|
|
private void setTree_table_RelatePal() {
|
tree_table_RelatePal = new JPanel();
|
tree_table_gernalDynamicPal.setLayout(new BorderLayout());
|
GridBagLayout gbl_tree_table_RelatePal = new GridBagLayout();
|
gbl_tree_table_RelatePal.columnWidths = new int[]{0, 0, 0};
|
gbl_tree_table_RelatePal.rowHeights = new int[]{0, 0, 0, 0, 0, 0};
|
gbl_tree_table_RelatePal.columnWeights = new double[]{0.0, 1.0, Double.MIN_VALUE};
|
gbl_tree_table_RelatePal.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
|
tree_table_RelatePal.setLayout(gbl_tree_table_RelatePal);
|
|
label_3 = new JLabel("顶级节点显示类型");
|
GridBagConstraints gbc_label_3 = new GridBagConstraints();
|
gbc_label_3.insets = new Insets(0, 0, 5, 5);
|
gbc_label_3.anchor = GridBagConstraints.EAST;
|
gbc_label_3.gridx = 0;
|
gbc_label_3.gridy = 0;
|
tree_table_RelatePal.add(label_3, gbc_label_3);
|
|
tree_table_relatCom = new JComboBox();
|
GridBagConstraints gbc_tree_table_relatCom = new GridBagConstraints();
|
gbc_tree_table_relatCom.insets = new Insets(0, 0, 5, 0);
|
gbc_tree_table_relatCom.fill = GridBagConstraints.HORIZONTAL;
|
gbc_tree_table_relatCom.gridx = 1;
|
gbc_tree_table_relatCom.gridy = 0;
|
gbc_tree_table_relatCom.gridwidth = 3;
|
tree_table_RelatePal.add(tree_table_relatCom, gbc_tree_table_relatCom);
|
|
lblNewLabel_3 = new JLabel("LinkType");
|
GridBagConstraints gbc_lblNewLabel_3 = new GridBagConstraints();
|
gbc_lblNewLabel_3.insets = new Insets(0, 0, 5, 5);
|
gbc_lblNewLabel_3.gridx = 0;
|
gbc_lblNewLabel_3.gridy = 1;
|
tree_table_RelatePal.add(lblNewLabel_3, gbc_lblNewLabel_3);
|
|
tree_table_relateLtCom = new JComboBox();
|
GridBagConstraints gbc_tree_table_relateLtCom = new GridBagConstraints();
|
gbc_tree_table_relateLtCom.insets = new Insets(0, 0, 5, 0);
|
gbc_tree_table_relateLtCom.fill = GridBagConstraints.HORIZONTAL;
|
gbc_tree_table_relateLtCom.gridx = 1;
|
gbc_tree_table_relateLtCom.gridy = 1;
|
gbc_tree_table_relateLtCom.gridwidth = 3;
|
tree_table_RelatePal.add(tree_table_relateLtCom, gbc_tree_table_relateLtCom);
|
|
label_6 = new JLabel("选择模板");
|
GridBagConstraints gbc_label_6 = new GridBagConstraints();
|
gbc_label_6.insets = new Insets(0, 0, 5, 5);
|
gbc_label_6.gridx = 0;
|
gbc_label_6.gridy = 2;
|
tree_table_RelatePal.add(label_6, gbc_label_6);
|
|
tree_table_relateSelectTem = new JComboBox();
|
GridBagConstraints gbc_tree_table_relateSelectTem = new GridBagConstraints();
|
gbc_tree_table_relateSelectTem.insets = new Insets(0, 0, 5, 0);
|
gbc_tree_table_relateSelectTem.fill = GridBagConstraints.HORIZONTAL;
|
gbc_tree_table_relateSelectTem.gridx = 1;
|
gbc_tree_table_relateSelectTem.gridy = 2;
|
tree_table_RelatePal.add(tree_table_relateSelectTem, gbc_tree_table_relateSelectTem);
|
|
//==add by guo==当模板类型为TreeTable且对象为链接类型的时候,添加模板
|
createLOTreeTable = new JButton("+");
|
GridBagConstraints gbc_createLOTreeTable = new GridBagConstraints();
|
gbc_createLOTreeTable.gridx = 2;
|
gbc_createLOTreeTable.gridy = 2;
|
tree_table_RelatePal.add(createLOTreeTable, gbc_createLOTreeTable);
|
//编辑链接类型的TreeTable模板
|
editLOTreeTable = new JButton("编辑");
|
GridBagConstraints gbc_editLOTreeTable = new GridBagConstraints();
|
gbc_editLOTreeTable.gridx = 3;
|
gbc_editLOTreeTable.gridy = 2;
|
tree_table_RelatePal.add(editLOTreeTable, gbc_editLOTreeTable);
|
|
label_7 = new JLabel("展开方式");
|
GridBagConstraints gbc_label_7 = new GridBagConstraints();
|
gbc_label_7.insets = new Insets(0, 0, 5, 5);
|
gbc_label_7.gridx = 0;
|
gbc_label_7.gridy = 3;
|
tree_table_RelatePal.add(label_7, gbc_label_7);
|
|
panel_2 = new JPanel();
|
GridBagConstraints gbc_panel_2 = new GridBagConstraints();
|
gbc_panel_2.insets = new Insets(0, 0, 5, 0);
|
gbc_panel_2.fill = GridBagConstraints.BOTH;
|
gbc_panel_2.gridx = 1;
|
gbc_panel_2.gridy = 3;
|
tree_table_RelatePal.add(panel_2, gbc_panel_2);
|
|
ButtonGroup bg = new ButtonGroup();
|
tree_table_R_graduallyRad = new JRadioButton("逐级展开");
|
tree_table_R_graduallyRad.setSelected(true);
|
panel_2.add(tree_table_R_graduallyRad);
|
tree_table_R_allRad = new JRadioButton("全部展开");
|
panel_2.add(tree_table_R_allRad);
|
bg.add(tree_table_R_graduallyRad);
|
bg.add(tree_table_R_allRad);
|
|
label_8 = new JLabel("树形结构展开列");
|
GridBagConstraints gbc_label_8 = new GridBagConstraints();
|
gbc_label_8.anchor = GridBagConstraints.EAST;
|
gbc_label_8.insets = new Insets(0, 0, 0, 5);
|
gbc_label_8.gridx = 0;
|
gbc_label_8.gridy = 4;
|
tree_table_RelatePal.add(label_8, gbc_label_8);
|
|
tree_table_R_expandColsTxt = new JTextField();
|
tree_table_R_expandColsTxt.setColumns(10);
|
GridBagConstraints gbc_textField = new GridBagConstraints();
|
gbc_textField.fill = GridBagConstraints.HORIZONTAL;
|
gbc_textField.gridx = 1;
|
gbc_textField.gridy = 4;
|
tree_table_RelatePal.add(tree_table_R_expandColsTxt, gbc_textField);
|
}
|
|
private void setTreePanel() {
|
GridBagLayout gbl_treePanel = new GridBagLayout();
|
gbl_treePanel.columnWidths = new int[] { 0, 0, 0, 0, 0 };
|
gbl_treePanel.rowHeights = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
|
gbl_treePanel.columnWeights = new double[] { 0.0, 1.0, 1.0, 0.0,
|
Double.MIN_VALUE };
|
gbl_treePanel.rowWeights = new double[] { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
|
0.0, 0.0, 0.0, Double.MIN_VALUE };
|
treePanel.setLayout(gbl_treePanel);
|
|
label_16 = new JLabel("业务类型");
|
GridBagConstraints gbc_label_16 = new GridBagConstraints();
|
gbc_label_16.insets = new Insets(0, 0, 5, 5);
|
gbc_label_16.gridx = 1;
|
gbc_label_16.gridy = 0;
|
treePanel.add(label_16, gbc_label_16);
|
|
tree_showTypeTxt = new JComboBox();
|
/*tree_showTypeTxt.setEnabled(false);
|
tree_showTypeTxt.setEditable(false);*/
|
tree_showTypeTxt.setToolTipText("针对参照树有效!");
|
GridBagConstraints gbc_tree_showTypeTxt = new GridBagConstraints();
|
gbc_tree_showTypeTxt.fill = GridBagConstraints.HORIZONTAL;
|
gbc_tree_showTypeTxt.insets = new Insets(0, 0, 5, 5);
|
gbc_tree_showTypeTxt.gridx = 2;
|
gbc_tree_showTypeTxt.gridy = 0;
|
treePanel.add(tree_showTypeTxt, gbc_tree_showTypeTxt);
|
|
label_17 = new JLabel("展开方式");
|
GridBagConstraints gbc_label_17 = new GridBagConstraints();
|
gbc_label_17.insets = new Insets(0, 0, 5, 5);
|
gbc_label_17.gridx = 1;
|
gbc_label_17.gridy = 1;
|
treePanel.add(label_17, gbc_label_17);
|
|
panel_4 = new JPanel();
|
FlowLayout flowLayout = (FlowLayout) panel_4.getLayout();
|
flowLayout.setAlignment(FlowLayout.LEFT);
|
GridBagConstraints gbc_panel_4 = new GridBagConstraints();
|
gbc_panel_4.fill = GridBagConstraints.BOTH;
|
gbc_panel_4.insets = new Insets(0, 0, 5, 5);
|
gbc_panel_4.gridx = 2;
|
gbc_panel_4.gridy = 1;
|
treePanel.add(panel_4, gbc_panel_4);
|
|
tree_graduallyRad = new JRadioButton("逐级展开");
|
tree_graduallyRad.setSelected(true);
|
panel_4.add(tree_graduallyRad);
|
|
tree_allRad = new JRadioButton("全部展开");
|
panel_4.add(tree_allRad);
|
|
ButtonGroup bgTreeExpand = new ButtonGroup();
|
bgTreeExpand.add(tree_graduallyRad);
|
bgTreeExpand.add(tree_allRad);
|
|
label_18 = new JLabel("展开方向");
|
GridBagConstraints gbc_label_18 = new GridBagConstraints();
|
gbc_label_18.insets = new Insets(0, 0, 5, 5);
|
gbc_label_18.gridx = 1;
|
gbc_label_18.gridy = 2;
|
treePanel.add(label_18, gbc_label_18);
|
|
panel_5 = new JPanel();
|
FlowLayout flowLayout_1 = (FlowLayout) panel_5.getLayout();
|
flowLayout_1.setAlignment(FlowLayout.LEFT);
|
GridBagConstraints gbc_panel_5 = new GridBagConstraints();
|
gbc_panel_5.fill = GridBagConstraints.BOTH;
|
gbc_panel_5.insets = new Insets(0, 0, 5, 5);
|
gbc_panel_5.gridx = 2;
|
gbc_panel_5.gridy = 2;
|
treePanel.add(panel_5, gbc_panel_5);
|
|
tree_zhengRad = new JRadioButton("正向");
|
tree_zhengRad.setToolTipText("以Link查询模板设置为准,该设置可废弃!");
|
tree_zhengRad.setSelected(true);
|
panel_5.add(tree_zhengRad);
|
|
tree_fanRad = new JRadioButton("反向");
|
tree_fanRad.setToolTipText("以Link查询模板设置为准,该设置可废弃!");
|
panel_5.add(tree_fanRad);
|
|
ButtonGroup bgTreeExpandDirect = new ButtonGroup();
|
bgTreeExpandDirect.add(tree_zhengRad);
|
bgTreeExpandDirect.add(tree_fanRad);
|
|
tree_isShowImage = new JCheckBox("显示图标");
|
panel_5.add(tree_isShowImage);
|
|
label_19 = new JLabel("参照树设置");//显示link属性
|
GridBagConstraints gbc_label_19 = new GridBagConstraints();
|
gbc_label_19.insets = new Insets(0, 0, 5, 5);
|
gbc_label_19.gridx = 1;
|
gbc_label_19.gridy = 3;
|
treePanel.add(label_19, gbc_label_19);
|
|
tree_showLinkAbsTxt = new JTextField();
|
/*tree_showLinkAbsTxt.setEditable(false);*/
|
tree_showLinkAbsTxt.setToolTipText("格式为:\"参照属性,根节点虚拟OID\",其中\"根节点虚拟OID\"可为任意字符");
|
tree_showLinkAbsTxt.setColumns(10);
|
GridBagConstraints gbc_tree_showLinkAbsTxt = new GridBagConstraints();
|
gbc_tree_showLinkAbsTxt.fill = GridBagConstraints.HORIZONTAL;
|
gbc_tree_showLinkAbsTxt.insets = new Insets(0, 0, 5, 5);
|
gbc_tree_showLinkAbsTxt.gridx = 2;
|
gbc_tree_showLinkAbsTxt.gridy = 3;
|
treePanel.add(tree_showLinkAbsTxt, gbc_tree_showLinkAbsTxt);
|
|
label_20 = new JLabel("有效性");
|
label_20.setToolTipText("有效性设置以查询模板为准,该有效性设置可废弃!");
|
GridBagConstraints gbc_label_20 = new GridBagConstraints();
|
gbc_label_20.insets = new Insets(0, 0, 5, 5);
|
gbc_label_20.gridx = 1;
|
gbc_label_20.gridy = 4;
|
treePanel.add(label_20, gbc_label_20);
|
|
tree_validityTxt = new JComboBox();
|
tree_validityTxt.setToolTipText("有效性设置以查询模板为准,该有效性设置可废弃!");
|
tree_validityTxt.setEditable(false);
|
tree_validityTxt.setEnabled(false);
|
GridBagConstraints gbc_tree_validityTxt = new GridBagConstraints();
|
gbc_tree_validityTxt.fill = GridBagConstraints.HORIZONTAL;
|
gbc_tree_validityTxt.insets = new Insets(0, 0, 5, 5);
|
gbc_tree_validityTxt.gridx = 2;
|
gbc_tree_validityTxt.gridy = 4;
|
treePanel.add(tree_validityTxt, gbc_tree_validityTxt);
|
|
label_21 = new JLabel("树节点显示表达式");
|
GridBagConstraints gbc_label_21 = new GridBagConstraints();
|
gbc_label_21.insets = new Insets(0, 0, 5, 5);
|
gbc_label_21.gridx = 1;
|
gbc_label_21.gridy = 5;
|
treePanel.add(label_21, gbc_label_21);
|
|
tree_showAbsTxt = new JTextField();
|
tree_showAbsTxt.setHorizontalAlignment(JTextField.LEFT);
|
tree_showAbsTxt.setToolTipText("树节点显示表达式示例:${t_oid.name},数量:${quantity},所属产品:${t_oid.ownproduct.name}");
|
tree_showAbsTxt.setColumns(100);
|
GridBagConstraints gbc_tree_showAbsTxt = new GridBagConstraints();
|
gbc_tree_showAbsTxt.fill = GridBagConstraints.HORIZONTAL;
|
gbc_tree_showAbsTxt.insets = new Insets(0, 0, 5, 5);
|
gbc_tree_showAbsTxt.gridx = 2;
|
gbc_tree_showAbsTxt.gridy = 5;
|
treePanel.add(tree_showAbsTxt, gbc_tree_showAbsTxt);
|
//失去焦点时判断设置的正确性(如果是表达式需校验表达式的正确性)
|
//表单式判断参考:plm.uif.engine.client.TreePanel.isFreemarkExpression();
|
//同时根据当前所选的链接类型(tree_linkTypeTxt)或业务类型(tree_showTypeTxt)的属性判断表达式中变量(即属性)的正确性,具体参考:plm.uif.engine.client.tree.appendToValueMapExt
|
//如果存在问题提示用户,并标红提示
|
//判断输入的格式是否正确
|
tree_showAbsTxt.addFocusListener(new FocusListener() {
|
@Override
|
public void focusLost(FocusEvent e) {
|
tree_showAbsTxt.setForeground(Color.black);
|
String rtnContent = isTreeNodeShowExpress(tree_showAbsTxt.getText());
|
if (!rtnContent.equals("")) {
|
VCIOptionPane.showError(UIDesinDialog.this, "树节点显示表达式校验:" +rtnContent);
|
tree_showAbsTxt.setForeground(Color.red);
|
}
|
}
|
@Override
|
public void focusGained(FocusEvent e) {
|
}
|
});
|
label_22 = new JLabel("分隔符");
|
label_22.setToolTipText("分隔符在树节点显示表达式中统一定义,该分隔符设置可废弃!");
|
GridBagConstraints gbc_label_22 = new GridBagConstraints();
|
gbc_label_22.insets = new Insets(0, 0, 5, 5);
|
gbc_label_22.gridx = 1;
|
gbc_label_22.gridy = 6;
|
treePanel.add(label_22, gbc_label_22);
|
|
tree_separatorTxt = new JTextField();
|
tree_separatorTxt.setToolTipText("分隔符在树节点显示表达式中统一定义,该分隔符设置可废弃!");
|
tree_separatorTxt.setEditable(false);
|
tree_separatorTxt.setColumns(10);
|
tree_separatorTxt.setText(",");
|
GridBagConstraints gbc_tree_separatorTxt = new GridBagConstraints();
|
gbc_tree_separatorTxt.fill = GridBagConstraints.HORIZONTAL;
|
gbc_tree_separatorTxt.insets = new Insets(0, 0, 5, 5);
|
gbc_tree_separatorTxt.gridx = 2;
|
gbc_tree_separatorTxt.gridy = 6;
|
treePanel.add(tree_separatorTxt, gbc_tree_separatorTxt);
|
|
label_23 = new JLabel("链接类型");
|
GridBagConstraints gbc_label_23 = new GridBagConstraints();
|
gbc_label_23.insets = new Insets(0, 0, 5, 5);
|
gbc_label_23.gridx = 1;
|
gbc_label_23.gridy = 7;
|
treePanel.add(label_23, gbc_label_23);
|
|
tree_linkTypeTxt = new JComboBox();
|
tree_linkTypeTxt.setToolTipText("设置了链接类型,那么参照树设置就失效!");
|
GridBagConstraints gbc_tree_linkTypeTxt = new GridBagConstraints();
|
gbc_tree_linkTypeTxt.fill = GridBagConstraints.HORIZONTAL;
|
gbc_tree_linkTypeTxt.insets = new Insets(0, 0, 5, 5);
|
gbc_tree_linkTypeTxt.gridx = 2;
|
gbc_tree_linkTypeTxt.gridy = 7;
|
treePanel.add(tree_linkTypeTxt, gbc_tree_linkTypeTxt);
|
|
getContentPane().add(treePanel, BorderLayout.CENTER);
|
|
label_24 = new JLabel("查询模板");
|
GridBagConstraints gbc_label_24 = new GridBagConstraints();
|
gbc_label_24.insets = new Insets(0, 0, 0, 5);
|
gbc_label_24.gridx = 1;
|
gbc_label_24.gridy = 8;
|
treePanel.add(label_24, gbc_label_24);
|
|
tree_templateIdCom = new JComboBox();
|
tree_templateIdCom.setToolTipText("如设置了链接类型,那么就业务类型失效!");
|
GridBagConstraints gbc_tree_templateIdCom = new GridBagConstraints();
|
gbc_tree_templateIdCom.insets = new Insets(0, 0, 0, 5);
|
gbc_tree_templateIdCom.fill = GridBagConstraints.HORIZONTAL;
|
gbc_tree_templateIdCom.gridx = 2;
|
gbc_tree_templateIdCom.gridy = 8;
|
treePanel.add(tree_templateIdCom, gbc_tree_templateIdCom);
|
|
label_25 = new JLabel("根节点显示表达式");
|
GridBagConstraints gbc_label_25 = new GridBagConstraints();
|
gbc_label_25.insets = new Insets(0, 0, 0, 5);
|
gbc_label_25.gridx = 1;
|
gbc_label_25.gridy = 9;
|
treePanel.add(label_25, gbc_label_25);
|
|
txtTreeRootContent = new JTextField();
|
/*txtTreeRootContent.setEditable(false);*/
|
txtTreeRootContent.setToolTipText("根节点显示可单独设置(具体跟\"树节点显示\"一样),如不设置就按照子孙节点一样显示!");
|
GridBagConstraints gbc_txtRootContent = new GridBagConstraints();
|
gbc_txtRootContent.insets = new Insets(0, 0, 0, 5);
|
gbc_txtRootContent.fill = GridBagConstraints.HORIZONTAL;
|
gbc_txtRootContent.gridx = 2;
|
gbc_txtRootContent.gridy = 9;
|
treePanel.add(txtTreeRootContent, gbc_txtRootContent);
|
txtTreeRootContent.addFocusListener(new FocusListener() {
|
@Override
|
public void focusLost(FocusEvent e) {
|
// TODO:失去焦点时判断设置的正确性(如果是表达式需校验表达式的正确性)
|
//表单式判断参考:plm.uif.engine.client.TreePanel.isFreemarkExpression();
|
//同时根据当前所选的链接类型(tree_linkTypeTxt)或业务类型(tree_showTypeTxt)的属性判断表达式中变量(即属性)的正确性,具体参考:plm.uif.engine.client.tree.appendToValueMapExt
|
//如果存在问题提示用户,并标红提示
|
txtTreeRootContent.setForeground(Color.black);
|
String rtnContent = isTreeNodeShowExpress(txtTreeRootContent.getText());
|
if (!rtnContent.equals("")) {
|
VCIOptionPane.showError(UIDesinDialog.this, "根节点显示表达式校验:"
|
+ rtnContent);
|
txtTreeRootContent.setForeground(Color.red);
|
}
|
}
|
@Override
|
public void focusGained(FocusEvent e) {
|
}
|
});
|
}
|
|
private String isTreeNodeShowExpress(String showExpress){ //,String firstStringOfLable
|
if (showExpress == null || showExpress.trim().equals("")) {
|
return "";
|
}
|
String rtnStr =isFreemarkExpression(showExpress);
|
if(rtnStr.equals("")){ //,firstStringOfLable
|
//判断表达式中的属性是否属于所选的链接类型
|
String bussinessType = tree_showTypeTxt.getSelectedItem()+"";
|
String linkTypeTxt = tree_linkTypeTxt.getSelectedItem()+"";
|
if(linkTypeTxt.equals("")){
|
//如果链接类型为空,则判断表达式中的属性是否属于所选的业务类型
|
//${name},数量:${quantity.XXX},所属产品:${ownproduct.name}
|
try {
|
//[CODE, KEYINFOS, MATERIALNAME, MATERIALSPECS, MATERIALTRADEMARK, PARTSOURCE, PARTTYPE, WEIGHT, GZ, OWNPRODUCT, BIZDOMAIN, POINTLINETYPE, SECRETGRADE, THUMBNAILPATH, USEMATERIAL, VIRTUALSOURCE, VIRTUALSOURCEMDV, ICONFILEPATH, ISDEFAULT, OID, REVISIONOID, NAMEOID, BTMNAME, ISLASTR, ISFIRSTR, ISLASTV, ISFIRSTV, CREATOR, CREATETIME, LASTMODIFIER, LASTMODIFYTIME, REVISIONRULE, VERSIONRULE, REVISIONSEQ, REVISIONVALUE, VERSIONSEQ, VERSIONVALUE, LCTID, LCSTATUS, TS, ID, NAME, DESCRIPTION, OWNER, CHECKINBY, CHECKINTIME, CHECKOUTBY, CHECKOUTTIME, COPYFROMVERSION]
|
List<String> sumList = getTypeAllPropertys(bussinessType,false);
|
for (String firstAttrName: firstAttrNames) { //valueList:{name,quantity,ownproduct,...}
|
if(!sumList.contains(firstAttrName)){ //value = "ownproduct"
|
//VCIOptionPane.showError(UIDesinDialog.this, firstStringOfLable+"节点显示的"+firstAttrName+"属性有误,请核对后再填写!");
|
//tree_showAbsTxt.setForeground(Color.RED); //replace("不存在属性","")
|
return "节点显示的"+firstAttrName+"属性有误,请核对后再填写!";
|
}else {
|
//第二段的计算:String secValue = value.? = "ownproduct"
|
//String[] btms = BtmClient.getService().getBTMNamesByAPName(firstAttrName.toLowerCase());// -->part 此API有误
|
//btms[0]获取属性(即part的所有属性)
|
//没有属性的时候,不执行
|
AttribItem attribItem = ApProvider.getAbItemByName(firstAttrName.toLowerCase());
|
OtherInfo otherInfo = OtherInfo.getOtherInfoByText(attribItem.other);
|
String refTypeName = otherInfo.getRefTypeName();
|
|
List<String> secAttrNames = firSecMap.get(firstAttrName);
|
if(refTypeName!=null&&!refTypeName.equals("")){
|
//firstAttrName是参照属性
|
List<String> refTypeAttrs = getTypeAllPropertys(refTypeName, false); //二段属性 //参照类型的属性(如"Part"的所有属性)
|
if(secAttrNames!=null&&secAttrNames.size()>0){
|
for (String secAttrName : secAttrNames) {
|
if (!refTypeAttrs.contains(secAttrName)) {
|
//VCIOptionPane.showError(UIDesinDialog.this, firstStringOfLable+"节点显示的"+firstAttrName+"."+secAttrName+"属性有误,请核对后再填写!");
|
//tree_showAbsTxt.setForeground(Color.RED);
|
return "节点显示的"+firstAttrName+"."+secAttrName+"属性有误,请核对后再填写!";
|
}
|
}
|
}
|
}else {
|
//firstAttrName不是参照属性,那么 “ownproduct.name”就错了
|
if (firSecMap.containsKey(firstAttrName)) {
|
for (String secAttrName : secAttrNames) {
|
//VCIOptionPane.showError(UIDesinDialog.this, firstStringOfLable+"树节点显示"+firstAttrName+"."+secAttrName+"有误,请核对后再填写!");
|
//tree_showAbsTxt.setForeground(Color.RED);
|
return "树节点显示"+firstAttrName+"."+secAttrName+"有误,请核对后再填写!";
|
}
|
}
|
}
|
}
|
}
|
} catch (VCIError e1) {
|
e1.printStackTrace();
|
} catch (Exception e1) {
|
e1.printStackTrace();
|
} catch (Throwable e1) {
|
e1.printStackTrace();
|
}
|
}else {
|
//如果链接类型不为空,则判断表达式中的属性是否属于所选的链接类型
|
//${t_oid.name},数量:${quantity},所属产品:${f_oid.ownproduct.name}
|
try {
|
//所有的链接类型属性:[LINKDESCRIPTION, QUANTITY, SEQUENCE, OID, CREATOR, CREATETIME, LASTMODIFIER, LASTMODIFYTIME, F_OID, F_REVISIONOID, F_NAMEOID, F_BTWNAME, T_OID, T_REVISIONOID, T_NAMEOID, T_BTWNAME, TS]
|
List<String> linkAllAttrNames = getTypeAllPropertys(linkTypeTxt,true);
|
LinkType linkType = LinkTypeProvider.getInstance().getLinkTypeByName(linkTypeTxt); //linkTypeTxt = 'ebom'
|
for (String firstAttrName: firstAttrNames) {
|
if(!linkAllAttrNames.contains(firstAttrName)){
|
//VCIOptionPane.showError(UIDesinDialog.this, firstStringOfLable+"节点显示的属性"+firstAttrName+"有误,请核对后再填写!");
|
//tree_showAbsTxt.setForeground(Color.RED);
|
return "节点显示的属性"+firstAttrName+"有误,请核对后再填写!";
|
}else {
|
//获取链接类型的btmItemsTo/from属性(判断第二段)
|
if(firstAttrName.equals("T_OID")){
|
String[] toBtmNames = linkType.btmItemsTo; //btmToStrings[0] = "part" 获取类型
|
String rtnContent = processT_OIDOrF_OID(toBtmNames, firstAttrName);
|
if(!rtnContent.equals("")){
|
return rtnContent;
|
}
|
}else if(firstAttrName.equals("F_OID")){
|
String[] toBtmNames = linkType.btmItemsFrom;
|
String rtnContent = processT_OIDOrF_OID(toBtmNames, firstAttrName);
|
if(!rtnContent.equals("")){
|
return rtnContent;
|
}
|
} else {
|
// Link的第一段是其它参照属性时
|
//String[] btms = BtmClient.getService().getBTMNamesByAPName(firstAttrName.toLowerCase());// -->part
|
// 没有属性的时候,不执行
|
AttribItem attribItem = ApProvider.getAbItemByName(firstAttrName.toLowerCase());
|
OtherInfo otherInfo = OtherInfo.getOtherInfoByText(attribItem.other);
|
String refTypeName = otherInfo.getRefTypeName();
|
|
List<String> secAttrNames = firSecMap
|
.get(firstAttrName);
|
if (refTypeName!=null&&!refTypeName.equals("")) {
|
// firstAttrName是参照属性
|
List<String> refTypeAttrs = getTypeAllPropertys(
|
refTypeName, false); // 二段属性
|
// //参照类型的属性(如"Part"的所有属性)
|
if(secAttrNames!=null&&secAttrNames.size()>0){
|
for (String secAttrName : secAttrNames) {
|
if (!refTypeAttrs
|
.contains(secAttrName)) {
|
/*VCIOptionPane
|
.showError(
|
UIDesinDialog.this,
|
firstStringOfLable+"节点显示的"
|
+ firstAttrName + "." + secAttrName
|
+ "属性有误,请核对后再填写!");*/
|
/*tree_showAbsTxt
|
.setForeground(Color.RED);*/
|
return "节点显示的"
|
+ firstAttrName + "." + secAttrName
|
+ "属性有误,请核对后再填写!";
|
}//如果包含,判断第三段属性是否属于对应的类型
|
//String[] thBtms = BtmClient.getService().getBTMNamesByAPName(secAttrName.toLowerCase());
|
AttribItem thrAttribItem = ApProvider.getAbItemByName(secAttrName.toLowerCase());
|
OtherInfo thrOtherInfo = OtherInfo.getOtherInfoByText(thrAttribItem.other);
|
String thrRefTypeName = thrOtherInfo.getRefTypeName();
|
List<String> thrAttrNames= secThrMap.get(secAttrName);
|
if(thrRefTypeName!=null&&!thrRefTypeName.equals("")){
|
//第二段是参照属性
|
List<String> thrRefTypeAttrs = getTypeAllPropertys(thrRefTypeName, true);
|
if(thrAttrNames!=null&&thrAttrNames.size()>0){
|
for (String thrAttrName : thrRefTypeAttrs) {
|
if(!refTypeAttrs.contains(thrAttrName)){
|
//VCIOptionPane.showError(UIDesinDialog.this, firstStringOfLable+"节点显示的属性"+thrAttrName+"有误,请核对后再填写!");
|
//tree_showAbsTxt.setForeground(Color.RED);
|
return "节点显示的属性"+thrAttrName+"有误,请核对后再填写!";
|
}
|
}
|
}
|
}else {
|
//第二段不是参照属性
|
if (firSecMap.containsKey(secAttrName)) {
|
if(thrAttrNames!=null&&thrAttrNames.size()>0){
|
for (String thrAttrName : thrAttrNames) {
|
//VCIOptionPane.showError(UIDesinDialog.this, firstStringOfLable+"节点显示"+secAttrName+"."+thrAttrName+"有误,请核对后再填写!");
|
//tree_showAbsTxt.setForeground(Color.RED);
|
return "节点显示"+secAttrName+"."+thrAttrName+"有误,请核对后再填写!";
|
}
|
}
|
}
|
}
|
}
|
}
|
} else {
|
// 第一段不是参照属性
|
if (secAttrNames != null
|
&& secAttrNames.size() > 0) {
|
for (String secAttrName : secAttrNames) {
|
/*VCIOptionPane
|
.showError(
|
UIDesinDialog.this,
|
firstStringOfLable+"节点显示"
|
+ firstAttrName
|
+ "."
|
+ secAttrName
|
+ "有误,请核对后再填写!");*/
|
/*tree_showAbsTxt
|
.setForeground(Color.RED);*/
|
return "节点显示"
|
+ firstAttrName
|
+ "."
|
+ secAttrName
|
+ "有误,请核对后再填写!";
|
}
|
}
|
|
}
|
}
|
}
|
}
|
} catch (Exception e1) {
|
e1.printStackTrace();
|
} catch (Throwable e1) {
|
e1.printStackTrace();
|
}
|
}
|
return "";
|
}else {
|
//VCIOptionPane.showError(UIDesinDialog.this, "树节点显示的格式有误,请核对后再填写");
|
//tree_showAbsTxt.setForeground(Color.RED);
|
return rtnStr;
|
}
|
}
|
|
/**T_OID或F_OID处理
|
* @throws Throwable */
|
private String processT_OIDOrF_OID(String[] btmNames,String firstAttrName) throws Throwable{ //,String firstStringOfLable
|
//当链接类型为T_OID/F_OID时,判断参照属性(比如ownproduct)是否符合t_oid/f_oid的链接类型的属性 -->part
|
//to和from端有可能存在多种类型,将这些类型所包含的属性集合,放入大集合
|
List<String> toAllAttrNames = new ArrayList<String>();
|
for (String btmName : btmNames) {
|
List<String> btmPropertys = getTypeAllPropertys(btmName,false);
|
/*List<String> btmPropertysList=new ArrayList<String>();
|
for(String bt:btmPropertys){
|
String btmStrs = bt.toUpperCase();
|
btmPropertysList.add(btmStrs);
|
}*/
|
//所有的to端类型的属性集合[CODE, KEYINFOS, MATERIALNAME, MATERIALSPECS, MATERIALTRADEMARK, PARTSOURCE, PARTTYPE, WEIGHT, GZ, OWNPRODUCT, BIZDOMAIN, POINTLINETYPE, SECRETGRADE, THUMBNAILPATH, USEMATERIAL, VIRTUALSOURCE, VIRTUALSOURCEMDV, ICONFILEPATH, ISDEFAULT]
|
toAllAttrNames.addAll(btmPropertys);
|
}
|
//判断第二段属性是否属于to端类型的所有属性
|
List<String> secAttrNames =firSecMap.get(firstAttrName) ; //-->NAME(属于) OWNPRODUCT(属于) CODE(属于)
|
if(secAttrNames!=null&&secAttrNames.size()>0){
|
for (String secAttrName : secAttrNames) {
|
if(!toAllAttrNames.contains(secAttrName)){
|
//VCIOptionPane.showError(UIDesinDialog.this, firstStringOfLable+"节点显示的属性"+firstAttrName+"."+secAttrName+"有误,请核对后再填写!");
|
//tree_showAbsTxt.setForeground(Color.RED);
|
return "节点显示的属性"+firstAttrName+"."+secAttrName+"有误,请核对后再填写!";
|
}else {
|
//如果包含,判断第三段属性是否属于对应的类型
|
//String[] btms = BtmClient.getService().getBTMNamesByAPName(secAttrName.toLowerCase());
|
AttribItem attribItem = ApProvider.getAbItemByName(secAttrName.toLowerCase());
|
OtherInfo otherInfo = OtherInfo.getOtherInfoByText(attribItem.other);
|
String refTypeName = otherInfo.getRefTypeName();
|
List<String> thrAttrNames= secThrMap.get(secAttrName);
|
if(refTypeName!=null&&!refTypeName.equals("")){
|
List<String> refTypeAttrs = getTypeAllPropertys(refTypeName, false); //[CODE, KEYINFOS, MATERIALNAME, MATERIALSPECS, MATERIALTRADEMARK, PARTSOURCE, PARTTYPE, WEIGHT, GZ, OWNPRODUCT, BIZDOMAIN, POINTLINETYPE, SECRETGRADE, THUMBNAILPATH, USEMATERIAL, VIRTUALSOURCE, VIRTUALSOURCEMDV, ICONFILEPATH, ISDEFAULT, OID, CREATOR, CREATETIME, LASTMODIFIER, LASTMODIFYTIME, F_OID, F_REVISIONOID, F_NAMEOID, F_BTWNAME, T_OID, T_REVISIONOID, T_NAMEOID, T_BTWNAME, TS]
|
if(thrAttrNames!=null&&thrAttrNames.size()>0){
|
for (String thrAttrName : thrAttrNames) {
|
if(!refTypeAttrs.contains(thrAttrName)){
|
//VCIOptionPane.showError(UIDesinDialog.this, firstStringOfLable+"节点显示的属性"+firstAttrName+"."+secAttrName+"."+thrAttrName+"有误,请核对后再填写!");
|
//tree_showAbsTxt.setForeground(Color.RED);
|
return "节点显示的属性"+firstAttrName+"."+secAttrName+"."+thrAttrName+"有误,请核对后再填写!";
|
}
|
}
|
}
|
}else {
|
if(thrAttrNames!=null&&thrAttrNames.size()>0){
|
for (String thrAttrName : thrAttrNames) {
|
//VCIOptionPane.showError(UIDesinDialog.this, firstStringOfLable+"节点显示"+firstAttrName+"."+secAttrName+"."+thrAttrName+"有误,请核对后再填写!");
|
//tree_showAbsTxt.setForeground(Color.RED);
|
return "节点显示"+firstAttrName+"."+secAttrName+"."+thrAttrName+"有误,请核对后再填写!";
|
}
|
}
|
|
}
|
}
|
}
|
}
|
return "";
|
}
|
|
/**获取所有的业务/链接类型属性*/
|
private List<String> getTypeAllPropertys(String typeName,boolean isLink) throws Throwable{
|
List<String> sumPropertys=new ArrayList<String>(); //所有的业务类型
|
String[] typePropertys = null;
|
if (isLink) {
|
LinkType linkTypes = LinkTypeProvider.getInstance().getLinkTypeByName(typeName);
|
typePropertys = linkTypes.attributes;
|
}else {
|
typePropertys = BtmClient.getService().getBtmApNameArray(typeName); //此API获取的没有OID,有ownproduct
|
}
|
String[] sysPropertys = null;
|
if (isLink) {
|
sysPropertys = LinkConstants.SELECT_CONSTANTS;
|
} else {
|
sysPropertys = BusinessConstants.SELECT_CONSTANTS;
|
}
|
//统一将查询出来的字符串变为大写
|
for(String item:typePropertys){
|
String upperCase = item.toUpperCase();
|
sumPropertys.add(upperCase);
|
}
|
for(String btm:sysPropertys){
|
String btmStrs = btm.toUpperCase();
|
sumPropertys.add(btmStrs);
|
}
|
return sumPropertys;
|
}
|
|
/**获取所有的链接类型属性*//*
|
private List<String> getLinkPropertys(String linkType,boolean flag) throws Throwable{
|
List<String> linkAttrsName=new ArrayList<String>(); //所有的业务类型
|
LinkType linkTypes = ClientCacheFacade.getInstance().getLinkType(linkType); //linkTypeTxt = 'ebom'
|
String[] linkPropertys = linkTypes.attributes;
|
String[] sysDefaultAtrrs = ClientCacheFacade.getInstance().getSystemAttributes(true);
|
for(String link:linkPropertys){
|
String linkAttrName = link.toUpperCase();
|
linkAttrsName.add(linkAttrName);
|
}
|
for(String link:sysDefaultAtrrs){
|
String linkAttrName = link.toUpperCase();
|
linkAttrsName.add(linkAttrName);
|
}
|
return linkAttrsName;
|
}*/
|
|
/**判断输入的树节点的表达式是否格式正确,并获取属性*/
|
private String isFreemarkExpression(String field){ //,String firstStringOfLable
|
firstAttrNames = new ArrayList<String>();
|
sameKeySecList = new ArrayList<String>();
|
DifferentKeySecList = new ArrayList<String>();
|
sameKeyThrList = new ArrayList<String>();
|
DifferentKeyThrList = new ArrayList<String>();
|
try {
|
boolean res = true;
|
int begin = field.indexOf("${");
|
int end = field.indexOf("}");
|
int len = field.length();
|
String key = null;
|
firSecMap = new HashMap<String, List<String>>();
|
secThrMap = new HashMap<String, List<String>>();
|
while(!"".equals(field) && begin >= 0 && end < len){
|
key = field.substring(begin + 2, end);
|
if (key.trim().equals("")) {
|
return "${}中无设置值,表达式不正确";
|
}
|
//获取第一段属性
|
//链接类型:${t_oid.name},数量:${quantity},所属产品:${t_oid.ownproduct.name}
|
//业务类型 : ${name},数量:${quantity},所属产品:${ownproduct.name}
|
//${t_oid.name},数量:${quantity.pp}
|
String[] keyStrings = key.split("\\.");
|
String lastSplitStr=null;
|
String SecondSplitStr=null;
|
String firstSplitStr=null;
|
if(keyStrings.length>1&&keyStrings.length<3){
|
//String lastSplitStr = keyStrings[keyStrings.length -1].toUpperCase();
|
SecondSplitStr = keyStrings[1].toUpperCase();
|
firstSplitStr = keyStrings[0].toUpperCase();
|
firstAttrNames.add(firstSplitStr);
|
//bug修复(根据key的不同,将后面的属性放入不同的List中)
|
if(firSecMap.containsKey(firstSplitStr)||firSecMap.size()==0){
|
sameKeySecList.add(SecondSplitStr);
|
firSecMap.put(firstSplitStr, sameKeySecList);
|
}else {
|
DifferentKeySecList.add(SecondSplitStr);
|
firSecMap.put(firstSplitStr, DifferentKeySecList);
|
}
|
//thrList.add(lastSplitStr);
|
}else if (keyStrings.length==1) {
|
firstSplitStr = keyStrings[0].toUpperCase();
|
firstAttrNames.add(firstSplitStr);
|
}else if(keyStrings.length==3){
|
lastSplitStr = keyStrings[keyStrings.length -1].toUpperCase();
|
SecondSplitStr = keyStrings[1].toUpperCase();
|
firstSplitStr = keyStrings[0].toUpperCase();
|
firstAttrNames.add(firstSplitStr);
|
//secList.add(SecondSplitStr);
|
//thrList.add(lastSplitStr);
|
if(firSecMap.containsKey(firstSplitStr)||firSecMap.size()==0){
|
sameKeySecList.add(SecondSplitStr);
|
firSecMap.put(firstSplitStr, sameKeySecList);
|
}else {
|
DifferentKeySecList.add(SecondSplitStr);
|
firSecMap.put(firstSplitStr, DifferentKeySecList);
|
}
|
if(secThrMap.containsKey(SecondSplitStr)||secThrMap.size()==0){
|
sameKeyThrList.add(lastSplitStr);
|
secThrMap.put(SecondSplitStr, sameKeyThrList);
|
}else {
|
DifferentKeyThrList.add(lastSplitStr);
|
secThrMap.put(SecondSplitStr, DifferentKeyThrList);
|
}
|
//firSecMap.put(firstSplitStr, secList); //{T_OID=[CODE, OWNPRODUCT]}
|
//secThrMap.put(SecondSplitStr, thrList);//{OWNPRODUCT=[NAME]}
|
}
|
String linkTypeTxt = tree_linkTypeTxt.getSelectedItem()+"";
|
if(linkTypeTxt.equals("")){
|
//业务类型
|
if(keyStrings.length>2){
|
//VCIOptionPane.showError(UIDesinDialog.this, firstStringOfLable+"节点显示的格式"+firstSplitStr+"."+SecondSplitStr+"."+lastSplitStr+"有误,请核对后再填写");
|
return "节点显示的格式"+firstSplitStr+"."+SecondSplitStr+"."+lastSplitStr+"有误,请核对后再填写";
|
}
|
}else {
|
//链接类型
|
if(keyStrings.length>3){
|
//VCIOptionPane.showError(UIDesinDialog.this, firstStringOfLable+"节点显示的格式"+firstSplitStr+"."+SecondSplitStr+"."+lastSplitStr+"有误,请核对后再填写");
|
return "节点显示的格式"+firstSplitStr+"."+SecondSplitStr+"."+lastSplitStr+"有误,请核对后再填写";
|
}
|
}
|
field = field.substring(end + 1);
|
begin = field.indexOf("${");
|
end = field.indexOf("}");
|
len = field.length();
|
res = true;
|
}
|
//如果表达式不存在S{},即为文本时,是正确的。
|
if (key == null || key.trim().equals("")) {
|
return "";
|
}
|
return "";
|
} catch (Exception e) {
|
return "freemarker表达式判断异常!";
|
}
|
}
|
|
private void setFormPanel() {
|
GridBagLayout gbl_panel_2 = new GridBagLayout();
|
gbl_panel_2.columnWidths = new int[] { 0, 0, 0, 0, 0 };
|
gbl_panel_2.rowHeights = new int[] { 0, 0, 0 };
|
gbl_panel_2.columnWeights = new double[] { 0.0, 0.0, 0.0, 1.0,
|
Double.MIN_VALUE };
|
gbl_panel_2.rowWeights = new double[] { 0.0, 0.0,
|
Double.MIN_VALUE };
|
formPanel.setLayout(gbl_panel_2);
|
|
label_12 = new JLabel("模板类型");
|
GridBagConstraints gbc_label_12 = new GridBagConstraints();
|
gbc_label_12.insets = new Insets(0, 0, 5, 5);
|
gbc_label_12.gridx = 1;
|
gbc_label_12.gridy = 0;
|
formPanel.add(label_12, gbc_label_12);
|
|
genralRdb = new JRadioButton("普通模板");
|
genralRdb.setSelected(true);
|
GridBagConstraints gbc_genralRdb = new GridBagConstraints();
|
gbc_genralRdb.insets = new Insets(0, 0, 5, 0);
|
gbc_genralRdb.gridx = 3;
|
gbc_genralRdb.gridy = 0;
|
formPanel.add(genralRdb, gbc_genralRdb);
|
|
label_13 = new JLabel("搜索类型");
|
GridBagConstraints gbc_label_13 = new GridBagConstraints();
|
gbc_label_13.insets = new Insets(0, 0, 0, 5);
|
gbc_label_13.gridx = 1;
|
gbc_label_13.gridy = 1;
|
formPanel.add(label_13, gbc_label_13);
|
|
panel_6 = new JPanel();
|
GridBagConstraints gbc_panel_6 = new GridBagConstraints();
|
gbc_panel_6.anchor = GridBagConstraints.NORTH;
|
gbc_panel_6.fill = GridBagConstraints.BOTH;
|
gbc_panel_6.gridx = 3;
|
gbc_panel_6.gridy = 1;
|
formPanel.add(panel_6, gbc_panel_6);
|
ButtonGroup bg = new ButtonGroup();
|
form_rootRdb = new JRadioButton("本对象属性");
|
panel_6.add(form_rootRdb);
|
form_rootRdb.setSelected(true);
|
|
form_relateRdb = new JRadioButton("关联对象");
|
panel_6.add(form_relateRdb);
|
bg.add(form_rootRdb);
|
bg.add(form_relateRdb);
|
}
|
|
private void setTreeTablePanel() {
|
GridBagLayout gbl_treeTablePanel = new GridBagLayout();
|
gbl_treeTablePanel.columnWidths = new int[] { 0, 0, 0 };
|
gbl_treeTablePanel.rowHeights = new int[] { 0, 0, 0, 0, 0 };
|
gbl_treeTablePanel.columnWeights = new double[] { 0.0, 1.0,
|
Double.MIN_VALUE };
|
gbl_treeTablePanel.rowWeights = new double[] { 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE };
|
treeTablePanel.setLayout(gbl_treeTablePanel);
|
|
lblNewLabel_1 = new JLabel("顶级节点显示类型");
|
GridBagConstraints gbc_lblNewLabel_1 = new GridBagConstraints();
|
gbc_lblNewLabel_1.anchor = GridBagConstraints.EAST;
|
gbc_lblNewLabel_1.insets = new Insets(0, 0, 5, 5);
|
gbc_lblNewLabel_1.gridx = 0;
|
gbc_lblNewLabel_1.gridy = 0;
|
treeTablePanel.add(lblNewLabel_1, gbc_lblNewLabel_1);
|
|
tree_table_rootCom = new JComboBox();
|
GridBagConstraints gbc_tree_table_rootObjCom = new GridBagConstraints();
|
gbc_tree_table_rootObjCom.insets = new Insets(0, 0, 5, 0);
|
gbc_tree_table_rootObjCom.fill = GridBagConstraints.HORIZONTAL;
|
gbc_tree_table_rootObjCom.gridx = 1;
|
gbc_tree_table_rootObjCom.gridy = 0;
|
gbc_tree_table_rootObjCom.gridwidth = 3;
|
treeTablePanel.add(tree_table_rootCom, gbc_tree_table_rootObjCom);
|
|
lblNewLabel_2 = new JLabel("选择模板");
|
GridBagConstraints gbc_lblNewLabel_2 = new GridBagConstraints();
|
gbc_lblNewLabel_2.insets = new Insets(0, 0, 5, 5);
|
gbc_lblNewLabel_2.gridx = 0;
|
gbc_lblNewLabel_2.gridy = 1;
|
treeTablePanel.add(lblNewLabel_2, gbc_lblNewLabel_2);
|
|
tree_table_rootSelectTem = new JComboBox();
|
GridBagConstraints gbc_tree_table_rootObjSelectCom = new GridBagConstraints();
|
gbc_tree_table_rootObjSelectCom.insets = new Insets(0, 0, 5, 0);
|
gbc_tree_table_rootObjSelectCom.fill = GridBagConstraints.HORIZONTAL;
|
gbc_tree_table_rootObjSelectCom.gridx = 1;
|
gbc_tree_table_rootObjSelectCom.gridy = 1;
|
treeTablePanel.add(tree_table_rootSelectTem, gbc_tree_table_rootObjSelectCom);
|
|
//==add by guo==当模板类型是TableTree模板且对象是业务类型的时候,添加模板
|
createPOTreeTable = new JButton("+");
|
GridBagConstraints gbc_createPOTreeTable = new GridBagConstraints();
|
gbc_createPOTreeTable.gridx = 2;
|
gbc_createPOTreeTable.gridy = 1;
|
treeTablePanel.add(createPOTreeTable, gbc_createPOTreeTable);
|
//编辑业务类型的TableTree模板
|
editPOTreeTable = new JButton("编辑");
|
GridBagConstraints gbc_editPOTreeTable = new GridBagConstraints();
|
gbc_editPOTreeTable.gridx = 3;
|
gbc_editPOTreeTable.gridy = 1;
|
treeTablePanel.add(editPOTreeTable, gbc_editPOTreeTable);
|
|
|
label_4 = new JLabel("展开方式");
|
GridBagConstraints gbc_label_4 = new GridBagConstraints();
|
gbc_label_4.insets = new Insets(0, 0, 5, 5);
|
gbc_label_4.gridx = 0;
|
gbc_label_4.gridy = 2;
|
treeTablePanel.add(label_4, gbc_label_4);
|
|
panel_3 = new JPanel();
|
GridBagConstraints gbc_panel_3 = new GridBagConstraints();
|
gbc_panel_3.fill = GridBagConstraints.BOTH;
|
gbc_panel_3.insets = new Insets(0, 0, 5, 0);
|
gbc_panel_3.gridx = 1;
|
gbc_panel_3.gridy = 2;
|
gbc_panel_3.gridwidth = 2;
|
treeTablePanel.add(panel_3, gbc_panel_3);
|
|
ButtonGroup bg = new ButtonGroup();
|
graduallyRad = new JRadioButton("逐级展开");
|
graduallyRad.setSelected(true);
|
panel_3.add(graduallyRad);
|
|
allRad = new JRadioButton("全部展开");
|
panel_3.add(allRad);
|
bg.add(graduallyRad);
|
bg.add(allRad);
|
|
label_5 = new JLabel("树形结构展开列");
|
GridBagConstraints gbc_label_5 = new GridBagConstraints();
|
gbc_label_5.insets = new Insets(0, 0, 0, 5);
|
gbc_label_5.gridx = 0;
|
gbc_label_5.gridy = 3;
|
treeTablePanel.add(label_5, gbc_label_5);
|
|
expandColsTxt = new JTextField();
|
expandColsTxt.setColumns(10);
|
GridBagConstraints gbc_expandColsTxt = new GridBagConstraints();
|
gbc_expandColsTxt.fill = GridBagConstraints.HORIZONTAL;
|
gbc_expandColsTxt.gridx = 1;
|
gbc_expandColsTxt.gridy = 3;
|
gbc_expandColsTxt.gridwidth = 2;
|
treeTablePanel.add(expandColsTxt, gbc_expandColsTxt);
|
}
|
|
private void setRelatePanel() {
|
gernalDynamicPal.setLayout(new BorderLayout(0, 0));
|
relatetPal = new JPanel();
|
GridBagLayout gridBagLayout = new GridBagLayout();
|
gridBagLayout.columnWidths = new int[] { 0, 72, 0, 0 };
|
gridBagLayout.rowHeights = new int[] { 0, 0, 0, 0 };
|
gridBagLayout.columnWeights = new double[] { 0.0, 0.0, 1.0,
|
Double.MIN_VALUE };
|
gridBagLayout.rowWeights = new double[] { 0.0, 0.0, 0.0,
|
Double.MIN_VALUE };
|
relatetPal.setLayout(gridBagLayout);
|
|
JLabel label = new JLabel("目标对象");
|
GridBagConstraints gbc_label = new GridBagConstraints();
|
gbc_label.insets = new Insets(0, 0, 5, 5);
|
gbc_label.gridx = 1;
|
gbc_label.gridy = 0;
|
relatetPal.add(label, gbc_label);
|
|
relatCom = new JComboBox();
|
GridBagConstraints gbc_comboBox = new GridBagConstraints();
|
gbc_comboBox.insets = new Insets(0, 0, 5, 0);
|
gbc_comboBox.fill = GridBagConstraints.HORIZONTAL;
|
gbc_comboBox.gridx = 2;
|
gbc_comboBox.gridy = 0;
|
gbc_comboBox.gridwidth = 3;
|
relatetPal.add(relatCom, gbc_comboBox);
|
|
JLabel lblLinktype = new JLabel("LinkType");
|
GridBagConstraints gbc_lblLinktype = new GridBagConstraints();
|
gbc_lblLinktype.insets = new Insets(0, 0, 5, 5);
|
gbc_lblLinktype.gridx = 1;
|
gbc_lblLinktype.gridy = 1;
|
relatetPal.add(lblLinktype, gbc_lblLinktype);
|
|
relateLtCom = new JComboBox();
|
GridBagConstraints gbc_comboBox_2 = new GridBagConstraints();
|
gbc_comboBox_2.insets = new Insets(0, 0, 5, 0);
|
gbc_comboBox_2.fill = GridBagConstraints.HORIZONTAL;
|
gbc_comboBox_2.gridx = 2;
|
gbc_comboBox_2.gridy = 1;
|
gbc_comboBox_2.gridwidth = 3;
|
relatetPal.add(relateLtCom, gbc_comboBox_2);
|
|
JLabel label_1 = new JLabel("选择模板");
|
GridBagConstraints gbc_label_1 = new GridBagConstraints();
|
gbc_label_1.insets = new Insets(0, 0, 0, 5);
|
gbc_label_1.gridx = 1;
|
gbc_label_1.gridy = 2;
|
relatetPal.add(label_1, gbc_label_1);
|
|
relateSelectTem = new JComboBox();
|
GridBagConstraints gbc_comboBox_1 = new GridBagConstraints();
|
gbc_comboBox_1.fill = GridBagConstraints.HORIZONTAL;
|
gbc_comboBox_1.gridx = 2;
|
gbc_comboBox_1.gridy = 2;
|
relatetPal.add(relateSelectTem, gbc_comboBox_1);
|
|
//==add by guo==当模板类型为Table且对象为链接类型的时候,添加模板
|
createLOTable = new JButton("+");
|
GridBagConstraints gbc_createLOTable = new GridBagConstraints();
|
gbc_createLOTable.gridx = 3;
|
gbc_createLOTable.gridy = 2;
|
relatetPal.add(createLOTable, gbc_createLOTable);
|
//编辑链接类型的Table模板
|
editLOTable = new JButton("编辑");
|
GridBagConstraints gbc_editLOTable = new GridBagConstraints();
|
gbc_editLOTable.gridx = 4;
|
gbc_editLOTable.gridy = 2;
|
relatetPal.add(editLOTable, gbc_editLOTable);
|
}
|
|
private void setFormRelatePanel() {
|
form_relatetPal = new JPanel();
|
GridBagLayout gridBagLayout = new GridBagLayout();
|
gridBagLayout.columnWidths = new int[] { 0, 72, 0, 0 };
|
gridBagLayout.rowHeights = new int[] { 0, 0, 0, 0 };
|
gridBagLayout.columnWeights = new double[] { 0.0, 0.0, 1.0,
|
Double.MIN_VALUE };
|
gridBagLayout.rowWeights = new double[] { 0.0, 0.0, 0.0,
|
Double.MIN_VALUE };
|
form_relatetPal.setLayout(gridBagLayout);
|
|
JLabel label = new JLabel("目标对象");
|
GridBagConstraints gbc_label = new GridBagConstraints();
|
gbc_label.insets = new Insets(0, 0, 5, 5);
|
gbc_label.gridx = 1;
|
gbc_label.gridy = 0;
|
form_relatetPal.add(label, gbc_label);
|
|
form_relatCom = new JComboBox();
|
GridBagConstraints gbc_comboBox = new GridBagConstraints();
|
gbc_comboBox.insets = new Insets(0, 0, 5, 0);
|
gbc_comboBox.fill = GridBagConstraints.HORIZONTAL;
|
gbc_comboBox.gridx = 2;
|
gbc_comboBox.gridy = 0;
|
gbc_comboBox.gridwidth = 3;
|
form_relatetPal.add(form_relatCom, gbc_comboBox);
|
|
JLabel lblLinktype = new JLabel("LinkType");
|
GridBagConstraints gbc_lblLinktype = new GridBagConstraints();
|
gbc_lblLinktype.insets = new Insets(0, 0, 5, 5);
|
gbc_lblLinktype.gridx = 1;
|
gbc_lblLinktype.gridy = 1;
|
form_relatetPal.add(lblLinktype, gbc_lblLinktype);
|
|
form_relateLtCom = new JComboBox();
|
GridBagConstraints gbc_comboBox_2 = new GridBagConstraints();
|
gbc_comboBox_2.insets = new Insets(0, 0, 5, 0);
|
gbc_comboBox_2.fill = GridBagConstraints.HORIZONTAL;
|
gbc_comboBox_2.gridx = 2;
|
gbc_comboBox_2.gridy = 1;
|
gbc_comboBox_2.gridwidth = 3;
|
form_relatetPal.add(form_relateLtCom, gbc_comboBox_2);
|
|
JLabel label_1 = new JLabel("选择模板");
|
GridBagConstraints gbc_label_1 = new GridBagConstraints();
|
gbc_label_1.insets = new Insets(0, 0, 0, 5);
|
gbc_label_1.gridx = 1;
|
gbc_label_1.gridy = 2;
|
form_relatetPal.add(label_1, gbc_label_1);
|
|
form_relateSelectTem = new JComboBox();
|
GridBagConstraints gbc_comboBox_1 = new GridBagConstraints();
|
gbc_comboBox_1.fill = GridBagConstraints.HORIZONTAL;
|
gbc_comboBox_1.gridx = 2;
|
gbc_comboBox_1.gridy = 2;
|
form_relatetPal.add(form_relateSelectTem, gbc_comboBox_1);
|
|
//==add by guo==当模板类型为Form,并且对象为链接类型的时候,添加模板
|
createLOForm = new JButton("+");
|
GridBagConstraints gbc_createLOForm = new GridBagConstraints();
|
gbc_createLOForm.gridx = 3;
|
gbc_createLOForm.gridy = 2;
|
form_relatetPal.add(createLOForm, gbc_createLOForm);
|
//编辑链接类型对应的form模板
|
editLOForm = new JButton("编辑");
|
GridBagConstraints gbc_editLOForm = new GridBagConstraints();
|
gbc_editLOForm.gridx = 4;
|
gbc_editLOForm.gridy = 2;
|
form_relatetPal.add(editLOForm, gbc_editLOForm);
|
|
}
|
private void setrootObjectPanel() {
|
gernalDynamicPal.setLayout(new BorderLayout(0, 0));
|
tableObjectPal = new JPanel();
|
GridBagLayout gbl_tableObjectPal = new GridBagLayout();
|
gbl_tableObjectPal.columnWidths = new int[] { 0, 72, 0, 0 };
|
gbl_tableObjectPal.rowHeights = new int[] { 0, 0, 0 };
|
gbl_tableObjectPal.columnWeights = new double[] { 0.0, 0.0, 1.0,
|
Double.MIN_VALUE };
|
gbl_tableObjectPal.rowWeights = new double[] { 0.0, 0.0, Double.MIN_VALUE };
|
tableObjectPal.setLayout(gbl_tableObjectPal);
|
|
JLabel label = new JLabel("源对象");
|
GridBagConstraints gbc_label = new GridBagConstraints();
|
gbc_label.insets = new Insets(0, 0, 5, 5);
|
gbc_label.gridx = 1;
|
gbc_label.gridy = 0;
|
tableObjectPal.add(label, gbc_label);
|
|
rootCom = new JComboBox();
|
GridBagConstraints gbc_comboBox = new GridBagConstraints();
|
gbc_comboBox.insets = new Insets(0, 0, 5, 0);
|
gbc_comboBox.fill = GridBagConstraints.HORIZONTAL;
|
gbc_comboBox.gridx = 2;
|
gbc_comboBox.gridy = 0;
|
gbc_comboBox.gridwidth = 3;
|
tableObjectPal.add(rootCom, gbc_comboBox);
|
|
JLabel label_1 = new JLabel("选择模板");
|
GridBagConstraints gbc_label_1 = new GridBagConstraints();
|
gbc_label_1.insets = new Insets(0, 0, 0, 5);
|
gbc_label_1.gridx = 1;
|
gbc_label_1.gridy = 1;
|
tableObjectPal.add(label_1, gbc_label_1);
|
|
rootSelectTem = new JComboBox();
|
GridBagConstraints gbc_comboBox_1 = new GridBagConstraints();
|
gbc_comboBox_1.fill = GridBagConstraints.HORIZONTAL;
|
gbc_comboBox_1.gridx = 2;
|
gbc_comboBox_1.gridy = 1;
|
tableObjectPal.add(rootSelectTem, gbc_comboBox_1);
|
//add by guo==模板类型为Table且对象为业务类型的时候,选择模板
|
createPOTable = new JButton("+");
|
GridBagConstraints gbc_createPOTable = new GridBagConstraints();
|
gbc_createPOTable.gridx = 3;
|
gbc_createPOTable.gridy = 1;
|
tableObjectPal.add(createPOTable, gbc_createPOTable);
|
//编辑业务类型对应的table类型的模板
|
editPOTable = new JButton("编辑");
|
GridBagConstraints gbc_editPOTable = new GridBagConstraints();
|
gbc_editPOTable.gridx = 4;
|
gbc_editPOTable.gridy = 1;
|
tableObjectPal.add(editPOTable, gbc_editPOTable);
|
}
|
|
private void setCustomPanel() {
|
custermPanel = new JPanel();
|
GridBagLayout gbl_custermPanel = new GridBagLayout();
|
gbl_custermPanel.columnWidths = new int[] { 91, 66, 0 };
|
gbl_custermPanel.rowHeights = new int[] { 21, 0 };
|
gbl_custermPanel.columnWeights = new double[] { 0.0, 1.0,
|
Double.MIN_VALUE };
|
gbl_custermPanel.rowWeights = new double[] { 0.0, Double.MIN_VALUE };
|
custermPanel.setLayout(gbl_custermPanel);
|
JLabel lblNewLabel = new JLabel("控制路径");
|
GridBagConstraints gbc_lblNewLabel = new GridBagConstraints();
|
gbc_lblNewLabel.insets = new Insets(0, 0, 0, 5);
|
gbc_lblNewLabel.gridx = 0;
|
gbc_lblNewLabel.gridy = 0;
|
custermPanel.add(lblNewLabel, gbc_lblNewLabel);
|
|
controlpath = new JTextField();
|
GridBagConstraints gbc_controlpath = new GridBagConstraints();
|
gbc_controlpath.fill = GridBagConstraints.HORIZONTAL;
|
gbc_controlpath.anchor = GridBagConstraints.NORTH;
|
gbc_controlpath.gridx = 1;
|
gbc_controlpath.gridy = 0;
|
custermPanel.add(controlpath, gbc_controlpath);
|
controlpath.setColumns(10);
|
}
|
|
private void setgernaralPanel() {
|
tableGernaralPanel = new JPanel();
|
GridBagLayout gbl_tableGernaralPanel = new GridBagLayout();
|
gbl_tableGernaralPanel.columnWidths = new int[] { 15, 95, 66, 0, 0, 0 };
|
gbl_tableGernaralPanel.rowHeights = new int[] { 21, 0 };
|
gbl_tableGernaralPanel.columnWeights = new double[] { 0.0, 0.0, 0.0, 0.0, 0.0,
|
Double.MIN_VALUE };
|
gbl_tableGernaralPanel.rowWeights = new double[] { 0.0, Double.MIN_VALUE };
|
tableGernaralPanel.setLayout(gbl_tableGernaralPanel);
|
|
JLabel label = new JLabel("搜索类型");
|
GridBagConstraints gbc_label = new GridBagConstraints();
|
gbc_label.insets = new Insets(0, 0, 0, 5);
|
gbc_label.gridx = 1;
|
gbc_label.gridy = 0;
|
tableGernaralPanel.add(label, gbc_label);
|
|
rootObjectRdb = new JRadioButton("本对象属性");
|
rootObjectRdb.setSelected(true);
|
GridBagConstraints gbc_rdbtnNewRadioButton = new GridBagConstraints();
|
gbc_rdbtnNewRadioButton.insets = new Insets(0, 0, 0, 5);
|
gbc_rdbtnNewRadioButton.gridx = 2;
|
gbc_rdbtnNewRadioButton.gridy = 0;
|
tableGernaralPanel.add(rootObjectRdb, gbc_rdbtnNewRadioButton);
|
bg1.add(rootObjectRdb);
|
|
relateRdb = new JRadioButton("关联对象");
|
GridBagConstraints gbc_rdbtnNewRadioButton_1 = new GridBagConstraints();
|
gbc_rdbtnNewRadioButton_1.insets = new Insets(0, 0, 0, 5);
|
gbc_rdbtnNewRadioButton_1.gridx = 3;
|
gbc_rdbtnNewRadioButton_1.gridy = 0;
|
tableGernaralPanel.add(relateRdb, gbc_rdbtnNewRadioButton_1);
|
bg1.add(relateRdb);
|
|
PFKRdb = new JRadioButton("主外键对象");
|
GridBagConstraints gbc_rdbtnNewRadioButton_2 = new GridBagConstraints();
|
gbc_rdbtnNewRadioButton_2.gridx = 4;
|
gbc_rdbtnNewRadioButton_2.gridy = 0;
|
// generalPanel.add(PFKRdb, gbc_rdbtnNewRadioButton_2);
|
// bg1.add(PFKRdb);
|
}
|
|
private void setTree_table_gernaralPanel() {
|
tree_tableGernaralPanel = new JPanel();
|
GridBagLayout gbl_tablePanel = new GridBagLayout();
|
gbl_tablePanel.columnWidths = new int[] { 15, 95, 66, 0, 0, 0 };
|
gbl_tablePanel.rowHeights = new int[] { 21, 0 };
|
gbl_tablePanel.columnWeights = new double[] { 0.0, 0.0, 0.0, 0.0, 0.0,
|
Double.MIN_VALUE };
|
gbl_tablePanel.rowWeights = new double[] { 0.0, Double.MIN_VALUE };
|
tree_tableGernaralPanel.setLayout(gbl_tablePanel);
|
|
JLabel label = new JLabel("搜索类型");
|
GridBagConstraints gbc_label = new GridBagConstraints();
|
gbc_label.insets = new Insets(0, 0, 0, 5);
|
gbc_label.gridx = 1;
|
gbc_label.gridy = 0;
|
tree_tableGernaralPanel.add(label, gbc_label);
|
tree_table_bg1 = new ButtonGroup();
|
tree_table_rootObjectRdb = new JRadioButton("本对象属性");
|
tree_table_rootObjectRdb.setSelected(true);
|
GridBagConstraints gbc_rdbtnNewRadioButton = new GridBagConstraints();
|
gbc_rdbtnNewRadioButton.insets = new Insets(0, 0, 0, 5);
|
gbc_rdbtnNewRadioButton.gridx = 2;
|
gbc_rdbtnNewRadioButton.gridy = 0;
|
tree_tableGernaralPanel.add(tree_table_rootObjectRdb, gbc_rdbtnNewRadioButton);
|
tree_table_bg1.add(tree_table_rootObjectRdb);
|
|
tree_table_relateRdb = new JRadioButton("关联对象");
|
GridBagConstraints gbc_rdbtnNewRadioButton_1 = new GridBagConstraints();
|
gbc_rdbtnNewRadioButton_1.insets = new Insets(0, 0, 0, 5);
|
gbc_rdbtnNewRadioButton_1.gridx = 3;
|
gbc_rdbtnNewRadioButton_1.gridy = 0;
|
tree_tableGernaralPanel.add(tree_table_relateRdb, gbc_rdbtnNewRadioButton_1);
|
tree_table_bg1.add(tree_table_relateRdb);
|
|
PFKRdb = new JRadioButton("主外键对象");
|
GridBagConstraints gbc_rdbtnNewRadioButton_2 = new GridBagConstraints();
|
gbc_rdbtnNewRadioButton_2.gridx = 4;
|
gbc_rdbtnNewRadioButton_2.gridy = 0;
|
// generalPanel.add(PFKRdb, gbc_rdbtnNewRadioButton_2);
|
// bg1.add(PFKRdb);
|
}
|
private void actionListener() {
|
tree_showTypeTxt.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
fillQtNameCom();
|
}
|
});
|
tree_linkTypeTxt.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
fillQtNameCom();
|
}
|
});
|
rootObjCom.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
refreshChangableTablePortalVIs(rootObjCom, rootObjSelectCom, PortalVIType.Form);
|
}
|
});
|
|
okButton.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
okBtn_actionPerformed(arg0);
|
}
|
});
|
cancelButton.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
dispose();
|
}
|
});
|
tableRadio.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
dynamicPal.remove(custermPanel);
|
dynamicPal.remove(treeTablePanel);
|
dynamicPal.remove(treePanel);
|
dynamicPal.remove(tree_tableGernaralPanel);
|
dynamicPal.remove(tree_table_gernalDynamicPal);
|
dynamicPal.remove(formPanel);
|
dynamicPal.remove(form_gernalDynamicPal);
|
dynamicPal.add(tableGernaralPanel, BorderLayout.NORTH);
|
dynamicPal.add(gernalDynamicPal, BorderLayout.CENTER);
|
dynamicPal.updateUI();
|
}
|
});
|
customRadio.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
dynamicPal.remove(tableGernaralPanel);
|
dynamicPal.remove(gernalDynamicPal);
|
dynamicPal.remove(treeTablePanel);
|
dynamicPal.remove(treePanel);
|
dynamicPal.remove(tree_tableGernaralPanel);
|
dynamicPal.remove(tree_table_gernalDynamicPal);
|
dynamicPal.remove(formPanel);
|
dynamicPal.remove(form_gernalDynamicPal);
|
dynamicPal.add(custermPanel, BorderLayout.CENTER);
|
dynamicPal.updateUI();
|
}
|
});
|
rdbtnTreeTable.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
dynamicPal.remove(tableGernaralPanel);
|
dynamicPal.remove(gernalDynamicPal);
|
dynamicPal.remove(custermPanel);
|
dynamicPal.remove(treePanel);
|
dynamicPal.remove(formPanel);
|
dynamicPal.remove(form_gernalDynamicPal);
|
dynamicPal.add(tree_tableGernaralPanel, BorderLayout.NORTH);
|
dynamicPal.add(tree_table_gernalDynamicPal, BorderLayout.CENTER);
|
dynamicPal.updateUI();
|
}
|
});
|
rdbtnForm.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
dynamicPal.remove(tableGernaralPanel);
|
dynamicPal.remove(gernalDynamicPal);
|
dynamicPal.remove(custermPanel);
|
dynamicPal.remove(treeTablePanel);
|
dynamicPal.remove(treePanel);
|
dynamicPal.remove(tree_tableGernaralPanel);
|
dynamicPal.remove(tree_table_gernalDynamicPal);
|
dynamicPal.add(formPanel, BorderLayout.NORTH);
|
dynamicPal.add(form_gernalDynamicPal, BorderLayout.CENTER);
|
dynamicPal.updateUI();
|
}
|
});
|
|
rdbtnTree.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
dynamicPal.remove(tableGernaralPanel);
|
dynamicPal.remove(gernalDynamicPal);
|
dynamicPal.remove(custermPanel);
|
dynamicPal.remove(treeTablePanel);
|
dynamicPal.remove(tree_tableGernaralPanel);
|
dynamicPal.remove(tree_table_gernalDynamicPal);
|
dynamicPal.remove(formPanel);
|
dynamicPal.remove(form_gernalDynamicPal);
|
dynamicPal.add(treePanel, BorderLayout.CENTER);
|
dynamicPal.updateUI();
|
}
|
});
|
rootObjectRdb.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
gernalDynamicPal.remove(relatetPal);
|
gernalDynamicPal.add(tableObjectPal, BorderLayout.CENTER);
|
gernalDynamicPal.updateUI();
|
}
|
});
|
relateRdb.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
gernalDynamicPal.remove(tableObjectPal);
|
gernalDynamicPal.add(relatetPal, BorderLayout.CENTER);
|
gernalDynamicPal.updateUI();
|
}
|
});
|
form_rootRdb.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
form_gernalDynamicPal.remove(form_relatetPal);
|
form_gernalDynamicPal.add(form_rootPal, BorderLayout.CENTER);
|
form_gernalDynamicPal.updateUI();
|
}
|
});
|
form_relateRdb.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
form_gernalDynamicPal.remove(form_rootPal);
|
form_gernalDynamicPal.add(form_relatetPal, BorderLayout.CENTER);
|
form_gernalDynamicPal.updateUI();
|
}
|
});
|
tree_table_rootObjectRdb.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
tree_table_gernalDynamicPal.remove(tree_table_RelatePal);
|
tree_table_gernalDynamicPal.add(treeTablePanel, BorderLayout.CENTER);
|
tree_table_gernalDynamicPal.updateUI();
|
}
|
});
|
tree_table_relateRdb.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
tree_table_gernalDynamicPal.remove(treeTablePanel);
|
tree_table_gernalDynamicPal.add(tree_table_RelatePal, BorderLayout.CENTER);
|
tree_table_gernalDynamicPal.updateUI();
|
}
|
});
|
PFKRdb.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
}
|
});
|
rootCom.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
refreshChangableTablePortalVIs(rootCom, rootSelectTem, PortalVIType.Table);
|
}
|
});
|
tree_table_rootCom.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
refreshChangableTablePortalVIs(tree_table_rootCom, tree_table_rootSelectTem, PortalVIType.Table);
|
}
|
});
|
relatCom.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
// relateLtCom.removeAllItems();
|
LinkType[] linkTypes = getSortedLinkTypes();
|
for (int i = 0; i < linkTypes.length; i++) {
|
relateLtCom.addItem(linkTypes[i].name);
|
}
|
relateLtCom.updateUI();
|
|
}
|
});
|
|
relateLtCom.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
refreshChangableTablePortalVIs(relateLtCom, relateSelectTem, PortalVIType.Table);
|
}
|
});
|
form_relatCom.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
// form_relateLtCom.removeAllItems();
|
LinkType[] linkTypes = getSortedLinkTypes();
|
for (int i = 0; i < linkTypes.length; i++) {
|
form_relateLtCom.addItem(linkTypes[i].name);
|
}
|
form_relateLtCom.updateUI();
|
|
}
|
});
|
|
form_relateLtCom.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
refreshChangableTablePortalVIs(form_relateLtCom, form_relateSelectTem, PortalVIType.Form);
|
}
|
});
|
tree_table_relatCom.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
tree_table_relateLtCom.removeAllItems();
|
LinkType[] linkTypes = getSortedLinkTypes();
|
for (int i = 0; i < linkTypes.length; i++) {
|
tree_table_relateLtCom.addItem(linkTypes[i].name);
|
}
|
tree_table_relateLtCom.updateUI();
|
}
|
});
|
|
tree_table_relateLtCom.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
refreshChangableTablePortalVIs(tree_table_relateLtCom, tree_table_relateSelectTem, PortalVIType.Table);
|
}
|
});
|
//========add by guo==
|
createPOForm.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
addSelectModel(rootObjSelectCom, rootObjCom, null, PortalVIType.Form, false);
|
}
|
});
|
editPOForm.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
editSelectModel(PortalVIType.Form , rootObjSelectCom, rootObjCom, null, false);
|
}
|
});
|
createLOTreeTable.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
addSelectModel(tree_table_relateSelectTem, tree_table_relateLtCom, tree_table_relateLtCom, PortalVIType.Table, true);
|
}
|
});
|
editLOTreeTable.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
editSelectModel(PortalVIType.Table , tree_table_relateSelectTem,tree_table_relateLtCom, tree_table_relateLtCom, true);
|
}
|
});
|
createPOTreeTable.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
addSelectModel(tree_table_rootSelectTem, tree_table_rootCom, null, PortalVIType.Table, false);
|
}
|
});
|
editPOTreeTable.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
editSelectModel(PortalVIType.Table , tree_table_rootSelectTem,tree_table_rootCom, null, false);
|
}
|
});
|
createLOTable.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
addSelectModel(relateSelectTem, relateLtCom, relateLtCom, PortalVIType.Table, true);
|
}
|
});
|
editLOTable.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
editSelectModel(PortalVIType.Table , relateSelectTem, relateLtCom, relateLtCom, true);
|
}
|
});
|
createLOForm.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
addSelectModel(form_relateSelectTem, form_relateLtCom, form_relateLtCom, PortalVIType.Form, true);
|
}
|
});
|
editLOForm.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
editSelectModel(PortalVIType.Form , form_relateSelectTem, form_relateLtCom, form_relateLtCom, true);
|
}
|
});
|
createPOTable.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
addSelectModel(rootSelectTem, rootCom, null, PortalVIType.Table, false);
|
}
|
});
|
editPOTable.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
editSelectModel(PortalVIType.Table , rootSelectTem, rootCom, null, false);
|
}
|
});
|
|
}
|
private void okBtn_actionPerformed(ActionEvent e){
|
DialogResult dialogRes = DialogResult.CANCEL;
|
try{
|
String rtnContent = isTreeNodeShowExpress(tree_showAbsTxt.getText());
|
if (!rtnContent.equals("")) {
|
VCIOptionPane.showError(UIDesinDialog.this, "树节点显示表达式校验异常:"
|
+ rtnContent);
|
return;
|
}
|
|
rtnContent = isTreeNodeShowExpress(txtTreeRootContent.getText());
|
if (!rtnContent.equals("")) {
|
VCIOptionPane.showError(UIDesinDialog.this, "根节点显示表达式校验异常:"
|
+ rtnContent);
|
return;
|
}
|
/*if(!isTreeNodeShowExpress(txtTreeRootContent.getText(),label_25.getText().substring(0, 1))){
|
VCIOptionPane.showError(UIDesinDialog.this, "根节点显示表达式定义有误,请修正后再保存!");
|
return;
|
}*/
|
PLPageDefination plPageDefination = getPLPageDefinationFromUI();
|
PLDefination plDefination = getPLDefinationFromUI();
|
if(checkEdit(plPageDefination, plDefination)){
|
return;
|
}
|
boolean res = save(plPageDefination, UIDesinDialog.this.plPageDefination != null);
|
if(res){
|
dialogRes = DialogResult.OK;
|
VCIOptionPane.showMessage(UIDesinDialog.this, "保存成功!");
|
dispose();
|
} else{
|
dialogRes = DialogResult.CANCEL;
|
VCIOptionPane.showMessage(UIDesinDialog.this, "保存失败!");
|
}
|
}catch(Throwable ex){
|
dialogRes = DialogResult.CANCEL;
|
ex.printStackTrace();
|
VCIOptionPane.showMessage(UIDesinDialog.this, "保存的过程发生错误!\n" + ex.getMessage() + "");
|
}
|
close(dialogRes);
|
}
|
private void close(DialogResult res){
|
setDialogResult(res);
|
setVisible(false);
|
dispose();
|
}
|
private boolean save(PLPageDefination plPageDefination, boolean isEdit) throws VCIError{
|
boolean res = false;
|
if(isEdit && plPageDefination != null){
|
plPageDefination.plOId = UIDesinDialog.this.plPageDefination.plOId;
|
res = UITools.getService().updatePLPageDefination(plPageDefination);
|
} else{
|
res = UITools.getService().savePLPageDefination(plPageDefination);
|
}
|
return res;
|
}
|
|
private PLPageDefination getPLPageDefinationFromUI() throws Throwable{
|
PLPageDefination plPageDefination = new PLPageDefination();
|
plPageDefination.plOId = ObjectUtility.getNewObjectID36();
|
plPageDefination.plTabPageOId = pltabpage.plOId;
|
plPageDefination.name = nameTxt.getText();
|
plPageDefination.seq = Short.valueOf(seqTxt.getText());
|
plPageDefination.desc = descTxt.getText();
|
plPageDefination.plType = disType;
|
plPageDefination.plDefination = UITools.getPLDefinationText(getPLDefinationFromUI());
|
return plPageDefination;
|
}
|
|
private PLDefination getPLDefinationFromUI() {
|
PLDefination obj = new PLDefination();
|
obj.setUiParser(txtUIParser.getText().trim());
|
obj.setExtAttr(txtExtAtt.getText().trim());
|
if (tableRadio.isSelected()) {
|
obj.setTemplateType("1");
|
if (rootObjectRdb.isSelected()) {
|
obj.setSearchTarger("1");
|
obj.setShowType(String.valueOf(rootCom
|
.getSelectedItem()));
|
obj.setTemplateId(String.valueOf(rootSelectTem
|
.getSelectedItem()));
|
}
|
if (relateRdb.isSelected()) {
|
obj.setSearchTarger("2");
|
obj.setShowType(String.valueOf(relatCom
|
.getSelectedItem()));
|
obj.setLinkType(String.valueOf(relateLtCom
|
.getSelectedItem()));
|
obj.setTemplateId(String.valueOf(relateSelectTem
|
.getSelectedItem()));
|
}
|
}
|
if (customRadio.isSelected()) {
|
obj.setTemplateType("2");
|
obj.setControlPath(controlpath.getText());
|
}
|
if (navigatorfold.isSelected()) {
|
obj.setNavigatorType("3");
|
}
|
if (navigatorrole.isSelected()) {
|
obj.setNavigatorType("2");
|
}
|
if (navigatornodisply.isSelected()) {
|
obj.setNavigatorType("1");
|
}
|
if (rdbtnTreeTable.isSelected()) {
|
obj.setTemplateType("3");
|
|
if (tree_table_rootObjectRdb.isSelected()) {
|
obj.setSearchTarger("1");
|
obj.setShowType(String.valueOf(tree_table_rootCom
|
.getSelectedItem()));
|
obj.setTemplateId(String.valueOf(tree_table_rootSelectTem
|
.getSelectedItem()));
|
// 逐级展开:1、全部展开:0
|
if (graduallyRad.isSelected()) {
|
obj.setExpandMode("1");
|
}
|
|
if (allRad.isSelected()) {
|
obj.setExpandMode("0");
|
}
|
obj.setExpandCols(expandColsTxt.getText());
|
}
|
if (tree_table_relateRdb.isSelected()) {
|
obj.setSearchTarger("2");
|
obj.setShowType(String.valueOf(tree_table_relatCom
|
.getSelectedItem()));
|
obj.setLinkType(String.valueOf(tree_table_relateLtCom
|
.getSelectedItem()));
|
obj.setTemplateId(String.valueOf(tree_table_relateSelectTem
|
.getSelectedItem()));
|
// 逐级展开:1、全部展开:0
|
if (tree_table_R_graduallyRad.isSelected()) {
|
obj.setExpandMode("1");
|
}
|
|
if (tree_table_R_allRad.isSelected()) {
|
obj.setExpandMode("0");
|
}
|
obj.setExpandCols(tree_table_R_expandColsTxt.getText());
|
}
|
}
|
if (rdbtnForm.isSelected()) {
|
if (genralRdb.isSelected()) {
|
obj.setTemplateType("4");
|
if (form_rootRdb.isSelected()) {
|
obj.setSearchTarger("1");
|
obj.setShowType(String.valueOf(rootObjCom
|
.getSelectedItem()));
|
obj.setTemplateId(String.valueOf(rootObjSelectCom
|
.getSelectedItem()));
|
}
|
if (form_relateRdb.isSelected()) {
|
obj.setSearchTarger("2");
|
obj.setShowType(String.valueOf(form_relatCom
|
.getSelectedItem()));
|
obj.setLinkType(String.valueOf(form_relateLtCom
|
.getSelectedItem()));
|
obj.setTemplateId(String.valueOf(form_relateSelectTem
|
.getSelectedItem()));
|
}
|
}
|
}
|
if (rdbtnTree.isSelected()) {
|
obj.setTemplateType("5");
|
obj.setShowType(tree_showTypeTxt.getSelectedItem().toString());
|
if (tree_zhengRad.isSelected()) {
|
obj.setOrientation(QTConstants.DIRECTION_POSITIVE);
|
}
|
if (tree_fanRad.isSelected()) {
|
obj.setOrientation(QTConstants.DIRECTION_OPPOSITE);
|
}
|
obj.setShowAbs(tree_showAbsTxt.getText());
|
obj.setSeparator(tree_separatorTxt.getText());
|
// 逐级展开:1、全部展开:0
|
if (graduallyRad.isSelected()) {
|
obj.setExpandMode("1");
|
}
|
|
if (allRad.isSelected()) {
|
obj.setExpandMode("0");
|
}
|
obj.setLinkType(tree_linkTypeTxt.getSelectedItem().toString());
|
obj.setValidity(getValidityKey(String.valueOf(tree_validityTxt.getSelectedItem())));
|
obj.setShowLinkAbs(tree_showLinkAbsTxt.getText());
|
if (tree_isShowImage.isSelected()) {
|
obj.setIsShowImage("1");
|
} else {
|
obj.setIsShowImage("0");
|
}
|
obj.setTemplateId(String.valueOf(tree_templateIdCom.getSelectedItem()));
|
obj.setRootContent(txtTreeRootContent.getText());
|
}
|
DefaultListModel listModel = cp.getListModel();
|
int size = listModel.getSize();
|
List<String> keyList = new ArrayList<String>();
|
Map<String,String> keyMap = new HashMap<String,String>();
|
for(int i=0;i<size;i++){
|
String elementAt = (String) listModel.getElementAt(i);
|
String[] split = elementAt.split(":");
|
if(!keyList.contains(split[0])){
|
keyList.add(split[0]);
|
}
|
}
|
fetchEventValue(listModel, size, keyList,keyMap);
|
String eventKey = "";
|
String eventValue = "";
|
for(Entry<String, String> es : keyMap.entrySet()){
|
String key = es.getKey();
|
String value = es.getValue();
|
eventKey += key+",";
|
eventValue += value+",";
|
}
|
if(eventKey!=null&&!"".equals(eventKey)){
|
obj.setEventKey(eventKey.substring(0,eventKey.length()-1));
|
obj.setEventValue(eventValue.substring(0,eventValue.length()-1));
|
}else{
|
obj.setEventKey("");
|
obj.setEventValue("");
|
}
|
return obj;
|
}
|
|
private void fetchEventValue(DefaultListModel listModel, int size,
|
List<String> keyList,Map<String,String> keyMap) {
|
for(int j=0;j<keyList.size();j++){
|
String eventValue="";
|
String eventKey = keyList.get(j);
|
for(int i=0;i<size;i++){
|
String elementAt = (String) listModel.getElementAt(i);
|
String[] split = elementAt.split(":");
|
if(eventKey.equals(split[0])){
|
eventValue += split[1]+";";
|
}
|
}
|
keyMap.put(eventKey, eventValue.substring(0,eventValue.length()-1));
|
}
|
}
|
// add by guo 添加
|
private void addSelectModel(JComboBox selectTem,JComboBox com, JComboBox linkType, PortalVIType portalVIType, boolean isLinkType){
|
PortalVITypeFlag typeFlag = null;
|
if(linkType != null){
|
btmName = linkType.getSelectedItem().toString();
|
typeFlag = PortalVITypeFlag.LinkType;
|
} else {
|
btmName = com.getSelectedItem().toString();
|
typeFlag = PortalVITypeFlag.BtmType;
|
}
|
CreateFormOrTableDialog dialog = new CreateFormOrTableDialog(UIDesinDialog.this, btmName, typeFlag, portalVIType, isLinkType);
|
String name = dialog.getSelectedObject();
|
if(!"".equals(name) && name != null){
|
selectTem.removeAllItems();
|
String selectedItem = (String) com.getSelectedItem();
|
PortalVI[] portalViInfos;
|
try {
|
portalViInfos = UITools.getService()
|
.getPortalVIArrayByTypeName(selectedItem);
|
portalViInfos = getSortedPortalVI(portalViInfos);
|
for (int i = 0; i < portalViInfos.length; i++) {
|
if (portalViInfos[i].viType == portalVIType.getIntVal()) {
|
selectTem.addItem(portalViInfos[i].viName);
|
}
|
}
|
} catch (VCIError e) {
|
e.printStackTrace();
|
}
|
selectTem.setSelectedItem(name);
|
dialog.dispose();
|
}
|
|
}
|
//add by guo在上下文中直接编辑对应的表单或者表格。
|
private void editSelectModel(PortalVIType type,JComboBox rootSelectCom, JComboBox com, JComboBox linkType, boolean isLinkType){
|
String selectedItem = com.getSelectedItem().toString();
|
String selectTable = (String) rootSelectCom.getSelectedItem();
|
PortalVI[] portalViInfos;
|
PortalVI pvi = null;
|
Object treeNode = null;
|
PortalVITypeFlag typeFlag = PortalVITypeFlag.BtmType;
|
try {
|
if(isLinkType == true){
|
typeFlag = PortalVITypeFlag.LinkType;
|
selectedItem = linkType.getSelectedItem().toString();
|
treeNode = new LinkTypeWrapper(LinkTypeStart.getService().getLinkType(selectedItem));
|
} else {
|
typeFlag = PortalVITypeFlag.BtmType;
|
treeNode = new BtmItemWrapper(BtmClient.getService().getBtmItemByName(selectedItem));
|
}
|
portalViInfos = UITools.getService()
|
.getPortalVIArrayByTypeName(selectedItem);
|
portalViInfos = getSortedPortalVI(portalViInfos);
|
for (int i = 0; i < portalViInfos.length; i++) {
|
if (portalViInfos[i].viName.equalsIgnoreCase(selectTable)) {
|
pvi = (PortalVI)portalViInfos[i];
|
break;
|
}
|
}
|
} catch (VCIError e) {
|
e.printStackTrace();
|
}
|
if(type == PortalVIType.Form){
|
FormDesignDialog dt = new FormDesignDialog(treeNode, PortalVIType.Form, pvi,true, null, typeFlag, true);
|
dt.setVisible(true);
|
} else if(type == PortalVIType.Table) {
|
TableDialog dialog = new TableDialog(pvi, treeNode, PortalVIType.Table, true, null, typeFlag, true);
|
dialog.setVisible(true);
|
}
|
}
|
|
private void initRootCom() {
|
rootCom.addItem("");
|
tree_table_rootCom.addItem("");
|
BtmItem[] allBtItems = getSortedBtmItems();
|
for (int i = 0; i < allBtItems.length; i++) {
|
rootCom.addItem(allBtItems[i].name);
|
tree_table_rootCom.addItem(allBtItems[i].name);
|
}
|
}
|
|
private void initRelateCom() {
|
relatCom.addItem("");
|
tree_table_relatCom.addItem("");
|
form_relatCom.addItem("");
|
BtmItem[] allBtItems = getSortedBtmItems();
|
for (int i = 0; i < allBtItems.length; i++) {
|
relatCom.addItem(allBtItems[i].name);
|
tree_table_relatCom.addItem(allBtItems[i].name);
|
form_relatCom.addItem(allBtItems[i].name);
|
}
|
}
|
|
private void initData() {
|
// PLPageDefination[] obj;
|
PLDefination p;
|
if (plPageDefination == null) {
|
return;
|
}
|
try {
|
// obj =
|
// Tool.getService().getPLPageDefinationsByPageContextOId(plpagelayoutdefination.plOId);
|
// obj = Tool.getService().getPLPageDefinationsByPageContextOId(
|
// pltabpage.plOId);
|
// for (int i = 0; i < obj.length; i++) {
|
// if (obj[i].plType == disType) {
|
nameTxt.setText(plPageDefination.name);
|
seqTxt.setText(plPageDefination.seq + "");
|
descTxt.setText(plPageDefination.desc);
|
plPageDefinationID = plPageDefination.plOId;
|
plPageContextOId = plPageDefination.plTabPageOId;
|
p = UITools.getPLDefination(plPageDefination.plDefination);
|
txtUIParser.setText(p.getUiParser());
|
txtExtAtt.setText(p.getExtAttr());
|
if ("3".equals(p.getNavigatorType())) {
|
navigatorfold.setSelected(true);
|
}
|
if ("2".equals(p.getNavigatorType())) {
|
navigatorrole.setSelected(true);
|
}
|
if ("1".equals(p.getNavigatorType())) {
|
navigatornodisply.setSelected(true);
|
}
|
if ("1".equals(p.getTemplateType())) {
|
tableRadio.setSelected(true);
|
if ("1".equals(p.getSearchTarger())) {
|
rootObjectRdb.setSelected(true);
|
rootCom.setSelectedItem(p.getShowType());
|
rootSelectTem.setSelectedItem(p.getTemplateId());
|
}
|
|
if ("2".equals(p.getSearchTarger())) {
|
relateRdb.setSelected(true);
|
relatCom.setSelectedItem(p.getShowType());
|
relateLtCom.setSelectedItem(p.getLinkType());
|
relateSelectTem.setSelectedItem(p.getTemplateId());
|
}
|
}
|
|
if ("2".equals(p.getTemplateType())) {
|
customRadio.setSelected(true);
|
controlpath.setText(p.getControlPath());
|
}
|
|
if ("3".equals(p.getTemplateType())) {
|
rdbtnTreeTable.setSelected(true);
|
if ("1".equals(p.getSearchTarger())) {
|
tree_table_rootObjectRdb.setSelected(true);
|
tree_table_rootCom.setSelectedItem(p.getShowType());
|
tree_table_rootSelectTem.setSelectedItem(p.getTemplateId());
|
if (p.getExpandMode().equals("1")) {
|
graduallyRad.setSelected(true);
|
}
|
if (p.getExpandMode().equals("0")) {
|
allRad.setSelected(true);
|
}
|
expandColsTxt.setText(p.getExpandCols());
|
}
|
|
if ("2".equals(p.getSearchTarger())) {
|
tree_table_relateRdb.setSelected(true);
|
tree_table_relatCom.setSelectedItem(p.getShowType());
|
tree_table_relateLtCom.setSelectedItem(p.getLinkType());
|
tree_table_relateSelectTem.setSelectedItem(p.getTemplateId());
|
if (p.getExpandMode().equals("1")) {
|
tree_table_R_graduallyRad.setSelected(true);
|
}
|
if (p.getExpandMode().equals("0")) {
|
tree_table_R_allRad.setSelected(true);
|
}
|
tree_table_R_expandColsTxt.setText(p.getExpandCols());
|
}
|
}
|
|
if ("4".equals(p.getTemplateType())) {
|
rdbtnForm.setSelected(true);
|
genralRdb.setSelected(true);
|
if ("1".equals(p.getSearchTarger())) {
|
form_rootRdb.setSelected(true);
|
rootObjCom.setSelectedItem(p.getShowType());
|
rootObjSelectCom.setSelectedItem(p.getTemplateId());
|
}
|
if ("2".equals(p.getSearchTarger())) {
|
form_relateRdb.setSelected(true);
|
form_relatCom.setSelectedItem(p.getShowType());
|
form_relateLtCom.setSelectedItem(p.getLinkType());
|
form_relateSelectTem.setSelectedItem(p.getTemplateId());
|
}
|
}
|
|
if("5".equals(p.getTemplateType())){
|
rdbtnTree.setSelected(true);
|
tree_showTypeTxt.setSelectedItem(p.getShowType());
|
if (p.getOrientation().equals(QTConstants.DIRECTION_POSITIVE)) {
|
tree_zhengRad.setSelected(true);
|
}
|
if (p.getOrientation().equals(QTConstants.DIRECTION_OPPOSITE)) {
|
tree_fanRad.setSelected(true);
|
}
|
tree_showAbsTxt.setText(p.getShowAbs());
|
if (p.getSeparator() == null || p.getSeparator().trim().equals("")) {
|
tree_separatorTxt.setText(",");
|
}else {
|
tree_separatorTxt.setText(p.getSeparator());
|
}
|
if (p.getExpandMode().equals("1")) {
|
tree_graduallyRad.setSelected(true);
|
}
|
if (p.getExpandMode().equals("0")) {
|
tree_allRad.setSelected(true);
|
}
|
tree_linkTypeTxt.setSelectedItem(p.getLinkType());
|
tree_validityTxt.setSelectedItem(validityMap.get(p.getValidity()));
|
tree_showLinkAbsTxt.setText(p.getShowLinkAbs());
|
if (p.getIsShowImage().equals("1")) {
|
tree_isShowImage.setSelected(true);
|
}
|
tree_templateIdCom.setSelectedItem(p.getTemplateId());
|
txtTreeRootContent.setText(p.getRootContent());
|
}
|
String eventKey = p.getEventKey();
|
String[] eventKeySplit = eventKey.split(",");
|
String eventValue = p.getEventValue();
|
String[] eventValueSplit = eventValue.split(",");
|
String listValue = "";
|
for(int i=0;i<eventKeySplit.length;i++){
|
String[] eventValueSplits = eventValueSplit[i].split(";");
|
for(int j=0;j<eventValueSplits.length;j++){
|
if(!"".equals(eventKeySplit[i])){
|
listValue = eventKeySplit[i] + ":" + eventValueSplits[j];
|
cp.getListModel().addElement(listValue);
|
}
|
}
|
}
|
this.pldefination = p;
|
// }
|
// }
|
} catch (VCIError e) {
|
e.printStackTrace();
|
} catch (Throwable e) {
|
e.printStackTrace();
|
}
|
}
|
|
private void initActionControlPanel() {
|
if (tableRadio.isSelected()) {
|
dynamicPal.remove(custermPanel);
|
dynamicPal.remove(treeTablePanel);
|
dynamicPal.remove(treePanel);
|
dynamicPal.remove(tree_tableGernaralPanel);
|
dynamicPal.remove(tree_table_gernalDynamicPal);
|
dynamicPal.remove(formPanel);
|
dynamicPal.remove(form_gernalDynamicPal);
|
dynamicPal.add(tableGernaralPanel, BorderLayout.NORTH);
|
dynamicPal.add(gernalDynamicPal, BorderLayout.CENTER);
|
dynamicPal.updateUI();
|
}
|
if (customRadio.isSelected()) {
|
dynamicPal.remove(tableGernaralPanel);
|
dynamicPal.remove(gernalDynamicPal);
|
dynamicPal.remove(treeTablePanel);
|
dynamicPal.remove(treePanel);
|
dynamicPal.remove(tree_tableGernaralPanel);
|
dynamicPal.remove(tree_table_gernalDynamicPal);
|
dynamicPal.remove(formPanel);
|
dynamicPal.remove(form_gernalDynamicPal);
|
dynamicPal.add(custermPanel, BorderLayout.CENTER);
|
dynamicPal.updateUI();
|
}
|
if(rdbtnTreeTable.isSelected()){
|
dynamicPal.remove(tableGernaralPanel);
|
dynamicPal.remove(gernalDynamicPal);
|
dynamicPal.remove(custermPanel);
|
dynamicPal.remove(treePanel);
|
dynamicPal.remove(formPanel);
|
dynamicPal.remove(form_gernalDynamicPal);
|
dynamicPal.add(tree_tableGernaralPanel, BorderLayout.NORTH);
|
dynamicPal.add(tree_table_gernalDynamicPal, BorderLayout.CENTER);
|
dynamicPal.updateUI();
|
}
|
if(rdbtnForm.isSelected()){
|
dynamicPal.remove(tableGernaralPanel);
|
dynamicPal.remove(gernalDynamicPal);
|
dynamicPal.remove(custermPanel);
|
dynamicPal.remove(treeTablePanel);
|
dynamicPal.remove(treePanel);
|
dynamicPal.remove(tree_tableGernaralPanel);
|
dynamicPal.remove(tree_table_gernalDynamicPal);
|
dynamicPal.add(formPanel, BorderLayout.NORTH);
|
dynamicPal.add(form_gernalDynamicPal, BorderLayout.CENTER);
|
dynamicPal.updateUI();
|
}
|
if(rdbtnTree.isSelected()){
|
dynamicPal.remove(tableGernaralPanel);
|
dynamicPal.remove(gernalDynamicPal);
|
dynamicPal.remove(custermPanel);
|
dynamicPal.remove(treeTablePanel);
|
dynamicPal.remove(tree_tableGernaralPanel);
|
dynamicPal.remove(tree_table_gernalDynamicPal);
|
dynamicPal.remove(formPanel);
|
dynamicPal.remove(form_gernalDynamicPal);
|
dynamicPal.add(treePanel, BorderLayout.CENTER);
|
dynamicPal.updateUI();
|
}
|
if (rootObjectRdb.isSelected()) {
|
gernalDynamicPal.remove(relatetPal);
|
gernalDynamicPal.add(tableObjectPal, BorderLayout.CENTER);
|
gernalDynamicPal.updateUI();
|
}
|
if (relateRdb.isSelected()) {
|
gernalDynamicPal.remove(tableObjectPal);
|
gernalDynamicPal.add(relatetPal, BorderLayout.CENTER);
|
gernalDynamicPal.updateUI();
|
}
|
if (tree_table_rootObjectRdb.isSelected()) {
|
tree_table_gernalDynamicPal.remove(tree_table_RelatePal);
|
tree_table_gernalDynamicPal.add(treeTablePanel, BorderLayout.CENTER);
|
tree_table_gernalDynamicPal.updateUI();
|
}
|
if (tree_table_relateRdb.isSelected()) {
|
tree_table_gernalDynamicPal.remove(treeTablePanel);
|
tree_table_gernalDynamicPal.add(tree_table_RelatePal, BorderLayout.CENTER);
|
tree_table_gernalDynamicPal.updateUI();
|
}
|
if (form_rootRdb.isSelected()) {
|
form_gernalDynamicPal.remove(form_relatetPal);
|
form_gernalDynamicPal.add(form_rootPal, BorderLayout.CENTER);
|
form_gernalDynamicPal.updateUI();
|
}
|
if (form_relateRdb.isSelected()) {
|
form_gernalDynamicPal.remove(form_rootPal);
|
form_gernalDynamicPal.add(form_relatetPal, BorderLayout.CENTER);
|
form_gernalDynamicPal.updateUI();
|
}
|
}
|
|
private void initRootObjCom() {
|
rootObjCom.addItem("");
|
BtmItem[] allBtItems = getSortedBtmItems();
|
LinkType[] linkTypes = getSortedLinkTypes();
|
for (int i = 0; i < allBtItems.length; i++) {
|
rootObjCom.addItem(allBtItems[i].name);
|
}
|
for (int i = 0; i < linkTypes.length; i++) {
|
rootObjCom.addItem(linkTypes[i].name);
|
}
|
}
|
|
private boolean checkEdit(PLPageDefination plPageDefination, PLDefination defination) {
|
boolean flag = false;
|
if(seqTxt.getText().trim()==null||"".equals(seqTxt.getText().trim())){
|
VCIOptionPane.showMessage(LogonApplication.frame, "编号不能为空!");
|
flag =true;
|
}
|
else if(!isNumber(seqTxt.getText().trim())){
|
VCIOptionPane.showMessage(LogonApplication.frame, "编号只能是数字,请重新填写!");
|
flag =true;
|
}
|
else if(!checkTabPageUIParserIsOk(defination)){
|
VCIOptionPane.showMessage(LogonApplication.frame, "UI解析类格式不正确,请重新填写!");
|
flag = true;
|
}
|
else if(!checkTabPageExtAttrIsOk(defination)){
|
int confirm = VCIOptionPane.showConfirmDialog(LogonApplication.frame, "扩展属性数据格式不正确\n是否继续保存?", "系统提示", JOptionPane.YES_NO_OPTION);
|
if(confirm == JOptionPane.NO_OPTION){
|
flag = true;
|
}
|
// VCIOptionPane.showMessage(LogonApplication.frame, "扩展属性数据格式不正确,请重新填写!");
|
// flag = true;
|
}
|
return flag;
|
}
|
|
private boolean checkTabPageUIParserIsOk(PLDefination defination){
|
// 数据格式: java_cs:xxx;java_bs:xxx;net_cs:xxx;net_bs:xxx;mobile_cs:xx;mobile_bs:xxx;
|
String uiParser = defination.getUiParser();
|
return checkExtValIsOk(uiParser);
|
}
|
private boolean checkTabPageExtAttrIsOk(PLDefination defination){
|
// 数据格式:ext1:xx;ext2;ext3:xx;ext4:xxx;extn:xxx;
|
String extAttr = defination.getExtAttr();
|
return checkExtValIsOk(extAttr);
|
}
|
private boolean checkExtValIsOk(String value){
|
boolean res = true;
|
if(value == null || "".equals(value)){
|
return res;
|
}
|
Pattern ptn = Pattern.compile("([\\w\\.\\_\\-\\+]+:[\\w\\.\\_\\-\\+]+(;)?)+");
|
res = ptn.matcher(value).matches();
|
return res;
|
}
|
private boolean isNumber(String str) {
|
Pattern pa = Pattern.compile("[0-9]*");
|
Matcher mt = pa.matcher(str);
|
if(mt.matches()==false){
|
return false;
|
}else{
|
return true;
|
}
|
}
|
|
private void initShowType(){
|
tree_showTypeTxt.addItem("");
|
BtmItem[] allBtItems = getSortedBtmItems();
|
for (int i = 0; i < allBtItems.length; i++) {
|
tree_showTypeTxt.addItem(allBtItems[i].name);
|
}
|
}
|
|
private void initLinkType(){
|
tree_linkTypeTxt.addItem("");
|
try {
|
LinkType[] linkTypes = getSortedLinkTypes();
|
for (int i = 0; i < linkTypes.length; i++) {
|
tree_linkTypeTxt.addItem(linkTypes[i].name);
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
} catch (Throwable e) {
|
e.printStackTrace();
|
}
|
}
|
private Map<String,String> validityMap;
|
private JLabel lblNewLabel_1;
|
private JComboBox tree_table_rootCom;
|
private JLabel lblNewLabel_2;
|
private JComboBox tree_table_rootSelectTem;
|
private JPanel tree_table_RelatePal;
|
private JLabel label_3;
|
private JComboBox tree_table_relatCom;
|
private JLabel label_6;
|
private JComboBox tree_table_relateSelectTem;
|
private JLabel label_7;
|
private JPanel panel_2;
|
private JRadioButton tree_table_R_graduallyRad;
|
private JRadioButton tree_table_R_allRad;
|
private JLabel label_8;
|
private JTextField tree_table_R_expandColsTxt;
|
private JLabel lblNewLabel_3;
|
private JComboBox tree_table_relateLtCom;
|
private JPanel panel_6;
|
private JRadioButton form_relateRdb;
|
private JPanel form_rootPal;
|
private JLabel label_24;
|
private JComboBox tree_templateIdCom;
|
private JLabel label_25;
|
private JTextField txtTreeRootContent;
|
private JPanel panel_7;
|
private void intiValidity(){
|
tree_validityTxt.addItem("");
|
validityMap = new LinkedHashMap();
|
validityMap.put("1", "当前版本当前版次");
|
validityMap.put("2", "当前版本最新版次");
|
validityMap.put("3", "最新版本最新版次");
|
for(Map.Entry<String, String> entry: validityMap.entrySet()){
|
tree_validityTxt.addItem(entry.getValue());
|
}
|
}
|
private String getValidityKey(String value){
|
for(Map.Entry<String, String> entry: validityMap.entrySet()){
|
if(value!=null&&!"".equals(value)){
|
if(value.equals(entry.getValue())){
|
return entry.getKey();
|
}
|
}
|
}
|
return "";
|
}
|
private void fillQtNameCom(){
|
String showtypeStr = (String) tree_showTypeTxt.getSelectedItem();
|
String linkTypeStr = (String) tree_linkTypeTxt.getSelectedItem();
|
String showtypebtmName = "";
|
String linkTypebtmName = "";
|
boolean linktypeFlage = false;
|
if(linkTypeStr!=null&&!"".equals(linkTypeStr)){
|
linktypeFlage = true;
|
}
|
try {
|
BtmItem[] allBtItems = getSortedBtmItems();
|
for(BtmItem btItem : allBtItems){
|
if(showtypeStr.equals(btItem.name)){
|
showtypebtmName = showtypeStr;
|
}
|
}
|
LinkType[] linkTypes = getSortedLinkTypes();
|
for(LinkType linkType:linkTypes){
|
if(linkTypeStr.equals(linkType.name)){
|
linkTypebtmName = linkTypeStr;
|
}
|
}
|
tree_templateIdCom.removeAllItems();
|
if(linktypeFlage){
|
QTInfo[] qts = QTDClient.getService().getObjTypeQTs(linkTypebtmName);
|
qts = getSortedQTWrappers(qts);
|
for(QTInfo qt : qts){
|
tree_templateIdCom.addItem(qt.qtName);
|
}
|
tree_showAbsTxt.setToolTipText("Link关系构成树节点显示表达式示例:\"${t_oid.name},数量:${quantity},所属产品:${t_oid.ownproduct.name}\";\r\n注:可定义属性为当前所选Link类型属性,且支持参照属性,如\"t_oid.ownproduct.name\"");
|
txtTreeRootContent.setToolTipText("Link关系构成树根节点显示可额外设置表达式(具体参考\"树节点显示\"的表达式定义),如不设置就按照子孙节点一样显示!");
|
tree_templateIdCom.setToolTipText("请选择链接类型[" + linkTypebtmName + "]所对应的查询");
|
}else{
|
QTInfo[] qts = QTDClient.getService().getObjTypeQTs(showtypebtmName);
|
qts = getSortedQTWrappers(qts);
|
for(QTInfo qt : qts){
|
tree_templateIdCom.addItem(qt.qtName);
|
}
|
tree_showAbsTxt.setToolTipText("参照关系构成树节点显示表达式示例:${code}[${name}],所属产品:${ownproduct.name};\r\n注:可定义属性为当前所选业务类型属性,且支持参照属性,如\"ownproduct.name\"");
|
txtTreeRootContent.setToolTipText("参照关系构成树根节点显示可额外设置表达式(具体参考\"树节点显示\"的表达式定义),如不设置就按照子孙节点一样显示!");
|
tree_templateIdCom.setToolTipText("请选择业务类型[" + showtypebtmName + "]所对应的查询;注:查询模板中需存在参照属性查询条件");
|
}
|
} catch (Exception e1) {
|
e1.printStackTrace();
|
} catch (Throwable e1) {
|
e1.printStackTrace();
|
}
|
|
}
|
private BtmItem[] allBtms = null;
|
private BtmItem[] getSortedBtmItems(){
|
if(allBtms == null){
|
synchronized (BtmItem.class) {
|
if(allBtms == null){
|
allBtms = BtmProvider.getInstance().getAllBtmItems();
|
Arrays.sort(allBtms, BtmItem_Comparator);
|
}
|
}
|
}
|
return allBtms;
|
}
|
private LinkType[] allLinkTypes = null;
|
private LinkType[] getSortedLinkTypes(){
|
if(allLinkTypes == null){
|
synchronized(LinkType.class){
|
if(allLinkTypes == null){
|
allLinkTypes = LinkTypeProvider.getInstance().getLinkTypes();
|
Arrays.sort(allLinkTypes, LinkType_Comparator);
|
}
|
}
|
}
|
return allLinkTypes;
|
}
|
private PortalVI[] getSortedPortalVI(PortalVI[] vis){
|
Arrays.sort(vis, PortalVI_Comparator);
|
return vis;
|
}
|
private QTInfo[] getSortedQTWrappers(QTInfo[] qts){
|
Arrays.sort(qts, QTWrapper_Comparator);
|
return qts;
|
}
|
|
/**
|
* 刷新业务类型下可供选择的列表表单
|
* @param srcCombox 触发端
|
* @param destRefCombox 刷新端
|
*/
|
private void refreshChangableTablePortalVIs(JComboBox srcCombox, JComboBox destRefCombox) {
|
refreshChangableTablePortalVIs(srcCombox, destRefCombox, PortalVIType.Table);
|
}
|
/**
|
* 刷新业务类型下可供选择的列表表单
|
* @param srcCombox 触发端
|
* @param destRefCombox 刷新端
|
* @param viType 表单类型
|
*/
|
private void refreshChangableTablePortalVIs(JComboBox srcCombox, JComboBox destRefCombox,
|
PortalVIType viType) {
|
destRefCombox.removeAllItems();
|
String selectedItem = (String) srcCombox.getSelectedItem();
|
if (selectedItem == null) {
|
return;
|
}
|
try {
|
String[] viNames = getTypePortalVINamesFromMap(viType, selectedItem);
|
destRefCombox.setModel(new DefaultComboBoxModel(viNames));
|
} catch (VCIError e) {
|
e.printStackTrace();
|
}
|
destRefCombox.updateUI();
|
}
|
|
/**
|
* 业务类型下全部的表单名缓存Map
|
* key:业务类型名
|
* value:Map
|
* key: 表单类型(1:表单、0:表格)
|
* value: 表单名称的一维数组
|
*/
|
private Map<String, Map<Short, String[]>> typePortalVINames = new HashMap<String, Map<Short,String[]>>();
|
/**
|
* 从Dialog组件页面缓存中取出业务类型下指定表单类型的表单名
|
* @param viType 表单类型
|
* @param type 业务类型
|
* @return
|
* @throws VCIError
|
*/
|
private String[] getTypePortalVINamesFromMap(PortalVIType viType, String type) throws VCIError{
|
if(typePortalVINames.containsKey(type)){
|
if(typePortalVINames.get(type).containsKey(viType.getIntVal())){
|
return typePortalVINames.get(type).get(viType.getIntVal());
|
} else {
|
String[] viNames = getTypePortalVINames(viType, type);
|
Map<Short, String[]> map = typePortalVINames.get(type);
|
map.put(viType.getIntVal(), viNames);
|
typePortalVINames.put(type, map);
|
return viNames;
|
}
|
} else {
|
String[] viNames = getTypePortalVINames(viType, type);
|
Map<Short, String[]> map = new HashMap<Short, String[]>();
|
map.put(viType.getIntVal(), viNames);
|
typePortalVINames.put(type, map);
|
return viNames;
|
}
|
}
|
|
/**
|
* 查出指定业务类型下全部的表单名称
|
* @param viType 表单类型
|
* @param type 业务类型名
|
* @return
|
* @throws VCIError
|
*/
|
private String[] getTypePortalVINames(PortalVIType viType, String type) throws VCIError{
|
String sql = String.format("" +
|
"select vi.viname from plportalvi vi " +
|
"where vi.vitype='%s' and vi.typename='%s' " +
|
"order by vi.viname ",
|
|
String.valueOf(viType.getIntVal()),
|
type);
|
List<String> viNameList = new LinkedList<String>();
|
String[][] kvss = QTClient.getService().queryBySqlWithoutKey(sql);
|
for(String[] kvs : kvss){
|
viNameList.add(kvs[0]);
|
}
|
String[] viNames = viNameList.toArray(new String[]{});
|
Map<Short, String[]> map = new HashMap<Short, String[]>();
|
map.put(viType.getIntVal(), viNames);
|
return viNameList.toArray(new String[]{});
|
}
|
|
|
|
private final Comparator<BtmItem> BtmItem_Comparator = new Comparator<BtmItem>() {
|
@Override
|
public int compare(BtmItem o1, BtmItem o2) {
|
return PinyinCommon.getPingYin(o1.name).compareTo(PinyinCommon.getPingYin(o2.name));
|
}
|
};
|
private final Comparator<LinkType> LinkType_Comparator = new Comparator<LinkType>() {
|
@Override
|
public int compare(LinkType o1, LinkType o2) {
|
return PinyinCommon.getPingYin(o1.name).compareTo(PinyinCommon.getPingYin(o2.name));
|
}
|
};
|
private final Comparator<PortalVI> PortalVI_Comparator = new Comparator<PortalVI>() {
|
@Override
|
public int compare(PortalVI o1, PortalVI o2) {
|
return PinyinCommon.getPingYin(o1.viName).compareTo(PinyinCommon.getPingYin(o2.viName));
|
}
|
};
|
private final Comparator<QTInfo> QTWrapper_Comparator = new Comparator<QTInfo>() {
|
@Override
|
public int compare(QTInfo o1, QTInfo o2) {
|
return PinyinCommon.getPingYin(o1.qtName).compareTo(PinyinCommon.getPingYin(o2.qtName));
|
}
|
};
|
}
|