package com.vci.client.omd.btm.ui;
|
|
import java.util.List;
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.awt.BorderLayout;
|
import java.awt.FlowLayout;
|
|
import javax.swing.JButton;
|
import javax.swing.JDialog;
|
import javax.swing.JPanel;
|
import javax.swing.JScrollPane;
|
import javax.swing.border.EmptyBorder;
|
import javax.swing.tree.DefaultTreeModel;
|
import javax.swing.tree.TreePath;
|
import javax.swing.JTree;
|
|
import com.vci.client.LogonApplication;
|
import com.vci.client.omd.provider.BtmProvider;
|
import com.vci.client.ui.swing.VCIOptionPane;
|
import com.vci.client.ui.tree.VCIBaseTreeModel;
|
import com.vci.client.ui.tree.VCIBaseTreeNode;
|
import com.vci.corba.common.VCIError;
|
import com.vci.corba.omd.atm.AttribItem;
|
|
import java.awt.event.ActionListener;
|
import java.awt.event.ActionEvent;
|
|
@SuppressWarnings("serial")
|
public class AttrTreeDialog extends JDialog {
|
|
private final JPanel contentPanel = new JPanel();
|
|
private JButton okButton;
|
private JButton cancelButton;
|
/**
|
* 业务对象名称
|
*/
|
private String btName;
|
/**
|
* 属性树
|
*/
|
private JTree tree;
|
private List<AttribItem> selectAttribItems = new ArrayList<AttribItem>();
|
public AttribItem[] getSelectAttribItems() {
|
return selectAttribItems.toArray(new AttribItem[0]);
|
}
|
|
public void setSelectAttribItem(AttribItem[] attribItems) {
|
this.selectAttribItems = Arrays.asList(attribItems);
|
}
|
|
/**
|
* 属性树
|
* @param selectTreeNodeobject TODO
|
*/
|
public AttrTreeDialog(String btName, Object selectTreeNodeobject) {
|
super(LogonApplication.frame,true);
|
this.btName = btName;
|
initContent();
|
this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
|
this.setLocationRelativeTo(null);
|
this.setVisible(true);
|
}
|
|
private void initContent() {
|
setBounds(100, 100, 374, 593);
|
getContentPane().setLayout(new BorderLayout());
|
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
|
getContentPane().add(contentPanel, BorderLayout.CENTER);
|
contentPanel.setLayout(new BorderLayout(0, 0));
|
{
|
JScrollPane js = new JScrollPane();
|
tree = new JTree();
|
try {
|
tree.setModel(createTreeModel());
|
} catch (VCIError e) {
|
e.printStackTrace();
|
}
|
contentPanel.setLayout(new BorderLayout());
|
js.setViewportView(tree);
|
contentPanel.add(js, BorderLayout.CENTER);
|
}
|
{
|
JPanel buttonPane = new JPanel();
|
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
|
getContentPane().add(buttonPane, BorderLayout.SOUTH);
|
{
|
okButton = new JButton("确定");
|
buttonPane.add(okButton);
|
}
|
{
|
cancelButton = new JButton("取消");
|
buttonPane.add(cancelButton);
|
}
|
}
|
initActionListener();
|
}
|
|
private void initActionListener() {
|
okButton.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent e) {
|
if (tree.getSelectionCount() == 0) {
|
VCIOptionPane.showMessage(LogonApplication.frame, "请选择属性节点");
|
return;
|
}
|
|
|
for (TreePath tp : tree.getSelectionPaths()) {
|
VCIBaseTreeNode node = (VCIBaseTreeNode) tp.getLastPathComponent();
|
Object obj = node.getObj();
|
// if(obj instanceof String){
|
// if(String.valueOf(obj).equals("root")){
|
// VCIOptionPane.showMessage(LogonApplication.frame, "请选择属性节点");
|
// return;
|
// }else{
|
// selectAttribItems.add(new AttribItem() {name=(String)obj});
|
// }
|
// }
|
if(obj instanceof AttribItem){
|
selectAttribItems.add((AttribItem) obj);
|
}
|
}
|
// VCIBaseTreeNode lastSelectedPathComponent = (VCIBaseTreeNode) tree.getLastSelectedPathComponent();
|
// if(lastSelectedPathComponent==null){
|
// VCIOptionPane.showMessage(LogonApplication.frame, "请选择属性节点");
|
// return;
|
// }
|
// Object obj = lastSelectedPathComponent.getObj();
|
// if(obj instanceof String){
|
// if(String.valueOf(obj).equals("root")){
|
// VCIOptionPane.showMessage(LogonApplication.frame, "请选择属性节点");
|
// return;
|
// }else{
|
// selectAttribItems.clear();
|
// }
|
// }
|
// if(obj instanceof AttribItem){
|
// selectAttribItems.add((AttribItem) obj);
|
// }
|
|
dispose();
|
}
|
});
|
cancelButton.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
selectAttribItems.clear();
|
dispose();
|
}
|
});
|
}
|
|
private DefaultTreeModel createTreeModel() throws VCIError {
|
AttribItem[] btAbItems = BtmProvider.getInstance().getBtAbItems(btName);
|
String[] sysAbItems = BtmProvider.getInstance().getSysAttributes();
|
VCIBaseTreeNode rootNode = new VCIBaseTreeNode("属性信息","root");
|
VCIBaseTreeModel treeModel = new VCIBaseTreeModel(rootNode);
|
|
for(int i=0;i<sysAbItems.length;i++){
|
AttribItem ai = new AttribItem();
|
ai.name = sysAbItems[i].toLowerCase();
|
VCIBaseTreeNode node = new VCIBaseTreeNode(sysAbItems[i].toLowerCase(), ai);
|
treeModel.insertNodeInto(node, rootNode, rootNode.getChildCount());
|
}
|
|
for(int i=0;i<btAbItems.length;i++){
|
VCIBaseTreeNode node = new VCIBaseTreeNode(btAbItems[i].name.toLowerCase(),btAbItems[i]);
|
treeModel.insertNodeInto(node, rootNode, rootNode.getChildCount());
|
}
|
return new DefaultTreeModel(rootNode);
|
}
|
}
|