refactored RocketFigure to use RocketPanel.VIEW_TYPE enum instead of unchecked ints

This commit is contained in:
Daniel_M_Williams 2015-06-23 13:12:48 -04:00
parent 8e268a9a25
commit 6f4cba68ae
17 changed files with 87 additions and 81 deletions

View File

@ -44,8 +44,8 @@ RocketActions.MoveDownAct.Movedown = Move down
RocketActions.MoveDownAct.ttip.Movedown = Move this component downwards. RocketActions.MoveDownAct.ttip.Movedown = Move this component downwards.
! RocketPanel ! RocketPanel
RocketPanel.FigTypeAct.Sideview = Side view RocketPanel.FigTypeAct.SideView = Side view
RocketPanel.FigTypeAct.Backview = Back view RocketPanel.FigTypeAct.BackView = Back view
RocketPanel.FigTypeAct.Figure3D = 3D Figure RocketPanel.FigTypeAct.Figure3D = 3D Figure
RocketPanel.FigTypeAct.Finished = 3D Finished RocketPanel.FigTypeAct.Finished = 3D Finished
RocketPanel.FigTypeAct.Unfinished = 3D Unfinished RocketPanel.FigTypeAct.Unfinished = 3D Unfinished

View File

@ -44,10 +44,10 @@ RocketActions.MoveDownAct.Movedown = Presun dolu
RocketActions.MoveDownAct.ttip.Movedown = Presun tuto komponentu smerem dolu. RocketActions.MoveDownAct.ttip.Movedown = Presun tuto komponentu smerem dolu.
! RocketPanel ! RocketPanel
RocketPanel.FigTypeAct.Sideview = Pohled ze strany RocketPanel.FigTypeAct.SideView = Pohled ze strany
RocketPanel.FigTypeAct.ttip.Sideview = Pohled ze strany RocketPanel.FigTypeAct.ttip.SideView = Pohled ze strany
RocketPanel.FigTypeAct.Backview = Zpetný pohled RocketPanel.FigTypeAct.BackView = Zpetný pohled
RocketPanel.FigTypeAct.ttip.Backview = Zadní pohled RocketPanel.FigTypeAct.ttip.BackView = Zadní pohled
RocketPanel.FigViewAct.2D = 2D Pohled RocketPanel.FigViewAct.2D = 2D Pohled
RocketPanel.FigViewAct.ttip.2D = 2D Pohled RocketPanel.FigViewAct.ttip.2D = 2D Pohled
RocketPanel.FigViewAct.3D = 3D Pohled RocketPanel.FigViewAct.3D = 3D Pohled

View File

@ -44,10 +44,10 @@ RocketActions.MoveDownAct.Movedown = Nach unten verschieben
RocketActions.MoveDownAct.ttip.Movedown = Verschiebt diese Komponente nach unten. RocketActions.MoveDownAct.ttip.Movedown = Verschiebt diese Komponente nach unten.
! RocketPanel ! RocketPanel
RocketPanel.FigTypeAct.Sideview = Seitenansicht RocketPanel.FigTypeAct.SideView = Seitenansicht
RocketPanel.FigTypeAct.ttip.Sideview = Seitenansicht RocketPanel.FigTypeAct.ttip.SideView = Seitenansicht
RocketPanel.FigTypeAct.Backview = Rückansicht RocketPanel.FigTypeAct.BackView = Rückansicht
RocketPanel.FigTypeAct.ttip.Backview = Vorderansicht RocketPanel.FigTypeAct.ttip.BackView = Vorderansicht
RocketPanel.FigViewAct.2D = 2D Ansicht RocketPanel.FigViewAct.2D = 2D Ansicht
RocketPanel.FigViewAct.ttip.2D = 2D Ansicht RocketPanel.FigViewAct.ttip.2D = 2D Ansicht
RocketPanel.FigViewAct.3D = 3D Ansicht RocketPanel.FigViewAct.3D = 3D Ansicht

View File

@ -891,14 +891,14 @@ RocketInfo.massText2 = Masa sin motores:
RocketInfo.stabText = Estabilidad: RocketInfo.stabText = Estabilidad:
RocketInfo.velocityValue = N/A RocketInfo.velocityValue = N/A
RocketPanel.FigTypeAct.Backview = Vista trasera RocketPanel.FigTypeAct.BackView = Vista trasera
RocketPanel.FigTypeAct.Figure3D = Esquema en 3D RocketPanel.FigTypeAct.Figure3D = Esquema en 3D
RocketPanel.FigTypeAct.Finished = Acabado en 3D RocketPanel.FigTypeAct.Finished = Acabado en 3D
! RocketPanel ! RocketPanel
RocketPanel.FigTypeAct.Sideview = Vista lateral RocketPanel.FigTypeAct.SideView = Vista lateral
RocketPanel.FigTypeAct.Unfinished = Sin acabado en 3D RocketPanel.FigTypeAct.Unfinished = Sin acabado en 3D
RocketPanel.FigTypeAct.ttip.Backview = Vista desde atr\u00e1s RocketPanel.FigTypeAct.ttip.BackView = Vista desde atr\u00e1s
RocketPanel.FigTypeAct.ttip.Sideview = Vista desde un lateral RocketPanel.FigTypeAct.ttip.SideView = Vista desde un lateral
RocketPanel.FigViewAct.2D = Vista 2D RocketPanel.FigViewAct.2D = Vista 2D
RocketPanel.FigViewAct.3D = Vista 3D RocketPanel.FigViewAct.3D = Vista 3D
RocketPanel.FigViewAct.ttip.2D = Vista en 2D RocketPanel.FigViewAct.ttip.2D = Vista en 2D

View File

@ -883,14 +883,14 @@ RocketInfo.massText2 = Masse sans moteurs
RocketInfo.stabText = Stabilit\u00E9: RocketInfo.stabText = Stabilit\u00E9:
RocketInfo.velocityValue = N/A RocketInfo.velocityValue = N/A
RocketPanel.FigTypeAct.Backview = Vue arri\u00E8re RocketPanel.FigTypeAct.BackView = Vue arri\u00E8re
RocketPanel.FigTypeAct.Figure3D = Figure 3D RocketPanel.FigTypeAct.Figure3D = Figure 3D
RocketPanel.FigTypeAct.Finished = Finitions en 3D RocketPanel.FigTypeAct.Finished = Finitions en 3D
! RocketPanel ! RocketPanel
RocketPanel.FigTypeAct.Sideview = Vue de cot\u00E9 RocketPanel.FigTypeAct.SideView = Vue de cot\u00E9
RocketPanel.FigTypeAct.Unfinished = Sans finissions 3D RocketPanel.FigTypeAct.Unfinished = Sans finissions 3D
RocketPanel.FigTypeAct.ttip.Backview = Vue arri\u00E8re RocketPanel.FigTypeAct.ttip.BackView = Vue arri\u00E8re
RocketPanel.FigTypeAct.ttip.Sideview = Vue de cot\u00E9 RocketPanel.FigTypeAct.ttip.SideView = Vue de cot\u00E9
RocketPanel.FigViewAct.2D = Vue 2D RocketPanel.FigViewAct.2D = Vue 2D
RocketPanel.FigViewAct.3D = Vue 3D RocketPanel.FigViewAct.3D = Vue 3D
RocketPanel.FigViewAct.ttip.2D = Vue 2D RocketPanel.FigViewAct.ttip.2D = Vue 2D

View File

@ -44,10 +44,10 @@ RocketActions.MoveDownAct.Movedown = Muove giu'
RocketActions.MoveDownAct.ttip.Movedown = Muovi questo componente verso il basso. RocketActions.MoveDownAct.ttip.Movedown = Muovi questo componente verso il basso.
! RocketPanel ! RocketPanel
RocketPanel.FigTypeAct.Sideview = Vista laterale RocketPanel.FigTypeAct.SideView = Vista laterale
RocketPanel.FigTypeAct.ttip.Sideview = Vista laterale RocketPanel.FigTypeAct.ttip.SideView = Vista laterale
RocketPanel.FigTypeAct.Backview = Vista da sotto RocketPanel.FigTypeAct.BackView = Vista da sotto
RocketPanel.FigTypeAct.ttip.Backview = Vista da dietro RocketPanel.FigTypeAct.ttip.BackView = Vista da dietro
RocketPanel.FigViewAct.2D = 2D View RocketPanel.FigViewAct.2D = 2D View
RocketPanel.FigViewAct.ttip.2D = 2D View RocketPanel.FigViewAct.ttip.2D = 2D View
RocketPanel.FigViewAct.3D = 3D View RocketPanel.FigViewAct.3D = 3D View

View File

@ -40,10 +40,10 @@ RocketActions.MoveDownAct.Movedown = \u4E0B\u306B\u79FB\u52D5
RocketActions.MoveDownAct.ttip.Movedown = \u90E8\u54C1\u3092\u4E0B\u306E\u968E\u5C64\u306B\u79FB\u52D5 RocketActions.MoveDownAct.ttip.Movedown = \u90E8\u54C1\u3092\u4E0B\u306E\u968E\u5C64\u306B\u79FB\u52D5
! RocketPanel ! RocketPanel
RocketPanel.FigTypeAct.Sideview = \u5074\u9762\u56F3 RocketPanel.FigTypeAct.SideView = \u5074\u9762\u56F3
RocketPanel.FigTypeAct.ttip.Sideview = \u5074\u9762\u56F3 RocketPanel.FigTypeAct.ttip.SideView = \u5074\u9762\u56F3
RocketPanel.FigTypeAct.Backview = \u80CC\u9762\u56F3 RocketPanel.FigTypeAct.BackView = \u80CC\u9762\u56F3
RocketPanel.FigTypeAct.ttip.Backview = \u5F8C\u308D\u304B\u3089\u306E\u56F3 RocketPanel.FigTypeAct.ttip.BackView = \u5F8C\u308D\u304B\u3089\u306E\u56F3
RocketPanel.FigViewAct.2D = 2D View RocketPanel.FigViewAct.2D = 2D View
RocketPanel.FigViewAct.ttip.2D = 2D View RocketPanel.FigViewAct.ttip.2D = 2D View
RocketPanel.FigViewAct.3D = 3D View RocketPanel.FigViewAct.3D = 3D View

View File

@ -44,10 +44,10 @@
RocketActions.MoveDownAct.ttip.Movedown = Przesu\u0144 wybran\u0105 cz\u0119\u015B\u0107 w dó\u0142. RocketActions.MoveDownAct.ttip.Movedown = Przesu\u0144 wybran\u0105 cz\u0119\u015B\u0107 w dó\u0142.
! RocketPanel ! RocketPanel
RocketPanel.FigTypeAct.Sideview = Widok z boku RocketPanel.FigTypeAct.SideView = Widok z boku
RocketPanel.FigTypeAct.ttip.Sideview = Widok z boku RocketPanel.FigTypeAct.ttip.SideView = Widok z boku
RocketPanel.FigTypeAct.Backview = Widok z ty\u0142u RocketPanel.FigTypeAct.BackView = Widok z ty\u0142u
RocketPanel.FigTypeAct.ttip.Backview = Widok tylny RocketPanel.FigTypeAct.ttip.BackView = Widok tylny
RocketPanel.FigViewAct.2D = Widok 2D RocketPanel.FigViewAct.2D = Widok 2D
RocketPanel.FigViewAct.ttip.2D = Widok 2D RocketPanel.FigViewAct.ttip.2D = Widok 2D
RocketPanel.FigViewAct.3D = Widok 3D RocketPanel.FigViewAct.3D = Widok 3D

View File

@ -867,14 +867,14 @@ RocketInfo.massText2 = Massa sem motores
RocketInfo.stabText = Estabilidade: RocketInfo.stabText = Estabilidade:
RocketInfo.velocityValue = N/D RocketInfo.velocityValue = N/D
RocketPanel.FigTypeAct.Backview = Vista traseira RocketPanel.FigTypeAct.BackView = Vista traseira
RocketPanel.FigTypeAct.Figure3D = Figura 3D RocketPanel.FigTypeAct.Figure3D = Figura 3D
RocketPanel.FigTypeAct.Finished = 3D Acabado RocketPanel.FigTypeAct.Finished = 3D Acabado
# RocketPanel # RocketPanel
RocketPanel.FigTypeAct.Sideview = Vista lateral RocketPanel.FigTypeAct.SideView = Vista lateral
RocketPanel.FigTypeAct.Unfinished = 3D Inacabado RocketPanel.FigTypeAct.Unfinished = 3D Inacabado
RocketPanel.FigTypeAct.ttip.Backview = Vista traseira RocketPanel.FigTypeAct.ttip.BackView = Vista traseira
RocketPanel.FigTypeAct.ttip.Sideview = Vista lateral RocketPanel.FigTypeAct.ttip.SideView = Vista lateral
RocketPanel.FigViewAct.2D = Vista 2D RocketPanel.FigViewAct.2D = Vista 2D
RocketPanel.FigViewAct.3D = Vista 3D RocketPanel.FigViewAct.3D = Vista 3D
RocketPanel.FigViewAct.ttip.2D = Vista 2D RocketPanel.FigViewAct.ttip.2D = Vista 2D

View File

@ -44,8 +44,8 @@ RocketActions.MoveDownAct.Movedown = \u041f\u0435\u0440\u0435\u043c\u0435\u0441\
RocketActions.MoveDownAct.ttip.Movedown = \u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0432\u043d\u0438\u0437. RocketActions.MoveDownAct.ttip.Movedown = \u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0432\u043d\u0438\u0437.
! RocketPanel ! RocketPanel
RocketPanel.FigTypeAct.Sideview = \u0412\u0438\u0434 \u0441\u0431\u043e\u043a\u0443 RocketPanel.FigTypeAct.SideView = \u0412\u0438\u0434 \u0441\u0431\u043e\u043a\u0443
RocketPanel.FigTypeAct.Backview = \u0412\u0438\u0434 \u0441\u0437\u0430\u0434\u0438 RocketPanel.FigTypeAct.BackView = \u0412\u0438\u0434 \u0441\u0437\u0430\u0434\u0438
RocketPanel.FigTypeAct.Figure3D = 3D \u0441\u0445\u0435\u043c\u0430 RocketPanel.FigTypeAct.Figure3D = 3D \u0441\u0445\u0435\u043c\u0430
RocketPanel.FigTypeAct.Finished = 3D \u043e\u0442\u0434\u0435\u043b\u043a\u0430 RocketPanel.FigTypeAct.Finished = 3D \u043e\u0442\u0434\u0435\u043b\u043a\u0430
RocketPanel.FigTypeAct.Unfinished = 3D \u0447\u0435\u0440\u043d\u043e\u0432\u0430\u044f RocketPanel.FigTypeAct.Unfinished = 3D \u0447\u0435\u0440\u043d\u043e\u0432\u0430\u044f

View File

@ -50,8 +50,8 @@ RocketActions.MoveDownAct.ttip.Movedown = A\u015fa\u011f\u0131ya do\u011fru bu p
ettir. ettir.
! RocketPanel ! RocketPanel
RocketPanel.FigTypeAct.Sideview = Yandan G\u00f6r\u00fcn\u00fc\u015f RocketPanel.FigTypeAct.SideView = Yandan G\u00f6r\u00fcn\u00fc\u015f
RocketPanel.FigTypeAct.Backview = Arkadan G\u00f6r\u00fcn\u00fc\u015f RocketPanel.FigTypeAct.BackView = Arkadan G\u00f6r\u00fcn\u00fc\u015f
RocketPanel.FigTypeAct.Figure3D = 3D Resimlendirme RocketPanel.FigTypeAct.Figure3D = 3D Resimlendirme
RocketPanel.FigTypeAct.Finished = 3D Bitmi\u015f RocketPanel.FigTypeAct.Finished = 3D Bitmi\u015f
RocketPanel.FigTypeAct.Unfinished = 3D Bitmemi\u015f RocketPanel.FigTypeAct.Unfinished = 3D Bitmemi\u015f

View File

@ -46,8 +46,8 @@ RocketActions.MoveDownAct.Movedown = Move down
RocketActions.MoveDownAct.ttip.Movedown = Move this component downwards. RocketActions.MoveDownAct.ttip.Movedown = Move this component downwards.
! RocketPanel ! RocketPanel
RocketPanel.FigTypeAct.Sideview = Side view RocketPanel.FigTypeAct.SideView = Side view
RocketPanel.FigTypeAct.Backview = Back view RocketPanel.FigTypeAct.BackView = Back view
RocketPanel.FigTypeAct.Figure3D = 3D Figure RocketPanel.FigTypeAct.Figure3D = 3D Figure
RocketPanel.FigTypeAct.Finished = 3D Finished RocketPanel.FigTypeAct.Finished = 3D Finished
RocketPanel.FigTypeAct.Unfinished = 3D Unfinished RocketPanel.FigTypeAct.Unfinished = 3D Unfinished

View File

@ -957,11 +957,11 @@ RocketInfo.massText2 = \u4E0D\u542B\u53D1\u52A8\u673A\u7684\u51C0\u
RocketInfo.stabText = \u7A33\u5B9A\u6027: RocketInfo.stabText = \u7A33\u5B9A\u6027:
RocketInfo.velocityValue = N/A RocketInfo.velocityValue = N/A
RocketPanel.FigTypeAct.Backview = \u540E\u89C6\u56FE RocketPanel.FigTypeAct.BackView = \u540E\u89C6\u56FE
RocketPanel.FigTypeAct.Figure3D = \u4E09\u7EF4\u56FE RocketPanel.FigTypeAct.Figure3D = \u4E09\u7EF4\u56FE
RocketPanel.FigTypeAct.Finished = \u4E09\u7EF4\u7CBE\u7EC6\u56FE RocketPanel.FigTypeAct.Finished = \u4E09\u7EF4\u7CBE\u7EC6\u56FE
! RocketPanel ! RocketPanel
RocketPanel.FigTypeAct.Sideview = \u4FA7\u89C6\u56FE RocketPanel.FigTypeAct.SideView = \u4FA7\u89C6\u56FE
RocketPanel.FigTypeAct.Unfinished = \u4E09\u7EF4\u8349\u56FE RocketPanel.FigTypeAct.Unfinished = \u4E09\u7EF4\u8349\u56FE
RocketPanel.lbl.Flightcfg = \u98DE\u884C\u914D\u7F6E: RocketPanel.lbl.Flightcfg = \u98DE\u884C\u914D\u7F6E:
RocketPanel.lbl.ViewType = \u89C6\u56FE\u7C7B\u578B: RocketPanel.lbl.ViewType = \u89C6\u56FE\u7C7B\u578B:

View File

@ -135,6 +135,7 @@ public class Stage extends ComponentAssembly implements FlightConfigurableCompon
@Override @Override
public void setRadialPosition(final double radius) { public void setRadialPosition(final double radius) {
this.radialPosition_m = radius; this.radialPosition_m = radius;
log.error(" set radial position for: " + this.getName() + " to: " + this.radialPosition_m + " ... in meters?");
if (this.outside) { if (this.outside) {
fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE); fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
} }

View File

@ -56,9 +56,9 @@ import com.jogamp.opengl.util.awt.Overlay;
*/ */
public class RocketFigure3d extends JPanel implements GLEventListener { public class RocketFigure3d extends JPanel implements GLEventListener {
public static final int TYPE_FIGURE = 0; public static final int TYPE_FIGURE = 2;
public static final int TYPE_UNFINISHED = 1; public static final int TYPE_UNFINISHED = 3;
public static final int TYPE_FINISHED = 2; public static final int TYPE_FINISHED = 4;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private static final Logger log = LoggerFactory.getLogger(RocketFigure3d.class); private static final Logger log = LoggerFactory.getLogger(RocketFigure3d.class);

View File

@ -26,6 +26,7 @@ import net.sf.openrocket.motor.Motor;
import net.sf.openrocket.rocketcomponent.Configuration; import net.sf.openrocket.rocketcomponent.Configuration;
import net.sf.openrocket.rocketcomponent.MotorMount; import net.sf.openrocket.rocketcomponent.MotorMount;
import net.sf.openrocket.rocketcomponent.RocketComponent; import net.sf.openrocket.rocketcomponent.RocketComponent;
import net.sf.openrocket.gui.scalefigure.RocketPanel;
import net.sf.openrocket.startup.Application; import net.sf.openrocket.startup.Application;
import net.sf.openrocket.util.BugException; import net.sf.openrocket.util.BugException;
import net.sf.openrocket.util.Coordinate; import net.sf.openrocket.util.Coordinate;
@ -47,8 +48,8 @@ public class RocketFigure extends AbstractScaleFigure {
private static final String ROCKET_FIGURE_PACKAGE = "net.sf.openrocket.gui.rocketfigure"; private static final String ROCKET_FIGURE_PACKAGE = "net.sf.openrocket.gui.rocketfigure";
private static final String ROCKET_FIGURE_SUFFIX = "Shapes"; private static final String ROCKET_FIGURE_SUFFIX = "Shapes";
public static final int TYPE_SIDE = 1; public static final int VIEW_SIDE=0;
public static final int TYPE_BACK = 2; public static final int VIEW_BACK=1;
// Width for drawing normal and selected components // Width for drawing normal and selected components
public static final double NORMAL_WIDTH = 1.0; public static final double NORMAL_WIDTH = 1.0;
@ -58,7 +59,7 @@ public class RocketFigure extends AbstractScaleFigure {
private Configuration configuration; private Configuration configuration;
private RocketComponent[] selection = new RocketComponent[0]; private RocketComponent[] selection = new RocketComponent[0];
private int type = TYPE_SIDE; private RocketPanel.VIEW_TYPE currentViewType = RocketPanel.VIEW_TYPE.SideView;
private double rotation; private double rotation;
private Transformation transformation; private Transformation transformation;
@ -158,17 +159,17 @@ public class RocketFigure extends AbstractScaleFigure {
} }
public int getType() { public RocketPanel.VIEW_TYPE getType() {
return type; return currentViewType;
} }
public void setType(int type) { public void setType(final RocketPanel.VIEW_TYPE type) {
if (type != TYPE_BACK && type != TYPE_SIDE) { if (type != RocketPanel.VIEW_TYPE.BackView && type != RocketPanel.VIEW_TYPE.SideView) {
throw new IllegalArgumentException("Illegal type: " + type); throw new IllegalArgumentException("Illegal type: " + type);
} }
if (this.type == type) if (this.currentViewType == type)
return; return;
this.type = type; this.currentViewType = type;
updateFigure(); updateFigure();
} }
@ -185,7 +186,9 @@ public class RocketFigure extends AbstractScaleFigure {
// Get shapes for all active components // Get shapes for all active components
for (RocketComponent c : configuration) { for (RocketComponent c : configuration) {
Shape[] s = getShapes(c); Shape[] s = getShapes( this.currentViewType, c, this.transformation);
for (int i = 0; i < s.length; i++) { for (int i = 0; i < s.length; i++) {
figureShapes.add(s[i]); figureShapes.add(s[i]);
figureComponents.add(c); figureComponents.add(c);
@ -249,19 +252,19 @@ public class RocketFigure extends AbstractScaleFigure {
if (figureWidthPx + 2 * borderPixelsWidth < getWidth()) { if (figureWidthPx + 2 * borderPixelsWidth < getWidth()) {
// Figure fits in the viewport // Figure fits in the viewport
if (type == TYPE_BACK) if (currentViewType == RocketPanel.VIEW_TYPE.BackView){
tx = getWidth() / 2; tx = getWidth() / 2;
else }else{
tx = (getWidth() - figureWidthPx) / 2 - minX * scale; tx = (getWidth() - figureWidthPx) / 2 - minX * scale;
}
} else { } else {
// Figure does not fit in viewport // Figure does not fit in viewport
if (type == TYPE_BACK) if (currentViewType == RocketPanel.VIEW_TYPE.BackView){
tx = borderPixelsWidth + figureWidthPx / 2; tx = borderPixelsWidth + figureWidthPx / 2;
else }else{
tx = borderPixelsWidth - minX * scale; tx = borderPixelsWidth - minX * scale;
}
} }
ty = computeTy(figureHeightPx); ty = computeTy(figureHeightPx);
@ -365,7 +368,7 @@ public class RocketFigure extends AbstractScaleFigure {
for (Coordinate coord : position) { for (Coordinate coord : position) {
Shape s; Shape s;
if (type == TYPE_SIDE) { if (currentViewType == RocketPanel.VIEW_TYPE.SideView) {
s = new Rectangle2D.Double(EXTRA_SCALE * coord.x, s = new Rectangle2D.Double(EXTRA_SCALE * coord.x,
EXTRA_SCALE * (coord.y - radius), EXTRA_SCALE * length, EXTRA_SCALE * (coord.y - radius), EXTRA_SCALE * length,
EXTRA_SCALE * 2 * radius); EXTRA_SCALE * 2 * radius);
@ -436,17 +439,17 @@ public class RocketFigure extends AbstractScaleFigure {
* @param params * @param params
* @return * @return
*/ */
private Shape[] getShapes(RocketComponent component) { private static Shape[] getShapes(final RocketPanel.VIEW_TYPE type, final RocketComponent component, final Transformation transformation) {
Reflection.Method m; Reflection.Method m;
// Find the appropriate method // Find the appropriate method
switch (type) { switch (type) {
case TYPE_SIDE: case SideView:
m = Reflection.findMethod(ROCKET_FIGURE_PACKAGE, component, ROCKET_FIGURE_SUFFIX, "getShapesSide", m = Reflection.findMethod(ROCKET_FIGURE_PACKAGE, component, ROCKET_FIGURE_SUFFIX, "getShapesSide",
RocketComponent.class, Transformation.class); RocketComponent.class, Transformation.class);
break; break;
case TYPE_BACK: case BackView:
m = Reflection.findMethod(ROCKET_FIGURE_PACKAGE, component, ROCKET_FIGURE_SUFFIX, "getShapesBack", m = Reflection.findMethod(ROCKET_FIGURE_PACKAGE, component, ROCKET_FIGURE_SUFFIX, "getShapesBack",
RocketComponent.class, Transformation.class); RocketComponent.class, Transformation.class);
break; break;
@ -513,19 +516,19 @@ public class RocketFigure extends AbstractScaleFigure {
private void calculateSize() { private void calculateSize() {
calculateFigureBounds(); calculateFigureBounds();
switch (type) { switch (currentViewType) {
case TYPE_SIDE: case SideView:
figureWidth = maxX - minX; figureWidth = maxX - minX;
figureHeight = 2 * maxR; figureHeight = 2 * maxR;
break; break;
case TYPE_BACK: case BackView:
figureWidth = 2 * maxR; figureWidth = 2 * maxR;
figureHeight = 2 * maxR; figureHeight = 2 * maxR;
break; break;
default: default:
assert (false) : "Should not occur, type=" + type; assert (false) : "Should not occur, type=" + currentViewType;
figureWidth = 0; figureWidth = 0;
figureHeight = 0; figureHeight = 0;
} }
@ -544,15 +547,15 @@ public class RocketFigure extends AbstractScaleFigure {
} }
public Rectangle2D getDimensions() { public Rectangle2D getDimensions() {
switch (type) { switch (currentViewType) {
case TYPE_SIDE: case SideView:
return new Rectangle2D.Double(minX, -maxR, maxX - minX, 2 * maxR); return new Rectangle2D.Double(minX, -maxR, maxX - minX, 2 * maxR);
case TYPE_BACK: case BackView:
return new Rectangle2D.Double(-maxR, -maxR, 2 * maxR, 2 * maxR); return new Rectangle2D.Double(-maxR, -maxR, 2 * maxR, 2 * maxR);
default: default:
throw new BugException("Illegal figure type = " + type); throw new BugException("Illegal figure type = " + currentViewType);
} }
} }

View File

@ -89,8 +89,8 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change
private static final Translator trans = Application.getTranslator(); private static final Translator trans = Application.getTranslator();
public static enum VIEW_TYPE { public static enum VIEW_TYPE {
Sideview(false, RocketFigure.TYPE_SIDE), SideView(false, RocketFigure.VIEW_SIDE),
Backview(false, RocketFigure.TYPE_BACK), BackView(false, RocketFigure.VIEW_BACK),
Figure3D(true, RocketFigure3d.TYPE_FIGURE), Figure3D(true, RocketFigure3d.TYPE_FIGURE),
Unfinished(true, RocketFigure3d.TYPE_UNFINISHED), Unfinished(true, RocketFigure3d.TYPE_UNFINISHED),
Finished(true, RocketFigure3d.TYPE_FINISHED); Finished(true, RocketFigure3d.TYPE_FINISHED);
@ -283,7 +283,9 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change
// View Type Dropdown // View Type Dropdown
ComboBoxModel cm = new DefaultComboBoxModel(VIEW_TYPE.values()) { @SuppressWarnings("serial") // because java throws a warning without this.
ComboBoxModel<VIEW_TYPE> cm = new DefaultComboBoxModel<VIEW_TYPE>(VIEW_TYPE.values()) {
@Override @Override
public void setSelectedItem(Object o) { public void setSelectedItem(Object o) {
super.setSelectedItem(o); super.setSelectedItem(o);
@ -292,14 +294,14 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change
figure3d.setType(v.type); figure3d.setType(v.type);
go3D(); go3D();
} else { } else {
figure.setType(v.type); figure.setType(v);
updateExtras(); // when switching from side view to back view, need to clear CP & CG markers updateExtras(); // when switching from side view to back view, need to clear CP & CG markers
go2D(); go2D();
} }
} }
}; };
add(new JLabel(trans.get("RocketPanel.lbl.ViewType")), "spanx, split"); add(new JLabel(trans.get("RocketPanel.lbl.ViewType")), "spanx, split");
add(new JComboBox(cm)); add(new JComboBox<VIEW_TYPE>(cm));
// Zoom level selector // Zoom level selector
@ -655,7 +657,7 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change
extraText.setWarnings(warnings); extraText.setWarnings(warnings);
if (figure.getType() == RocketFigure.TYPE_SIDE && length > 0) { if (figure.getType() == RocketPanel.VIEW_TYPE.SideView && length > 0) {
// TODO: LOW: Y-coordinate and rotation // TODO: LOW: Y-coordinate and rotation
extraCP.setPosition(cpx * RocketFigure.EXTRA_SCALE, 0); extraCP.setPosition(cpx * RocketFigure.EXTRA_SCALE, 0);
@ -844,9 +846,9 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change
*/ */
private class FigureTypeAction extends AbstractAction implements StateChangeListener { private class FigureTypeAction extends AbstractAction implements StateChangeListener {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private final int type; private final VIEW_TYPE type;
public FigureTypeAction(int type) { public FigureTypeAction(VIEW_TYPE type) {
this.type = type; this.type = type;
stateChanged(null); stateChanged(null);
figure.addChangeListener(this); figure.addChangeListener(this);