diff options
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(); + } + +} |