package sushi.application.pages.transformation.patternbuilder.model;
import java.io.Serializable;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.markup.html.form.DropDownChoice;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.panel.Panel;
import sushi.application.components.tree.TreeTableProvider;
import sushi.application.pages.transformation.patternbuilder.PatternBuilderPanel;
import sushi.event.SushiEventType;
import sushi.transformation.collection.SushiPatternTree;
import sushi.transformation.element.EventTypeElement;
import sushi.transformation.element.FilterExpressionElement;
import sushi.transformation.element.FilterExpressionOperatorEnum;
public class EventTypeElementOptionsPanel extends Panel {
private static final long serialVersionUID = 1L;
private Form<Void> layoutForm;
private EventTypeElement element;
private TreeTableProvider<Serializable> provider;
private SushiPatternTree tree;
private PatternElementTreeTable table;
private PatternBuilderPanel panel;
public EventTypeElementOptionsPanel(String id, EventTypeElement element, SushiPatternTree tree, TreeTableProvider<Serializable> provider, PatternElementTreeTable table, PatternBuilderPanel panel) {
super(id);
this.element = element;
this.provider = provider;
this.tree = tree;
this.table = table;
this.panel = panel;
layoutForm = new Form<Void>("layoutForm");
buildAddFilterExpressionButton();
// buildEventTypeDropDownChoice();
// buildAddEventTypeElementButton();
add(layoutForm);
}
private void buildAddFilterExpressionButton() {
AjaxButton addFilterExpressionButton = new AjaxButton("addFilterExpressionButton", layoutForm) {
private static final long serialVersionUID = -2611608162033482853L;
@Override
public void onSubmit(AjaxRequestTarget target, Form<?> form) {
FilterExpressionElement newFilterExpressionElement = new FilterExpressionElement(((TreeTableProvider<Serializable>) table.getProvider()).getNextID(), FilterExpressionOperatorEnum.EQUALS);
newFilterExpressionElement.setParent(element);
tree.addElement(newFilterExpressionElement);
provider.setRootElements(tree.getRoots());
table.getSelectedElements().clear();
target.add(table);
panel.updateOnTreeElementSelection(target);
}
};
layoutForm.add(addFilterExpressionButton);
}
// private void buildEventTypeDropDownChoice() {
// List<SushiEventType> eventTypes = SushiEventType.findAll();
// eventTypeDropDownChoice = new DropDownChoice<SushiEventType>("eventTypeDropDownChoice", new Model<SushiEventType>(), eventTypes);
// eventTypeDropDownChoice.setOutputMarkupId(true);
// layoutForm.add(eventTypeDropDownChoice);
// }
//
// private void buildAddEventTypeElementButton() {
// AjaxButton addEventTypeElementButton = new AjaxButton("addEventTypeElementButton", layoutForm) {
// private static final long serialVersionUID = -2611608162033482853L;
// @Override
// public void onSubmit(AjaxRequestTarget target, Form<?> form) {
// if (eventTypeDropDownChoice.getModelObject() != null) {
// EventTypeElement newEventTypeElement = new EventTypeElement(((TreeTableProvider<Serializable>) table.getProvider()).getNextID(), eventTypeDropDownChoice.getModelObject());
// newEventTypeElement.setParent(element);
// tree.addElement(newEventTypeElement);
// provider.setRootElements(tree.getRoots());
// table.getSelectedElements().clear();
// target.add(table);
// }
// }
// };
// layoutForm.add(addEventTypeElementButton);
// }
}