Search in sources :

Example 11 with Path

use of jmri.Path in project JMRI by JMRI.

the class DetectionPanel method makePathList.

private void makePathList(OBlock block) {
    _blockPathPanel.remove(_checkBoxPanel);
    _checkBoxPanel = new JPanel();
    _checkBoxPanel.setLayout(new BoxLayout(_checkBoxPanel, BoxLayout.Y_AXIS));
    _checkBoxPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(java.awt.Color.black), Bundle.getMessage("circuitPaths")));
    _checkBoxPanel.add(Box.createHorizontalStrut(100));
    _block = block;
    _pathBoxes = new ArrayList<JCheckBox>();
    List<Path> paths = _block.getPaths();
    for (int i = 0; i < paths.size(); i++) {
        String name = ((OPath) paths.get(i)).getName();
        if (name.length() < 25) {
            char[] ca = new char[25];
            for (int j = 0; j < name.length(); j++) {
                ca[j] = name.charAt(j);
            }
            for (int j = name.length(); j < 25; j++) {
                ca[j] = ' ';
            }
            name = new String(ca);
        }
        JCheckBox box = new JCheckBox(name);
        box.setName(name);
        _pathBoxes.add(box);
        _checkBoxPanel.add(box);
    }
    _blockPathPanel.add(_checkBoxPanel, 1);
    _blockPathPanel.setVisible(true);
}
Also used : JCheckBox(javax.swing.JCheckBox) OPath(jmri.jmrit.logix.OPath) Path(jmri.Path) JPanel(javax.swing.JPanel) BoxLayout(javax.swing.BoxLayout) OPath(jmri.jmrit.logix.OPath)

Example 12 with Path

use of jmri.Path in project JMRI by JMRI.

the class WarrantTableAction method checkPathPortals.

/**
     * Validation of paths within a block. Gathers messages in a text area that
     * can be displayed after all are written.
     *
     * @param b the block to validate
     */
@SuppressFBWarnings(value = "BC_UNCONFIRMED_CAST_OF_RETURN_VALUE", justification = "OPath extends Path")
public static void checkPathPortals(OBlock b) {
    if (log.isDebugEnabled()) {
        log.debug("checkPathPortals for " + b.getDisplayName());
    }
    // warn user of incomplete blocks and portals
    if (_textArea == null) {
        _textArea = new javax.swing.JTextArea(10, 50);
        _textArea.setEditable(false);
        _textArea.setTabSize(4);
        _textArea.append(Bundle.getMessage("ErrWarnAreaMsg"));
        _textArea.append("\n\n");
    }
    List<Path> pathList = b.getPaths();
    if (pathList.isEmpty()) {
        _textArea.append(Bundle.getMessage("NoPaths", b.getDisplayName()));
        _textArea.append("\n");
        _hasErrors = true;
        return;
    }
    List<Portal> portalList = b.getPortals();
    // make list of names of all portals.  Then remove those we check, leaving the orphans
    ArrayList<String> portalNameList = new ArrayList<>();
    for (int i = 0; i < portalList.size(); i++) {
        Portal portal = portalList.get(i);
        if (portal.getFromPaths().isEmpty()) {
            _textArea.append(Bundle.getMessage("BlockPortalNoPath", portal.getName(), portal.getFromBlockName()));
            _textArea.append("\n");
            _hasErrors = true;
            return;
        }
        if (portal.getToPaths().isEmpty()) {
            _textArea.append(Bundle.getMessage("BlockPortalNoPath", portal.getName(), portal.getToBlockName()));
            _textArea.append("\n");
            _hasErrors = true;
            return;
        }
        portalNameList.add(portal.getName());
    }
    Iterator<Path> iter = pathList.iterator();
    while (iter.hasNext()) {
        OPath path = (OPath) iter.next();
        OBlock block = (OBlock) path.getBlock();
        if (block == null || !block.equals(b)) {
            _textArea.append(Bundle.getMessage("PathWithBadBlock", path.getName(), b.getDisplayName()));
            _textArea.append("\n");
            _hasErrors = true;
            return;
        }
        String msg = null;
        boolean hasPortal = false;
        Portal fromPortal = path.getFromPortal();
        if (fromPortal != null) {
            if (!fromPortal.isValid()) {
                msg = fromPortal.getName();
            }
            hasPortal = true;
            portalNameList.remove(fromPortal.getName());
        }
        Portal toPortal = path.getToPortal();
        if (toPortal != null) {
            if (!toPortal.isValid()) {
                msg = toPortal.getName();
            }
            hasPortal = true;
            portalNameList.remove(toPortal.getName());
            if (fromPortal != null && fromPortal.equals(toPortal)) {
                _textArea.append(Bundle.getMessage("PathWithDuplicatePortal", path.getName(), b.getDisplayName()));
                _textArea.append("\n");
            }
        }
        if (msg != null) {
            _textArea.append(Bundle.getMessage("PortalNeedsBlock", msg));
            _textArea.append("\n");
            _hasErrors = true;
        } else if (!hasPortal) {
            _textArea.append(Bundle.getMessage("PathNeedsPortal", path.getName(), b.getDisplayName()));
            _textArea.append("\n");
            _hasErrors = true;
        }
        // check that the path's portals have the path in their lists
        boolean validPath;
        if (toPortal != null) {
            if (fromPortal != null) {
                validPath = toPortal.isValidPath(path) && fromPortal.isValidPath(path);
            } else {
                validPath = toPortal.isValidPath(path);
            }
        } else {
            if (fromPortal != null) {
                validPath = fromPortal.isValidPath(path);
            } else {
                validPath = false;
            }
        }
        if (!validPath) {
            _textArea.append(Bundle.getMessage("PathNotConnectedToPortal", path.getName(), b.getDisplayName()));
            _textArea.append("\n");
            _hasErrors = true;
        }
    }
    for (int i = 0; i < portalNameList.size(); i++) {
        _textArea.append(Bundle.getMessage("BlockPortalNoPath", portalNameList.get(i), b.getDisplayName()));
        _textArea.append("\n");
        _hasErrors = true;
    }
    // check whether any turnouts are shared between two blocks;
    checkSharedTurnouts(b);
}
Also used : Path(jmri.Path) ArrayList(java.util.ArrayList) JTextArea(javax.swing.JTextArea) SuppressFBWarnings(edu.umd.cs.findbugs.annotations.SuppressFBWarnings)

Example 13 with Path

use of jmri.Path in project JMRI by JMRI.

the class BlockManagerXmlTest method testStore.

/**
     * This test checks that the store operation runs, but doesn't check the
     * output for correctness.
     */
public void testStore() throws jmri.JmriException {
    JUnitUtil.resetInstanceManager();
    JUnitUtil.initConfigureManager();
    JUnitUtil.initInternalTurnoutManager();
    JUnitUtil.initInternalLightManager();
    JUnitUtil.initInternalSensorManager();
    JUnitUtil.initMemoryManager();
    JUnitUtil.initLayoutBlockManager();
    Block b1 = InstanceManager.getDefault(jmri.BlockManager.class).createNewBlock("SystemNameb1", "");
    Block b2 = InstanceManager.getDefault(jmri.BlockManager.class).createNewBlock("SystemNameb2", "");
    Sensor s2 = new AbstractSensor("IS2") {

        @Override
        public void requestUpdateFromLayout() {
        }
    };
    b2.setSensor("IS2");
    s2.setState(Sensor.ACTIVE);
    b2.setValue("b2 contents");
    Path p21 = new Path();
    p21.setBlock(b1);
    p21.setFromBlockDirection(Path.RIGHT);
    p21.setToBlockDirection(Path.LEFT);
    p21.addSetting(new BeanSetting(new jmri.implementation.AbstractTurnout("IT1") {

        @Override
        public void turnoutPushbuttonLockout(boolean b) {
        }

        @Override
        public void forwardCommandChangeToLayout(int i) {
        }
    }, jmri.Turnout.THROWN));
    b2.addPath(p21);
//BlockManagerXml tb = new BlockManagerXml();
}
Also used : Path(jmri.Path) BeanSetting(jmri.BeanSetting) Block(jmri.Block) AbstractSensor(jmri.implementation.AbstractSensor) Sensor(jmri.Sensor) AbstractSensor(jmri.implementation.AbstractSensor)

Example 14 with Path

use of jmri.Path in project JMRI by JMRI.

the class BlockManagerXmlTest method testLoadCurrent.

public void testLoadCurrent() throws Exception {
    JUnitUtil.resetInstanceManager();
    JUnitUtil.initConfigureManager();
    JUnitUtil.initInternalTurnoutManager();
    JUnitUtil.initInternalLightManager();
    JUnitUtil.initInternalSensorManager();
    JUnitUtil.initMemoryManager();
    JUnitUtil.initLayoutBlockManager();
    // load file
    InstanceManager.getDefault(ConfigureManager.class).load(new java.io.File("java/test/jmri/configurexml/load/BlockManagerXmlTest.xml"));
    // check existance of blocks
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("IB1"));
    Assert.assertNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("no block"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("IB2"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("IB3"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("IB4"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("IB5"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("IB6"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("IB7"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("IB8"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("IB9"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("IB10"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("IB11"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("IB12"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blocknorthwest"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blocknorth"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blocknorthsiding"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blocknortheast"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blockeast"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blockeastsiding"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blocksoutheast"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blocksouth"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blocksouthsiding"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blocksouthwest"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blockwest"));
    Assert.assertNotNull(InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blockwestsiding"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("ILB1"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("ILB2"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("ILB3"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("ILB4"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("ILB5"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("ILB6"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("ILB7"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("ILB8"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("ILB9"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("ILB10"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("ILB11"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("ILB12"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("blocknorthwest"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("blocknorth"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("blocknorthsiding"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("blocknortheast"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("blockeast"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("blockeastsiding"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("blocksoutheast"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("blocksouth"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("blocksouthsiding"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("blocksouthwest"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("blockwest"));
    //         Assert.assertNotNull(InstanceManager.getDefault(LayoutBlockManager.class).getLayoutBlock("blockwestsiding"));
    // check existance of turmouts
    Assert.assertNotNull(InstanceManager.turnoutManagerInstance().getTurnout("IT1"));
    Assert.assertNull(InstanceManager.turnoutManagerInstance().getTurnout("no turnout"));
    Assert.assertNotNull(InstanceManager.turnoutManagerInstance().getTurnout("IT2"));
    Assert.assertNotNull(InstanceManager.turnoutManagerInstance().getTurnout("IT3"));
    Assert.assertNotNull(InstanceManager.turnoutManagerInstance().getTurnout("IT4"));
    Assert.assertNotNull(InstanceManager.turnoutManagerInstance().getTurnout("IT5"));
    Assert.assertNotNull(InstanceManager.turnoutManagerInstance().getTurnout("IT6"));
    Assert.assertNotNull(InstanceManager.turnoutManagerInstance().getTurnout("IT7"));
    Assert.assertNotNull(InstanceManager.turnoutManagerInstance().getTurnout("IT8"));
    // check existance of memories        
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("IM:AUTO:0001"));
    Assert.assertNull(InstanceManager.memoryManagerInstance().getMemory("no memory"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("IM:AUTO:0002"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("IM:AUTO:0003"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("IM:AUTO:0004"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("IM:AUTO:0005"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("IM:AUTO:0006"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("IM:AUTO:0007"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("IM:AUTO:0008"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("IM:AUTO:0009"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("IM:AUTO:0010"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("IM:AUTO:0011"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("IM:AUTO:0012"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("blocknorthwestmemory"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("blocknorthmemory"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("blocknorthsidingmemory"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("blocknortheastmemory"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("blockeastmemory"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("blockeastsidingmemory"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("blocksoutheastmemory"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("blocksouthmemory"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("blocksouthsidingmemory"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("blocksouthwestmemory"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("blockwestmemory"));
    Assert.assertNotNull(InstanceManager.memoryManagerInstance().getMemory("blockwestsidingmemory"));
    // check existance of sensors
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("ISBO1"));
    Assert.assertNull(InstanceManager.sensorManagerInstance().getSensor("no sensor"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("ISBO2"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("ISBO3"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("ISBO4"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("ISBO5"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("ISBO6"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("ISBO7"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("ISBO8"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("ISBO9"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("ISBO10"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("ISBO11"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("ISBO12"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("blocknorthwestoccupied"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("blocknorthoccupied"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("blocknorthsidingoccupied"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("blocknortheastoccupied"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("blockeastoccupied"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("blockeastsidingoccupied"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("blocksoutheastoccupied"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("blocksouthoccupied"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("blocksouthsidingoccupied"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("blocksouthwestoccupied"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("blockwestoccupied"));
    Assert.assertNotNull(InstanceManager.sensorManagerInstance().getSensor("blockwestsidingoccupied"));
    // check existance of paths between blocks
    Block[] blockstotest;
    Sensor[] occupiedsensor;
    int[] expectedpreviouspaths;
    int[] expectednextpaths;
    //Make sure this is bigger than the list below
    blockstotest = new Block[12];
    //Make sure this is bigger than the list below
    occupiedsensor = new Sensor[12];
    //Make sure this is bigger than the list below
    expectedpreviouspaths = new int[12];
    //Make sure this is bigger than the list below
    expectednextpaths = new int[12];
    Boolean[] passprevioustest;
    Boolean[] passnexttest;
    //Make sure this is bigger than needed
    passprevioustest = new Boolean[4];
    //Make sure this is bigger than needed
    passnexttest = new Boolean[4];
    Block[][] previousblock;
    //Make sure this is bigger than the list below
    previousblock = new Block[12][4];
    Block[][] nextblock;
    //Make sure this is bigger than the list below
    nextblock = new Block[12][4];
    //  This matches up with the test file, ...
    blockstotest[0] = InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blocknorthwest");
    Assert.assertNotNull(blockstotest[0]);
    occupiedsensor[0] = InstanceManager.sensorManagerInstance().getSensor("blocknorthwestoccupied");
    Assert.assertNotNull(occupiedsensor[0]);
    blockstotest[1] = InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blocknorth");
    Assert.assertNotNull(blockstotest[1]);
    occupiedsensor[1] = InstanceManager.sensorManagerInstance().getSensor("blocknorthoccupied");
    Assert.assertNotNull(occupiedsensor[1]);
    blockstotest[2] = InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blocknorthsiding");
    Assert.assertNotNull(blockstotest[2]);
    occupiedsensor[2] = InstanceManager.sensorManagerInstance().getSensor("blocknorthsidingoccupied");
    Assert.assertNotNull(occupiedsensor[2]);
    blockstotest[3] = InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blocknortheast");
    Assert.assertNotNull(blockstotest[3]);
    occupiedsensor[3] = InstanceManager.sensorManagerInstance().getSensor("blocknortheastoccupied");
    Assert.assertNotNull(occupiedsensor[3]);
    blockstotest[4] = InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blockeast");
    Assert.assertNotNull(blockstotest[4]);
    occupiedsensor[4] = InstanceManager.sensorManagerInstance().getSensor("blockeastoccupied");
    Assert.assertNotNull(occupiedsensor[4]);
    blockstotest[5] = InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blockeastsiding");
    Assert.assertNotNull(blockstotest[5]);
    occupiedsensor[5] = InstanceManager.sensorManagerInstance().getSensor("blockeastsidingoccupied");
    Assert.assertNotNull(occupiedsensor[5]);
    blockstotest[6] = InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blocksoutheast");
    Assert.assertNotNull(blockstotest[6]);
    occupiedsensor[6] = InstanceManager.sensorManagerInstance().getSensor("blocksoutheastoccupied");
    Assert.assertNotNull(occupiedsensor[6]);
    blockstotest[7] = InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blocksouth");
    Assert.assertNotNull(blockstotest[7]);
    occupiedsensor[7] = InstanceManager.sensorManagerInstance().getSensor("blocksouthoccupied");
    Assert.assertNotNull(occupiedsensor[7]);
    blockstotest[8] = InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blocksouthsiding");
    Assert.assertNotNull(blockstotest[8]);
    occupiedsensor[8] = InstanceManager.sensorManagerInstance().getSensor("blocksouthsidingoccupied");
    Assert.assertNotNull(occupiedsensor[8]);
    blockstotest[9] = InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blocksouthwest");
    Assert.assertNotNull(blockstotest[9]);
    occupiedsensor[9] = InstanceManager.sensorManagerInstance().getSensor("blocksouthwestoccupied");
    Assert.assertNotNull(occupiedsensor[9]);
    blockstotest[10] = InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blockwest");
    Assert.assertNotNull(blockstotest[10]);
    occupiedsensor[10] = InstanceManager.sensorManagerInstance().getSensor("blockwestoccupied");
    Assert.assertNotNull(occupiedsensor[10]);
    blockstotest[11] = InstanceManager.getDefault(jmri.BlockManager.class).getBlock("blockwestsiding");
    Assert.assertNotNull(blockstotest[11]);
    occupiedsensor[11] = InstanceManager.sensorManagerInstance().getSensor("blockwestsidingoccupied");
    Assert.assertNotNull(occupiedsensor[11]);
    // The references are circular so the definitons are split up, ...
    expectedpreviouspaths[0] = 2;
    previousblock[0][0] = blockstotest[10];
    previousblock[0][1] = blockstotest[11];
    expectednextpaths[0] = 2;
    nextblock[0][0] = blockstotest[1];
    nextblock[0][1] = blockstotest[2];
    expectedpreviouspaths[1] = 1;
    previousblock[1][0] = blockstotest[0];
    expectednextpaths[1] = 1;
    nextblock[1][0] = blockstotest[3];
    expectedpreviouspaths[2] = 1;
    previousblock[2][0] = blockstotest[0];
    expectednextpaths[2] = 1;
    nextblock[2][0] = blockstotest[3];
    expectedpreviouspaths[3] = 2;
    previousblock[3][0] = blockstotest[1];
    previousblock[3][1] = blockstotest[2];
    expectednextpaths[3] = 2;
    nextblock[3][0] = blockstotest[4];
    nextblock[3][1] = blockstotest[5];
    expectedpreviouspaths[4] = 1;
    previousblock[4][0] = blockstotest[3];
    expectednextpaths[4] = 1;
    nextblock[4][0] = blockstotest[6];
    expectedpreviouspaths[5] = 1;
    previousblock[5][0] = blockstotest[3];
    expectednextpaths[5] = 1;
    nextblock[5][0] = blockstotest[6];
    expectedpreviouspaths[6] = 2;
    previousblock[6][0] = blockstotest[4];
    previousblock[6][1] = blockstotest[5];
    expectednextpaths[6] = 2;
    nextblock[6][0] = blockstotest[7];
    nextblock[6][1] = blockstotest[8];
    expectedpreviouspaths[7] = 1;
    previousblock[7][0] = blockstotest[6];
    expectednextpaths[7] = 1;
    nextblock[7][0] = blockstotest[9];
    expectedpreviouspaths[8] = 1;
    previousblock[8][0] = blockstotest[6];
    expectednextpaths[8] = 1;
    nextblock[8][0] = blockstotest[9];
    expectedpreviouspaths[9] = 2;
    previousblock[9][0] = blockstotest[7];
    previousblock[9][1] = blockstotest[8];
    expectednextpaths[9] = 2;
    nextblock[9][0] = blockstotest[10];
    nextblock[9][1] = blockstotest[11];
    expectedpreviouspaths[10] = 1;
    previousblock[10][0] = blockstotest[9];
    expectednextpaths[10] = 1;
    nextblock[10][0] = blockstotest[0];
    expectedpreviouspaths[11] = 1;
    previousblock[11][0] = blockstotest[9];
    expectednextpaths[11] = 1;
    nextblock[11][0] = blockstotest[0];
    for (int testblockfocus = 0; testblockfocus < 12; testblockfocus++) {
        // Set to one greater than above
        int expectedcentrepaths = expectedpreviouspaths[testblockfocus] + expectednextpaths[testblockfocus];
        Block focusBlock = blockstotest[testblockfocus];
        Memory expectedtestmemory = InstanceManager.memoryManagerInstance().getMemory("blocknorthmemory");
        expectedtestmemory.setValue("Memory test: " + testblockfocus);
        Assert.assertNotNull(expectedtestmemory);
        // TODO: BOB C: Memory Test
        //            Memory actualtestmemory = (Memory) focusBlock.getValue();
        //            Assert.assertNotNull(actualtestmemory);
        //            Assert.assertEquals("Memory where Focus was: " + testblockfocus, expectedtestmemory, actualtestmemory);
        Assert.assertEquals("Sensor where Focus was: " + testblockfocus, occupiedsensor[testblockfocus].getSystemName(), focusBlock.getSensor().getSystemName());
        List<Path> testpaths = focusBlock.getPaths();
        Assert.assertEquals("Block Path size where Block Focus was: " + testblockfocus, expectedcentrepaths, testpaths.size());
        for (int p = 0; p < expectedpreviouspaths[testblockfocus]; p++) {
            passprevioustest[p] = false;
        }
        for (int n = 0; n < expectednextpaths[testblockfocus]; n++) {
            passnexttest[n] = false;
        }
        for (int i = 0; i < testpaths.size(); i++) {
            Block testblock = testpaths.get(i).getBlock();
            Assert.assertNotNull(testblock);
            for (int p = 0; p < expectedpreviouspaths[testblockfocus]; p++) {
                if (testblock == previousblock[testblockfocus][p]) {
                    passprevioustest[p] = true;
                }
            }
            for (int n = 0; n < expectednextpaths[testblockfocus]; n++) {
                if (testblock == nextblock[testblockfocus][n]) {
                    passnexttest[n] = true;
                }
            }
        }
        for (int p = 0; p < expectedpreviouspaths[testblockfocus]; p++) {
            Assert.assertTrue("Block Focus was: " + testblockfocus + " previous path: " + p, passprevioustest[p]);
        }
        for (int n = 0; n < expectednextpaths[testblockfocus]; n++) {
            Assert.assertTrue("Block Focus was: " + testblockfocus + " next path: " + n, passnexttest[n]);
        }
    }
}
Also used : Path(jmri.Path) Memory(jmri.Memory) ConfigureManager(jmri.ConfigureManager) Block(jmri.Block) Sensor(jmri.Sensor) AbstractSensor(jmri.implementation.AbstractSensor)

Aggregations

Path (jmri.Path)14 Block (jmri.Block)6 OPath (jmri.jmrit.logix.OPath)5 Point (java.awt.Point)3 Sensor (jmri.Sensor)3 Element (org.jdom2.Element)3 ArrayList (java.util.ArrayList)2 BeanSetting (jmri.BeanSetting)2 ConfigureManager (jmri.ConfigureManager)2 EntryPoint (jmri.EntryPoint)2 Memory (jmri.Memory)2 AbstractSensor (jmri.implementation.AbstractSensor)2 OBlock (jmri.jmrit.logix.OBlock)2 OBlockManager (jmri.jmrit.logix.OBlockManager)2 Portal (jmri.jmrit.logix.Portal)2 SuppressFBWarnings (edu.umd.cs.findbugs.annotations.SuppressFBWarnings)1 ActionEvent (java.awt.event.ActionEvent)1 ActionListener (java.awt.event.ActionListener)1 PropertyVetoException (java.beans.PropertyVetoException)1 BoxLayout (javax.swing.BoxLayout)1