Thanks for your help,

firstly sorry if i brought you to the wrong way - i use a treetable, not a
tree. My effects on code below is that the nodes are diplayed only in one
row. The second row is not visible.

My html:
<wicket:panel>
  <form wicket:id="treeform">
    <div class="tree" wicket:id="treeTable"></div>
  </form>
</wicket:panel>

My data code
public String getName() {
  StringBuilder sb= new StringBuilder();
  sb.append("EZ: ").append(getPrice(getRoomRate().getPrice())).append(" €");
  sb.append(" DZ: ").append(getPrice(getRoomRate().getPrice2())).append("
€\n"); <-- here the newline!!
  sb.append("  (").append(getDate(getRoomRate().getFromDate()));
  sb.append(" - ");
  sb.append(getDate(getRoomRate().getToDate())).append(")");
  return sb.toString();
}


Here is my code:

    TreeTable tree = new TreeTable("treeTable", treeModel, columns) {

      /**
       * Represents a content of a cell in TreeColumn (column containing the
actual tree).
       * This has been copied to switch the label to a multiline instance.
       * @author Matej Knopp
       * @author r.dieckmann
       */
      class MyTreeFragment extends Fragment {

        /**
         * Constructor.
         * @param id the wicket:id of component
         * @param node current 
         * @param level
         * @param renderNodeCallback
         *            The call back for rendering nodes
         */
        @SuppressWarnings("deprecation")
        public MyTreeFragment(String id, final TreeNode node, int level,
final IRenderNodeCallback renderNodeCallback) {
          super(id, "fragment");

          add(newIndentation(this, "indent", node, level));
          add(newJunctionLink(this, "link", "image", node));

          MarkupContainer nodeLink = newNodeLink(this, "nodeLink", node);
          nodeLink.add(newNodeIcon(nodeLink, "icon", node));
          nodeLink.add(new MultiLineLabel("label", new
AbstractReadOnlyModel() {
            /**
             * @see
org.apache.wicket.model.AbstractReadOnlyModel#getObject()
             */
            public Object getObject() {
              return renderNodeCallback.renderNode(node);
            }
          }));
          add(nodeLink);
        }
      }

      /**
       * @see
org.apache.wicket.extensions.markup.html.tree.table.TreeTable#newTreePanel(org.apache.wicket.MarkupContainer,
java.lang.String, javax.swing.tree.TreeNode, int,
org.apache.wicket.extensions.markup.html.tree.table.TreeTable.IRenderNodeCallback)
       */
      @Override
      protected Component newTreePanel(MarkupContainer pParent, String pId,
TreeNode pNode, int pLevel, IRenderNodeCallback pRenderNodeCallback) {
        return new MyTreeFragment(pId, pNode, pLevel, pRenderNodeCallback);
      }

      /**
       * @see
org.apache.wicket.extensions.markup.html.tree.DefaultAbstractTree#newNodeLink(org.apache.wicket.MarkupContainer,
java.lang.String, javax.swing.tree.TreeNode)
       */
      protected MarkupContainer newNodeLink(MarkupContainer pParent, String
pId, final TreeNode pNode) {
        MarkupContainer m = newLink(pParent, pId, new ILinkCallback() {

          /**
           * @see
org.apache.wicket.extensions.markup.html.tree.DefaultAbstractTree.ILinkCallback#onClick(org.apache.wicket.ajax.AjaxRequestTarget)
           */
          public void onClick(AjaxRequestTarget target) {
            if (!getTreeState().isNodeSelected(pNode)) {
              getTreeState().selectNode(pNode, true);
              onNodeLinkClicked(target, pNode);
              updateTree(target);
            }
          }
        });
        DefaultMutableTreeNode t = (DefaultMutableTreeNode) pNode;
        if (t.getUserObject() instanceof TreeModelCategoryBean) {
          TreeModelCategoryBean c = (TreeModelCategoryBean)
t.getUserObject();
          ICategoryTO categoryTO = c.getCategory();
          m.setEnabled(categoryTO != null && categoryTO.isAvailable());
        }
        return m;
      }

      /**
       * @see
org.apache.wicket.extensions.markup.html.tree.DefaultAbstractTree#onNodeLinkClicked(org.apache.wicket.ajax.AjaxRequestTarget,
javax.swing.tree.TreeNode)
       */
      protected void onNodeLinkClicked(AjaxRequestTarget pTarget, TreeNode
pNode) {
        super.onNodeLinkClicked(pTarget, pNode);
        DefaultMutableTreeNode dnode = (DefaultMutableTreeNode) pNode;
        ITreeModelBean current = (ITreeModelBean) dnode.getUserObject();
        if (current instanceof TreeModelCategoryBean) {
          refreshNodes(pTarget, pNode);
        } else if (current instanceof TreeModelPackageBean) {
          refreshNodes(pTarget, dnode.getParent());
        }
      }

      private void refreshNodes(AjaxRequestTarget pTarget, TreeNode
pCategoryNode) {
        DefaultMutableTreeNode dnode = (DefaultMutableTreeNode)
pCategoryNode;
        ITreeModelBean current = (ITreeModelBean) dnode.getUserObject();
        if (current instanceof TreeModelCategoryBean) {
          TreeModelCategoryBean c = (TreeModelCategoryBean) current;
          getTreeState().expandNode(pCategoryNode);
          TreeNode firstChild = dnode.getFirstChild();
          selectAllRoomRates(this, pCategoryNode);
          if (getTreeState().isNodeSelected(firstChild)) {
            try {
              onNodeChanged(pTarget, c.getCategory());
            } catch (Exception e) {
              ServiceOfferingCategoryPanel.this.handleException(e, pTarget);
            }
          }
        }
      }
    };

Cheers
Per
-- 
View this message in context: 
http://www.nabble.com/Can-i-add-multiple-lines-to-a-node-link-in-tree--tp15617892p15733117.html
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to