package com.rectang.xsm.widget;
import com.rectang.xsm.doc.DocWidget;
import java.io.Serializable;
import org.jdom.Element;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.PropertyModel;
public class String
extends DocWidget
implements Serializable
{
public String( java.lang.String name )
{
super( name );
}
private java.lang.String escape( java.lang.String in )
{
java.lang.String lower = in.toLowerCase();
if ( lower.startsWith( "<html>" ) )
{
if ( lower.endsWith( "</html>" ) )
{
return in.substring( 6, in.length() - 7 );
}
else
{
return in.substring( 6 );
}
}
else
{
return in.replaceAll( "&", "&" ).replaceAll( "\"", """ )
.replaceAll( "<", "<" ).replaceAll( ">", ">" );
}
}
public void view( Element node, StringBuffer s )
{
s.append( escape( node.getValue() ) );
}
public void publish( Element node, StringBuffer s )
{
s.append( escape( node.getValue() ) );
}
public WebMarkupContainer edit( java.lang.String wicketId, Element node, java.lang.String path )
{
return new StringPanel( wicketId, node );
}
public void create( Element node )
{
node.setText( "" );
}
class StringPanel
extends Panel
{
public StringPanel( java.lang.String id, Element node )
{
super( id );
add( new Label( "label", name ) );
add( new TextField( "value", new PropertyModel( node, "text" ) ) );
}
}
}