homar70 wrote:
> 
> Hi,
> 
> I have trouble of finding out how to make dynamic optgroups and options
> from the select and selectoptions in wicket-extensions. The same issue is
> described in this post
> http://www.nabble.com/Select-and-SelectOptions-td11684707.html#a11695243
> 
> Any ideas?
> 
> -Spratle
> 

Hi

You could use the following classes in wicket-extensions to create an
optgroup class. I have created a static dropdown with optgroups and the
example is given below. A repeater like ListView or RepeatingView can be
used to make it dynamic 


public class OptGroup extends SelectOption
{
        String label;
        
        public OptGroup(String id, String label)
        {
                super(id);
                this.label = label;
        }
        
        protected void onComponentTag(final ComponentTag tag)
        {
                checkComponentTag(tag, "optgroup");
                Select select = (Select)findParent(Select.class);
                if (select == null)
                {
                        throw new WicketRuntimeException(
                                        "OptGroup component [" +
                                                        getPath() +
                                                        "] cannot find its 
parent Select. All OptGroup components must be a
child of or below in the hierarchy of a Select component.");
                }

                
                tag.put("label", label);
        }
}


public class CustomSelectOption extends SelectOption
{
        public CustomSelectOption(String id,String displayValue)
        {
                super(id,new Model(displayValue));
        }
        
        protected void onComponentTagBody(final MarkupStream markupStream, final
ComponentTag openTag)
        {
                replaceComponentTagBody(markupStream, openTag, 
getModelObjectAsString());
        }
}


...................................

OptGroup swedishOptGroup = new OptGroup("optGroup1","Swedish Cars");
                SelectOption option1 = new 
CustomSelectOption("option1","Volvo");
                swedishOptGroup.add(option1);
                SelectOption option2 = new CustomSelectOption("option2","Saab");
                swedishOptGroup.add(option2);
                select.add(swedishOptGroup);
                
                OptGroup germanOptGroup = new OptGroup("optGroup2","German 
Cars");
                SelectOption option3 = new 
CustomSelectOption("option3","Mercedes");
                germanOptGroup.add(option3);
                SelectOption option4 = new CustomSelectOption("option4","Audi");
                germanOptGroup.add(option4);
                select.add(germanOptGroup);

..................................................


<select wicket:id="select">
<optgroup wicket:id="optGroup1">
<option wicket:id="option1"></option>
<option wicket:id="option2"></option>
</optgroup>
<optgroup wicket:id="optGroup2">
<option wicket:id="option3"></option>
<option wicket:id="option4"></option>
</optgroup>
</select>
-- 
View this message in context: 
http://www.nabble.com/Dynamic-Select-and-SelectOptions-tp21076798p21155450.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