package com.vci.client.auth2.action;
|
|
import java.awt.Dimension;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import javax.swing.JOptionPane;
|
import javax.swing.tree.DefaultMutableTreeNode;
|
import javax.swing.tree.DefaultTreeModel;
|
import javax.swing.tree.TreePath;
|
|
import com.vci.client.auth2.view.AbstractUIFunclet;
|
import com.vci.client.omd.btm.ui.BtmTree;
|
import com.vci.client.omd.btm.ui.ResourceTree;
|
import com.vci.client.ui.util.PostorderEnumeration;
|
|
public class ExpandAction extends Action {
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 5391391037588855918L;
|
private int level;
|
|
public ExpandAction(String name) {
|
super(name);
|
setSize(new Dimension(5,5));
|
}
|
|
@Override
|
public void execute() {
|
|
AbstractUIFunclet funclet = getFunclet();
|
BtmTree resourceTree = funclet.getResourceTree();
|
DefaultTreeModel model = (DefaultTreeModel) resourceTree.getModel();
|
model.reload();
|
DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot();
|
if (root.getDepth() < level) {
|
JOptionPane.showMessageDialog(
|
com.vci.client.LogonApplication.frame, "类型树的深度小于"
|
+ level, "提示", JOptionPane.INFORMATION_MESSAGE);
|
return;
|
}
|
PostorderEnumeration enumeration = new PostorderEnumeration(root);
|
List<TreePath> twos = new ArrayList<TreePath>();
|
while (enumeration.hasMoreElements()) {
|
DefaultMutableTreeNode element = (DefaultMutableTreeNode) enumeration
|
.nextElement();
|
|
if (element.getLevel() == level) {
|
twos.add(new TreePath(element.getPath()));
|
}
|
}
|
for (TreePath path : twos) {
|
resourceTree.setSelectionPath(path);
|
}
|
|
// resourceTree.setSelectionPaths(twos.toArray(new
|
// TreePath[twos.size()]));
|
}
|
|
public int getLevel() {
|
return level;
|
}
|
|
public void setLevel(int level) {
|
this.level = level;
|
}
|
}
|