001: package fr.aliacom.form.swt.ui.tree;
002:
003: import java.util.ArrayList;
004:
005: import fr.aliacom.commands.Command;
006: import fr.aliacom.common.ui.IIcon;
007: import fr.aliacom.common.ui.IconFactory;
008: import fr.aliacom.common.ui.tree.ICommandTreeNode;
009: import fr.aliacom.common.ui.tree.ITreeNode;
010: import fr.aliacom.form.common.IFormComponent;
011:
012: /**
013: * @author tom
014: *
015: * (C) 2001, 2002 Thomas Cataldo
016: */
017: public class CommandTreeNode implements ICommandTreeNode,
018: IFormComponent {
019:
020: private ArrayList children;
021: private ITreeNode parent;
022: private Command c;
023: private String iconName;
024: private String text;
025:
026: public CommandTreeNode(ITreeNode parent, Command c, String text,
027: String iconName) {
028: children = new ArrayList();
029: this .parent = parent;
030: this .c = c;
031: this .text = text;
032: this .iconName = iconName;
033: if (parent != null) {
034: parent.addChild(this );
035: }
036: }
037:
038: /**
039: * @see fr.aliacom.common.ui.tree.ICommandTreeNode#getCommand()
040: */
041: public Command getCommand() {
042: return c;
043: }
044:
045: /**
046: * @see fr.aliacom.form.common.IFormComponent#reset()
047: */
048: public void reset() {
049: }
050:
051: /**
052: * @see fr.aliacom.form.common.IFormComponent#setValueBean(java.lang.Object)
053: */
054: public void setValueBean(Object bean) {
055: }
056:
057: /**
058: * @see fr.aliacom.form.common.IFormComponent#getNativeWidget()
059: */
060: public Object getNativeWidget() {
061: return null;
062: }
063:
064: /**
065: * @see fr.aliacom.common.ui.tree.ITreeNode#children()
066: */
067: public ITreeNode[] children() {
068: ITreeNode[] nodes = new ITreeNode[children.size()];
069: System.arraycopy(children.toArray(), 0, nodes, 0, nodes.length);
070: return nodes;
071: }
072:
073: /**
074: * @see fr.aliacom.common.ui.tree.ITreeNode#getAllowChildren()
075: */
076: public boolean getAllowChildren() {
077: return true;
078: }
079:
080: /**
081: * @see fr.aliacom.common.ui.tree.ITreeNode#getChildAt(int)
082: */
083: public ITreeNode getChildAt(int i) {
084: return (ITreeNode) children.get(i);
085: }
086:
087: /**
088: * @see fr.aliacom.common.ui.tree.ITreeNode#getChildCount()
089: */
090: public int getChildCount() {
091: return children.size();
092: }
093:
094: /**
095: * @see fr.aliacom.common.ui.tree.ITreeNode#getParent()
096: */
097: public ITreeNode getParent() {
098: return parent;
099: }
100:
101: /**
102: * @see fr.aliacom.common.ui.tree.ITreeNode#isLeaf()
103: */
104: public boolean isLeaf() {
105: return getChildCount() == 0;
106: }
107:
108: /**
109: * @see fr.aliacom.common.ui.tree.ITreeNode#getText()
110: */
111: public String getText() {
112: return text;
113: }
114:
115: /**
116: * @see fr.aliacom.common.ui.tree.ITreeNode#getIcon()
117: */
118: public IIcon getIcon() {
119: return (iconName == null ? null : IconFactory.get(iconName));
120: }
121:
122: /**
123: * @see fr.aliacom.common.ui.tree.ITreeNode#addChild(fr.aliacom.common.ui.tree.ITreeNode)
124: */
125: public void addChild(ITreeNode node) {
126: children.add(node);
127: }
128:
129: }
|