Re: Support for optgroup ?

2014-06-05 Thread Thies Edeling
thanks!


On Thu, Jun 5, 2014 at 1:48 AM, Martin Makundi 
martin.maku...@koodaripalvelut.com wrote:

 Look at:


 http://mail-archives.apache.org/mod_mbox/wicket-users/200912.mbox/%3c303141550912040641r1e00841dudaacfefda9497...@mail.gmail.com%3E


 2014-06-05 1:41 GMT+03:00 Thies Edeling tedel...@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
 



Re: Support for optgroup ?

2014-06-05 Thread Martin Makundi
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) {
  IStyledChoiceRendererT styledChoiceRenderer =
(IStyledChoiceRendererT) 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);
  IStyledChoiceRendererT styledChoiceRenderer =
(IStyledChoiceRendererT) 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 tedel...@gmail.com:

 thanks!


 On Thu, Jun 5, 2014 at 1:48 AM, Martin Makundi 
 martin.maku...@koodaripalvelut.com wrote:

  Look at:
 
 
 
 http://mail-archives.apache.org/mod_mbox/wicket-users/200912.mbox/%3c303141550912040641r1e00841dudaacfefda9497...@mail.gmail.com%3E
 
 
  2014-06-05 1:41 GMT+03:00 Thies Edeling tedel...@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
  
 



Re: Support for optgroup ?

2014-06-05 Thread Martin Makundi
Ah.. and token was:
  private static final String TOKEN =  value=\\;



2014-06-05 9:42 GMT+03:00 Martin Makundi martin.maku...@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) {
   IStyledChoiceRendererT styledChoiceRenderer =
 (IStyledChoiceRendererT) 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);
   IStyledChoiceRendererT styledChoiceRenderer =
 (IStyledChoiceRendererT) 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 tedel...@gmail.com:

 thanks!


 On Thu, Jun 5, 2014 at 1:48 AM, Martin Makundi 
 martin.maku...@koodaripalvelut.com wrote:

  Look at:
 
 
 
 http://mail-archives.apache.org/mod_mbox/wicket-users/200912.mbox/%3c303141550912040641r1e00841dudaacfefda9497...@mail.gmail.com%3E
 
 
  2014-06-05 1:41 GMT+03:00 Thies Edeling tedel...@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
  
 





Re: Support for optgroup ?

2014-06-05 Thread Thies Edeling
I just noticed, thanks for the update !


On Thu, Jun 5, 2014 at 8:45 AM, Martin Makundi 
martin.maku...@koodaripalvelut.com wrote:

 Ah.. and token was:
   private static final String TOKEN =  value=\\;



 2014-06-05 9:42 GMT+03:00 Martin Makundi 
 martin.maku...@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) {
IStyledChoiceRendererT styledChoiceRenderer =
  (IStyledChoiceRendererT) 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);
IStyledChoiceRendererT styledChoiceRenderer =
  (IStyledChoiceRendererT) 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 tedel...@gmail.com:
 
  thanks!
 
 
  On Thu, Jun 5, 2014 at 1:48 AM, Martin Makundi 
  martin.maku...@koodaripalvelut.com wrote:
 
   Look at:
  
  
  
 
 http://mail-archives.apache.org/mod_mbox/wicket-users/200912.mbox/%3c303141550912040641r1e00841dudaacfefda9497...@mail.gmail.com%3E
  
  
   2014-06-05 1:41 GMT+03:00 Thies Edeling tedel...@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
   
  
 
 
 



Support for optgroup ?

2014-06-04 Thread Thies Edeling
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


Re: Support for optgroup ?

2014-06-04 Thread Martin Makundi
Look at:

http://mail-archives.apache.org/mod_mbox/wicket-users/200912.mbox/%3c303141550912040641r1e00841dudaacfefda9497...@mail.gmail.com%3E


2014-06-05 1:41 GMT+03:00 Thies Edeling tedel...@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