package com.vci.client.portal.platformPortal;
|
|
import java.awt.BorderLayout;
|
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.MouseAdapter;
|
import java.awt.event.MouseEvent;
|
|
import javax.swing.ButtonGroup;
|
import javax.swing.JButton;
|
import javax.swing.JOptionPane;
|
import javax.swing.JPanel;
|
import javax.swing.JRadioButton;
|
import javax.swing.JScrollPane;
|
import javax.swing.JSplitPane;
|
import javax.swing.JTextField;
|
import javax.swing.JTree;
|
import javax.swing.tree.DefaultMutableTreeNode;
|
import javax.swing.tree.DefaultTreeModel;
|
import javax.swing.tree.TreeNode;
|
import javax.swing.tree.TreePath;
|
|
import com.vci.client.common.VCIBasePanel;
|
import com.vci.client.framework.rightConfig.object.FunctionObject;
|
import com.vci.client.omd.btm.ui.BtmTree;
|
import com.vci.client.omd.btm.wrapper.BtmItemWrapper;
|
import com.vci.client.omd.linktype.LinkTypeTree;
|
import com.vci.client.omd.linktype.LinkTypeWrapper;
|
import com.vci.client.ui.util.PostorderEnumeration;
|
import com.vci.common.portal.enums.PortalVITypeFlag;
|
|
public class PlatformPortalClientMain extends VCIBasePanel {
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = -6929857264098771182L;
|
|
static FunctionObject object = new FunctionObject();
|
private JTree btmTree ;
|
private JTree linkTypeTree ;
|
private ButtonGroup bg ;
|
private JRadioButton btmTerrBtn;
|
private JRadioButton linktypeTreeBtn;
|
private JPanel treePanel;
|
private JSplitPane splitPane;
|
private JPanel plmPortalTable;
|
private JTextField textField;
|
private static PlatformPortalClientMain mainPanel;
|
private PortalVITypeFlag typeFlag;
|
private JScrollPane scrollPane;
|
public PlatformPortalClientMain(FunctionObject object) {
|
super(object);
|
this.object = object;
|
|
init();
|
|
actionListener();
|
|
disRightTable(null);
|
}
|
|
private static PlatformPortalClientMain getinstance(){
|
if(mainPanel == null ){
|
mainPanel = new PlatformPortalClientMain(object);
|
}
|
return mainPanel;
|
}
|
|
private void init() {
|
btmTree = new BtmTree();
|
linkTypeTree = new LinkTypeTree();
|
|
setLayout(new BorderLayout(0, 0));
|
|
splitPane = new JSplitPane();
|
add(splitPane);
|
|
bg = new ButtonGroup();
|
JPanel panel = new JPanel();
|
splitPane.setLeftComponent(panel);
|
panel.setLayout(new BorderLayout(0, 0));
|
|
JPanel radioBtn = new JPanel();
|
|
panel.add(radioBtn, BorderLayout.NORTH);
|
btmTerrBtn = new JRadioButton("业务类型树");
|
btmTerrBtn.setSelected(true);
|
linktypeTreeBtn = new JRadioButton("链接类型树");
|
// radioBtn.setLayout(new GridLayout(0, 2, 0, 0));
|
// add by caill start
|
// 为定位框和定位按钮设置合适位置
|
textField = new JTextField(20);
|
JButton sel = new JButton("定位");
|
radioBtn.setLayout(new GridBagLayout());
|
GridBagConstraints gbc = new GridBagConstraints();
|
gbc.fill = GridBagConstraints.HORIZONTAL;
|
gbc.weightx = 0.7;
|
gbc.weighty = 0;
|
gbc.gridx = 0;
|
gbc.gridy = 0;
|
radioBtn.add(textField, gbc);
|
radioBtn.add(sel);
|
gbc.weightx = 0;
|
gbc.weighty = 0;
|
gbc.gridx = 0;
|
gbc.gridy = 1;
|
gbc.insets = new Insets(5, 0, 0, 100);
|
radioBtn.add(btmTerrBtn, gbc);
|
gbc.gridx = 0;
|
gbc.gridy = 1;
|
gbc.insets = new Insets(5, 80, 0, 0);
|
radioBtn.add(linktypeTreeBtn, gbc);
|
bg.add(btmTerrBtn);
|
bg.add(linktypeTreeBtn);
|
// 为定位按钮增添点击事件
|
sel.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
// e.getSource();
|
String test = textField.getText().trim();
|
// 当业务类型树被选中时
|
if (btmTerrBtn.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 BtmItemWrapper) {
|
BtmItemWrapper wrapper = (BtmItemWrapper) element
|
.getUserObject();
|
|
if (wrapper != null && wrapper.btmItem != null
|
&& wrapper.btmItem.name.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 LinkTypeWrapper) {
|
LinkTypeWrapper wrapper = (LinkTypeWrapper) element.getUserObject();
|
|
if (wrapper != null && wrapper.linkType != null
|
&& wrapper.linkType.name.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 (btmTerrBtn.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 BtmItemWrapper) {
|
BtmItemWrapper wrapper = (BtmItemWrapper) element.getUserObject();
|
|
if (wrapper != null && wrapper.btmItem != null
|
&& wrapper.btmItem.name.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 LinkTypeWrapper) {
|
LinkTypeWrapper wrapper = (LinkTypeWrapper) element
|
.getUserObject();
|
|
if (wrapper != null && wrapper.linkType != null
|
&& wrapper.linkType.name.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
|
treePanel = new JPanel();
|
treePanel.setLayout(new BorderLayout());
|
treePanel.add(btmTree);
|
|
scrollPane = new JScrollPane();
|
scrollPane.setViewportView(treePanel);
|
panel.add(scrollPane, BorderLayout.CENTER);
|
}
|
|
private void actionListener(){
|
btmTerrBtn.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
treePanel.removeAll();
|
treePanel.add(btmTree);
|
typeFlag = PortalVITypeFlag.BtmType;
|
flushTreePanel();
|
}
|
|
|
});
|
|
linktypeTreeBtn.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
treePanel.removeAll();
|
treePanel.add(linkTypeTree);
|
typeFlag = PortalVITypeFlag.LinkType;
|
flushTreePanel();
|
}
|
});
|
|
btmTree.addMouseListener(new MouseAdapter() {
|
|
@Override
|
public void mouseClicked(MouseEvent arg0) {
|
if(btmTree.getSelectionPath() == null || btmTree.getSelectionPath().getLastPathComponent() == null) return;
|
DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) btmTree.getSelectionPath().getLastPathComponent();
|
Object object = selectNode.getUserObject();
|
disRightTable(object);
|
}
|
|
});
|
linkTypeTree.addMouseListener(new MouseAdapter() {
|
|
@Override
|
public void mouseClicked(MouseEvent arg0) {
|
if(linkTypeTree.getSelectionPath() == null || linkTypeTree.getSelectionPath().getLastPathComponent() == null) return;
|
DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) linkTypeTree.getSelectionPath().getLastPathComponent();
|
Object object = selectNode.getUserObject();
|
disRightTable(object);
|
}
|
});
|
}
|
|
private void flushTreePanel() {
|
treePanel.updateUI();
|
}
|
|
private void disRightTable(Object selectNode) {
|
if(selectNode == null){
|
plmPortalTable = new JPanel();
|
}else{
|
PortalVITypeFlag typeFlag = PortalVITypeFlag.BtmType;
|
if(linktypeTreeBtn.isSelected()){
|
typeFlag = PortalVITypeFlag.LinkType;
|
}
|
plmPortalTable = new PlatformPortalTablePanel(selectNode, typeFlag,
|
true, true, true, null, "表单表格管理", true);
|
}
|
splitPane.setRightComponent(plmPortalTable);
|
}
|
}
|