Mercurial > hg > Members > shoshi > TreeCMSv1
view src/treecms/proto/simple/SimpleNode.java @ 36:9663c816e370
commit.
author | suika6039 |
---|---|
date | Mon, 27 Dec 2010 21:08:43 +0900 |
parents | c0a0fa870e6e |
children | 78e9b96ef04a |
line wrap: on
line source
package treecms.proto.simple; import java.util.Iterator; import java.util.Collections; import java.util.List; import java.util.LinkedList; import treecms.proto.api.Node; import treecms.proto.api.NodeID; import treecms.proto.id.IncrementalNodeID; import java.util.Hashtable; class SimpleNode implements Node { private LinkedList<Node> m_children; private NodeID m_id; private String m_title,m_class; private Hashtable<String,String> m_attrs; SimpleNode(NodeID _id) { m_children = new LinkedList<Node>(); m_id = _id; m_title = ""; m_class = ""; m_attrs = new Hashtable<String,String>(); SimpleNodeTable.getInstance().put(m_id.toString(),this); } @Override public List<Node> getChildren() { // return unmodifiable list<node> return Collections.unmodifiableList(m_children); } @Override public boolean isChild(Node _child) { return m_children.contains(_child); } @Override public Node addChild(Node _child) { if(m_children.contains(_child)){ m_children.add(_child); return null; } return null; } @Override public boolean removeChild(Node _child) { return m_children.remove(_child); } @Override public Iterator<Node> iterator() { // return unmodifiable iterator return m_children.iterator(); } @Override public NodeID getID() { return this.m_id; } @Override public void addChildren(List<Node> _children) { if(m_children.containsAll(_children)){ m_children.addAll(_children); } } @Override public Node cloneNode() { SimpleNode clone = new SimpleNode(m_id.update()); clone.setTitle(getTitle()); clone.setClassName(getClassName()); clone.addChildren(m_children); return clone; } @Override public String getTitle() { return m_title; } @Override public void setTitle(String _title) { m_title = _title; } @Override public String getClassName() { return m_class; } @Override public void setClassName(String _class) { m_class = _class; } @Override public void down(Node _child) { int index = m_children.indexOf(_child); if(index != 0){ m_children.remove(_child); m_children.add(index,_child); } } @Override public void replace(Node _target, Node _newChild) { int index = m_children.indexOf(_target); if(index != 0){ m_children.remove(_target); m_children.add(index,_newChild); } } @Override public void up(Node _child) { int index = m_children.indexOf(_child); if(index != 0){ m_children.remove(_child); m_children.add(index,_child); } } public String toString() { return getTitle()+"["+getID().toString()+"]"; } @Override public void clearChildren() { m_children.clear(); } @Override public String getAttribute(String _attr) { return m_attrs.get(_attr); } @Override public void setAttribute(String _attr, String _value) { m_attrs.put(_attr,_value); } @Override public Node createNode() { return SimpleBrowser.getSingleton().createNode(); } }