Package jmri.jmrit.display.layoutEditor
Class LevelXingView
java.lang.Object
jmri.jmrit.display.layoutEditor.LayoutTrackView
jmri.jmrit.display.layoutEditor.LevelXingView
- All Implemented Interfaces:
InlineLogixNG
MVC View component for the LevelXing class
-
Field Summary
FieldsModifier and TypeFieldDescriptionRemove this object from display and persistance.(package private) JPopupMenuFields inherited from class jmri.jmrit.display.layoutEditor.LayoutTrackView
decorations, layoutEditor, NUM_ARROW_TYPES -
Constructor Summary
ConstructorsConstructorDescriptionLevelXingView(LevelXing xing, Point2D c, LayoutEditor layoutEditor) constructor methodLevelXingView(LevelXing xing, LayoutEditor layoutEditor) Constructor method. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddEditPopUpMenu(JMenuItem menu) voidaddViewPopUpMenu(JMenuItem menu) booleanCheck for active block boundaries.return a list of the available connections for this layout trackvoidcheck this track and its neighbors for non-contiguous blocksbooleandetermine if all the appropriate blocks have been assigned to this trackvoidcollectContiguousTracksNamesInBlockNamed(String blockName, Set<String> TrackNameSet) recursive routine to check for all contiguous tracks in this blockNamevoiddispose()Clean up when this object is no longer needed.protected voiddraw1(Graphics2D g2, boolean isMain, boolean isBlock) Draw this level crossing.protected voiddraw2(Graphics2D g2, boolean isMain, float railDisplacement) draw two lines (rails)protected voidDraw track decorations.protected voiddraw the edit controlsprotected voidDraw the turnout controlsprotected HitPointTypefindHitPointType(Point2D hitPoint, boolean useRectangles, boolean requireUnconnected) find the hit (location) type for a pointgetConnection(HitPointType connectionType) get the LayoutTrack connected at the specified connection typegetCoordsForConnectionType(HitPointType connectionType) Get the coordinates for a specified connection type.protected ArrayList<LayoutConnectivity>get the layout connectivity for this trackprotected voidhighlightUnconnected(Graphics2D g2, HitPointType specificType) highlight unconnected connectionsbooleanTest if mainline track or not.booleanvoidabstract method... subclasses should implement _IF_ they need to recheck their block boundariesvoidvoidrotateCoords(double angleDEG) rotate this LayoutTrack's coordinates by angleDEG'svoidscaleCoords(double xFactor, double yFactor) scale this LayoutTrack's coordinates by the x and y factorsvoidvoidvoidsetAllLayoutBlocks(LayoutBlock layoutBlock) Assign all the layout blocks in this trackvoidsetConnectA(LayoutTrack o, HitPointType type) voidsetConnectB(LayoutTrack o, HitPointType type) voidsetConnectC(LayoutTrack o, HitPointType type) voidsetConnectD(LayoutTrack o, HitPointType type) voidsetConnection(HitPointType connectionType, LayoutTrack o, HitPointType type) set the LayoutTrack connected at the specified connection typevoidvoidvoidvoidvoidsetSensorAName(String sensorName) voidsetSensorBName(String sensorName) voidsetSensorCName(String sensorName) voidsetSensorDName(String sensorName) voidsetSignalAMast(String signalMast) voidsetSignalAName(String signalHead) voidsetSignalBMast(String signalMast) voidsetSignalBName(String signalHead) voidsetSignalCMast(String signalMast) voidsetSignalCName(String signalHead) voidsetSignalDMast(String signalMast) voidsetSignalDName(String signalHead) protected JPopupMenushowPopup(JmriMouseEvent mouseEvent) show the popup menu for this layout tracktoString()voidtranslateCoords(double xFactor, double yFactor) translate this LayoutTrack's coordinates by the x and y factorsMethods inherited from class jmri.jmrit.display.layoutEditor.LayoutTrackView
addCommonPopupItems, displayRemoveWarningDialog, drawHidden, drawLayoutTrackText, findHitPointType, findHitPointType, getColorForTrackBlock, getColorForTrackBlock, getCoordsCenter, getDecorations, getEditorName, getId, getLayoutEditor, getLayoutEditorToolBarPanel, getLayoutTrack, getLogixNG, getName, getNameString, getTurnoutStateString, getTypeName, getX, getY, hasDecorations, highlightUnconnected, isDisconnected, isHidden, loadArrowImageToJCBItem, removeInlineLogixNG, rotatePoint, setColorForTrackBlock, setColorForTrackBlock, setCoordsCenter, setDecorations, setHidden, setIdent, setLogixNG, setLogixNG_SystemName, setLogixNGPositionableMenu, setupLogixNG, showPopup, showPopup, trackControlCircleAt, trackControlCircleRectAt, trackEditControlCircleAt
-
Field Details
-
popup
-
editAdditionalMenu
Remove this object from display and persistance. -
viewAdditionalMenu
-
-
Constructor Details
-
LevelXingView
Constructor method.- Parameters:
xing- the level crossing.layoutEditor- for access to tools
-
LevelXingView
public LevelXingView(@Nonnull LevelXing xing, @Nonnull Point2D c, @Nonnull LayoutEditor layoutEditor) constructor method- Parameters:
xing- the level crossing.c- display locationlayoutEditor- for access to tools
-
-
Method Details
-
getLevelXing
-
toString
-
getBlockNameAC
-
getBlockNameBD
-
getSignalHead
-
getSignalMast
-
getSensor
-
getSignalAName
-
setSignalAName
-
getSignalBName
-
setSignalBName
-
getSignalCName
-
setSignalCName
-
getSignalDName
-
setSignalDName
-
removeBeanReference
-
getSignalAMastName
-
getSignalAMast
-
setSignalAMast
-
getSignalBMastName
-
getSignalBMast
-
setSignalBMast
-
getSignalCMastName
-
getSignalCMast
-
setSignalCMast
-
getSignalDMastName
-
getSignalDMast
-
setSignalDMast
-
getSensorAName
-
getSensorA
-
setSensorAName
-
getSensorBName
-
getSensorB
-
setSensorBName
-
getSensorCName
-
getSensorC
-
setSensorCName
-
getSensorDName
-
getSensorD
-
setSensorDName
-
getConnection
get the LayoutTrack connected at the specified connection type- Specified by:
getConnectionin classLayoutTrackView- Parameters:
connectionType- where on us to get the connection- Returns:
- the LayoutTrack connected at the specified connection type
- Throws:
JmriException- - if the connectionType is invalid
-
setConnection
public void setConnection(HitPointType connectionType, LayoutTrack o, HitPointType type) throws JmriException set the LayoutTrack connected at the specified connection type- Specified by:
setConnectionin classLayoutTrackView- Parameters:
connectionType- where on us to set the connectiono- the LayoutTrack that is to be connectedtype- where on the LayoutTrack we are connected- Throws:
JmriException- - if connectionType or type are invalid
-
getConnectA
-
getConnectB
-
getConnectC
-
getConnectD
-
setConnectA
-
setConnectB
-
setConnectC
-
setConnectD
-
getLayoutBlockAC
-
getLayoutBlockBD
-
getCoordsA
-
getCoordsB
-
getCoordsC
-
getCoordsD
-
getCoordsForConnectionType
Get the coordinates for a specified connection type.- Specified by:
getCoordsForConnectionTypein classLayoutTrackView- Parameters:
connectionType- the connection type- Returns:
- the coordinates for the specified connection type
-
getBounds
- Specified by:
getBoundsin classLayoutTrackView- Returns:
- the bounds of this crossing
-
isMainlineAC
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
-
setCoordsA
-
setCoordsB
-
setCoordsC
-
setCoordsD
-
scaleCoords
scale this LayoutTrack's coordinates by the x and y factors- Specified by:
scaleCoordsin classLayoutTrackView- Parameters:
xFactor- the amount to scale X coordinatesyFactor- the amount to scale Y coordinates
-
translateCoords
translate this LayoutTrack's coordinates by the x and y factors- Specified by:
translateCoordsin classLayoutTrackView- Parameters:
xFactor- the amount to translate X coordinatesyFactor- the amount to translate Y coordinates
-
rotateCoords
rotate this LayoutTrack's coordinates by angleDEG's- Specified by:
rotateCoordsin classLayoutTrackView- Parameters:
angleDEG- the amount to rotate in degrees
-
findHitPointType
protected HitPointType findHitPointType(Point2D hitPoint, boolean useRectangles, boolean requireUnconnected) find the hit (location) type for a point- Specified by:
findHitPointTypein classLayoutTrackView- Parameters:
hitPoint- the pointuseRectangles- whether to use (larger) rectangles or (smaller) circles for hit testingrequireUnconnected- whether to only return hit types for free connections- Returns:
- the location type for the point (or NONE)
-
canRemove
Check for active block boundaries.If any connection point of a layout track object has attached objects, such as signal masts, signal heads or NX sensors, the layout track object cannot be deleted.
- Specified by:
canRemovein classLayoutTrackView- Returns:
- true if the layout track object can be deleted.
-
showPopup
show the popup menu for this layout track- Specified by:
showPopupin classLayoutTrackView- Parameters:
mouseEvent- the mouse down event that triggered this popup- Returns:
- the popup menu for this layout track
-
dispose
Clean up when this object is no longer needed. Should not be called while the object is still displayed; see remove(). -
addEditPopUpMenu
-
addViewPopUpMenu
-
setAdditionalEditPopUpMenu
-
setAdditionalViewPopUpMenu
-
drawDecorations
Draw track decorations. This type of track has none, so this method is empty.- Specified by:
drawDecorationsin classLayoutTrackView- Parameters:
g2- the graphics context
-
draw1
Draw this level crossing.- Specified by:
draw1in classLayoutTrackView- Parameters:
g2- the graphics port to draw toisMain- true if drawing mainlinesisBlock- true if drawing block lines
-
draw2
draw two lines (rails)- Specified by:
draw2in classLayoutTrackView- Parameters:
g2- the graphics contextisMain- true if drawing mainlinesrailDisplacement- the offset from center to draw the lines
-
highlightUnconnected
highlight unconnected connections- Specified by:
highlightUnconnectedin classLayoutTrackView- Parameters:
g2- the graphics contextspecificType- the specific connection to draw (or NONE for all)
-
drawEditControls
Description copied from class:LayoutTrackViewdraw the edit controls- Specified by:
drawEditControlsin classLayoutTrackView- Parameters:
g2- the graphics context
-
drawTurnoutControls
Description copied from class:LayoutTrackViewDraw the turnout controls- Specified by:
drawTurnoutControlsin classLayoutTrackView- Parameters:
g2- the graphics context
-
reCheckBlockBoundary
Description copied from class:LayoutTrackViewabstract method... subclasses should implement _IF_ they need to recheck their block boundaries- Specified by:
reCheckBlockBoundaryin classLayoutTrackView
-
getLayoutConnectivity
Description copied from class:LayoutTrackViewget the layout connectivity for this track- Specified by:
getLayoutConnectivityin classLayoutTrackView- Returns:
- the list of Layout Connectivity objects
-
checkForFreeConnections
return a list of the available connections for this layout track- Specified by:
checkForFreeConnectionsin classLayoutTrackView- Returns:
- the list of available connections
-
checkForUnAssignedBlocks
determine if all the appropriate blocks have been assigned to this track- Specified by:
checkForUnAssignedBlocksin classLayoutTrackView- Returns:
- true if all appropriate blocks have been assigned
-
checkForNonContiguousBlocks
public void checkForNonContiguousBlocks(@Nonnull HashMap<String, List<Set<String>>> blockNamesToTrackNameSetsMap) check this track and its neighbors for non-contiguous blocksFor each (non-null) blocks of this track do: #1) If it's got an entry in the blockNamesToTrackNameSetMap then #2) If this track is not in one of the TrackNameSets for this block #3) add a new set (with this block/track) to blockNamesToTrackNameSetMap and #4) check all the connections in this block (by calling the 2nd method below)
Basically, we're maintaining contiguous track sets for each block found (in blockNamesToTrackNameSetMap)
- Specified by:
checkForNonContiguousBlocksin classLayoutTrackView- Parameters:
blockNamesToTrackNameSetsMap- hashmap of key:block names to lists of track name sets for those blocks
-
collectContiguousTracksNamesInBlockNamed
public void collectContiguousTracksNamesInBlockNamed(@Nonnull String blockName, @Nonnull Set<String> TrackNameSet) recursive routine to check for all contiguous tracks in this blockName- Specified by:
collectContiguousTracksNamesInBlockNamedin classLayoutTrackView- Parameters:
blockName- the block that we're checking forTrackNameSet- the set of track names in this block
-
setAllLayoutBlocks
Assign all the layout blocks in this track- Specified by:
setAllLayoutBlocksin classLayoutTrackView- Parameters:
layoutBlock- to this layout block (used by the Tools menu's "Assign block to selection" item)
-