|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjmri.jmrit.display.layoutEditor.LayoutTurnout
public class LayoutTurnout
A LayoutTurnout corresponds to a turnout on the layout. A LayoutTurnout is an extension of the standard Turnout object with drawing and connectivity information added.
Six types are supported: right-hand, left-hand, wye, double crossover, right-handed single crossover, and left-handed single crossover. Note that double-slip turnouts can be handled as two turnouts, throat to throat, and three-way turnouts can be handles as two turnouts, left-hand and right-hand, arranged throat to continuing route.
A LayoutTurnout has three or four connection points, designated A, B, C, and D. For right-handed or left-handed turnouts, A corresponds to the throat. At the crossing, A-B (and C-D for crossovers) is a straight segment (continuing route). A-C (and B-D for crossovers) is the diverging route. B-C (and A-D for crossovers) is an illegal condition.
A LayoutTurnout carries Block information. For right-handed, left-handed, and wye turnouts, the entire turnout is in one block,however, a block border may occur at any connection (A,B,C,D). For a double crossover turnout, up to four blocks may be assigned, one for each connection point, but if only one block is assigned, that block applies to the entire turnout.
For drawing purposes, each LayoutTurnout carries a center point and displacements for B and C. For right-handed or left-handed turnouts, the displacement for A = - the displacement for B, and the center point is at the junction of the diverging route and the straight through continuing route. For double crossovers, the center point is at the center of the turnout, and the displacement for A = - the displacement for C 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. For double crossovers, AB and BC are constrained to remain perpendicular. For single crossovers, AB and CD are constrained to remain parallel, and AC and BD are constrained to remain parallel.
When LayoutTurnouts are first created, a rotation (degrees) is provided. For 0.0 rotation, the turnout lies on the east-west line with A facing east. Rotations are performed in a clockwise direction.
When LayoutTurnouts are first created, there are no connections. Block information and connections may be added when available.
When a LayoutTurnout is first created, it is enabled for control of an assigned actual turnout. Clicking on the turnout center point will toggle the turnout. This can be disabled via the popup menu.
Signal Head names are saved here to keep track of where signals are. LayoutTurnout only serves as a storage place for signal head names. The names are placed here by tools, e.g., Set Signals at Turnout, and Set Signals at Double Crossover.
A LayoutTurnout may be linked to another LayoutTurnout to form a turnout pair. Throat-To-Throat Turnouts - Two turnouts connected closely at their throats, so closely that signals are not appropriate at the their throats. This is the situation when two RH, LH, or WYE turnouts are used to model a double slip. 3-Way Turnout - Two turnouts modeling a 3-way turnout, where the throat of the second turnout is closely connected to the continuing track of the first turnout. The throat will have three heads, or one head. A link is required to be able to correctly interpret the use of signal heads.
| Constructor Summary | |
|---|---|
protected |
LayoutTurnout()
|
|
LayoutTurnout(String id,
int t,
Point2D c,
double rot,
double xFactor,
double yFactor,
LayoutEditor myPanel)
constructor method |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
ResourceBundle rb
public static final int RH_TURNOUT
public static final int LH_TURNOUT
public static final int WYE_TURNOUT
public static final int DOUBLE_XOVER
public static final int RH_XOVER
public static final int LH_XOVER
public static final int SINGLE_SLIP
public static final int DOUBLE_SLIP
public static final int NO_LINK
public static final int FIRST_3_WAY
public static final int SECOND_3_WAY
public static final int THROAT_TO_THROAT
protected NamedBeanHandle<Turnout> namedTurnout
protected NamedBeanHandle<Turnout> secondNamedTurnout
protected LayoutBlock block
protected LayoutTurnout instance
protected LayoutEditor layoutEditor
public String ident
public String turnoutName
public String secondTurnoutName
public String blockName
public String blockBName
public String blockCName
public String blockDName
public String signalA1Name
public String signalA2Name
public String signalA3Name
public String signalB1Name
public String signalB2Name
public String signalC1Name
public String signalC2Name
public String signalD1Name
public String signalD2Name
protected NamedBeanHandle<SignalMast> signalAMastNamed
protected NamedBeanHandle<SignalMast> signalBMastNamed
protected NamedBeanHandle<SignalMast> signalCMastNamed
protected NamedBeanHandle<SignalMast> signalDMastNamed
protected NamedBeanHandle<Sensor> sensorANamed
protected NamedBeanHandle<Sensor> sensorBNamed
protected NamedBeanHandle<Sensor> sensorCNamed
protected NamedBeanHandle<Sensor> sensorDNamed
public int type
public Object connectA
public Object connectB
public Object connectC
public Object connectD
public int continuingSense
public boolean disabled
public boolean disableWhenOccupied
public Point2D center
public Point2D dispB
public Point2D dispC
public String linkedTurnoutName
public int linkType
public String connectAName
public String connectBName
public String connectCName
public String connectDName
public String tBlockName
public String tBlockBName
public String tBlockCName
public String tBlockDName
public String tTurnoutName
public String tSecondTurnoutName
JPopupMenu popup
JCheckBoxMenuItem disableItem
JCheckBoxMenuItem disableWhenOccupiedItem
LayoutEditorTools tools
protected JmriJFrame editLayoutTurnoutFrame
protected JTextField blockNameField
protected boolean needRedraw
protected boolean needsBlockUpdate
boolean active
ArrayList<JMenuItem> editAdditionalMenu
ArrayList<JMenuItem> viewAdditionalMenu
static org.slf4j.Logger log
| Constructor Detail |
|---|
protected LayoutTurnout()
public LayoutTurnout(String id,
int t,
Point2D c,
double rot,
double xFactor,
double yFactor,
LayoutEditor myPanel)
| Method Detail |
|---|
protected void rotateCoords(double rot)
public String getName()
public boolean useBlockSpeed()
public String getTurnoutName()
public String getSecondTurnoutName()
public boolean getHidden()
public void setHidden(boolean hide)
public String getBlockName()
public String getBlockBName()
public String getBlockCName()
public String getBlockDName()
public String getSignalA1Name()
public void setSignalA1Name(String signalName)
public String getSignalA2Name()
public void setSignalA2Name(String signalName)
public String getSignalA3Name()
public void setSignalA3Name(String signalName)
public String getSignalB1Name()
public void setSignalB1Name(String signalName)
public String getSignalB2Name()
public void setSignalB2Name(String signalName)
public String getSignalC1Name()
public void setSignalC1Name(String signalName)
public String getSignalC2Name()
public void setSignalC2Name(String signalName)
public String getSignalD1Name()
public void setSignalD1Name(String signalName)
public String getSignalD2Name()
public void setSignalD2Name(String signalName)
public String getSignalAMastName()
public SignalMast getSignalAMast()
public void setSignalAMast(String signalMast)
public String getSignalBMastName()
public SignalMast getSignalBMast()
public void setSignalBMast(String signalMast)
public String getSignalCMastName()
public SignalMast getSignalCMast()
public void setSignalCMast(String signalMast)
public String getSignalDMastName()
public SignalMast getSignalDMast()
public void setSignalDMast(String signalMast)
public String getSensorAName()
public Sensor getSensorA()
public void setSensorA(String sensorName)
public String getSensorBName()
public Sensor getSensorB()
public void setSensorB(String sensorName)
public String getSensorCName()
public Sensor getSensorC()
public void setSensorC(String sensorName)
public String getSensorDName()
public Sensor getSensorD()
public void setSensorD(String sensorName)
public String getLinkedTurnoutName()
public void setLinkedTurnoutName(String s)
public int getLinkType()
public void setLinkType(int type)
public int getTurnoutType()
public Object getConnectA()
public Object getConnectB()
public Object getConnectC()
public Object getConnectD()
public Turnout getTurnout()
public int getContinuingSense()
public void setTurnout(String tName)
public Turnout getSecondTurnout()
public void setSecondTurnout(String tName)
public void setContinuingSense(int sense)
public void setDisabled(boolean state)
public boolean isDisabled()
public void setDisableWhenOccupied(boolean state)
public boolean isDisabledWhenOccupied()
public void setConnectA(Object o,
int type)
public void setConnectB(Object o,
int type)
public void setConnectC(Object o,
int type)
public void setConnectD(Object o,
int type)
public LayoutBlock getLayoutBlock()
public LayoutBlock getLayoutBlockB()
public LayoutBlock getLayoutBlockC()
public LayoutBlock getLayoutBlockD()
public Point2D getCoordsCenter()
public Point2D getCoordsA()
public Point2D getCoordsB()
public Point2D getCoordsC()
public Point2D getCoordsD()
public void setLayoutBlock(LayoutBlock b)
public void setLayoutBlockB(LayoutBlock b)
public void setLayoutBlockC(LayoutBlock b)
public void setLayoutBlockD(LayoutBlock b)
public void setLayoutBlockByName(String name)
public void setLayoutBlockBByName(String name)
public void setLayoutBlockCByName(String name)
public void setLayoutBlockDByName(String name)
public boolean isMainlineA()
public boolean isMainlineB()
public boolean isMainlineC()
public boolean isMainlineD()
public void setCoordsCenter(Point2D p)
public void setCoordsA(Point2D p)
public void setCoordsB(Point2D p)
public void setCoordsC(Point2D p)
public void setCoordsD(Point2D p)
public void scaleCoords(float xFactor,
float yFactor)
public void toggleTurnout()
public void setObjects(LayoutEditor p)
protected void showPopUp(MouseEvent e,
boolean editable)
public String[] getBlockBoundaries()
protected void editLayoutTurnout()
void turnoutEditBlockPressed(ActionEvent a)
void turnoutEditBlockBPressed(ActionEvent a)
void turnoutEditBlockCPressed(ActionEvent a)
void turnoutEditBlockDPressed(ActionEvent a)
void turnoutEditDonePressed(ActionEvent a)
void turnoutEditCancelPressed(ActionEvent a)
public void reCheckBlockBoundary()
public ArrayList<LayoutBlock> getProtectedBlocks(NamedBean bean)
protected void removeSML(SignalMast signalMast)
void dispose()
void remove()
public boolean isActive()
public void addEditPopUpMenu(JMenuItem menu)
public void addViewPopUpMenu(JMenuItem menu)
public void setAdditionalEditPopUpMenu(JPopupMenu popup)
public void setAdditionalViewPopUpMenu(JPopupMenu popup)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||