package sushi.application.pages.transformation.patternbuilder.model; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.form.OnChangeAjaxBehavior; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.PropertyModel; import sushi.application.pages.transformation.AdvancedTransformationRuleEditorPanel; import sushi.transformation.element.PatternOperatorElement; import sushi.transformation.element.RangeElement; public class RepeatPatternOperatorRangePanel extends Panel { private static final long serialVersionUID = 1L; private Form<Void> layoutForm; private int matchCount; private TextField<Integer> matchCountInput; public RepeatPatternOperatorRangePanel(String id, PatternOperatorElement element, final AdvancedTransformationRuleEditorPanel panel) { super(id); layoutForm = new Form<Void>("layoutForm"); final RangeElement rangeElement = element.getRangeElement(); matchCount = rangeElement.getLeftEndpoint(); matchCountInput = new TextField<Integer>("matchCountInput", new PropertyModel<Integer>(this, "matchCount")); OnChangeAjaxBehavior onChangeAjaxBehavior = new OnChangeAjaxBehavior() { private static final long serialVersionUID = 2251803290291534439L; @Override protected void onUpdate(AjaxRequestTarget target) { rangeElement.setLeftEndpoint(matchCount); target.add(panel.getAttributeTreePanel().getAttributeTreeTable()); } }; matchCountInput.add(onChangeAjaxBehavior); matchCountInput.setOutputMarkupId(true); layoutForm.add(matchCountInput); add(layoutForm); } }