/*******************************************************************************
* Copyright (c) 2014 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:
* Rastislav Wagner (Red Hat) - initial API and implementation
*******************************************************************************/
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;
import org.eclipse.swtbot.generator.framework.GenerationSimpleRule;
public class ToolBarItemClickedRule extends GenerationSimpleRule{
private String toolTipText;
private String text;
private ToolItem widget;
@Override
public boolean appliesTo(Event event) {
if (event.widget instanceof ToolItem && event.type == SWT.Selection) {
ToolItem item = (ToolItem)event.widget;
int style = item.getStyle();
return (style & SWT.DROP_DOWN) == 0 && (style & SWT.PUSH) != 0;
}
return false;
}
@Override
public void initializeForEvent(Event event) {
this.widget = (ToolItem)event.widget;
this.text = this.widget.getText();
this.toolTipText = this.widget.getToolTipText();
}
@Override
public List<String> getActions() {
List<String> actions = new ArrayList<String>();
StringBuilder res = new StringBuilder("bot.");
if (this.text != null && this.text.length() > 0) {
res.append("toolbarButton(\""); //$NON-NLS-1$
res.append(this.text);
res.append("\")"); //$NON-NLS-1$
} else if (this.toolTipText != null && this.toolTipText.length() > 0) {
res.append("toolbarButtonWithTooltip(\""); //$NON-NLS-1$
res.append(this.toolTipText);
res.append("\")"); //$NON-NLS-1$
} else {
res.append("toolbarButton("); //$NON-NLS-1$
res.append("TODO index");
res.append(')');
}
res.append(".click()"); //$NON-NLS-1%
actions.add(res.toString());
return actions;
}
@Override
public List<String> getImports() {
// TODO Auto-generated method stub
return null;
}
@Override
public ToolItem getWidget() {
return this.widget;
}
}