Thanks for the quick reply Matej.
Well in my implementation I am using a CheckBoxTree example discussed in the
forum already
(http://www.nabble.com/Checkbox-tree-component-td13433102.html#a13439520).
and I am adding all the components in the addcomponents() method in the
CheckBoxIconPanel class. However since the HTML mark up that I can have will
always remain the same so I am not able to use different component for
different nodes. The code is shown below:
////Java Code for the CheckBoxIconPanel class
protected void addComponents(final IModel model, final BaseTree tree) {
final LimitViewerCheckBoxTree cbTree =
(LimitViewerCheckBoxTree) tree;
LimitViewerCheckBoxTree.ICheckCallback callback = new
LimitViewerCheckBoxTree.ICheckCallback() {
private static final long serialVersionUID = 1L;
public void onUpdate(AjaxRequestTarget target) {
onNodeCheckUpdated((TreeNode)
model.getObject(), cbTree, target);
}
};
IModel dataModel = cbTree.newCheckBoxModel((TreeNode)
model.getObject());
int level = (Integer)
((DefaultMutableTreeNode)model.getObject()).getLevel();
if(level == 1){
MarkupContainer cb = null;
cb = cbTree.newCheckBox("checkbox", dataModel,
callback);
((CheckBox) cb).setVisible(false);
add(cb);
Component component = newContentComponent("content",
tree, model);
add(component);
limitPanel = new LimitPanel("limitPanel");
add(limitPanel);
limitPanel.setVisible(false);
InstrumentLimitViewerPanel instrumentLimitViewerPanel =
new
InstrumentLimitViewerPanel("instrumentLimitViewerPanel", limitInputPanel
,limitViewerForm);
add(instrumentLimitViewerPanel);
instrumentLimitViewerPanel.setVisible(false);
}
if(level == 2){
MarkupContainer cb = null;
cb = cbTree.newCheckBox("checkbox", dataModel,
callback);
add(cb);
Component component = newContentComponent("content",
tree, model);
add(component);
limitPanel = new LimitPanel("limitPanel");
add(limitPanel);
InstrumentLimitViewerPanel instrumentLimitViewerPanel =
new
InstrumentLimitViewerPanel("instrumentLimitViewerPanel",limitInputPanel,
limitViewerForm);
add(instrumentLimitViewerPanel);
instrumentLimitViewerPanel.setVisible(false);
}
if(level == 3){
MarkupContainer cb = null;
cb = cbTree.newCheckBox("checkbox", dataModel,
callback);
((CheckBox) cb).setVisible(false);
add(cb);
Component component = newContentComponent("content",
tree, model);
add(component);
component.setVisible(false);
limitPanel = new LimitPanel("limitPanel");
add(limitPanel);
limitPanel.setVisible(false);
InstrumentLimitViewerPanel
instrumentLimitViewerPanel = new
InstrumentLimitViewerPanel("instrumentLimitViewerPanel",limitInputPanel,
limitViewerForm);
add(instrumentLimitViewerPanel);
} catch (Exception e) {
e.printStackTrace();
}
}
}
// HTML code
<wicket:panel>
<div>
<table class="icon-panel">
<tr>
<td class="content"><input type="checkbox"
wicket:id="checkbox"/></td>
<td></td>
<td><div style="margin:10px 0 0 30px" wicket:id="limitPanel">
</div></td>
</tr>
</table>
</div>
<div wicket:id="instrumentLimitViewerPanel"></div>
</wicket:panel>
So I was wondering if it is possible to add different node components if I
want to use the CheckBoxIconPanel or id what you suggested the only way to
get this working...
Thanks in advance,
vishy
Matej Knopp-2 wrote:
>
> You have to use different panel for each Tree item (depending on the
> tree node for that item). If you use BaseTree, implement the
> #newNodeComponent method accordingly. You can look at LinkTree or
> LabelTree for an example of how the implementation can look like.
>
> Or you can use LinkTree, override newNodeComponent like this
>
> @Override
> protected Component newNodeComponent(String id, IModel model)
> {
> return new LinkIconPanel(id, model, LinkTree.this)
> {
> private static final long serialVersionUID = 1L;
>
> @Override
> protected void onNodeLinkClicked(Object node, BaseTree
> tree,
> AjaxRequestTarget target)
> {
> super.onNodeLinkClicked(node, tree, target);
> LinkTree.this.onNodeLinkClicked(node, tree,
> target);
> }
>
> @Override
> protected Component newContentComponent(String
> componentId,
> BaseTree tree, IModel model)
> {
> /* HERE CREATE YOUR OWN PANEL DEPENDING ON THE
> TREE NODE. YOU CAN GET
> THE TREE NODE FOR THIS ROW FROM
> model.getObject() */
> }
> };
> }
>
>
> -Matej
>
> On Fri, Aug 1, 2008 at 1:29 AM, vishy_sb <[EMAIL PROTECTED]>
> wrote:
>>
>> http://www.nabble.com/file/p18765641/treeview.jpeg
>>
>> Hi All,
>>
>> As shown in the Image I have a checkbox tree which has nodes that have
>> different components. Each node of the tree has a checkbox, label, a
>> panel
>> which has the 3 TextAreas and another panel which has a listview. In
>> order
>> to get the tree to look like what is shown in the image, I had to set the
>> visibility of these components across different levels of the Tree which
>> means that all these components are present at all the nodes but they are
>> not visible everywhere. Also on top of the tree is another panel(Top
>> Panel)
>> from where values are submitted on pressing the apply button. Now what I
>> wanted to achieve in this interface was to apply the limits entered in
>> the
>> Top Panel to the nodes which are checked (i.e. to the ListView under the
>> checked node). This seems to be a real complex interface to me but there
>> has
>> to be a way to get this to work. The main problem that I am having is
>> that
>> how do I get to the ListView (or ListViews) to which I am trying to make
>> the
>> changes. I might be sounding a little confusing here but I am ready to
>> explain the whole interface in even more detail.
>>
>> Please let me know if anyone has any ideas or even a suggestion to
>> implement
>> this.
>>
>> Also is there a way to add different components to the different nodes in
>> the same Tree??????
>>
>>
>> Kindly let me.
>>
>> Thanks in advance,
>> vishy
>> --
>> View this message in context:
>> http://www.nabble.com/Dynamically-Making-changes-to-Tree-Node-tp18765641p18765641.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]
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
--
View this message in context:
http://www.nabble.com/Dynamically-Making-changes-to-Tree-Node-tp18765641p18766409.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]