diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationCPEventListener.java b/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationCPEventListener.java deleted file mode 100644 index 317cf345a264b9c576a0df2e1b6226e3fe9999fd..0000000000000000000000000000000000000000 --- a/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationCPEventListener.java +++ /dev/null @@ -1,358 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package cz.fidentis.analyst.gui; - -import com.jogamp.opengl.GL2; -import cz.fidentis.analyst.gui.canvas.Canvas; -import cz.fidentis.analyst.gui.scene.DrawableMesh; -import cz.fidentis.analyst.mesh.core.MeshFacet; -import cz.fidentis.analyst.mesh.core.MeshPoint; -import cz.fidentis.analyst.visitors.mesh.BoundingBox; -import java.awt.Color; -import java.util.AbstractMap; -import java.util.ArrayList; -import java.util.Collections; -import javax.vecmath.Point3d; -import javax.vecmath.Vector3d; - -/** - * Executes changes made in PostRegistrationCP - * - * @author Richard Pajersky - */ -public class RegistrationCPEventListener { - - private final double featurePointsThreshold = 0.1; - private final Color defaultPrimaryColor = new Color(51, 51, 153); - private final Color defaultSecondaryColor = new Color(255, 239, 0); - private final int transparencyRange = 10; - private final double changeAmount = 500d; - private final Canvas canvas; - private final double moveX; - private final double moveY; - private final double moveZ; - private final double scaleXYZ; - - private DrawableMesh primaryFace; - private DrawableMesh secondaryFace; - - public RegistrationCPEventListener(Canvas canvas) { - this.canvas = canvas; - - ArrayList<DrawableMesh> drawables = new ArrayList<>(canvas.getScene().getDrawables()); - primaryFace = drawables.get(0); - secondaryFace = drawables.get(1); - setDeafultColor(); - - // set change amounts - BoundingBox visitor = new BoundingBox(); - secondaryFace.getModel().compute(visitor); - Point3d maxPoint = visitor.getBoundingBox().getMaxPoint(); - Point3d minPoint = visitor.getBoundingBox().getMinPoint(); - moveX = (maxPoint.x - minPoint.x) / changeAmount; - moveY = (maxPoint.y - minPoint.y) / changeAmount; - moveZ = (maxPoint.z - minPoint.z) / changeAmount; - scaleXYZ = (visitor.getBoundingBox().getMaxDiag() / (10 * changeAmount)); - } - - /** - * Calculates feature points which are too far away - */ - private void calculateFeaturePoints() { - if (!primaryFace.isRenderFeaturePoints()) { - return; - } - ArrayList<AbstractMap.SimpleEntry<Point3d, Color>> adjusted = new ArrayList<>(); - for (int i = 0; i < primaryFace.getFeaturePoints().size(); i++) { - Point3d primaryPoint = primaryFace.getFeaturePoints().get(i).getKey(); - Point3d secondaryPoint = new Point3d(secondaryFace.getFeaturePoints().get(i).getKey()); - transformPoint(secondaryPoint); - double distance = Math.sqrt( - Math.pow(secondaryPoint.x - primaryPoint.x, 2) + - Math.pow(secondaryPoint.y - primaryPoint.y, 2) + - Math.pow(secondaryPoint.z - primaryPoint.z, 2)); - Point3d point = new Point3d(secondaryFace.getFeaturePoints().get(i).getKey()); - if (distance > featurePointsThreshold) { - adjusted.add(new AbstractMap.SimpleEntry<>( - point, Color.RED)); - } else { - adjusted.add(new AbstractMap.SimpleEntry<>( - point, Color.YELLOW)); - } - secondaryFace.setFeaturePoints(adjusted); - } - } - - /** - * Applies carried out transformations - */ - public void transformFace() { - for (MeshFacet transformedFacet : secondaryFace.getFacets()) { - for (MeshPoint comparedPoint : transformedFacet.getVertices()) { - transformPoint(comparedPoint.getPosition()); - } - } - for (var point : secondaryFace.getFeaturePoints()) { - transformPoint(point.getKey()); - } - canvas.renderScene(); - } - - /** - * Transforms point based on transformation info from secondary face - * - * @param point Point to transform - */ - public void transformPoint(Point3d point) { - Point3d newPoint = new Point3d(0, 0, 0); - double quotient; - - // rotate around X - quotient = Math.toRadians(secondaryFace.getRotation().x); - if (!Double.isNaN(quotient)) { - double cos = Math.cos(quotient); - double sin = Math.sin(quotient); - newPoint.y = point.y * cos - point.z * sin; - newPoint.z = point.z * cos + point.y * sin; - point.y = newPoint.y; - point.z = newPoint.z; - } - - // rotate around Y - quotient = Math.toRadians(secondaryFace.getRotation().y); - if (!Double.isNaN(quotient)) { - double cos = Math.cos(quotient); - double sin = Math.sin(quotient); - newPoint.x = point.x * cos + point.z * sin; - newPoint.z = point.z * cos - point.x * sin; - point.x = newPoint.x; - point.z = newPoint.z; - } - - // rotate around Z - quotient = Math.toRadians(secondaryFace.getRotation().z); - if (!Double.isNaN(quotient)) { - double cos = Math.cos(quotient); - double sin = Math.sin(quotient); - newPoint.x = point.x * cos - point.y * sin; - newPoint.y = point.y * cos + point.x * sin; - point.x = newPoint.x; - point.y = newPoint.y; - } - - // translate - point.x += secondaryFace.getTranslation().x; - point.y += secondaryFace.getTranslation().y; - point.z += secondaryFace.getTranslation().z; - - // scale - point.x *= 1 + secondaryFace.getScale().x; - point.y *= 1 + secondaryFace.getScale().y; - point.z *= 1 + secondaryFace.getScale().z; - } - - public final void setDeafultColor() { - primaryFace.setColor(defaultPrimaryColor); - secondaryFace.setColor(defaultSecondaryColor); - } - - public int getTransparencyRange() { - return transparencyRange; - } - - public void setPrimaryColor(Color color) { - primaryFace.setColor(color); - canvas.renderScene(); - } - - public void setSecondaryColor(Color color) { - secondaryFace.setColor(color); - canvas.renderScene(); - } - - public Color getPrimaryColor() { - return primaryFace.getColor(); - } - - public Color getSecondaryColor() { - return secondaryFace.getColor(); - } - - public void setTransparency(int value) { - - if (value == transparencyRange) { - setPrimaryTransparency(1); - setSecondaryTransparency(1); - } - if (value < transparencyRange) { - setPrimaryTransparency(value / 10f); - setSecondaryTransparency(1); - } - if (value > transparencyRange) { - setSecondaryTransparency((2 * transparencyRange - value) / 10f); - setPrimaryTransparency(1); - } - canvas.renderScene(); - } - - public void setPrimaryTransparency(float transparency) { - primaryFace.setTransparency(transparency); - } - - public void setSecondaryTransparency(float transparency) { - secondaryFace.setTransparency(transparency); - } - - public double getPrimaryTransparency() { - return primaryFace.getTransparency(); - } - - public double getSecondaryTransparency() { - return secondaryFace.getTransparency(); - } - - public void setFrontFacing() { - canvas.getCamera().initLocation(); - canvas.renderScene(); - } - - public void setSideFacing() { - canvas.getCamera().initLocation(); - canvas.getCamera().rotate(0, 90); - canvas.renderScene(); - } - - public Color getDefaultPrimaryColor() { - return defaultPrimaryColor; - } - - public Color getDefaultSecondaryColor() { - return defaultSecondaryColor; - } - - public void resetTranslation() { - secondaryFace.setTranslation(new Vector3d(0, 0, 0)); - calculateFeaturePoints(); - canvas.renderScene(); - } - - public void resetRotation() { - secondaryFace.setRotation(new Vector3d(0, 0, 0)); - calculateFeaturePoints(); - canvas.renderScene(); - } - - public void resetScale() { - secondaryFace.setScale(new Vector3d(0, 0, 0)); - calculateFeaturePoints(); - canvas.renderScene(); - } - - public void setXTranslation(double value) { - secondaryFace.getTranslation().x = value * moveX; - calculateFeaturePoints(); - canvas.renderScene(); - } - - public void setYTranslation(double value) { - secondaryFace.getTranslation().y = value * moveY; - calculateFeaturePoints(); - canvas.renderScene(); - } - - public void setZTranslation(double value) { - secondaryFace.getTranslation().z = value * moveZ; - calculateFeaturePoints(); - canvas.renderScene(); - } - - public void setXRotation(double value) { - secondaryFace.getRotation().x = value * moveX; - calculateFeaturePoints(); - canvas.renderScene(); - } - - public void setYRotation(double value) { - secondaryFace.getRotation().y = value * moveY; - calculateFeaturePoints(); - canvas.renderScene(); - } - - public void setZRotation(double value) { - secondaryFace.getRotation().z = value * moveZ; - calculateFeaturePoints(); - canvas.renderScene(); - } - - public void setScale(double value) { - secondaryFace.getScale().x = value * scaleXYZ; - secondaryFace.getScale().y = value * scaleXYZ; - secondaryFace.getScale().z = value * scaleXYZ; - calculateFeaturePoints(); - canvas.renderScene(); - } - - public void setPrimaryHighlights() { - primaryFace.setHighlights(new Color(1, 1, 1)); - canvas.renderScene(); - } - - public void setSecondaryHighlights() { - secondaryFace.setHighlights(new Color(1, 1, 1)); - canvas.renderScene(); - } - - public void removePrimaryHighlights() { - primaryFace.setHighlights(new Color(0, 0, 0)); - canvas.renderScene(); - } - - public void removeSecondaryHighlights() { - secondaryFace.setHighlights(new Color(0, 0, 0)); - canvas.renderScene(); - } - - public void setPrimaryLines() { - primaryFace.setRenderMode(GL2.GL_LINE); - canvas.renderScene(); - } - - public void setSecondaryLines() { - secondaryFace.setRenderMode(GL2.GL_LINE); - canvas.renderScene(); - } - - public void setPrimaryPoints() { - primaryFace.setRenderMode(GL2.GL_POINT); - canvas.renderScene(); - } - - public void setSecondaryPoints() { - secondaryFace.setRenderMode(GL2.GL_POINT); - canvas.renderScene(); - } - - public void setPrimaryFill() { - primaryFace.setRenderMode(GL2.GL_FILL); - canvas.renderScene(); - } - - public void setSecondaryFill() { - secondaryFace.setRenderMode(GL2.GL_FILL); - canvas.renderScene(); - } - - public boolean isFeaturePointsActive() { - return primaryFace.isRenderFeaturePoints(); - } - - public void setFeaturePointsActive(boolean state) { - primaryFace.setRenderFeaturePoints(state); - secondaryFace.setRenderFeaturePoints(state); - calculateFeaturePoints(); - canvas.renderScene(); - } -} diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Canvas.java b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Canvas.java index 6f3d31a1aadc57a49fcb0e576d8d13d74e67dbc3..8b74f81ac2ac1828de5c6208053e5e6c4f393e6d 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Canvas.java +++ b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Canvas.java @@ -132,8 +132,8 @@ public class Canvas extends javax.swing.JPanel { /* public GLCanvas getGLCanvas() { return this.glCanvas; - } - */ + }*/ + /** * Changing the size of glCanvas @@ -354,27 +354,27 @@ public class Canvas extends javax.swing.JPanel { }//GEN-LAST:event_jLayeredPane1ComponentShown private void leftNavigationButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftNavigationButtonMousePressed - animator.startAnimation(RotationAnimator.Direction.ROTATE_LEFT, this.camera); + animator.startAnimation(Direction.ROTATE_LEFT, this.camera); leftNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/leftButtonPressed.png"))); }//GEN-LAST:event_leftNavigationButtonMousePressed private void upNavigationButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_upNavigationButtonMousePressed - animator.startAnimation(RotationAnimator.Direction.ROTATE_UP, this.camera); + animator.startAnimation(Direction.ROTATE_UP, this.camera); upNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/upButtonPressed.png"))); }//GEN-LAST:event_upNavigationButtonMousePressed private void downNavigationButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_downNavigationButtonMousePressed - animator.startAnimation(RotationAnimator.Direction.ROTATE_DOWN, this.camera); + animator.startAnimation(Direction.ROTATE_DOWN, this.camera); downNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/downButtonPressed.png"))); }//GEN-LAST:event_downNavigationButtonMousePressed private void plusNavigationButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_plusNavigationButtonMousePressed - animator.startAnimation(RotationAnimator.Direction.ZOOM_IN, this.camera); + animator.startAnimation(Direction.ZOOM_IN, this.camera); plusNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/plusPressed.png"))); }//GEN-LAST:event_plusNavigationButtonMousePressed private void minusNavigationButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_minusNavigationButtonMousePressed - animator.startAnimation(RotationAnimator.Direction.ZOOM_OUT, this.camera); + animator.startAnimation(Direction.ZOOM_OUT, this.camera); minusNavigationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/minusPressed.png"))); }//GEN-LAST:event_minusNavigationButtonMousePressed @@ -404,7 +404,7 @@ public class Canvas extends javax.swing.JPanel { }//GEN-LAST:event_minusNavigationButtonMouseReleased private void rightNavigationButton1MousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightNavigationButton1MousePressed - animator.startAnimation(RotationAnimator.Direction.ROTATE_RIGHT, this.camera); + animator.startAnimation(Direction.ROTATE_RIGHT, this.camera); rightNavigationButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/rightButtonPressed.png"))); }//GEN-LAST:event_rightNavigationButton1MousePressed diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Direction.java b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Direction.java new file mode 100644 index 0000000000000000000000000000000000000000..a0be3b48a1f8a78770c302fe970a9a0e25652c34 --- /dev/null +++ b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Direction.java @@ -0,0 +1,28 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package cz.fidentis.analyst.gui.canvas; + +/** + * + * @author Richard Pajersky + */ +public enum Direction { + ROTATE_LEFT, + ROTATE_RIGHT, + ROTATE_UP, + ROTATE_DOWN, + ROTATE_IN, + ROTATE_OUT, + ZOOM_IN, + ZOOM_OUT, + TRANSLATE_LEFT, + TRANSLATE_RIGHT, + TRANSLATE_UP, + TRANSLATE_DOWN, + TRANSLATE_IN, + TRANSLATE_OUT, + NONE +} diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/MouseRotationListener.java b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/MouseRotationListener.java index 162bd0d981b6171c1100e40be9308fb96e2abc58..2a9ecd90239a937f08f0be6fb58e3907ede4571e 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/MouseRotationListener.java +++ b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/MouseRotationListener.java @@ -38,11 +38,10 @@ public class MouseRotationListener extends MouseAdapter { * Left mouse button dragging rotates * Right mouse button dragging moves * Middle mouse button dragging resets rotation and zoom + * @param evt Mouse position info */ @Override public void mouseDragged(MouseEvent evt) { - //JOptionPane.showMessageDialog(null, evt.getButton()); - if (SwingUtilities.isLeftMouseButton(evt)) { double rotateX = -(lastY - evt.getY()) * rotationSpeed; double rotateY = +(lastX - evt.getX()) * rotationSpeed; @@ -68,6 +67,7 @@ public class MouseRotationListener extends MouseAdapter { /** * Actualize mouse movement + * @param evt Mouse position info */ @Override public void mouseMoved(MouseEvent e) { @@ -77,6 +77,7 @@ public class MouseRotationListener extends MouseAdapter { /** * Zoom in or out based on mouse wheel movement + * @param evt Mouse wheel info */ @Override public void mouseWheelMoved(MouseWheelEvent evt) { @@ -90,6 +91,7 @@ public class MouseRotationListener extends MouseAdapter { /** * Middle mouse button click resets rotation and zoom + * @param evt Mouse position info */ @Override public void mouseClicked(MouseEvent evt) { @@ -99,18 +101,32 @@ public class MouseRotationListener extends MouseAdapter { } } + /** + * @return Rotation speed + */ public static double getRotationSpeed() { return rotationSpeed; } + /** + * Sets rotation speed + * @param rotationSpeed + */ public static void setRotationSpeed(double rotationSpeed) { MouseRotationListener.rotationSpeed = rotationSpeed; } + /** + * @return Move speed + */ public static double getMoveSpeed() { return moveSpeed; } + /** + * Sets move speed + * @param moveSpeed + */ public static void setMoveSpeed(double moveSpeed) { MouseRotationListener.moveSpeed = moveSpeed; } diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/RotationAnimator.java b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/RotationAnimator.java index a15b6412f2453c07ea187e08aee1e588979653a0..850d395f45972db169ce6f2a48efdddb7feb7d67 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/RotationAnimator.java +++ b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/RotationAnimator.java @@ -15,22 +15,6 @@ import java.util.TimerTask; */ public class RotationAnimator { - /** - * @author Radek Oslejsek - */ - public enum Direction { - ROTATE_LEFT, - ROTATE_RIGHT, - ROTATE_UP, - ROTATE_DOWN, - ZOOM_IN, - ZOOM_OUT, - NONE - } - - //private final Camera camera; - - /** * Frequency of the rotation or zoom animations */ diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/scene/DrawableMesh.java b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/DrawableMesh.java index b25cdd68411b9eab29cf3024d973673e448ecd9b..2355656c9962671e75fa993f96f9401dfca7b11d 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/gui/scene/DrawableMesh.java +++ b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/DrawableMesh.java @@ -1,13 +1,12 @@ package cz.fidentis.analyst.gui.scene; import com.jogamp.opengl.GL2; +import cz.fidentis.analyst.feature.FeaturePoint; import cz.fidentis.analyst.mesh.core.MeshFacet; import cz.fidentis.analyst.mesh.core.MeshModel; import java.awt.Color; -import java.util.AbstractMap; import java.util.ArrayList; import java.util.List; -import javax.vecmath.Point3d; import javax.vecmath.Vector3d; /** @@ -16,6 +15,7 @@ import javax.vecmath.Vector3d; * This class encapsulates rendering state and parameters, * * @author Radek Oslejsek + * @author Richard Pajersky */ public class DrawableMesh { @@ -23,19 +23,57 @@ public class DrawableMesh { private boolean display = true; - // material info + /* material info */ + /** + * {@link Color} of mesh + */ private Color color = new Color(255, 255, 255); + /** + * {@link Color} of highlights + */ private Color highlights = new Color(0, 0, 0, 1); + /** + * Transparency of mesh + */ private float transparency = 1; - // transformation info + + /* transformation info */ + /** + * Translation + */ private Vector3d translation = new Vector3d(0, 0, 0); + /** + * Rotation + */ private Vector3d rotation = new Vector3d(0, 0, 0); + /** + * Scale + */ private Vector3d scale = new Vector3d(0, 0, 0); - // render mode + + /* render mode */ + /** + * Render mode to use, one from {@code GL_FILL}, {@code GL_LINE}, {@code GL_POINT} + */ private int renderMode = GL2.GL_FILL; - // feature points - private ArrayList<AbstractMap.SimpleEntry<Point3d, Color>> featurePoints = new ArrayList<>(); - boolean renderFeaturePoints = false; + /** + * Flag if back should be rendered + */ + private boolean showBackface = true; + + /* feature points */ + /** + * {@link List} of feature points + */ + private List<FeaturePoint> featurePoints = new ArrayList<>(); + /** + * {@link List} of feature points color + */ + private List<Color> featurePointsColor = new ArrayList<>(); + /** + * Flag if feature points should be rendered + */ + private boolean renderFeaturePoints = false; /** * Constructor. @@ -81,79 +119,187 @@ public class DrawableMesh { return display; } + /** + * Sets color + * @param color Color + */ public void setColor(Color color) { this.color = color; } + /** + * @return {@link Color} + */ public Color getColor() { return color; } + /** + * @return Current value of transparency + */ public float getTransparency() { return transparency; } + /** + * Sets transparency + * @param transparency Transparency + */ public void setTransparency(float transparency) { this.transparency = transparency; } + /** + * @return Current translation + */ public Vector3d getTranslation() { return translation; } + /** + * Sets tranlation + * @param translation Translation + */ public void setTranslation(Vector3d translation) { this.translation = translation; } + /** + * @return Current rotation + */ public Vector3d getRotation() { return rotation; } + /** + * Sets rotation + * @param rotation + */ public void setRotation(Vector3d rotation) { this.rotation = rotation; } + /** + * @return Current scale + */ public Vector3d getScale() { return scale; } + /** + * Sets scale + * @param scale Scale + */ public void setScale(Vector3d scale) { this.scale = scale; } + /** + * @return {@link MeshModel} + */ public MeshModel getModel() { return this.model; } + /** + * @return {@link Color} of highlights + */ public Color getHighlights() { return highlights; } + /** + * Sets {@link Color} of highlights + * @param highlights + */ public void setHighlights(Color highlights) { this.highlights = highlights; } + /** + * @return Value of {@link #renderMode} + */ public int getRenderMode() { return renderMode; } + /** + * Sets render mode + * @param renderMode Render mode + * @throws IllegalArgumentException if renderMode isn't {@code GL_FILL}, {@code GL_LINE} or {@coed GL_POINT} + */ public void setRenderMode(int renderMode) { + if (renderMode != GL2.GL_FILL && + renderMode != GL2.GL_LINE && + renderMode != GL2.GL_POINT) { + throw new IllegalArgumentException("invalid mode"); + } this.renderMode = renderMode; } - public ArrayList<AbstractMap.SimpleEntry<Point3d, Color>> getFeaturePoints() { + /** + * @return {@link List} of {@link FeaturePoint} + */ + public List<FeaturePoint> getFeaturePoints() { return featurePoints; } - public void setFeaturePoints(ArrayList<AbstractMap.SimpleEntry<Point3d, Color>> featurePoints) { + /** + * Sets feature points + * @param featurePoints Feature points + */ + public void setFeaturePoints(List<FeaturePoint> featurePoints) { this.featurePoints = featurePoints; + List<Color> colors = new ArrayList<>(); + featurePoints.forEach((_item) -> { + colors.add(this.color); + }); + this.setFeaturePointsColor(colors); } + /** + * @return {@link List} of feature points {@link Color} + */ + public List<Color> getFeaturePointsColor() { + return featurePointsColor; + } + + /** + * Sets colors of feature points + * @param featurePointsColor Colors of feature points + */ + public void setFeaturePointsColor(List<Color> featurePointsColor) { + this.featurePointsColor = featurePointsColor; + } + + /** + * @return {@code true} if feature points should be rendered + */ public boolean isRenderFeaturePoints() { return renderFeaturePoints; } + /** + * Sets if feature points should be renderred or not + * @param renderFeaturePoints + */ public void setRenderFeaturePoints(boolean renderFeaturePoints) { this.renderFeaturePoints = renderFeaturePoints; } + + /** + * @return {@code true} if back face shoud be shown + */ + public boolean isShowBackface() { + return showBackface; + } + + /** + * Sets if back face should be shown or not + * @param showBackface + */ + public void setShowBackface(boolean showBackface) { + this.showBackface = showBackface; + } + } diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/scene/SceneRenderer.java b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/SceneRenderer.java index 10d45da9393a6c77d803e58ac2db81eb8509ffbd..e334a1dbc8fdc0b3e5d75b039dba21ffdac4ae7b 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/gui/scene/SceneRenderer.java +++ b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/SceneRenderer.java @@ -1,18 +1,15 @@ package cz.fidentis.analyst.gui.scene; import com.jogamp.opengl.GL; -import static com.jogamp.opengl.GL.GL_DEPTH_TEST; -import static com.jogamp.opengl.GL.GL_FRONT_AND_BACK; import com.jogamp.opengl.GL2; import com.jogamp.opengl.glu.GLU; import com.jogamp.opengl.glu.GLUquadric; +import cz.fidentis.analyst.feature.FeaturePoint; import cz.fidentis.analyst.mesh.core.MeshFacet; import java.awt.Color; -import java.util.AbstractMap; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.List; import javax.vecmath.Point3d; import javax.vecmath.Point4f; import javax.vecmath.Vector3d; @@ -22,6 +19,7 @@ import javax.vecmath.Vector3d; * * @author Natalia Bebjakova * @author Radek Oslejsek + * @author Richard Pajersky */ public class SceneRenderer { @@ -32,7 +30,6 @@ public class SceneRenderer { private GL2 gl; private boolean brightBackground = false; - private boolean wireframe = false; /** * Constructor. @@ -49,6 +46,7 @@ public class SceneRenderer { gl.setSwapInterval(1); gl.glEnable(GL2.GL_LIGHTING); gl.glEnable(GL2.GL_LIGHT0); + gl.glEnable(GL2.GL_LIGHT1); gl.glEnable(GL2.GL_DEPTH_TEST); gl.glClearColor(0,0,0,0); // background for GLCanvas gl.glClear(GL2.GL_COLOR_BUFFER_BIT); @@ -57,13 +55,14 @@ public class SceneRenderer { gl.glDepthFunc(GL2.GL_LESS); gl.glDepthRange(0.0, 1.0); - gl.glEnable(GL_DEPTH_TEST); + gl.glEnable(GL.GL_DEPTH_TEST); gl.glEnable(GL2.GL_NORMALIZE); gl.glDisable(GL2.GL_CULL_FACE); gl.glEnable(GL2.GL_BLEND); // enable transparency gl.glBlendFunc(GL2.GL_SRC_ALPHA, GL2.GL_ONE_MINUS_SRC_ALPHA); + } /** @@ -112,23 +111,14 @@ public class SceneRenderer { */ public void renderScene(Camera camera, Collection<DrawableMesh> drawables) { clearScene(); + showBackface((DrawableMesh)drawables.toArray()[0]); + setPosition(camera); + setMeshOrder(drawables); - // sets model to proper position - Vector3d currentPosition = camera.getPosition(); - Vector3d center = camera.getCenter(); - Vector3d upDirection = camera.getUpDirection(); - glu.gluLookAt(currentPosition.x, currentPosition.y, currentPosition.z, - center.x, center.y, center.z, - upDirection.x, upDirection.y, upDirection.z); - gl.glShadeModel(GL2.GL_SMOOTH); - if (((DrawableMesh)drawables.toArray()[0]).getTransparency() != 1) { - Collections.reverse((ArrayList)drawables); - } - for (DrawableMesh obj: drawables) { - gl.glPolygonMode( GL_FRONT_AND_BACK, obj.getRenderMode()); + gl.glPolygonMode(GL.GL_FRONT_AND_BACK, obj.getRenderMode()); setMaterial(obj); gl.glPushMatrix(); setTransformation(obj); @@ -144,14 +134,56 @@ public class SceneRenderer { } /** - * Sets up material based on info from DrawableMesh + * Adds backlight to show/hide backface based on info from DrawableMesh + * + * @param face Face + */ + private void showBackface(DrawableMesh face) { + float[] pos = {0f, 0f, -1f, 0f}; + gl.glLightfv(GL2.GL_LIGHT1, GL2.GL_POSITION, pos, 0); + if (face.isShowBackface()) { + gl.glLightfv(GL2.GL_LIGHT1, GL2.GL_DIFFUSE, Color.white.getComponents(null), 0); + } else { + gl.glLightfv(GL2.GL_LIGHT1, GL2.GL_DIFFUSE, Color.black.getComponents(null), 0); + } + } + + /** + * Sets model to proper position + * + * @param camera Camera + */ + private void setPosition(Camera camera) { + Vector3d currentPosition = camera.getPosition(); + Vector3d center = camera.getCenter(); + Vector3d upDirection = camera.getUpDirection(); + glu.gluLookAt(currentPosition.x, currentPosition.y, currentPosition.z, + center.x, center.y, center.z, + upDirection.x, upDirection.y, upDirection.z); + } + + /** + * Sets up transparent objects to render later in order to render properly + * Now works only for two meshes + * + * @param drawables List of meshes + */ + private void setMeshOrder(Collection<DrawableMesh> drawables) { + if (((DrawableMesh)drawables.toArray()[0]).getTransparency() != 1) { + Collections.reverse((ArrayList)drawables); + } + } + + /** + * Sets up material + * + * @param obj Model used to get material info */ private void setMaterial(DrawableMesh obj) { // set color Color color = obj.getColor(); float[] rgba = {color.getRed() / 255f, color.getGreen() / 255f, color.getBlue() / 255f , obj.getTransparency()}; - gl.glMaterialfv(GL2.GL_FRONT_AND_BACK, GL2.GL_AMBIENT, rgba, 0); gl.glMaterialfv(GL2.GL_FRONT_AND_BACK, GL2.GL_DIFFUSE, rgba, 0); // set color of highlights color = obj.getHighlights(); @@ -162,6 +194,8 @@ public class SceneRenderer { /** * Sets up object transformation + * + * @param obj Model used to get transformation info */ private void setTransformation(DrawableMesh obj) { // rotate @@ -176,16 +210,17 @@ public class SceneRenderer { /** * Renders feature points + * + * @param obj Model used to get his feature points */ private void renderFeaturePoints(DrawableMesh obj) { - for (AbstractMap.SimpleEntry<Point3d, Color> featurePoint: obj.getFeaturePoints()) { - Color color = featurePoint.getValue(); - Point3d point = featurePoint.getKey(); + for (int i = 0; i < obj.getFeaturePoints().size(); i++) { + Color color = obj.getFeaturePointsColor().get(i); + FeaturePoint point = obj.getFeaturePoints().get(i); gl.glPushMatrix(); - gl.glTranslated(point.x, point.y, point.z); + gl.glTranslated(point.getX(), point.getY(), point.getZ()); float[] rgba = {color.getRed() / 255f, color.getGreen() / 255f, color.getBlue() / 255f , obj.getTransparency()}; - gl.glMaterialfv(GL2.GL_FRONT_AND_BACK, GL2.GL_AMBIENT, rgba, 0); gl.glMaterialfv(GL2.GL_FRONT_AND_BACK, GL2.GL_DIFFUSE, rgba, 0); GLUquadric center = glu.gluNewQuadric(); glu.gluQuadricDrawStyle(center, GLU.GLU_FILL); @@ -210,24 +245,9 @@ public class SceneRenderer { gl.glLoadIdentity(); } - /** - * Sets the wire-frame rendering mode - */ - protected void setWireframeMode() { - this.wireframe = true; - } - - /** - * Sets the "shaded" rendering mode (filled triangles) - */ - protected void setFillMode() { - this.wireframe = false; - } - /** * Loops through the facet and render all the vertices as they are stored in corner table * - * @param gl OpenGL context * @param facet facet of model */ protected void renderFacet(MeshFacet facet) { diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/tab/PostRegistrationCP.form b/GUI/src/main/java/cz/fidentis/analyst/gui/tab/PostRegistrationCP.form deleted file mode 100644 index 7936d52159e2a317f4a5940b8e8e07363cc5a82e..0000000000000000000000000000000000000000 --- a/GUI/src/main/java/cz/fidentis/analyst/gui/tab/PostRegistrationCP.form +++ /dev/null @@ -1,1510 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> - -<Form version="1.5" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo"> - <NonVisualComponents> - <Component class="javax.swing.ButtonGroup" name="primaryRenderModeGroup"> - </Component> - <Component class="javax.swing.ButtonGroup" name="secondaryRenerModeGroup"> - </Component> - </NonVisualComponents> - <Properties> - <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> - <Color blue="e2" green="e6" red="b0" type="rgb"/> - </Property> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[405, 600]"/> - </Property> - </Properties> - <AuxValues> - <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/> - <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/> - <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/> - <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="true"/> - <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/> - <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/> - <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> - <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> - <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> - </AuxValues> - - <Layout> - <DimensionLayout dim="0"> - <Group type="103" groupAlignment="0" attributes="0"> - <Group type="102" attributes="0"> - <EmptySpace max="-2" attributes="0"/> - <Group type="103" groupAlignment="0" attributes="0"> - <Component id="jSeparator5" max="32767" attributes="0"/> - <Component id="jSeparator7" alignment="0" max="32767" attributes="0"/> - <Group type="102" alignment="1" attributes="0"> - <EmptySpace min="0" pref="0" max="32767" attributes="0"/> - <Group type="103" groupAlignment="0" attributes="0"> - <Group type="102" alignment="1" attributes="0"> - <Group type="103" groupAlignment="0" max="-2" attributes="0"> - <Group type="102" alignment="0" attributes="0"> - <EmptySpace min="-2" pref="82" max="-2" attributes="0"/> - <Component id="leftRotationXButton" min="-2" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Component id="leftSmallRotaXButton" min="-2" max="-2" attributes="0"/> - <EmptySpace min="-2" pref="1" max="-2" attributes="0"/> - <Component id="rightSmallRotaXButton" min="-2" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Component id="rightRotationXButton" min="-2" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Component id="leftRotationYButton" min="-2" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Component id="leftSmallRotaYButton" min="-2" max="-2" attributes="0"/> - <EmptySpace min="-2" pref="1" max="-2" attributes="0"/> - <Component id="rightSmallRotaYButton" min="-2" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Component id="rightRotationYButton" min="-2" max="-2" attributes="0"/> - </Group> - <Group type="102" alignment="0" attributes="0"> - <Group type="103" groupAlignment="0" max="-2" attributes="0"> - <Component id="jLabel3" min="-2" max="-2" attributes="0"/> - <Component id="rotationButton" min="-2" pref="59" max="-2" attributes="0"/> - </Group> - <EmptySpace min="23" pref="23" max="-2" attributes="0"/> - <Group type="103" groupAlignment="0" attributes="0"> - <Component id="rotationXFTF" min="-2" pref="97" max="-2" attributes="0"/> - <Component id="rotatXLabel" alignment="0" min="-2" max="-2" attributes="0"/> - </Group> - <Group type="103" groupAlignment="0" attributes="0"> - <Group type="102" alignment="0" attributes="0"> - <EmptySpace max="-2" attributes="0"/> - <Component id="rotationYFTF" max="32767" attributes="0"/> - </Group> - <Group type="102" alignment="0" attributes="0"> - <EmptySpace min="-2" pref="6" max="-2" attributes="0"/> - <Component id="rotatYLabel" min="-2" max="-2" attributes="0"/> - <EmptySpace min="0" pref="0" max="32767" attributes="0"/> - </Group> - </Group> - </Group> - </Group> - <EmptySpace max="-2" attributes="0"/> - <Group type="103" groupAlignment="0" max="-2" attributes="0"> - <Group type="102" alignment="0" attributes="0"> - <Component id="leftRotationZButton" min="-2" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Component id="leftSmallRotaZButton" min="-2" max="-2" attributes="0"/> - <EmptySpace min="-2" pref="1" max="-2" attributes="0"/> - <Component id="rightSmallRotaZButton" min="-2" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Component id="rightRotationZButton" min="-2" max="-2" attributes="0"/> - </Group> - <Component id="rotationZFTF" min="-2" pref="97" max="-2" attributes="0"/> - <Component id="rotatZLabel" min="-2" max="-2" attributes="0"/> - </Group> - </Group> - <Group type="102" alignment="0" attributes="0"> - <Group type="103" groupAlignment="0" max="-2" attributes="0"> - <Component id="jLabel2" alignment="0" max="32767" attributes="0"/> - <Component id="translationButton" alignment="0" min="-2" pref="59" max="-2" attributes="0"/> - </Group> - <EmptySpace min="-2" pref="23" max="-2" attributes="0"/> - <Group type="103" groupAlignment="0" attributes="0"> - <Group type="103" alignment="0" groupAlignment="1" max="-2" attributes="0"> - <Component id="translationXFTF" alignment="0" max="32767" attributes="0"/> - <Group type="102" alignment="0" attributes="0"> - <Component id="leftTranslationXButton" min="-2" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Component id="leftSmallTranslXButton" min="-2" max="-2" attributes="0"/> - <EmptySpace min="-2" pref="1" max="-2" attributes="0"/> - <Component id="rightSmallTranslXButton" min="-2" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Component id="rightTranslationXButton" min="-2" max="-2" attributes="0"/> - </Group> - </Group> - <Component id="translXLabel" alignment="0" min="-2" max="-2" attributes="0"/> - </Group> - <EmptySpace max="-2" attributes="0"/> - <Group type="103" groupAlignment="0" max="-2" attributes="0"> - <Component id="translYLabel" min="-2" max="-2" attributes="0"/> - <Group type="102" alignment="0" attributes="0"> - <Component id="leftTranslationYButton" min="-2" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Component id="leftSmallTranslYButton" min="-2" max="-2" attributes="0"/> - <EmptySpace min="-2" pref="1" max="-2" attributes="0"/> - <Component id="rightSmallTranslYButton" min="-2" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Component id="rightTranslationYButton" min="-2" max="-2" attributes="0"/> - </Group> - <Component id="translationYFTF" alignment="0" min="-2" pref="97" max="-2" attributes="0"/> - </Group> - <EmptySpace max="-2" attributes="0"/> - <Group type="103" groupAlignment="0" max="-2" attributes="0"> - <Group type="102" alignment="0" attributes="0"> - <Component id="leftTranslationZButton" min="-2" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Component id="leftSmallTranslZButton" min="-2" max="-2" attributes="0"/> - <EmptySpace min="-2" pref="1" max="-2" attributes="0"/> - <Component id="rightSmallTranslZButton" min="-2" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Component id="rightTranslationZButton" min="-2" max="-2" attributes="0"/> - </Group> - <Component id="translationZFTF" min="-2" pref="97" max="-2" attributes="0"/> - <Component id="translZLabel" min="-2" max="-2" attributes="0"/> - </Group> - </Group> - <Component id="jLabel4" alignment="0" min="-2" max="-2" attributes="0"/> - <Group type="102" alignment="0" attributes="0"> - <Component id="scaleButton" min="-2" pref="59" max="-2" attributes="0"/> - <EmptySpace min="-2" pref="23" max="-2" attributes="0"/> - <Component id="scaleMinusButton" min="-2" pref="26" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Component id="scaleSmallMinusButton" min="-2" pref="26" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Component id="scaleSmallPlusButton" min="-2" pref="26" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Component id="scalePlusButton" min="-2" pref="26" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Component id="scaleFTF" min="-2" pref="72" max="-2" attributes="0"/> - </Group> - </Group> - </Group> - <Group type="102" attributes="0"> - <Group type="103" groupAlignment="0" max="-2" attributes="0"> - <Group type="102" alignment="0" attributes="0"> - <Component id="resetAllButton" min="-2" max="-2" attributes="0"/> - <EmptySpace max="32767" attributes="0"/> - <Component id="applyButton" min="-2" max="-2" attributes="0"/> - </Group> - <Component id="jSeparator6" alignment="0" max="32767" attributes="0"/> - <Component id="jSeparator2" alignment="0" max="32767" attributes="0"/> - <Group type="103" alignment="1" groupAlignment="0" attributes="0"> - <Component id="jLabel1" alignment="0" min="-2" max="-2" attributes="0"/> - <Component id="jSeparator1" alignment="0" min="-2" pref="385" max="-2" attributes="0"/> - <Group type="102" alignment="0" attributes="0"> - <Group type="103" groupAlignment="0" attributes="0"> - <Component id="secondaryLabel" alignment="0" min="-2" max="-2" attributes="0"/> - <Component id="primaryLabel" alignment="0" min="-2" max="-2" attributes="0"/> - <Component id="modelLabel" alignment="0" min="-2" max="-2" attributes="0"/> - </Group> - <EmptySpace type="separate" max="-2" attributes="0"/> - <Group type="103" groupAlignment="0" max="-2" attributes="0"> - <Component id="secondaryColorPanel" pref="50" max="32767" attributes="0"/> - <Component id="primaryColorPanel" pref="50" max="32767" attributes="0"/> - <Component id="colorButton" alignment="1" pref="50" max="32767" attributes="0"/> - </Group> - <EmptySpace type="separate" max="-2" attributes="0"/> - <Group type="103" groupAlignment="0" attributes="0"> - <Component id="highlightsLabel" alignment="0" min="-2" max="-2" attributes="0"/> - <Group type="102" alignment="0" attributes="0"> - <EmptySpace min="10" pref="10" max="-2" attributes="0"/> - <Group type="103" groupAlignment="0" attributes="0"> - <Component id="primaryHighlightsCB" min="-2" max="-2" attributes="0"/> - <Component id="secondaryHighlightsCB" alignment="0" min="-2" max="-2" attributes="0"/> - </Group> - </Group> - </Group> - <EmptySpace type="separate" max="-2" attributes="0"/> - <Group type="103" groupAlignment="0" attributes="0"> - <Group type="102" alignment="0" attributes="0"> - <Component id="fillLabel" min="-2" max="-2" attributes="0"/> - <EmptySpace type="separate" max="-2" attributes="0"/> - <Component id="linesLabel" min="-2" max="-2" attributes="0"/> - <EmptySpace type="unrelated" max="-2" attributes="0"/> - <Component id="pointsLabel" min="-2" max="-2" attributes="0"/> - </Group> - <Group type="102" alignment="0" attributes="0"> - <Group type="103" groupAlignment="0" attributes="0"> - <Group type="102" alignment="0" attributes="0"> - <Component id="secondaryFillRB" min="-2" max="-2" attributes="0"/> - <EmptySpace type="separate" max="-2" attributes="0"/> - <Component id="secondaryLinesRB" min="-2" max="-2" attributes="0"/> - <EmptySpace type="separate" max="-2" attributes="0"/> - <Component id="secondaryPointsRB" min="-2" max="-2" attributes="0"/> - </Group> - <Group type="102" alignment="0" attributes="0"> - <Component id="primaryFillRB" min="-2" max="-2" attributes="0"/> - <EmptySpace type="separate" max="-2" attributes="0"/> - <Component id="primaryLinesRB" min="-2" max="-2" attributes="0"/> - <EmptySpace type="separate" max="-2" attributes="0"/> - <Component id="primaryPointsRB" min="-2" max="-2" attributes="0"/> - </Group> - <Group type="102" alignment="0" attributes="0"> - <EmptySpace min="-2" pref="14" max="-2" attributes="0"/> - <Component id="renderModeLabel" min="-2" max="-2" attributes="0"/> - </Group> - </Group> - <Group type="103" groupAlignment="0" attributes="0"> - <Group type="102" attributes="0"> - <EmptySpace min="-2" pref="25" max="-2" attributes="0"/> - <Component id="transparencySlider" min="-2" max="-2" attributes="0"/> - </Group> - <Group type="102" alignment="0" attributes="0"> - <EmptySpace min="-2" pref="17" max="-2" attributes="0"/> - <Component id="transparencyButton" min="-2" pref="50" max="-2" attributes="0"/> - </Group> - </Group> - </Group> - </Group> - </Group> - <Group type="102" alignment="0" attributes="0"> - <Component id="featurePointsLabel" min="-2" max="-2" attributes="0"/> - <EmptySpace type="separate" max="-2" attributes="0"/> - <Component id="featurePointsButton" min="-2" pref="50" max="-2" attributes="0"/> - </Group> - <Group type="102" alignment="0" attributes="0"> - <Component id="viewLabel" min="-2" max="-2" attributes="0"/> - <EmptySpace type="separate" max="-2" attributes="0"/> - <Component id="frontButton" min="-2" pref="50" max="-2" attributes="0"/> - <EmptySpace type="separate" max="-2" attributes="0"/> - <Component id="profileButton" min="-2" pref="50" max="-2" attributes="0"/> - </Group> - </Group> - <Component id="transformationLabel" alignment="0" min="-2" max="-2" attributes="0"/> - </Group> - <EmptySpace min="0" pref="0" max="32767" attributes="0"/> - </Group> - </Group> - <EmptySpace max="-2" attributes="0"/> - </Group> - </Group> - </DimensionLayout> - <DimensionLayout dim="1"> - <Group type="103" groupAlignment="0" attributes="0"> - <Group type="102" attributes="0"> - <EmptySpace max="-2" attributes="0"/> - <Component id="jLabel1" min="-2" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Component id="jSeparator6" min="-2" pref="10" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Group type="103" groupAlignment="3" attributes="0"> - <Component id="highlightsLabel" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="renderModeLabel" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="modelLabel" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="colorButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="transparencyButton" alignment="3" min="-2" max="-2" attributes="0"/> - </Group> - <EmptySpace min="-2" pref="4" max="-2" attributes="0"/> - <Group type="103" groupAlignment="3" attributes="0"> - <Component id="fillLabel" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="linesLabel" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="pointsLabel" alignment="3" min="-2" max="-2" attributes="0"/> - </Group> - <EmptySpace max="-2" attributes="0"/> - <Group type="103" groupAlignment="0" attributes="0"> - <Group type="103" groupAlignment="1" max="-2" attributes="0"> - <Group type="102" attributes="0"> - <Group type="103" groupAlignment="0" attributes="0"> - <Group type="103" groupAlignment="0" max="-2" attributes="0"> - <Component id="secondaryColorPanel" max="32767" attributes="0"/> - <Component id="primaryLabel" max="32767" attributes="0"/> - </Group> - <Component id="primaryHighlightsCB" min="-2" max="-2" attributes="0"/> - <Component id="primaryFillRB" min="-2" max="-2" attributes="0"/> - </Group> - <EmptySpace min="-2" pref="11" max="-2" attributes="0"/> - <Group type="103" groupAlignment="0" attributes="0"> - <Group type="103" alignment="1" groupAlignment="0" max="-2" attributes="0"> - <Component id="primaryColorPanel" max="32767" attributes="0"/> - <Component id="secondaryLabel" max="32767" attributes="0"/> - </Group> - <Component id="secondaryHighlightsCB" alignment="1" min="-2" max="-2" attributes="0"/> - <Component id="secondaryFillRB" alignment="1" min="-2" max="-2" attributes="0"/> - </Group> - </Group> - <Group type="102" attributes="0"> - <Group type="103" groupAlignment="0" attributes="0"> - <Component id="primaryLinesRB" min="-2" max="-2" attributes="0"/> - <Component id="primaryPointsRB" min="-2" max="-2" attributes="0"/> - </Group> - <EmptySpace max="32767" attributes="0"/> - <Group type="103" groupAlignment="0" attributes="0"> - <Component id="secondaryLinesRB" alignment="1" min="-2" max="-2" attributes="0"/> - <Component id="secondaryPointsRB" alignment="1" min="-2" max="-2" attributes="0"/> - </Group> - </Group> - </Group> - <Component id="transparencySlider" min="-2" pref="53" max="-2" attributes="0"/> - </Group> - <EmptySpace type="unrelated" max="-2" attributes="0"/> - <Component id="jSeparator2" min="-2" pref="8" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Group type="103" groupAlignment="3" attributes="0"> - <Component id="viewLabel" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="profileButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="frontButton" alignment="3" min="-2" max="-2" attributes="0"/> - </Group> - <EmptySpace max="-2" attributes="0"/> - <Component id="jSeparator1" min="-2" pref="10" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Group type="103" groupAlignment="3" attributes="0"> - <Component id="featurePointsLabel" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="featurePointsButton" alignment="3" min="-2" max="-2" attributes="0"/> - </Group> - <EmptySpace max="-2" attributes="0"/> - <Component id="jSeparator7" min="-2" pref="10" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Component id="transformationLabel" min="-2" max="-2" attributes="0"/> - <EmptySpace type="separate" max="-2" attributes="0"/> - <Group type="103" groupAlignment="3" attributes="0"> - <Component id="jLabel2" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="translXLabel" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="translYLabel" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="translZLabel" alignment="3" min="-2" max="-2" attributes="0"/> - </Group> - <EmptySpace max="-2" attributes="0"/> - <Group type="103" groupAlignment="3" attributes="0"> - <Component id="leftTranslationXButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="leftSmallTranslXButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="rightSmallTranslXButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="rightTranslationXButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="leftTranslationYButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="rightTranslationYButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="rightSmallTranslYButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="leftSmallTranslYButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="leftSmallTranslZButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="rightSmallTranslZButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="leftTranslationZButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="rightTranslationZButton" alignment="3" min="-2" max="-2" attributes="0"/> - </Group> - <EmptySpace max="-2" attributes="0"/> - <Group type="103" groupAlignment="3" attributes="0"> - <Component id="translationXFTF" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="translationButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="translationYFTF" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="translationZFTF" alignment="3" min="-2" max="-2" attributes="0"/> - </Group> - <EmptySpace type="separate" max="-2" attributes="0"/> - <Group type="103" groupAlignment="3" attributes="0"> - <Component id="jLabel3" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="rotatXLabel" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="rotatYLabel" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="rotatZLabel" alignment="3" min="-2" max="-2" attributes="0"/> - </Group> - <EmptySpace min="-2" pref="11" max="-2" attributes="0"/> - <Group type="103" groupAlignment="3" attributes="0"> - <Component id="leftSmallRotaXButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="rightSmallRotaXButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="leftRotationXButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="rightRotationXButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="leftRotationYButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="leftSmallRotaYButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="rightSmallRotaYButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="rightRotationYButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="leftRotationZButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="leftSmallRotaZButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="rightSmallRotaZButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="rightRotationZButton" alignment="3" min="-2" max="-2" attributes="0"/> - </Group> - <EmptySpace max="-2" attributes="0"/> - <Group type="103" groupAlignment="3" attributes="0"> - <Component id="rotationXFTF" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="rotationYFTF" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="rotationButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="rotationZFTF" alignment="3" min="-2" max="-2" attributes="0"/> - </Group> - <EmptySpace type="separate" max="-2" attributes="0"/> - <Component id="jLabel4" min="-2" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Group type="103" groupAlignment="3" attributes="0"> - <Component id="scaleButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="scaleMinusButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="scaleSmallMinusButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="scaleSmallPlusButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="scalePlusButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="scaleFTF" alignment="3" min="-2" max="-2" attributes="0"/> - </Group> - <EmptySpace max="-2" attributes="0"/> - <Component id="jSeparator5" min="-2" pref="10" max="-2" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - <Group type="103" groupAlignment="3" attributes="0"> - <Component id="resetAllButton" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="applyButton" alignment="3" min="-2" max="-2" attributes="0"/> - </Group> - <EmptySpace pref="41" max="32767" attributes="0"/> - </Group> - </Group> - </DimensionLayout> - </Layout> - <SubComponents> - <Container class="javax.swing.JPanel" name="primaryColorPanel"> - <Properties> - <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> - <Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo"> - <LineBorder/> - </Border> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.primaryColorPanel.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Hand Cursor"/> - </Property> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[72, 14]"/> - </Property> - </Properties> - <Events> - <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="primaryColorPanelMouseClicked"/> - </Events> - - <Layout> - <DimensionLayout dim="0"> - <Group type="103" groupAlignment="0" attributes="0"> - <EmptySpace min="0" pref="0" max="32767" attributes="0"/> - </Group> - </DimensionLayout> - <DimensionLayout dim="1"> - <Group type="103" groupAlignment="0" attributes="0"> - <EmptySpace min="0" pref="0" max="32767" attributes="0"/> - </Group> - </DimensionLayout> - </Layout> - </Container> - <Container class="javax.swing.JPanel" name="secondaryColorPanel"> - <Properties> - <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> - <Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo"> - <LineBorder/> - </Border> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.secondaryColorPanel.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Hand Cursor"/> - </Property> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[70, 14]"/> - </Property> - </Properties> - <Events> - <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="secondaryColorPanelMouseClicked"/> - </Events> - - <Layout> - <DimensionLayout dim="0"> - <Group type="103" groupAlignment="0" attributes="0"> - <EmptySpace min="0" pref="0" max="32767" attributes="0"/> - </Group> - </DimensionLayout> - <DimensionLayout dim="1"> - <Group type="103" groupAlignment="0" attributes="0"> - <EmptySpace min="0" pref="0" max="32767" attributes="0"/> - </Group> - </DimensionLayout> - </Layout> - </Container> - <Component class="javax.swing.JSlider" name="transparencySlider"> - <Properties> - <Property name="majorTickSpacing" type="int" value="5"/> - <Property name="maximum" type="int" value="20"/> - <Property name="minorTickSpacing" type="int" value="5"/> - <Property name="orientation" type="int" value="1"/> - <Property name="paintTicks" type="boolean" value="true"/> - <Property name="snapToTicks" type="boolean" value="true"/> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.transparencySlider.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="value" type="int" value="10"/> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Hand Cursor"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="transparencySliderStateChanged"/> - </Events> - </Component> - <Component class="javax.swing.JLabel" name="secondaryLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.secondaryLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.secondaryLabel.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JLabel" name="primaryLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.primaryLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JButton" name="colorButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.colorButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.colorButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="horizontalTextPosition" type="int" value="0"/> - <Property name="iconTextGap" type="int" value="0"/> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[0, 0, 0, 0]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="colorButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="transparencyButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.transparencyButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.transparencyButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[0, 0, 0, 0]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="transparencyButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JLabel" name="modelLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.modelLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JSeparator" name="jSeparator2"> - </Component> - <Component class="javax.swing.JLabel" name="viewLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.viewLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JButton" name="frontButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.frontButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.frontButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[0, 0, 0, 0]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="frontButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="profileButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.profileButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.profileButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[0, 0, 0, 0]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="profileButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="translationButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.translationButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.translationButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="translationButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="leftTranslationXButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftTranslationXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftTranslationXButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="rightTranslationXButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightTranslationXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightTranslationXButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JFormattedTextField" name="translationXFTF"> - <Properties> - <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor"> - <Format subtype="0" type="0"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.translationXFTF.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Text Cursor"/> - </Property> - </Properties> - <Events> - <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="translationXFTFPropertyChange"/> - </Events> - </Component> - <Component class="javax.swing.JFormattedTextField" name="translationYFTF"> - <Properties> - <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor"> - <Format subtype="0" type="0"/> - </Property> - </Properties> - <Events> - <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="translationYFTFPropertyChange"/> - </Events> - </Component> - <Component class="javax.swing.JFormattedTextField" name="translationZFTF"> - <Properties> - <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor"> - <Format subtype="0" type="0"/> - </Property> - </Properties> - <Events> - <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="translationZFTFPropertyChange"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="rotationButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rotationButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rotationButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rotationButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="scaleButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.scaleButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.scaleButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scaleButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="applyButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.applyButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Hand Cursor"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="applyButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JSeparator" name="jSeparator1"> - </Component> - <Component class="javax.swing.JButton" name="leftTranslationYButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftTranslationYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftTranslationYButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="leftTranslationZButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftTranslationZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftTranslationZButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="rightTranslationYButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightTranslationYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightTranslationYButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="rightTranslationZButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightTranslationZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightTranslationZButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JFormattedTextField" name="rotationXFTF"> - <Properties> - <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor"> - <Format subtype="0" type="0"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rotationXFTF.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - <Events> - <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="rotationXFTFPropertyChange"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="leftRotationXButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftRotationXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftRotationXButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="rightRotationXButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightRotationXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightRotationXButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="leftRotationYButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftRotationYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftRotationYButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="leftRotationZButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftRotationZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftRotationZButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="rightRotationYButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightRotationYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightRotationYButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="rightRotationZButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightRotationZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightRotationZButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JFormattedTextField" name="rotationYFTF"> - <Properties> - <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor"> - <Format subtype="0" type="0"/> - </Property> - </Properties> - <Events> - <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="rotationYFTFPropertyChange"/> - </Events> - </Component> - <Component class="javax.swing.JFormattedTextField" name="rotationZFTF"> - <Properties> - <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor"> - <Format subtype="0" type="0"/> - </Property> - </Properties> - <Events> - <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="rotationZFTFPropertyChange"/> - </Events> - </Component> - <Component class="javax.swing.JFormattedTextField" name="scaleFTF"> - <Properties> - <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor"> - <Format subtype="0" type="0"/> - </Property> - <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.scaleFTF.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - <Events> - <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="scaleFTFPropertyChange"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="scaleMinusButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.scaleMinusButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scaleMinusButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="scalePlusButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.scalePlusButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[13, 23]"/> - </Property> - <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[13, 23]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[13, 23]"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scalePlusButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JSeparator" name="jSeparator5"> - </Component> - <Component class="javax.swing.JLabel" name="jLabel1"> - <Properties> - <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> - <Font name="Tahoma" size="14" style="1"/> - </Property> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.jLabel1.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JSeparator" name="jSeparator6"> - </Component> - <Component class="javax.swing.JSeparator" name="jSeparator7"> - </Component> - <Component class="javax.swing.JToggleButton" name="featurePointsButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.featurePointsButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[0, 0, 0, 0]"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="featurePointsButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JLabel" name="jLabel2"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.jLabel2.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JLabel" name="jLabel3"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.jLabel3.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JLabel" name="jLabel4"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.jLabel4.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JButton" name="resetAllButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.resetAllButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="resetAllButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="leftSmallTranslXButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftSmallTranslXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftSmallTranslXButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="rightSmallTranslXButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightSmallTranslXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightSmallTranslXButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JLabel" name="translXLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.translXLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JButton" name="rightSmallTranslYButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightSmallTranslYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightSmallTranslYButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="leftSmallTranslYButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftSmallTranslYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftSmallTranslYButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="leftSmallTranslZButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftSmallTranslZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftSmallTranslZButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="rightSmallTranslZButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightSmallTranslZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightSmallTranslZButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JLabel" name="translYLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.translYLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JButton" name="leftSmallRotaXButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftSmallRotaXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftSmallRotaXButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="leftSmallRotaYButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftSmallRotaYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftSmallRotaYButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="leftSmallRotaZButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.leftSmallRotaZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="leftSmallRotaZButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="rightSmallRotaXButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightSmallRotaXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightSmallRotaXButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="rightSmallRotaYButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightSmallRotaYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightSmallRotaYButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="rightSmallRotaZButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rightSmallRotaZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rightSmallRotaZButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JLabel" name="translZLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.translZLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JLabel" name="rotatXLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rotatXLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JLabel" name="rotatYLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rotatYLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JLabel" name="rotatZLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.rotatZLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JButton" name="scaleSmallPlusButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.scaleSmallPlusButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[13, 23]"/> - </Property> - <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[13, 23]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[13, 23]"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scaleSmallPlusButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JButton" name="scaleSmallMinusButton"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.scaleSmallMinusButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> - <Color id="Default Cursor"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[2, 2, 2, 2]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scaleSmallMinusButtonActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JLabel" name="highlightsLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.highlightsLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JCheckBox" name="primaryHighlightsCB"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.primaryHighlightsCB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="primaryHighlightsCBActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JCheckBox" name="secondaryHighlightsCB"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.secondaryHighlightsCB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="secondaryHighlightsCBActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JLabel" name="renderModeLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.renderModeLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JLabel" name="fillLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.fillLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JLabel" name="linesLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.linesLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JLabel" name="pointsLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.pointsLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JRadioButton" name="primaryFillRB"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="primaryRenderModeGroup"/> - </Property> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.primaryFillRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[0, 0, 0, 0]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="primaryFillRBActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JRadioButton" name="secondaryFillRB"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="secondaryRenerModeGroup"/> - </Property> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.secondaryFillRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[0, 0, 0, 0]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="secondaryFillRBActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JRadioButton" name="primaryLinesRB"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="primaryRenderModeGroup"/> - </Property> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.primaryLinesRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[0, 0, 0, 0]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="primaryLinesRBActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JRadioButton" name="secondaryLinesRB"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="secondaryRenerModeGroup"/> - </Property> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.secondaryLinesRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[0, 0, 0, 0]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="secondaryLinesRBActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JRadioButton" name="secondaryPointsRB"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="secondaryRenerModeGroup"/> - </Property> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.secondaryPointsRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[0, 0, 0, 0]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="secondaryPointsRBActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JRadioButton" name="primaryPointsRB"> - <Properties> - <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> - <ComponentRef name="primaryRenderModeGroup"/> - </Property> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.primaryPointsRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[0, 0, 0, 0]"/> - </Property> - <Property name="opaque" type="boolean" value="false"/> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="primaryPointsRBActionPerformed"/> - </Events> - </Component> - <Component class="javax.swing.JLabel" name="transformationLabel"> - <Properties> - <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> - <Font name="Tahoma" size="12" style="1"/> - </Property> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.transformationLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - </Component> - <Component class="javax.swing.JLabel" name="featurePointsLabel"> - <Properties> - <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> - <ResourceString bundle="cz/fidentis/analyst/gui/tab/Bundle.properties" key="PostRegistrationCP.featurePointsLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> - </Property> - </Properties> - </Component> - </SubComponents> -</Form> diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/tab/PostRegistrationCP.java b/GUI/src/main/java/cz/fidentis/analyst/gui/tab/PostRegistrationCP.java deleted file mode 100644 index 85315d019b09b3f074d400e2f240131da8a80ad5..0000000000000000000000000000000000000000 --- a/GUI/src/main/java/cz/fidentis/analyst/gui/tab/PostRegistrationCP.java +++ /dev/null @@ -1,1440 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package cz.fidentis.analyst.gui.tab; - -import cz.fidentis.analyst.gui.RegistrationCPEventListener; -import java.awt.Color; -import javax.swing.JColorChooser; - -/** - * - * @author Richard Pajersky - */ -public class PostRegistrationCP extends javax.swing.JPanel { - - private RegistrationCPEventListener listener; - - /** - * Creates new form PostRegistrationPanel - */ - public PostRegistrationCP() { - initComponents(); - this.listener = null; - } - - public void initPostRegistrationCP(RegistrationCPEventListener listener) { - initComponents(); - this.listener = listener; - setDefaults(); - } - - private void setDefaults() { - //transparencySlider.setMaximum(2 * listener.getTransparencyRange()); - //transparencySlider.setValue(listener.getTransparencyRange()); - primaryColorPanel.setBackground(listener.getDefaultPrimaryColor()); - secondaryColorPanel.setBackground(listener.getDefaultSecondaryColor()); - primaryFillRB.setSelected(true); - secondaryFillRB.setSelected(true); - resetAllButtonActionPerformed(null); - } - - /** - * This method is called from within the constructor to initialize the form. - * WARNING: Do NOT modify this code. The content of this method is always - * regenerated by the Form Editor. - */ - @SuppressWarnings("unchecked") - // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents - private void initComponents() { - - primaryRenderModeGroup = new javax.swing.ButtonGroup(); - secondaryRenerModeGroup = new javax.swing.ButtonGroup(); - primaryColorPanel = new javax.swing.JPanel(); - secondaryColorPanel = new javax.swing.JPanel(); - transparencySlider = new javax.swing.JSlider(); - secondaryLabel = new javax.swing.JLabel(); - primaryLabel = new javax.swing.JLabel(); - colorButton = new javax.swing.JButton(); - transparencyButton = new javax.swing.JButton(); - modelLabel = new javax.swing.JLabel(); - jSeparator2 = new javax.swing.JSeparator(); - viewLabel = new javax.swing.JLabel(); - frontButton = new javax.swing.JButton(); - profileButton = new javax.swing.JButton(); - translationButton = new javax.swing.JButton(); - leftTranslationXButton = new javax.swing.JButton(); - rightTranslationXButton = new javax.swing.JButton(); - translationXFTF = new javax.swing.JFormattedTextField(); - translationYFTF = new javax.swing.JFormattedTextField(); - translationZFTF = new javax.swing.JFormattedTextField(); - rotationButton = new javax.swing.JButton(); - scaleButton = new javax.swing.JButton(); - applyButton = new javax.swing.JButton(); - jSeparator1 = new javax.swing.JSeparator(); - leftTranslationYButton = new javax.swing.JButton(); - leftTranslationZButton = new javax.swing.JButton(); - rightTranslationYButton = new javax.swing.JButton(); - rightTranslationZButton = new javax.swing.JButton(); - rotationXFTF = new javax.swing.JFormattedTextField(); - leftRotationXButton = new javax.swing.JButton(); - rightRotationXButton = new javax.swing.JButton(); - leftRotationYButton = new javax.swing.JButton(); - leftRotationZButton = new javax.swing.JButton(); - rightRotationYButton = new javax.swing.JButton(); - rightRotationZButton = new javax.swing.JButton(); - rotationYFTF = new javax.swing.JFormattedTextField(); - rotationZFTF = new javax.swing.JFormattedTextField(); - scaleFTF = new javax.swing.JFormattedTextField(); - scaleMinusButton = new javax.swing.JButton(); - scalePlusButton = new javax.swing.JButton(); - jSeparator5 = new javax.swing.JSeparator(); - jLabel1 = new javax.swing.JLabel(); - jSeparator6 = new javax.swing.JSeparator(); - jSeparator7 = new javax.swing.JSeparator(); - featurePointsButton = new javax.swing.JToggleButton(); - jLabel2 = new javax.swing.JLabel(); - jLabel3 = new javax.swing.JLabel(); - jLabel4 = new javax.swing.JLabel(); - resetAllButton = new javax.swing.JButton(); - leftSmallTranslXButton = new javax.swing.JButton(); - rightSmallTranslXButton = new javax.swing.JButton(); - translXLabel = new javax.swing.JLabel(); - rightSmallTranslYButton = new javax.swing.JButton(); - leftSmallTranslYButton = new javax.swing.JButton(); - leftSmallTranslZButton = new javax.swing.JButton(); - rightSmallTranslZButton = new javax.swing.JButton(); - translYLabel = new javax.swing.JLabel(); - leftSmallRotaXButton = new javax.swing.JButton(); - leftSmallRotaYButton = new javax.swing.JButton(); - leftSmallRotaZButton = new javax.swing.JButton(); - rightSmallRotaXButton = new javax.swing.JButton(); - rightSmallRotaYButton = new javax.swing.JButton(); - rightSmallRotaZButton = new javax.swing.JButton(); - translZLabel = new javax.swing.JLabel(); - rotatXLabel = new javax.swing.JLabel(); - rotatYLabel = new javax.swing.JLabel(); - rotatZLabel = new javax.swing.JLabel(); - scaleSmallPlusButton = new javax.swing.JButton(); - scaleSmallMinusButton = new javax.swing.JButton(); - highlightsLabel = new javax.swing.JLabel(); - primaryHighlightsCB = new javax.swing.JCheckBox(); - secondaryHighlightsCB = new javax.swing.JCheckBox(); - renderModeLabel = new javax.swing.JLabel(); - fillLabel = new javax.swing.JLabel(); - linesLabel = new javax.swing.JLabel(); - pointsLabel = new javax.swing.JLabel(); - primaryFillRB = new javax.swing.JRadioButton(); - secondaryFillRB = new javax.swing.JRadioButton(); - primaryLinesRB = new javax.swing.JRadioButton(); - secondaryLinesRB = new javax.swing.JRadioButton(); - secondaryPointsRB = new javax.swing.JRadioButton(); - primaryPointsRB = new javax.swing.JRadioButton(); - transformationLabel = new javax.swing.JLabel(); - featurePointsLabel = new javax.swing.JLabel(); - - setBackground(new java.awt.Color(176, 230, 226)); - setPreferredSize(new java.awt.Dimension(405, 600)); - - primaryColorPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - primaryColorPanel.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryColorPanel.toolTipText")); // NOI18N - primaryColorPanel.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); - primaryColorPanel.setPreferredSize(new java.awt.Dimension(72, 14)); - primaryColorPanel.addMouseListener(new java.awt.event.MouseAdapter() { - public void mouseClicked(java.awt.event.MouseEvent evt) { - primaryColorPanelMouseClicked(evt); - } - }); - - javax.swing.GroupLayout primaryColorPanelLayout = new javax.swing.GroupLayout(primaryColorPanel); - primaryColorPanel.setLayout(primaryColorPanelLayout); - primaryColorPanelLayout.setHorizontalGroup( - primaryColorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 0, Short.MAX_VALUE) - ); - primaryColorPanelLayout.setVerticalGroup( - primaryColorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 0, Short.MAX_VALUE) - ); - - secondaryColorPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - secondaryColorPanel.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryColorPanel.toolTipText")); // NOI18N - secondaryColorPanel.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); - secondaryColorPanel.setPreferredSize(new java.awt.Dimension(70, 14)); - secondaryColorPanel.addMouseListener(new java.awt.event.MouseAdapter() { - public void mouseClicked(java.awt.event.MouseEvent evt) { - secondaryColorPanelMouseClicked(evt); - } - }); - - javax.swing.GroupLayout secondaryColorPanelLayout = new javax.swing.GroupLayout(secondaryColorPanel); - secondaryColorPanel.setLayout(secondaryColorPanelLayout); - secondaryColorPanelLayout.setHorizontalGroup( - secondaryColorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 0, Short.MAX_VALUE) - ); - secondaryColorPanelLayout.setVerticalGroup( - secondaryColorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 0, Short.MAX_VALUE) - ); - - transparencySlider.setMajorTickSpacing(5); - transparencySlider.setMaximum(20); - transparencySlider.setMinorTickSpacing(5); - transparencySlider.setOrientation(javax.swing.JSlider.VERTICAL); - transparencySlider.setPaintTicks(true); - transparencySlider.setSnapToTicks(true); - transparencySlider.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.transparencySlider.toolTipText")); // NOI18N - transparencySlider.setValue(10); - transparencySlider.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); - transparencySlider.setOpaque(false); - transparencySlider.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - transparencySliderStateChanged(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(secondaryLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryLabel.text")); // NOI18N - secondaryLabel.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryLabel.toolTipText")); // NOI18N - - org.openide.awt.Mnemonics.setLocalizedText(primaryLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryLabel.text")); // NOI18N - - org.openide.awt.Mnemonics.setLocalizedText(colorButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.colorButton.text")); // NOI18N - colorButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.colorButton.toolTipText")); // NOI18N - colorButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - colorButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - colorButton.setIconTextGap(0); - colorButton.setMargin(new java.awt.Insets(0, 0, 0, 0)); - colorButton.setOpaque(false); - colorButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - colorButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(transparencyButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.transparencyButton.text")); // NOI18N - transparencyButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.transparencyButton.toolTipText")); // NOI18N - transparencyButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - transparencyButton.setMargin(new java.awt.Insets(0, 0, 0, 0)); - transparencyButton.setOpaque(false); - transparencyButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - transparencyButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(modelLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.modelLabel.text")); // NOI18N - - org.openide.awt.Mnemonics.setLocalizedText(viewLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.viewLabel.text")); // NOI18N - - org.openide.awt.Mnemonics.setLocalizedText(frontButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.frontButton.text")); // NOI18N - frontButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.frontButton.toolTipText")); // NOI18N - frontButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - frontButton.setMargin(new java.awt.Insets(0, 0, 0, 0)); - frontButton.setOpaque(false); - frontButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - frontButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(profileButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.profileButton.text")); // NOI18N - profileButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.profileButton.toolTipText")); // NOI18N - profileButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - profileButton.setMargin(new java.awt.Insets(0, 0, 0, 0)); - profileButton.setOpaque(false); - profileButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - profileButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(translationButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translationButton.text")); // NOI18N - translationButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translationButton.toolTipText")); // NOI18N - translationButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - translationButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - translationButton.setOpaque(false); - translationButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - translationButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(leftTranslationXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftTranslationXButton.text")); // NOI18N - leftTranslationXButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - leftTranslationXButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - leftTranslationXButton.setOpaque(false); - leftTranslationXButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - leftTranslationXButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(rightTranslationXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightTranslationXButton.text")); // NOI18N - rightTranslationXButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - rightTranslationXButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - rightTranslationXButton.setOpaque(false); - rightTranslationXButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - rightTranslationXButtonActionPerformed(evt); - } - }); - - translationXFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter())); - translationXFTF.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translationXFTF.toolTipText")); // NOI18N - translationXFTF.setCursor(new java.awt.Cursor(java.awt.Cursor.TEXT_CURSOR)); - translationXFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() { - public void propertyChange(java.beans.PropertyChangeEvent evt) { - translationXFTFPropertyChange(evt); - } - }); - - translationYFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter())); - translationYFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() { - public void propertyChange(java.beans.PropertyChangeEvent evt) { - translationYFTFPropertyChange(evt); - } - }); - - translationZFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter())); - translationZFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() { - public void propertyChange(java.beans.PropertyChangeEvent evt) { - translationZFTFPropertyChange(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(rotationButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotationButton.text")); // NOI18N - rotationButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotationButton.toolTipText")); // NOI18N - rotationButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - rotationButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - rotationButton.setOpaque(false); - rotationButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - rotationButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(scaleButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scaleButton.text")); // NOI18N - scaleButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scaleButton.toolTipText")); // NOI18N - scaleButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - scaleButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - scaleButton.setOpaque(false); - scaleButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - scaleButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(applyButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.applyButton.text")); // NOI18N - applyButton.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); - applyButton.setOpaque(false); - applyButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - applyButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(leftTranslationYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftTranslationYButton.text")); // NOI18N - leftTranslationYButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - leftTranslationYButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - leftTranslationYButton.setOpaque(false); - leftTranslationYButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - leftTranslationYButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(leftTranslationZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftTranslationZButton.text")); // NOI18N - leftTranslationZButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - leftTranslationZButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - leftTranslationZButton.setOpaque(false); - leftTranslationZButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - leftTranslationZButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(rightTranslationYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightTranslationYButton.text")); // NOI18N - rightTranslationYButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - rightTranslationYButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - rightTranslationYButton.setOpaque(false); - rightTranslationYButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - rightTranslationYButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(rightTranslationZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightTranslationZButton.text")); // NOI18N - rightTranslationZButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - rightTranslationZButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - rightTranslationZButton.setOpaque(false); - rightTranslationZButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - rightTranslationZButtonActionPerformed(evt); - } - }); - - rotationXFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter())); - rotationXFTF.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotationXFTF.toolTipText")); // NOI18N - rotationXFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() { - public void propertyChange(java.beans.PropertyChangeEvent evt) { - rotationXFTFPropertyChange(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(leftRotationXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftRotationXButton.text")); // NOI18N - leftRotationXButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - leftRotationXButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - leftRotationXButton.setOpaque(false); - leftRotationXButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - leftRotationXButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(rightRotationXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightRotationXButton.text")); // NOI18N - rightRotationXButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - rightRotationXButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - rightRotationXButton.setOpaque(false); - rightRotationXButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - rightRotationXButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(leftRotationYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftRotationYButton.text")); // NOI18N - leftRotationYButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - leftRotationYButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - leftRotationYButton.setOpaque(false); - leftRotationYButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - leftRotationYButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(leftRotationZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftRotationZButton.text")); // NOI18N - leftRotationZButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - leftRotationZButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - leftRotationZButton.setOpaque(false); - leftRotationZButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - leftRotationZButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(rightRotationYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightRotationYButton.text")); // NOI18N - rightRotationYButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - rightRotationYButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - rightRotationYButton.setOpaque(false); - rightRotationYButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - rightRotationYButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(rightRotationZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightRotationZButton.text")); // NOI18N - rightRotationZButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - rightRotationZButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - rightRotationZButton.setOpaque(false); - rightRotationZButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - rightRotationZButtonActionPerformed(evt); - } - }); - - rotationYFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter())); - rotationYFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() { - public void propertyChange(java.beans.PropertyChangeEvent evt) { - rotationYFTFPropertyChange(evt); - } - }); - - rotationZFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter())); - rotationZFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() { - public void propertyChange(java.beans.PropertyChangeEvent evt) { - rotationZFTFPropertyChange(evt); - } - }); - - scaleFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter())); - scaleFTF.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scaleFTF.toolTipText")); // NOI18N - scaleFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() { - public void propertyChange(java.beans.PropertyChangeEvent evt) { - scaleFTFPropertyChange(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(scaleMinusButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scaleMinusButton.text")); // NOI18N - scaleMinusButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - scaleMinusButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - scaleMinusButton.setOpaque(false); - scaleMinusButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - scaleMinusButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(scalePlusButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scalePlusButton.text")); // NOI18N - scalePlusButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - scalePlusButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - scalePlusButton.setMaximumSize(new java.awt.Dimension(13, 23)); - scalePlusButton.setMinimumSize(new java.awt.Dimension(13, 23)); - scalePlusButton.setOpaque(false); - scalePlusButton.setPreferredSize(new java.awt.Dimension(13, 23)); - scalePlusButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - scalePlusButtonActionPerformed(evt); - } - }); - - jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N - org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.jLabel1.text")); // NOI18N - - org.openide.awt.Mnemonics.setLocalizedText(featurePointsButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.featurePointsButton.text")); // NOI18N - featurePointsButton.setMargin(new java.awt.Insets(0, 0, 0, 0)); - featurePointsButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - featurePointsButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(jLabel2, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.jLabel2.text")); // NOI18N - - org.openide.awt.Mnemonics.setLocalizedText(jLabel3, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.jLabel3.text")); // NOI18N - - org.openide.awt.Mnemonics.setLocalizedText(jLabel4, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.jLabel4.text")); // NOI18N - - org.openide.awt.Mnemonics.setLocalizedText(resetAllButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.resetAllButton.text")); // NOI18N - resetAllButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - resetAllButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(leftSmallTranslXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftSmallTranslXButton.text")); // NOI18N - leftSmallTranslXButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - leftSmallTranslXButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - leftSmallTranslXButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(rightSmallTranslXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightSmallTranslXButton.text")); // NOI18N - rightSmallTranslXButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - rightSmallTranslXButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - rightSmallTranslXButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(translXLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translXLabel.text")); // NOI18N - - org.openide.awt.Mnemonics.setLocalizedText(rightSmallTranslYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightSmallTranslYButton.text")); // NOI18N - rightSmallTranslYButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - rightSmallTranslYButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - rightSmallTranslYButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(leftSmallTranslYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftSmallTranslYButton.text")); // NOI18N - leftSmallTranslYButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - leftSmallTranslYButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - leftSmallTranslYButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(leftSmallTranslZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftSmallTranslZButton.text")); // NOI18N - leftSmallTranslZButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - leftSmallTranslZButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - leftSmallTranslZButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(rightSmallTranslZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightSmallTranslZButton.text")); // NOI18N - rightSmallTranslZButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - rightSmallTranslZButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - rightSmallTranslZButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(translYLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translYLabel.text")); // NOI18N - - org.openide.awt.Mnemonics.setLocalizedText(leftSmallRotaXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftSmallRotaXButton.text")); // NOI18N - leftSmallRotaXButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - leftSmallRotaXButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - leftSmallRotaXButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(leftSmallRotaYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftSmallRotaYButton.text")); // NOI18N - leftSmallRotaYButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - leftSmallRotaYButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - leftSmallRotaYButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(leftSmallRotaZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftSmallRotaZButton.text")); // NOI18N - leftSmallRotaZButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - leftSmallRotaZButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - leftSmallRotaZButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(rightSmallRotaXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightSmallRotaXButton.text")); // NOI18N - rightSmallRotaXButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - rightSmallRotaXButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - rightSmallRotaXButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(rightSmallRotaYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightSmallRotaYButton.text")); // NOI18N - rightSmallRotaYButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - rightSmallRotaYButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - rightSmallRotaYButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(rightSmallRotaZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightSmallRotaZButton.text")); // NOI18N - rightSmallRotaZButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - rightSmallRotaZButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - rightSmallRotaZButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(translZLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translZLabel.text")); // NOI18N - - org.openide.awt.Mnemonics.setLocalizedText(rotatXLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotatXLabel.text")); // NOI18N - - org.openide.awt.Mnemonics.setLocalizedText(rotatYLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotatYLabel.text")); // NOI18N - - org.openide.awt.Mnemonics.setLocalizedText(rotatZLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotatZLabel.text")); // NOI18N - - org.openide.awt.Mnemonics.setLocalizedText(scaleSmallPlusButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scaleSmallPlusButton.text")); // NOI18N - scaleSmallPlusButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - scaleSmallPlusButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - scaleSmallPlusButton.setMaximumSize(new java.awt.Dimension(13, 23)); - scaleSmallPlusButton.setMinimumSize(new java.awt.Dimension(13, 23)); - scaleSmallPlusButton.setOpaque(false); - scaleSmallPlusButton.setPreferredSize(new java.awt.Dimension(13, 23)); - scaleSmallPlusButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - scaleSmallPlusButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(scaleSmallMinusButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scaleSmallMinusButton.text")); // NOI18N - scaleSmallMinusButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); - scaleSmallMinusButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); - scaleSmallMinusButton.setOpaque(false); - scaleSmallMinusButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - scaleSmallMinusButtonActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(highlightsLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.highlightsLabel.text")); // NOI18N - - org.openide.awt.Mnemonics.setLocalizedText(primaryHighlightsCB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryHighlightsCB.text")); // NOI18N - primaryHighlightsCB.setOpaque(false); - primaryHighlightsCB.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - primaryHighlightsCBActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(secondaryHighlightsCB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryHighlightsCB.text")); // NOI18N - secondaryHighlightsCB.setOpaque(false); - secondaryHighlightsCB.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - secondaryHighlightsCBActionPerformed(evt); - } - }); - - org.openide.awt.Mnemonics.setLocalizedText(renderModeLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.renderModeLabel.text")); // NOI18N - - org.openide.awt.Mnemonics.setLocalizedText(fillLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.fillLabel.text")); // NOI18N - - org.openide.awt.Mnemonics.setLocalizedText(linesLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.linesLabel.text")); // NOI18N - - org.openide.awt.Mnemonics.setLocalizedText(pointsLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.pointsLabel.text")); // NOI18N - - primaryRenderModeGroup.add(primaryFillRB); - org.openide.awt.Mnemonics.setLocalizedText(primaryFillRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryFillRB.text")); // NOI18N - primaryFillRB.setMargin(new java.awt.Insets(0, 0, 0, 0)); - primaryFillRB.setOpaque(false); - primaryFillRB.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - primaryFillRBActionPerformed(evt); - } - }); - - secondaryRenerModeGroup.add(secondaryFillRB); - org.openide.awt.Mnemonics.setLocalizedText(secondaryFillRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryFillRB.text")); // NOI18N - secondaryFillRB.setMargin(new java.awt.Insets(0, 0, 0, 0)); - secondaryFillRB.setOpaque(false); - secondaryFillRB.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - secondaryFillRBActionPerformed(evt); - } - }); - - primaryRenderModeGroup.add(primaryLinesRB); - org.openide.awt.Mnemonics.setLocalizedText(primaryLinesRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryLinesRB.text")); // NOI18N - primaryLinesRB.setMargin(new java.awt.Insets(0, 0, 0, 0)); - primaryLinesRB.setOpaque(false); - primaryLinesRB.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - primaryLinesRBActionPerformed(evt); - } - }); - - secondaryRenerModeGroup.add(secondaryLinesRB); - org.openide.awt.Mnemonics.setLocalizedText(secondaryLinesRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryLinesRB.text")); // NOI18N - secondaryLinesRB.setMargin(new java.awt.Insets(0, 0, 0, 0)); - secondaryLinesRB.setOpaque(false); - secondaryLinesRB.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - secondaryLinesRBActionPerformed(evt); - } - }); - - secondaryRenerModeGroup.add(secondaryPointsRB); - org.openide.awt.Mnemonics.setLocalizedText(secondaryPointsRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryPointsRB.text")); // NOI18N - secondaryPointsRB.setMargin(new java.awt.Insets(0, 0, 0, 0)); - secondaryPointsRB.setOpaque(false); - secondaryPointsRB.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - secondaryPointsRBActionPerformed(evt); - } - }); - - primaryRenderModeGroup.add(primaryPointsRB); - org.openide.awt.Mnemonics.setLocalizedText(primaryPointsRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryPointsRB.text")); // NOI18N - primaryPointsRB.setMargin(new java.awt.Insets(0, 0, 0, 0)); - primaryPointsRB.setOpaque(false); - primaryPointsRB.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - primaryPointsRBActionPerformed(evt); - } - }); - - transformationLabel.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N - org.openide.awt.Mnemonics.setLocalizedText(transformationLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.transformationLabel.text")); // NOI18N - - org.openide.awt.Mnemonics.setLocalizedText(featurePointsLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.featurePointsLabel.text")); // NOI18N - - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); - this.setLayout(layout); - layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jSeparator5) - .addComponent(jSeparator7) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addGap(0, 0, Short.MAX_VALUE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addGroup(layout.createSequentialGroup() - .addGap(82, 82, 82) - .addComponent(leftRotationXButton) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(leftSmallRotaXButton) - .addGap(1, 1, 1) - .addComponent(rightSmallRotaXButton) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(rightRotationXButton) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(leftRotationYButton) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(leftSmallRotaYButton) - .addGap(1, 1, 1) - .addComponent(rightSmallRotaYButton) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(rightRotationYButton)) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(jLabel3) - .addComponent(rotationButton, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(23, 23, 23) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(rotationXFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(rotatXLabel)) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(rotationYFTF)) - .addGroup(layout.createSequentialGroup() - .addGap(6, 6, 6) - .addComponent(rotatYLabel) - .addGap(0, 0, Short.MAX_VALUE))))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addGroup(layout.createSequentialGroup() - .addComponent(leftRotationZButton) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(leftSmallRotaZButton) - .addGap(1, 1, 1) - .addComponent(rightSmallRotaZButton) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(rightRotationZButton)) - .addComponent(rotationZFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(rotatZLabel))) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(translationButton, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(23, 23, 23) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) - .addComponent(translationXFTF, javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() - .addComponent(leftTranslationXButton) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(leftSmallTranslXButton) - .addGap(1, 1, 1) - .addComponent(rightSmallTranslXButton) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(rightTranslationXButton))) - .addComponent(translXLabel)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(translYLabel) - .addGroup(layout.createSequentialGroup() - .addComponent(leftTranslationYButton) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(leftSmallTranslYButton) - .addGap(1, 1, 1) - .addComponent(rightSmallTranslYButton) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(rightTranslationYButton)) - .addComponent(translationYFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addGroup(layout.createSequentialGroup() - .addComponent(leftTranslationZButton) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(leftSmallTranslZButton) - .addGap(1, 1, 1) - .addComponent(rightSmallTranslZButton) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(rightTranslationZButton)) - .addComponent(translationZFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(translZLabel))) - .addComponent(jLabel4) - .addGroup(layout.createSequentialGroup() - .addComponent(scaleButton, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(23, 23, 23) - .addComponent(scaleMinusButton, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(scaleSmallMinusButton, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(scaleSmallPlusButton, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(scalePlusButton, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(scaleFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE)))) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addGroup(layout.createSequentialGroup() - .addComponent(resetAllButton) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(applyButton)) - .addComponent(jSeparator6) - .addComponent(jSeparator2) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel1) - .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 385, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(secondaryLabel) - .addComponent(primaryLabel) - .addComponent(modelLabel)) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(secondaryColorPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 50, Short.MAX_VALUE) - .addComponent(primaryColorPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 50, Short.MAX_VALUE) - .addComponent(colorButton, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 50, Short.MAX_VALUE)) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(highlightsLabel) - .addGroup(layout.createSequentialGroup() - .addGap(10, 10, 10) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(primaryHighlightsCB) - .addComponent(secondaryHighlightsCB)))) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addComponent(fillLabel) - .addGap(18, 18, 18) - .addComponent(linesLabel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(pointsLabel)) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addComponent(secondaryFillRB) - .addGap(18, 18, 18) - .addComponent(secondaryLinesRB) - .addGap(18, 18, 18) - .addComponent(secondaryPointsRB)) - .addGroup(layout.createSequentialGroup() - .addComponent(primaryFillRB) - .addGap(18, 18, 18) - .addComponent(primaryLinesRB) - .addGap(18, 18, 18) - .addComponent(primaryPointsRB)) - .addGroup(layout.createSequentialGroup() - .addGap(14, 14, 14) - .addComponent(renderModeLabel))) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(25, 25, 25) - .addComponent(transparencySlider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(layout.createSequentialGroup() - .addGap(17, 17, 17) - .addComponent(transparencyButton, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)))))) - .addGroup(layout.createSequentialGroup() - .addComponent(featurePointsLabel) - .addGap(18, 18, 18) - .addComponent(featurePointsButton, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(layout.createSequentialGroup() - .addComponent(viewLabel) - .addGap(18, 18, 18) - .addComponent(frontButton, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(18, 18, 18) - .addComponent(profileButton, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addComponent(transformationLabel)) - .addGap(0, 0, Short.MAX_VALUE))) - .addContainerGap()) - ); - layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(jLabel1) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jSeparator6, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(highlightsLabel) - .addComponent(renderModeLabel) - .addComponent(modelLabel) - .addComponent(colorButton) - .addComponent(transparencyButton)) - .addGap(4, 4, 4) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(fillLabel) - .addComponent(linesLabel) - .addComponent(pointsLabel)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(secondaryColorPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(primaryLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addComponent(primaryHighlightsCB) - .addComponent(primaryFillRB)) - .addGap(11, 11, 11) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(primaryColorPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(secondaryLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addComponent(secondaryHighlightsCB, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(secondaryFillRB, javax.swing.GroupLayout.Alignment.TRAILING))) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(primaryLinesRB) - .addComponent(primaryPointsRB)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(secondaryLinesRB, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(secondaryPointsRB, javax.swing.GroupLayout.Alignment.TRAILING)))) - .addComponent(transparencySlider, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 8, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(viewLabel) - .addComponent(profileButton) - .addComponent(frontButton)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(featurePointsLabel) - .addComponent(featurePointsButton)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jSeparator7, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(transformationLabel) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel2) - .addComponent(translXLabel) - .addComponent(translYLabel) - .addComponent(translZLabel)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(leftTranslationXButton) - .addComponent(leftSmallTranslXButton) - .addComponent(rightSmallTranslXButton) - .addComponent(rightTranslationXButton) - .addComponent(leftTranslationYButton) - .addComponent(rightTranslationYButton) - .addComponent(rightSmallTranslYButton) - .addComponent(leftSmallTranslYButton) - .addComponent(leftSmallTranslZButton) - .addComponent(rightSmallTranslZButton) - .addComponent(leftTranslationZButton) - .addComponent(rightTranslationZButton)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(translationXFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(translationButton) - .addComponent(translationYFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(translationZFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel3) - .addComponent(rotatXLabel) - .addComponent(rotatYLabel) - .addComponent(rotatZLabel)) - .addGap(11, 11, 11) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(leftSmallRotaXButton) - .addComponent(rightSmallRotaXButton) - .addComponent(leftRotationXButton) - .addComponent(rightRotationXButton) - .addComponent(leftRotationYButton) - .addComponent(leftSmallRotaYButton) - .addComponent(rightSmallRotaYButton) - .addComponent(rightRotationYButton) - .addComponent(leftRotationZButton) - .addComponent(leftSmallRotaZButton) - .addComponent(rightSmallRotaZButton) - .addComponent(rightRotationZButton)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(rotationXFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(rotationYFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(rotationButton) - .addComponent(rotationZFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(18, 18, 18) - .addComponent(jLabel4) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(scaleButton) - .addComponent(scaleMinusButton) - .addComponent(scaleSmallMinusButton) - .addComponent(scaleSmallPlusButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(scalePlusButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(scaleFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jSeparator5, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(resetAllButton) - .addComponent(applyButton)) - .addContainerGap(41, Short.MAX_VALUE)) - ); - }// </editor-fold>//GEN-END:initComponents - - private void primaryColorPanelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_primaryColorPanelMouseClicked - Color current = primaryColorPanel.getBackground(); - Color newColor = JColorChooser.showDialog(null, "Choose a color", current); - primaryColorPanel.setBackground(newColor); - listener.setPrimaryColor(newColor); - }//GEN-LAST:event_primaryColorPanelMouseClicked - - private void secondaryColorPanelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_secondaryColorPanelMouseClicked - Color current = secondaryColorPanel.getBackground(); - Color newColor = JColorChooser.showDialog(null, "Choose a color", current); - secondaryColorPanel.setBackground(newColor); - listener.setSecondaryColor(newColor); - }//GEN-LAST:event_secondaryColorPanelMouseClicked - - private void transparencyButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_transparencyButtonActionPerformed - listener.setTransparency(10); - transparencySlider.setValue(10); - transparencySlider.repaint(); - }//GEN-LAST:event_transparencyButtonActionPerformed - - private void transparencySliderStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_transparencySliderStateChanged - listener.setTransparency(transparencySlider.getValue()); - }//GEN-LAST:event_transparencySliderStateChanged - - private void frontButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_frontButtonActionPerformed - listener.setFrontFacing(); - }//GEN-LAST:event_frontButtonActionPerformed - - private void profileButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_profileButtonActionPerformed - listener.setSideFacing(); - }//GEN-LAST:event_profileButtonActionPerformed - - private void translationButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_translationButtonActionPerformed - translationXFTF.setValue(0); - translationYFTF.setValue(0); - translationZFTF.setValue(0); - listener.resetTranslation(); - }//GEN-LAST:event_translationButtonActionPerformed - - private void rotationButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rotationButtonActionPerformed - rotationXFTF.setValue(0); - rotationYFTF.setValue(0); - rotationZFTF.setValue(0); - listener.resetRotation(); - }//GEN-LAST:event_rotationButtonActionPerformed - - private void scaleButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_scaleButtonActionPerformed - scaleFTF.setValue(0); - listener.resetScale(); - }//GEN-LAST:event_scaleButtonActionPerformed - - private void leftTranslationXButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftTranslationXButtonActionPerformed - double newValue = ((Number)translationXFTF.getValue()).doubleValue() - 1; - translationXFTF.setValue(newValue); - }//GEN-LAST:event_leftTranslationXButtonActionPerformed - - private void resetAllButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_resetAllButtonActionPerformed - colorButtonActionPerformed(evt); - transparencyButtonActionPerformed(evt); - translationButtonActionPerformed(evt); - rotationButtonActionPerformed(evt); - scaleButtonActionPerformed(evt); - }//GEN-LAST:event_resetAllButtonActionPerformed - - private void rightTranslationXButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightTranslationXButtonActionPerformed - double newValue = ((Number)translationXFTF.getValue()).doubleValue() + 1; - translationXFTF.setValue(newValue); - }//GEN-LAST:event_rightTranslationXButtonActionPerformed - - private void leftTranslationYButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftTranslationYButtonActionPerformed - double newValue = ((Number)translationYFTF.getValue()).doubleValue() - 1; - translationYFTF.setValue(newValue); - }//GEN-LAST:event_leftTranslationYButtonActionPerformed - - private void rightTranslationYButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightTranslationYButtonActionPerformed - double newValue = ((Number)translationYFTF.getValue()).doubleValue() + 1; - translationYFTF.setValue(newValue); - }//GEN-LAST:event_rightTranslationYButtonActionPerformed - - private void leftTranslationZButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftTranslationZButtonActionPerformed - double newValue = ((Number)translationZFTF.getValue()).doubleValue() - 1; - translationZFTF.setValue(newValue); - }//GEN-LAST:event_leftTranslationZButtonActionPerformed - - private void rightTranslationZButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightTranslationZButtonActionPerformed - double newValue = ((Number)translationZFTF.getValue()).doubleValue() + 1; - translationZFTF.setValue(newValue); - }//GEN-LAST:event_rightTranslationZButtonActionPerformed - - private void leftRotationXButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftRotationXButtonActionPerformed - double newValue = ((Number)rotationXFTF.getValue()).doubleValue() - 1; - rotationXFTF.setValue(newValue); - }//GEN-LAST:event_leftRotationXButtonActionPerformed - - private void rightRotationXButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightRotationXButtonActionPerformed - double newValue = ((Number)rotationXFTF.getValue()).doubleValue() + 1; - rotationXFTF.setValue(newValue); - }//GEN-LAST:event_rightRotationXButtonActionPerformed - - private void leftRotationYButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftRotationYButtonActionPerformed - double newValue = ((Number)rotationYFTF.getValue()).doubleValue() - 1; - rotationYFTF.setValue(newValue); - }//GEN-LAST:event_leftRotationYButtonActionPerformed - - private void rightRotationYButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightRotationYButtonActionPerformed - double newValue = ((Number)rotationYFTF.getValue()).doubleValue() + 1; - rotationYFTF.setValue(newValue); - }//GEN-LAST:event_rightRotationYButtonActionPerformed - - private void leftRotationZButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftRotationZButtonActionPerformed - double newValue = ((Number)rotationZFTF.getValue()).doubleValue() - 1; - rotationZFTF.setValue(newValue); - }//GEN-LAST:event_leftRotationZButtonActionPerformed - - private void rightRotationZButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightRotationZButtonActionPerformed - double newValue = ((Number)rotationZFTF.getValue()).doubleValue() + 1; - rotationZFTF.setValue(newValue); - }//GEN-LAST:event_rightRotationZButtonActionPerformed - - private void scaleMinusButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_scaleMinusButtonActionPerformed - double newValue = ((Number)scaleFTF.getValue()).doubleValue() - 1; - scaleFTF.setValue(newValue); - }//GEN-LAST:event_scaleMinusButtonActionPerformed - - private void scalePlusButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_scalePlusButtonActionPerformed - double newValue = ((Number)scaleFTF.getValue()).doubleValue() + 1; - scaleFTF.setValue(newValue); - }//GEN-LAST:event_scalePlusButtonActionPerformed - - private void translationXFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_translationXFTFPropertyChange - double value = ((Number)translationXFTF.getValue()).doubleValue(); - listener.setXTranslation(value); - }//GEN-LAST:event_translationXFTFPropertyChange - - private void translationYFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_translationYFTFPropertyChange - double value = ((Number)translationYFTF.getValue()).doubleValue(); - listener.setYTranslation(value); - }//GEN-LAST:event_translationYFTFPropertyChange - - private void translationZFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_translationZFTFPropertyChange - double value = ((Number)translationZFTF.getValue()).doubleValue(); - listener.setZTranslation(value); - }//GEN-LAST:event_translationZFTFPropertyChange - - private void rotationXFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_rotationXFTFPropertyChange - double value = ((Number)rotationXFTF.getValue()).doubleValue(); - listener.setXRotation(value); - }//GEN-LAST:event_rotationXFTFPropertyChange - - private void rotationYFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_rotationYFTFPropertyChange - double value = ((Number)rotationYFTF.getValue()).doubleValue(); - listener.setYRotation(value); - }//GEN-LAST:event_rotationYFTFPropertyChange - - private void rotationZFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_rotationZFTFPropertyChange - double value = ((Number)rotationZFTF.getValue()).doubleValue(); - listener.setZRotation(value); - }//GEN-LAST:event_rotationZFTFPropertyChange - - private void scaleFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_scaleFTFPropertyChange - double value = ((Number)scaleFTF.getValue()).doubleValue(); - listener.setScale(value); - }//GEN-LAST:event_scaleFTFPropertyChange - - private void scaleSmallPlusButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_scaleSmallPlusButtonActionPerformed - double newValue = ((Number)scaleFTF.getValue()).doubleValue() + 0.1; - scaleFTF.setValue(newValue); - }//GEN-LAST:event_scaleSmallPlusButtonActionPerformed - - private void scaleSmallMinusButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_scaleSmallMinusButtonActionPerformed - double newValue = ((Number)scaleFTF.getValue()).doubleValue() - 0.1; - scaleFTF.setValue(newValue); - }//GEN-LAST:event_scaleSmallMinusButtonActionPerformed - - private void leftSmallTranslXButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftSmallTranslXButtonActionPerformed - double newValue = ((Number)translationXFTF.getValue()).doubleValue() - 0.1; - translationXFTF.setValue(newValue); - }//GEN-LAST:event_leftSmallTranslXButtonActionPerformed - - private void rightSmallTranslXButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightSmallTranslXButtonActionPerformed - double newValue = ((Number)translationXFTF.getValue()).doubleValue() + 0.1; - translationXFTF.setValue(newValue); - }//GEN-LAST:event_rightSmallTranslXButtonActionPerformed - - private void leftSmallTranslYButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftSmallTranslYButtonActionPerformed - double newValue = ((Number)translationYFTF.getValue()).doubleValue() - 0.1; - translationYFTF.setValue(newValue); - }//GEN-LAST:event_leftSmallTranslYButtonActionPerformed - - private void rightSmallTranslYButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightSmallTranslYButtonActionPerformed - double newValue = ((Number)translationYFTF.getValue()).doubleValue() + 0.1; - translationYFTF.setValue(newValue); - }//GEN-LAST:event_rightSmallTranslYButtonActionPerformed - - private void leftSmallTranslZButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftSmallTranslZButtonActionPerformed - double newValue = ((Number)translationZFTF.getValue()).doubleValue() - 0.1; - translationZFTF.setValue(newValue); - }//GEN-LAST:event_leftSmallTranslZButtonActionPerformed - - private void rightSmallTranslZButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightSmallTranslZButtonActionPerformed - double newValue = ((Number)translationZFTF.getValue()).doubleValue() + 0.1; - translationZFTF.setValue(newValue); - }//GEN-LAST:event_rightSmallTranslZButtonActionPerformed - - private void leftSmallRotaXButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftSmallRotaXButtonActionPerformed - double newValue = ((Number)rotationXFTF.getValue()).doubleValue() - 0.1; - rotationXFTF.setValue(newValue); - }//GEN-LAST:event_leftSmallRotaXButtonActionPerformed - - private void rightSmallRotaXButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightSmallRotaXButtonActionPerformed - double newValue = ((Number)rotationXFTF.getValue()).doubleValue() + 0.1; - rotationXFTF.setValue(newValue); - }//GEN-LAST:event_rightSmallRotaXButtonActionPerformed - - private void leftSmallRotaYButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftSmallRotaYButtonActionPerformed - double newValue = ((Number)rotationYFTF.getValue()).doubleValue() - 0.1; - rotationYFTF.setValue(newValue); - }//GEN-LAST:event_leftSmallRotaYButtonActionPerformed - - private void rightSmallRotaYButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightSmallRotaYButtonActionPerformed - double newValue = ((Number)rotationYFTF.getValue()).doubleValue() + 0.1; - rotationYFTF.setValue(newValue); - }//GEN-LAST:event_rightSmallRotaYButtonActionPerformed - - private void leftSmallRotaZButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_leftSmallRotaZButtonActionPerformed - double newValue = ((Number)rotationZFTF.getValue()).doubleValue() - 0.1; - rotationZFTF.setValue(newValue); - }//GEN-LAST:event_leftSmallRotaZButtonActionPerformed - - private void rightSmallRotaZButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rightSmallRotaZButtonActionPerformed - double newValue = ((Number)rotationZFTF.getValue()).doubleValue() + 0.1; - rotationZFTF.setValue(newValue); - }//GEN-LAST:event_rightSmallRotaZButtonActionPerformed - - private void primaryHighlightsCBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_primaryHighlightsCBActionPerformed - if (primaryHighlightsCB.isSelected()) - listener.setPrimaryHighlights(); - else - listener.removePrimaryHighlights(); - }//GEN-LAST:event_primaryHighlightsCBActionPerformed - - private void secondaryHighlightsCBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_secondaryHighlightsCBActionPerformed - if (secondaryHighlightsCB.isSelected()) - listener.setSecondaryHighlights(); - else - listener.removeSecondaryHighlights(); - }//GEN-LAST:event_secondaryHighlightsCBActionPerformed - - private void primaryFillRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_primaryFillRBActionPerformed - listener.setPrimaryFill(); - }//GEN-LAST:event_primaryFillRBActionPerformed - - private void primaryLinesRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_primaryLinesRBActionPerformed - listener.setPrimaryLines(); - }//GEN-LAST:event_primaryLinesRBActionPerformed - - private void primaryPointsRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_primaryPointsRBActionPerformed - listener.setPrimaryPoints(); - }//GEN-LAST:event_primaryPointsRBActionPerformed - - private void secondaryFillRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_secondaryFillRBActionPerformed - listener.setSecondaryFill(); - }//GEN-LAST:event_secondaryFillRBActionPerformed - - private void secondaryLinesRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_secondaryLinesRBActionPerformed - listener.setSecondaryLines(); - }//GEN-LAST:event_secondaryLinesRBActionPerformed - - private void secondaryPointsRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_secondaryPointsRBActionPerformed - listener.setSecondaryPoints(); - }//GEN-LAST:event_secondaryPointsRBActionPerformed - - private void colorButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_colorButtonActionPerformed - primaryColorPanel.setBackground(listener.getDefaultPrimaryColor()); - secondaryColorPanel.setBackground(listener.getDefaultSecondaryColor()); - listener.setDeafultColor(); - }//GEN-LAST:event_colorButtonActionPerformed - - private void applyButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_applyButtonActionPerformed - listener.transformFace(); - resetAllButtonActionPerformed(evt); - }//GEN-LAST:event_applyButtonActionPerformed - - private void featurePointsButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_featurePointsButtonActionPerformed - if (listener.isFeaturePointsActive()) { - listener.setFeaturePointsActive(false); - featurePointsButton.setText("show"); - } else { - listener.setFeaturePointsActive(true); - featurePointsButton.setText("hide"); - } - }//GEN-LAST:event_featurePointsButtonActionPerformed - - - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JButton applyButton; - private javax.swing.JButton colorButton; - private javax.swing.JToggleButton featurePointsButton; - private javax.swing.JLabel featurePointsLabel; - private javax.swing.JLabel fillLabel; - private javax.swing.JButton frontButton; - private javax.swing.JLabel highlightsLabel; - private javax.swing.JLabel jLabel1; - private javax.swing.JLabel jLabel2; - private javax.swing.JLabel jLabel3; - private javax.swing.JLabel jLabel4; - private javax.swing.JSeparator jSeparator1; - private javax.swing.JSeparator jSeparator2; - private javax.swing.JSeparator jSeparator5; - private javax.swing.JSeparator jSeparator6; - private javax.swing.JSeparator jSeparator7; - private javax.swing.JButton leftRotationXButton; - private javax.swing.JButton leftRotationYButton; - private javax.swing.JButton leftRotationZButton; - private javax.swing.JButton leftSmallRotaXButton; - private javax.swing.JButton leftSmallRotaYButton; - private javax.swing.JButton leftSmallRotaZButton; - private javax.swing.JButton leftSmallTranslXButton; - private javax.swing.JButton leftSmallTranslYButton; - private javax.swing.JButton leftSmallTranslZButton; - private javax.swing.JButton leftTranslationXButton; - private javax.swing.JButton leftTranslationYButton; - private javax.swing.JButton leftTranslationZButton; - private javax.swing.JLabel linesLabel; - private javax.swing.JLabel modelLabel; - private javax.swing.JLabel pointsLabel; - private javax.swing.JPanel primaryColorPanel; - private javax.swing.JRadioButton primaryFillRB; - private javax.swing.JCheckBox primaryHighlightsCB; - private javax.swing.JLabel primaryLabel; - private javax.swing.JRadioButton primaryLinesRB; - private javax.swing.JRadioButton primaryPointsRB; - private javax.swing.ButtonGroup primaryRenderModeGroup; - private javax.swing.JButton profileButton; - private javax.swing.JLabel renderModeLabel; - private javax.swing.JButton resetAllButton; - private javax.swing.JButton rightRotationXButton; - private javax.swing.JButton rightRotationYButton; - private javax.swing.JButton rightRotationZButton; - private javax.swing.JButton rightSmallRotaXButton; - private javax.swing.JButton rightSmallRotaYButton; - private javax.swing.JButton rightSmallRotaZButton; - private javax.swing.JButton rightSmallTranslXButton; - private javax.swing.JButton rightSmallTranslYButton; - private javax.swing.JButton rightSmallTranslZButton; - private javax.swing.JButton rightTranslationXButton; - private javax.swing.JButton rightTranslationYButton; - private javax.swing.JButton rightTranslationZButton; - private javax.swing.JLabel rotatXLabel; - private javax.swing.JLabel rotatYLabel; - private javax.swing.JLabel rotatZLabel; - private javax.swing.JButton rotationButton; - private javax.swing.JFormattedTextField rotationXFTF; - private javax.swing.JFormattedTextField rotationYFTF; - private javax.swing.JFormattedTextField rotationZFTF; - private javax.swing.JButton scaleButton; - private javax.swing.JFormattedTextField scaleFTF; - private javax.swing.JButton scaleMinusButton; - private javax.swing.JButton scalePlusButton; - private javax.swing.JButton scaleSmallMinusButton; - private javax.swing.JButton scaleSmallPlusButton; - private javax.swing.JPanel secondaryColorPanel; - private javax.swing.JRadioButton secondaryFillRB; - private javax.swing.JCheckBox secondaryHighlightsCB; - private javax.swing.JLabel secondaryLabel; - private javax.swing.JRadioButton secondaryLinesRB; - private javax.swing.JRadioButton secondaryPointsRB; - private javax.swing.ButtonGroup secondaryRenerModeGroup; - private javax.swing.JLabel transformationLabel; - private javax.swing.JLabel translXLabel; - private javax.swing.JLabel translYLabel; - private javax.swing.JLabel translZLabel; - private javax.swing.JButton translationButton; - private javax.swing.JFormattedTextField translationXFTF; - private javax.swing.JFormattedTextField translationYFTF; - private javax.swing.JFormattedTextField translationZFTF; - private javax.swing.JButton transparencyButton; - private javax.swing.JSlider transparencySlider; - private javax.swing.JLabel viewLabel; - // End of variables declaration//GEN-END:variables -} diff --git a/GUI/src/main/java/cz/fidentis/analyst/registration/ModelRotationAnimator.java b/GUI/src/main/java/cz/fidentis/analyst/registration/ModelRotationAnimator.java new file mode 100644 index 0000000000000000000000000000000000000000..0ca7f89cbfe2b5fab7f83215e55ba7e6a7832a69 --- /dev/null +++ b/GUI/src/main/java/cz/fidentis/analyst/registration/ModelRotationAnimator.java @@ -0,0 +1,78 @@ +package cz.fidentis.analyst.registration; + +import cz.fidentis.analyst.gui.canvas.Direction; +import com.jogamp.opengl.util.FPSAnimator; +import java.util.Timer; +import java.util.TimerTask; + +/** + * Animator used to animate transformations of model. + * Based on {@link cz.fidentis.analyst.gui.canvas.RotationAnimator}. + * + * @author Richard Pajersky + */ +public class ModelRotationAnimator { + + /** + * Frequency of the rotation or zoom animations + */ + private static final int FPS = 60; + + /** + * Animator used when the rotation or zoom buttons are pressed and held + */ + private final FPSAnimator animator; + + /* + * Animation timer + */ + private long startClickTime = 0; + private TimerTask task; + private Timer timer; + + private Direction direction = Direction.NONE; + + /** + * Constructor. + */ + public ModelRotationAnimator() { + this.animator = new FPSAnimator(FPS, true); + } + + /** + * Starts model animation + * @param dir Transform direction + * @param panel Panel + */ + public void startModelAnimation(Direction dir, PostRegistrationCP panel) { + if (this.direction != Direction.NONE) { + throw new UnsupportedOperationException(); // this should no happen + } + + animator.start(); + timer = new Timer(); + startClickTime = System.currentTimeMillis(); + task = new TimerTask() { + @Override + public void run() { + panel.transform(dir); + } + }; + timer.schedule(task, 500, 100); + + this.direction = dir; + } + + /** + * Stops the animation. + */ + public void stopModelAnimation(PostRegistrationCP panel) { + timer.cancel(); + if ((System.currentTimeMillis() - startClickTime) < 500) { + panel.transform(direction); + } + startClickTime = 0; + animator.stop(); + this.direction = Direction.NONE; + } +} diff --git a/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationCP.form b/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationCP.form new file mode 100644 index 0000000000000000000000000000000000000000..28e193c2a3f5c80f2526c86d2868a89de4d1e7a5 --- /dev/null +++ b/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationCP.form @@ -0,0 +1,2067 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<Form version="1.5" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo"> + <NonVisualComponents> + <Component class="javax.swing.ButtonGroup" name="primaryRenderModeGroup"> + </Component> + <Component class="javax.swing.ButtonGroup" name="secondaryRenerModeGroup"> + </Component> + <Component class="javax.swing.ButtonGroup" name="precisionGroup"> + </Component> + </NonVisualComponents> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="e2" green="e6" red="b0" type="rgb"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[400, 630]"/> + </Property> + </Properties> + <AuxValues> + <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/> + <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/> + <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/> + <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="true"/> + <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/> + <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/> + <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> + <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> + <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> + </AuxValues> + + <Layout> + <DimensionLayout dim="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="jSeparator11" alignment="0" max="32767" attributes="0"/> + <Group type="102" alignment="0" attributes="0"> + <EmptySpace max="-2" attributes="0"/> + <Component id="registrationAdjustmentLabel" min="-2" max="-2" attributes="0"/> + </Group> + <Component id="transformationPanel" alignment="0" min="-2" max="-2" attributes="0"/> + <Component id="visualizationPanel" alignment="0" min="-2" pref="387" max="-2" attributes="0"/> + </Group> + </DimensionLayout> + <DimensionLayout dim="1"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <EmptySpace max="-2" attributes="0"/> + <Component id="registrationAdjustmentLabel" min="-2" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="jSeparator11" min="-2" pref="10" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="visualizationPanel" min="-2" pref="247" max="-2" attributes="0"/> + <EmptySpace min="-2" pref="10" max="-2" attributes="0"/> + <Component id="transformationPanel" min="-2" pref="333" max="-2" attributes="0"/> + <EmptySpace max="32767" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + </Layout> + <SubComponents> + <Component class="javax.swing.JLabel" name="registrationAdjustmentLabel"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="14" style="1"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.registrationAdjustmentLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JSeparator" name="jSeparator11"> + </Component> + <Container class="javax.swing.JPanel" name="visualizationPanel"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="e2" green="e6" red="b0" type="rgb"/> + </Property> + </Properties> + + <Layout> + <DimensionLayout dim="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" attributes="0"> + <EmptySpace max="-2" attributes="0"/> + <Group type="103" groupAlignment="0" max="-2" attributes="0"> + <Component id="jSeparator1" max="32767" attributes="0"/> + <Component id="jSeparator4" alignment="0" max="32767" attributes="0"/> + <Component id="jSeparator8" alignment="0" max="32767" attributes="0"/> + <Component id="visualizationLabel" alignment="0" min="-2" max="-2" attributes="0"/> + <Component id="modelPanel" alignment="0" min="-2" max="-2" attributes="0"/> + <Component id="featurePointsPanel" alignment="0" min="-2" max="-2" attributes="0"/> + <Component id="viewPanel" alignment="0" max="32767" attributes="0"/> + </Group> + <EmptySpace max="32767" attributes="0"/> + </Group> + <Component id="jSeparator3" alignment="0" max="32767" attributes="0"/> + </Group> + </DimensionLayout> + <DimensionLayout dim="1"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="1" attributes="0"> + <Component id="visualizationLabel" min="-2" max="-2" attributes="0"/> + <EmptySpace max="32767" attributes="0"/> + <Component id="jSeparator4" min="-2" pref="10" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="modelPanel" min="-2" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="jSeparator8" min="-2" pref="10" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="viewPanel" min="-2" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="jSeparator1" min="-2" pref="10" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="featurePointsPanel" min="-2" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="jSeparator3" min="-2" pref="10" max="-2" attributes="0"/> + <EmptySpace min="-2" pref="19" max="-2" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + </Layout> + <SubComponents> + <Component class="javax.swing.JSeparator" name="jSeparator8"> + </Component> + <Component class="javax.swing.JSeparator" name="jSeparator4"> + </Component> + <Component class="javax.swing.JLabel" name="visualizationLabel"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="12" style="1"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.visualizationLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JSeparator" name="jSeparator1"> + </Component> + <Container class="javax.swing.JPanel" name="modelPanel"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="e2" green="e6" red="b0" type="rgb"/> + </Property> + </Properties> + + <Layout> + <DimensionLayout dim="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="primaryLabel" alignment="0" min="-2" pref="58" max="-2" attributes="0"/> + <Component id="modelLabel" alignment="0" min="-2" max="-2" attributes="0"/> + <Component id="secondaryLabel" alignment="0" max="32767" attributes="0"/> + </Group> + <EmptySpace type="separate" max="-2" attributes="0"/> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" attributes="0"> + <Component id="colorButton" min="-2" pref="50" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="highlightsLabel" min="-2" max="-2" attributes="0"/> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <EmptySpace min="-2" pref="41" max="-2" attributes="0"/> + <Component id="linesLabel" min="-2" max="-2" attributes="0"/> + <EmptySpace type="unrelated" max="-2" attributes="0"/> + <Component id="pointsLabel" min="-2" max="-2" attributes="0"/> + </Group> + <Group type="102" alignment="0" attributes="0"> + <EmptySpace type="separate" max="-2" attributes="0"/> + <Component id="renderModeLabel" min="-2" max="-2" attributes="0"/> + <EmptySpace pref="21" max="32767" attributes="0"/> + <Component id="transparencyButton" min="-2" pref="50" max="-2" attributes="0"/> + </Group> + </Group> + </Group> + <Group type="102" attributes="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="primaryColorPanel" min="-2" pref="50" max="-2" attributes="0"/> + <Component id="secondaryColorPanel" min="-2" pref="50" max="-2" attributes="0"/> + </Group> + <EmptySpace type="separate" max="-2" attributes="0"/> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="primaryHighlightsCB" min="-2" max="-2" attributes="0"/> + <Component id="secondaryHighlightsCB" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace min="-2" pref="28" max="-2" attributes="0"/> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <Component id="secondaryFillRB" min="-2" max="-2" attributes="0"/> + <EmptySpace type="separate" max="-2" attributes="0"/> + <Component id="secondaryLinesRB" min="-2" max="-2" attributes="0"/> + <EmptySpace type="separate" max="-2" attributes="0"/> + <Component id="secondaryPointsRB" min="-2" max="-2" attributes="0"/> + </Group> + <Group type="102" alignment="0" attributes="0"> + <Component id="primaryFillRB" min="-2" max="-2" attributes="0"/> + <EmptySpace type="separate" max="-2" attributes="0"/> + <Component id="primaryLinesRB" min="-2" max="-2" attributes="0"/> + <EmptySpace type="separate" max="-2" attributes="0"/> + <Component id="primaryPointsRB" min="-2" max="-2" attributes="0"/> + </Group> + <Component id="fillLabel" alignment="0" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace min="-2" pref="25" max="-2" attributes="0"/> + <Component id="transparencySlider" min="-2" max="-2" attributes="0"/> + </Group> + </Group> + <EmptySpace min="-2" max="-2" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + <DimensionLayout dim="1"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="modelLabel" min="-2" max="-2" attributes="0"/> + <Group type="102" attributes="0"> + <Group type="103" groupAlignment="3" attributes="0"> + <Component id="highlightsLabel" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="renderModeLabel" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="transparencyButton" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="colorButton" alignment="3" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace min="-2" pref="4" max="-2" attributes="0"/> + <Group type="103" groupAlignment="3" attributes="0"> + <Component id="fillLabel" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="linesLabel" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="pointsLabel" alignment="3" min="-2" max="-2" attributes="0"/> + </Group> + </Group> + </Group> + <EmptySpace max="-2" attributes="0"/> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="103" groupAlignment="0" max="-2" attributes="0"> + <Group type="102" alignment="1" attributes="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="primaryLabel" min="-2" max="-2" attributes="0"/> + <Component id="primaryHighlightsCB" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace min="-2" pref="11" max="-2" attributes="0"/> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="secondaryLabel" alignment="1" min="-2" max="-2" attributes="0"/> + <Component id="secondaryHighlightsCB" alignment="1" min="-2" max="-2" attributes="0"/> + </Group> + </Group> + <Group type="102" alignment="0" attributes="0"> + <Component id="primaryColorPanel" min="-2" max="-2" attributes="0"/> + <EmptySpace max="32767" attributes="0"/> + <Component id="secondaryColorPanel" min="-2" max="-2" attributes="0"/> + </Group> + </Group> + <Group type="103" groupAlignment="0" max="-2" attributes="0"> + <Group type="102" alignment="1" attributes="0"> + <Component id="primaryFillRB" min="-2" max="-2" attributes="0"/> + <EmptySpace max="32767" attributes="0"/> + <Component id="secondaryFillRB" min="-2" max="-2" attributes="0"/> + </Group> + <Group type="102" alignment="1" attributes="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="primaryLinesRB" min="-2" max="-2" attributes="0"/> + <Component id="primaryPointsRB" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace max="32767" attributes="0"/> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="secondaryLinesRB" alignment="1" min="-2" max="-2" attributes="0"/> + <Component id="secondaryPointsRB" alignment="1" min="-2" max="-2" attributes="0"/> + </Group> + </Group> + <Component id="transparencySlider" min="-2" pref="53" max="-2" attributes="0"/> + </Group> + </Group> + </Group> + </Group> + </DimensionLayout> + </Layout> + <SubComponents> + <Component class="javax.swing.JLabel" name="modelLabel"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="11" style="3"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.modelLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JLabel" name="pointsLabel"> + <Properties> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.pointsLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JButton" name="transparencyButton"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="11" style="1"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.transparencyButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.transparencyButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="transparencyButtonActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JLabel" name="linesLabel"> + <Properties> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.linesLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JButton" name="colorButton"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="11" style="1"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.colorButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.colorButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + <Property name="horizontalTextPosition" type="int" value="0"/> + <Property name="iconTextGap" type="int" value="0"/> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="colorButtonActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JLabel" name="fillLabel"> + <Properties> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.fillLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JLabel" name="renderModeLabel"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="11" style="1"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.renderModeLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JCheckBox" name="secondaryHighlightsCB"> + <Properties> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.secondaryHighlightsCB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="secondaryHighlightsCBActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JCheckBox" name="primaryHighlightsCB"> + <Properties> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.primaryHighlightsCB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="primaryHighlightsCBActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JLabel" name="highlightsLabel"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="11" style="1"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.highlightsLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JLabel" name="primaryLabel"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="11" style="1"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.primaryLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JLabel" name="secondaryLabel"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="11" style="1"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.secondaryLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.secondaryLabel.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JSlider" name="transparencySlider"> + <Properties> + <Property name="majorTickSpacing" type="int" value="5"/> + <Property name="maximum" type="int" value="20"/> + <Property name="minorTickSpacing" type="int" value="5"/> + <Property name="orientation" type="int" value="1"/> + <Property name="paintTicks" type="boolean" value="true"/> + <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.transparencySlider.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="value" type="int" value="10"/> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Hand Cursor"/> + </Property> + </Properties> + <Events> + <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="transparencySliderStateChanged"/> + </Events> + </Component> + <Container class="javax.swing.JPanel" name="secondaryColorPanel"> + <Properties> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo"> + <LineBorder/> + </Border> + </Property> + <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.secondaryColorPanel.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Hand Cursor"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[70, 14]"/> + </Property> + </Properties> + <Events> + <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="secondaryColorPanelMouseClicked"/> + </Events> + + <Layout> + <DimensionLayout dim="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <EmptySpace min="0" pref="48" max="32767" attributes="0"/> + </Group> + </DimensionLayout> + <DimensionLayout dim="1"> + <Group type="103" groupAlignment="0" attributes="0"> + <EmptySpace min="0" pref="12" max="32767" attributes="0"/> + </Group> + </DimensionLayout> + </Layout> + </Container> + <Container class="javax.swing.JPanel" name="primaryColorPanel"> + <Properties> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo"> + <LineBorder/> + </Border> + </Property> + <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.primaryColorPanel.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Hand Cursor"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[72, 14]"/> + </Property> + </Properties> + <Events> + <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="primaryColorPanelMouseClicked"/> + </Events> + + <Layout> + <DimensionLayout dim="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <EmptySpace min="0" pref="48" max="32767" attributes="0"/> + </Group> + </DimensionLayout> + <DimensionLayout dim="1"> + <Group type="103" groupAlignment="0" attributes="0"> + <EmptySpace min="0" pref="12" max="32767" attributes="0"/> + </Group> + </DimensionLayout> + </Layout> + </Container> + <Component class="javax.swing.JRadioButton" name="primaryLinesRB"> + <Properties> + <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> + <ComponentRef name="primaryRenderModeGroup"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.primaryLinesRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="primaryLinesRBActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JRadioButton" name="secondaryFillRB"> + <Properties> + <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> + <ComponentRef name="secondaryRenerModeGroup"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.secondaryFillRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="secondaryFillRBActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JRadioButton" name="primaryPointsRB"> + <Properties> + <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> + <ComponentRef name="primaryRenderModeGroup"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.primaryPointsRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="primaryPointsRBActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JRadioButton" name="secondaryPointsRB"> + <Properties> + <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> + <ComponentRef name="secondaryRenerModeGroup"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.secondaryPointsRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="secondaryPointsRBActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JRadioButton" name="secondaryLinesRB"> + <Properties> + <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> + <ComponentRef name="secondaryRenerModeGroup"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.secondaryLinesRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="secondaryLinesRBActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JRadioButton" name="primaryFillRB"> + <Properties> + <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> + <ComponentRef name="primaryRenderModeGroup"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.primaryFillRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="primaryFillRBActionPerformed"/> + </Events> + </Component> + </SubComponents> + </Container> + <Container class="javax.swing.JPanel" name="viewPanel"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="e2" green="e6" red="b0" type="rgb"/> + </Property> + </Properties> + + <Layout> + <DimensionLayout dim="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <Component id="viewLabel" min="-2" max="-2" attributes="0"/> + <EmptySpace type="separate" max="-2" attributes="0"/> + <Component id="frontButton" min="-2" pref="50" max="-2" attributes="0"/> + <EmptySpace type="separate" max="-2" attributes="0"/> + <Component id="profileButton" min="-2" pref="50" max="-2" attributes="0"/> + <EmptySpace type="separate" max="-2" attributes="0"/> + <Component id="backfaceButton" min="-2" pref="79" max="-2" attributes="0"/> + <EmptySpace max="32767" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + <DimensionLayout dim="1"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="103" groupAlignment="3" attributes="0"> + <Component id="viewLabel" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="frontButton" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="profileButton" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="backfaceButton" alignment="3" min="-2" max="-2" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + </Layout> + <SubComponents> + <Component class="javax.swing.JButton" name="profileButton"> + <Properties> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.profileButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.profileButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="profileButtonActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JButton" name="frontButton"> + <Properties> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.frontButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.frontButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="frontButtonActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JLabel" name="viewLabel"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="11" style="3"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.viewLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JToggleButton" name="backfaceButton"> + <Properties> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.backfaceButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="backfaceButtonActionPerformed"/> + </Events> + </Component> + </SubComponents> + </Container> + <Container class="javax.swing.JPanel" name="featurePointsPanel"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="e2" green="e6" red="b0" type="rgb"/> + </Property> + </Properties> + + <Layout> + <DimensionLayout dim="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <Component id="featurePointsLabel" min="-2" max="-2" attributes="0"/> + <EmptySpace type="separate" max="-2" attributes="0"/> + <Component id="featurePointsButton" min="-2" pref="43" max="-2" attributes="0"/> + <EmptySpace type="separate" max="-2" attributes="0"/> + <Component id="thersholdButton" min="-2" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="thersholdFTF" min="-2" pref="70" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="thersholdUpButton" min="-2" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="thresholdDownButton" min="-2" max="-2" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + <DimensionLayout dim="1"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="103" alignment="0" groupAlignment="3" attributes="0"> + <Component id="featurePointsLabel" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="featurePointsButton" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="thersholdButton" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="thersholdFTF" alignment="3" min="-2" max="-2" attributes="0"/> + </Group> + <Component id="thersholdUpButton" alignment="0" min="-2" max="-2" attributes="0"/> + <Component id="thresholdDownButton" min="-2" max="-2" attributes="0"/> + </Group> + </DimensionLayout> + </Layout> + <SubComponents> + <Component class="javax.swing.JToggleButton" name="featurePointsButton"> + <Properties> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.featurePointsButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="featurePointsButtonActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JButton" name="thresholdDownButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/subtract-line.png"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.thresholdDownButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + <Property name="enabled" type="boolean" value="false"/> + <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="thresholdDownButtonActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JButton" name="thersholdUpButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/add-line.png"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.thersholdUpButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + <Property name="enabled" type="boolean" value="false"/> + <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="thersholdUpButtonActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JButton" name="thersholdButton"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="11" style="1"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.thersholdButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="enabled" type="boolean" value="false"/> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="thersholdButtonActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JFormattedTextField" name="thersholdFTF"> + <Properties> + <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor"> + <Format subtype="0" type="0"/> + </Property> + <Property name="enabled" type="boolean" value="false"/> + </Properties> + <Events> + <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="thersholdFTFPropertyChange"/> + </Events> + </Component> + <Component class="javax.swing.JLabel" name="featurePointsLabel"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="11" style="3"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.featurePointsLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + </SubComponents> + </Container> + <Component class="javax.swing.JSeparator" name="jSeparator3"> + </Component> + </SubComponents> + </Container> + <Container class="javax.swing.JPanel" name="transformationPanel"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="e2" green="e6" red="b0" type="rgb"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[400, 400]"/> + </Property> + </Properties> + + <Layout> + <DimensionLayout dim="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" attributes="0"> + <EmptySpace max="-2" attributes="0"/> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="rotationPanel" alignment="0" max="32767" attributes="0"/> + <Group type="102" attributes="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="103" alignment="0" groupAlignment="0" max="-2" attributes="0"> + <Component id="transformationLabel" alignment="0" min="-2" max="-2" attributes="0"/> + <Component id="jSeparator6" alignment="0" pref="371" max="32767" attributes="0"/> + <Component id="jSeparator2" alignment="0" max="32767" attributes="0"/> + </Group> + <Component id="translationPanel" alignment="0" min="-2" max="-2" attributes="0"/> + <Component id="jSeparator7" alignment="0" min="-2" pref="371" max="-2" attributes="0"/> + <Group type="102" alignment="0" attributes="0"> + <Component id="scalePanel" min="-2" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="jSeparator9" min="-2" pref="10" max="-2" attributes="0"/> + <EmptySpace type="separate" max="-2" attributes="0"/> + <Component id="shiftPanel" min="-2" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="jSeparator10" min="-2" pref="15" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="resetAllButton" min="-2" pref="83" max="-2" attributes="0"/> + <Component id="applyButton" min="-2" pref="83" max="-2" attributes="0"/> + </Group> + </Group> + </Group> + <EmptySpace min="0" pref="5" max="32767" attributes="0"/> + </Group> + </Group> + <EmptySpace max="-2" attributes="0"/> + </Group> + <Component id="jSeparator5" alignment="1" max="32767" attributes="0"/> + </Group> + </DimensionLayout> + <DimensionLayout dim="1"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" attributes="0"> + <Component id="transformationLabel" min="-2" max="-2" attributes="0"/> + <EmptySpace min="-2" pref="13" max="-2" attributes="0"/> + <Component id="jSeparator2" min="-2" pref="10" max="-2" attributes="0"/> + <EmptySpace min="-2" pref="1" max="-2" attributes="0"/> + <Component id="translationPanel" min="-2" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="jSeparator6" min="-2" pref="10" max="-2" attributes="0"/> + <EmptySpace max="32767" attributes="0"/> + <Component id="rotationPanel" min="-2" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="jSeparator7" min="-2" pref="10" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <Group type="103" groupAlignment="1" attributes="0"> + <Component id="applyButton" min="-2" pref="27" max="-2" attributes="0"/> + <Component id="jSeparator10" min="-2" pref="62" max="-2" attributes="0"/> + </Group> + <EmptySpace max="32767" attributes="0"/> + </Group> + <Group type="102" attributes="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" attributes="0"> + <Component id="scalePanel" max="32767" attributes="0"/> + <EmptySpace min="-2" pref="7" max="-2" attributes="0"/> + </Group> + <Component id="jSeparator9" min="-2" pref="62" max="-2" attributes="0"/> + <Component id="shiftPanel" min="-2" max="-2" attributes="0"/> + <Component id="resetAllButton" alignment="0" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace max="32767" attributes="0"/> + </Group> + </Group> + <Component id="jSeparator5" min="-2" pref="10" max="-2" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + </Layout> + <SubComponents> + <Component class="javax.swing.JLabel" name="transformationLabel"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="12" style="1"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.transformationLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JSeparator" name="jSeparator2"> + </Component> + <Component class="javax.swing.JSeparator" name="jSeparator6"> + </Component> + <Container class="javax.swing.JPanel" name="translationPanel"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="e2" green="e6" red="b0" type="rgb"/> + </Property> + </Properties> + + <Layout> + <DimensionLayout dim="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" attributes="0"> + <Component id="jLabel2" min="-2" max="-2" attributes="0"/> + <EmptySpace min="-2" pref="28" max="-2" attributes="0"/> + </Group> + <Group type="102" alignment="1" attributes="0"> + <Component id="translationButton" min="-2" max="-2" attributes="0"/> + <EmptySpace type="separate" max="-2" attributes="0"/> + </Group> + </Group> + <Group type="103" groupAlignment="0" max="-2" attributes="0"> + <Component id="translXLabel" alignment="0" min="-2" max="-2" attributes="0"/> + <Component id="translationXFTF" alignment="0" max="32767" attributes="0"/> + <Group type="102" alignment="0" attributes="0"> + <Component id="leftTranslationXButton" min="-2" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="rightTranslationXButton" min="-2" max="-2" attributes="0"/> + </Group> + </Group> + <EmptySpace type="separate" max="-2" attributes="0"/> + <Group type="103" groupAlignment="0" max="-2" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <Component id="leftTranslationYButton" min="-2" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="rightTranslationYButton" min="-2" max="-2" attributes="0"/> + </Group> + <Component id="translYLabel" min="-2" max="-2" attributes="0"/> + <Component id="translationYFTF" alignment="0" min="-2" pref="54" max="-2" attributes="0"/> + </Group> + <EmptySpace type="separate" max="-2" attributes="0"/> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <Component id="leftTranslationZButton" min="-2" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="rightTranslationZButton" min="-2" max="-2" attributes="0"/> + </Group> + <Component id="translationZFTF" alignment="0" min="-2" pref="54" max="-2" attributes="0"/> + <Component id="translZLabel" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace pref="14" max="32767" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + <DimensionLayout dim="1"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="103" groupAlignment="3" attributes="0"> + <Component id="translXLabel" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="translYLabel" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="translZLabel" alignment="3" min="-2" max="-2" attributes="0"/> + </Group> + <Component id="jLabel2" alignment="0" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace max="-2" attributes="0"/> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" attributes="0"> + <Component id="rightTranslationZButton" min="-2" max="-2" attributes="0"/> + <EmptySpace min="0" pref="0" max="32767" attributes="0"/> + </Group> + <Group type="102" attributes="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="leftTranslationYButton" min="-2" max="-2" attributes="0"/> + <Component id="rightTranslationYButton" min="-2" max="-2" attributes="0"/> + <Group type="103" groupAlignment="1" attributes="0"> + <Group type="102" alignment="1" attributes="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="rightTranslationXButton" alignment="0" min="-2" max="-2" attributes="0"/> + <Component id="leftTranslationXButton" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace max="-2" attributes="0"/> + <Group type="103" groupAlignment="3" attributes="0"> + <Component id="translationXFTF" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="translationYFTF" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="translationZFTF" alignment="3" min="-2" max="-2" attributes="0"/> + </Group> + </Group> + <Component id="translationButton" min="-2" max="-2" attributes="0"/> + </Group> + <Component id="leftTranslationZButton" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace max="32767" attributes="0"/> + </Group> + </Group> + </Group> + </Group> + </DimensionLayout> + </Layout> + <SubComponents> + <Component class="javax.swing.JButton" name="translationButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/restart-line.png"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.translationButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.translationButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> + <Insets value="[2, 2, 2, 2]"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="translationButtonActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JLabel" name="jLabel2"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="11" style="3"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.jLabel2.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JButton" name="rightTranslationXButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/arrow-right-s-line.png"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rightTranslationXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> + <Insets value="[2, 2, 2, 2]"/> + </Property> + <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + </Properties> + <Events> + <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightTranslationXButtonMousePressed"/> + <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightTranslationXButtonMouseReleased"/> + </Events> + </Component> + <Component class="javax.swing.JFormattedTextField" name="translationXFTF"> + <Properties> + <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor"> + <Format subtype="0" type="0"/> + </Property> + <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.translationXFTF.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Text Cursor"/> + </Property> + </Properties> + <Events> + <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="translationXFTFPropertyChange"/> + </Events> + </Component> + <Component class="javax.swing.JButton" name="leftTranslationYButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/arrow-left-s-line.png"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.leftTranslationYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> + <Insets value="[2, 2, 2, 2]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + </Properties> + <Events> + <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftTranslationYButtonMousePressed"/> + <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftTranslationYButtonMouseReleased"/> + </Events> + </Component> + <Component class="javax.swing.JFormattedTextField" name="translationYFTF"> + <Properties> + <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor"> + <Format subtype="0" type="0"/> + </Property> + </Properties> + <Events> + <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="translationYFTFPropertyChange"/> + </Events> + </Component> + <Component class="javax.swing.JButton" name="rightTranslationYButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/arrow-right-s-line.png"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rightTranslationYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> + <Insets value="[2, 2, 2, 2]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + </Properties> + <Events> + <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightTranslationYButtonMousePressed"/> + <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightTranslationYButtonMouseReleased"/> + </Events> + </Component> + <Component class="javax.swing.JLabel" name="translXLabel"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="11" style="1"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.translXLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JFormattedTextField" name="translationZFTF"> + <Properties> + <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor"> + <Format subtype="0" type="0"/> + </Property> + </Properties> + <Events> + <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="translationZFTFPropertyChange"/> + </Events> + </Component> + <Component class="javax.swing.JLabel" name="translZLabel"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="11" style="1"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.translZLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JLabel" name="translYLabel"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="11" style="1"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.translYLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JButton" name="rightTranslationZButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/arrow-right-s-line.png"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rightTranslationZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> + <Insets value="[2, 2, 2, 2]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + </Properties> + <Events> + <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightTranslationZButtonMousePressed"/> + <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightTranslationZButtonMouseReleased"/> + </Events> + </Component> + <Component class="javax.swing.JButton" name="leftTranslationXButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/arrow-left-s-line.png"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.leftTranslationXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> + <Insets value="[2, 2, 2, 2]"/> + </Property> + <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + </Properties> + <Events> + <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftTranslationXButtonMousePressed"/> + <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftTranslationXButtonMouseReleased"/> + </Events> + </Component> + <Component class="javax.swing.JButton" name="leftTranslationZButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/arrow-left-s-line.png"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.leftTranslationZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> + <Insets value="[2, 2, 2, 2]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + </Properties> + <Events> + <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftTranslationZButtonMousePressed"/> + <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftTranslationZButtonMouseReleased"/> + </Events> + </Component> + </SubComponents> + </Container> + <Container class="javax.swing.JPanel" name="rotationPanel"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="e2" green="e6" red="b0" type="rgb"/> + </Property> + </Properties> + + <Layout> + <DimensionLayout dim="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" attributes="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" attributes="0"> + <EmptySpace min="-2" pref="48" max="-2" attributes="0"/> + <Component id="rotationButton" min="-2" max="-2" attributes="0"/> + </Group> + <Component id="jLabel3" alignment="0" min="-2" max="-2" attributes="0"/> + </Group> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <EmptySpace min="-2" pref="18" max="-2" attributes="0"/> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="rotatXLabel" alignment="0" min="-2" max="-2" attributes="0"/> + <Group type="102" alignment="0" attributes="0"> + <Component id="leftRotationXButton" min="-2" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="rightRotationXButton" min="-2" max="-2" attributes="0"/> + </Group> + </Group> + </Group> + <Group type="102" alignment="1" attributes="0"> + <EmptySpace max="-2" attributes="0"/> + <Component id="rotationXFTF" min="-2" pref="54" max="-2" attributes="0"/> + </Group> + </Group> + <EmptySpace min="-2" pref="21" max="-2" attributes="0"/> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <Component id="leftRotationYButton" min="-2" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="rightRotationYButton" min="-2" max="-2" attributes="0"/> + </Group> + <Component id="rotationYFTF" min="-2" pref="54" max="-2" attributes="0"/> + <Component id="rotatYLabel" alignment="0" min="-2" max="-2" attributes="0"/> + </Group> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <EmptySpace min="-2" pref="22" max="-2" attributes="0"/> + <Component id="rotatZLabel" min="-2" max="-2" attributes="0"/> + </Group> + <Group type="102" alignment="0" attributes="0"> + <EmptySpace type="separate" max="-2" attributes="0"/> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="rotationZFTF" min="-2" pref="54" max="-2" attributes="0"/> + <Group type="102" alignment="0" attributes="0"> + <Component id="leftRotationZButton" min="-2" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="rightRotationZButton" min="-2" max="-2" attributes="0"/> + </Group> + </Group> + </Group> + </Group> + <EmptySpace max="32767" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + <DimensionLayout dim="1"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="103" alignment="0" groupAlignment="3" attributes="0"> + <Component id="rotatXLabel" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="jLabel3" alignment="3" min="-2" max="-2" attributes="0"/> + </Group> + <Group type="103" alignment="1" groupAlignment="3" attributes="0"> + <Component id="rotatYLabel" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="rotatZLabel" alignment="3" min="-2" max="-2" attributes="0"/> + </Group> + </Group> + <EmptySpace min="-2" pref="6" max="-2" attributes="0"/> + <Group type="103" groupAlignment="1" attributes="0"> + <Component id="rotationButton" min="-2" max="-2" attributes="0"/> + <Group type="102" alignment="1" attributes="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="rightRotationYButton" min="-2" max="-2" attributes="0"/> + <Component id="leftRotationYButton" alignment="0" min="-2" max="-2" attributes="0"/> + <Component id="leftRotationXButton" min="-2" max="-2" attributes="0"/> + <Component id="rightRotationXButton" min="-2" max="-2" attributes="0"/> + <Component id="leftRotationZButton" alignment="0" min="-2" max="-2" attributes="0"/> + <Component id="rightRotationZButton" alignment="0" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace max="-2" attributes="0"/> + <Group type="103" groupAlignment="3" attributes="0"> + <Component id="rotationYFTF" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="rotationXFTF" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="rotationZFTF" alignment="3" min="-2" max="-2" attributes="0"/> + </Group> + </Group> + </Group> + <EmptySpace max="32767" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + </Layout> + <SubComponents> + <Component class="javax.swing.JButton" name="leftRotationYButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/arrow-left-s-line.png"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.leftRotationYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> + <Insets value="[2, 2, 2, 2]"/> + </Property> + <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + </Properties> + <Events> + <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftRotationYButtonMousePressed"/> + <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftRotationYButtonMouseReleased"/> + </Events> + </Component> + <Component class="javax.swing.JButton" name="leftRotationXButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/arrow-left-s-line.png"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.leftRotationXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> + <Insets value="[2, 2, 2, 2]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + </Properties> + <Events> + <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftRotationXButtonMousePressed"/> + <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftRotationXButtonMouseReleased"/> + </Events> + </Component> + <Component class="javax.swing.JLabel" name="rotatZLabel"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="11" style="1"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rotatZLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JLabel" name="rotatYLabel"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="11" style="1"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rotatYLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JLabel" name="rotatXLabel"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="11" style="1"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rotatXLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JButton" name="rotationButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/restart-line.png"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rotationButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rotationButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> + <Insets value="[2, 2, 2, 2]"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rotationButtonActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JFormattedTextField" name="rotationZFTF"> + <Properties> + <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor"> + <Format subtype="0" type="0"/> + </Property> + </Properties> + <Events> + <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="rotationZFTFPropertyChange"/> + </Events> + </Component> + <Component class="javax.swing.JFormattedTextField" name="rotationYFTF"> + <Properties> + <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor"> + <Format subtype="0" type="0"/> + </Property> + </Properties> + <Events> + <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="rotationYFTFPropertyChange"/> + </Events> + </Component> + <Component class="javax.swing.JButton" name="rightRotationZButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/arrow-right-s-line.png"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rightRotationZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> + <Insets value="[2, 2, 2, 2]"/> + </Property> + <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + </Properties> + <Events> + <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightRotationZButtonMousePressed"/> + <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightRotationZButtonMouseReleased"/> + </Events> + </Component> + <Component class="javax.swing.JButton" name="rightRotationYButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/arrow-right-s-line.png"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rightRotationYButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> + <Insets value="[2, 2, 2, 2]"/> + </Property> + <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + </Properties> + <Events> + <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightRotationYButtonMousePressed"/> + <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightRotationYButtonMouseReleased"/> + </Events> + </Component> + <Component class="javax.swing.JButton" name="leftRotationZButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/arrow-left-s-line.png"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.leftRotationZButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> + <Insets value="[2, 2, 2, 2]"/> + </Property> + <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + </Properties> + <Events> + <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftRotationZButtonMousePressed"/> + <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="leftRotationZButtonMouseReleased"/> + </Events> + </Component> + <Component class="javax.swing.JButton" name="rightRotationXButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/arrow-right-s-line.png"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rightRotationXButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> + <Insets value="[2, 2, 2, 2]"/> + </Property> + <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + </Properties> + <Events> + <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightRotationXButtonMousePressed"/> + <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="rightRotationXButtonMouseReleased"/> + </Events> + </Component> + <Component class="javax.swing.JFormattedTextField" name="rotationXFTF"> + <Properties> + <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor"> + <Format subtype="0" type="0"/> + </Property> + <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.rotationXFTF.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + <Events> + <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="rotationXFTFPropertyChange"/> + </Events> + </Component> + <Component class="javax.swing.JLabel" name="jLabel3"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="11" style="3"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.jLabel3.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + </SubComponents> + </Container> + <Container class="javax.swing.JPanel" name="scalePanel"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="e2" green="e6" red="b0" type="rgb"/> + </Property> + </Properties> + + <Layout> + <DimensionLayout dim="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="1" attributes="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" attributes="0"> + <Component id="jLabel4" min="-2" max="-2" attributes="0"/> + <EmptySpace min="0" pref="42" max="32767" attributes="0"/> + </Group> + <Group type="102" alignment="1" attributes="0"> + <EmptySpace min="0" pref="0" max="32767" attributes="0"/> + <Component id="scaleButton" min="-2" max="-2" attributes="0"/> + </Group> + </Group> + <EmptySpace type="separate" max="-2" attributes="0"/> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="1" attributes="0"> + <Component id="scalePlusButton" min="-2" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="scaleMinusButton" min="-2" max="-2" attributes="0"/> + </Group> + <Component id="scaleFTF" alignment="1" min="-2" pref="54" max="-2" attributes="0"/> + </Group> + <EmptySpace max="-2" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + <DimensionLayout dim="1"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" attributes="0"> + <EmptySpace min="-2" pref="1" max="-2" attributes="0"/> + <Component id="jLabel4" min="-2" max="-2" attributes="0"/> + <EmptySpace max="32767" attributes="0"/> + <Component id="scaleButton" min="-2" max="-2" attributes="0"/> + </Group> + <Group type="102" attributes="0"> + <EmptySpace max="-2" attributes="0"/> + <Group type="103" groupAlignment="1" attributes="0"> + <Component id="scaleMinusButton" min="-2" max="-2" attributes="0"/> + <Component id="scalePlusButton" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace max="32767" attributes="0"/> + <Component id="scaleFTF" min="-2" max="-2" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + </Layout> + <SubComponents> + <Component class="javax.swing.JLabel" name="jLabel4"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="11" style="3"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.jLabel4.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JButton" name="scalePlusButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/add-line.png"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.scalePlusButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> + <Insets value="[2, 2, 2, 2]"/> + </Property> + <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + </Properties> + <Events> + <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="scalePlusButtonMousePressed"/> + <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="scalePlusButtonMouseReleased"/> + </Events> + </Component> + <Component class="javax.swing.JButton" name="scaleMinusButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/subtract-line.png"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.scaleMinusButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> + <Insets value="[2, 2, 2, 2]"/> + </Property> + <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[24, 24]"/> + </Property> + </Properties> + <Events> + <EventHandler event="mousePressed" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="scaleMinusButtonMousePressed"/> + <EventHandler event="mouseReleased" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="scaleMinusButtonMouseReleased"/> + </Events> + </Component> + <Component class="javax.swing.JFormattedTextField" name="scaleFTF"> + <Properties> + <Property name="formatterFactory" type="javax.swing.JFormattedTextField$AbstractFormatterFactory" editor="org.netbeans.modules.form.editors.AbstractFormatterFactoryEditor"> + <Format subtype="0" type="0"/> + </Property> + <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.scaleFTF.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + <Events> + <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="scaleFTFPropertyChange"/> + </Events> + </Component> + <Component class="javax.swing.JButton" name="scaleButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/restart-line.png"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.scaleButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.scaleButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Default Cursor"/> + </Property> + <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> + <Insets value="[2, 2, 2, 2]"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scaleButtonActionPerformed"/> + </Events> + </Component> + </SubComponents> + </Container> + <Component class="javax.swing.JButton" name="resetAllButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/refresh-line.png"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.resetAllButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.resetAllButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="resetAllButtonActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JSeparator" name="jSeparator7"> + </Component> + <Component class="javax.swing.JSeparator" name="jSeparator9"> + <Properties> + <Property name="orientation" type="int" value="1"/> + </Properties> + </Component> + <Container class="javax.swing.JPanel" name="shiftPanel"> + <Properties> + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> + <Color blue="e2" green="e6" red="b0" type="rgb"/> + </Property> + </Properties> + + <Layout> + <DimensionLayout dim="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" attributes="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="lowShiftRB" alignment="0" min="-2" max="-2" attributes="0"/> + <Component id="highShiftRB" min="-2" max="-2" attributes="0"/> + </Group> + <EmptySpace min="0" pref="8" max="32767" attributes="0"/> + </Group> + <Group type="102" alignment="0" attributes="0"> + <EmptySpace max="-2" attributes="0"/> + <Component id="shiftLabel" min="-2" max="-2" attributes="0"/> + <EmptySpace max="32767" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + <DimensionLayout dim="1"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <Component id="shiftLabel" min="-2" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="lowShiftRB" min="-2" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="highShiftRB" min="-2" max="-2" attributes="0"/> + <EmptySpace max="32767" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + </Layout> + <SubComponents> + <Component class="javax.swing.JLabel" name="shiftLabel"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="11" style="1"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.shiftLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.shiftLabel.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JRadioButton" name="lowShiftRB"> + <Properties> + <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> + <ComponentRef name="precisionGroup"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.lowShiftRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.lowShiftRB.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="lowShiftRBActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JRadioButton" name="highShiftRB"> + <Properties> + <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> + <ComponentRef name="precisionGroup"/> + </Property> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.highShiftRB.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.highShiftRB.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="highShiftRBActionPerformed"/> + </Events> + </Component> + </SubComponents> + </Container> + <Component class="javax.swing.JSeparator" name="jSeparator10"> + <Properties> + <Property name="orientation" type="int" value="1"/> + </Properties> + </Component> + <Component class="javax.swing.JButton" name="applyButton"> + <Properties> + <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.applyButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> + <ResourceString bundle="cz/fidentis/analyst/registration/Bundle.properties" key="PostRegistrationCP.applyButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + </Property> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder/> + </Border> + </Property> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Hand Cursor"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="applyButtonActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JSeparator" name="jSeparator5"> + </Component> + </SubComponents> + </Container> + </SubComponents> +</Form> diff --git a/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationCP.java b/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationCP.java new file mode 100644 index 0000000000000000000000000000000000000000..28531f50fc68bee2aef7791f641b5c00b8ff57b4 --- /dev/null +++ b/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationCP.java @@ -0,0 +1,2084 @@ +package cz.fidentis.analyst.registration; + +import cz.fidentis.analyst.gui.canvas.Direction; +import cz.fidentis.analyst.registration.PostRegistrationListener; +import cz.fidentis.analyst.registration.ModelRotationAnimator; +import java.awt.Color; +import javax.swing.JColorChooser; + +/** + * Panel used to interactively visualize two face and adjust their registration. + * + * @author Richard Pajersky + */ +public class PostRegistrationCP extends javax.swing.JPanel { + + /** + * Listener which translates executed actions + * into {@link cz.fidentis.analyst.gui.scene.DrawableMesh} + */ + private PostRegistrationListener listener; + /** + * Animator which animates transformations + */ + private final ModelRotationAnimator animator = new ModelRotationAnimator(); + + /** + * Creates new form {@link PostRegistrationPanel} + * + * @param listener Listener + */ + public void initPostRegistrationCP(PostRegistrationListener listener) { + initComponents(); + this.listener = listener; + setDefaults(); + } + + /** + * Additional initialization of panel + */ + private void setDefaults() { + primaryColorPanel.setBackground(PostRegistrationListener.DEFAULT_PRIMARY_COLOR); + secondaryColorPanel.setBackground(PostRegistrationListener.DEFAULT_SECONDARY_COLOR); + primaryFillRB.setSelected(true); + secondaryFillRB.setSelected(true); + lowShiftRB.setSelected(true); + thersholdFTF.setValue(listener.getFeaturePointsThreshold()); + resetAllButtonActionPerformed(null); + } + + /** + * Alters transformation based on move amount specified in listener + * by updating specific formatted field + * + * @param dir Transformation direction + * @throws UnsupportedOperationException if {@code dir} is invalid + */ + public void transform(Direction dir) { + double newValue; + switch (dir) { + case TRANSLATE_LEFT: + newValue = ((Number)translationXFTF.getValue()).doubleValue() - listener.getMoveModifier(); + translationXFTF.setValue(newValue); + break; + case TRANSLATE_RIGHT: + newValue = ((Number)translationXFTF.getValue()).doubleValue() + listener.getMoveModifier(); + translationXFTF.setValue(newValue); + break; + case TRANSLATE_UP: + newValue = ((Number)translationYFTF.getValue()).doubleValue() - listener.getMoveModifier(); + translationYFTF.setValue(newValue); + break; + case TRANSLATE_DOWN: + newValue = ((Number)translationYFTF.getValue()).doubleValue() + listener.getMoveModifier(); + translationYFTF.setValue(newValue); + break; + case TRANSLATE_IN: + newValue = ((Number)translationZFTF.getValue()).doubleValue() - listener.getMoveModifier(); + translationZFTF.setValue(newValue); + break; + case TRANSLATE_OUT: + newValue = ((Number)translationZFTF.getValue()).doubleValue() + listener.getMoveModifier(); + translationZFTF.setValue(newValue); + break; + case ROTATE_LEFT: + newValue = ((Number)rotationXFTF.getValue()).doubleValue() - listener.getMoveModifier(); + rotationXFTF.setValue(newValue); + break; + case ROTATE_RIGHT: + newValue = ((Number)rotationXFTF.getValue()).doubleValue() + listener.getMoveModifier(); + rotationXFTF.setValue(newValue); + break; + case ROTATE_UP: + newValue = ((Number)rotationYFTF.getValue()).doubleValue() - listener.getMoveModifier(); + rotationYFTF.setValue(newValue); + break; + case ROTATE_DOWN: + newValue = ((Number)rotationYFTF.getValue()).doubleValue() + listener.getMoveModifier(); + rotationYFTF.setValue(newValue); + break; + case ROTATE_IN: + newValue = ((Number)rotationZFTF.getValue()).doubleValue() - listener.getMoveModifier(); + rotationZFTF.setValue(newValue); + break; + case ROTATE_OUT: + newValue = ((Number)rotationZFTF.getValue()).doubleValue() + listener.getMoveModifier(); + rotationZFTF.setValue(newValue); + break; + case ZOOM_OUT: + newValue = ((Number)scaleFTF.getValue()).doubleValue() - listener.getMoveModifier(); + scaleFTF.setValue(newValue); + break; + case ZOOM_IN: + newValue = ((Number)scaleFTF.getValue()).doubleValue() + listener.getMoveModifier(); + scaleFTF.setValue(newValue); + break; + default: + throw new UnsupportedOperationException(); + } + } + + /** + * This method is called from within the constructor to initialize the form. + * WARNING: Do NOT modify this code. The content of this method is always + * regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents + private void initComponents() { + + primaryRenderModeGroup = new javax.swing.ButtonGroup(); + secondaryRenerModeGroup = new javax.swing.ButtonGroup(); + precisionGroup = new javax.swing.ButtonGroup(); + registrationAdjustmentLabel = new javax.swing.JLabel(); + jSeparator11 = new javax.swing.JSeparator(); + visualizationPanel = new javax.swing.JPanel(); + jSeparator8 = new javax.swing.JSeparator(); + jSeparator4 = new javax.swing.JSeparator(); + visualizationLabel = new javax.swing.JLabel(); + jSeparator1 = new javax.swing.JSeparator(); + modelPanel = new javax.swing.JPanel(); + modelLabel = new javax.swing.JLabel(); + pointsLabel = new javax.swing.JLabel(); + transparencyButton = new javax.swing.JButton(); + linesLabel = new javax.swing.JLabel(); + colorButton = new javax.swing.JButton(); + fillLabel = new javax.swing.JLabel(); + renderModeLabel = new javax.swing.JLabel(); + secondaryHighlightsCB = new javax.swing.JCheckBox(); + primaryHighlightsCB = new javax.swing.JCheckBox(); + highlightsLabel = new javax.swing.JLabel(); + primaryLabel = new javax.swing.JLabel(); + secondaryLabel = new javax.swing.JLabel(); + transparencySlider = new javax.swing.JSlider(); + secondaryColorPanel = new javax.swing.JPanel(); + primaryColorPanel = new javax.swing.JPanel(); + primaryLinesRB = new javax.swing.JRadioButton(); + secondaryFillRB = new javax.swing.JRadioButton(); + primaryPointsRB = new javax.swing.JRadioButton(); + secondaryPointsRB = new javax.swing.JRadioButton(); + secondaryLinesRB = new javax.swing.JRadioButton(); + primaryFillRB = new javax.swing.JRadioButton(); + viewPanel = new javax.swing.JPanel(); + profileButton = new javax.swing.JButton(); + frontButton = new javax.swing.JButton(); + viewLabel = new javax.swing.JLabel(); + backfaceButton = new javax.swing.JToggleButton(); + featurePointsPanel = new javax.swing.JPanel(); + featurePointsButton = new javax.swing.JToggleButton(); + thresholdDownButton = new javax.swing.JButton(); + thersholdUpButton = new javax.swing.JButton(); + thersholdButton = new javax.swing.JButton(); + thersholdFTF = new javax.swing.JFormattedTextField(); + featurePointsLabel = new javax.swing.JLabel(); + jSeparator3 = new javax.swing.JSeparator(); + transformationPanel = new javax.swing.JPanel(); + transformationLabel = new javax.swing.JLabel(); + jSeparator2 = new javax.swing.JSeparator(); + jSeparator6 = new javax.swing.JSeparator(); + translationPanel = new javax.swing.JPanel(); + translationButton = new javax.swing.JButton(); + jLabel2 = new javax.swing.JLabel(); + rightTranslationXButton = new javax.swing.JButton(); + translationXFTF = new javax.swing.JFormattedTextField(); + leftTranslationYButton = new javax.swing.JButton(); + translationYFTF = new javax.swing.JFormattedTextField(); + rightTranslationYButton = new javax.swing.JButton(); + translXLabel = new javax.swing.JLabel(); + translationZFTF = new javax.swing.JFormattedTextField(); + translZLabel = new javax.swing.JLabel(); + translYLabel = new javax.swing.JLabel(); + rightTranslationZButton = new javax.swing.JButton(); + leftTranslationXButton = new javax.swing.JButton(); + leftTranslationZButton = new javax.swing.JButton(); + rotationPanel = new javax.swing.JPanel(); + leftRotationYButton = new javax.swing.JButton(); + leftRotationXButton = new javax.swing.JButton(); + rotatZLabel = new javax.swing.JLabel(); + rotatYLabel = new javax.swing.JLabel(); + rotatXLabel = new javax.swing.JLabel(); + rotationButton = new javax.swing.JButton(); + rotationZFTF = new javax.swing.JFormattedTextField(); + rotationYFTF = new javax.swing.JFormattedTextField(); + rightRotationZButton = new javax.swing.JButton(); + rightRotationYButton = new javax.swing.JButton(); + leftRotationZButton = new javax.swing.JButton(); + rightRotationXButton = new javax.swing.JButton(); + rotationXFTF = new javax.swing.JFormattedTextField(); + jLabel3 = new javax.swing.JLabel(); + scalePanel = new javax.swing.JPanel(); + jLabel4 = new javax.swing.JLabel(); + scalePlusButton = new javax.swing.JButton(); + scaleMinusButton = new javax.swing.JButton(); + scaleFTF = new javax.swing.JFormattedTextField(); + scaleButton = new javax.swing.JButton(); + resetAllButton = new javax.swing.JButton(); + jSeparator7 = new javax.swing.JSeparator(); + jSeparator9 = new javax.swing.JSeparator(); + shiftPanel = new javax.swing.JPanel(); + shiftLabel = new javax.swing.JLabel(); + lowShiftRB = new javax.swing.JRadioButton(); + highShiftRB = new javax.swing.JRadioButton(); + jSeparator10 = new javax.swing.JSeparator(); + applyButton = new javax.swing.JButton(); + jSeparator5 = new javax.swing.JSeparator(); + + setBackground(new java.awt.Color(176, 230, 226)); + setPreferredSize(new java.awt.Dimension(400, 630)); + + registrationAdjustmentLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(registrationAdjustmentLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.registrationAdjustmentLabel.text")); // NOI18N + + visualizationPanel.setBackground(new java.awt.Color(176, 230, 226)); + + visualizationLabel.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(visualizationLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.visualizationLabel.text")); // NOI18N + + modelPanel.setBackground(new java.awt.Color(176, 230, 226)); + + modelLabel.setFont(new java.awt.Font("Tahoma", 3, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(modelLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.modelLabel.text")); // NOI18N + + org.openide.awt.Mnemonics.setLocalizedText(pointsLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.pointsLabel.text")); // NOI18N + + transparencyButton.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(transparencyButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.transparencyButton.text")); // NOI18N + transparencyButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.transparencyButton.toolTipText")); // NOI18N + transparencyButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + transparencyButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + transparencyButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + transparencyButtonActionPerformed(evt); + } + }); + + org.openide.awt.Mnemonics.setLocalizedText(linesLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.linesLabel.text")); // NOI18N + + colorButton.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(colorButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.colorButton.text")); // NOI18N + colorButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.colorButton.toolTipText")); // NOI18N + colorButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + colorButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + colorButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + colorButton.setIconTextGap(0); + colorButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + colorButtonActionPerformed(evt); + } + }); + + org.openide.awt.Mnemonics.setLocalizedText(fillLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.fillLabel.text")); // NOI18N + + renderModeLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(renderModeLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.renderModeLabel.text")); // NOI18N + + org.openide.awt.Mnemonics.setLocalizedText(secondaryHighlightsCB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryHighlightsCB.text")); // NOI18N + secondaryHighlightsCB.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + secondaryHighlightsCBActionPerformed(evt); + } + }); + + org.openide.awt.Mnemonics.setLocalizedText(primaryHighlightsCB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryHighlightsCB.text")); // NOI18N + primaryHighlightsCB.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + primaryHighlightsCBActionPerformed(evt); + } + }); + + highlightsLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(highlightsLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.highlightsLabel.text")); // NOI18N + + primaryLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(primaryLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryLabel.text")); // NOI18N + + secondaryLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(secondaryLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryLabel.text")); // NOI18N + secondaryLabel.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryLabel.toolTipText")); // NOI18N + + transparencySlider.setMajorTickSpacing(5); + transparencySlider.setMaximum(20); + transparencySlider.setMinorTickSpacing(5); + transparencySlider.setOrientation(javax.swing.JSlider.VERTICAL); + transparencySlider.setPaintTicks(true); + transparencySlider.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.transparencySlider.toolTipText")); // NOI18N + transparencySlider.setValue(10); + transparencySlider.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); + transparencySlider.addChangeListener(new javax.swing.event.ChangeListener() { + public void stateChanged(javax.swing.event.ChangeEvent evt) { + transparencySliderStateChanged(evt); + } + }); + + secondaryColorPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); + secondaryColorPanel.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryColorPanel.toolTipText")); // NOI18N + secondaryColorPanel.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); + secondaryColorPanel.setPreferredSize(new java.awt.Dimension(70, 14)); + secondaryColorPanel.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseClicked(java.awt.event.MouseEvent evt) { + secondaryColorPanelMouseClicked(evt); + } + }); + + javax.swing.GroupLayout secondaryColorPanelLayout = new javax.swing.GroupLayout(secondaryColorPanel); + secondaryColorPanel.setLayout(secondaryColorPanelLayout); + secondaryColorPanelLayout.setHorizontalGroup( + secondaryColorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 48, Short.MAX_VALUE) + ); + secondaryColorPanelLayout.setVerticalGroup( + secondaryColorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 12, Short.MAX_VALUE) + ); + + primaryColorPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); + primaryColorPanel.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryColorPanel.toolTipText")); // NOI18N + primaryColorPanel.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); + primaryColorPanel.setPreferredSize(new java.awt.Dimension(72, 14)); + primaryColorPanel.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseClicked(java.awt.event.MouseEvent evt) { + primaryColorPanelMouseClicked(evt); + } + }); + + javax.swing.GroupLayout primaryColorPanelLayout = new javax.swing.GroupLayout(primaryColorPanel); + primaryColorPanel.setLayout(primaryColorPanelLayout); + primaryColorPanelLayout.setHorizontalGroup( + primaryColorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 48, Short.MAX_VALUE) + ); + primaryColorPanelLayout.setVerticalGroup( + primaryColorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 12, Short.MAX_VALUE) + ); + + primaryRenderModeGroup.add(primaryLinesRB); + org.openide.awt.Mnemonics.setLocalizedText(primaryLinesRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryLinesRB.text")); // NOI18N + primaryLinesRB.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + primaryLinesRBActionPerformed(evt); + } + }); + + secondaryRenerModeGroup.add(secondaryFillRB); + org.openide.awt.Mnemonics.setLocalizedText(secondaryFillRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryFillRB.text")); // NOI18N + secondaryFillRB.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + secondaryFillRBActionPerformed(evt); + } + }); + + primaryRenderModeGroup.add(primaryPointsRB); + org.openide.awt.Mnemonics.setLocalizedText(primaryPointsRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryPointsRB.text")); // NOI18N + primaryPointsRB.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + primaryPointsRBActionPerformed(evt); + } + }); + + secondaryRenerModeGroup.add(secondaryPointsRB); + org.openide.awt.Mnemonics.setLocalizedText(secondaryPointsRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryPointsRB.text")); // NOI18N + secondaryPointsRB.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + secondaryPointsRBActionPerformed(evt); + } + }); + + secondaryRenerModeGroup.add(secondaryLinesRB); + org.openide.awt.Mnemonics.setLocalizedText(secondaryLinesRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.secondaryLinesRB.text")); // NOI18N + secondaryLinesRB.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + secondaryLinesRBActionPerformed(evt); + } + }); + + primaryRenderModeGroup.add(primaryFillRB); + org.openide.awt.Mnemonics.setLocalizedText(primaryFillRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.primaryFillRB.text")); // NOI18N + primaryFillRB.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + primaryFillRBActionPerformed(evt); + } + }); + + javax.swing.GroupLayout modelPanelLayout = new javax.swing.GroupLayout(modelPanel); + modelPanel.setLayout(modelPanelLayout); + modelPanelLayout.setHorizontalGroup( + modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(modelPanelLayout.createSequentialGroup() + .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(primaryLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 58, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(modelLabel) + .addComponent(secondaryLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGap(18, 18, 18) + .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(modelPanelLayout.createSequentialGroup() + .addComponent(colorButton, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(highlightsLabel) + .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(modelPanelLayout.createSequentialGroup() + .addGap(41, 41, 41) + .addComponent(linesLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(pointsLabel)) + .addGroup(modelPanelLayout.createSequentialGroup() + .addGap(18, 18, 18) + .addComponent(renderModeLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 21, Short.MAX_VALUE) + .addComponent(transparencyButton, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addGroup(modelPanelLayout.createSequentialGroup() + .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(primaryColorPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(secondaryColorPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(18, 18, 18) + .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(primaryHighlightsCB) + .addComponent(secondaryHighlightsCB)) + .addGap(28, 28, 28) + .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(modelPanelLayout.createSequentialGroup() + .addComponent(secondaryFillRB) + .addGap(18, 18, 18) + .addComponent(secondaryLinesRB) + .addGap(18, 18, 18) + .addComponent(secondaryPointsRB)) + .addGroup(modelPanelLayout.createSequentialGroup() + .addComponent(primaryFillRB) + .addGap(18, 18, 18) + .addComponent(primaryLinesRB) + .addGap(18, 18, 18) + .addComponent(primaryPointsRB)) + .addComponent(fillLabel)) + .addGap(25, 25, 25) + .addComponent(transparencySlider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addContainerGap()) + ); + modelPanelLayout.setVerticalGroup( + modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(modelPanelLayout.createSequentialGroup() + .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(modelLabel) + .addGroup(modelPanelLayout.createSequentialGroup() + .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(highlightsLabel) + .addComponent(renderModeLabel) + .addComponent(transparencyButton) + .addComponent(colorButton)) + .addGap(4, 4, 4) + .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(fillLabel) + .addComponent(linesLabel) + .addComponent(pointsLabel)))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, modelPanelLayout.createSequentialGroup() + .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(primaryLabel) + .addComponent(primaryHighlightsCB)) + .addGap(11, 11, 11) + .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(secondaryLabel, javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(secondaryHighlightsCB, javax.swing.GroupLayout.Alignment.TRAILING))) + .addGroup(modelPanelLayout.createSequentialGroup() + .addComponent(primaryColorPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(secondaryColorPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, modelPanelLayout.createSequentialGroup() + .addComponent(primaryFillRB) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(secondaryFillRB)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, modelPanelLayout.createSequentialGroup() + .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(primaryLinesRB) + .addComponent(primaryPointsRB)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(modelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(secondaryLinesRB, javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(secondaryPointsRB, javax.swing.GroupLayout.Alignment.TRAILING))) + .addComponent(transparencySlider, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)))) + ); + + viewPanel.setBackground(new java.awt.Color(176, 230, 226)); + + org.openide.awt.Mnemonics.setLocalizedText(profileButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.profileButton.text")); // NOI18N + profileButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.profileButton.toolTipText")); // NOI18N + profileButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + profileButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + profileButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + profileButtonActionPerformed(evt); + } + }); + + org.openide.awt.Mnemonics.setLocalizedText(frontButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.frontButton.text")); // NOI18N + frontButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.frontButton.toolTipText")); // NOI18N + frontButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + frontButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + frontButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + frontButtonActionPerformed(evt); + } + }); + + viewLabel.setFont(new java.awt.Font("Tahoma", 3, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(viewLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.viewLabel.text")); // NOI18N + + org.openide.awt.Mnemonics.setLocalizedText(backfaceButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.backfaceButton.text")); // NOI18N + backfaceButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + backfaceButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + backfaceButtonActionPerformed(evt); + } + }); + + javax.swing.GroupLayout viewPanelLayout = new javax.swing.GroupLayout(viewPanel); + viewPanel.setLayout(viewPanelLayout); + viewPanelLayout.setHorizontalGroup( + viewPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(viewPanelLayout.createSequentialGroup() + .addComponent(viewLabel) + .addGap(18, 18, 18) + .addComponent(frontButton, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addComponent(profileButton, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addComponent(backfaceButton, javax.swing.GroupLayout.PREFERRED_SIZE, 79, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + viewPanelLayout.setVerticalGroup( + viewPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(viewPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(viewLabel) + .addComponent(frontButton) + .addComponent(profileButton) + .addComponent(backfaceButton)) + ); + + featurePointsPanel.setBackground(new java.awt.Color(176, 230, 226)); + + org.openide.awt.Mnemonics.setLocalizedText(featurePointsButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.featurePointsButton.text")); // NOI18N + featurePointsButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + featurePointsButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + featurePointsButtonActionPerformed(evt); + } + }); + + thresholdDownButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/subtract-line.png"))); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(thresholdDownButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.thresholdDownButton.text")); // NOI18N + thresholdDownButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + thresholdDownButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + thresholdDownButton.setEnabled(false); + thresholdDownButton.setMaximumSize(new java.awt.Dimension(24, 24)); + thresholdDownButton.setMinimumSize(new java.awt.Dimension(24, 24)); + thresholdDownButton.setPreferredSize(new java.awt.Dimension(24, 24)); + thresholdDownButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + thresholdDownButtonActionPerformed(evt); + } + }); + + thersholdUpButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/add-line.png"))); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(thersholdUpButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.thersholdUpButton.text")); // NOI18N + thersholdUpButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + thersholdUpButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + thersholdUpButton.setEnabled(false); + thersholdUpButton.setMaximumSize(new java.awt.Dimension(24, 24)); + thersholdUpButton.setMinimumSize(new java.awt.Dimension(24, 24)); + thersholdUpButton.setPreferredSize(new java.awt.Dimension(24, 24)); + thersholdUpButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + thersholdUpButtonActionPerformed(evt); + } + }); + + thersholdButton.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(thersholdButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.thersholdButton.text")); // NOI18N + thersholdButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + thersholdButton.setEnabled(false); + thersholdButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + thersholdButtonActionPerformed(evt); + } + }); + + thersholdFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter())); + thersholdFTF.setEnabled(false); + thersholdFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() { + public void propertyChange(java.beans.PropertyChangeEvent evt) { + thersholdFTFPropertyChange(evt); + } + }); + + featurePointsLabel.setFont(new java.awt.Font("Tahoma", 3, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(featurePointsLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.featurePointsLabel.text")); // NOI18N + + javax.swing.GroupLayout featurePointsPanelLayout = new javax.swing.GroupLayout(featurePointsPanel); + featurePointsPanel.setLayout(featurePointsPanelLayout); + featurePointsPanelLayout.setHorizontalGroup( + featurePointsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(featurePointsPanelLayout.createSequentialGroup() + .addComponent(featurePointsLabel) + .addGap(18, 18, 18) + .addComponent(featurePointsButton, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addComponent(thersholdButton) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(thersholdFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(thersholdUpButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(thresholdDownButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + ); + featurePointsPanelLayout.setVerticalGroup( + featurePointsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(featurePointsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(featurePointsLabel) + .addComponent(featurePointsButton) + .addComponent(thersholdButton) + .addComponent(thersholdFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(thersholdUpButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(thresholdDownButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + ); + + javax.swing.GroupLayout visualizationPanelLayout = new javax.swing.GroupLayout(visualizationPanel); + visualizationPanel.setLayout(visualizationPanelLayout); + visualizationPanelLayout.setHorizontalGroup( + visualizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(visualizationPanelLayout.createSequentialGroup() + .addContainerGap() + .addGroup(visualizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(jSeparator1) + .addComponent(jSeparator4) + .addComponent(jSeparator8) + .addComponent(visualizationLabel) + .addComponent(modelPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(featurePointsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(viewPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(jSeparator3) + ); + visualizationPanelLayout.setVerticalGroup( + visualizationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, visualizationPanelLayout.createSequentialGroup() + .addComponent(visualizationLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jSeparator4, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(modelPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jSeparator8, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(viewPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(featurePointsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(19, 19, 19)) + ); + + transformationPanel.setBackground(new java.awt.Color(176, 230, 226)); + transformationPanel.setPreferredSize(new java.awt.Dimension(400, 400)); + + transformationLabel.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(transformationLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.transformationLabel.text")); // NOI18N + + translationPanel.setBackground(new java.awt.Color(176, 230, 226)); + + translationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/restart-line.png"))); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(translationButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translationButton.text")); // NOI18N + translationButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translationButton.toolTipText")); // NOI18N + translationButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + translationButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + translationButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); + translationButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + translationButtonActionPerformed(evt); + } + }); + + jLabel2.setFont(new java.awt.Font("Tahoma", 3, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(jLabel2, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.jLabel2.text")); // NOI18N + + rightTranslationXButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-right-s-line.png"))); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(rightTranslationXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightTranslationXButton.text")); // NOI18N + rightTranslationXButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + rightTranslationXButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + rightTranslationXButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); + rightTranslationXButton.setMaximumSize(new java.awt.Dimension(24, 24)); + rightTranslationXButton.setMinimumSize(new java.awt.Dimension(24, 24)); + rightTranslationXButton.setPreferredSize(new java.awt.Dimension(24, 24)); + rightTranslationXButton.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + rightTranslationXButtonMousePressed(evt); + } + public void mouseReleased(java.awt.event.MouseEvent evt) { + rightTranslationXButtonMouseReleased(evt); + } + }); + + translationXFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter())); + translationXFTF.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translationXFTF.toolTipText")); // NOI18N + translationXFTF.setCursor(new java.awt.Cursor(java.awt.Cursor.TEXT_CURSOR)); + translationXFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() { + public void propertyChange(java.beans.PropertyChangeEvent evt) { + translationXFTFPropertyChange(evt); + } + }); + + leftTranslationYButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-left-s-line.png"))); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(leftTranslationYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftTranslationYButton.text")); // NOI18N + leftTranslationYButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + leftTranslationYButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + leftTranslationYButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); + leftTranslationYButton.setPreferredSize(new java.awt.Dimension(24, 24)); + leftTranslationYButton.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + leftTranslationYButtonMousePressed(evt); + } + public void mouseReleased(java.awt.event.MouseEvent evt) { + leftTranslationYButtonMouseReleased(evt); + } + }); + + translationYFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter())); + translationYFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() { + public void propertyChange(java.beans.PropertyChangeEvent evt) { + translationYFTFPropertyChange(evt); + } + }); + + rightTranslationYButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-right-s-line.png"))); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(rightTranslationYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightTranslationYButton.text")); // NOI18N + rightTranslationYButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + rightTranslationYButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + rightTranslationYButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); + rightTranslationYButton.setPreferredSize(new java.awt.Dimension(24, 24)); + rightTranslationYButton.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + rightTranslationYButtonMousePressed(evt); + } + public void mouseReleased(java.awt.event.MouseEvent evt) { + rightTranslationYButtonMouseReleased(evt); + } + }); + + translXLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(translXLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translXLabel.text")); // NOI18N + + translationZFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter())); + translationZFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() { + public void propertyChange(java.beans.PropertyChangeEvent evt) { + translationZFTFPropertyChange(evt); + } + }); + + translZLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(translZLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translZLabel.text")); // NOI18N + + translYLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(translYLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.translYLabel.text")); // NOI18N + + rightTranslationZButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-right-s-line.png"))); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(rightTranslationZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightTranslationZButton.text")); // NOI18N + rightTranslationZButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + rightTranslationZButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + rightTranslationZButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); + rightTranslationZButton.setPreferredSize(new java.awt.Dimension(24, 24)); + rightTranslationZButton.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + rightTranslationZButtonMousePressed(evt); + } + public void mouseReleased(java.awt.event.MouseEvent evt) { + rightTranslationZButtonMouseReleased(evt); + } + }); + + leftTranslationXButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-left-s-line.png"))); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(leftTranslationXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftTranslationXButton.text")); // NOI18N + leftTranslationXButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + leftTranslationXButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + leftTranslationXButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); + leftTranslationXButton.setMaximumSize(new java.awt.Dimension(24, 24)); + leftTranslationXButton.setMinimumSize(new java.awt.Dimension(24, 24)); + leftTranslationXButton.setPreferredSize(new java.awt.Dimension(24, 24)); + leftTranslationXButton.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + leftTranslationXButtonMousePressed(evt); + } + public void mouseReleased(java.awt.event.MouseEvent evt) { + leftTranslationXButtonMouseReleased(evt); + } + }); + + leftTranslationZButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-left-s-line.png"))); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(leftTranslationZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftTranslationZButton.text")); // NOI18N + leftTranslationZButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + leftTranslationZButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + leftTranslationZButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); + leftTranslationZButton.setPreferredSize(new java.awt.Dimension(24, 24)); + leftTranslationZButton.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + leftTranslationZButtonMousePressed(evt); + } + public void mouseReleased(java.awt.event.MouseEvent evt) { + leftTranslationZButtonMouseReleased(evt); + } + }); + + javax.swing.GroupLayout translationPanelLayout = new javax.swing.GroupLayout(translationPanel); + translationPanel.setLayout(translationPanelLayout); + translationPanelLayout.setHorizontalGroup( + translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(translationPanelLayout.createSequentialGroup() + .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(translationPanelLayout.createSequentialGroup() + .addComponent(jLabel2) + .addGap(28, 28, 28)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, translationPanelLayout.createSequentialGroup() + .addComponent(translationButton) + .addGap(18, 18, 18))) + .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(translXLabel) + .addComponent(translationXFTF) + .addGroup(translationPanelLayout.createSequentialGroup() + .addComponent(leftTranslationXButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(rightTranslationXButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addGap(18, 18, 18) + .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(translationPanelLayout.createSequentialGroup() + .addComponent(leftTranslationYButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(rightTranslationYButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(translYLabel) + .addComponent(translationYFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 54, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(18, 18, 18) + .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(translationPanelLayout.createSequentialGroup() + .addComponent(leftTranslationZButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(rightTranslationZButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(translationZFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 54, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(translZLabel)) + .addContainerGap(14, Short.MAX_VALUE)) + ); + translationPanelLayout.setVerticalGroup( + translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(translationPanelLayout.createSequentialGroup() + .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(translXLabel) + .addComponent(translYLabel) + .addComponent(translZLabel)) + .addComponent(jLabel2)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(translationPanelLayout.createSequentialGroup() + .addComponent(rightTranslationZButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(0, 0, Short.MAX_VALUE)) + .addGroup(translationPanelLayout.createSequentialGroup() + .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(leftTranslationYButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(rightTranslationYButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(translationPanelLayout.createSequentialGroup() + .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(rightTranslationXButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(leftTranslationXButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(translationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(translationXFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(translationYFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(translationZFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addComponent(translationButton)) + .addComponent(leftTranslationZButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) + ); + + rotationPanel.setBackground(new java.awt.Color(176, 230, 226)); + + leftRotationYButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-left-s-line.png"))); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(leftRotationYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftRotationYButton.text")); // NOI18N + leftRotationYButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + leftRotationYButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + leftRotationYButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); + leftRotationYButton.setMaximumSize(new java.awt.Dimension(24, 24)); + leftRotationYButton.setMinimumSize(new java.awt.Dimension(24, 24)); + leftRotationYButton.setPreferredSize(new java.awt.Dimension(24, 24)); + leftRotationYButton.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + leftRotationYButtonMousePressed(evt); + } + public void mouseReleased(java.awt.event.MouseEvent evt) { + leftRotationYButtonMouseReleased(evt); + } + }); + + leftRotationXButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-left-s-line.png"))); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(leftRotationXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftRotationXButton.text")); // NOI18N + leftRotationXButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + leftRotationXButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + leftRotationXButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); + leftRotationXButton.setPreferredSize(new java.awt.Dimension(24, 24)); + leftRotationXButton.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + leftRotationXButtonMousePressed(evt); + } + public void mouseReleased(java.awt.event.MouseEvent evt) { + leftRotationXButtonMouseReleased(evt); + } + }); + + rotatZLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(rotatZLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotatZLabel.text")); // NOI18N + + rotatYLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(rotatYLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotatYLabel.text")); // NOI18N + + rotatXLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(rotatXLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotatXLabel.text")); // NOI18N + + rotationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/restart-line.png"))); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(rotationButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotationButton.text")); // NOI18N + rotationButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotationButton.toolTipText")); // NOI18N + rotationButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + rotationButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + rotationButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); + rotationButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + rotationButtonActionPerformed(evt); + } + }); + + rotationZFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter())); + rotationZFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() { + public void propertyChange(java.beans.PropertyChangeEvent evt) { + rotationZFTFPropertyChange(evt); + } + }); + + rotationYFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter())); + rotationYFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() { + public void propertyChange(java.beans.PropertyChangeEvent evt) { + rotationYFTFPropertyChange(evt); + } + }); + + rightRotationZButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-right-s-line.png"))); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(rightRotationZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightRotationZButton.text")); // NOI18N + rightRotationZButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + rightRotationZButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + rightRotationZButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); + rightRotationZButton.setMaximumSize(new java.awt.Dimension(24, 24)); + rightRotationZButton.setMinimumSize(new java.awt.Dimension(24, 24)); + rightRotationZButton.setPreferredSize(new java.awt.Dimension(24, 24)); + rightRotationZButton.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + rightRotationZButtonMousePressed(evt); + } + public void mouseReleased(java.awt.event.MouseEvent evt) { + rightRotationZButtonMouseReleased(evt); + } + }); + + rightRotationYButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-right-s-line.png"))); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(rightRotationYButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightRotationYButton.text")); // NOI18N + rightRotationYButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + rightRotationYButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + rightRotationYButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); + rightRotationYButton.setMaximumSize(new java.awt.Dimension(24, 24)); + rightRotationYButton.setMinimumSize(new java.awt.Dimension(24, 24)); + rightRotationYButton.setPreferredSize(new java.awt.Dimension(24, 24)); + rightRotationYButton.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + rightRotationYButtonMousePressed(evt); + } + public void mouseReleased(java.awt.event.MouseEvent evt) { + rightRotationYButtonMouseReleased(evt); + } + }); + + leftRotationZButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-left-s-line.png"))); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(leftRotationZButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.leftRotationZButton.text")); // NOI18N + leftRotationZButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + leftRotationZButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + leftRotationZButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); + leftRotationZButton.setMaximumSize(new java.awt.Dimension(24, 24)); + leftRotationZButton.setMinimumSize(new java.awt.Dimension(24, 24)); + leftRotationZButton.setPreferredSize(new java.awt.Dimension(24, 24)); + leftRotationZButton.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + leftRotationZButtonMousePressed(evt); + } + public void mouseReleased(java.awt.event.MouseEvent evt) { + leftRotationZButtonMouseReleased(evt); + } + }); + + rightRotationXButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/arrow-right-s-line.png"))); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(rightRotationXButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rightRotationXButton.text")); // NOI18N + rightRotationXButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + rightRotationXButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + rightRotationXButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); + rightRotationXButton.setMaximumSize(new java.awt.Dimension(24, 24)); + rightRotationXButton.setMinimumSize(new java.awt.Dimension(24, 24)); + rightRotationXButton.setPreferredSize(new java.awt.Dimension(24, 24)); + rightRotationXButton.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + rightRotationXButtonMousePressed(evt); + } + public void mouseReleased(java.awt.event.MouseEvent evt) { + rightRotationXButtonMouseReleased(evt); + } + }); + + rotationXFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter())); + rotationXFTF.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.rotationXFTF.toolTipText")); // NOI18N + rotationXFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() { + public void propertyChange(java.beans.PropertyChangeEvent evt) { + rotationXFTFPropertyChange(evt); + } + }); + + jLabel3.setFont(new java.awt.Font("Tahoma", 3, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(jLabel3, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.jLabel3.text")); // NOI18N + + javax.swing.GroupLayout rotationPanelLayout = new javax.swing.GroupLayout(rotationPanel); + rotationPanel.setLayout(rotationPanelLayout); + rotationPanelLayout.setHorizontalGroup( + rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(rotationPanelLayout.createSequentialGroup() + .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(rotationPanelLayout.createSequentialGroup() + .addGap(48, 48, 48) + .addComponent(rotationButton)) + .addComponent(jLabel3)) + .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(rotationPanelLayout.createSequentialGroup() + .addGap(18, 18, 18) + .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(rotatXLabel) + .addGroup(rotationPanelLayout.createSequentialGroup() + .addComponent(leftRotationXButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(rightRotationXButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, rotationPanelLayout.createSequentialGroup() + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(rotationXFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 54, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addGap(21, 21, 21) + .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(rotationPanelLayout.createSequentialGroup() + .addComponent(leftRotationYButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(rightRotationYButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(rotationYFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 54, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(rotatYLabel)) + .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(rotationPanelLayout.createSequentialGroup() + .addGap(22, 22, 22) + .addComponent(rotatZLabel)) + .addGroup(rotationPanelLayout.createSequentialGroup() + .addGap(18, 18, 18) + .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(rotationZFTF, javax.swing.GroupLayout.PREFERRED_SIZE, 54, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(rotationPanelLayout.createSequentialGroup() + .addComponent(leftRotationZButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(rightRotationZButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + rotationPanelLayout.setVerticalGroup( + rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(rotationPanelLayout.createSequentialGroup() + .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(rotatXLabel) + .addComponent(jLabel3)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(rotatYLabel) + .addComponent(rotatZLabel))) + .addGap(6, 6, 6) + .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(rotationButton) + .addGroup(rotationPanelLayout.createSequentialGroup() + .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(rightRotationYButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(leftRotationYButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(leftRotationXButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(rightRotationXButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(leftRotationZButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(rightRotationZButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(rotationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(rotationYFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(rotationXFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(rotationZFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + + scalePanel.setBackground(new java.awt.Color(176, 230, 226)); + + jLabel4.setFont(new java.awt.Font("Tahoma", 3, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(jLabel4, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.jLabel4.text")); // NOI18N + + scalePlusButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/add-line.png"))); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(scalePlusButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scalePlusButton.text")); // NOI18N + scalePlusButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + scalePlusButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + scalePlusButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); + scalePlusButton.setMaximumSize(new java.awt.Dimension(24, 24)); + scalePlusButton.setMinimumSize(new java.awt.Dimension(24, 24)); + scalePlusButton.setPreferredSize(new java.awt.Dimension(24, 24)); + scalePlusButton.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + scalePlusButtonMousePressed(evt); + } + public void mouseReleased(java.awt.event.MouseEvent evt) { + scalePlusButtonMouseReleased(evt); + } + }); + + scaleMinusButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/subtract-line.png"))); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(scaleMinusButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scaleMinusButton.text")); // NOI18N + scaleMinusButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + scaleMinusButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + scaleMinusButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); + scaleMinusButton.setMaximumSize(new java.awt.Dimension(24, 24)); + scaleMinusButton.setMinimumSize(new java.awt.Dimension(24, 24)); + scaleMinusButton.setPreferredSize(new java.awt.Dimension(24, 24)); + scaleMinusButton.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + scaleMinusButtonMousePressed(evt); + } + public void mouseReleased(java.awt.event.MouseEvent evt) { + scaleMinusButtonMouseReleased(evt); + } + }); + + scaleFTF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter())); + scaleFTF.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scaleFTF.toolTipText")); // NOI18N + scaleFTF.addPropertyChangeListener(new java.beans.PropertyChangeListener() { + public void propertyChange(java.beans.PropertyChangeEvent evt) { + scaleFTFPropertyChange(evt); + } + }); + + scaleButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/restart-line.png"))); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(scaleButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scaleButton.text")); // NOI18N + scaleButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.scaleButton.toolTipText")); // NOI18N + scaleButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + scaleButton.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + scaleButton.setMargin(new java.awt.Insets(2, 2, 2, 2)); + scaleButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + scaleButtonActionPerformed(evt); + } + }); + + javax.swing.GroupLayout scalePanelLayout = new javax.swing.GroupLayout(scalePanel); + scalePanel.setLayout(scalePanelLayout); + scalePanelLayout.setHorizontalGroup( + scalePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, scalePanelLayout.createSequentialGroup() + .addGroup(scalePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(scalePanelLayout.createSequentialGroup() + .addComponent(jLabel4) + .addGap(0, 42, Short.MAX_VALUE)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, scalePanelLayout.createSequentialGroup() + .addGap(0, 0, Short.MAX_VALUE) + .addComponent(scaleButton))) + .addGap(18, 18, 18) + .addGroup(scalePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, scalePanelLayout.createSequentialGroup() + .addComponent(scalePlusButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(scaleMinusButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(scaleFTF, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 54, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap()) + ); + scalePanelLayout.setVerticalGroup( + scalePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(scalePanelLayout.createSequentialGroup() + .addGap(1, 1, 1) + .addComponent(jLabel4) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(scaleButton)) + .addGroup(scalePanelLayout.createSequentialGroup() + .addContainerGap() + .addGroup(scalePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(scaleMinusButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(scalePlusButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(scaleFTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + ); + + resetAllButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/refresh-line.png"))); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(resetAllButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.resetAllButton.text")); // NOI18N + resetAllButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.resetAllButton.toolTipText")); // NOI18N + resetAllButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + resetAllButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + resetAllButtonActionPerformed(evt); + } + }); + + jSeparator9.setOrientation(javax.swing.SwingConstants.VERTICAL); + + shiftPanel.setBackground(new java.awt.Color(176, 230, 226)); + + shiftLabel.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(shiftLabel, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.shiftLabel.text")); // NOI18N + shiftLabel.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.shiftLabel.toolTipText")); // NOI18N + + precisionGroup.add(lowShiftRB); + org.openide.awt.Mnemonics.setLocalizedText(lowShiftRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.lowShiftRB.text")); // NOI18N + lowShiftRB.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.lowShiftRB.toolTipText")); // NOI18N + lowShiftRB.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + lowShiftRBActionPerformed(evt); + } + }); + + precisionGroup.add(highShiftRB); + org.openide.awt.Mnemonics.setLocalizedText(highShiftRB, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.highShiftRB.text")); // NOI18N + highShiftRB.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.highShiftRB.toolTipText")); // NOI18N + highShiftRB.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + highShiftRBActionPerformed(evt); + } + }); + + javax.swing.GroupLayout shiftPanelLayout = new javax.swing.GroupLayout(shiftPanel); + shiftPanel.setLayout(shiftPanelLayout); + shiftPanelLayout.setHorizontalGroup( + shiftPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(shiftPanelLayout.createSequentialGroup() + .addGroup(shiftPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(lowShiftRB) + .addComponent(highShiftRB)) + .addGap(0, 8, Short.MAX_VALUE)) + .addGroup(shiftPanelLayout.createSequentialGroup() + .addContainerGap() + .addComponent(shiftLabel) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + shiftPanelLayout.setVerticalGroup( + shiftPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(shiftPanelLayout.createSequentialGroup() + .addComponent(shiftLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(lowShiftRB) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(highShiftRB) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + + jSeparator10.setOrientation(javax.swing.SwingConstants.VERTICAL); + + org.openide.awt.Mnemonics.setLocalizedText(applyButton, org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.applyButton.text")); // NOI18N + applyButton.setToolTipText(org.openide.util.NbBundle.getMessage(PostRegistrationCP.class, "PostRegistrationCP.applyButton.toolTipText")); // NOI18N + applyButton.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + applyButton.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); + applyButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + applyButtonActionPerformed(evt); + } + }); + + javax.swing.GroupLayout transformationPanelLayout = new javax.swing.GroupLayout(transformationPanel); + transformationPanel.setLayout(transformationPanelLayout); + transformationPanelLayout.setHorizontalGroup( + transformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(transformationPanelLayout.createSequentialGroup() + .addContainerGap() + .addGroup(transformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(rotationPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(transformationPanelLayout.createSequentialGroup() + .addGroup(transformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(transformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(transformationLabel) + .addComponent(jSeparator6, javax.swing.GroupLayout.DEFAULT_SIZE, 371, Short.MAX_VALUE) + .addComponent(jSeparator2)) + .addComponent(translationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jSeparator7, javax.swing.GroupLayout.PREFERRED_SIZE, 371, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(transformationPanelLayout.createSequentialGroup() + .addComponent(scalePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jSeparator9, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addComponent(shiftPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jSeparator10, javax.swing.GroupLayout.PREFERRED_SIZE, 15, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(transformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(resetAllButton, javax.swing.GroupLayout.PREFERRED_SIZE, 83, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(applyButton, javax.swing.GroupLayout.PREFERRED_SIZE, 83, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addGap(0, 5, Short.MAX_VALUE))) + .addContainerGap()) + .addComponent(jSeparator5, javax.swing.GroupLayout.Alignment.TRAILING) + ); + transformationPanelLayout.setVerticalGroup( + transformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(transformationPanelLayout.createSequentialGroup() + .addComponent(transformationLabel) + .addGap(13, 13, 13) + .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(1, 1, 1) + .addComponent(translationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jSeparator6, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(rotationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jSeparator7, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(transformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(transformationPanelLayout.createSequentialGroup() + .addGroup(transformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(applyButton, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jSeparator10, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(transformationPanelLayout.createSequentialGroup() + .addGroup(transformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(transformationPanelLayout.createSequentialGroup() + .addComponent(scalePanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGap(7, 7, 7)) + .addComponent(jSeparator9, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(shiftPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(resetAllButton)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) + .addComponent(jSeparator5, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)) + ); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jSeparator11) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(registrationAdjustmentLabel)) + .addComponent(transformationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(visualizationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 387, javax.swing.GroupLayout.PREFERRED_SIZE) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(registrationAdjustmentLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jSeparator11, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(visualizationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 247, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(10, 10, 10) + .addComponent(transformationPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 333, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + }// </editor-fold>//GEN-END:initComponents + + /** + * Creates color chooser to change primary color + * @param evt + */ + private void primaryColorPanelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_primaryColorPanelMouseClicked + if (transparencySlider.getValue() == 0) { + return; + } + Color current = primaryColorPanel.getBackground(); + Color newColor = JColorChooser.showDialog(null, "Choose a color", current); + if (newColor != null) { + primaryColorPanel.setBackground(newColor); + listener.setPrimaryColor(newColor); + } + }//GEN-LAST:event_primaryColorPanelMouseClicked + + /** + * Creates color chooser to change secondary color + * @param evt + */ + private void secondaryColorPanelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_secondaryColorPanelMouseClicked + if (transparencySlider.getValue() == 2*PostRegistrationListener.TRANSPARENCY_RANGE) { + return; + } + Color current = secondaryColorPanel.getBackground(); + Color newColor = JColorChooser.showDialog(null, "Choose a color", current); + if (newColor != null) { + secondaryColorPanel.setBackground(newColor); + listener.setSecondaryColor(newColor); + } + }//GEN-LAST:event_secondaryColorPanelMouseClicked + + /** + * Resets transparency slider to default position + * @param evt + */ + private void transparencyButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_transparencyButtonActionPerformed + transparencySlider.setValue(PostRegistrationListener.TRANSPARENCY_RANGE); + transparencySlider.repaint(); + listener.setTransparency(PostRegistrationListener.TRANSPARENCY_RANGE); + }//GEN-LAST:event_transparencyButtonActionPerformed + + /** + * Disables buttons if set to maximum or minimum + * Sets transparency + * @param evt + */ + private void transparencySliderStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_transparencySliderStateChanged + int transparency = transparencySlider.getValue(); + if (transparency == 0) { + primaryColorPanel.setBackground(Color.lightGray); + primaryHighlightsCB.setEnabled(false); + primaryHighlightsCB.setEnabled(false); + primaryFillRB.setEnabled(false); + primaryLinesRB.setEnabled(false); + primaryPointsRB.setEnabled(false); + } else if (transparency == 2*PostRegistrationListener.TRANSPARENCY_RANGE) { + secondaryColorPanel.setBackground(Color.lightGray); + secondaryHighlightsCB.setEnabled(false); + secondaryHighlightsCB.setEnabled(false); + secondaryFillRB.setEnabled(false); + secondaryLinesRB.setEnabled(false); + secondaryPointsRB.setEnabled(false); + } else if (!primaryFillRB.isEnabled()) { + primaryColorPanel.setBackground(listener.getPrimaryColor()); + primaryHighlightsCB.setEnabled(true); + primaryHighlightsCB.setEnabled(true); + primaryFillRB.setEnabled(true); + primaryLinesRB.setEnabled(true); + primaryPointsRB.setEnabled(true); + } else if (!secondaryFillRB.isEnabled()) { + secondaryColorPanel.setBackground(listener.getSecondaryColor()); + secondaryHighlightsCB.setEnabled(true); + secondaryHighlightsCB.setEnabled(true); + secondaryFillRB.setEnabled(true); + secondaryLinesRB.setEnabled(true); + secondaryPointsRB.setEnabled(true); + } + listener.setTransparency(transparency); + }//GEN-LAST:event_transparencySliderStateChanged + + /** + * Sets front facing + * @param evt + */ + private void frontButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_frontButtonActionPerformed + listener.setFrontFacing(); + }//GEN-LAST:event_frontButtonActionPerformed + + /** + * Sets side facing + * @param evt + */ + private void profileButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_profileButtonActionPerformed + listener.setSideFacing(); + }//GEN-LAST:event_profileButtonActionPerformed + + /** + * Resets translation + * @param evt + */ + private void translationButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_translationButtonActionPerformed + translationXFTF.setValue(0); + translationYFTF.setValue(0); + translationZFTF.setValue(0); + listener.resetTranslation(); + }//GEN-LAST:event_translationButtonActionPerformed + + /** + * Resets rotation + * @param evt + */ + private void rotationButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rotationButtonActionPerformed + rotationXFTF.setValue(0); + rotationYFTF.setValue(0); + rotationZFTF.setValue(0); + listener.resetRotation(); + }//GEN-LAST:event_rotationButtonActionPerformed + + /** + * Resets scale + * @param evt + */ + private void scaleButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_scaleButtonActionPerformed + scaleFTF.setValue(0); + listener.resetScale(); + }//GEN-LAST:event_scaleButtonActionPerformed + + /** + * Resetes all transformations + * @param evt + */ + private void resetAllButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_resetAllButtonActionPerformed + translationButtonActionPerformed(evt); + rotationButtonActionPerformed(evt); + scaleButtonActionPerformed(evt); + }//GEN-LAST:event_resetAllButtonActionPerformed + + /** + * Sets new translation on X-axis + * @param evt + */ + private void translationXFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_translationXFTFPropertyChange + double value = ((Number)translationXFTF.getValue()).doubleValue(); + listener.setXTranslation(value); + }//GEN-LAST:event_translationXFTFPropertyChange + + /** + * Sets new translation on Y-axis + * @param evt + */ + private void translationYFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_translationYFTFPropertyChange + double value = ((Number)translationYFTF.getValue()).doubleValue(); + listener.setYTranslation(value); + }//GEN-LAST:event_translationYFTFPropertyChange + + /** + * Sets new translation on Z-axis + * @param evt + */ + private void translationZFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_translationZFTFPropertyChange + double value = ((Number)translationZFTF.getValue()).doubleValue(); + listener.setZTranslation(value); + }//GEN-LAST:event_translationZFTFPropertyChange + + /** + * Sets new rotation on X-axis + * @param evt + */ + private void rotationXFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_rotationXFTFPropertyChange + double value = ((Number)rotationXFTF.getValue()).doubleValue(); + listener.setXRotation(value); + }//GEN-LAST:event_rotationXFTFPropertyChange + + /** + * Sets new rotation on Y-axis + * @param evt + */ + private void rotationYFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_rotationYFTFPropertyChange + double value = ((Number)rotationYFTF.getValue()).doubleValue(); + listener.setYRotation(value); + }//GEN-LAST:event_rotationYFTFPropertyChange + + /** + * Sets new rotation o Z-axis + * @param evt + */ + private void rotationZFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_rotationZFTFPropertyChange + double value = ((Number)rotationZFTF.getValue()).doubleValue(); + listener.setZRotation(value); + }//GEN-LAST:event_rotationZFTFPropertyChange + + /** + * Sets new scale + * @param evt + */ + private void scaleFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_scaleFTFPropertyChange + double value = ((Number)scaleFTF.getValue()).doubleValue(); + listener.setScale(value); + }//GEN-LAST:event_scaleFTFPropertyChange + + /** + * Adds or removes highlights of primary face + * @param evt + */ + private void primaryHighlightsCBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_primaryHighlightsCBActionPerformed + if (primaryHighlightsCB.isSelected()) { + listener.setPrimaryHighlights(); + } else { + listener.removePrimaryHighlights(); + } + }//GEN-LAST:event_primaryHighlightsCBActionPerformed + + /** + * Adds or removes highlights of secondary face + * @param evt + */ + private void secondaryHighlightsCBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_secondaryHighlightsCBActionPerformed + if (secondaryHighlightsCB.isSelected()) { + listener.setSecondaryHighlights(); + } else { + listener.removeSecondaryHighlights(); + } + }//GEN-LAST:event_secondaryHighlightsCBActionPerformed + + /** + * Sets primary face to render solid + * @param evt + */ + private void primaryFillRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_primaryFillRBActionPerformed + listener.setPrimaryFill(); + }//GEN-LAST:event_primaryFillRBActionPerformed + + /** + * Sets primary face to render as lines + * @param evt + */ + private void primaryLinesRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_primaryLinesRBActionPerformed + listener.setPrimaryLines(); + }//GEN-LAST:event_primaryLinesRBActionPerformed + + /** + * Sets primary face to render as points + * @param evt + */ + private void primaryPointsRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_primaryPointsRBActionPerformed + listener.setPrimaryPoints(); + }//GEN-LAST:event_primaryPointsRBActionPerformed + + /** + * Sets secondary face to render solid + * @param evt + */ + private void secondaryFillRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_secondaryFillRBActionPerformed + listener.setSecondaryFill(); + }//GEN-LAST:event_secondaryFillRBActionPerformed + + /** + * Sets secondary face to render as lines + * @param evt + */ + private void secondaryLinesRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_secondaryLinesRBActionPerformed + listener.setSecondaryLines(); + }//GEN-LAST:event_secondaryLinesRBActionPerformed + + /** + * Sets secondary face to render as points + * @param evt + */ + private void secondaryPointsRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_secondaryPointsRBActionPerformed + listener.setSecondaryPoints(); + }//GEN-LAST:event_secondaryPointsRBActionPerformed + + /** + * Resets colors to default + * @param evt + */ + private void colorButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_colorButtonActionPerformed + primaryColorPanel.setBackground(PostRegistrationListener.DEFAULT_PRIMARY_COLOR); + secondaryColorPanel.setBackground(PostRegistrationListener.DEFAULT_SECONDARY_COLOR); + listener.setDeafultColor(); + }//GEN-LAST:event_colorButtonActionPerformed + + /** + * Applies performed transformations + * @param evt + */ + private void applyButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_applyButtonActionPerformed + listener.transformFace(); + resetAllButtonActionPerformed(evt); + }//GEN-LAST:event_applyButtonActionPerformed + + /** + * Disables or enables feature points options and shows/hides feature points + * @param evt + */ + private void featurePointsButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_featurePointsButtonActionPerformed + if (listener.areFeaturePointsActive()) { + featurePointsButton.setText("show"); + thersholdButton.setEnabled(false); + thersholdFTF.setEnabled(false); + thersholdUpButton.setEnabled(false); + thresholdDownButton.setEnabled(false); + listener.setFeaturePointsActive(false); + } else { + featurePointsButton.setText("hide"); + thersholdButton.setEnabled(true); + thersholdFTF.setEnabled(true); + thersholdUpButton.setEnabled(true); + thresholdDownButton.setEnabled(true); + listener.setFeaturePointsActive(true); + } + }//GEN-LAST:event_featurePointsButtonActionPerformed + + /** + * Sets new feature points thershold value + * @param evt + */ + private void thersholdFTFPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_thersholdFTFPropertyChange + listener.setFeaturePointsThreshold(((Number)thersholdFTF.getValue()).doubleValue()); + }//GEN-LAST:event_thersholdFTFPropertyChange + + /** + * Starts animation of negative translation on X-axis + * @param evt + */ + private void leftTranslationXButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftTranslationXButtonMousePressed + animator.startModelAnimation(Direction.TRANSLATE_LEFT, this); + }//GEN-LAST:event_leftTranslationXButtonMousePressed + + /** + * Stops animation of negative translation on X-axis + * @param evt + */ + private void leftTranslationXButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftTranslationXButtonMouseReleased + animator.stopModelAnimation(this); + }//GEN-LAST:event_leftTranslationXButtonMouseReleased + + /** + * Starts animation of positive translation on X-axis + * @param evt + */ + private void rightTranslationXButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightTranslationXButtonMousePressed + animator.startModelAnimation(Direction.TRANSLATE_RIGHT, this); + }//GEN-LAST:event_rightTranslationXButtonMousePressed + + /** + * Stops animation of positive translation on X-axis + * @param evt + */ + private void rightTranslationXButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightTranslationXButtonMouseReleased + animator.stopModelAnimation(this); + }//GEN-LAST:event_rightTranslationXButtonMouseReleased + + /** + * Starts animation of negative translation on Y-axis + * @param evt + */ + private void leftTranslationYButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftTranslationYButtonMousePressed + animator.startModelAnimation(Direction.TRANSLATE_UP, this); + }//GEN-LAST:event_leftTranslationYButtonMousePressed + + /** + * Stops animation of negative translation on Y-axis + * @param evt + */ + private void leftTranslationYButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftTranslationYButtonMouseReleased + animator.stopModelAnimation(this); + }//GEN-LAST:event_leftTranslationYButtonMouseReleased + + /** + * Starts animation of positive translation on Y-axis + * @param evt + */ + private void rightTranslationYButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightTranslationYButtonMousePressed + animator.startModelAnimation(Direction.TRANSLATE_DOWN, this); + }//GEN-LAST:event_rightTranslationYButtonMousePressed + + /** + * Stops animation of positive translation on Y-axis + * @param evt + */ + private void rightTranslationYButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightTranslationYButtonMouseReleased + animator.stopModelAnimation(this); + }//GEN-LAST:event_rightTranslationYButtonMouseReleased + + /** + * Starts animation of negative translation on Z-axis + * @param evt + */ + private void leftTranslationZButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftTranslationZButtonMousePressed + animator.startModelAnimation(Direction.TRANSLATE_IN, this); + }//GEN-LAST:event_leftTranslationZButtonMousePressed + + /** + * Stops animation of negative translation on Z-axis + * @param evt + */ + private void leftTranslationZButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftTranslationZButtonMouseReleased + animator.stopModelAnimation(this); + }//GEN-LAST:event_leftTranslationZButtonMouseReleased + + /** + * Starts animation of positive translation on Z-axis + * @param evt + */ + private void rightTranslationZButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightTranslationZButtonMousePressed + animator.startModelAnimation(Direction.TRANSLATE_OUT, this); + }//GEN-LAST:event_rightTranslationZButtonMousePressed + + /** + * Stops animation of positive translation on Z-axis + * @param evt + */ + private void rightTranslationZButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightTranslationZButtonMouseReleased + animator.stopModelAnimation(this); + }//GEN-LAST:event_rightTranslationZButtonMouseReleased + + /** + * Starts animation of negative rotation on X-axis + * @param evt + */ + private void leftRotationXButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftRotationXButtonMousePressed + animator.startModelAnimation(Direction.ROTATE_LEFT, this); + }//GEN-LAST:event_leftRotationXButtonMousePressed + + /** + * Stops animation of negative rotation on X-axis + * @param evt + */ + private void leftRotationXButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftRotationXButtonMouseReleased + animator.stopModelAnimation(this); + }//GEN-LAST:event_leftRotationXButtonMouseReleased + + /** + * Starts animation of positive rotation on X-axis + * @param evt + */ + private void rightRotationXButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightRotationXButtonMousePressed + animator.startModelAnimation(Direction.ROTATE_RIGHT, this); + }//GEN-LAST:event_rightRotationXButtonMousePressed + + /** + * Stops animation of positive rotation on X-axis + * @param evt + */ + private void rightRotationXButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightRotationXButtonMouseReleased + animator.stopModelAnimation(this); + }//GEN-LAST:event_rightRotationXButtonMouseReleased + + /** + * Starts animation of negative rotation on Y-axis + * @param evt + */ + private void leftRotationYButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftRotationYButtonMousePressed + animator.startModelAnimation(Direction.ROTATE_UP, this); + }//GEN-LAST:event_leftRotationYButtonMousePressed + + /** + * Stops animation of negative rotation on Y-axis + * @param evt + */ + private void leftRotationYButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftRotationYButtonMouseReleased + animator.stopModelAnimation(this); + }//GEN-LAST:event_leftRotationYButtonMouseReleased + + /** + * Starts animation of positive rotation on Y-axis + * @param evt + */ + private void rightRotationYButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightRotationYButtonMousePressed + animator.startModelAnimation(Direction.ROTATE_DOWN, this); + }//GEN-LAST:event_rightRotationYButtonMousePressed + + /** + * Stops animation of positive rotation on Y-axis + * @param evt + */ + private void rightRotationYButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightRotationYButtonMouseReleased + animator.stopModelAnimation(this); + }//GEN-LAST:event_rightRotationYButtonMouseReleased + + /** + * Starts animation of negative rotation on Z-axis + * @param evt + */ + private void leftRotationZButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftRotationZButtonMousePressed + animator.startModelAnimation(Direction.ROTATE_IN, this); + }//GEN-LAST:event_leftRotationZButtonMousePressed + + /** + * Stops animation of negative rotation on Z-axis + * @param evt + */ + private void leftRotationZButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_leftRotationZButtonMouseReleased + animator.stopModelAnimation(this); + }//GEN-LAST:event_leftRotationZButtonMouseReleased + + /** + * Starts animation of positive rotation on Z-axis + * @param evt + */ + private void rightRotationZButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightRotationZButtonMousePressed + animator.startModelAnimation(Direction.ROTATE_OUT, this); + }//GEN-LAST:event_rightRotationZButtonMousePressed + + /** + * Stops animation of positive rotation on Z-axis + * @param evt + */ + private void rightRotationZButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_rightRotationZButtonMouseReleased + animator.stopModelAnimation(this); + }//GEN-LAST:event_rightRotationZButtonMouseReleased + + /** + * Starts animation of scaling down + * @param evt + */ + private void scaleMinusButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_scaleMinusButtonMousePressed + animator.startModelAnimation(Direction.ZOOM_OUT, this); + }//GEN-LAST:event_scaleMinusButtonMousePressed + + /** + * Stops animation of scaling down + * @param evt + */ + private void scaleMinusButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_scaleMinusButtonMouseReleased + animator.stopModelAnimation(this); + }//GEN-LAST:event_scaleMinusButtonMouseReleased + + /** + * Starts animation of scaling up + * @param evt + */ + private void scalePlusButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_scalePlusButtonMousePressed + animator.startModelAnimation(Direction.ZOOM_IN, this); + }//GEN-LAST:event_scalePlusButtonMousePressed + + /** + * Stops animation of scaling up + * @param evt + */ + private void scalePlusButtonMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_scalePlusButtonMouseReleased + animator.stopModelAnimation(this); + }//GEN-LAST:event_scalePlusButtonMouseReleased + + /** + * Lowers feature points thershold + * @param evt + */ + private void thresholdDownButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_thresholdDownButtonActionPerformed + double newValue = ((Number)thersholdFTF.getValue()).doubleValue() - 0.1; + thersholdFTF.setValue(newValue); + }//GEN-LAST:event_thresholdDownButtonActionPerformed + + /** + * Increases feature points thershold + * @param evt + */ + private void thersholdUpButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_thersholdUpButtonActionPerformed + double newValue = ((Number)thersholdFTF.getValue()).doubleValue() + 0.1; + thersholdFTF.setValue(newValue); + }//GEN-LAST:event_thersholdUpButtonActionPerformed + + /** + * Resets feature poitns thershold + * @param evt + */ + private void thersholdButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_thersholdButtonActionPerformed + thersholdFTF.setValue(PostRegistrationListener.LOW_SHIFT_QUOTIENT); + }//GEN-LAST:event_thersholdButtonActionPerformed + + /** + * Sets transformation shifting amount to low + * @param evt + */ + private void lowShiftRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lowShiftRBActionPerformed + listener.setMoveModifier(PostRegistrationListener.LOW_SHIFT_QUOTIENT); + }//GEN-LAST:event_lowShiftRBActionPerformed + + /** + * Sets transformation shifting amount to high + * @param evt + */ + private void highShiftRBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_highShiftRBActionPerformed + listener.setMoveModifier(PostRegistrationListener.HIGH_SHIFT_QUOTIENT); + }//GEN-LAST:event_highShiftRBActionPerformed + + /** + * Toggles rendering of back face on and off + * @param evt + */ + private void backfaceButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_backfaceButtonActionPerformed + if (listener.isShowBackfaceActive()) { + backfaceButton.setText("show backface"); + listener.setShowBackfaceActive(false); + } else { + backfaceButton.setText("hide backface"); + listener.setShowBackfaceActive(true); + } + }//GEN-LAST:event_backfaceButtonActionPerformed + + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JButton applyButton; + private javax.swing.JToggleButton backfaceButton; + private javax.swing.JButton colorButton; + private javax.swing.JToggleButton featurePointsButton; + private javax.swing.JLabel featurePointsLabel; + private javax.swing.JPanel featurePointsPanel; + private javax.swing.JLabel fillLabel; + private javax.swing.JButton frontButton; + private javax.swing.JRadioButton highShiftRB; + private javax.swing.JLabel highlightsLabel; + private javax.swing.JLabel jLabel2; + private javax.swing.JLabel jLabel3; + private javax.swing.JLabel jLabel4; + private javax.swing.JSeparator jSeparator1; + private javax.swing.JSeparator jSeparator10; + private javax.swing.JSeparator jSeparator11; + private javax.swing.JSeparator jSeparator2; + private javax.swing.JSeparator jSeparator3; + private javax.swing.JSeparator jSeparator4; + private javax.swing.JSeparator jSeparator5; + private javax.swing.JSeparator jSeparator6; + private javax.swing.JSeparator jSeparator7; + private javax.swing.JSeparator jSeparator8; + private javax.swing.JSeparator jSeparator9; + private javax.swing.JButton leftRotationXButton; + private javax.swing.JButton leftRotationYButton; + private javax.swing.JButton leftRotationZButton; + private javax.swing.JButton leftTranslationXButton; + private javax.swing.JButton leftTranslationYButton; + private javax.swing.JButton leftTranslationZButton; + private javax.swing.JLabel linesLabel; + private javax.swing.JRadioButton lowShiftRB; + private javax.swing.JLabel modelLabel; + private javax.swing.JPanel modelPanel; + private javax.swing.JLabel pointsLabel; + private javax.swing.ButtonGroup precisionGroup; + private javax.swing.JPanel primaryColorPanel; + private javax.swing.JRadioButton primaryFillRB; + private javax.swing.JCheckBox primaryHighlightsCB; + private javax.swing.JLabel primaryLabel; + private javax.swing.JRadioButton primaryLinesRB; + private javax.swing.JRadioButton primaryPointsRB; + private javax.swing.ButtonGroup primaryRenderModeGroup; + private javax.swing.JButton profileButton; + private javax.swing.JLabel registrationAdjustmentLabel; + private javax.swing.JLabel renderModeLabel; + private javax.swing.JButton resetAllButton; + private javax.swing.JButton rightRotationXButton; + private javax.swing.JButton rightRotationYButton; + private javax.swing.JButton rightRotationZButton; + private javax.swing.JButton rightTranslationXButton; + private javax.swing.JButton rightTranslationYButton; + private javax.swing.JButton rightTranslationZButton; + private javax.swing.JLabel rotatXLabel; + private javax.swing.JLabel rotatYLabel; + private javax.swing.JLabel rotatZLabel; + private javax.swing.JButton rotationButton; + private javax.swing.JPanel rotationPanel; + private javax.swing.JFormattedTextField rotationXFTF; + private javax.swing.JFormattedTextField rotationYFTF; + private javax.swing.JFormattedTextField rotationZFTF; + private javax.swing.JButton scaleButton; + private javax.swing.JFormattedTextField scaleFTF; + private javax.swing.JButton scaleMinusButton; + private javax.swing.JPanel scalePanel; + private javax.swing.JButton scalePlusButton; + private javax.swing.JPanel secondaryColorPanel; + private javax.swing.JRadioButton secondaryFillRB; + private javax.swing.JCheckBox secondaryHighlightsCB; + private javax.swing.JLabel secondaryLabel; + private javax.swing.JRadioButton secondaryLinesRB; + private javax.swing.JRadioButton secondaryPointsRB; + private javax.swing.ButtonGroup secondaryRenerModeGroup; + private javax.swing.JLabel shiftLabel; + private javax.swing.JPanel shiftPanel; + private javax.swing.JButton thersholdButton; + private javax.swing.JFormattedTextField thersholdFTF; + private javax.swing.JButton thersholdUpButton; + private javax.swing.JButton thresholdDownButton; + private javax.swing.JLabel transformationLabel; + private javax.swing.JPanel transformationPanel; + private javax.swing.JLabel translXLabel; + private javax.swing.JLabel translYLabel; + private javax.swing.JLabel translZLabel; + private javax.swing.JButton translationButton; + private javax.swing.JPanel translationPanel; + private javax.swing.JFormattedTextField translationXFTF; + private javax.swing.JFormattedTextField translationYFTF; + private javax.swing.JFormattedTextField translationZFTF; + private javax.swing.JButton transparencyButton; + private javax.swing.JSlider transparencySlider; + private javax.swing.JLabel viewLabel; + private javax.swing.JPanel viewPanel; + private javax.swing.JLabel visualizationLabel; + private javax.swing.JPanel visualizationPanel; + // End of variables declaration//GEN-END:variables +} diff --git a/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationListener.java b/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationListener.java new file mode 100644 index 0000000000000000000000000000000000000000..86f0f6650225884292f5949a799394cd5c310823 --- /dev/null +++ b/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationListener.java @@ -0,0 +1,604 @@ +package cz.fidentis.analyst.registration; + +import com.jogamp.opengl.GL2; +import cz.fidentis.analyst.feature.FeaturePoint; +import cz.fidentis.analyst.gui.canvas.Canvas; +import cz.fidentis.analyst.gui.scene.DrawableMesh; +import cz.fidentis.analyst.mesh.core.MeshFacet; +import cz.fidentis.analyst.mesh.core.MeshPoint; +import cz.fidentis.analyst.visitors.mesh.BoundingBox; +import java.awt.Color; +import java.util.ArrayList; +import javax.vecmath.Point3d; +import javax.vecmath.Vector3d; + +/** + * Updates primary resp. secondary {@link DrawableMesh}. + * + * @author Richard Pajersky + */ + +public class PostRegistrationListener { + + /** + * Transformation shift is higher + */ + public static final double HIGH_SHIFT_QUOTIENT = 1; + + /** + * Transformation shift is lower + */ + public static final double LOW_SHIFT_QUOTIENT = 0.1; + + /** + * Quotient which determines translation and scale amount + */ + private static final double CHANGE_QUOTIENT = 500d; + + /** + * Color used as default color of primary face + */ + public static final Color DEFAULT_PRIMARY_COLOR = new Color(101, 119, 179); + + /** + * Color used as default color of secondary face + */ + public static final Color DEFAULT_SECONDARY_COLOR = new Color(237, 217, 76); + + /** + * Range of transparency + */ + public static final int TRANSPARENCY_RANGE = 10; + + /** + * Canvas which contains faces + */ + private final Canvas canvas; + + /** + * Move amount on X-axis + */ + private final double moveX; + + /** + * Move amount on Y-axis + */ + private final double moveY; + + /** + * Move amount on Z-axis + */ + private final double moveZ; + + /** + * Scale amount in all axis + */ + private final double scaleXYZ; + + /** + * Primary face used for visualization + */ + private final DrawableMesh primaryFace; + + /** + * Secondary face used for visualization and transformation + */ + private final DrawableMesh secondaryFace; + + /** + * Transformation amount + */ + private double moveModifier = LOW_SHIFT_QUOTIENT; + + /** + * Threshold of feature points showing too far away + */ + private double featurePointsThreshold = LOW_SHIFT_QUOTIENT; + + /** + * Constructor + * First initialize {@link #canvas} then + * {@link #primaryFace} and {@link #secondaryFace} + * Then computes movement amounts based on + * {@link BoundingBox} of secondary face + * + * @param canvas Canvas with two faces + * @throws IllegalArgumentException if the canvas is {@code null} + */ + public PostRegistrationListener(Canvas canvas) { + if (canvas == null) { + throw new IllegalArgumentException("canvas is null"); + } + this.canvas = canvas; + + ArrayList<DrawableMesh> drawables = new ArrayList<>(canvas.getScene().getDrawables()); + if (drawables.size() < 2) { + throw new IllegalArgumentException("canvas doesn't contains at least 2 models"); + } + this.primaryFace = drawables.get(0); + this.secondaryFace = drawables.get(1); + setDeafultColor(); + + // set move amounts + BoundingBox visitor = new BoundingBox(); + this.secondaryFace.getModel().compute(visitor); + Point3d maxPoint = visitor.getBoundingBox().getMaxPoint(); + Point3d minPoint = visitor.getBoundingBox().getMinPoint(); + moveX = (maxPoint.x - minPoint.x) / CHANGE_QUOTIENT; + moveY = (maxPoint.y - minPoint.y) / CHANGE_QUOTIENT; + moveZ = (maxPoint.z - minPoint.z) / CHANGE_QUOTIENT; + scaleXYZ = (visitor.getBoundingBox().getMaxDiag() / (10 * CHANGE_QUOTIENT)); + } + + /** + * Calculates feature points which are too far away + * and changes their color to red + * otherwise set color to default + */ + private void calculateFeaturePoints() { + if (!primaryFace.isRenderFeaturePoints()) { + return; + } + ArrayList<Color> color = (ArrayList)secondaryFace.getFeaturePointsColor(); + for (int i = 0; i < primaryFace.getFeaturePoints().size(); i++) { + FeaturePoint primary = primaryFace.getFeaturePoints().get(i); + FeaturePoint secondary = secondaryFace.getFeaturePoints().get(i); + Point3d transformed = new Point3d(secondary.getX(), secondary.getY(), secondary.getZ()); + transformPoint(transformed); + double distance = Math.sqrt( + Math.pow(transformed.x - primary.getX(), 2) + + Math.pow(transformed.y - primary.getY(), 2) + + Math.pow(transformed.z - primary.getZ(), 2)); + if (distance > featurePointsThreshold) { + color.set(i, Color.RED); + } else { + color.set(i, DEFAULT_SECONDARY_COLOR); + } + } + } + + /** + * Applies carried out transformations + * first on {@link #secondaryFace} + * and then on {@link #secondaryFace} feature points + */ + public void transformFace() { + for (MeshFacet transformedFacet : secondaryFace.getFacets()) { + for (MeshPoint comparedPoint : transformedFacet.getVertices()) { + transformPoint(comparedPoint.getPosition()); + } + } + for (int i = 0; i < secondaryFace.getFeaturePoints().size(); i++) { + FeaturePoint point = secondaryFace.getFeaturePoints().get(i); + Point3d transformed = new Point3d(point.getX(), point.getY(), point.getZ()); + transformPoint(transformed); + point = new FeaturePoint(transformed.x, transformed.y, + transformed.z, point.getFeaturePointType()); + secondaryFace.getFeaturePoints().set(i, point); + } + canvas.renderScene(); + } + + /** + * Transforms point based on transformation info from {@link #secondaryFace} + * + * @param point Point to transform + */ + public void transformPoint(Point3d point) { + if (point == null) { + throw new IllegalArgumentException("point is null"); + } + + Point3d newPoint = new Point3d(0, 0, 0); + double quotient; + + // rotate around X + quotient = Math.toRadians(secondaryFace.getRotation().x); + if (!Double.isNaN(quotient)) { + double cos = Math.cos(quotient); + double sin = Math.sin(quotient); + newPoint.y = point.y * cos - point.z * sin; + newPoint.z = point.z * cos + point.y * sin; + point.y = newPoint.y; + point.z = newPoint.z; + } + + // rotate around Y + quotient = Math.toRadians(secondaryFace.getRotation().y); + if (!Double.isNaN(quotient)) { + double cos = Math.cos(quotient); + double sin = Math.sin(quotient); + newPoint.x = point.x * cos + point.z * sin; + newPoint.z = point.z * cos - point.x * sin; + point.x = newPoint.x; + point.z = newPoint.z; + } + + // rotate around Z + quotient = Math.toRadians(secondaryFace.getRotation().z); + if (!Double.isNaN(quotient)) { + double cos = Math.cos(quotient); + double sin = Math.sin(quotient); + newPoint.x = point.x * cos - point.y * sin; + newPoint.y = point.y * cos + point.x * sin; + point.x = newPoint.x; + point.y = newPoint.y; + } + + // translate + point.x += secondaryFace.getTranslation().x; + point.y += secondaryFace.getTranslation().y; + point.z += secondaryFace.getTranslation().z; + + // scale + point.x *= 1 + secondaryFace.getScale().x; + point.y *= 1 + secondaryFace.getScale().y; + point.z *= 1 + secondaryFace.getScale().z; + } + + /** + * Sets {@link #primaryFace} to {@link #DEFAULT_PRIMARY_COLOR} and + * {@link #secondaryFace} to {@link #DEFAULT_SECONDARY_COLOR} + */ + public final void setDeafultColor() { + primaryFace.setColor(DEFAULT_PRIMARY_COLOR); + secondaryFace.setColor(DEFAULT_SECONDARY_COLOR); + canvas.renderScene(); + } + + /** + * Sets the color of {@link #primaryFace} + * @param color Color + */ + public void setPrimaryColor(Color color) { + primaryFace.setColor(color); + canvas.renderScene(); + } + + /** + * Sets the color of {@link #secondaryFace} + * @param color Color + */ + public void setSecondaryColor(Color color) { + secondaryFace.setColor(color); + canvas.renderScene(); + } + + /** + * @return {@link Color} of {@link #primaryFace} + */ + public Color getPrimaryColor() { + return primaryFace.getColor(); + } + + /** + * @return {@link Color} of {@link #secondaryFace} + */ + public Color getSecondaryColor() { + return secondaryFace.getColor(); + } + + /** + * Sets the transparency of {@link #primaryFace} or {@link #secondaryFace} + * based on the inputed value and {@link #TRANSPARENCY_RANGE} + * @param value Value + */ + public void setTransparency(int value) { + + if (value == TRANSPARENCY_RANGE) { + setPrimaryTransparency(1); + setSecondaryTransparency(1); + } + if (value < TRANSPARENCY_RANGE) { + setPrimaryTransparency(value / 10f); + setSecondaryTransparency(1); + } + if (value > TRANSPARENCY_RANGE) { + setSecondaryTransparency((2 * TRANSPARENCY_RANGE - value) / 10f); + setPrimaryTransparency(1); + } + canvas.renderScene(); + } + + /** + * Sets transparency of {@link #primaryFace} + * + * @param transparency Transparency value + */ + public void setPrimaryTransparency(float transparency) { + primaryFace.setTransparency(transparency); + } + + /** + * Sets transparency of {@link #secondaryFace} + * + */ + public void setSecondaryTransparency(float transparency) { + secondaryFace.setTransparency(transparency); + } + + /** + * @return Transparency of {@link #primaryFace} + */ + public double getPrimaryTransparency() { + return primaryFace.getTransparency(); + } + + /** + * @return Transparency of {@link #secondaryFace} + */ + public double getSecondaryTransparency() { + return secondaryFace.getTransparency(); + } + + /** + * Sets camera to show face from the front + */ + public void setFrontFacing() { + canvas.getCamera().initLocation(); + canvas.renderScene(); + } + + /** + * Sets camera to show face from the side + */ + public void setSideFacing() { + canvas.getCamera().initLocation(); + canvas.getCamera().rotate(0, 90); + canvas.renderScene(); + } + + /** + * Resets translation of {@link #secondaryFace} + */ + public void resetTranslation() { + secondaryFace.setTranslation(new Vector3d(0, 0, 0)); + calculateFeaturePoints(); + canvas.renderScene(); + } + + /** + * Resets rotation of {@link #secondaryFace} + */ + public void resetRotation() { + secondaryFace.setRotation(new Vector3d(0, 0, 0)); + calculateFeaturePoints(); + canvas.renderScene(); + } + + /** + * Resets scale of {@link #secondaryFace} + */ + public void resetScale() { + secondaryFace.setScale(new Vector3d(0, 0, 0)); + calculateFeaturePoints(); + canvas.renderScene(); + } + + /** + * Sets translation of {@link #secondaryFace} on X-axis + * @param value Translation amount + */ + public void setXTranslation(double value) { + secondaryFace.getTranslation().x = value * moveX; + calculateFeaturePoints(); + canvas.renderScene(); + } + + /** + * Sets translation of {@link #secondaryFace} on Y-axis + * @param value Translation amount + */ + public void setYTranslation(double value) { + secondaryFace.getTranslation().y = value * moveY; + calculateFeaturePoints(); + canvas.renderScene(); + } + + /** + * Sets translation of {@link #secondaryFace} on Z-axis + * @param value Translation amount + */ + public void setZTranslation(double value) { + secondaryFace.getTranslation().z = value * moveZ; + calculateFeaturePoints(); + canvas.renderScene(); + } + + /** + * Sets rotation of {@link #secondaryFace} around X-axis + * @param value Translation amount + */ + public void setXRotation(double value) { + secondaryFace.getRotation().x = value * moveX; + calculateFeaturePoints(); + canvas.renderScene(); + } + + /** + * Sets rotation of {@link #secondaryFace} around Y-axis + * @param value Translation amount + */ + public void setYRotation(double value) { + secondaryFace.getRotation().y = value * moveY; + calculateFeaturePoints(); + canvas.renderScene(); + } + + /** + * Sets rotation of {@link #secondaryFace} around Z-axis + * @param value Translation amount + */ + public void setZRotation(double value) { + secondaryFace.getRotation().z = value * moveZ; + calculateFeaturePoints(); + canvas.renderScene(); + } + + /** + * Sets scale of {@link #secondaryFace} + * @param value Translation amount + */ + public void setScale(double value) { + secondaryFace.getScale().x = value * scaleXYZ; + secondaryFace.getScale().y = value * scaleXYZ; + secondaryFace.getScale().z = value * scaleXYZ; + calculateFeaturePoints(); + canvas.renderScene(); + } + + /** + * Sets color of {@link #primaryFace} highlights to white + */ + public void setPrimaryHighlights() { + primaryFace.setHighlights(new Color(1, 1, 1)); + canvas.renderScene(); + } + + /** + * Sets color of {@link #secondaryFace} highlights to white + */ + public void setSecondaryHighlights() { + secondaryFace.setHighlights(new Color(1, 1, 1)); + canvas.renderScene(); + } + + /** + * Sets color of {@link #primaryFace} highlights to black + */ + public void removePrimaryHighlights() { + primaryFace.setHighlights(new Color(0, 0, 0)); + canvas.renderScene(); + } + + /** + * Sets color of {@link #secondaryFace} highlights to black + */ + public void removeSecondaryHighlights() { + secondaryFace.setHighlights(new Color(0, 0, 0)); + canvas.renderScene(); + } + + /** + * Sets {@link #primaryFace} to be rendered as lines + */ + public void setPrimaryLines() { + primaryFace.setRenderMode(GL2.GL_LINE); + canvas.renderScene(); + } + + /** + * Sets {@link #secondaryFace} to be rendered as lines + */ + public void setSecondaryLines() { + secondaryFace.setRenderMode(GL2.GL_LINE); + canvas.renderScene(); + } + + /** + * Sets {@link #primaryFace} to be rendered as points + */ + public void setPrimaryPoints() { + primaryFace.setRenderMode(GL2.GL_POINT); + canvas.renderScene(); + } + + /** + * Sets {@link #secondaryFace} to be rendered as points + */ + public void setSecondaryPoints() { + secondaryFace.setRenderMode(GL2.GL_POINT); + canvas.renderScene(); + } + + /** + * Sets {@link #primaryFace} to be rendered solid + */ + public void setPrimaryFill() { + primaryFace.setRenderMode(GL2.GL_FILL); + canvas.renderScene(); + } + + /** + * Sets {@link #secondaryFace} to be rendered solid + */ + public void setSecondaryFill() { + secondaryFace.setRenderMode(GL2.GL_FILL); + canvas.renderScene(); + } + + /** + * @return {@code true} if feature points are being rendered + */ + public boolean areFeaturePointsActive() { + return primaryFace.isRenderFeaturePoints(); + } + + /** + * Sets feature points of {@link #primaryFace} and {@link #secondaryFace} + * to given state + * @param state State + */ + public void setFeaturePointsActive(boolean state) { + primaryFace.setRenderFeaturePoints(state); + secondaryFace.setRenderFeaturePoints(state); + calculateFeaturePoints(); + canvas.renderScene(); + } + + /** + * @return Value of {@link #featurePointsThreshold} + */ + public double getFeaturePointsThreshold() { + return featurePointsThreshold; + } + + /** + * Sets {@link #featurePointsThreshold} to given value + * @param featurePointsThreshold Threshold + */ + public void setFeaturePointsThreshold(double featurePointsThreshold) { + this.featurePointsThreshold = featurePointsThreshold; + calculateFeaturePoints(); + canvas.renderScene(); + } + + /** + * @return Value of {@link #moveModifier} + */ + public double getMoveModifier() { + return moveModifier; + } + + /** + * Sets {@link #moveModifier} to given value + * @param moveModifier Modifier + */ + public void setMoveModifier(double moveModifier) { + this.moveModifier = moveModifier; + } + + /** + * @return {@link #canvas} + */ + public Canvas getCanvas() { + return canvas; + } + + /** + * @return {@code true} if back face is being shown + */ + public boolean isShowBackfaceActive() { + return primaryFace.isShowBackface(); + } + + /** + * Sets backface to be rendered or not based on the given state + * @param state State + */ + public void setShowBackfaceActive(boolean state) { + primaryFace.setShowBackface(state); + secondaryFace.setShowBackface(state); + canvas.renderScene(); + } +} diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationTestTopComponent.form b/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationTestTC.form similarity index 71% rename from GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationTestTopComponent.form rename to GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationTestTC.form index aacf85556c0d9025093eace3a29d7d31ea369834..e0ca68451f5a157b4645b7e68075753bc4c5c206 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationTestTopComponent.form +++ b/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationTestTC.form @@ -22,6 +22,11 @@ --> <Form version="1.4" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo"> + <Properties> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[405, 600]"/> + </Property> + </Properties> <AuxValues> <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/> <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/> @@ -38,37 +43,36 @@ <DimensionLayout dim="0"> <Group type="103" groupAlignment="0" attributes="0"> <Group type="102" alignment="1" attributes="0"> - <EmptySpace pref="549" max="32767" attributes="0"/> - <Component id="postRegistrationCP1" min="-2" max="-2" attributes="0"/> + <Component id="canvas1" pref="309" max="32767" attributes="0"/> <EmptySpace max="-2" attributes="0"/> - </Group> - <Group type="103" rootIndex="1" groupAlignment="0" attributes="0"> - <Group type="102" alignment="0" attributes="0"> - <Component id="canvas1" min="-2" pref="543" max="-2" attributes="0"/> - <EmptySpace min="0" pref="326" max="32767" attributes="0"/> - </Group> + <Component id="postRegistrationCP1" min="-2" max="-2" attributes="0"/> </Group> </Group> </DimensionLayout> <DimensionLayout dim="1"> <Group type="103" groupAlignment="0" attributes="0"> - <Group type="102" alignment="1" attributes="0"> - <Component id="postRegistrationCP1" pref="533" max="32767" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - </Group> - <Group type="103" rootIndex="1" groupAlignment="0" attributes="0"> - <Group type="102" alignment="0" attributes="0"> - <Component id="canvas1" pref="533" max="32767" attributes="0"/> - <EmptySpace max="-2" attributes="0"/> - </Group> - </Group> + <Component id="canvas1" pref="708" max="32767" attributes="0"/> + <Component id="postRegistrationCP1" alignment="0" max="32767" attributes="0"/> </Group> </DimensionLayout> </Layout> <SubComponents> - <Component class="cz.fidentis.analyst.gui.tab.PostRegistrationCP" name="postRegistrationCP1"> - </Component> <Component class="cz.fidentis.analyst.gui.canvas.Canvas" name="canvas1"> </Component> + <Container class="cz.fidentis.analyst.registration.PostRegistrationCP" name="postRegistrationCP1"> + + <Layout> + <DimensionLayout dim="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <EmptySpace min="0" pref="340" max="32767" attributes="0"/> + </Group> + </DimensionLayout> + <DimensionLayout dim="1"> + <Group type="103" groupAlignment="0" attributes="0"> + <EmptySpace min="0" pref="0" max="32767" attributes="0"/> + </Group> + </DimensionLayout> + </Layout> + </Container> </SubComponents> </Form> diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationTestTopComponent.java b/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationTestTC.java similarity index 59% rename from GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationTestTopComponent.java rename to GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationTestTC.java index 561e0009a9e3d4ee9644d5327b2412aa86a5b120..aeca8a319941f10492a4ebf1bc3c96480fbf7546 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationTestTopComponent.java +++ b/GUI/src/main/java/cz/fidentis/analyst/registration/PostRegistrationTestTC.java @@ -1,22 +1,12 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package cz.fidentis.analyst.gui; +package cz.fidentis.analyst.registration; import cz.fidentis.analyst.face.HumanFace; +import cz.fidentis.analyst.feature.FeaturePoint; import cz.fidentis.analyst.gui.scene.DrawableMesh; -import cz.fidentis.analyst.gui.tab.PostRegistrationCP; import cz.fidentis.analyst.mesh.io.ModelFileFilter; -import java.awt.Color; import java.awt.Dimension; -import java.io.File; -import java.io.IOException; -import java.util.AbstractMap; import java.util.ArrayList; import javax.swing.JFileChooser; -import javax.vecmath.Point3d; import org.netbeans.api.settings.ConvertAsProperties; import org.openide.awt.ActionID; import org.openide.awt.ActionReference; @@ -24,44 +14,49 @@ import org.openide.windows.TopComponent; import org.openide.util.NbBundle.Messages; /** - * Top component which displays something. + * Top component used to test registration adjustment. + * + * @author Richard Pajersky */ @ConvertAsProperties( dtd = "-//cz.fidentis.analyst.gui//RegistrationTest//EN", autostore = false ) @TopComponent.Description( - preferredID = "RegistrationTestTopComponent", + preferredID = "PostRegistrationTestTC", //iconBase="SET/PATH/TO/ICON/HERE", persistenceType = TopComponent.PERSISTENCE_ALWAYS ) @TopComponent.Registration(mode = "properties", openAtStartup = false) -@ActionID(category = "Window", id = "cz.fidentis.analyst.gui.RegistrationTestTopComponent") +@ActionID(category = "Window", id = "cz.fidentis.analyst.gui.PostRegistrationTestTC") @ActionReference(path = "Menu/Window" /*, position = 333 */) @TopComponent.OpenActionRegistration( displayName = "#CTL_RegistrationTestAction", - preferredID = "RegistrationTestTopComponent" + preferredID = "PostRegistrationTestTC" ) @Messages({ "CTL_RegistrationTestAction=RegistrationTest", "CTL_RegistrationTestTopComponent=RegistrationTest Window", "HINT_RegistrationTestTopComponent=This is a RegistrationTest window" }) -public final class RegistrationTestTopComponent extends TopComponent { +public final class PostRegistrationTestTC extends TopComponent { - public RegistrationTestTopComponent() { + /** + * Constructor + */ + public PostRegistrationTestTC() { initComponents(); setName(Bundle.CTL_RegistrationTestTopComponent()); setToolTipText(Bundle.HINT_RegistrationTestTopComponent()); HumanFace primary = null; HumanFace secondary = null; - // choose models + + /* choose models */ String[] extensions = new String[2]; extensions[0] = "obj"; extensions[1] = "OBJ"; ModelFileFilter filter = new ModelFileFilter(extensions, "*.obj"); - JFileChooser jFileChooser1 = new JFileChooser(); jFileChooser1.setPreferredSize(new Dimension (800,500)); jFileChooser1.addChoosableFileFilter(filter); @@ -75,23 +70,40 @@ public final class RegistrationTestTopComponent extends TopComponent { try { secondary = new HumanFace(jFileChooser1.getSelectedFile()); } catch (Exception ex) {} + + canvas1.initScene(primary, secondary); // init canvas - canvas1.initScene(primary, secondary); - // feature points test + /* feature points test */ ArrayList<DrawableMesh> drawables = new ArrayList<>(canvas1.getScene().getDrawables()); DrawableMesh primaryFace = drawables.get(0); DrawableMesh secondaryFace = drawables.get(1); - ArrayList<AbstractMap.SimpleEntry<Point3d, Color>> primar = new ArrayList<>(); - primar.add(new AbstractMap.SimpleEntry<>(new Point3d(100, 0, 0), Color.BLUE)); + + /* + FeaturePointImportExportService sv = new FeaturePointImportExportService(); + + jFileChooser1.showOpenDialog(this); + jFileChooser1.setDialogTitle("Import obj file"); + try { + File file = jFileChooser1.getSelectedFile(); + primaryFace.setFeaturePoints(sv.importFeaturePoints(file.getPath(), file.getName()).get()); + } catch (Exception ex) {} + jFileChooser1.showOpenDialog(this); + jFileChooser1.setDialogTitle("Import obj file"); + try { + File file = jFileChooser1.getSelectedFile(); + secondaryFace.setFeaturePoints(sv.importFeaturePoints(file.getPath(), file.getName()).get()); + } catch (Exception ex) {}*/ + + ArrayList<FeaturePoint> primar = new ArrayList<>(); + primar.add(new FeaturePoint(100, 0, 0, null)); primaryFace.setFeaturePoints(primar); - ArrayList<AbstractMap.SimpleEntry<Point3d, Color>> secondar = new ArrayList<>(); - secondar.add(new AbstractMap.SimpleEntry<>(new Point3d(101, 0, 0), Color.YELLOW)); + + ArrayList<FeaturePoint> secondar = new ArrayList<>(); + secondar.add(new FeaturePoint(101, 0, 0, null)); secondaryFace.setFeaturePoints(secondar); - postRegistrationCP1.initPostRegistrationCP(new RegistrationCPEventListener(canvas1)); - + postRegistrationCP1.initPostRegistrationCP(new PostRegistrationListener(canvas1)); - } /** @@ -102,37 +114,41 @@ public final class RegistrationTestTopComponent extends TopComponent { // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { - postRegistrationCP1 = new cz.fidentis.analyst.gui.tab.PostRegistrationCP(); canvas1 = new cz.fidentis.analyst.gui.canvas.Canvas(); + postRegistrationCP1 = new cz.fidentis.analyst.registration.PostRegistrationCP(); + + setPreferredSize(new java.awt.Dimension(405, 600)); + + javax.swing.GroupLayout postRegistrationCP1Layout = new javax.swing.GroupLayout(postRegistrationCP1); + postRegistrationCP1.setLayout(postRegistrationCP1Layout); + postRegistrationCP1Layout.setHorizontalGroup( + postRegistrationCP1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 340, Short.MAX_VALUE) + ); + postRegistrationCP1Layout.setVerticalGroup( + postRegistrationCP1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 0, Short.MAX_VALUE) + ); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap(549, Short.MAX_VALUE) - .addComponent(postRegistrationCP1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap()) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addComponent(canvas1, javax.swing.GroupLayout.PREFERRED_SIZE, 543, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(0, 326, Short.MAX_VALUE))) + .addComponent(canvas1, javax.swing.GroupLayout.DEFAULT_SIZE, 309, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(postRegistrationCP1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addComponent(postRegistrationCP1, javax.swing.GroupLayout.PREFERRED_SIZE, 533, Short.MAX_VALUE) - .addContainerGap()) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addComponent(canvas1, javax.swing.GroupLayout.DEFAULT_SIZE, 533, Short.MAX_VALUE) - .addContainerGap())) + .addComponent(canvas1, javax.swing.GroupLayout.DEFAULT_SIZE, 708, Short.MAX_VALUE) + .addComponent(postRegistrationCP1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); }// </editor-fold>//GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables private cz.fidentis.analyst.gui.canvas.Canvas canvas1; - private cz.fidentis.analyst.gui.tab.PostRegistrationCP postRegistrationCP1; + private cz.fidentis.analyst.registration.PostRegistrationCP postRegistrationCP1; // End of variables declaration//GEN-END:variables @Override public void componentOpened() { diff --git a/GUI/src/main/resources/add-line.png b/GUI/src/main/resources/add-line.png new file mode 100644 index 0000000000000000000000000000000000000000..4bdec92d9fd9f374c93dede972a7c3142473403b Binary files /dev/null and b/GUI/src/main/resources/add-line.png differ diff --git a/GUI/src/main/resources/arrow-left-s-line.png b/GUI/src/main/resources/arrow-left-s-line.png new file mode 100644 index 0000000000000000000000000000000000000000..5e1b29e5762b88b84515113ea8fb0d1e61ecc0ea Binary files /dev/null and b/GUI/src/main/resources/arrow-left-s-line.png differ diff --git a/GUI/src/main/resources/arrow-right-s-line.png b/GUI/src/main/resources/arrow-right-s-line.png new file mode 100644 index 0000000000000000000000000000000000000000..44e603c907aa6ea11ea5f54747c25ed011d2f6e3 Binary files /dev/null and b/GUI/src/main/resources/arrow-right-s-line.png differ diff --git a/GUI/src/main/resources/cz/fidentis/analyst/gui/tab/Bundle.properties b/GUI/src/main/resources/cz/fidentis/analyst/gui/tab/Bundle.properties index 6812c2290f1c65b96c721496d4038f0ff2d9fb1e..44efbbfa1ef21cbbfc0cd1690473136b9fe322f0 100644 --- a/GUI/src/main/resources/cz/fidentis/analyst/gui/tab/Bundle.properties +++ b/GUI/src/main/resources/cz/fidentis/analyst/gui/tab/Bundle.properties @@ -1,90 +1,10 @@ SingleFaceTab.jButton1.text= -PostRegistrationCP.leftRotationXButton.text=<< -PostRegistrationCP.rotationXFTF.toolTipText= PostRegistrationCP.rotationXFTF.text=0 -PostRegistrationCP.rightTranslationZButton.text=>> -PostRegistrationCP.rightTranslationYButton.text=>> -PostRegistrationCP.leftTranslationZButton.text=<< -PostRegistrationCP.leftTranslationYButton.text=<< -PostRegistrationCP.applyButton.text=Apply changes -PostRegistrationCP.scaleButton.toolTipText=reset scale -PostRegistrationCP.scaleButton.text=reset -PostRegistrationCP.rotationButton.toolTipText=reset rotation -PostRegistrationCP.rotationButton.text=reset PostRegistrationCP.translationZFTF.text=0 PostRegistrationCP.translationYFTF.text=0 -PostRegistrationCP.translationXFTF.toolTipText= PostRegistrationCP.translationXFTF.text=0 -PostRegistrationCP.leftTranslationXButton.text=<< -PostRegistrationCP.translationButton.toolTipText=reset translation -PostRegistrationCP.translationButton.text=reset -PostRegistrationCP.profileButton.toolTipText=model profile view -PostRegistrationCP.profileButton.text=side -PostRegistrationCP.frontButton.toolTipText=model front view -PostRegistrationCP.frontButton.text=front -PostRegistrationCP.featurePointsButton.text=show -PostRegistrationCP.viewLabel.text=View: -PostRegistrationCP.modelLabel.text=Model: -PostRegistrationCP.transparencyButton.toolTipText=reset transparency -PostRegistrationCP.transparencyButton.text=opacity -PostRegistrationCP.primaryLabel.text=primary -PostRegistrationCP.jLabel1.text=Registration adjustment -PostRegistrationCP.secondaryLabel.toolTipText= -PostRegistrationCP.secondaryLabel.text=secondary -PostRegistrationCP.transparencySlider.toolTipText=sets model transparency -PostRegistrationCP.secondaryColorPanel.toolTipText=sets color of secondary model -PostRegistrationCP.primaryColorPanel.toolTipText=sets color of primary model -PostRegistrationCP.scalePlusButton.text=++ -PostRegistrationCP.scaleMinusButton.text=- - -PostRegistrationCP.scaleFTF.toolTipText= PostRegistrationCP.scaleFTF.text=0 PostRegistrationCP.rotationZFTF.text=0 PostRegistrationCP.rotationYFTF.text=0 -PostRegistrationCP.rightRotationZButton.text=>> -PostRegistrationCP.rightRotationYButton.text=>> -PostRegistrationCP.leftRotationZButton.text=<< -PostRegistrationCP.leftRotationYButton.text=<< -PostRegistrationCP.rightRotationXButton.text=>> -PostRegistrationCP.jLabel2.text=Translation: -PostRegistrationCP.jLabel3.text=Rotation: -PostRegistrationCP.jLabel4.text=Scale: -PostRegistrationCP.resetAllButton.text=reset all -PostRegistrationCP.leftSmallTranslXButton.text=< -PostRegistrationCP.rightSmallTranslYButton.text=> -PostRegistrationCP.rightSmallTranslXButton.text=> -PostRegistrationCP.leftSmallTranslYButton.text=< -PostRegistrationCP.leftSmallTranslZButton.text=< -PostRegistrationCP.rightSmallTranslZButton.text=> -PostRegistrationCP.leftSmallRotaXButton.text=< -PostRegistrationCP.leftSmallRotaYButton.text=< -PostRegistrationCP.leftSmallRotaZButton.text=< -PostRegistrationCP.rightSmallRotaXButton.text=> -PostRegistrationCP.rightSmallRotaYButton.text=> -PostRegistrationCP.rightSmallRotaZButton.text=> -PostRegistrationCP.translXLabel.text=horizontal -PostRegistrationCP.translYLabel.text=vertical -PostRegistrationCP.translZLabel.text=front-back -PostRegistrationCP.rotatXLabel.text=X -PostRegistrationCP.rotatYLabel.text=Y -PostRegistrationCP.rotatZLabel.text=Z -PostRegistrationCP.scaleSmallPlusButton.text=+ -PostRegistrationCP.scaleSmallMinusButton.text=- -PostRegistrationCP.rightTranslationXButton.text=>> -PostRegistrationCP.highlightsLabel.text=highlights -PostRegistrationCP.primaryHighlightsCB.text= -PostRegistrationCP.secondaryHighlightsCB.text= -PostRegistrationCP.renderModeLabel.text=render mode -PostRegistrationCP.fillLabel.text=fill -PostRegistrationCP.linesLabel.text=lines -PostRegistrationCP.pointsLabel.text=points -PostRegistrationCP.primaryFillRB.text= -PostRegistrationCP.secondaryFillRB.text= -PostRegistrationCP.primaryLinesRB.text= -PostRegistrationCP.secondaryLinesRB.text= -PostRegistrationCP.secondaryPointsRB.text= -PostRegistrationCP.primaryPointsRB.text= -PostRegistrationCP.colorButton.toolTipText=reset colors -PostRegistrationCP.colorButton.text=color -PostRegistrationCP.transformationLabel.text=Transformation -PostRegistrationCP.featurePointsLabel.text=Feature points: +PostRegistrationCP.jFormattedTextField1.text=jFormattedTextField1 diff --git a/GUI/src/main/resources/cz/fidentis/analyst/registration/Bundle.properties b/GUI/src/main/resources/cz/fidentis/analyst/registration/Bundle.properties new file mode 100644 index 0000000000000000000000000000000000000000..6953b62b7fb16e67a398aad8372a4fb03f3960d4 --- /dev/null +++ b/GUI/src/main/resources/cz/fidentis/analyst/registration/Bundle.properties @@ -0,0 +1,84 @@ +# To change this license header, choose License Headers in Project Properties. +# To change this template file, choose Tools | Templates +# and open the template in the editor. + +PostRegistrationCP.rightRotationXButton.text= +PostRegistrationCP.viewLabel.text=View: +PostRegistrationCP.frontButton.toolTipText=model front view +PostRegistrationCP.frontButton.text=front +PostRegistrationCP.profileButton.toolTipText=model profile view +PostRegistrationCP.profileButton.text=side +PostRegistrationCP.leftRotationZButton.text= +PostRegistrationCP.primaryFillRB.text= +PostRegistrationCP.rightRotationYButton.text= +PostRegistrationCP.secondaryLinesRB.text= +PostRegistrationCP.rightRotationZButton.text= +PostRegistrationCP.secondaryPointsRB.text= +PostRegistrationCP.primaryPointsRB.text= +PostRegistrationCP.secondaryFillRB.text= +PostRegistrationCP.rotationButton.toolTipText=reset rotation +PostRegistrationCP.rotationButton.text= +PostRegistrationCP.primaryLinesRB.text= +PostRegistrationCP.rotatXLabel.text=X +PostRegistrationCP.rotatYLabel.text=Y +PostRegistrationCP.rotatZLabel.text=Z +PostRegistrationCP.leftRotationXButton.text= +PostRegistrationCP.primaryColorPanel.toolTipText=sets color of primary model +PostRegistrationCP.secondaryColorPanel.toolTipText=sets color of secondary model +PostRegistrationCP.transparencySlider.toolTipText=sets model transparency +PostRegistrationCP.secondaryLabel.toolTipText= +PostRegistrationCP.secondaryLabel.text=secondary +PostRegistrationCP.leftRotationYButton.text= +PostRegistrationCP.primaryLabel.text=primary +PostRegistrationCP.highlightsLabel.text=highlights +PostRegistrationCP.leftTranslationZButton.text= +PostRegistrationCP.primaryHighlightsCB.text= +PostRegistrationCP.leftTranslationXButton.text= +PostRegistrationCP.secondaryHighlightsCB.text= +PostRegistrationCP.rightTranslationZButton.text= +PostRegistrationCP.renderModeLabel.text=render mode +PostRegistrationCP.translYLabel.text=vertical +PostRegistrationCP.fillLabel.text=fill +PostRegistrationCP.translZLabel.text=front-back +PostRegistrationCP.translXLabel.text=horizontal +PostRegistrationCP.rightTranslationYButton.text= +PostRegistrationCP.applyButton.toolTipText=apply transformations +PostRegistrationCP.applyButton.text=Apply changes +PostRegistrationCP.colorButton.toolTipText=reset colors +PostRegistrationCP.colorButton.text=color +PostRegistrationCP.highShiftRB.toolTipText=set high shifting amount +PostRegistrationCP.highShiftRB.text=high +PostRegistrationCP.linesLabel.text=lines +PostRegistrationCP.lowShiftRB.toolTipText=set low shifting amount +PostRegistrationCP.lowShiftRB.text=low +PostRegistrationCP.transparencyButton.toolTipText=reset transparency +PostRegistrationCP.transparencyButton.text=opacity +PostRegistrationCP.shiftLabel.toolTipText=transformation amount +PostRegistrationCP.shiftLabel.text=shift +PostRegistrationCP.pointsLabel.text=points +PostRegistrationCP.modelLabel.text=Model: +PostRegistrationCP.leftTranslationYButton.text= +PostRegistrationCP.translationXFTF.toolTipText= +PostRegistrationCP.rightTranslationXButton.text= +PostRegistrationCP.visualizationLabel.text=Visualization +PostRegistrationCP.jLabel2.text=Translation: +PostRegistrationCP.translationButton.toolTipText=reset translation +PostRegistrationCP.translationButton.text= +PostRegistrationCP.transformationLabel.text=Transformation +PostRegistrationCP.registrationAdjustmentLabel.text=Registration adjustment +PostRegistrationCP.featurePointsLabel.text=Feature points: +PostRegistrationCP.resetAllButton.toolTipText=reset all transformations +PostRegistrationCP.resetAllButton.text=reset all +PostRegistrationCP.thersholdButton.text=thershold +PostRegistrationCP.scaleButton.toolTipText=reset scale +PostRegistrationCP.scaleButton.text= +PostRegistrationCP.thersholdUpButton.text= +PostRegistrationCP.scaleFTF.toolTipText= +PostRegistrationCP.thresholdDownButton.text= +PostRegistrationCP.scaleMinusButton.text= +PostRegistrationCP.featurePointsButton.text=show +PostRegistrationCP.scalePlusButton.text= +PostRegistrationCP.jLabel4.text=Scale: +PostRegistrationCP.backfaceButton.text=hide backface +PostRegistrationCP.jLabel3.text=Rotation: +PostRegistrationCP.rotationXFTF.toolTipText= diff --git a/GUI/src/main/resources/refresh-line.png b/GUI/src/main/resources/refresh-line.png new file mode 100644 index 0000000000000000000000000000000000000000..68d7b2f1601b67f6e0cd171b2a03a81d1d9a1317 Binary files /dev/null and b/GUI/src/main/resources/refresh-line.png differ diff --git a/GUI/src/main/resources/restart-line.png b/GUI/src/main/resources/restart-line.png new file mode 100644 index 0000000000000000000000000000000000000000..8c3c65ec8f540dc3e8a78c1aa56b3d0210a20bdd Binary files /dev/null and b/GUI/src/main/resources/restart-line.png differ diff --git a/GUI/src/main/resources/subtract-line.png b/GUI/src/main/resources/subtract-line.png new file mode 100644 index 0000000000000000000000000000000000000000..1050607dd0fde9ef1fa0a2b1bfd1a552ce4ec343 Binary files /dev/null and b/GUI/src/main/resources/subtract-line.png differ diff --git a/MeshModel/pom.xml b/MeshModel/pom.xml index 33f1efcc3d2f86834d051c0b6df40385f1d54d29..762834084c81ccc852da5fd2cd16d6505315729f 100644 --- a/MeshModel/pom.xml +++ b/MeshModel/pom.xml @@ -21,6 +21,7 @@ <publicPackage>cz.fidentis.analyst.mesh.io.*</publicPackage> <publicPackage>cz.fidentis.analyst.mesh.*</publicPackage> <publicPackage>cz.fidentis.analyst.kdtree.*</publicPackage> + <publicPackage>cz.fidentis.analyst.feature.*</publicPackage> <!--<publicPackage>cz.fidentis.analyst.mesh.core.MeshFacet</publicPackage>--> <!--<publicPackage>cz.fidentis.analyst.mesh.core.MeshPoint</publicPackage>--> </publicPackages>