jmri.jmrit.display.layoutEditor
Class LevelXing

Show UML class diagram
java.lang.Object
  extended by jmri.jmrit.display.layoutEditor.LevelXing

public class LevelXing
extends Object

A LevelXing is two track segment on a layout that cross at an angle.

A LevelXing has four connection points, designated A, B, C, and D. At the crossing, A-C and B-D are straight segments. A train proceeds through the crossing on either of these segments.

Each straight segment carries Block information. A-C and B-D may be in the same or different Layout Blocks.

For drawing purposes, each LevelXing carries a center point and displacements for A and B. The displacements for C = - the displacement for A, and the displacement for D = - the displacement for B. The center point and these displacements may be adjusted by the user when in edit mode.

When LevelXings are first created, there are no connections. Block information and connections are added when available.

Signal Head names are saved here to keep track of where signals are. LevelXing only serves as a storage place for signal head names. The names are placed here by Set Signals at Level Crossing in Tools menu.


Field Summary
(package private)  boolean active
           
(package private)  JTextField block1Name
           
(package private)  JTextField block2Name
           
 String connectAName
           
 String connectBName
           
 String connectCName
           
 String connectDName
           
(package private)  ArrayList<JMenuItem> editAdditionalMenu
           
(package private)  JmriJFrame editLevelXingFrame
           
(package private)  boolean editOpen
           
(package private) static org.slf4j.Logger log
           
(package private)  boolean needsBlockUpdate
           
(package private)  boolean needsRedraw
           
(package private)  JPopupMenu popup
           
(package private)  ResourceBundle rb
           
protected  NamedBeanHandle<SignalMast> signalAMastNamed
           
protected  NamedBeanHandle<SignalMast> signalBMastNamed
           
protected  NamedBeanHandle<SignalMast> signalCMastNamed
           
protected  NamedBeanHandle<SignalMast> signalDMastNamed
           
(package private)  ArrayList<SignalMast> sml
           
 String tBlockNameAC
           
 String tBlockNameBD
           
(package private)  LayoutEditorTools tools
           
(package private)  ArrayList<JMenuItem> viewAdditionalMenu
           
(package private)  JButton xingEdit1Block
           
(package private)  JButton xingEdit2Block
           
(package private)  JButton xingEditCancel
           
(package private)  JButton xingEditDone
           
 
Constructor Summary
LevelXing(String id, Point2D c, LayoutEditor myPanel)
          constructor method
 
Method Summary
 void addEditPopUpMenu(JMenuItem menu)
           
 void addSignalMastLogic(SignalMast sm)
           
 void addViewPopUpMenu(JMenuItem menu)
           
(package private)  void dispose()
          Clean up when this object is no longer needed.
protected  void editLevelXing(LevelXing o)
          Edit a Level Crossing
 String[] getBlockBoundaries()
           
 String getBlockNameAC()
           
 String getBlockNameBD()
           
 Object getConnectA()
           
 Object getConnectB()
           
 Object getConnectC()
           
 Object getConnectD()
           
 Point2D getCoordsA()
           
 Point2D getCoordsB()
           
 Point2D getCoordsC()
           
 Point2D getCoordsCenter()
           
 Point2D getCoordsD()
           
 String getID()
          Accessor methods
 LayoutBlock getLayoutBlockAC()
           
 LayoutBlock getLayoutBlockBD()
           
 Sensor getSensorA()
           
 String getSensorAName()
           
 Sensor getSensorB()
           
 String getSensorBName()
           
 Sensor getSensorC()
           
 String getSensorCName()
           
 Sensor getSensorD()
           
 String getSensorDName()
           
 SignalMast getSignalAMast()
           
 String getSignalAMastName()
           
 String getSignalAName()
           
 SignalMast getSignalBMast()
           
 String getSignalBMastName()
           
 String getSignalBName()
           
 SignalMast getSignalCMast()
           
 String getSignalCMastName()
           
 String getSignalCName()
           
 SignalMast getSignalDMast()
           
 String getSignalDMastName()
           
 String getSignalDName()
           
 boolean isActive()
          "active" means that the object is still displayed, and should be stored.
 boolean isMainlineAC()
          Methods to test if mainline track or not Returns true if either connecting track segment is mainline Defaults to not mainline if connecting track segments are missing
 boolean isMainlineBD()
           
 void reCheckBlockBoundary()
           
(package private)  void remove()
          Removes this object from display and persistance
 void removeSignalMastLogic(SignalMast sm)
           
(package private)  void removeSML(SignalMast signalMast)
           
(package private)  double round(double x)
           
 void scaleCoords(float xFactor, float yFactor)
           
 void setAdditionalEditPopUpMenu(JPopupMenu popup)
           
 void setAdditionalViewPopUpMenu(JPopupMenu popup)
           
 void setConnectA(Object o, int type)
           
 void setConnectB(Object o, int type)
           
 void setConnectC(Object o, int type)
           
 void setConnectD(Object o, int type)
           
 void setCoordsA(Point2D p)
           
 void setCoordsB(Point2D p)
           
 void setCoordsC(Point2D p)
           
 void setCoordsCenter(Point2D p)
          Modify coordinates methods
 void setCoordsD(Point2D p)
           
 void setLayoutBlockAC(LayoutBlock b)
          Add Layout Blocks
 void setLayoutBlockBD(LayoutBlock b)
           
 void setObjects(LayoutEditor p)
          Initialization method The above variables are initialized by PositionablePointXml, then the following method is called after the entire LayoutEditor is loaded to set the specific TrackSegment objects.
 void setSensorAName(String sensorName)
           
 void setSensorBName(String sensorName)
           
 void setSensorCName(String sensorName)
           
 void setSensorDName(String sensorName)
           
 void setSignalAMast(String signalMast)
           
 void setSignalAName(String signalName)
           
 void setSignalBMast(String signalMast)
           
 void setSignalBName(String signalName)
           
 void setSignalCMast(String signalMast)
           
 void setSignalCName(String signalName)
           
 void setSignalDMast(String signalMast)
           
 void setSignalDName(String signalName)
           
protected  void showPopUp(MouseEvent e, boolean isEditable)
          Display popup menu for information and editing
(package private)  void xingEdit1BlockPressed(ActionEvent a)
           
(package private)  void xingEdit2BlockPressed(ActionEvent a)
           
(package private)  void xingEditCancelPressed(ActionEvent a)
           
(package private)  void xingEditDonePressed(ActionEvent a)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

rb

ResourceBundle rb

signalAMastNamed

protected NamedBeanHandle<SignalMast> signalAMastNamed

signalBMastNamed

protected NamedBeanHandle<SignalMast> signalBMastNamed

signalCMastNamed

protected NamedBeanHandle<SignalMast> signalCMastNamed

signalDMastNamed

protected NamedBeanHandle<SignalMast> signalDMastNamed

connectAName

public String connectAName

connectBName

public String connectBName

connectCName

public String connectCName

connectDName

public String connectDName

tBlockNameAC

public String tBlockNameAC

tBlockNameBD

public String tBlockNameBD

popup

JPopupMenu popup

tools

LayoutEditorTools tools

editLevelXingFrame

JmriJFrame editLevelXingFrame

block1Name

JTextField block1Name

block2Name

JTextField block2Name

xingEditDone

JButton xingEditDone

xingEditCancel

JButton xingEditCancel

xingEdit1Block

JButton xingEdit1Block

xingEdit2Block

JButton xingEdit2Block

editOpen

boolean editOpen

needsRedraw

boolean needsRedraw

needsBlockUpdate

boolean needsBlockUpdate

active

boolean active

sml

ArrayList<SignalMast> sml

editAdditionalMenu

ArrayList<JMenuItem> editAdditionalMenu

viewAdditionalMenu

ArrayList<JMenuItem> viewAdditionalMenu

log

static org.slf4j.Logger log
Constructor Detail

LevelXing

public LevelXing(String id,
                 Point2D c,
                 LayoutEditor myPanel)
constructor method

Method Detail

getID

public String getID()
Accessor methods


getBlockNameAC

public String getBlockNameAC()

getBlockNameBD

public String getBlockNameBD()

getSignalAName

public String getSignalAName()

setSignalAName

public void setSignalAName(String signalName)

getSignalBName

public String getSignalBName()

setSignalBName

public void setSignalBName(String signalName)

getSignalCName

public String getSignalCName()

setSignalCName

public void setSignalCName(String signalName)

getSignalDName

public String getSignalDName()

setSignalDName

public void setSignalDName(String signalName)

getSignalAMastName

public String getSignalAMastName()

getSignalAMast

public SignalMast getSignalAMast()

setSignalAMast

public void setSignalAMast(String signalMast)

getSignalBMastName

public String getSignalBMastName()

getSignalBMast

public SignalMast getSignalBMast()

setSignalBMast

public void setSignalBMast(String signalMast)

getSignalCMastName

public String getSignalCMastName()

getSignalCMast

public SignalMast getSignalCMast()

setSignalCMast

public void setSignalCMast(String signalMast)

getSignalDMastName

public String getSignalDMastName()

getSignalDMast

public SignalMast getSignalDMast()

setSignalDMast

public void setSignalDMast(String signalMast)

getSensorAName

public String getSensorAName()

getSensorA

public Sensor getSensorA()

setSensorAName

public void setSensorAName(String sensorName)

getSensorBName

public String getSensorBName()

getSensorB

public Sensor getSensorB()

setSensorBName

public void setSensorBName(String sensorName)

getSensorCName

public String getSensorCName()

getSensorC

public Sensor getSensorC()

setSensorCName

public void setSensorCName(String sensorName)

getSensorDName

public String getSensorDName()

getSensorD

public Sensor getSensorD()

setSensorDName

public void setSensorDName(String sensorName)

getConnectA

public Object getConnectA()

getConnectB

public Object getConnectB()

getConnectC

public Object getConnectC()

getConnectD

public Object getConnectD()

setConnectA

public void setConnectA(Object o,
                        int type)

setConnectB

public void setConnectB(Object o,
                        int type)

setConnectC

public void setConnectC(Object o,
                        int type)

setConnectD

public void setConnectD(Object o,
                        int type)

getLayoutBlockAC

public LayoutBlock getLayoutBlockAC()

getLayoutBlockBD

public LayoutBlock getLayoutBlockBD()

getCoordsCenter

public Point2D getCoordsCenter()

getCoordsA

public Point2D getCoordsA()

getCoordsB

public Point2D getCoordsB()

getCoordsC

public Point2D getCoordsC()

getCoordsD

public Point2D getCoordsD()

setLayoutBlockAC

public void setLayoutBlockAC(LayoutBlock b)
Add Layout Blocks


setLayoutBlockBD

public void setLayoutBlockBD(LayoutBlock b)

reCheckBlockBoundary

public void reCheckBlockBoundary()

removeSML

void removeSML(SignalMast signalMast)

isMainlineAC

public boolean isMainlineAC()
Methods to test if mainline track or not Returns true if either connecting track segment is mainline Defaults to not mainline if connecting track segments are missing


isMainlineBD

public boolean isMainlineBD()

setCoordsCenter

public void setCoordsCenter(Point2D p)
Modify coordinates methods


setCoordsA

public void setCoordsA(Point2D p)

setCoordsB

public void setCoordsB(Point2D p)

setCoordsC

public void setCoordsC(Point2D p)

setCoordsD

public void setCoordsD(Point2D p)

scaleCoords

public void scaleCoords(float xFactor,
                        float yFactor)

round

double round(double x)

setObjects

public void setObjects(LayoutEditor p)
Initialization method The above variables are initialized by PositionablePointXml, then the following method is called after the entire LayoutEditor is loaded to set the specific TrackSegment objects.


showPopUp

protected void showPopUp(MouseEvent e,
                         boolean isEditable)
Display popup menu for information and editing


getBlockBoundaries

public String[] getBlockBoundaries()

editLevelXing

protected void editLevelXing(LevelXing o)
Edit a Level Crossing


xingEdit1BlockPressed

void xingEdit1BlockPressed(ActionEvent a)

xingEdit2BlockPressed

void xingEdit2BlockPressed(ActionEvent a)

xingEditDonePressed

void xingEditDonePressed(ActionEvent a)

xingEditCancelPressed

void xingEditCancelPressed(ActionEvent a)

dispose

void dispose()
Clean up when this object is no longer needed. Should not be called while the object is still displayed; see remove()


remove

void remove()
Removes this object from display and persistance


isActive

public boolean isActive()
"active" means that the object is still displayed, and should be stored.


addSignalMastLogic

public void addSignalMastLogic(SignalMast sm)

removeSignalMastLogic

public void removeSignalMastLogic(SignalMast sm)

addEditPopUpMenu

public void addEditPopUpMenu(JMenuItem menu)

addViewPopUpMenu

public void addViewPopUpMenu(JMenuItem menu)

setAdditionalEditPopUpMenu

public void setAdditionalEditPopUpMenu(JPopupMenu popup)

setAdditionalViewPopUpMenu

public void setAdditionalViewPopUpMenu(JPopupMenu popup)


Copyright © 1997-2013 JMRI Community.
JMRI, DecoderPro, PanelPro, SoundPro, DispatcherPro and associated logos are our trademarks.

Additional information on copyright, trademarks and licenses is linked here.
Site hosted by: Get JMRI Model Railroad Interface at SourceForge.net. Fast, secure and Free Open Source software downloads