package org.oddjob.values.types; import org.oddjob.arooa.design.DesignFactory; import org.oddjob.arooa.design.DesignInstance; import org.oddjob.arooa.design.DesignProperty; import org.oddjob.arooa.design.DesignValueBase; import org.oddjob.arooa.design.SimpleTextAttribute; import org.oddjob.arooa.design.screem.BorderedGroup; import org.oddjob.arooa.design.screem.FieldGroup; import org.oddjob.arooa.design.screem.Form; import org.oddjob.arooa.design.screem.StandardForm; import org.oddjob.arooa.parsing.ArooaContext; import org.oddjob.arooa.parsing.ArooaElement; /** * Design for {@link TokenizerType} */ public class TokenizerTypeDF implements DesignFactory { public DesignInstance createDesign(ArooaElement element, ArooaContext parentContext) { return new TokenizerDesign(element, parentContext); } } class TokenizerDesign extends DesignValueBase { private final SimpleTextAttribute text; private final SimpleTextAttribute delimiter; private final SimpleTextAttribute regexp; private final SimpleTextAttribute escape; private final SimpleTextAttribute quote; public TokenizerDesign(ArooaElement element, ArooaContext parentContext) { super(element, parentContext); text = new SimpleTextAttribute("text", this); delimiter = new SimpleTextAttribute("delimiter", this); regexp = new SimpleTextAttribute("regexp", this); escape = new SimpleTextAttribute("escape", this); quote = new SimpleTextAttribute("quote", this); } public Form detail() { return new StandardForm(this) .addFormItem(new FieldGroup() .add(text.view().setTitle("Text"))) .addFormItem(new BorderedGroup("Delimiter Properties") .add(delimiter.view().setTitle("Delimiter")) .add(regexp.view().setTitle("Reg Exp")) .add(escape.view().setTitle("Escape")) .add(quote.view().setTitle("Quote")) ); } @Override public DesignProperty[] children() { return new DesignProperty[] { text, delimiter, regexp, escape, quote }; } }