Hi, Thanks for your reply.
Yes, I found a solution: I created a new "wrapper"-component who does the for-loop stuff. I called it TabGroupView. Within this component I can save the maximize/minimize status of all my TabGroups. This means I moved my @For loop from the Home.html into this component. My DirectLink-Listener is now also in the TabGroupView component so I have full control over all groups. Some example code: Home.html: <span jwcid="@Util:TabGroupView" source="ognl:items"/> TabGroupView.html: <span jwcid="@For" source="ognl:source" index="ognl:index" value="ognl:group"> <span jwcid="@TabGroup" title="ognl:group.title" minimized="ognl:minimized" parameters="ognl:new java.lang.Object[]{index, minimizedMap}" listener="ognl:listeners.linkActionToggleGroup"/> </span> TabGroupView.java: public void linkActionToggleGroup(IRequestCycle cycle) { Object[] params = cycle.getListenerParameters(); int index = (Integer) params[0]; Map minMap = (Map) params[1]; Boolean oldValue = (Boolean) minMap.get(index); minMap.put(index, !oldValue); setMinimizedMap(minMap); } public boolean isMinimized() { if (getMinimizedMap().containsKey(getIndex())) { return getMinimizedMap().get(getIndex()); } else { getMinimizedMap().put(getIndex(), false); return false; } } TabGroup.html: <a jwcid="@DirectLink" parameters="ognl:parameters" listener="ognl:listener"> <span jwcid="@Insert" value="ognl:title"/> </a> TabGroup.java: @Parameter(name="parameters", required=false) public abstract Object getParameters(); @Parameter(name="listener", required=false) public abstract IActionListener getListener(); Not sure if this is the preferred way, but it works. :) Greetings Reto On 8/7/06, Karthik N <[EMAIL PROTECTED]> wrote:
any luck with this issue? After some discussions and experimentation with a colleague of mine, it appears that there is only one component. that's the nature of the For loop. We did this in the listener on the page: Map comps = this.getComponents(); Set keyMap = comps.keySet(); for (Iterator iter = keyMap.iterator(); iter.hasNext();) { System.out.println( comps.get(iter.next())); } Hence, if a For loop iterates over 'n' elements and writes out a @Util:TabGroup, there is just one component @Util:TabGroup. I suppose what it means is that for you to iterate over your list and control the maximize/minimize stuff, you'll have to have this as an attribute in the For loop's List, and accordingly use some client side scripting to handle maximize/minimize. Unless there is an attribute of the For loop that forces generation of one @Util:TabGroup for every iteration. If there is some such parameter, I am not aware of it .... Good luck. On 8/4/06, Reto Hotz <[EMAIL PROTECTED]> wrote: > > The TabGroup has a @DirectLink to change the state: minimized/maximized. > > Home.html : > <span jwcid="@For" source="ognl:items" value="ognl:item"> > <span jwcid="@Util:TabGroup" title="ognl:item.name"/> > </span> > > > TabGroup.html: > <span jwcid="@If" condition="ognl:!minimized"> > <a jwcid="@DirectLink" parameters="ognl:minimized" > listener="ognl:listeners.lnkActionToggleGroup "> > <span jwcid="@Insert" value="ognl:title"/> > </a> > </span> > > TabGroup.jwc: > <component-specification class="TabGroup" allow-body="yes" > allow-informal-parameters="no"> > <parameter name="title" required="yes" cache="false"/> > </component-specification> > > TabGroup.java: > public abstract class TabGroup extends BaseComponent implements > PageAttachListener, IFormComponent { > > public abstract String getTitle(); > > @Persist("client") > public abstract boolean getMinimized(); > > public void lnkActionToggleGroup(boolean minimized) { > setMinimized(!minimized); > } > ... > } > > > For example if I create 2 TabGroups *without* the @For loop they are > rendered like this: > $TabGroup > $TabGroup_0 > > But if I create them *with* the @For loop, I get the component twice: > $TabGroup > $TabGroup > > --> both are the same component and thus if I click on the DirectLink > of the first component, the second gets minimized too. > > Greetings > Reto > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Thanks, Karthik
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]