lol

-igor

On Fri, Dec 4, 2009 at 6:43 AM, nino martinez wael
<[email protected]> wrote:
> Ahh, me too :/ So anyone able feel free to put this in minis.
>
> 2009/12/4 Martin Makundi <[email protected]>
>
>> Busy... sorry. Feel free to put it.
>>
>> 2009/12/4 nino martinez wael <[email protected]>:
>> > Martin, why not put something like this in minis?
>> >
>> > 2009/12/4 Martin Makundi <[email protected]>
>> >
>> >> Free4U
>> >>
>> >> public class DropDownChoiceWithStylingOptions<T> extends
>> DropDownChoice<T>
>> >> {
>> >>  private String previouslyAppendedOptGroupLabel;
>> >>  private int choices;
>> >>
>> >>  /**
>> >>   * @param id
>> >>   * @param choices
>> >>   * @param renderer
>> >>   */
>> >>  public DropDownChoiceWithStylingOptions(String id,
>> >>      IModel<? extends List<? extends T>> choices,
>> >>      IChoiceRenderer<? super T> renderer) {
>> >>    super(id, choices, renderer);
>> >>  }
>> >>
>> >>  /**
>> >>   * @param id
>> >>   * @param choices
>> >>   */
>> >>  public DropDownChoiceWithStylingOptions(String id,
>> >>      IModel<? extends List<? extends T>> choices) {
>> >>    super(id, choices);
>> >>  }
>> >>
>> >>  /**
>> >>   * @param id
>> >>   * @param model
>> >>   * @param choices
>> >>   * @param renderer
>> >>   */
>> >>  public DropDownChoiceWithStylingOptions(String id, IModel<T> model,
>> >>      IModel<? extends List<? extends T>> choices,
>> >>      IChoiceRenderer<? super T> renderer) {
>> >>    super(id, model, choices, renderer);
>> >>  }
>> >>
>> >>  /**
>> >>   * @param id
>> >>   * @param model
>> >>   * @param choices
>> >>   */
>> >>  public DropDownChoiceWithStylingOptions(String id, IModel<T> model,
>> >>      IModel<? extends List<? extends T>> choices) {
>> >>    super(id, model, choices);
>> >>  }
>> >>
>> >>  /**
>> >>   * @param id
>> >>   * @param model
>> >>   * @param data
>> >>   * @param renderer
>> >>   */
>> >>  public DropDownChoiceWithStylingOptions(String id, IModel<T> model,
>> >>      List<? extends T> data, IChoiceRenderer<? super T> renderer) {
>> >>    super(id, model, data, renderer);
>> >>  }
>> >>
>> >>  /**
>> >>   * @param id
>> >>   * @param model
>> >>   * @param choices
>> >>   */
>> >>  public DropDownChoiceWithStylingOptions(String id, IModel<T> model,
>> >>      List<? extends T> choices) {
>> >>    super(id, model, choices);
>> >>  }
>> >>
>> >>  /**
>> >>   * @param id
>> >>   * @param data
>> >>   * @param renderer
>> >>   */
>> >>  public DropDownChoiceWithStylingOptions(String id, List<? extends T>
>> data,
>> >>      IChoiceRenderer<? super T> renderer) {
>> >>    super(id, data, renderer);
>> >>  }
>> >>
>> >>  /**
>> >>   * @param id
>> >>   * @param choices
>> >>   */
>> >>  public DropDownChoiceWithStylingOptions(String id, List<? extends T>
>> >> choices) {
>> >>    super(id, choices);
>> >>  }
>> >>
>> >>  /**
>> >>   * @param id
>> >>   */
>> >>  public DropDownChoiceWithStylingOptions(String id) {
>> >>    super(id);
>> >>  }
>> >>
>> >>  /**
>> >>   * @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(tmp);
>> >>        }
>> >>        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, new StringBuilder("
>> >> class=\"").append(cssClass).append("\""));
>> >>        }
>> >>      }
>> >>
>> >>      previouslyAppendedOptGroupLabel = currentOptGroupLabel;
>> >>    }
>> >>
>> >>    buffer.append(tmp);
>> >>  }
>> >>
>> >>  /**
>> >>   * @param tmp
>> >>   */
>> >>  private void endOptGroup(AppendingStringBuffer tmp) {
>> >>    // OptGroup ended
>> >>    int start = tmp.indexOf("</option>");
>> >>    tmp.insert(start + 9, "</optgroup>");
>> >>  }
>> >> }
>> >>
>> >>
>> >>
>> >> public interface IStyledChoiceRenderer<T> extends IChoiceRenderer<T> {
>> >>  /**
>> >>   * @param t
>> >>   * @return String
>> >>   */
>> >>  public String getOptGroupLabel(T t);
>> >>
>> >>  /**
>> >>   * @param t
>> >>   * @return String
>> >>   */
>> >>  public String getOptionCssClassName(T t);
>> >> }
>> >>
>> >> ---------------------------------------------------------------------
>> >> 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]
>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to