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]