package com.vci.client.tool;
|
|
import java.awt.BorderLayout;
|
import java.awt.CardLayout;
|
import java.awt.Component;
|
import java.awt.FlowLayout;
|
import java.awt.GridBagConstraints;
|
import java.awt.GridBagLayout;
|
import java.awt.Insets;
|
import java.awt.Point;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import java.awt.event.MouseAdapter;
|
import java.awt.event.MouseEvent;
|
import java.util.Arrays;
|
import java.util.Comparator;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import javax.swing.ButtonGroup;
|
import javax.swing.DefaultComboBoxModel;
|
import javax.swing.JButton;
|
import javax.swing.JLabel;
|
import javax.swing.JOptionPane;
|
import javax.swing.JPanel;
|
import javax.swing.JScrollPane;
|
import javax.swing.JTextField;
|
import javax.swing.JTree;
|
import javax.swing.border.TitledBorder;
|
import javax.swing.event.TreeSelectionEvent;
|
import javax.swing.event.TreeSelectionListener;
|
import javax.swing.tree.DefaultMutableTreeNode;
|
import javax.swing.tree.DefaultTreeCellRenderer;
|
import javax.swing.tree.DefaultTreeModel;
|
import javax.swing.tree.TreeNode;
|
import javax.swing.tree.TreePath;
|
|
import org.jdesktop.swingx.JXCollapsiblePane;
|
|
import com.vci.corba.omd.btm.BtmItem;
|
import com.vci.corba.omd.ltm.LinkType;
|
import com.vci.corba.portal.data.PortalVI;
|
import com.vci.client.framework.rightConfig.modelConfig.ModuleTreeCellRenderer;
|
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.portal.Formdesign.object.BtnXmlClientObject;
|
import com.vci.client.portal.utility.PRM;
|
import com.vci.client.portal.utility.PRMItem;
|
import com.vci.client.portal.utility.UITools;
|
import com.vci.client.tool.enums.ChangeableProperty;
|
import com.vci.client.tool.panel.BtmItemAttrTablePanel;
|
import com.vci.client.tool.panel.PRMItemDetailInfoPanel;
|
import com.vci.client.tool.panel.PRMItemTablePanel;
|
import com.vci.client.tool.wrapper.PRMItemWrapper;
|
import com.vci.client.ui.swing.VCISwingUtil;
|
import com.vci.client.ui.swing.components.VCIJButton;
|
import com.vci.client.ui.swing.components.VCIJComboBox;
|
import com.vci.client.ui.swing.components.VCIJLabel;
|
import com.vci.client.ui.swing.components.VCIJOptionPane;
|
import com.vci.client.ui.swing.components.VCIJPanel;
|
import com.vci.client.ui.swing.components.VCIJRadioButton;
|
import com.vci.client.ui.swing.components.VCIJScrollPane;
|
import com.vci.client.ui.swing.components.VCIJSplitPane;
|
import com.vci.client.ui.swing.components.VCIJTextArea;
|
import com.vci.client.ui.swing.components.table.AbstractVCIJTableDataProvider;
|
import com.vci.client.ui.swing.components.table.VCIJTableNode;
|
import com.vci.client.ui.swing.components.table.VCIJTablePanel;
|
import com.vci.client.ui.tree.VCIBaseTree;
|
import com.vci.client.ui.tree.VCIBaseTreeModel;
|
import com.vci.client.ui.tree.VCIBaseTreeNode;
|
import com.vci.client.ui.util.PostorderEnumeration;
|
import com.vci.corba.common.VCIError;
|
|
/**
|
* FormAttrSetting 主面板
|
* @author xiongchao
|
*
|
*/
|
public class FormAttrSettingPanel extends VCIJPanel implements ActionListener{
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = -3561138238673844036L;
|
private JTextField textField;
|
public FormAttrSettingPanel(){
|
init();
|
}
|
|
public void init(){
|
initUI();
|
initActionMap();
|
refreshPortalVI();
|
}
|
|
private void initUI(){
|
setLayout(new BorderLayout());
|
add(getNorthPanel(), BorderLayout.NORTH);
|
int newOrientation = VCIJSplitPane.HORIZONTAL_SPLIT;
|
VCIJSplitPane jsp = getJSplitPane(newOrientation, getWestPanel(), getCenterPanl());
|
jsp.setDividerLocation(200);
|
VCIJSplitPane jsp2 = getJSplitPane(newOrientation, jsp, getEastPanel());
|
jsp2.setDividerLocation(1000);
|
add(jsp2, BorderLayout.CENTER);
|
add(getSouthPanel(), BorderLayout.SOUTH);
|
}
|
|
private VCIJPanel getSouthPanel(){
|
VCIJPanel pal = new VCIJPanel();
|
return pal;
|
}
|
|
private VCIJSplitPane getJSplitPane(int newOrientation,
|
Component leftCompt, Component rightCompt){
|
VCIJSplitPane jsp = new VCIJSplitPane(newOrientation);
|
jsp.setLeftComponent(leftCompt);
|
jsp.setRightComponent(rightCompt);
|
jsp.setOneTouchExpandable(true);
|
jsp.setContinuousLayout(true);
|
jsp.setDividerSize(10);
|
jsp.setDividerLocation(200);
|
return jsp;
|
}
|
|
private VCIJPanel getNorthPanel(){
|
VCIJPanel pal = new VCIJPanel();
|
return pal;
|
}
|
|
private CardLayout treePanelLayout = new CardLayout();
|
private JXCollapsiblePane treePanelPane = new JXCollapsiblePane(treePanelLayout);
|
private VCIBaseTreeNode btmTreeRoot = new VCIBaseTreeNode("业务类型", "btm");
|
private VCIBaseTreeModel btmTreeModel = new VCIBaseTreeModel(btmTreeRoot);
|
private VCIBaseTree btmTree = new VCIBaseTree(btmTreeModel);
|
|
private VCIBaseTreeNode linkTypeTreeRoot = new VCIBaseTreeNode("链接类型", "linkType");
|
private VCIBaseTreeModel linkTypeTeeeModel = new VCIBaseTreeModel(linkTypeTreeRoot);
|
private VCIBaseTree linkTypeTree = new VCIBaseTree(linkTypeTeeeModel);
|
|
private VCIJRadioButton rbtnBtm = new VCIJRadioButton("业务类型", true);
|
private VCIJRadioButton rbtnLinkType = new VCIJRadioButton("链接类型", false);
|
|
public boolean isBtmType(){
|
return rbtnBtm.isSelected();
|
}
|
|
private DefaultTreeCellRenderer getTreeCellRenderer(){
|
return new ModuleTreeCellRenderer(){
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 6253740682089786968L;
|
@Override
|
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus){
|
Component compt = super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
|
VCIBaseTreeNode node = null;
|
if(value instanceof VCIBaseTreeNode){
|
node = (VCIBaseTreeNode)value;
|
}
|
if(node != null){
|
if(node.isRoot()){
|
setIcon(VCISwingUtil.createImageIcon("house.png"));
|
}
|
}
|
return compt;
|
}
|
};
|
}
|
private VCIJPanel getWestPanel(){
|
|
|
VCIJPanel pal = new VCIJPanel(new FlowLayout(0));
|
VCIJPanel rbtnPal = new VCIJPanel();
|
//add by caill改变布局方式
|
rbtnPal.setLayout(new GridBagLayout());
|
ButtonGroup rbtnGroup = new ButtonGroup();
|
ActionListener al = new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
changeUIData(e);
|
}
|
};
|
rbtnBtm.setEnabled(false);
|
rbtnLinkType.setEnabled(true);
|
rbtnBtm.addActionListener(al);
|
rbtnLinkType.addActionListener(al);
|
//add by caill start
|
//为定位框、定位按钮、业务类型、连接类型标签安置位置
|
textField=new JTextField(20);
|
JButton sel=new JButton("定位");
|
GridBagConstraints gbc = new GridBagConstraints();
|
gbc.fill = GridBagConstraints.HORIZONTAL;
|
gbc.weightx = 0;
|
gbc.weighty = 0;
|
gbc.gridx = 0;
|
gbc.gridy = 0;
|
gbc.insets = new Insets(0, 0, 0, 1630);
|
rbtnPal.add(textField,gbc);
|
gbc.insets = new Insets(0, 140, 0, 1570);
|
rbtnPal.add(sel,gbc);
|
gbc.gridx = 0;
|
gbc.gridy = 1;
|
gbc.insets = new Insets(5, 0, 0, 1700);
|
rbtnPal.add(rbtnBtm,gbc);
|
gbc.gridx = 0;
|
gbc.gridy = 1;
|
gbc.insets = new Insets(5, 80, 0, 0);
|
rbtnPal.add(rbtnLinkType,gbc);
|
//add by caill end
|
rbtnGroup.add(rbtnBtm);rbtnGroup.add(rbtnLinkType);
|
//add by caill start
|
//为定位按钮增添点击事件
|
sel.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
//e.getSource();
|
String test = textField.getText().trim();
|
//当业务类型树被选中时
|
if(rbtnBtm.isSelected()){
|
DefaultTreeModel model = (DefaultTreeModel)btmTree.getModel();
|
model.reload();
|
TreeNode root = (TreeNode) model.getRoot();
|
PostorderEnumeration enumeration = new PostorderEnumeration(
|
root);
|
while (enumeration.hasMoreElements()) {
|
DefaultMutableTreeNode element = (DefaultMutableTreeNode) enumeration
|
.nextElement();
|
if (element.getUserObject() instanceof String) {
|
String wrapper = (String) element
|
.getUserObject();
|
|
if (wrapper != null
|
&& wrapper.equals(test)) {
|
TreeNode[] path = element.getPath();
|
TreePath treePath = new TreePath(path);
|
btmTree.setSelectionPath(treePath);
|
return;
|
}
|
;
|
}
|
}
|
if (test.equals("")) {
|
JOptionPane.showMessageDialog(
|
com.vci.client.LogonApplication.frame,
|
"请输入业务类型", "提示", JOptionPane.INFORMATION_MESSAGE);
|
} else {
|
JOptionPane.showMessageDialog(
|
com.vci.client.LogonApplication.frame,
|
"{ " + test + " }业务类型不存在", "提示",
|
JOptionPane.INFORMATION_MESSAGE);
|
}
|
|
|
}
|
//当链接类型树被选中时
|
else{
|
DefaultTreeModel model = (DefaultTreeModel)linkTypeTree.getModel();
|
model.reload();
|
TreeNode root = (TreeNode) model.getRoot();
|
PostorderEnumeration enumeration = new PostorderEnumeration(
|
root);
|
while (enumeration.hasMoreElements()) {
|
DefaultMutableTreeNode element = (DefaultMutableTreeNode) enumeration
|
.nextElement();
|
if (element.getUserObject() instanceof String) {
|
String wrapper = (String) element
|
.getUserObject();
|
|
if (wrapper != null
|
&& wrapper.equals(test)) {
|
TreeNode[] path = element.getPath();
|
TreePath treePath = new TreePath(path);
|
linkTypeTree.setSelectionPath(treePath);
|
return;
|
}
|
;
|
}
|
}
|
if (test.equals("")) {
|
JOptionPane.showMessageDialog(
|
com.vci.client.LogonApplication.frame,
|
"请输入链接类型", "提示", JOptionPane.INFORMATION_MESSAGE);
|
} else {
|
JOptionPane.showMessageDialog(
|
com.vci.client.LogonApplication.frame,
|
"{ " + test + " }链接类型不存在", "提示",
|
JOptionPane.INFORMATION_MESSAGE);
|
}
|
|
}
|
|
}
|
|
});
|
//为定位框增加键盘事件
|
textField.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
|
JTextField text = (JTextField) e.getSource();
|
String test = text.getText().trim();
|
//当业务类型树被选中时
|
if(rbtnBtm.isSelected()){
|
DefaultTreeModel model = (DefaultTreeModel)btmTree.getModel();
|
model.reload();
|
TreeNode root = (TreeNode) model.getRoot();
|
PostorderEnumeration enumeration = new PostorderEnumeration(
|
root);
|
while (enumeration.hasMoreElements()) {
|
DefaultMutableTreeNode element = (DefaultMutableTreeNode) enumeration
|
.nextElement();
|
if (element.getUserObject() instanceof String) {
|
String wrapper = (String) element
|
.getUserObject();
|
|
if (wrapper != null
|
&& wrapper.equals(test)) {
|
TreeNode[] path = element.getPath();
|
TreePath treePath = new TreePath(path);
|
btmTree.setSelectionPath(treePath);
|
return;
|
}
|
;
|
}
|
}
|
if (test.equals("")) {
|
JOptionPane.showMessageDialog(
|
com.vci.client.LogonApplication.frame,
|
"请输入业务类型", "提示", JOptionPane.INFORMATION_MESSAGE);
|
} else {
|
JOptionPane.showMessageDialog(
|
com.vci.client.LogonApplication.frame,
|
"{ " + test + " }业务类型不存在", "提示",
|
JOptionPane.INFORMATION_MESSAGE);
|
}
|
|
|
}
|
//当链接类型树被选中时
|
else{
|
DefaultTreeModel model = (DefaultTreeModel)linkTypeTree.getModel();
|
model.reload();
|
TreeNode root = (TreeNode) model.getRoot();
|
PostorderEnumeration enumeration = new PostorderEnumeration(
|
root);
|
while (enumeration.hasMoreElements()) {
|
DefaultMutableTreeNode element = (DefaultMutableTreeNode) enumeration
|
.nextElement();
|
if (element.getUserObject() instanceof String) {
|
String wrapper = (String) element
|
.getUserObject();
|
|
if (wrapper != null
|
&& wrapper.equals(test)) {
|
TreeNode[] path = element.getPath();
|
TreePath treePath = new TreePath(path);
|
linkTypeTree.setSelectionPath(treePath);
|
return;
|
}
|
;
|
}
|
}
|
if (test.equals("")) {
|
JOptionPane.showMessageDialog(
|
com.vci.client.LogonApplication.frame,
|
"请输入链接类型", "提示", JOptionPane.INFORMATION_MESSAGE);
|
} else {
|
JOptionPane.showMessageDialog(
|
com.vci.client.LogonApplication.frame,
|
"{ " + test + " }链接类型不存在", "提示",
|
JOptionPane.INFORMATION_MESSAGE);
|
}
|
|
}
|
}
|
|
});
|
//add by caill end
|
pal.add(rbtnPal);
|
treePanelLayout = new CardLayout();
|
treePanelPane = new JXCollapsiblePane();
|
treePanelPane.setLayout(treePanelLayout);
|
treePanelPane.add(getBtmTreePanel(), "");
|
treePanelPane.add(getLinkTypeTreePanel(), "");
|
|
pal.add(treePanelPane);
|
|
return pal;
|
}
|
|
private VCIJPanel getBtmTreePanel(){
|
VCIJPanel pal = new VCIJPanel(new BorderLayout());
|
pal.setName("BtmTreePanel");
|
try {
|
BtmItem[] bis = BtmClient.getService().getAllBtmItem("");
|
VCIBaseTreeNode defaultSelectedtreeNode = null;
|
if(bis.length > 0){
|
for(BtmItem bi : bis){
|
VCIBaseTreeNode treeNode = new VCIBaseTreeNode(bi.name, new BtmItemWrapper(bi));
|
btmTreeRoot.insert(treeNode, btmTreeRoot.getChildCount());
|
if(defaultSelectedtreeNode == null){
|
defaultSelectedtreeNode = treeNode;
|
}
|
}
|
if(defaultSelectedtreeNode == null){
|
defaultSelectedtreeNode = btmTreeRoot;
|
}
|
btmTreeModel = new VCIBaseTreeModel(btmTreeRoot);
|
btmTree = new VCIBaseTree(btmTreeModel, getTreeCellRenderer());
|
// btmTree.setSelectionPath(new TreePath(defaultSelectedtreeNode));
|
btmTree.setSelectionRow(1);
|
btmTree.addTreeSelectionListener(new TreeSelectionListener() {
|
@Override
|
public void valueChanged(TreeSelectionEvent e) {
|
btmItemLlist_valueChange(e);
|
}
|
});
|
pal.add(new VCIJScrollPane(btmTree));
|
return pal;
|
}
|
} catch (VCIError e) {
|
e.printStackTrace();
|
}
|
return pal;
|
}
|
|
private VCIJPanel getLinkTypeTreePanel(){
|
VCIJPanel pal = new VCIJPanel(new BorderLayout());
|
pal.setName("LinkTreePanel");
|
try {
|
LinkType[] lts = LinkTypeStart.getService().getLinkTypes();
|
VCIBaseTreeNode defaultSelectedtreeNode = null;
|
if(lts.length > 0){
|
for(LinkType lt : lts){
|
VCIBaseTreeNode treeNode = new VCIBaseTreeNode(lt.name, new LinkTypeWrapper(lt));
|
linkTypeTreeRoot.insert(treeNode, linkTypeTreeRoot.getChildCount());
|
if(defaultSelectedtreeNode == null){
|
defaultSelectedtreeNode = treeNode;
|
}
|
}
|
if(defaultSelectedtreeNode == null){
|
defaultSelectedtreeNode = linkTypeTreeRoot;
|
}
|
linkTypeTeeeModel = new VCIBaseTreeModel(linkTypeTreeRoot);
|
linkTypeTree = new VCIBaseTree(linkTypeTeeeModel, getTreeCellRenderer());
|
// linkTypeTree.setSelectionPath(new TreePath(defaultSelectedtreeNode));
|
linkTypeTree.setSelectionRow(1);
|
linkTypeTree.addTreeSelectionListener(new TreeSelectionListener() {
|
@Override
|
public void valueChanged(TreeSelectionEvent e) {
|
btmItemLlist_valueChange(e);
|
}
|
});
|
pal.add(new VCIJScrollPane(linkTypeTree));
|
return pal;
|
}
|
} catch (VCIError e) {
|
e.printStackTrace();
|
}
|
pal.add(new VCIJScrollPane(linkTypeTree));
|
return pal;
|
}
|
|
boolean isFirstSelected = false;
|
private void changeUIData(ActionEvent e){
|
rbtnBtm.setEnabled(rbtnLinkType.isSelected());
|
rbtnLinkType.setEnabled(rbtnBtm.isSelected());
|
treePanelLayout.next(treePanelPane.getContentPane());
|
refreshPortalVI();
|
}
|
private void btmItemLlist_valueChange(TreeSelectionEvent e){
|
portalVITablePanel.refreshTableData();
|
getPRMItemTablePanel().getTablePanel().refreshTableData(new PRMItemWrapper[]{});
|
BtmItemAttrTablePanel batp = getBtmItemAttrTablePanel();
|
if(rbtnBtm.isSelected()){
|
batp.setBtm(true);
|
batp.setBtmItemWrapper(getSelectedBtm());
|
batp.setLinkTypeWrapper(null);
|
}else {
|
batp.setBtm(false);
|
batp.setBtmItemWrapper(null);
|
batp.setLinkTypeWrapper(getSelectedLinkType());
|
}
|
batp.getTablePanel().refreshTableData();
|
}
|
|
public BtmItemWrapper getSelectedBtm(){
|
VCIBaseTreeNode treeNode = (VCIBaseTreeNode) btmTree.getLastSelectedPathComponent();
|
if(treeNode == null) return null;
|
if(treeNode.getObj() instanceof BtmItemWrapper){
|
return (BtmItemWrapper)treeNode.getObj();
|
}
|
return null;
|
}
|
public LinkTypeWrapper getSelectedLinkType(){
|
VCIBaseTreeNode treeNode = (VCIBaseTreeNode) linkTypeTree.getLastSelectedPathComponent();
|
if(treeNode == null) return null;
|
if(treeNode.getObj() instanceof LinkTypeWrapper){
|
return (LinkTypeWrapper)treeNode.getObj();
|
}
|
return null;
|
}
|
|
class PortalVIDataPorivder extends AbstractVCIJTableDataProvider<PortalVI>{
|
@Override
|
public PortalVI[] getDatas(int pageIndex, int gageSize) {
|
PortalVI[] res = new PortalVI[0];
|
BtmItemWrapper biw = (BtmItemWrapper)getSelectedBtm();
|
if(biw == null) return res;
|
try {
|
String typeName = biw.btmItem.name;
|
if(!isBtmType()){
|
LinkTypeWrapper ltw = getSelectedLinkType();
|
if(ltw == null) return res;
|
typeName = ltw.linkType.name;
|
}
|
res = UITools.getService().getPortalVIArrayByTypeName(typeName);
|
Arrays.sort(res, new Comparator<PortalVI>() {
|
@Override
|
public int compare(PortalVI o1, PortalVI o2) {
|
return o1.viName.compareTo(o2.viName);
|
}
|
});
|
super.total = res.length;
|
} catch (VCIError e) {
|
e.printStackTrace();
|
}
|
return res;
|
}
|
|
@Override
|
public VCIJTableNode<PortalVI> getNewRowNode(
|
PortalVI obj) {
|
VCIJTableNode<PortalVI> node = new VCIJTableNode<PortalVI>(obj);
|
int i = 0;
|
String[] names = getSpecialColumns();
|
node.setPropertyValue(names[i++], obj.typeName);
|
node.setPropertyValue(names[i++], obj.viName);
|
node.setPropertyValue(names[i++], obj.viType==1?"表单":"表格");
|
return node;
|
}
|
|
@Override
|
public String[] getSpecialColumns() {
|
return "业务类型,名称,类型, ".split(",");
|
}
|
|
@Override
|
public int getTotal() {
|
return super.total;
|
}
|
}
|
|
public void refreshPortalVI(){
|
btmItemLlist_valueChange(null);
|
}
|
|
private PortalVIDataPorivder dataProvider = new PortalVIDataPorivder();
|
private VCIJTablePanel<PortalVI> portalVITablePanel = null;
|
private VCIJPanel getCenterPanl(){
|
VCIJPanel pal = new VCIJPanel(new BorderLayout());
|
|
portalVITablePanel = new VCIJTablePanel<PortalVI>(dataProvider);
|
portalVITablePanel.setShowColumnSetting(false);
|
portalVITablePanel.setColumnDefaultWidth(250);
|
portalVITablePanel.setCustomButtons(Arrays.asList(
|
createButton("deletePortalVI", "删除", "delete.png")));
|
portalVITablePanel.buildTablePanel();
|
portalVITablePanel.getTable().addMouseListener(new MouseAdapter() {
|
public void mouseClicked(MouseEvent e) {
|
Point point = e.getPoint();
|
int row = portalVITablePanel.getTable().rowAtPoint(point);
|
int column = portalVITablePanel.getTable().columnAtPoint(point);
|
if(row < 0 || column < 0) return;
|
portalVITablePanel_mouseClicked(e);
|
}
|
});
|
portalVITablePanel.setBorder(new TitledBorder("表单"));
|
VCIJSplitPane sp = new VCIJSplitPane(VCIJSplitPane.VERTICAL_SPLIT, portalVITablePanel, null);
|
sp.setDividerSize(10);
|
sp.setDividerLocation(300);
|
sp.setContinuousLayout(true);
|
sp.setOneTouchExpandable(true);
|
sp.setLeftComponent(portalVITablePanel);
|
VCIJSplitPane jsp = getJSplitPane(VCIJSplitPane.HORIZONTAL_SPLIT,
|
getNewPRMItemTablePanel(), getMateriamItemAttrTablePanel());
|
jsp.setDividerLocation(350);
|
sp.setRightComponent(jsp);
|
pal.add(sp, BorderLayout.CENTER);
|
return pal;
|
}
|
|
private void editPortalVI(){
|
List<PortalVI> list = portalVITablePanel.getSelectedRowObjectsList();
|
if(!isSelectedPortalVI(list)) return;
|
}
|
private void deletePortalVI(){
|
List<PortalVI> list = portalVITablePanel.getSelectedRowObjectsList();
|
if(!isSelectedPortalVI(list)) return;
|
if(VCIJOptionPane.showConfirm(this, "您确定要删除选择的数据吗?") != VCIJOptionPane.YES_OPTION) return;
|
try {
|
for(PortalVI vi : list){
|
UITools.getService().deletePortalVI(vi);
|
}
|
getBtmItemAttrTablePanel().getOwnedPanel().refreshPortalVI();
|
} catch (VCIError e) {
|
e.printStackTrace();
|
VCIJOptionPane.showMessage(this, "删除表单时发生错误!\n" + e.getMessage());
|
}
|
}
|
|
private PRMItemTablePanel pRMItemTablePanel = null;
|
public PRMItemTablePanel getPRMItemTablePanel(){
|
return pRMItemTablePanel;
|
}
|
private PRMItemTablePanel getNewPRMItemTablePanel(){
|
pRMItemTablePanel = new PRMItemTablePanel(this);
|
pRMItemTablePanel.setBorder(new TitledBorder("表单属性"));
|
return pRMItemTablePanel;
|
}
|
|
private void portalVITablePanel_mouseClicked(MouseEvent e){
|
List<PortalVI> list = portalVITablePanel.getSelectedRowObjectsList();
|
if(list.size() <= 0) return;
|
pRMItemTablePanel.setPortalVIList(list);
|
pRMItemTablePanel.getTablePanel().refreshTableData();
|
}
|
|
|
private BtmItemAttrTablePanel btmItemAttrTablePanel = null;
|
public BtmItemAttrTablePanel getBtmItemAttrTablePanel() {
|
return btmItemAttrTablePanel;
|
}
|
public void setBtmItemAttrTablePanel(BtmItemAttrTablePanel btmItemAttrTablePanel) {
|
this.btmItemAttrTablePanel = btmItemAttrTablePanel;
|
}
|
public BtmItemAttrTablePanel getMateriamItemAttrTablePanel(){
|
btmItemAttrTablePanel = new BtmItemAttrTablePanel(this);
|
btmItemAttrTablePanel.setBorder(new TitledBorder("业务类型属性"));
|
return btmItemAttrTablePanel;
|
}
|
|
private PRMItemDetailInfoPanel pRMItemDetailInfoPanel = null;
|
public PRMItemDetailInfoPanel getpRMItemDetailInfoPanel() {
|
return pRMItemDetailInfoPanel;
|
}
|
public void setpRMItemDetailInfoPanel(
|
PRMItemDetailInfoPanel pRMItemDetailInfoPanel) {
|
this.pRMItemDetailInfoPanel = pRMItemDetailInfoPanel;
|
}
|
private VCIJPanel getEastPanel(){
|
VCIJPanel pal = new VCIJPanel(new BorderLayout());
|
pRMItemDetailInfoPanel = new PRMItemDetailInfoPanel();
|
pRMItemDetailInfoPanel.setBorder(new TitledBorder("属性配置"));
|
pal.add(getFunUtilBtnPanel(), BorderLayout.NORTH);
|
pal.add(new VCIJScrollPane(pRMItemDetailInfoPanel), BorderLayout.CENTER);
|
return pal;
|
}
|
|
private VCIJComboBox cbxTargetAttr = null;
|
private VCIJTextArea txtTargetVal = new VCIJTextArea("");
|
private VCIJComboBox getTargetAttrComboBox(){
|
VCIJComboBox cbx = new VCIJComboBox();
|
cbxTargetAttr = cbx;
|
DefaultComboBoxModel model = new DefaultComboBoxModel();
|
// model.addElement(ChangeableProperty.FIELD);
|
model.addElement(ChangeableProperty.READONLY);
|
model.addElement(ChangeableProperty.REQUIRED);
|
model.addElement(ChangeableProperty.NAME);
|
|
model.addElement(ChangeableProperty.SHOWTYPE);
|
model.addElement(ChangeableProperty.DEFVAL);
|
model.addElement(ChangeableProperty.POSTYPE);
|
model.addElement(ChangeableProperty.FIELD_EXPRESS);
|
|
model.addElement(ChangeableProperty.READONLY_CONDITION);
|
model.addElement(ChangeableProperty.CONTROL_FIELD);
|
model.addElement(ChangeableProperty.CONTROL_FIELD_CONDITION);
|
model.addElement(ChangeableProperty.SCRIPT_VALIDATE);
|
|
model.addElement(ChangeableProperty.TIPTEXT);
|
model.addElement(ChangeableProperty.CASCAE_FIELD);
|
model.addElement(ChangeableProperty.CUSTOM_CLASS);
|
model.addElement(ChangeableProperty.HTTP_PATH);
|
model.addElement(ChangeableProperty.HTTP_FIELD);
|
|
model.addElement(ChangeableProperty.REFERENCE_FIRST);
|
model.addElement(ChangeableProperty.REFERENCE_SECOND);
|
model.addElement(ChangeableProperty.REFENENCE_FIELD);
|
model.addElement(ChangeableProperty.OTHER);
|
|
cbx.setModel(model);
|
return cbx;
|
}
|
|
private VCIJPanel getFunUtilBtnPanel(){
|
VCIJPanel pal = new VCIJPanel(new GridBagLayout());
|
pal.setBorder(new TitledBorder("批量修改选择的表单共有属性的属性值"));
|
|
int padxy = 1;
|
int anchor = GridBagConstraints.NORTHWEST;
|
int fill = GridBagConstraints.BOTH;
|
int gridx = 0;
|
int gridy = 0;
|
|
gridx = 0;
|
gridy += 1;
|
pal.add(new VCIJLabel("属性:"), getGBC(gridx++, gridy, 1, 1, 0, 0, anchor, fill, padxy));
|
pal.add(getTargetAttrComboBox(), getGBC(gridx++, gridy, 1, 1,1.0, 0, anchor, fill, padxy));
|
pal.add(createButton("execAttrSetting", "执行", "action_check.png"), getGBC(gridx++, gridy, 1, 1, 0.5, 0, anchor, fill, padxy));
|
|
gridx = 0;
|
gridy += 1;
|
pal.add(new VCIJLabel("值:"), getGBC(gridx++, gridy, 1, 1, 0, 0, anchor, fill, padxy));
|
|
txtTargetVal = new VCIJTextArea();
|
txtTargetVal.setRows(3);
|
txtTargetVal.setWrapStyleWord(true);
|
pal.add(new VCIJScrollPane(txtTargetVal), getGBC(gridx++, gridy, 2, 2, 1.0, 1.0, anchor, fill, padxy));
|
|
return pal;
|
}
|
|
private VCIJButton createButton(String actionCommand, String text, String icon){
|
return VCISwingUtil.createVCIJButton(actionCommand, text, text, icon, this);
|
}
|
|
private GridBagConstraints getGBC(int gridx, int gridy, int gridwidth,
|
int gridheight, double weightx, double weighty, int anchor,
|
int fill, int padxy) {
|
return new GridBagConstraints(gridx, gridy, gridwidth, gridheight,
|
weightx, weighty, anchor, fill, new Insets(padxy, padxy, padxy,
|
padxy), padxy, padxy);
|
}
|
|
private Map<String, Runnable> actionMap = new HashMap<String, Runnable>();
|
private void initActionMap(){
|
actionMap.put("execAttrSetting", new Runnable() {
|
@Override
|
public void run() {
|
execAttrSetting();
|
}
|
});
|
actionMap.put("editPortalVI", new Runnable() {
|
@Override
|
public void run() {
|
editPortalVI();
|
}
|
});
|
actionMap.put("deletePortalVI", new Runnable() {
|
@Override
|
public void run() {
|
deletePortalVI();
|
}
|
});
|
}
|
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
String actionCommand = e.getActionCommand();
|
if(actionMap.containsKey(actionCommand)){
|
actionMap.get(actionCommand).run();
|
}
|
}
|
|
private void execAttrSetting(){
|
List<PortalVI> viList = this.portalVITablePanel.getSelectedRowObjectsList();
|
List<PRMItemWrapper> PRMItemWrapperExList =
|
getPRMItemTablePanel().getTablePanel().
|
getSelectedRowObjectsList();
|
if(!isSelectedPortaVIAndPRMItem(viList, PRMItemWrapperExList)) return;
|
|
String selecteItemValue = (String) cbxTargetAttr.getSelectedItem();
|
String newValue = txtTargetVal.getText();
|
boolean success = true;
|
// 修改表单
|
for(PortalVI vi : viList){
|
PRM prm = UITools.getPRM(vi.prm);
|
List<PRMItem> viPrmItems = prm.getPrmItemList();
|
for(PRMItemWrapper piw : PRMItemWrapperExList){
|
for(PRMItem pi : viPrmItems){
|
if(piw.getPrmItem().getItemField().equals(pi.getItemField())){
|
// 修改单个 PRMItem 指定的属性值
|
pi = setPRMItemAttrValue(pi, selecteItemValue, newValue);
|
}
|
}
|
}
|
prm.setPrmItemList(viPrmItems);
|
try {
|
vi.prm = UITools.getPRMText(prm);
|
success &= UITools.getService().updatePortalVI(vi);
|
} catch (Throwable e) {
|
e.printStackTrace();
|
}
|
}
|
btmItemLlist_valueChange(null);
|
if(success){
|
VCIJOptionPane.showMessage(this, "修改成功");
|
}
|
}
|
|
public PRMItem setPRMItemAttrValue(PRMItem prmItem, String attrName, String newValue){
|
if(attrName.equals(ChangeableProperty.FIELD)){
|
prmItem.setItemField(newValue);
|
}else if(attrName.equals(ChangeableProperty.READONLY)){
|
prmItem.setItemIsEditable(newValue);
|
}else if(attrName.equals(ChangeableProperty.REQUIRED)){
|
prmItem.setItemIsRequired(newValue);
|
}else if(attrName.equals(ChangeableProperty.NAME)){
|
prmItem.setItemName(newValue);
|
}else if(attrName.equals(ChangeableProperty.SHOWTYPE)){
|
prmItem.setItemType(newValue);
|
}else if(attrName.equals(ChangeableProperty.DEFVAL)){
|
prmItem.setItemValue(newValue);
|
}else if(attrName.equals(ChangeableProperty.POSTYPE)){
|
prmItem.setItemCols(newValue);
|
}else if(attrName.equals(ChangeableProperty.FIELD_EXPRESS)){
|
prmItem.setItemAddFilter(newValue);
|
}else if(attrName.equals(ChangeableProperty.READONLY_CONDITION)){
|
prmItem.setItemEditableProgram(newValue);
|
}else if(attrName.equals(ChangeableProperty.CONTROL_FIELD)){
|
prmItem.setItemCtrlDisplyCol(newValue);
|
}else if(attrName.equals(ChangeableProperty.CONTROL_FIELD_CONDITION)){
|
prmItem.setItemCtrlDisplyCondition(newValue);
|
}else if(attrName.equals(ChangeableProperty.SCRIPT_VALIDATE)){
|
prmItem.setItemScript(newValue);
|
}else if(attrName.equals(ChangeableProperty.TIPTEXT)){
|
prmItem.setItemTips(newValue);
|
}else if(attrName.equals(ChangeableProperty.CASCAE_FIELD)){
|
prmItem.setItemQueryRefFields(newValue);
|
}else if(attrName.equals(ChangeableProperty.CUSTOM_CLASS)){
|
prmItem.setItemCustomClass(newValue);
|
}else if(attrName.equals(ChangeableProperty.HTTP_PATH)){
|
|
}else if(attrName.equals(ChangeableProperty.HTTP_FIELD)){
|
|
}else if(attrName.equals(ChangeableProperty.REFERENCE_FIRST)){
|
prmItem.setItemListTable(newValue);
|
}else if(attrName.equals(ChangeableProperty.REFERENCE_SECOND)){
|
prmItem.setItemListTxt(newValue);
|
}else if(attrName.equals(ChangeableProperty.REFENENCE_FIELD)){
|
prmItem.setItemListVal(newValue);
|
}else if(attrName.equals(ChangeableProperty.OTHER)){
|
prmItem.setItemStyle(newValue);
|
}
|
return prmItem;
|
}
|
|
private boolean isSelectedPortaVIAndPRMItem(List<PortalVI> viList, List<PRMItemWrapper> prmItemList){
|
if(!isSelectedPortalVI(viList)) return false;
|
if(!isSelectedPRMItemWrapperEx(prmItemList)) return false;
|
return true;
|
}
|
|
private boolean isSelectedPortalVI(List<PortalVI> list){
|
if(list.size() <= 0){
|
VCIJOptionPane.showMessageDialog(this, "请先选择表单再进行此操作");
|
return false;
|
}
|
return true;
|
}
|
private boolean isSelectedPRMItemWrapperEx(List<PRMItemWrapper> list){
|
if(list.size() <= 0){
|
VCIJOptionPane.showMessageDialog(this, "请先选择表单属性再进行此操作");
|
return false;
|
}
|
return true;
|
}
|
|
}
|