package org.jboss.tools.switchyard.reddeer.debug; import java.util.List; import org.jboss.reddeer.swt.api.TableItem; import org.jboss.reddeer.swt.impl.button.CheckBox; import org.jboss.reddeer.swt.impl.table.DefaultTable; import org.jboss.reddeer.swt.impl.tree.DefaultTreeItem; /** * SwitchYard breakpoint * * @author apodhrad * */ public class Breakpoint extends DefaultTreeItem { public enum TriggeringPhase { IN("IN"), OUT("OUT"), FAULT("FAULT"); private String label; private TriggeringPhase(String label) { this.label = label; } public String getLabel() { return label; } } public enum TriggerOn { ENTRY("ENTRY"), RETURN("RETURN"), FAULT("FAULT"), TRANSACTION("TRANSACTION"), SECURITY("SECURITY"), POLICY("POLICY"), TARGET_INVOCATION("TARGET_INVOCATION"), VALIDATION("VALIDATION"), TRANSFORMATION("TRANSFORMATION"); private String label; private TriggerOn(String label) { this.label = label; } public String getLabel() { return label; } } public Breakpoint(String label) { super(label); } public void check(TriggeringPhase triggeringPhase) { check(triggeringPhase.getLabel(), true); } public void uncheck(TriggerOn triggerOn) { check(triggerOn.getLabel(), false); } public void uncheck(TriggeringPhase triggeringPhase) { check(triggeringPhase.getLabel(), false); } public void check(TriggerOn triggerOn) { check(triggerOn.getLabel(), true); } public void check(String trigger, boolean checked) { select(); new CheckBox(trigger).toggle(checked); } public boolean isChecked(TriggeringPhase triggeringPhase) { return isChecked(triggeringPhase.getLabel()); } public boolean isChecked(TriggerOn triggerOn) { return isChecked(triggerOn.getLabel()); } public boolean isChecked(String label) { select(); return new CheckBox(label).isChecked(); } public List<TableItem> getTransformers() { select(); return new DefaultTable().getItems(); } public void checkTransformer(String from, String to) { setChecked(true, getTransformers(), from, to); } public void uncheckTransformer(String from, String to) { setChecked(false, getTransformers(), from, to); } public List<TableItem> getValidators() { select(); return new DefaultTable().getItems(); } public void checkValidator(String name) { setChecked(true, getValidators(), name); } public void uncheckValidator(String name) { setChecked(false, getValidators(), name); } private void setChecked(boolean checked, List<TableItem> tableItems, String... value) { for (TableItem tableItem : tableItems) { boolean result = true; for (int i = 0; i < value.length; i++) { if (!value[i].equals(tableItem.getText(i))) { result = false; } } if (result) { tableItem.setChecked(checked); } } } public void delete() { select(); new BreakpointsView().removeSelectedBreakpoints(); } }