package sample.yuitree; import jaxcent.*; import jaxcent.yui.*; import java.util.*; import java.text.*; public class YuiTreeSample extends jaxcent.yui.Tree { // Reference to the HTML on the page. HtmlPara nextStepDesc = new HtmlPara( this, "nextStepDesc" ); HtmlPara msgs = new HtmlPara( this, "msgs" ); HtmlButton nextStepButton = new HtmlButton( this, "nextStep" ) { protected void onClick( Map data ) { try { onNextStep(); } catch (Exception ex) { ex.printStackTrace(); } } }; int currentStep = 1; // Ctor public YuiTreeSample() throws Jaxception { // The tree must be initialized prior to use. // The argument to "init" is the ID of the DIV // where the tree is to be created. init( "yuitree" ); // Wait for "Next button" } void onNextStep() throws Jaxception { msgs.setInnerText( "" ); switch ( currentStep++ ) { case 1: nextStepDesc.setInnerHTML( step1NextDesc ); step1(); break; case 2: nextStepDesc.setInnerHTML( step2NextDesc ); step2(); break; case 3: nextStepDesc.setInnerHTML( step3NextDesc ); step3(); break; case 4: nextStepDesc.setInnerHTML( step4NextDesc ); step4(); break; case 5: nextStepDesc.setInnerHTML( step5NextDesc ); step5(); break; case 6: nextStepDesc.setInnerHTML( step6NextDesc ); step6(); break; case 7: nextStepDesc.setInnerHTML( step7NextDesc ); step7(); break; case 8: nextStepDesc.setInnerHTML( step8NextDesc ); step8(); break; case 9: nextStepDesc.setInnerHTML( step9NextDesc ); step9(); break; } } /// Step 1: Add two tree nodes TreeNode node1; TreeNode node2; String step1NextDesc = "Next, we will now add some child nodes by calling the Java method Node.addTextNode"; void step1() throws Jaxception { node1 = addTextNode( "Node 1" ); node2 = addTextNode( "Node 2" ); draw(); } /// Step 2: Add some child nodes TreeNode node11; TreeNode node12; TreeNode node121; TreeNode node21; TreeNode node22; TreeNode node23; void step2() throws Jaxception { node11 = node1.addTextNode( "Node 1.1" ); node12 = node1.addTextNode( "Node 1.2" ); node121 = node12.addTextNode( "Node 1.2.1" ); node21 = node2.addTextNode( "Node 2.1" ); node22 = node2.addTextNode( "Node 2.2" ); node23 = node2.addTextNode( "Node 2.3" ); } String step2NextDesc = "Next we will collapse the tree using the Java method Tree.collapseAll"; /// Step 3: Collapse the tree void step3() throws Jaxception { collapseAll(); } String step3NextDesc = "Next we will expand the tree using Tree.expandAll"; /// Step 4: Expand the tree void step4() throws Jaxception { expandAll(); } String step4NextDesc = "Next we collapse node1 by calling node1.collapse()"; /// Step 5: Collapse node1 void step5() throws Jaxception { node1.collapse(); } String step5NextDesc = "Next: expand node1 by calling node1.expand()"; /// Step 6: Expand node1 void step6() throws Jaxception { node1.expand(); } String step6NextDesc = "Next: Add an editable text node under node1 by calling node1.addEditableTextNode()"; /// Step 7: Add editable text under node 1 TreeNode editableTextNode; void step7() throws Jaxception { editableTextNode = node1.addEditableTextNode( "Editable Node" ); } String step7NextDesc = "You can edit the new text node by clicking on it. Try it!
 
Next: Add an editable date node under node2 by calling node2.addEditableDateNode()"; /// Step 8: Add editable date under node 2 TreeNode editableDateNode; void step8() throws Jaxception { editableDateNode = node2.addEditableDateNode( new java.util.Date()); } String step8NextDesc = "You can edit the new date node by clicking on it. Go ahead and try it!
 
Next: Delete entire node1 by calling node1.delete()"; /// Step 9: Delete node1 void step9() throws Jaxception { node1.delete(); nextStepButton.hide(); } String step9NextDesc = "This showed some capabilities of the Jaxcent Java API for YUI Trees. Jaxcent can easily encapsulate JavaScript APIs from server-side Java.
 
Refresh the page to see this demo again."; // Click handler. In this demo, we just post a message about which node was clicked. protected void onClick( TreeNode node ) { try { msgs.setInnerHTML( "You clicked on node \"" + node.getNodeLabel() + "\"" ); } catch (Jaxception ex) { ex.printStackTrace(); } } }