Files
JIMRI/java/test/jmri/jmrit/consisttool/ConsistToolScaffold.java
T
2026-06-17 14:00:51 +02:00

115 lines
4.2 KiB
Java

package jmri.jmrit.consisttool;
import static org.junit.jupiter.api.Assertions.assertInstanceOf;
import java.awt.Component;
import javax.swing.JButton;
import jmri.DccLocoAddress;
import jmri.jmrit.DccLocoAddressSelector;
import org.netbeans.jemmy.operators.JButtonOperator;
import org.netbeans.jemmy.operators.JDialogOperator;
import org.netbeans.jemmy.operators.JFrameOperator;
import org.netbeans.jemmy.operators.JLabelOperator;
import org.netbeans.jemmy.operators.JRadioButtonOperator;
import org.netbeans.jemmy.operators.JMenuBarOperator;
import org.netbeans.jemmy.operators.JMenuOperator;
import org.netbeans.jemmy.operators.JMenuItemOperator;
import org.netbeans.jemmy.ComponentChooser;
/*
* Helper class for operating the Consist Tool Frame.
*
* @author Paul Bender Copyright (C) 2018
*/
public class ConsistToolScaffold extends JFrameOperator {
public ConsistToolScaffold() {
super(Bundle.getMessage("ConsistToolTitle"));
}
// push consist type buttons.
public void pushAdvancedConsistButton() {
new JRadioButtonOperator(this, Bundle.getMessage("AdvancedConsistButtonText")).push();
}
public void pushCommandStationConsistButton() {
new JRadioButtonOperator(this, Bundle.getMessage("CommandStationConsistButtonText")).push();
}
// fill out the consist address field
public void setConsistAddressValue(String value) {
DccLocoAddressSelector sel = (DccLocoAddressSelector) (new JLabelOperator(this, Bundle.getMessage("AddressLabelText")).getLabelFor());
int addr = Integer.parseInt(value);
sel.setAddress(new DccLocoAddress(addr, addr >= 100));
}
// push loco specific buttons at the top.
public void pushAddButton() {
new JButtonOperator(this, Bundle.getMessage("ButtonAddText")).push();
}
public void pushResetButton() {
new JButtonOperator(this, Bundle.getMessage("ButtonReset")).push();
}
// fill out the loco address field
public void setLocoAddressValue(String value) {
//new JTextFieldOperator((JTextField) new JLabelOperator(this,Bundle.getMessage("LocoLabelText")).getLabelFor()).setText(value);
DccLocoAddressSelector sel = (DccLocoAddressSelector) (new JLabelOperator(this, Bundle.getMessage("LocoLabelText")).getLabelFor());
int addr = Integer.parseInt(value);
sel.setAddress(new DccLocoAddress(addr, addr >= 100));
}
// push the buttons at the bottom.
public void pushDeleteButton() {
JButtonOperator jbo = new JButtonOperator(this, new ComponentChooser() {
@Override
public boolean checkComponent(Component comp) {
JButton jb = assertInstanceOf(JButton.class, comp);
String tooltip = jb.getToolTipText();
if (tooltip != null) {
return tooltip.equals(Bundle.getMessage("DeleteButtonToolTip"));
} else {
return false;
}
}
@Override
public String getDescription() {
return "tooltip for delete button";
}
}
);
jbo.push();
}
// push the buttons at the bottom and dismiss the resulting question dialog.
public void pushDeleteWithDismiss() {
pushDeleteButton();
// and dismiss the dialog that appears by pressing OK.
JDialogOperator jdo = new JDialogOperator(Bundle.getMessage("QuestionTitle"));
new JButtonOperator(jdo, Bundle.getMessage("ButtonYes")).push();
}
public void pushThrottleButton() {
new JButtonOperator(this, Bundle.getMessage("ThrottleButtonText")).push();
}
public void pushReverseButton() {
new JButtonOperator(this, Bundle.getMessage("ReverseButtonText")).push();
}
public void pushRestoreButton() {
new JButtonOperator(this, Bundle.getMessage("RestoreButtonText")).push();
}
public void startRosterScan() {
JMenuBarOperator jmbo = new JMenuBarOperator(this); // there's only one menubar
JMenuOperator jmo = new JMenuOperator(jmbo, Bundle.getMessage("MenuFile")); // NOI18N
jmo.push();
JMenuItemOperator jmio = new JMenuItemOperator(this, Bundle.getMessage("ScanConsists"));
jmio.push();
}
}