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.EventTypeElement;
public class EventTypeAliasPanel extends Panel {
private static final long serialVersionUID = 1L;
private EventTypeElement element;
private String alias;
private Form<Void> layoutForm;
private AdvancedTransformationRuleEditorPanel panel;
public EventTypeAliasPanel(String id, EventTypeElement element, AdvancedTransformationRuleEditorPanel panel) {
super(id);
this.element = element;
this.alias = element.getAlias();
this.panel = panel;
layoutForm = new Form<Void>("layoutForm");
buildEventTypeAliasInput();
add(layoutForm);
}
private void buildEventTypeAliasInput() {
TextField<String> eventTypeAliasInput = new TextField<String>("eventTypeAliasInput", new PropertyModel<String>(this, "alias"));
eventTypeAliasInput.setOutputMarkupId(true);
OnChangeAjaxBehavior onChangeAjaxBehavior = new OnChangeAjaxBehavior() {
private static final long serialVersionUID = -1427433442511094442L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
// TODO: make sure that alias does not already exist somewhere
element.setAlias(alias);
target.add(panel.getAttributeTreePanel().getAttributeTreeTable());
}
};
eventTypeAliasInput.add(onChangeAjaxBehavior);
layoutForm.add(eventTypeAliasInput);
}
}