wicket-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Makundi <martin.maku...@koodaripalvelut.com>
Subject Re: Support for optgroup ?
Date Thu, 05 Jun 2014 06:45:34 GMT
Ah.. and token was:
  private static final String TOKEN = " value=\"\"";



2014-06-05 9:42 GMT+03:00 Martin Makundi <martin.makundi@koodaripalvelut.com
>:

> The optgroup code might be buggy, here is a fresh one:
>
>   private String previouslyAppendedOptGroupLabel;
>   private int choices;
>
>   /**
>    * @see
> org.apache.wicket.markup.html.form.AbstractChoice#onComponentTagBody(org.apache.wicket.markup.MarkupStream,
> org.apache.wicket.markup.ComponentTag)
>    */
>   @Override
>   protected void onComponentTagBody(MarkupStream markupStream,
>       ComponentTag openTag) {
>     previouslyAppendedOptGroupLabel = null;
>     choices = getChoices().size();
>     super.onComponentTagBody(markupStream, openTag);
>   }
>
>
> /**
>    * @see
> org.apache.wicket.markup.html.form.AbstractChoice#appendOptionHtml(org.apache.wicket.util.string.AppendingStringBuffer,
> java.lang.Object, int, java.lang.String)
>    */
>   @Override
>   protected void appendOptionHtml(AppendingStringBuffer buffer, T choice,
>       int index, String selected) {
>     AppendingStringBuffer tmp = new AppendingStringBuffer(50);
>     super.appendOptionHtml(tmp, choice, index, selected);
>
>     if (getChoiceRenderer() instanceof IStyledChoiceRenderer) {
>       IStyledChoiceRenderer<T> styledChoiceRenderer =
> (IStyledChoiceRenderer<T>) getChoiceRenderer();
>
>       String currentOptGroupLabel =
> styledChoiceRenderer.getOptGroupLabel(choice);
>
>       if (!Utils.equalsOrNull(currentOptGroupLabel,
> previouslyAppendedOptGroupLabel)) {
>         // OptGroup changed
>         if (previouslyAppendedOptGroupLabel != null) {
>           endOptGroup(buffer);
>         }
>
>         if (currentOptGroupLabel != null) {
>           // OptGroup started
>           int start = tmp.indexOf("<option");
>           StringBuilder label = new
> StringBuilder(currentOptGroupLabel.length() + 19);
>           label.append("<optgroup
> label=\"").append(currentOptGroupLabel).append("\">");
>           tmp.insert(start, label);
>         }
>       }
>
>       if ((currentOptGroupLabel != null) && (index == (choices-1))) {
>         // Last option group must end too
>         endOptGroup(tmp);
>       }
>
>       {
>         String cssClass =
> styledChoiceRenderer.getOptionCssClassName(choice);
>         if (cssClass != null) {
>           int start = tmp.indexOf("<option");
>           tmp.insert(start + 7, getClass(cssClass));
>         }
>       }
>
>       previouslyAppendedOptGroupLabel = currentOptGroupLabel;
>     }
>
>     buffer.append(tmp);
>   }
>
>   /**
>    * @param cssClass
>    * @return StringBuilder
>    */
>   private StringBuilder getClass(String cssClass) {
>     return new StringBuilder(" class=\"").append(cssClass).append("\"");
>   }
>
>   /**
>    * @see
> org.apache.wicket.markup.html.form.AbstractSingleSelectChoice#getDefaultChoice(java.lang.Object)
>    */
>   @Override
>   protected CharSequence getDefaultChoice(Object selected) {
>     CharSequence charSequence = super.getDefaultChoice(selected);
>
>     if (charSequence.toString().contains(TOKEN) && (getChoiceRenderer()
> instanceof IStyledChoiceRenderer)) {
>       AppendingStringBuffer buffer = new
> AppendingStringBuffer(charSequence);
>       IStyledChoiceRenderer<T> styledChoiceRenderer =
> (IStyledChoiceRenderer<T>) getChoiceRenderer();
>       String cssClass = styledChoiceRenderer.getOptionCssClassName(null);
>       if (!Utils.isEmpty(cssClass)) {
>         buffer.insert(buffer.indexOf(TOKEN), getClass(cssClass));
>         return buffer;
>       }
>     }
>
>     return charSequence;
>   }
>
>   /**
>    * @param tmp
>    */
>   private void endOptGroup(AppendingStringBuffer tmp) {
>     // OptGroup ended
>     int start = tmp.lastIndexOf("</option>");
>     tmp.insert(start + 9, "</optgroup>");
>   }
>
>
> 2014-06-05 9:37 GMT+03:00 Thies Edeling <tedeling@gmail.com>:
>
> thanks!
>>
>>
>> On Thu, Jun 5, 2014 at 1:48 AM, Martin Makundi <
>> martin.makundi@koodaripalvelut.com> wrote:
>>
>> > Look at:
>> >
>> >
>> >
>> http://mail-archives.apache.org/mod_mbox/wicket-users/200912.mbox/%3C303141550912040641r1e00841dudaacfefda94970b9@mail.gmail.com%3E
>> >
>> >
>> > 2014-06-05 1:41 GMT+03:00 Thies Edeling <tedeling@gmail.com>:
>> >
>> > > Is there any support for optgroup's in Wicket? I can only find some
>> > > examples using ListView's and other hacky solutions so I'm guessing
>> there
>> > > isn't :) Thanks !
>> > >
>> > > gr
>> > > Thies
>> > >
>> >
>>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message