Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/SWTBotGeneratorRules.java1
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/SingleListSelectionRule.java63
2 files changed, 64 insertions, 0 deletions
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/SWTBotGeneratorRules.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/SWTBotGeneratorRules.java
index b19b3b22..24ff9c71 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/SWTBotGeneratorRules.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/SWTBotGeneratorRules.java
@@ -30,6 +30,7 @@ public class SWTBotGeneratorRules implements Generator {
res.add(new MenuClickedRule());
res.add(new SelectTreeItemRule());
res.add(new ModifyTextRule());
+ res.add(new SingleListSelectionRule());
return res;
}
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/SingleListSelectionRule.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/SingleListSelectionRule.java
new file mode 100644
index 00000000..5726479b
--- /dev/null
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/SingleListSelectionRule.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Red Hat Inc..
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Mickael Istria (Red Hat) - initial API and implementation
+ * Vlado Pakan (Red Hat)
+ *******************************************************************************/
+package org.eclipse.swtbot.generator.framework.rules;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.List;
+import org.eclipse.swtbot.generator.framework.GenerationRule;
+import org.eclipse.swtbot.generator.framework.WidgetUtils;
+
+public class SingleListSelectionRule extends GenerationRule {
+
+ private List list;
+ private String newSelectionText = null;
+
+ @Override
+ public boolean appliesTo(Event event) {
+ return event.widget instanceof List && event.type == SWT.Selection &&
+ (((List)event.widget).getStyle() & SWT.SINGLE) != 0;
+ }
+
+ @Override
+ public void initializeForEvent(Event event) {
+ this.list = (List)event.widget;
+ if (this.list.getSelectionCount() > 0){
+ this.newSelectionText = this.list.getSelection()[0];
+ }
+ }
+
+ @Override
+ protected String getWidgetAccessor() {
+ int index = WidgetUtils.getIndex(this.list);
+ if (index != 0) {
+ return "bot.list(" + index + ")";
+ } else {
+ return "bot.list()";
+ }
+ }
+
+ @Override
+ protected String getActon() {
+ StringBuilder res = new StringBuilder();
+ if (this.newSelectionText != null){
+ res.append(".select(\"");
+ res.append(this.newSelectionText);
+ res.append("\")");
+ }
+ else {
+ res.append(".unselect()");
+ }
+ return res.toString();
+ }
+
+}

Back to the top