rendered paste body/* * HelloWorld.java * * Created on 2007-09-20, 15:07:39 * * To change this template, choose Tools | Templates * and open the template in the editor. */package wicket.examples.helloworld;import net.sf.archimede.model.CredentialsWrapper;import net.sf.archimede.model.DatabaseUtil;import net.sf.archimede.model.collection.Collection;import net.sf.archimede.model.collection.CollectionDao;import org.apache.wicket.ajax.AjaxRequestTarget;import org.apache.wicket.markup.html.WebPage;import org.apache.wicket.markup.html.basic.Label;import org.apache.wicket.markup.html.tree.AbstractTree;import org.apache.wicket.markup.html.tree.BaseTree;import org.apache.wicket.markup.html.tree.DefaultTreeState;import org.apache.wicket.markup.html.tree.LinkTree;import java.util.Collections;import java.util.Iterator;import java.util.List;import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.event.TreeModelEvent;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.tree.DefaultTreeModel;import javax.swing.tree.TreeModel;import javax.swing.tree.TreeNode;import javax.swing.tree.TreePath;/** * Everybody's favorite example! * * @author Jonathan Locke */public class HelloWorld extends WebPage { static CredentialsWrapper cr; static { try { if (cr == null) { CredentialsWrapper cr = new CredentialsWrapper("dd", "dd"); DatabaseUtil.getSingleton().beginTransaction(cr); } } catch (Exception e) { System.out.println("erreur statique"); } } private static BaseTree tree; DefaultMutableTreeNode rootNode; Label label; static TreeModel t; /** * Constructor */ public HelloWorld() { t = createTreeModel(); label = new Label("message", "Hello World!"); add(label); tree = new LinkTree("tree", t) { protected void onNodeLinkClicked(TreeNode node, BaseTree tree, AjaxRequestTarget target) { final TreeNode m_node = node; CustomTreeNode n = (CustomTreeNode) m_node; if (!n.childrenLoaded) { n.loadChildren(); int kids = n.getChildCount(); if (kids < 1) { return; } tree.modelChanged(); getTreeState().expandNode(m_node); System.out.println(m_node.getParent().toString()); AjaxRequestTarget aj = new AjaxRequestTarget(); updateTree(aj); } } }; add(tree); } protected AbstractTree getTree() { return tree; } protected TreeModel createTreeModel() { TreeModel model = null; try { CollectionDao colDao = CollectionDao.createInstance(); Collection rootCollection = colDao.getRootCollection(); final List li = rootCollection.getCollections(); rootNode = new CustomTreeNode(new ModelBean(rootCollection)); for (Iterator i = li.iterator(); i.hasNext();) { Object o = i.next(); ModelBean m = new ModelBean(o); DefaultMutableTreeNode child = new CustomTreeNode(m); rootNode.add(child); } model = new CustomTreeModel(rootNode); } catch (Exception ex) { Logger.getLogger(HelloWorld.class.getName()) .log(Level.SEVERE, null, ex); } return model; } private class CustomTreeModel extends DefaultTreeModel { public CustomTreeModel(TreeNode root) { super(root); // TODO Auto-generated constructor stub } public DefaultMutableTreeNode insertSingleNode(DefaultMutableTreeNode parent, Object o) { DefaultMutableTreeNode child = new CustomTreeNode(new ModelBean(o)); parent.add(child); fireTreeNodesInserted(this, parent.getPath(), new int[]{parent.getIndex(child)}, new Object[]{child}); return child; } } public static void add(DefaultMutableTreeNode parent, List sub) { Object parentObj = parent.getUserObject(); for (Iterator i = sub.iterator(); i.hasNext();) { Object o = i.next(); CustomTreeModel ctm = (CustomTreeModel)t; ctm.insertSingleNode(parent, o); } }}