From: Dave D. <djd...@us...> - 2007-09-21 19:32:28
|
Update of /cvsroot/jmri/jmri/jmrit/display In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv31199 Modified Files: DisplayBundle.properties LayoutBlock.java LayoutEditor.java LayoutEditorBundle.properties LayoutEditorTools.java LayoutTurnout.java LevelXing.java PositionablePoint.java TrackSegment.java Log Message: Add new Layout Editor Tools Index: LayoutEditorBundle.properties =================================================================== RCS file: /cvsroot/jmri/jmri/jmrit/display/LayoutEditorBundle.properties,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** LayoutEditorBundle.properties 18 Sep 2007 14:08:40 -0000 1.3 --- LayoutEditorBundle.properties 21 Sep 2007 19:32:23 -0000 1.4 *************** *** 174,177 **** --- 174,178 ---- Block4ID = Block 4 Remove = Remove + SetSignals = Set Signals... Edit = Edit... RHTurnout = Right-Hand Turnout *************** *** 274,279 **** SignalsError10 = Error - Block "{0}" does not exist. Please correct name\nor assign this block to track on the panel. SignalsError11 = Error - Block "{0}" exists, but is not\nassigned to track on this panel. ! SignalsError12 = Error - No signal heads entered.\nPlease enter a signal head or cancel. SignalsError13 = Error - Cannot assign signal head "{0}" to this block boundary\nbecause it is already on the panel at a different place. InfoMessage1 = Sorry, Set Signals at Turnout does\nnot work with double crossover turnouts. InfoMessage2 = Sorry, cannot place signal heads at turnouts\nthat are not oriented vertical or horizontal. --- 275,284 ---- SignalsError10 = Error - Block "{0}" does not exist. Please correct name\nor assign this block to track on the panel. SignalsError11 = Error - Block "{0}" exists, but is not\nassigned to track on this panel. ! SignalsError12 = Error - No signal heads entered.\nPlease enter signal heads or cancel. SignalsError13 = Error - Cannot assign signal head "{0}" to this block boundary\nbecause it is already on the panel at a different place. + SignalsError14 = Error - This tool requires signal heads be entered as pairs, A and C,\nand/or B and D. You entered only one head of a pair. + SignalsError15 = Error - There are no level crossings on your panel.\nPlease add a level crossing or cancel. + SignalsError16 = Error - The entered block names match "{0} level crossings.\nPlease enter block names that match only one level crossing. + SignalsError17 = Error - No level crossing matches the block(s)\nentered. Please try again or cancel. InfoMessage1 = Sorry, Set Signals at Turnout does\nnot work with double crossover turnouts. InfoMessage2 = Sorry, cannot place signal heads at turnouts\nthat are not oriented vertical or horizontal. *************** *** 284,287 **** --- 289,293 ---- InfoMessage7 = Cannot set up logic because all connections\nhave not been defined around this item. InfoMessage8 = Sorry, Set Signals at Double Crossover does\nnot work with other types of turnouts. + SignalsWarn1 = Warning - Logic was set up at signal head "{0}", but no sensors\nto protect for cross traffic at the level crossing were found. # reminder messages ReminderTitle = Reminder Index: PositionablePoint.java =================================================================== RCS file: /cvsroot/jmri/jmri/jmrit/display/PositionablePoint.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** PositionablePoint.java 18 Sep 2007 14:08:40 -0000 1.2 --- PositionablePoint.java 21 Sep 2007 19:32:23 -0000 1.3 *************** *** 169,173 **** JPopupMenu popup = null; ! /** * For editing: only provides remove --- 169,173 ---- JPopupMenu popup = null; ! LayoutEditorTools tools = null; /** * For editing: only provides remove *************** *** 180,183 **** --- 180,184 ---- popup = new JPopupMenu(); } + boolean blockBoundary = false; switch (getType()) { case ANCHOR: *************** *** 194,197 **** --- 195,199 ---- popup.add(" "+rb.getString("Block1ID")+": "+block1.getID()); popup.add(" "+rb.getString("Block2ID")+": "+block2.getID()); + blockBoundary = true; } break; *************** *** 215,218 **** --- 217,232 ---- } }); + if (blockBoundary) { + popup.add(new AbstractAction(rb.getString("SetSignals")) { + public void actionPerformed(ActionEvent e) { + if (tools == null) { + tools = new LayoutEditorTools(layoutEditor); + } + // bring up signals at level crossing tool dialog + tools.setSignalsAtBlockBoundaryFromMenu(instance, + layoutEditor.signalIconEditor,layoutEditor.signalFrame); + } + }); + } popup.show(e.getComponent(), e.getX(), e.getY()); } Index: TrackSegment.java =================================================================== RCS file: /cvsroot/jmri/jmri/jmrit/display/TrackSegment.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TrackSegment.java 18 Sep 2007 14:08:40 -0000 1.2 --- TrackSegment.java 21 Sep 2007 19:32:23 -0000 1.3 *************** *** 328,332 **** void segmentEditBlockPressed(ActionEvent a) { // check if a block name has been entered ! if (!blockName.equals(blockNameField.getText()) ) { // block has changed, if old block exists, decrement use if (block!=null) { --- 328,332 ---- void segmentEditBlockPressed(ActionEvent a) { // check if a block name has been entered ! if (!blockName.equals(blockNameField.getText().trim()) ) { // block has changed, if old block exists, decrement use if (block!=null) { *************** *** 334,338 **** } // get new block, or null if block has been removed ! blockName = blockNameField.getText(); block = layoutEditor.provideLayoutBlock(blockName); if (block == null) { --- 334,338 ---- } // get new block, or null if block has been removed ! blockName = blockNameField.getText().trim(); block = layoutEditor.provideLayoutBlock(blockName); if (block == null) { *************** *** 368,372 **** needsRedraw = true; // check if Block changed ! if ( !blockName.equals(blockNameField.getText()) ) { // block has changed, if old block exists, decrement use if (block!=null) { --- 368,372 ---- needsRedraw = true; // check if Block changed ! if ( !blockName.equals(blockNameField.getText().trim()) ) { // block has changed, if old block exists, decrement use if (block!=null) { *************** *** 374,378 **** } // get new block, or null if block has been removed ! blockName = blockNameField.getText(); block = layoutEditor.provideLayoutBlock(blockName); if (block == null) { --- 374,378 ---- } // get new block, or null if block has been removed ! blockName = blockNameField.getText().trim(); block = layoutEditor.provideLayoutBlock(blockName); if (block == null) { Index: DisplayBundle.properties =================================================================== RCS file: /cvsroot/jmri/jmri/jmrit/display/DisplayBundle.properties,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** DisplayBundle.properties 25 Aug 2007 21:21:48 -0000 1.14 --- DisplayBundle.properties 21 Sep 2007 19:32:23 -0000 1.15 *************** *** 76,78 **** ButtonNoCancel = No - Cancel QuestionA = Are you sure you want to delete this panel, and all displayed icons and track objects? ! QuestionB = (If this panel was loaded, to permanently delete it, select Store Panels... in the Panel menu.)======= --- 76,78 ---- ButtonNoCancel = No - Cancel QuestionA = Are you sure you want to delete this panel, and all displayed icons and track objects? ! QuestionB = (If this panel was loaded, to permanently delete it, select Store Panels... in the Panel menu.) Index: LayoutEditor.java =================================================================== RCS file: /cvsroot/jmri/jmri/jmrit/display/LayoutEditor.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** LayoutEditor.java 18 Sep 2007 14:08:40 -0000 1.3 --- LayoutEditor.java 21 Sep 2007 19:32:23 -0000 1.4 *************** *** 122,127 **** private JCheckBox signalBox = new JCheckBox(rb.getString("SignalIcon")); private JTextField nextSignalHead = new JTextField(5); ! private MultiIconEditor signalIconEditor = null; ! private JFrame signalFrame; private JCheckBox textLabelBox = new JCheckBox(rb.getString("TextLabel")); --- 122,127 ---- private JCheckBox signalBox = new JCheckBox(rb.getString("SignalIcon")); private JTextField nextSignalHead = new JTextField(5); ! public MultiIconEditor signalIconEditor = null; ! public JFrame signalFrame; private JCheckBox textLabelBox = new JCheckBox(rb.getString("TextLabel")); *************** *** 585,589 **** tools = new LayoutEditorTools(thisPanel); } ! // bring up signals at block boundary tool dialog tools.setSignalsAtXoverTurnout(signalIconEditor,signalFrame); } --- 585,589 ---- tools = new LayoutEditorTools(thisPanel); } ! // bring up signals at double crossover tool dialog tools.setSignalsAtXoverTurnout(signalIconEditor,signalFrame); } *************** *** 597,601 **** tools = new LayoutEditorTools(thisPanel); } ! // bring up signals at block boundary tool dialog tools.setSignalsAtLevelXing(signalIconEditor,signalFrame); } --- 597,601 ---- tools = new LayoutEditorTools(thisPanel); } ! // bring up signals at level crossing tool dialog tools.setSignalsAtLevelXing(signalIconEditor,signalFrame); } *************** *** 799,803 **** float wid = 0.0F; // get side track width ! newWidth = sideWidthField.getText(); try { wid = Float.parseFloat(newWidth); --- 799,803 ---- float wid = 0.0F; // get side track width ! newWidth = sideWidthField.getText().trim(); try { wid = Float.parseFloat(newWidth); *************** *** 821,825 **** } // get mainline track width ! newWidth = mainlineWidthField.getText(); try { wid = Float.parseFloat(newWidth); --- 821,825 ---- } // get mainline track width ! newWidth = mainlineWidthField.getText().trim(); try { wid = Float.parseFloat(newWidth); *************** *** 968,972 **** float yFactor = 1.0F; // get x translation ! newText = xTranslateField.getText(); try { xTranslation = Float.parseFloat(newText); --- 968,972 ---- float yFactor = 1.0F; // get x translation ! newText = xTranslateField.getText().trim(); try { xTranslation = Float.parseFloat(newText); *************** *** 979,983 **** } // get y translation ! newText = yTranslateField.getText(); try { yTranslation = Float.parseFloat(newText); --- 979,983 ---- } // get y translation ! newText = yTranslateField.getText().trim(); try { yTranslation = Float.parseFloat(newText); *************** *** 990,994 **** } // get x factor ! newText = xFactorField.getText(); try { xFactor = Float.parseFloat(newText); --- 990,994 ---- } // get x factor ! newText = xFactorField.getText().trim(); try { xFactor = Float.parseFloat(newText); *************** *** 1001,1005 **** } // get y factor ! newText = yFactorField.getText(); try { yFactor = Float.parseFloat(newText); --- 1001,1005 ---- } // get y factor ! newText = yFactorField.getText().trim(); try { yFactor = Float.parseFloat(newText); *************** *** 1178,1182 **** float yTranslation = 0.0F; // get x translation ! newText = xMoveField.getText(); try { xTranslation = Float.parseFloat(newText); --- 1178,1182 ---- float yTranslation = 0.0F; // get x translation ! newText = xMoveField.getText().trim(); try { xTranslation = Float.parseFloat(newText); *************** *** 1189,1193 **** } // get y translation ! newText = yMoveField.getText(); try { yTranslation = Float.parseFloat(newText); --- 1189,1193 ---- } // get y translation ! newText = yMoveField.getText().trim(); try { yTranslation = Float.parseFloat(newText); *************** *** 2074,2082 **** setLink(newTrack,TRACK,foundObject,foundPointType); // check on layout block ! LayoutBlock b = provideLayoutBlock(blockIDField.getText()); if (b!=null) { newTrack.setLayoutBlock(b); // check on occupancy sensor ! String sensorName = (blockSensor.getText()); if (sensorName.length()>0) { if (!validateSensor(sensorName,b,this)) { --- 2074,2082 ---- setLink(newTrack,TRACK,foundObject,foundPointType); // check on layout block ! LayoutBlock b = provideLayoutBlock(blockIDField.getText().trim()); if (b!=null) { newTrack.setLayoutBlock(b); // check on occupancy sensor ! String sensorName = (blockSensor.getText().trim()); if (sensorName.length()>0) { if (!validateSensor(sensorName,b,this)) { *************** *** 2113,2122 **** panelChanged = true; // check on layout block ! LayoutBlock b = provideLayoutBlock(blockIDField.getText()); if (b!=null) { o.setLayoutBlockAC(b); o.setLayoutBlockBD(b); // check on occupancy sensor ! String sensorName = (blockSensor.getText()); if (sensorName.length()>0) { if (!validateSensor(sensorName,b,this)) { --- 2113,2122 ---- panelChanged = true; // check on layout block ! LayoutBlock b = provideLayoutBlock(blockIDField.getText().trim()); if (b!=null) { o.setLayoutBlockAC(b); o.setLayoutBlockBD(b); // check on occupancy sensor ! String sensorName = (blockSensor.getText().trim()); if (sensorName.length()>0) { if (!validateSensor(sensorName,b,this)) { *************** *** 2137,2141 **** // get the rotation entry double rot = 0.0; ! String s = rotationField.getText(); if (s.length()<1) { rot = 0.0; --- 2137,2141 ---- // get the rotation entry double rot = 0.0; ! String s = rotationField.getText().trim(); if (s.length()<1) { rot = 0.0; *************** *** 2167,2175 **** panelChanged = true; // check on layout block ! LayoutBlock b = provideLayoutBlock(blockIDField.getText()); if (b!=null) { o.setLayoutBlock(b); // check on occupancy sensor ! String sensorName = (blockSensor.getText()); if (sensorName.length()>0) { if (!validateSensor(sensorName,b,this)) { --- 2167,2175 ---- panelChanged = true; // check on layout block ! LayoutBlock b = provideLayoutBlock(blockIDField.getText().trim()); if (b!=null) { o.setLayoutBlock(b); // check on occupancy sensor ! String sensorName = (blockSensor.getText().trim()); if (sensorName.length()>0) { if (!validateSensor(sensorName,b,this)) { *************** *** 2184,2188 **** o.setContinuingSense(Turnout.CLOSED); // check on a physical turnout ! String turnoutName = nextTurnout.getText(); if ( validatePhysicalTurnout(turnoutName,targetPanel) ) { // turnout is valid and unique. --- 2184,2188 ---- o.setContinuingSense(Turnout.CLOSED); // check on a physical turnout ! String turnoutName = nextTurnout.getText().trim(); if ( validatePhysicalTurnout(turnoutName,targetPanel) ) { // turnout is valid and unique. *************** *** 2580,2584 **** */ void addSensor() { ! if ((nextSensor.getText()).length()<=0) { JOptionPane.showMessageDialog(targetPanel,rb.getString("Error10"), rb.getString("Error"),JOptionPane.ERROR_MESSAGE); --- 2580,2584 ---- */ void addSensor() { ! if ((nextSensor.getText()).trim().length()<=0) { JOptionPane.showMessageDialog(targetPanel,rb.getString("Error10"), rb.getString("Error"),JOptionPane.ERROR_MESSAGE); *************** *** 2590,2597 **** l.setInconsistentIcon(sensorIconEditor.getIcon(2)); l.setUnknownIcon(sensorIconEditor.getIcon(3)); ! l.setSensor(nextSensor.getText()); Sensor xSensor = l.getSensor(); if (xSensor != null) { ! if ( (xSensor.getUserName()==null) || (!(xSensor.getUserName().equals(nextSensor.getText()))) ) nextSensor.setText(xSensor.getSystemName()); } --- 2590,2598 ---- l.setInconsistentIcon(sensorIconEditor.getIcon(2)); l.setUnknownIcon(sensorIconEditor.getIcon(3)); ! l.setSensor(nextSensor.getText().trim()); Sensor xSensor = l.getSensor(); if (xSensor != null) { ! if ( (xSensor.getUserName()==null) || ! (!(xSensor.getUserName().equals(nextSensor.getText().trim()))) ) nextSensor.setText(xSensor.getSystemName()); } *************** *** 2614,2618 **** void addSignalHead() { // check for valid signal head entry ! String tName = nextSignalHead.getText(); SignalHead mHead = null; if ( (tName!=null) && (tName!="") ) { --- 2615,2619 ---- void addSignalHead() { // check for valid signal head entry ! String tName = nextSignalHead.getText().trim(); SignalHead mHead = null; if ( (tName!=null) && (tName!="") ) { *************** *** 2641,2648 **** l.setDarkIcon(signalIconEditor.getIcon(6)); l.setHeldIcon(signalIconEditor.getIcon(7)); ! l.setSignalHead(nextSignalHead.getText()); SignalHead xSignal = l.getSignalHead(); if (xSignal != null) { ! if ( !(xSignal.getUserName().equals(nextSignalHead.getText())) ) { nextSignalHead.setText(xSignal.getSystemName()); } --- 2642,2649 ---- l.setDarkIcon(signalIconEditor.getIcon(6)); l.setHeldIcon(signalIconEditor.getIcon(7)); ! l.setSignalHead(nextSignalHead.getText().trim()); SignalHead xSignal = l.getSignalHead(); if (xSignal != null) { ! if ( !(xSignal.getUserName().equals(nextSignalHead.getText().trim())) ) { nextSignalHead.setText(xSignal.getSystemName()); } *************** *** 2666,2670 **** */ void addLabel() { ! LayoutPositionableLabel l = new LayoutPositionableLabel(textLabel.getText()); setNextLocation(l); l.setSize(l.getPreferredSize().width, l.getPreferredSize().height); --- 2667,2672 ---- */ void addLabel() { ! LayoutPositionableLabel l = new LayoutPositionableLabel( ! textLabel.getText().trim()); setNextLocation(l); l.setSize(l.getPreferredSize().width, l.getPreferredSize().height); *************** *** 2690,2694 **** */ void addMemory() { ! if ((textMemory.getText()).length()<=0) { JOptionPane.showMessageDialog(targetPanel,rb.getString("Error11"), rb.getString("Error"),JOptionPane.ERROR_MESSAGE); --- 2692,2696 ---- */ void addMemory() { ! if ((textMemory.getText()).trim().length()<=0) { JOptionPane.showMessageDialog(targetPanel,rb.getString("Error11"), rb.getString("Error"),JOptionPane.ERROR_MESSAGE); *************** *** 2696,2703 **** } LayoutMemoryIcon l = new LayoutMemoryIcon(); ! l.setMemory(textMemory.getText()); Memory xMemory = l.getMemory(); if (xMemory != null) { ! if ( (xMemory.getUserName() == null) || (!(xMemory.getUserName().equals(textMemory.getText()))) ) { // put the system name in the memory field textMemory.setText(xMemory.getSystemName()); --- 2698,2706 ---- } LayoutMemoryIcon l = new LayoutMemoryIcon(); ! l.setMemory(textMemory.getText().trim()); Memory xMemory = l.getMemory(); if (xMemory != null) { ! if ( (xMemory.getUserName() == null) || ! (!(xMemory.getUserName().equals(textMemory.getText().trim()))) ) { // put the system name in the memory field textMemory.setText(xMemory.getSystemName()); Index: LayoutTurnout.java =================================================================== RCS file: /cvsroot/jmri/jmri/jmrit/display/LayoutTurnout.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** LayoutTurnout.java 18 Sep 2007 14:08:40 -0000 1.2 --- LayoutTurnout.java 21 Sep 2007 19:32:23 -0000 1.3 *************** *** 651,654 **** --- 651,655 ---- JPopupMenu popup = null; JCheckBoxMenuItem disableItem = null; + LayoutEditorTools tools = null; /** * Display popup menu for information and editing *************** *** 746,749 **** --- 747,767 ---- } }); + if (turnout!=null) { + popup.add(new AbstractAction(rb.getString("SetSignals")) { + public void actionPerformed(ActionEvent e) { + if (tools == null) { + tools = new LayoutEditorTools(layoutEditor); + } + if (getTurnoutType()==DOUBLE_XOVER) { + tools.setSignalsAtXoverTurnoutFromMenu(instance, + layoutEditor.signalIconEditor,layoutEditor.signalFrame); + } + else { + tools.setSignalsAtTurnoutFromMenu(instance, + layoutEditor.signalIconEditor,layoutEditor.signalFrame); + } + } + }); + } popup.show(e.getComponent(), e.getX(), e.getY()); } *************** *** 921,925 **** void turnoutEditBlockPressed(ActionEvent a) { // check if a block name has been entered ! if (!blockName.equals(blockNameField.getText()) ) { // block has changed, if old block exists, decrement use if ( (block!=null) && (block!=blockB) && (block!=blockC) --- 939,943 ---- void turnoutEditBlockPressed(ActionEvent a) { // check if a block name has been entered ! if (!blockName.equals(blockNameField.getText().trim()) ) { // block has changed, if old block exists, decrement use if ( (block!=null) && (block!=blockB) && (block!=blockC) *************** *** 928,932 **** } // get new block, or null if block has been removed ! blockName = blockNameField.getText(); block = layoutEditor.provideLayoutBlock(blockName); if (block==null) { --- 946,950 ---- } // get new block, or null if block has been removed ! blockName = blockNameField.getText().trim(); block = layoutEditor.provideLayoutBlock(blockName); if (block==null) { *************** *** 951,955 **** void turnoutEditBlockBPressed(ActionEvent a) { // check if a block name has been entered ! if (!blockBName.equals(blockBNameField.getText()) ) { // block has changed, if old block exists, decrement use if ( (blockB!=null) && (block!=blockB) && (blockB!=blockC) --- 969,973 ---- void turnoutEditBlockBPressed(ActionEvent a) { // check if a block name has been entered ! if (!blockBName.equals(blockBNameField.getText().trim()) ) { // block has changed, if old block exists, decrement use if ( (blockB!=null) && (block!=blockB) && (blockB!=blockC) *************** *** 958,962 **** } // get new block, or null if block has been removed ! blockBName = blockBNameField.getText(); blockB = layoutEditor.provideLayoutBlock(blockBName); if (blockB==null) { --- 976,980 ---- } // get new block, or null if block has been removed ! blockBName = blockBNameField.getText().trim(); blockB = layoutEditor.provideLayoutBlock(blockBName); if (blockB==null) { *************** *** 981,985 **** void turnoutEditBlockCPressed(ActionEvent a) { // check if a block name has been entered ! if (!blockCName.equals(blockCNameField.getText()) ) { // block has changed, if old block exists, decrement use if ( (blockC!=null) && (block!=blockC) && (blockB!=blockC) --- 999,1003 ---- void turnoutEditBlockCPressed(ActionEvent a) { // check if a block name has been entered ! if (!blockCName.equals(blockCNameField.getText().trim()) ) { // block has changed, if old block exists, decrement use if ( (blockC!=null) && (block!=blockC) && (blockB!=blockC) *************** *** 988,992 **** } // get new block, or null if block has been removed ! blockCName = blockCNameField.getText(); blockC = layoutEditor.provideLayoutBlock(blockCName); if (blockC==null) { --- 1006,1010 ---- } // get new block, or null if block has been removed ! blockCName = blockCNameField.getText().trim(); blockC = layoutEditor.provideLayoutBlock(blockCName); if (blockC==null) { *************** *** 1011,1015 **** void turnoutEditBlockDPressed(ActionEvent a) { // check if a block name has been entered ! if (!blockDName.equals(blockDNameField.getText()) ) { // block has changed, if old block exists, decrement use if ( (blockD!=null) && (block!=blockD) && (blockB!=blockD) --- 1029,1033 ---- void turnoutEditBlockDPressed(ActionEvent a) { // check if a block name has been entered ! if (!blockDName.equals(blockDNameField.getText().trim()) ) { // block has changed, if old block exists, decrement use if ( (blockD!=null) && (block!=blockD) && (blockB!=blockD) *************** *** 1018,1022 **** } // get new block, or null if block has been removed ! blockDName = blockDNameField.getText(); blockD = layoutEditor.provideLayoutBlock(blockDName); if (blockD==null) { --- 1036,1040 ---- } // get new block, or null if block has been removed ! blockDName = blockDNameField.getText().trim(); blockD = layoutEditor.provideLayoutBlock(blockDName); if (blockD==null) { *************** *** 1041,1047 **** void turnoutEditDonePressed(ActionEvent a) { // check if Turnout changed ! if ( !turnoutName.equals(turnoutNameField.getText()) ) { // turnout has changed ! String newName = turnoutNameField.getText(); if ( layoutEditor.validatePhysicalTurnout(newName, editLayoutTurnoutFrame) ) { --- 1059,1065 ---- void turnoutEditDonePressed(ActionEvent a) { // check if Turnout changed ! if ( !turnoutName.equals(turnoutNameField.getText().trim()) ) { // turnout has changed ! String newName = turnoutNameField.getText().trim(); if ( layoutEditor.validatePhysicalTurnout(newName, editLayoutTurnoutFrame) ) { *************** *** 1063,1067 **** } // check if Block changed ! if ( !blockName.equals(blockNameField.getText()) ) { // block has changed, if old block exists, decrement use if ( (block!=null) && (block!=blockB) && (block!=blockC) && --- 1081,1085 ---- } // check if Block changed ! if ( !blockName.equals(blockNameField.getText().trim()) ) { // block has changed, if old block exists, decrement use if ( (block!=null) && (block!=blockB) && (block!=blockC) && *************** *** 1070,1074 **** } // get new block, or null if block has been removed ! blockName = blockNameField.getText(); block = layoutEditor.provideLayoutBlock(blockName); if (block==null) { --- 1088,1092 ---- } // get new block, or null if block has been removed ! blockName = blockNameField.getText().trim(); block = layoutEditor.provideLayoutBlock(blockName); if (block==null) { *************** *** 1082,1086 **** if (type==DOUBLE_XOVER) { // check if Block 2 changed ! if ( !blockBName.equals(blockBNameField.getText()) ) { // block has changed, if old block exists, decrement use if ( (blockB!=null) && (block!=blockB) && (blockB!=blockC) --- 1100,1104 ---- if (type==DOUBLE_XOVER) { // check if Block 2 changed ! if ( !blockBName.equals(blockBNameField.getText().trim()) ) { // block has changed, if old block exists, decrement use if ( (blockB!=null) && (block!=blockB) && (blockB!=blockC) *************** *** 1089,1093 **** } // get new block, or null if block has been removed ! blockBName = blockBNameField.getText(); blockB = layoutEditor.provideLayoutBlock(blockBName); if (blockB==null) { --- 1107,1111 ---- } // get new block, or null if block has been removed ! blockBName = blockBNameField.getText().trim(); blockB = layoutEditor.provideLayoutBlock(blockBName); if (blockB==null) { *************** *** 1100,1104 **** } // check if Block 3 changed ! if (!blockCName.equals(blockCNameField.getText()) ) { // block has changed, if old block exists, decrement use if ( (blockC!=null) && (block!=blockC) && (blockB!=blockC) --- 1118,1122 ---- } // check if Block 3 changed ! if (!blockCName.equals(blockCNameField.getText().trim()) ) { // block has changed, if old block exists, decrement use if ( (blockC!=null) && (block!=blockC) && (blockB!=blockC) *************** *** 1107,1111 **** } // get new block, or null if block has been removed ! blockCName = blockCNameField.getText(); blockC = layoutEditor.provideLayoutBlock(blockCName); if (blockC==null) { --- 1125,1129 ---- } // get new block, or null if block has been removed ! blockCName = blockCNameField.getText().trim(); blockC = layoutEditor.provideLayoutBlock(blockCName); if (blockC==null) { *************** *** 1118,1122 **** } // check if Block 4 changed ! if (!blockDName.equals(blockDNameField.getText()) ) { // block has changed, if old block exists, decrement use if ( (blockD!=null) && (block!=blockD) && (blockB!=blockD) --- 1136,1140 ---- } // check if Block 4 changed ! if (!blockDName.equals(blockDNameField.getText().trim()) ) { // block has changed, if old block exists, decrement use if ( (blockD!=null) && (block!=blockD) && (blockB!=blockD) *************** *** 1125,1129 **** } // get new block, or null if block has been removed ! blockDName = blockDNameField.getText(); blockD = layoutEditor.provideLayoutBlock(blockDName); if (blockD==null) { --- 1143,1147 ---- } // get new block, or null if block has been removed ! blockDName = blockDNameField.getText().trim(); blockD = layoutEditor.provideLayoutBlock(blockDName); if (blockD==null) { Index: LevelXing.java =================================================================== RCS file: /cvsroot/jmri/jmri/jmrit/display/LevelXing.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** LevelXing.java 18 Sep 2007 14:08:40 -0000 1.2 --- LevelXing.java 21 Sep 2007 19:32:23 -0000 1.3 *************** *** 288,291 **** --- 288,292 ---- JPopupMenu popup = null; + LayoutEditorTools tools = null; /** * Display popup menu for information and editing *************** *** 299,306 **** } popup.add(rb.getString("LevelCrossing")); if ( (blockNameAC==null) || (blockNameAC=="") ) popup.add(rb.getString("NoBlock1")); ! else popup.add(rb.getString("Block1ID")+": "+getLayoutBlockAC().getID()); if ( (blockNameBD==null) || (blockNameBD=="") ) popup.add(rb.getString("NoBlock2")); ! else popup.add(rb.getString("Block2ID")+": "+getLayoutBlockBD().getID()); popup.add(new JSeparator(JSeparator.HORIZONTAL)); popup.add(new AbstractAction(rb.getString("Edit")) { --- 300,315 ---- } popup.add(rb.getString("LevelCrossing")); + boolean blockACAssigned = false; + boolean blockBDAssigned = false; if ( (blockNameAC==null) || (blockNameAC=="") ) popup.add(rb.getString("NoBlock1")); ! else { ! popup.add(rb.getString("Block1ID")+": "+getLayoutBlockAC().getID()); ! blockACAssigned = true; ! } if ( (blockNameBD==null) || (blockNameBD=="") ) popup.add(rb.getString("NoBlock2")); ! else { ! popup.add(rb.getString("Block2ID")+": "+getLayoutBlockBD().getID()); ! blockBDAssigned = true; ! } popup.add(new JSeparator(JSeparator.HORIZONTAL)); popup.add(new AbstractAction(rb.getString("Edit")) { *************** *** 318,321 **** --- 327,342 ---- } }); + if (blockACAssigned && blockBDAssigned) { + popup.add(new AbstractAction(rb.getString("SetSignals")) { + public void actionPerformed(ActionEvent e) { + if (tools == null) { + tools = new LayoutEditorTools(layoutEditor); + } + // bring up signals at level crossing tool dialog + tools.setSignalsAtLevelXingFromMenu(instance, + layoutEditor.signalIconEditor,layoutEditor.signalFrame); + } + }); + } popup.show(e.getComponent(), e.getX(), e.getY()); } *************** *** 417,421 **** void xingEdit1BlockPressed(ActionEvent a) { // check if a block name has been entered ! if (!blockNameAC.equals(block1Name.getText()) ) { // block 1 has changed, if old block exists, decrement use if ( (blockAC!=null) && (blockAC!=blockBD) ) { --- 438,442 ---- void xingEdit1BlockPressed(ActionEvent a) { // check if a block name has been entered ! if (!blockNameAC.equals(block1Name.getText().trim()) ) { // block 1 has changed, if old block exists, decrement use if ( (blockAC!=null) && (blockAC!=blockBD) ) { *************** *** 423,427 **** } // get new block, or null if block has been removed ! blockNameAC = block1Name.getText(); if ( (blockNameAC!=null) && (blockNameAC.length()>0)) { blockAC = layoutEditor.provideLayoutBlock(blockNameAC); --- 444,448 ---- } // get new block, or null if block has been removed ! blockNameAC = block1Name.getText().trim(); if ( (blockNameAC!=null) && (blockNameAC.length()>0)) { blockAC = layoutEditor.provideLayoutBlock(blockNameAC); *************** *** 453,457 **** void xingEdit2BlockPressed(ActionEvent a) { // check if a block name has been entered ! if (!blockNameBD.equals(block2Name.getText()) ) { // block has changed, if old block exists, decrement use if ( (blockBD!=null) && (blockBD!=blockAC) ) { --- 474,478 ---- void xingEdit2BlockPressed(ActionEvent a) { // check if a block name has been entered ! if (!blockNameBD.equals(block2Name.getText().trim()) ) { // block has changed, if old block exists, decrement use if ( (blockBD!=null) && (blockBD!=blockAC) ) { *************** *** 459,463 **** } // get new block, or null if block has been removed ! blockNameBD = block2Name.getText(); if ( (blockNameBD!=null) && (blockNameBD.length()>0)) { blockBD = layoutEditor.provideLayoutBlock(blockNameBD); --- 480,484 ---- } // get new block, or null if block has been removed ! blockNameBD = block2Name.getText().trim(); if ( (blockNameBD!=null) && (blockNameBD.length()>0)) { blockBD = layoutEditor.provideLayoutBlock(blockNameBD); *************** *** 489,493 **** void xingEditDonePressed(ActionEvent a) { // check if Blocks changed ! if ( !blockNameAC.equals(block1Name.getText()) ) { // block 1 has changed, if old block exists, decrement use if ( (blockAC!=null) && (blockAC!=blockBD) ) { --- 510,514 ---- void xingEditDonePressed(ActionEvent a) { // check if Blocks changed ! if ( !blockNameAC.equals(block1Name.getText().trim()) ) { // block 1 has changed, if old block exists, decrement use if ( (blockAC!=null) && (blockAC!=blockBD) ) { *************** *** 495,499 **** } // get new block, or null if block has been removed ! blockNameAC = block1Name.getText(); if ( (blockNameAC!=null) && (blockNameAC.length()>0)) { blockAC = layoutEditor.provideLayoutBlock(blockNameAC); --- 516,520 ---- } // get new block, or null if block has been removed ! blockNameAC = block1Name.getText().trim(); if ( (blockNameAC!=null) && (blockNameAC.length()>0)) { blockAC = layoutEditor.provideLayoutBlock(blockNameAC); *************** *** 513,517 **** needsRedraw = true; } ! if ( !blockNameBD.equals(block2Name.getText()) ) { // block 2 has changed, if old block exists, decrement use if ( (blockBD!=null) && (blockBD!=blockAC) ) { --- 534,538 ---- needsRedraw = true; } ! if ( !blockNameBD.equals(block2Name.getText().trim()) ) { // block 2 has changed, if old block exists, decrement use if ( (blockBD!=null) && (blockBD!=blockAC) ) { *************** *** 519,523 **** } // get new block, or null if block has been removed ! blockNameBD = block2Name.getText(); if ( (blockNameBD!=null) && (blockNameBD.length()>0)) { blockBD = layoutEditor.provideLayoutBlock(blockNameBD); --- 540,544 ---- } // get new block, or null if block has been removed ! blockNameBD = block2Name.getText().trim(); if ( (blockNameBD!=null) && (blockNameBD.length()>0)) { blockBD = layoutEditor.provideLayoutBlock(blockNameBD); Index: LayoutBlock.java =================================================================== RCS file: /cvsroot/jmri/jmri/jmrit/display/LayoutBlock.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** LayoutBlock.java 18 Sep 2007 14:08:40 -0000 1.2 --- LayoutBlock.java 21 Sep 2007 19:32:23 -0000 1.3 *************** *** 440,446 **** boolean needsRedraw = false; // check if Sensor changed ! if ( !occupancySensorName.equals(sensorNameField.getText()) ) { // sensor has changed ! String newName = sensorNameField.getText(); if (validateSensor(newName,editLayoutBlockFrame)==null) { // invalid sensor entered --- 440,446 ---- boolean needsRedraw = false; // check if Sensor changed ! if ( !occupancySensorName.equals(sensorNameField.getText().trim()) ) { // sensor has changed ! String newName = sensorNameField.getText().trim(); if (validateSensor(newName,editLayoutBlockFrame)==null) { // invalid sensor entered Index: LayoutEditorTools.java =================================================================== RCS file: /cvsroot/jmri/jmri/jmrit/display/LayoutEditorTools.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** LayoutEditorTools.java 18 Sep 2007 13:41:40 -0000 1.1 --- LayoutEditorTools.java 21 Sep 2007 19:32:23 -0000 1.2 *************** *** 103,106 **** --- 103,107 ---- private boolean layoutTurnoutBUp = false; private boolean layoutTurnoutBLeft = false; + private boolean turnoutFromMenu = false; private Turnout turnout = null; private SignalHead throatContinuingHead = null; *************** *** 110,113 **** --- 111,122 ---- [...3053 lines suppressed...] + logic.setSensor2(crossOccupancy.getSystemName()); + if (track1Occupancy!=null) { + logic.setSensor3(track1Occupancy.getSystemName()); + if (track2Occupancy!=null) + logic.setSensor4(track2Occupancy.getSystemName()); + } + else if (track2Occupancy!=null) + logic.setSensor3(track2Occupancy.getSystemName()); + } + else if (track1Occupancy!=null) { + logic.setSensor2(track1Occupancy.getSystemName()); + if (track2Occupancy!=null) + logic.setSensor3(track2Occupancy.getSystemName()); + } + else if (track2Occupancy!=null) + logic.setSensor2(track2Occupancy.getSystemName()); + finalizeBlockBossLogic(); + } /** |