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]

Reply via email to