Files
JIMRI/java/test/jmri/jmrit/display/palette/TableItemPanelTest.java
T
2026-06-17 14:00:51 +02:00

135 lines
4.6 KiB
Java

package jmri.jmrit.display.palette;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import javax.swing.JScrollPane;
import jmri.Turnout;
import jmri.jmrit.display.DisplayFrame;
import jmri.jmrit.display.controlPanelEditor.ControlPanelEditor;
import jmri.jmrit.picker.PickListModel;
import jmri.util.JUnitUtil;
import jmri.util.junit.annotations.DisabledIfHeadless;
import org.junit.jupiter.api.*;
import org.netbeans.jemmy.operators.*;
/**
*
* @author Paul Bender Copyright (C) 2017
*/
@DisabledIfHeadless
public class TableItemPanelTest {
@Test
public void testCTor() {
PickListModel<Turnout> tableModel = PickListModel.turnoutPickModelInstance();
DisplayFrame df = new DisplayFrame("Table Item Panel Test"); // NOI18N
TableItemPanel<Turnout> t = new TableItemPanel<>(df,"IS01","",tableModel);
assertNotNull( t, "exists");
JUnitUtil.dispose(df);
}
@Test
public void testShowTurnoutIcons() {
ControlPanelEditor editor = new ControlPanelEditor("EdItemPalette");
assertNotNull( editor, "exists");
JFrameOperator fo = new JFrameOperator(ItemPalette.getDefault("ItemPalette", editor));
ItemPalette._tabPane.setSelectedIndex(0);
JScrollPane sp = (JScrollPane)ItemPalette._tabPane.getComponentAt(0);
ItemPanel panel = (ItemPanel)sp.getViewport().getView();
assertNotNull( panel, "ItemPanel exists");
assertEquals( "Turnout", panel._itemType, "ItemPanel._itemType");
new JButtonOperator(fo, Bundle.getMessage("ShowIcons")).doClick();
new JButtonOperator(fo, Bundle.getMessage("HideIcons")).doClick();
new JButtonOperator(fo, Bundle.getMessage("ButtonEditIcons")).doClick();
fo.requestClose();
fo.waitClosed();
JUnitUtil.dispose(editor);
}
@Test
public void testShowIndicatorTurnoutIcons() {
ControlPanelEditor editor = new ControlPanelEditor("EdItemPalette");
assertNotNull( editor, "exists");
JFrameOperator fo = new JFrameOperator(ItemPalette.getDefault("ItemPalette", editor));
ItemPalette._tabPane.setSelectedIndex(14);
JScrollPane sp = (JScrollPane)ItemPalette._tabPane.getComponentAt(15);
ItemPanel panel = (ItemPanel)sp.getViewport().getView();
assertNotNull( panel, "ItemPanel exists");
assertEquals( "IndicatorTO", panel._itemType, "ItemPanel._itemType");
new JButtonOperator(fo, Bundle.getMessage("ShowIcons")).doClick();
new JButtonOperator(fo, Bundle.getMessage("HideIcons")).doClick();
new JButtonOperator(fo, Bundle.getMessage("ButtonEditIcons")).doClick();
fo.requestClose();
fo.waitClosed();
JUnitUtil.dispose(editor);
}
@Test
public void testNewSensorFamily() {
ControlPanelEditor editor = new ControlPanelEditor("EdItemPalette");
assertNotNull( editor, "exists");
JFrameOperator fo = new JFrameOperator(ItemPalette.getDefault("ItemPalette", editor));
ItemPalette._tabPane.setSelectedIndex(1);
JScrollPane sp = (JScrollPane)ItemPalette._tabPane.getComponentAt(1);
ItemPanel panel = (ItemPanel)sp.getViewport().getView();
assertNotNull( panel, "ItemPanel exists");
assertEquals( "Sensor", panel._itemType, "ItemPanel._itemType");
JButtonOperator bo = new JButtonOperator(fo, Bundle.getMessage("ShowIcons"));
bo.doClick();
Thread t = new Thread(() -> {
// constructor for jdo will wait until the dialog is visible
JDialogOperator jdo = new JDialogOperator(fo, Bundle.getMessage("createNewFamily"));
new JTextFieldOperator(jdo, 0).enterText("My Family Name");
new JButtonOperator(jdo, Bundle.getMessage("ButtonOK")).doClick();
});
t.setName("Close New Family Name Dialog Thread");
t.start();
String labelNewFamily = Bundle.getMessage("createNewFamily");
bo = new JButtonOperator(fo, labelNewFamily);
bo.doClick();
JUnitUtil.waitFor(() -> !t.isAlive(), "New Family Name Dialog Thread Complete");
JFrameOperator myFamilyFrameOp = new JFrameOperator("Edit Icons for My Family Name");
myFamilyFrameOp.requestClose();
myFamilyFrameOp.waitClosed();
fo.requestClose();
fo.waitClosed();
JUnitUtil.dispose(editor);
}
@BeforeEach
public void setUp() {
JUnitUtil.setUp();
JUnitUtil.resetProfileManager();
}
@AfterEach
public void tearDown() {
JUnitUtil.deregisterBlockManagerShutdownTask();
JUnitUtil.tearDown();
}
}