diff options
| author | rawagner | 2013-06-21 09:44:50 +0000 |
|---|---|---|
| committer | rawagner | 2013-06-21 09:44:50 +0000 |
| commit | 980427882d698506a73cefdda34f86a25afd5412 (patch) | |
| tree | 8f73b7af889c95cc7e52ab66a175ad91c306cea9 | |
| parent | 6851efc38112d4e84283f2e00b20ec32dace077e (diff) | |
| download | org.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
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() { |
