public void doAction(ActionEvent e) {
[[#variablee025f60]] treeListener = [[#variablee025ec0]].getInstance().getTreeListener();
[[#variablee025e80]][] nodes = treeListener.getSelectedNodes();
setCopiedNodes(nodes);
}
public static [[#variablee025e80]][] getCopiedNodes() {
for (int i = 0; i < copiedNodes.length; i++) {
if (copiedNodes[i] == null) {
return null;
}
}
return cloneTreeNodes(copiedNodes);
}
public static [[#variablee025e80]] getCopiedNode() {
if (copiedNode == null) {
return null;
}
return cloneTreeNode(copiedNode);
}
public static void setCopiedNode( [[#variablee025e80]] node) {
copiedNode = cloneTreeNode(node);
}
public static [[#variablee025e80]] cloneTreeNode( [[#variablee025e80]] node) {
[[#variablee025e80]] treeNode = ( [[#variablee025e80]]) node.clone();
treeNode.setUserObject(((TestElement) node.getUserObject()).clone());
cloneChildren(treeNode, node);
return treeNode;
}
public static void setCopiedNodes( [[#variablee025e80]] nodes[]) {
copiedNodes = new [[#variablee025e80]][nodes.length];
for (int i = 0; i < nodes.length; i++) {
copiedNodes[i] = cloneTreeNode(nodes[i]);
}
}
public static [[#variablee025e80]][] cloneTreeNodes( [[#variablee025e80]] nodes[]) {
[[#variablee025e80]] treeNodes[] = new [[#variablee025e80]][nodes.length];
for (int i = 0; i < nodes.length; i++) {
treeNodes[i] = cloneTreeNode(nodes[i]);
}
return treeNodes;
}
private static void cloneChildren( [[#variablee025e80]] to, [[#variablee025e80]] from) {
Enumeration enumFrom = from.children();
while (enumFrom.hasMoreElements()) {
[[#variablee025e80]] child = ( [[#variablee025e80]]) enumFrom.nextElement();
[[#variablee025e80]] childClone = ( [[#variablee025e80]]) child.clone();
childClone.setUserObject(((TestElement) child.getUserObject()).clone());
to.add(childClone);
cloneChildren(( [[#variablee025e80]]) to.getLastChild(), child);
}
}
|