# HG changeset patch
# User shoshi
# Date 1282890380 -32400
# Node ID f815c7c1fb3858d674b04ba7be9e5bbfdef8666f
hg init
diff -r 000000000000 -r f815c7c1fb38 .classpath
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.classpath Fri Aug 27 15:26:20 2010 +0900
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff -r 000000000000 -r f815c7c1fb38 .project
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.project Fri Aug 27 15:26:20 2010 +0900
@@ -0,0 +1,17 @@
+
+
+ TreeCMSPrototype1
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff -r 000000000000 -r f815c7c1fb38 .settings/org.eclipse.jdt.core.prefs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.settings/org.eclipse.jdt.core.prefs Fri Aug 27 15:26:20 2010 +0900
@@ -0,0 +1,12 @@
+#Thu Aug 26 16:39:12 JST 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff -r 000000000000 -r f815c7c1fb38 src/treecms/proto/api/BrowseAPI.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/treecms/proto/api/BrowseAPI.java Fri Aug 27 15:26:20 2010 +0900
@@ -0,0 +1,6 @@
+package treecms.proto.api;
+
+public interface BrowseAPI
+{
+ NodeAPI useContents();
+}
diff -r 000000000000 -r f815c7c1fb38 src/treecms/proto/api/EditAPI.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/treecms/proto/api/EditAPI.java Fri Aug 27 15:26:20 2010 +0900
@@ -0,0 +1,7 @@
+package treecms.proto.api;
+
+public interface EditAPI extends BrowseAPI
+{
+ void login(String user,String pass);
+ void logout();
+}
diff -r 000000000000 -r f815c7c1fb38 src/treecms/proto/api/NodeAPI.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/treecms/proto/api/NodeAPI.java Fri Aug 27 15:26:20 2010 +0900
@@ -0,0 +1,23 @@
+package treecms.proto.api;
+
+import java.util.Iterator;
+
+import java.util.List;
+
+public interface NodeAPI extends Iterable
+{
+ Iterator iterator();
+ List getChildList();
+ boolean isChild(NodeAPI _child);
+
+ NodeAPI addChild();
+ void removeChild(NodeAPI _child);
+
+ void up(NodeAPI _child);
+ void down(NodeAPI _child);
+
+ void setClassName(String _class);
+ void setTitle(String _title);
+ String getClassName();
+ String getTitle();
+}
\ No newline at end of file
diff -r 000000000000 -r f815c7c1fb38 src/treecms/proto/api/NodeAPITreeBuilder.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/treecms/proto/api/NodeAPITreeBuilder.java Fri Aug 27 15:26:20 2010 +0900
@@ -0,0 +1,6 @@
+package treecms.proto.api;
+
+public interface NodeAPITreeBuilder
+{
+ NodeAPI getContents();
+}
diff -r 000000000000 -r f815c7c1fb38 src/treecms/proto/simple/SimpleNodeAPI.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/treecms/proto/simple/SimpleNodeAPI.java Fri Aug 27 15:26:20 2010 +0900
@@ -0,0 +1,98 @@
+package treecms.proto.simple;
+
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import treecms.proto.api.NodeAPI;
+
+class SimpleNodeAPI implements NodeAPI
+{
+ private LinkedList m_childs;
+
+ private String m_class;
+ private String m_title;
+
+ public SimpleNodeAPI()
+ {
+ m_childs = new LinkedList();
+ m_class = "";
+ m_title = "";
+ }
+
+ @Override
+ public List getChildList()
+ {
+ // TODO Auto-generated method stub
+ return m_childs;
+ }
+
+ @Override
+ public boolean isChild(NodeAPI _child) {
+ // TODO Auto-generated method stub
+ return m_childs.contains(_child);
+ }
+
+ @Override
+ public NodeAPI addChild() {
+ // TODO Auto-generated method stub
+ NodeAPI newChild = new SimpleNodeAPI();
+ m_childs.add(newChild);
+ return newChild;
+ }
+
+ @Override
+ public void removeChild(NodeAPI _child) {
+ // TODO Auto-generated method stub
+ m_childs.remove(_child);
+ }
+
+ @Override
+ public void up(NodeAPI _child) {
+ // TODO Auto-generated method stub
+ int curPos = m_childs.indexOf(_child);
+ if(curPos - 1 > 0){
+ m_childs.add(curPos - 1,m_childs.remove(curPos));
+ }
+ }
+
+ @Override
+ public void down(NodeAPI _child) {
+ // TODO Auto-generated method stub
+ int curPos = m_childs.indexOf(_child);
+ if(curPos + 1 < m_childs.size()){
+ m_childs.add(curPos + 1,m_childs.remove(curPos));
+ }
+ }
+
+ @Override
+ public void setClassName(String _class) {
+ // TODO Auto-generated method stub
+ this.m_class = _class;
+ }
+
+ @Override
+ public void setTitle(String _title) {
+ // TODO Auto-generated method stub
+ this.m_title = _title;
+ }
+
+ @Override
+ public String getClassName() {
+ // TODO Auto-generated method stub
+ return this.m_class;
+ }
+
+ @Override
+ public String getTitle() {
+ // TODO Auto-generated method stub
+ return this.m_title;
+ }
+
+ @Override
+ public Iterator iterator() {
+ // TODO Auto-generated method stub
+ return m_childs.iterator();
+ }
+
+}
diff -r 000000000000 -r f815c7c1fb38 src/treecms/proto/simple/SimpleNodeAPITreeBuilder.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/treecms/proto/simple/SimpleNodeAPITreeBuilder.java Fri Aug 27 15:26:20 2010 +0900
@@ -0,0 +1,15 @@
+package treecms.proto.simple;
+
+import treecms.proto.api.*;
+
+public class SimpleNodeAPITreeBuilder implements NodeAPITreeBuilder
+{
+ public SimpleNodeAPITreeBuilder()
+ {
+ return;
+ }
+ public NodeAPI getContents()
+ {
+ return new SimpleNodeAPI();
+ }
+}
diff -r 000000000000 -r f815c7c1fb38 src/treecms/proto/test/PreOrderTreeWalker.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/treecms/proto/test/PreOrderTreeWalker.java Fri Aug 27 15:26:20 2010 +0900
@@ -0,0 +1,75 @@
+package treecms.proto.test;
+
+import java.util.Iterator;
+import java.util.LinkedList;
+
+import treecms.proto.api.NodeAPI;
+
+public class PreOrderTreeWalker implements Iterator , Iterable
+{
+ private NodeAPI m_root;
+ private LinkedList> m_childs;
+
+ private int m_pos;
+ public PreOrderTreeWalker(NodeAPI _root)
+ {
+ m_root = _root;
+ m_childs = new LinkedList>();
+
+ for(NodeAPI child : _root.getChildList()){
+ m_childs.add((new PreOrderTreeWalker(child)).iterator());
+ }
+
+ m_pos = -2;
+ }
+
+ @Override
+ public Iterator iterator() {
+ // TODO Auto-generated method stub
+ return this;
+ }
+
+ @Override
+ public boolean hasNext() {
+ // TODO Auto-generated method stub
+ int next = m_pos + 1;
+
+ if(next < 0){
+ return true;
+ }
+
+ for(;next < m_childs.size();next ++){
+ System.out.println(m_pos);
+ if(m_childs.get(next).hasNext()){
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ @Override
+ public NodeAPI next() {
+ // TODO Auto-generated method stub
+ m_pos++;
+
+ if(m_pos < 0){
+ return this.m_root;
+ }
+
+ for(;m_pos < m_childs.size();m_pos ++){
+ NodeAPI nextNode = m_childs.get(m_pos).next();
+ if(nextNode != null){
+ return nextNode;
+ }
+ }
+
+ return null;
+ }
+
+ @Override
+ public void remove() {
+ // TODO Auto-generated method stub
+
+ }
+}
diff -r 000000000000 -r f815c7c1fb38 src/treecms/proto/test/Test1.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/treecms/proto/test/Test1.java Fri Aug 27 15:26:20 2010 +0900
@@ -0,0 +1,44 @@
+package treecms.proto.test;
+
+import java.util.Iterator;
+
+import treecms.proto.api.*;
+import treecms.proto.simple.*;
+
+public class Test1
+{
+ public static void main(String _arg[])
+ {
+ NodeAPI root = (new SimpleNodeAPITreeBuilder()).getContents();
+ root.setTitle("root");
+
+ NodeAPI child1 = root.addChild();
+ child1.setTitle("child1");
+ NodeAPI child2 = root.addChild();
+ child2.setTitle("child2");
+
+ NodeAPI child11 = child1.addChild();
+ child11.setTitle("child11");
+ NodeAPI child12 = child1.addChild();
+ child12.setTitle("child12");
+ NodeAPI child13 = child1.addChild();
+ child13.setTitle("child13");
+
+ NodeAPI child21 = child2.addChild();
+ child21.setTitle("child21");
+
+ NodeAPI child211 = child21.addChild();
+ child211.setTitle("child211");
+ NodeAPI child212 = child21.addChild();
+ child212.setTitle("child212");
+
+
+ PreOrderTreeWalker walker = new PreOrderTreeWalker(root);
+ Iterator itr = walker.iterator();
+ while(itr.hasNext()){
+ NodeAPI node = itr.next();
+ System.out.println(node.getTitle());
+ }
+
+ }
+}
diff -r 000000000000 -r f815c7c1fb38 src/treecms/proto/test/Test2.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/treecms/proto/test/Test2.java Fri Aug 27 15:26:20 2010 +0900
@@ -0,0 +1,7 @@
+package treecms.proto.test;
+
+import junit.framework.TestCase;
+
+public class Test2 extends TestCase {
+
+}