\\
JAXFront allows you to overwrite any standard wiget generated by the visualizer factory. Just specify an own plugin class in your XUI for a certain field/block.
\\
!worddavcb6485e9e92f2079ba5fb51986276aae.png|height=33,width=33! As an example see the po.xui in the jaxfront-demo.war. There is a HTML plugin defined for the xpath: /purchaseOrder/shipTo/street:
\\
<component xpath="/purchaseOrder/shipTo/street">
  <style>
<plugIn  class="com.jaxfront.html.plugins.SimpleTypePluginPlainHTMLExampleView">    
    </plugIn>
  </style>
</component>
\\
!worddave6290d961dc319b85aba0adbde617440.png|height=31,width=29! The following simple JAXFront HTML plugin just creates a listbox containing three different street names to choose from. As soon as the user selects a street, the value will be updated asynchronously in the server-side existing JAXFront DOM.
\\
<span style="color: #7f0055"><strong>public</strong></span> <span style="color: #7f0055"><strong>class</strong></span> SimpleTypePluginPlainHTMLExampleView <span style="color: #7f0055"><strong>extends</strong></span> SimpleTypeView \{
\\
<span style="color: #7f0055"><strong>protected</strong></span> <span style="color: #7f0055"><strong>void</strong></span> createEditorComponent(HtmlContainerWidget container) \{
  <span style="color: #0000c0">_component</span> = <span style="color: #7f0055"><strong>new</strong></span> HtmlPlainTextWidget(container,   getHTMLContent().toString());
\}
\\
<span style="color: #7f0055"><strong>public</strong></span> <span style="color: #7f0055"><strong>void</strong></span> populateView() \{
  <span style="color: #7f0055"><strong>super</strong></span>.populateView();
 ((HtmlPlainTextWidget)<span style="color: #0000c0">_component</span>).setHTMLContent(getHTMLContent().toString());
\}
\\
<span style="color: #7f0055"><strong>public</strong></span> StringBuffer getHTMLContent() \{
  StringBuffer sb = <span style="color: #7f0055"><strong>new</strong></span> StringBuffer();
  sb.append(<span style="color: #2a00ff">"&lt;b&gt;Choose your favorite street!&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;"</span>);
  sb.append(<span style="color: #2a00ff">"&lt;select id=\""</span> + getXPath() + <span style="color: #2a00ff">"\" size=\"3\" onclick=\"saveData(this)\"&gt;"</span>);
  String\[\] names = <span style="color: #7f0055"><strong>new</strong></span> String\[\] \{ <span style="color: #2a00ff">"Nowhere Land"</span>, <span style="color: #2a00ff">"Palm Street"</span>, <span style="color: #2a00ff">"Example Street"</span>, <span style="color: #2a00ff">"Wall Street"</span>, <span style="color: #2a00ff">"Bahnhof Street"</span> \};
  String selected = <span style="color: #2a00ff">""</span>;
  <span style="color: #7f0055"><strong>for</strong></span> (<span style="color: #7f0055"><strong>int</strong></span> i = 0; i < names.<span style="color: #0000c0">length</span>; i++) \{
    <span style="color: #7f0055"><strong>if</strong></span> (getValue() != <span style="color: #7f0055"><strong>null</strong></span> && getValue().equals(names\[i\]))
      selected = <span style="color: #2a00ff">"selected"</span>;
    <span style="color: #7f0055"><strong>else</strong></span>
      selected = <span style="color: #2a00ff">""</span>;
\\
  sb.append(<span style="color: #2a00ff">"&lt;option "</span> + selected + <span style="color: #2a00ff">" value=\""</span> + names\[i\] + <span style="color: #2a00ff">"\"&gt;"</span> + names\[i\] + <span style="color: #2a00ff">"&lt;/option&gt;"</span>);
  \}
  sb.append(<span style="color: #2a00ff">"&lt;/select&gt;"</span>);
  <span style="color: #7f0055"><strong>return</strong></span> sb;
\}
\\
<span style="color: #7f0055"><strong>public</strong></span> <span style="color: #7f0055"><strong>void</strong></span> setSize(String size) \{
 <span style="color: #3f7f5f">// do nothing</span>
\}
\\