click-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bob Schellink (JIRA)" <>
Subject [jira] Closed: (CLK-725) ActivePanel value in TabbedPanel always set to first panel
Date Wed, 03 Nov 2010 09:04:28 GMT


Bob Schellink closed CLK-725.

    Resolution: Not A Problem

Hi Kyle,

This is the expected behavior. Click uses stateless, loosely coupled architecture. Form doesn't
know about TabbedPanel so won't generate Hidden Fields if it is added to a Panel.

TabbedPanel does however understand the request parameter "tabPanelIndex"[1], an integer,
which indicates the active panel index.

. So you can add a HiddenField named "tabPanelIndex" to your Form.

Last night I've checked in some Stateful TabbedPanel helper methods that will save and restore
the active Panel index in the session, which.




> ActivePanel value in TabbedPanel always set to first panel
> ----------------------------------------------------------
>                 Key: CLK-725
>                 URL:
>             Project: Click
>          Issue Type: Bug
>          Components: extras
>    Affects Versions: 2.2.0
>            Reporter: Kyle Schlosser
> I have created a Page which contains a TabbedPanel. There are two tabs, each which is
another Panel instance called Panel1 and Panel2. Panel1 and Panel2 both contain a Form. The
resulting page contains two tabs, each tab with its own form. The forms have different names
to assure they are unique when the panels are put together. 
> The first tabbed panel works correctly -- clicking the submit button results in the callback
for that form. However, when I click on the submit for the second tab, the callback is not
invoked. I debugged this issue some, and found that the first tabbed panel is always the "Active
Panel". This is happening because the first panel to be added to the TabbedPanel is made active:

>     public Control insert(Control control, int index) {
>            ....
>             if (getPanels().size() == 1) {
>                 setActivePanel(panel);
>             }
> After adding the 2nd panel, if I make an additional call to setActivePanel(panel2) then
the callback is invoked: 
> 		Panel panel1 = new Panel1("Tab1");
> 		tabbedPanel.add(panel1);
> 		Panel panel2 = new Panel2("Tab2");
> 		tabbedPanel.add(panel2);
> 		tabbedPanel.setActivePanel(panel2);
> I presume that the 2nd panel should be internally made active based upon which form was

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message