blob: 656458bfea081b50c59470eed494b9842f48727c [file] [log] [blame]
/*
* Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package org.netbeans.jemmy.operators;
import java.awt.Component;
import java.awt.Container;
import java.awt.Insets;
import java.awt.event.ActionListener;
import java.awt.event.ItemListener;
import java.util.Hashtable;
import javax.swing.AbstractButton;
import javax.swing.ButtonModel;
import javax.swing.Icon;
import javax.swing.event.ChangeListener;
import javax.swing.plaf.ButtonUI;
import org.netbeans.jemmy.ComponentChooser;
import org.netbeans.jemmy.JemmyException;
import org.netbeans.jemmy.Outputable;
import org.netbeans.jemmy.TestOut;
import org.netbeans.jemmy.TimeoutExpiredException;
import org.netbeans.jemmy.Timeoutable;
import org.netbeans.jemmy.Timeouts;
import org.netbeans.jemmy.drivers.ButtonDriver;
import org.netbeans.jemmy.drivers.DriverManager;
/**
*
* <BR><BR>Timeouts used: <BR>
* AbstractButtonOperator.PushButtonTimeout - time between button pressing and
* releasing<BR>
* ComponentOperator.WaitComponentTimeout - time to wait button displayed <BR>
* ComponentOperator.WaitComponentEnabledTimeout - time to wait button enabled
* <BR>
* ComponentOperator.WaitStateTimeout - time to wait for text <BR>.
*
* @see org.netbeans.jemmy.Timeouts
*
* @author Alexandre Iline (alexandre.iline@oracle.com)
*
*/
public class AbstractButtonOperator extends JComponentOperator
implements Timeoutable, Outputable {
/**
* Identifier for a text property.
*
* @see #getDump
*/
public static final String TEXT_DPROP = "Text";
/**
* Identifier for a selected text property.
*
* @see #getDump
*/
public static final String IS_SELECTED_DPROP = "Selected";
/**
* Default value for AbstractButtonOperator.PushButtonTimeout timeout.
*/
private final static long PUSH_BUTTON_TIMEOUT = 0;
private Timeouts timeouts;
private TestOut output;
ButtonDriver driver;
/**
* Constructor.
*
* @param b The {@code java.awt.AbstractButton} managed by this
* instance.
*/
public AbstractButtonOperator(AbstractButton b) {
super(b);
driver = DriverManager.getButtonDriver(getClass());
}
/**
* Constructs an AbstractButtonOperator object.
*
* @param cont container
* @param chooser a component chooser specifying searching criteria.
* @param index an index between appropriate ones.
*/
public AbstractButtonOperator(ContainerOperator<?> cont, ComponentChooser chooser, int index) {
this((AbstractButton) cont.
waitSubComponent(new AbstractButtonFinder(chooser),
index));
copyEnvironment(cont);
}
/**
* Constructs an AbstractButtonOperator object.
*
* @param cont container
* @param chooser a component chooser specifying searching criteria.
*/
public AbstractButtonOperator(ContainerOperator<?> cont, ComponentChooser chooser) {
this(cont, chooser, 0);
}
/**
* Constructor. Waits for a component in a container to show. The component
* is identified as the {@code index+1}'th
* {@code javax.swing.AbstractButton} that shows, lies below the
* container in the display containment hierarchy, and that has the desired
* text. Uses cont's timeout and output for waiting and to init this
* operator.
*
* @param cont The operator for a container containing the sought for
* button.
* @param text Button text.
* @param index Ordinal component index. The first component has
* {@code index} 0.
* @see ComponentOperator#isCaptionEqual(String, String, boolean, boolean)
* @throws TimeoutExpiredException
*/
public AbstractButtonOperator(ContainerOperator<?> cont, String text, int index) {
this((AbstractButton) waitComponent(cont,
new AbstractButtonByLabelFinder(text,
cont.getComparator()),
index));
copyEnvironment(cont);
}
/**
* Constructor. Waits for a component in a container to show. The component
* is identified as the first {@code javax.swing.AbstractButton} that
* shows, lies below the container in the display containment hierarchy, and
* that has the desired text. Uses cont's timeout and output for waiting and
* to init this operator.
*
* @param cont The operator for a container containing the sought for
* button.
* @param text Button text.
* @see ComponentOperator#isCaptionEqual(String, String, boolean, boolean)
* @throws TimeoutExpiredException
*/
public AbstractButtonOperator(ContainerOperator<?> cont, String text) {
this(cont, text, 0);
}
/**
* Constructor. Waits component in container first. Uses cont's timeout and
* output for waiting and to init operator.
*
* @param cont The operator for a container containing the sought for
* button.
* @param index Ordinal component index.
* @see ComponentOperator#isCaptionEqual(String, String, boolean, boolean)
* @throws TimeoutExpiredException
*/
public AbstractButtonOperator(ContainerOperator<?> cont, int index) {
this((AbstractButton) waitComponent(cont,
new AbstractButtonFinder(),
index));
copyEnvironment(cont);
}
/**
* Constructor. Waits component in container first. Uses cont's timeout and
* output for waiting and to init operator.
*
* @param cont The operator for a container containing the sought for
* button.
* @see ComponentOperator#isCaptionEqual(String, String, boolean, boolean)
* @throws TimeoutExpiredException
*/
public AbstractButtonOperator(ContainerOperator<?> cont) {
this(cont, 0);
}
/**
* Searches AbstractButton in a container.
*
* @param cont Container in which to search for the component. The container
* lies above the component in the display containment hierarchy. The
* containment need not be direct.
* @param chooser org.netbeans.jemmy.ComponentChooser implementation,
* defining and applying search criteria.
* @param index Ordinal component index. The first {@code index} is 0.
* @return AbstractButton instance or null if component was not found.
*/
public static AbstractButton findAbstractButton(Container cont, ComponentChooser chooser, int index) {
return (AbstractButton) findComponent(cont, new AbstractButtonFinder(chooser), index);
}
/**
* Searches for the first AbstractButton in a container.
*
* @param cont Container in which to search for the component. The container
* lies above the component in the display containment hierarchy. The
* containment need not be direct.
* @param chooser org.netbeans.jemmy.ComponentChooser implementation,
* defining and applying search criteria.
* @return AbstractButton instance or null if component was not found.
*/
public static AbstractButton findAbstractButton(Container cont, ComponentChooser chooser) {
return findAbstractButton(cont, chooser, 0);
}
/**
* Searches AbstractButton by text.
*
* @param cont Container to search component in.
* @param text Button text. If null, contents is not checked.
* @param ce Compare text exactly.
* @param ccs Compare text case sensitively.
* @param index Ordinal component index.
* @return AbstractButton instance or null if component was not found.
* @see ComponentOperator#isCaptionEqual(String, String, boolean, boolean)
*/
public static AbstractButton findAbstractButton(Container cont, String text, boolean ce, boolean ccs, int index) {
return findAbstractButton(cont, new AbstractButtonByLabelFinder(text, new DefaultStringComparator(ce, ccs)), index);
}
/**
* Searches AbstractButton by text.
*
* @param cont Container to search component in.
* @param text Button text. If null, contents is not checked.
* @param ce Compare text exactly.
* @param ccs Compare text case sensitively.
* @return AbstractButton instance or null if component was not found.
* @see ComponentOperator#isCaptionEqual(String, String, boolean, boolean)
*/
public static AbstractButton findAbstractButton(Container cont, String text, boolean ce, boolean ccs) {
return findAbstractButton(cont, text, ce, ccs, 0);
}
/**
* Waits AbstractButton in container.
*
* @param cont Container to search component in.
* @param chooser org.netbeans.jemmy.ComponentChooser implementation.
* @param index Ordinal component index.
* @return AbstractButton instance.
* @throws TimeoutExpiredException
*/
public static AbstractButton waitAbstractButton(Container cont, ComponentChooser chooser, int index) {
return (AbstractButton) waitComponent(cont, new AbstractButtonFinder(chooser), index);
}
/**
* Waits 0'th AbstractButton in container.
*
* @param cont Container to search component in.
* @param chooser org.netbeans.jemmy.ComponentChooser implementation.
* @return AbstractButton instance.
* @throws TimeoutExpiredException
*/
public static AbstractButton waitAbstractButton(Container cont, ComponentChooser chooser) {
return waitAbstractButton(cont, chooser, 0);
}
/**
* Waits AbstractButton by text.
*
* @param cont Container to search component in.
* @param text Button text. If null, contents is not checked.
* @param ce Compare text exactly.
* @param ccs Compare text case sensitively.
* @param index Ordinal component index.
* @return AbstractButton instance.
* @see ComponentOperator#isCaptionEqual(String, String, boolean, boolean)
* @throws TimeoutExpiredException
*/
public static AbstractButton waitAbstractButton(Container cont, String text, boolean ce, boolean ccs, int index) {
return waitAbstractButton(cont, new AbstractButtonByLabelFinder(text, new DefaultStringComparator(ce, ccs)), index);
}
/**
* Waits AbstractButton by text.
*
* @param cont Container to search component in.
* @param text Button text. If null, contents is not checked.
* @param ce Compare text exactly.
* @param ccs Compare text case sensitively.
* @return AbstractButton instance.
* @see ComponentOperator#isCaptionEqual(String, String, boolean, boolean)
* @throws TimeoutExpiredException
*/
public static AbstractButton waitAbstractButton(Container cont, String text, boolean ce, boolean ccs) {
return waitAbstractButton(cont, text, ce, ccs, 0);
}
static {
Timeouts.initDefault("AbstractButtonOperator.PushButtonTimeout", PUSH_BUTTON_TIMEOUT);
}
@Override
public void setTimeouts(Timeouts timeouts) {
super.setTimeouts(timeouts);
this.timeouts = timeouts;
}
@Override
public Timeouts getTimeouts() {
return timeouts;
}
@Override
public void setOutput(TestOut out) {
output = out;
super.setOutput(output.createErrorOutput());
}
@Override
public TestOut getOutput() {
return output;
}
@Override
public void copyEnvironment(Operator anotherOperator) {
super.copyEnvironment(anotherOperator);
driver = DriverManager.getButtonDriver(this);
}
/**
* Pushs the button using a ButtonDriver registered for this operator.
*/
public void push() {
output.printLine("Push button\n :" + toStringSource());
output.printGolden("Push button");
makeComponentVisible();
try {
waitComponentEnabled();
} catch (InterruptedException e) {
throw (new JemmyException("Interrupted", e));
}
driver.push(this);
}
/**
* Runs {@code push()} method in a separate thread.
*/
public void pushNoBlock() {
produceNoBlocking(new NoBlockingAction<Void, Void>("Button pushing") {
@Override
public Void doAction(Void param) {
push();
return null;
}
});
}
/**
* Changes selection if necessary. Uses {@code push()} method in order
* to do so.
*
* @param selected a button selection.
*/
public void changeSelection(boolean selected) {
if (isSelected() != selected) {
push();
}
if (getVerification()) {
waitSelected(selected);
}
}
/**
* Runs {@code changeSelection(boolean)} method in a separate thread.
*
* @param selected a button selection.
*/
public void changeSelectionNoBlock(boolean selected) {
produceNoBlocking(new NoBlockingAction<Void, Boolean>("Button selection changing") {
@Override
public Void doAction(Boolean param) {
changeSelection(param);
return null;
}
}, selected ? Boolean.TRUE : Boolean.FALSE);
}
/**
* Press the button by mouse.
*
* @throws TimeoutExpiredException
*/
public void press() {
output.printLine("Press button\n :" + toStringSource());
output.printGolden("Press button");
makeComponentVisible();
try {
waitComponentEnabled();
} catch (InterruptedException e) {
throw (new JemmyException("Interrupted", e));
}
driver.press(this);
}
/**
* Releases the button by mouse.
*
* @throws TimeoutExpiredException
*/
public void release() {
output.printLine("Release button\n :" + toStringSource());
output.printGolden("Release button");
try {
waitComponentEnabled();
} catch (InterruptedException e) {
throw (new JemmyException("Interrupted", e));
}
driver.release(this);
}
/**
* Waits for button to be selected.
*
* @param selected a button selection.
*/
public void waitSelected(final boolean selected) {
getOutput().printLine("Wait button to be selected \n : "
+ toStringSource());
getOutput().printGolden("Wait button to be selected");
waitState(new ComponentChooser() {
@Override
public boolean checkComponent(Component comp) {
return isSelected() == selected;
}
@Override
public String getDescription() {
return ("Items has been "
+ (selected ? "" : "un") + "selected");
}
@Override
public String toString() {
return "waitSelected.ComponentChooser{description = " + getDescription() + '}';
}
});
}
/**
* Waits for text. Uses getComparator() comparator.
*
* @param text Text to wait for.
*/
public void waitText(String text) {
getOutput().printLine("Wait \"" + text + "\" text in component \n : "
+ toStringSource());
getOutput().printGolden("Wait \"" + text + "\" text");
waitState(new AbstractButtonByLabelFinder(text, getComparator()));
}
/**
* Returns information about component.
*/
@Override
public Hashtable<String, Object> getDump() {
Hashtable<String, Object> result = super.getDump();
if (((AbstractButton) getSource()).getText() != null) {
result.put(TEXT_DPROP, ((AbstractButton) getSource()).getText());
}
result.put(IS_SELECTED_DPROP, ((AbstractButton) getSource()).isSelected() ? "true" : "false");
return result;
}
////////////////////////////////////////////////////////
//Mapping //
/**
* Maps {@code AbstractButton.addActionListener(ActionListener)}
* through queue
*/
public void addActionListener(final ActionListener actionListener) {
runMapping(new MapVoidAction("addActionListener") {
@Override
public void map() {
((AbstractButton) getSource()).addActionListener(actionListener);
}
});
}
/**
* Maps {@code AbstractButton.addChangeListener(ChangeListener)}
* through queue
*/
public void addChangeListener(final ChangeListener changeListener) {
runMapping(new MapVoidAction("addChangeListener") {
@Override
public void map() {
((AbstractButton) getSource()).addChangeListener(changeListener);
}
});
}
/**
* Maps {@code AbstractButton.addItemListener(ItemListener)} through queue
*/
public void addItemListener(final ItemListener itemListener) {
runMapping(new MapVoidAction("addItemListener") {
@Override
public void map() {
((AbstractButton) getSource()).addItemListener(itemListener);
}
});
}
/**
* Maps {@code AbstractButton.doClick()} through queue
*/
public void doClick() {
runMapping(new MapVoidAction("doClick") {
@Override
public void map() {
((AbstractButton) getSource()).doClick();
}
});
}
/**
* Maps {@code AbstractButton.doClick(int)} through queue
*/
public void doClick(final int i) {
runMapping(new MapVoidAction("doClick") {
@Override
public void map() {
((AbstractButton) getSource()).doClick(i);
}
});
}
/**
* Maps {@code AbstractButton.getActionCommand()} through queue
*/
public String getActionCommand() {
return (runMapping(new MapAction<String>("getActionCommand") {
@Override
public String map() {
return ((AbstractButton) getSource()).getActionCommand();
}
}));
}
/**
* Maps {@code AbstractButton.getDisabledIcon()} through queue
*/
public Icon getDisabledIcon() {
return (runMapping(new MapAction<Icon>("getDisabledIcon") {
@Override
public Icon map() {
return ((AbstractButton) getSource()).getDisabledIcon();
}
}));
}
/**
* Maps {@code AbstractButton.getDisabledSelectedIcon()} through queue
*/
public Icon getDisabledSelectedIcon() {
return (runMapping(new MapAction<Icon>("getDisabledSelectedIcon") {
@Override
public Icon map() {
return ((AbstractButton) getSource()).getDisabledSelectedIcon();
}
}));
}
/**
* Maps {@code AbstractButton.getHorizontalAlignment()} through queue
*/
public int getHorizontalAlignment() {
return (runMapping(new MapIntegerAction("getHorizontalAlignment") {
@Override
public int map() {
return ((AbstractButton) getSource()).getHorizontalAlignment();
}
}));
}
/**
* Maps {@code AbstractButton.getHorizontalTextPosition()} through queue
*/
public int getHorizontalTextPosition() {
return (runMapping(new MapIntegerAction("getHorizontalTextPosition") {
@Override
public int map() {
return ((AbstractButton) getSource()).getHorizontalTextPosition();
}
}));
}
/**
* Maps {@code AbstractButton.getIcon()} through queue
*/
public Icon getIcon() {
return (runMapping(new MapAction<Icon>("getIcon") {
@Override
public Icon map() {
return ((AbstractButton) getSource()).getIcon();
}
}));
}
/**
* Maps {@code AbstractButton.getMargin()} through queue
*/
public Insets getMargin() {
return (runMapping(new MapAction<Insets>("getMargin") {
@Override
public Insets map() {
return ((AbstractButton) getSource()).getMargin();
}
}));
}
/**
* Maps {@code AbstractButton.getMnemonic()} through queue
*/
public int getMnemonic() {
return (runMapping(new MapIntegerAction("getMnemonic") {
@Override
public int map() {
return ((AbstractButton) getSource()).getMnemonic();
}
}));
}
/**
* Maps {@code AbstractButton.getModel()} through queue
*/
public ButtonModel getModel() {
return (runMapping(new MapAction<ButtonModel>("getModel") {
@Override
public ButtonModel map() {
return ((AbstractButton) getSource()).getModel();
}
}));
}
/**
* Maps {@code AbstractButton.getPressedIcon()} through queue
*/
public Icon getPressedIcon() {
return (runMapping(new MapAction<Icon>("getPressedIcon") {
@Override
public Icon map() {
return ((AbstractButton) getSource()).getPressedIcon();
}
}));
}
/**
* Maps {@code AbstractButton.getRolloverIcon()} through queue
*/
public Icon getRolloverIcon() {
return (runMapping(new MapAction<Icon>("getRolloverIcon") {
@Override
public Icon map() {
return ((AbstractButton) getSource()).getRolloverIcon();
}
}));
}
/**
* Maps {@code AbstractButton.getRolloverSelectedIcon()} through queue
*/
public Icon getRolloverSelectedIcon() {
return (runMapping(new MapAction<Icon>("getRolloverSelectedIcon") {
@Override
public Icon map() {
return ((AbstractButton) getSource()).getRolloverSelectedIcon();
}
}));
}
/**
* Maps {@code AbstractButton.getSelectedIcon()} through queue
*/
public Icon getSelectedIcon() {
return (runMapping(new MapAction<Icon>("getSelectedIcon") {
@Override
public Icon map() {
return ((AbstractButton) getSource()).getSelectedIcon();
}
}));
}
/**
* Maps {@code AbstractButton.getSelectedObjects()} through queue
*/
public Object[] getSelectedObjects() {
return ((Object[]) runMapping(new MapAction<Object>("getSelectedObjects") {
@Override
public Object map() {
return ((AbstractButton) getSource()).getSelectedObjects();
}
}));
}
/**
* Maps {@code AbstractButton.getText()} through queue
*/
public String getText() {
return (runMapping(new MapAction<String>("getText") {
@Override
public String map() {
return ((AbstractButton) getSource()).getText();
}
}));
}
/**
* Maps {@code AbstractButton.getUI()} through queue
*/
public ButtonUI getUI() {
return (runMapping(new MapAction<ButtonUI>("getUI") {
@Override
public ButtonUI map() {
return ((AbstractButton) getSource()).getUI();
}
}));
}
/**
* Maps {@code AbstractButton.getVerticalAlignment()} through queue
*/
public int getVerticalAlignment() {
return (runMapping(new MapIntegerAction("getVerticalAlignment") {
@Override
public int map() {
return ((AbstractButton) getSource()).getVerticalAlignment();
}
}));
}
/**
* Maps {@code AbstractButton.getVerticalTextPosition()} through queue
*/
public int getVerticalTextPosition() {
return (runMapping(new MapIntegerAction("getVerticalTextPosition") {
@Override
public int map() {
return ((AbstractButton) getSource()).getVerticalTextPosition();
}
}));
}
/**
* Maps {@code AbstractButton.isBorderPainted()} through queue
*/
public boolean isBorderPainted() {
return (runMapping(new MapBooleanAction("isBorderPainted") {
@Override
public boolean map() {
return ((AbstractButton) getSource()).isBorderPainted();
}
}));
}
/**
* Maps {@code AbstractButton.isContentAreaFilled()} through queue
*/
public boolean isContentAreaFilled() {
return (runMapping(new MapBooleanAction("isContentAreaFilled") {
@Override
public boolean map() {
return ((AbstractButton) getSource()).isContentAreaFilled();
}
}));
}
/**
* Maps {@code AbstractButton.isFocusPainted()} through queue
*/
public boolean isFocusPainted() {
return (runMapping(new MapBooleanAction("isFocusPainted") {
@Override
public boolean map() {
return ((AbstractButton) getSource()).isFocusPainted();
}
}));
}
/**
* Maps {@code AbstractButton.isRolloverEnabled()} through queue
*/
public boolean isRolloverEnabled() {
return (runMapping(new MapBooleanAction("isRolloverEnabled") {
@Override
public boolean map() {
return ((AbstractButton) getSource()).isRolloverEnabled();
}
}));
}
/**
* Maps {@code AbstractButton.isSelected()} through queue
*/
public boolean isSelected() {
return (runMapping(new MapBooleanAction("isSelected") {
@Override
public boolean map() {
return ((AbstractButton) getSource()).isSelected();
}
}));
}
/**
* Maps {@code AbstractButton.removeActionListener(ActionListener)}
* through queue
*/
public void removeActionListener(final ActionListener actionListener) {
runMapping(new MapVoidAction("removeActionListener") {
@Override
public void map() {
((AbstractButton) getSource()).removeActionListener(actionListener);
}
});
}
/**
* Maps {@code AbstractButton.removeChangeListener(ChangeListener)}
* through queue
*/
public void removeChangeListener(final ChangeListener changeListener) {
runMapping(new MapVoidAction("removeChangeListener") {
@Override
public void map() {
((AbstractButton) getSource()).removeChangeListener(changeListener);
}
});
}
/**
* Maps {@code AbstractButton.removeItemListener(ItemListener)} through queue
*/
public void removeItemListener(final ItemListener itemListener) {
runMapping(new MapVoidAction("removeItemListener") {
@Override
public void map() {
((AbstractButton) getSource()).removeItemListener(itemListener);
}
});
}
/**
* Maps {@code AbstractButton.setActionCommand(String)} through queue
*/
public void setActionCommand(final String string) {
runMapping(new MapVoidAction("setActionCommand") {
@Override
public void map() {
((AbstractButton) getSource()).setActionCommand(string);
}
});
}
/**
* Maps {@code AbstractButton.setBorderPainted(boolean)} through queue
*/
public void setBorderPainted(final boolean b) {
runMapping(new MapVoidAction("setBorderPainted") {
@Override
public void map() {
((AbstractButton) getSource()).setBorderPainted(b);
}
});
}
/**
* Maps {@code AbstractButton.setContentAreaFilled(boolean)} through queue
*/
public void setContentAreaFilled(final boolean b) {
runMapping(new MapVoidAction("setContentAreaFilled") {
@Override
public void map() {
((AbstractButton) getSource()).setContentAreaFilled(b);
}
});
}
/**
* Maps {@code AbstractButton.setDisabledIcon(Icon)} through queue
*/
public void setDisabledIcon(final Icon icon) {
runMapping(new MapVoidAction("setDisabledIcon") {
@Override
public void map() {
((AbstractButton) getSource()).setDisabledIcon(icon);
}
});
}
/**
* Maps {@code AbstractButton.setDisabledSelectedIcon(Icon)} through queue
*/
public void setDisabledSelectedIcon(final Icon icon) {
runMapping(new MapVoidAction("setDisabledSelectedIcon") {
@Override
public void map() {
((AbstractButton) getSource()).setDisabledSelectedIcon(icon);
}
});
}
/**
* Maps {@code AbstractButton.setFocusPainted(boolean)} through queue
*/
public void setFocusPainted(final boolean b) {
runMapping(new MapVoidAction("setFocusPainted") {
@Override
public void map() {
((AbstractButton) getSource()).setFocusPainted(b);
}
});
}
/**
* Maps {@code AbstractButton.setHorizontalAlignment(int)} through queue
*/
public void setHorizontalAlignment(final int i) {
runMapping(new MapVoidAction("setHorizontalAlignment") {
@Override
public void map() {
((AbstractButton) getSource()).setHorizontalAlignment(i);
}
});
}
/**
* Maps {@code AbstractButton.setHorizontalTextPosition(int)} through queue
*/
public void setHorizontalTextPosition(final int i) {
runMapping(new MapVoidAction("setHorizontalTextPosition") {
@Override
public void map() {
((AbstractButton) getSource()).setHorizontalTextPosition(i);
}
});
}
/**
* Maps {@code AbstractButton.setIcon(Icon)} through queue
*/
public void setIcon(final Icon icon) {
runMapping(new MapVoidAction("setIcon") {
@Override
public void map() {
((AbstractButton) getSource()).setIcon(icon);
}
});
}
/**
* Maps {@code AbstractButton.setMargin(Insets)} through queue
*/
public void setMargin(final Insets insets) {
runMapping(new MapVoidAction("setMargin") {
@Override
public void map() {
((AbstractButton) getSource()).setMargin(insets);
}
});
}
/**
* Maps {@code AbstractButton.setMnemonic(char)} through queue
*/
public void setMnemonic(final char c) {
runMapping(new MapVoidAction("setMnemonic") {
@Override
public void map() {
((AbstractButton) getSource()).setMnemonic(c);
}
});
}
/**
* Maps {@code AbstractButton.setMnemonic(int)} through queue
*/
public void setMnemonic(final int i) {
runMapping(new MapVoidAction("setMnemonic") {
@Override
public void map() {
((AbstractButton) getSource()).setMnemonic(i);
}
});
}
/**
* Maps {@code AbstractButton.setModel(ButtonModel)} through queue
*/
public void setModel(final ButtonModel buttonModel) {
runMapping(new MapVoidAction("setModel") {
@Override
public void map() {
((AbstractButton) getSource()).setModel(buttonModel);
}
});
}
/**
* Maps {@code AbstractButton.setPressedIcon(Icon)} through queue
*/
public void setPressedIcon(final Icon icon) {
runMapping(new MapVoidAction("setPressedIcon") {
@Override
public void map() {
((AbstractButton) getSource()).setPressedIcon(icon);
}
});
}
/**
* Maps {@code AbstractButton.setRolloverEnabled(boolean)} through queue
*/
public void setRolloverEnabled(final boolean b) {
runMapping(new MapVoidAction("setRolloverEnabled") {
@Override
public void map() {
((AbstractButton) getSource()).setRolloverEnabled(b);
}
});
}
/**
* Maps {@code AbstractButton.setRolloverIcon(Icon)} through queue
*/
public void setRolloverIcon(final Icon icon) {
runMapping(new MapVoidAction("setRolloverIcon") {
@Override
public void map() {
((AbstractButton) getSource()).setRolloverIcon(icon);
}
});
}
/**
* Maps {@code AbstractButton.setRolloverSelectedIcon(Icon)} through queue
*/
public void setRolloverSelectedIcon(final Icon icon) {
runMapping(new MapVoidAction("setRolloverSelectedIcon") {
@Override
public void map() {
((AbstractButton) getSource()).setRolloverSelectedIcon(icon);
}
});
}
/**
* Maps {@code AbstractButton.setSelected(boolean)} through queue
*/
public void setSelected(final boolean b) {
runMapping(new MapVoidAction("setSelected") {
@Override
public void map() {
((AbstractButton) getSource()).setSelected(b);
}
});
}
/**
* Maps {@code AbstractButton.setSelectedIcon(Icon)} through queue
*/
public void setSelectedIcon(final Icon icon) {
runMapping(new MapVoidAction("setSelectedIcon") {
@Override
public void map() {
((AbstractButton) getSource()).setSelectedIcon(icon);
}
});
}
/**
* Maps {@code AbstractButton.setText(String)} through queue
*/
public void setText(final String string) {
runMapping(new MapVoidAction("setText") {
@Override
public void map() {
((AbstractButton) getSource()).setText(string);
}
});
}
/**
* Maps {@code AbstractButton.setUI(ButtonUI)} through queue
*/
public void setUI(final ButtonUI buttonUI) {
runMapping(new MapVoidAction("setUI") {
@Override
public void map() {
((AbstractButton) getSource()).setUI(buttonUI);
}
});
}
/**
* Maps {@code AbstractButton.setVerticalAlignment(int)} through queue
*/
public void setVerticalAlignment(final int i) {
runMapping(new MapVoidAction("setVerticalAlignment") {
@Override
public void map() {
((AbstractButton) getSource()).setVerticalAlignment(i);
}
});
}
/**
* Maps {@code AbstractButton.setVerticalTextPosition(int)} through queue
*/
public void setVerticalTextPosition(final int i) {
runMapping(new MapVoidAction("setVerticalTextPosition") {
@Override
public void map() {
((AbstractButton) getSource()).setVerticalTextPosition(i);
}
});
}
//End of mapping //
////////////////////////////////////////////////////////
/**
* Allows to find component by text.
*/
public static class AbstractButtonByLabelFinder implements ComponentChooser {
String label;
StringComparator comparator;
/**
* Constructs AbstractButtonByLabelFinder.
*
* @param lb a text pattern
* @param comparator specifies string comparision algorithm.
*/
public AbstractButtonByLabelFinder(String lb, StringComparator comparator) {
label = lb;
this.comparator = comparator;
}
/**
* Constructs AbstractButtonByLabelFinder.
*
* @param lb a text pattern
*/
public AbstractButtonByLabelFinder(String lb) {
this(lb, Operator.getDefaultStringComparator());
}
@Override
public boolean checkComponent(Component comp) {
if (comp instanceof AbstractButton) {
if (((AbstractButton) comp).getText() != null) {
return (comparator.equals(((AbstractButton) comp).getText(),
label));
}
}
return false;
}
@Override
public String getDescription() {
return "AbstractButton with text \"" + label + "\"";
}
@Override
public String toString() {
return "AbstractButtonByLabelFinder{" + "label=" + label + ", comparator=" + comparator + '}';
}
}
/**
* Checks component type.
*/
public static class AbstractButtonFinder extends Finder {
/**
* Constructs AbstractButtonFinder.
*
* @param sf other searching criteria.
*/
public AbstractButtonFinder(ComponentChooser sf) {
super(AbstractButton.class, sf);
}
/**
* Constructs AbstractButtonFinder.
*/
public AbstractButtonFinder() {
super(AbstractButton.class);
}
}
}