Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrawagner2013-06-21 09:44:50 +0000
committerrawagner2013-06-21 09:44:50 +0000
commit980427882d698506a73cefdda34f86a25afd5412 (patch)
tree8f73b7af889c95cc7e52ab66a175ad91c306cea9
parent6851efc38112d4e84283f2e00b20ec32dace077e (diff)
downloadorg.eclipse.swtbot-980427882d698506a73cefdda34f86a25afd5412.tar.gz
org.eclipse.swtbot-980427882d698506a73cefdda34f86a25afd5412.tar.xz
org.eclipse.swtbot-980427882d698506a73cefdda34f86a25afd5412.zip
Bug 411349: possibility to generate more than one line of code & imports
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/GenerationRule.java25
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/complex/ModifyComboComplexRule.java9
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/complex/ModifyTextComplexRule.java9
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/complex/ToolBarMenuComplexRule.java40
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/AbstractTreeGenerationRule.java1
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/CComboSelectionRule.java28
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/CheckboxClickedRule.java21
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ComboSelectionRule.java28
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ComboTextModifyRule.java34
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ContextMenuRule.java22
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/DoubleClickTreeItemRule.java19
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ExpandTreeItemRule.java19
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ModifyTextRule.java32
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/PushButtonClickedRule.java21
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/RadioButtonClickedRule.java22
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/SelectTreeItemRule.java19
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ShellMenuClickedRule.java24
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/SingleListSelectionRule.java30
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ToolBarDropDownRule.java27
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/ui/BotGeneratorEventDispatcher.java11
-rw-r--r--org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/ui/RecorderDialog.java8
21 files changed, 287 insertions, 162 deletions
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/GenerationRule.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/GenerationRule.java
index f523527d..863713df 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/GenerationRule.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/GenerationRule.java
@@ -11,32 +11,15 @@
*******************************************************************************/
package org.eclipse.swtbot.generator.framework;
+import java.util.List;
+
/**
* This class represents abstract GenerationRule
*
*/
public abstract class GenerationRule {
- /**
- * Generates code
- * @return String of generated code
- */
- public String generateCode() {
- if(getWidgetAccessor() !=null && getAction() != null){
- return getWidgetAccessor() + getAction();
- }
- return null;
- }
-
- /**
- *
- * @return String of code for accessing Widget
- */
- public abstract String getWidgetAccessor();
+ public abstract List<String> getActions();
- /**
- *
- * @return String of code to call action on widget
- */
- public abstract String getAction();
+ public abstract List<String> getImports();
} \ No newline at end of file
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/complex/ModifyComboComplexRule.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/complex/ModifyComboComplexRule.java
index 2fb86c7b..6b24f6ba 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/complex/ModifyComboComplexRule.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/complex/ModifyComboComplexRule.java
@@ -43,13 +43,14 @@ public class ModifyComboComplexRule extends GenerationComplexRule{
}
@Override
- public String getWidgetAccessor() {
- return getInitializationRules().get(0).getWidgetAccessor();
+ public List<String> getActions() {
+ return ((ModifyTextRule)getInitializationRules().get(getInitializationRules().size()-1)).getActions();
}
@Override
- public String getAction() {
- return ((ModifyTextRule)getInitializationRules().get(getInitializationRules().size()-1)).getAction();
+ public List<String> getImports() {
+ // TODO Auto-generated method stub
+ return null;
}
}
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/complex/ModifyTextComplexRule.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/complex/ModifyTextComplexRule.java
index 147331eb..a3a62946 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/complex/ModifyTextComplexRule.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/complex/ModifyTextComplexRule.java
@@ -43,13 +43,14 @@ public class ModifyTextComplexRule extends GenerationComplexRule {
}
@Override
- public String getWidgetAccessor() {
- return getInitializationRules().get(0).getWidgetAccessor();
+ public List<String> getActions() {
+ return ((ComboTextModifyRule)getInitializationRules().get(getInitializationRules().size()-1)).getActions();
}
@Override
- public String getAction() {
- return ((ComboTextModifyRule)getInitializationRules().get(getInitializationRules().size()-1)).getAction();
+ public List<String> getImports() {
+ // TODO Auto-generated method stub
+ return null;
}
}
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/complex/ToolBarMenuComplexRule.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/complex/ToolBarMenuComplexRule.java
index 92d18062..9771dbb6 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/complex/ToolBarMenuComplexRule.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/complex/ToolBarMenuComplexRule.java
@@ -32,23 +32,6 @@ public class ToolBarMenuComplexRule extends GenerationComplexRule{
rules.add(menu);
}
- @Override
- public String getWidgetAccessor(){
- StringBuilder builder = new StringBuilder();
- builder.append(((ToolBarDropDownRule)getInitializationRules().get(0)).getWidgetAccessor());
- ContextMenuRule cmr = ((ContextMenuRule)getInitializationRules().get(1));
- for(String s: cmr.getPath()){
- builder.append(".menuItem(\""+s+"\")");
- }
- builder.append(".menuItem(\""+cmr.getMenu()+"\")");
- return builder.toString();
- }
-
- @Override
- public String getAction(){
- return ".click()";
- }
-
@Override
public boolean appliesToPartially(GenerationSimpleRule rule, int i) {
@@ -71,5 +54,28 @@ public class ToolBarMenuComplexRule extends GenerationComplexRule{
return true;
}
+ @Override
+ public List<String> getActions() {
+ List<String> actions = new ArrayList<String>();
+ StringBuilder builder = new StringBuilder();
+ String toolTip = ((ToolBarDropDownRule)getInitializationRules().get(0)).getToolTipText();
+
+ builder.append("bot.toolbarDropDownButtonWithToolTip(\""+toolTip+"\")");
+ ContextMenuRule cmr = ((ContextMenuRule)getInitializationRules().get(1));
+ for(String s: cmr.getPath()){
+ builder.append(".menuItem(\""+s+"\")");
+ }
+ builder.append(".menuItem(\""+cmr.getMenu()+"\")");
+ builder.append(".click()");
+ actions.add(builder.toString());
+ return actions;
+ }
+
+ @Override
+ public List<String> getImports() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/AbstractTreeGenerationRule.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/AbstractTreeGenerationRule.java
index ab52b85f..3b824997 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/AbstractTreeGenerationRule.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/AbstractTreeGenerationRule.java
@@ -42,7 +42,6 @@ public abstract class AbstractTreeGenerationRule extends GenerationSimpleRule {
this.item = (TreeItem)event.item;
}
- @Override
public String getWidgetAccessor() {
StringBuilder res = new StringBuilder();
res.append("bot.tree(");
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/CComboSelectionRule.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/CComboSelectionRule.java
index 01f8315d..e0f6ab92 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/CComboSelectionRule.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/CComboSelectionRule.java
@@ -10,6 +10,9 @@
*******************************************************************************/
package org.eclipse.swtbot.generator.framework.rules.simple;
+import java.util.ArrayList;
+import java.util.List;
+
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.widgets.Event;
@@ -35,18 +38,17 @@ public class CComboSelectionRule extends GenerationSimpleRule {
}
@Override
- public String getWidgetAccessor() {
+ public List<String> getActions() {
+ List<String> actions = new ArrayList<String>();
+ StringBuilder res = new StringBuilder();
+
int index = WidgetUtils.getIndex(this.combo);
if (index != 0) {
- return "bot.ccomboBox(" + index + ")";
+ res.append("bot.ccomboBox(" + index + ")");
} else {
- return "bot.ccomboBox()";
+ res.append("bot.ccomboBox()");
}
- }
-
- @Override
- public String getAction() {
- StringBuilder res = new StringBuilder();
+
res.append(".select(");
if (this.newSelection != null) {
res.append('"');
@@ -56,7 +58,15 @@ public class CComboSelectionRule extends GenerationSimpleRule {
res.append(this.newSelectionIndex);
res.append(")");
}
- return res.toString();
+
+ actions.add(res.toString());
+ return actions;
+ }
+
+ @Override
+ public List<String> getImports() {
+ // TODO Auto-generated method stub
+ return null;
}
} \ No newline at end of file
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/CheckboxClickedRule.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/CheckboxClickedRule.java
index da3de751..d02cb64a 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/CheckboxClickedRule.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/CheckboxClickedRule.java
@@ -10,6 +10,9 @@
*******************************************************************************/
package org.eclipse.swtbot.generator.framework.rules.simple;
+import java.util.ArrayList;
+import java.util.List;
+
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Event;
@@ -36,18 +39,26 @@ public class CheckboxClickedRule extends GenerationSimpleRule {
}
}
+
@Override
- public String getWidgetAccessor() {
+ public List<String> getActions() {
+ List<String> actions = new ArrayList<String>();
+ StringBuilder code = new StringBuilder();
+
if (this.buttonText != null) {
- return "bot.radio(\"" + this.buttonText + "\")";
+ code.append("bot.radio(\"" + this.buttonText + "\")");
} else {
- return "bot.radio(" + this.index + ")";
+ code.append("bot.radio(" + this.index + ")");
}
+ code.append(".click()");
+ actions.add(code.toString());
+ return actions;
}
@Override
- public String getAction() {
- return ".click()";
+ public List<String> getImports() {
+ // TODO Auto-generated method stub
+ return null;
}
} \ No newline at end of file
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ComboSelectionRule.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ComboSelectionRule.java
index c6df9380..975f2f94 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ComboSelectionRule.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ComboSelectionRule.java
@@ -10,6 +10,9 @@
*******************************************************************************/
package org.eclipse.swtbot.generator.framework.rules.simple;
+import java.util.ArrayList;
+import java.util.List;
+
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Event;
@@ -35,18 +38,16 @@ public class ComboSelectionRule extends GenerationSimpleRule {
}
@Override
- public String getWidgetAccessor() {
+ public List<String> getActions() {
+ List<String> actions = new ArrayList<String>();
+ StringBuilder res = new StringBuilder();
int index = WidgetUtils.getIndex(this.combo);
if (index != 0) {
- return "bot.comboBox(" + index + ")";
+ res.append("bot.comboBox(" + index + ")");
} else {
- return "bot.comboBox()";
+ res.append("bot.comboBox()");
}
- }
-
- @Override
- public String getAction() {
- StringBuilder res = new StringBuilder();
+
res.append(".select(");
if (this.newSelection != null) {
res.append('"');
@@ -56,7 +57,16 @@ public class ComboSelectionRule extends GenerationSimpleRule {
res.append(this.newSelectionIndex);
res.append(")");
}
- return res.toString();
+ actions.add(res.toString());
+ return actions;
+ }
+
+ @Override
+ public List<String> getImports() {
+ // TODO Auto-generated method stub
+ return null;
}
+
+
} \ No newline at end of file
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ComboTextModifyRule.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ComboTextModifyRule.java
index 7891429f..b276492f 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ComboTextModifyRule.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ComboTextModifyRule.java
@@ -10,10 +10,12 @@
*******************************************************************************/
package org.eclipse.swtbot.generator.framework.rules.simple;
+import java.util.ArrayList;
+import java.util.List;
+
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Text;
import org.eclipse.swtbot.generator.framework.GenerationSimpleRule;
import org.eclipse.swtbot.generator.framework.WidgetUtils;
@@ -34,28 +36,32 @@ public class ComboTextModifyRule extends GenerationSimpleRule {
this.newValue = ((Combo)event.widget).getText();
}
+ public int getTextIndex() {
+ return textIndex;
+ }
+
+ public void setTextIndex(int textIndex) {
+ this.textIndex = textIndex;
+ }
+
@Override
- public String getWidgetAccessor() {
+ public List<String> getActions() {
+ List<String> actions = new ArrayList<String>();
StringBuilder res = new StringBuilder();
res.append("bot.comboBox(");
if (textIndex != 0) {
res.append(textIndex);
}
- res.append(")");
- return res.toString();
+ res.append(").setText(\"" + this.newValue + "\")");
+ actions.add(res.toString());
+
+ return actions;
}
@Override
- public String getAction() {
- return ".setText(\"" + this.newValue + "\")";
- }
-
- public int getTextIndex() {
- return textIndex;
- }
-
- public void setTextIndex(int textIndex) {
- this.textIndex = textIndex;
+ public List<String> getImports() {
+ // TODO Auto-generated method stub
+ return null;
}
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ContextMenuRule.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ContextMenuRule.java
index 4a44c72c..0e8ea964 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ContextMenuRule.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ContextMenuRule.java
@@ -46,16 +46,6 @@ public class ContextMenuRule extends GenerationSimpleRule{
}
Collections.reverse(path);
}
-
- @Override
- public String getWidgetAccessor() {
- return null;
- }
-
- @Override
- public String getAction() {
- return null;
- }
public List<String> getPath() {
return path;
@@ -72,6 +62,18 @@ public class ContextMenuRule extends GenerationSimpleRule{
public void setMenu(String menu) {
this.menu = menu;
}
+
+ @Override
+ public List<String> getActions() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public List<String> getImports() {
+ // TODO Auto-generated method stub
+ return null;
+ }
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/DoubleClickTreeItemRule.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/DoubleClickTreeItemRule.java
index 784db203..b5cf1f28 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/DoubleClickTreeItemRule.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/DoubleClickTreeItemRule.java
@@ -10,6 +10,9 @@
*******************************************************************************/
package org.eclipse.swtbot.generator.framework.rules.simple;
+import java.util.ArrayList;
+import java.util.List;
+
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Event;
@@ -21,8 +24,20 @@ public class DoubleClickTreeItemRule extends AbstractTreeGenerationRule {
}
@Override
- public String getAction() {
- return ".doubleClick()";
+ public List<String> getActions() {
+ List<String> actions = new ArrayList<String>();
+ StringBuilder code = new StringBuilder();
+ code.append(getWidgetAccessor());
+ code.append(".doubleClick()");
+ actions.add(code.toString());
+ return actions;
+
+ }
+
+ @Override
+ public List<String> getImports() {
+ // TODO Auto-generated method stub
+ return null;
}
} \ No newline at end of file
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ExpandTreeItemRule.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ExpandTreeItemRule.java
index 3e4a528c..b4c36672 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ExpandTreeItemRule.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ExpandTreeItemRule.java
@@ -10,6 +10,9 @@
*******************************************************************************/
package org.eclipse.swtbot.generator.framework.rules.simple;
+import java.util.ArrayList;
+import java.util.List;
+
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Event;
@@ -21,8 +24,20 @@ public class ExpandTreeItemRule extends AbstractTreeGenerationRule {
}
@Override
- public String getAction() {
- return ".expand()";
+ public List<String> getActions() {
+ List<String> actions = new ArrayList<String>();
+ StringBuilder code = new StringBuilder();
+ code.append(getWidgetAccessor());
+ code.append(".expand()");
+ actions.add(code.toString());
+ return actions;
+
+ }
+
+ @Override
+ public List<String> getImports() {
+ // TODO Auto-generated method stub
+ return null;
}
} \ No newline at end of file
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ModifyTextRule.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ModifyTextRule.java
index 34e3e1f7..b3e8ebe8 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ModifyTextRule.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ModifyTextRule.java
@@ -10,6 +10,9 @@
*******************************************************************************/
package org.eclipse.swtbot.generator.framework.rules.simple;
+import java.util.ArrayList;
+import java.util.List;
+
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Text;
@@ -34,28 +37,31 @@ public class ModifyTextRule extends GenerationSimpleRule {
this.newValue = ((Text)event.widget).getText();
}
+ public int getTextIndex() {
+ return textIndex;
+ }
+
+ public void setTextIndex(int textIndex) {
+ this.textIndex = textIndex;
+ }
+
@Override
- public String getWidgetAccessor() {
+ public List<String> getActions() {
+ List<String> actions = new ArrayList<String>();
StringBuilder res = new StringBuilder();
res.append("bot.text(");
if (textIndex != 0) {
res.append(textIndex);
}
- res.append(")");
- return res.toString();
+ res.append(").setText(\"" + this.newValue + "\")");
+ actions.add(res.toString());
+ return actions;
}
@Override
- public String getAction() {
- return ".setText(\"" + this.newValue + "\")";
- }
-
- public int getTextIndex() {
- return textIndex;
- }
-
- public void setTextIndex(int textIndex) {
- this.textIndex = textIndex;
+ public List<String> getImports() {
+ // TODO Auto-generated method stub
+ return null;
}
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/PushButtonClickedRule.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/PushButtonClickedRule.java
index 4edb7e09..6e2abf3f 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/PushButtonClickedRule.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/PushButtonClickedRule.java
@@ -10,6 +10,9 @@
*******************************************************************************/
package org.eclipse.swtbot.generator.framework.rules.simple;
+import java.util.ArrayList;
+import java.util.List;
+
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Event;
@@ -35,19 +38,25 @@ public class PushButtonClickedRule extends GenerationSimpleRule {
this.index = WidgetUtils.getIndex((Button)event.widget);
}
}
-
+
@Override
- public String getWidgetAccessor() {
+ public List<String> getActions() {
+ List<String> actions = new ArrayList<String>();
+ StringBuilder code = new StringBuilder();
if (this.buttonText != null) {
- return "bot.button(\"" + this.buttonText + "\")";
+ code.append("bot.button(\"" + this.buttonText + "\")");
} else {
- return "bot.button(" + this.index + ")";
+ code.append("bot.button(" + this.index + ")");
}
+ code.append(".click()");
+ actions.add(code.toString());
+ return actions;
}
@Override
- public String getAction() {
- return ".click()";
+ public List<String> getImports() {
+ // TODO Auto-generated method stub
+ return null;
}
} \ No newline at end of file
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/RadioButtonClickedRule.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/RadioButtonClickedRule.java
index dafb8682..d2d1afe0 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/RadioButtonClickedRule.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/RadioButtonClickedRule.java
@@ -10,6 +10,9 @@
*******************************************************************************/
package org.eclipse.swtbot.generator.framework.rules.simple;
+import java.util.ArrayList;
+import java.util.List;
+
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Event;
@@ -37,17 +40,26 @@ public class RadioButtonClickedRule extends GenerationSimpleRule {
}
@Override
- public String getWidgetAccessor() {
+ public List<String> getActions() {
+ List<String> actions = new ArrayList<String>();
+
+ StringBuilder code = new StringBuilder();
if (this.buttonText != null) {
- return "bot.checkBox(\"" + this.buttonText + "\")";
+ code.append("bot.checkBox(\"" + this.buttonText + "\")");
} else {
- return "bot.checkBox(" + this.index + ")";
+ code.append("bot.checkBox(" + this.index + ")");
}
+
+ code.append(".click()");
+ actions.add(code.toString());
+
+ return actions;
}
@Override
- public String getAction() {
- return ".click()";
+ public List<String> getImports() {
+ // TODO Auto-generated method stub
+ return null;
}
} \ No newline at end of file
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/SelectTreeItemRule.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/SelectTreeItemRule.java
index fed129b8..5f91ae19 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/SelectTreeItemRule.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/SelectTreeItemRule.java
@@ -10,6 +10,9 @@
*******************************************************************************/
package org.eclipse.swtbot.generator.framework.rules.simple;
+import java.util.ArrayList;
+import java.util.List;
+
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.SWT;
@@ -21,8 +24,20 @@ public class SelectTreeItemRule extends AbstractTreeGenerationRule {
}
@Override
- public String getAction() {
- return ".select()";
+ public List<String> getActions() {
+ List<String> actions = new ArrayList<String>();
+ StringBuilder code = new StringBuilder();
+ code.append(getWidgetAccessor());
+ code.append(".select()");
+ actions.add(code.toString());
+ return actions;
+
+ }
+
+ @Override
+ public List<String> getImports() {
+ // TODO Auto-generated method stub
+ return null;
}
} \ No newline at end of file
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ShellMenuClickedRule.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ShellMenuClickedRule.java
index 295255d6..70008dac 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ShellMenuClickedRule.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ShellMenuClickedRule.java
@@ -45,16 +45,18 @@ public class ShellMenuClickedRule extends GenerationSimpleRule {
}
@Override
- public String getWidgetAccessor() {
+ public List<String> getActions() {
+ List<String> actions = new ArrayList<String>();
+
StringBuilder code = new StringBuilder();
List<String> path = new ArrayList<String>();
- path.add(cleanMenuText(this.item.getText()));
+ path.add(this.item.getText());
MenuItem currentItem = this.item;
Menu parent = null;
while (currentItem != null && (parent = currentItem.getParent()) != null) {
currentItem = parent.getParentItem();
if (currentItem != null && currentItem.getText() != null) {
- path.add(cleanMenuText(currentItem.getText()));
+ path.add(currentItem.getText());
}
}
Collections.reverse(path);
@@ -64,16 +66,18 @@ public class ShellMenuClickedRule extends GenerationSimpleRule {
code.append(text);
code.append("\")");
}
- return code.toString();
- }
-
- private static String cleanMenuText(String text) {
- return text.replace("&", "").split("\t")[0];
+
+ code.append(".click()");
+ actions.add(code.toString());
+
+
+ return actions;
}
@Override
- public String getAction() {
- return ".click()";
+ public List<String> getImports() {
+ // TODO Auto-generated method stub
+ return null;
}
} \ No newline at end of file
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/SingleListSelectionRule.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/SingleListSelectionRule.java
index c0ea970a..884bccf2 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/SingleListSelectionRule.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/SingleListSelectionRule.java
@@ -11,6 +11,8 @@
*******************************************************************************/
package org.eclipse.swtbot.generator.framework.rules.simple;
+import java.util.ArrayList;
+
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.List;
@@ -35,20 +37,19 @@ public class SingleListSelectionRule extends GenerationSimpleRule {
this.newSelectionText = this.list.getSelection()[0];
}
}
-
+
@Override
- public String getWidgetAccessor() {
+ public java.util.List<String> getActions() {
+ java.util.List<String> actions = new ArrayList<String>();
+
+ StringBuilder res = new StringBuilder();
int index = WidgetUtils.getIndex(this.list);
if (index != 0) {
- return "bot.list(" + index + ")";
+ res.append("bot.list(" + index + ")");
} else {
- return "bot.list()";
+ res.append("bot.list()");
}
- }
-
- @Override
- public String getAction() {
- StringBuilder res = new StringBuilder();
+
if (this.newSelectionText != null){
res.append(".select(\"");
res.append(this.newSelectionText);
@@ -57,7 +58,16 @@ public class SingleListSelectionRule extends GenerationSimpleRule {
else {
res.append(".unselect()");
}
- return res.toString();
+
+ actions.add(res.toString());
+
+ return actions;
+ }
+
+ @Override
+ public java.util.List<String> getImports() {
+ // TODO Auto-generated method stub
+ return null;
}
}
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ToolBarDropDownRule.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ToolBarDropDownRule.java
index 262c5ac2..6cf56e25 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ToolBarDropDownRule.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/framework/rules/simple/ToolBarDropDownRule.java
@@ -10,6 +10,9 @@
*******************************************************************************/
package org.eclipse.swtbot.generator.framework.rules.simple;
+import java.util.ArrayList;
+import java.util.List;
+
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.ToolItem;
@@ -31,17 +34,6 @@ public class ToolBarDropDownRule extends GenerationSimpleRule{
this.toolTipText = ((ToolItem)event.widget).getToolTipText();
}
- @Override
- public String getAction() {
- return ".click()";
-
- }
-
- @Override
- public String getWidgetAccessor() {
- return "bot.toolbarDropDownButtonWithToolTip(\""+toolTipText+"\")";
- }
-
public String getToolTipText() {
return toolTipText;
}
@@ -50,5 +42,18 @@ public class ToolBarDropDownRule extends GenerationSimpleRule{
this.toolTipText = toolTipText;
}
+ @Override
+ public List<String> getActions() {
+ List<String> actions = new ArrayList<String>();
+ actions.add("bot.toolbarDropDownButtonWithToolTip(\""+toolTipText+"\").click()");
+ return actions;
+ }
+
+ @Override
+ public List<String> getImports() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/ui/BotGeneratorEventDispatcher.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/ui/BotGeneratorEventDispatcher.java
index 9edbd219..eba7f87b 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/ui/BotGeneratorEventDispatcher.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/ui/BotGeneratorEventDispatcher.java
@@ -21,6 +21,7 @@ import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swtbot.generator.framework.GenerationComplexRule;
+import org.eclipse.swtbot.generator.framework.GenerationRule;
import org.eclipse.swtbot.generator.framework.GenerationSimpleRule;
import org.eclipse.swtbot.generator.framework.Generator;
import org.eclipse.swtbot.generator.framework.WidgetUtils;
@@ -30,7 +31,7 @@ public class BotGeneratorEventDispatcher implements Listener{
public static final Event FLUSH_GENERATION_RULES = new Event();
public static interface CodeGenerationListener {
- public void handleCodeGenerated(String code);
+ public void handleCodeGenerated(GenerationRule code);
}
private Generator generator;
@@ -118,7 +119,7 @@ public class BotGeneratorEventDispatcher implements Listener{
if (this.activeComplexRules.isEmpty() || forceGeneration) {
if (this.longestMatchedComplex != null) {
// generate code
- dispatchCodeGenerated(WidgetUtils.cleanText(this.longestMatchedComplex.generateCode()));
+ dispatchCodeGenerated(longestMatchedComplex);
// Remove matched contained rules
this.simpleRules.removeAll(this.longestMatchedComplex.getInitializationRules());
// Remove current complex rull
@@ -127,7 +128,7 @@ public class BotGeneratorEventDispatcher implements Listener{
processRules(null, forceGeneration);
} else {
// generate code for first simple rule
- dispatchCodeGenerated(WidgetUtils.cleanText(this.simpleRules.get(0).generateCode()));
+ dispatchCodeGenerated(this.simpleRules.get(0));
// consume first simple rule
this.simpleRules.remove(0);
// continue on remaining simple rules
@@ -169,8 +170,8 @@ public class BotGeneratorEventDispatcher implements Listener{
}
}
- private void dispatchCodeGenerated(String code) {
- if(code != null){
+ private void dispatchCodeGenerated(GenerationRule code) {
+ if (code != null) {
for (CodeGenerationListener listener : this.listeners) {
listener.handleCodeGenerated(code);
}
diff --git a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/ui/RecorderDialog.java b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/ui/RecorderDialog.java
index 3f448756..2c3382b4 100644
--- a/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/ui/RecorderDialog.java
+++ b/org.eclipse.swtbot.generator/src/org/eclipse/swtbot/generator/ui/RecorderDialog.java
@@ -37,6 +37,7 @@ import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
+import org.eclipse.swtbot.generator.framework.GenerationRule;
import org.eclipse.swtbot.generator.framework.Generator;
import org.eclipse.swtbot.generator.ui.BotGeneratorEventDispatcher.CodeGenerationListener;
import org.eclipse.ui.ISharedImages;
@@ -116,8 +117,11 @@ public class RecorderDialog extends TitleAreaDialog {
}
});
this.recorder.addListener(new CodeGenerationListener() {
- public void handleCodeGenerated(String code) {
- generatedCode.setText(generatedCode.getText() + code + ";\n");
+
+ public void handleCodeGenerated(GenerationRule code) {
+ for(String action: code.getActions())
+ generatedCode.setText(generatedCode.getText() + action + ";\n");
+
}
});
copyButton.addSelectionListener(new SelectionAdapter() {

Back to the top