mev-4.0.01/source/org/tigr/microarray/mev/cluster/gui/impl/pca/PCASelectionAreaDialog.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 package org.tigr.microarray.mev.cluster.gui.impl.pca;
2 26 Feb 07 jari 2
2 26 Feb 07 jari 3 import java.awt.BorderLayout;
2 26 Feb 07 jari 4 import java.awt.Color;
2 26 Feb 07 jari 5 import java.awt.Dimension;
2 26 Feb 07 jari 6 import java.awt.Frame;
2 26 Feb 07 jari 7 import java.awt.GridBagConstraints;
2 26 Feb 07 jari 8 import java.awt.GridBagLayout;
2 26 Feb 07 jari 9 import java.awt.GridLayout;
2 26 Feb 07 jari 10 import java.awt.Toolkit;
2 26 Feb 07 jari 11 import java.awt.event.ActionEvent;
2 26 Feb 07 jari 12 import java.awt.event.ActionListener;
2 26 Feb 07 jari 13 import java.awt.event.FocusEvent;
2 26 Feb 07 jari 14 import java.awt.event.FocusListener;
2 26 Feb 07 jari 15 import java.awt.event.WindowEvent;
2 26 Feb 07 jari 16
2 26 Feb 07 jari 17 import javax.swing.BorderFactory;
2 26 Feb 07 jari 18 import javax.swing.JLabel;
2 26 Feb 07 jari 19 import javax.swing.JOptionPane;
2 26 Feb 07 jari 20 import javax.swing.JPanel;
2 26 Feb 07 jari 21 import javax.swing.JSlider;
2 26 Feb 07 jari 22 import javax.swing.JTextField;
2 26 Feb 07 jari 23 import javax.swing.border.EmptyBorder;
2 26 Feb 07 jari 24 import javax.swing.border.EtchedBorder;
2 26 Feb 07 jari 25 import javax.swing.event.ChangeEvent;
2 26 Feb 07 jari 26 import javax.swing.event.ChangeListener;
2 26 Feb 07 jari 27
2 26 Feb 07 jari 28 import org.tigr.microarray.mev.cluster.gui.impl.GUIFactory;
2 26 Feb 07 jari 29 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.AlgorithmDialog;
2 26 Feb 07 jari 30 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.DialogListener;
2 26 Feb 07 jari 31 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.dialogHelpUtil.HelpWindow;
2 26 Feb 07 jari 32
2 26 Feb 07 jari 33 public class PCASelectionAreaDialog extends AlgorithmDialog {
2 26 Feb 07 jari 34     private int result;
2 26 Feb 07 jari 35     private Content3D content;
2 26 Feb 07 jari 36     private JTextField textField1;
2 26 Feb 07 jari 37     private JTextField textField2;
2 26 Feb 07 jari 38     private JTextField textField3;
2 26 Feb 07 jari 39     private JTextField textField4;
2 26 Feb 07 jari 40     private JTextField textField5;
2 26 Feb 07 jari 41     private JTextField textField6;
2 26 Feb 07 jari 42     
2 26 Feb 07 jari 43     private float positionX;
2 26 Feb 07 jari 44     private float positionY;
2 26 Feb 07 jari 45     private float positionZ;
2 26 Feb 07 jari 46     private float sizeX;
2 26 Feb 07 jari 47     private float sizeY;
2 26 Feb 07 jari 48     private float sizeZ;
2 26 Feb 07 jari 49     
2 26 Feb 07 jari 50     private int initSizePos;
2 26 Feb 07 jari 51     private float initSize;
2 26 Feb 07 jari 52     
2 26 Feb 07 jari 53     private final float maxPos;
2 26 Feb 07 jari 54     
2 26 Feb 07 jari 55     private JSlider posXSlider, posYSlider, posZSlider, sizeXSlider, sizeYSlider, sizeZSlider;
2 26 Feb 07 jari 56     
2 26 Feb 07 jari 57     /**
2 26 Feb 07 jari 58      * Constructs a <code>PCASelectionAreaDialog</code> with specified initial parameters.
2 26 Feb 07 jari 59      */
2 26 Feb 07 jari 60     public PCASelectionAreaDialog(Frame parent, float positionX, float positionY, float positionZ,
2 26 Feb 07 jari 61     float sizeX, float sizeY, float sizeZ) {
2 26 Feb 07 jari 62         super(parent, "PCA selection area configuration", true);
2 26 Feb 07 jari 63         
2 26 Feb 07 jari 64         this.positionX = positionX;
2 26 Feb 07 jari 65         this.positionY = positionY;
2 26 Feb 07 jari 66         this.positionZ = positionZ;
2 26 Feb 07 jari 67         this.sizeX = sizeX;
2 26 Feb 07 jari 68         this.sizeY = sizeY;
2 26 Feb 07 jari 69         this.sizeZ = sizeZ;
2 26 Feb 07 jari 70         
2 26 Feb 07 jari 71         maxPos = positionX;
2 26 Feb 07 jari 72         
2 26 Feb 07 jari 73         Listener listener = new Listener();
2 26 Feb 07 jari 74         addWindowListener(listener);
2 26 Feb 07 jari 75         
2 26 Feb 07 jari 76         JPanel parameters = new JPanel(new GridLayout(0, 2, 10, 0));
2 26 Feb 07 jari 77         parameters.setBorder(new EmptyBorder(20, 20, 20, 10));
2 26 Feb 07 jari 78         parameters.setBackground(Color.white);
2 26 Feb 07 jari 79         
2 26 Feb 07 jari 80         parameters.add(new JLabel("Position X  "));
2 26 Feb 07 jari 81         textField1 = new JTextField(Float.toString(positionX), 5);
2 26 Feb 07 jari 82         parameters.add(textField1, BorderLayout.EAST);
2 26 Feb 07 jari 83         
2 26 Feb 07 jari 84         parameters.add(new JLabel("Position Y  "));
2 26 Feb 07 jari 85         textField2 = new JTextField(Float.toString(positionY), 5);
2 26 Feb 07 jari 86         parameters.add(textField2, BorderLayout.EAST);
2 26 Feb 07 jari 87         
2 26 Feb 07 jari 88         parameters.add(new JLabel("Position Z  "));
2 26 Feb 07 jari 89         textField3 = new JTextField(Float.toString(positionZ), 5);
2 26 Feb 07 jari 90         parameters.add(textField3, BorderLayout.EAST);
2 26 Feb 07 jari 91         
2 26 Feb 07 jari 92         parameters.add(new JLabel("Size X  "));
2 26 Feb 07 jari 93         textField4 = new JTextField(Float.toString(sizeX), 5);
2 26 Feb 07 jari 94         parameters.add(textField4, BorderLayout.EAST);
2 26 Feb 07 jari 95         
2 26 Feb 07 jari 96         parameters.add(new JLabel("Size Y "));
2 26 Feb 07 jari 97         textField5 = new JTextField(Float.toString(sizeY), 5);
2 26 Feb 07 jari 98         parameters.add(textField5, BorderLayout.EAST);
2 26 Feb 07 jari 99         
2 26 Feb 07 jari 100         parameters.add(new JLabel("Size Z "));
2 26 Feb 07 jari 101         textField6 = new JTextField(Float.toString(sizeZ), 5);
2 26 Feb 07 jari 102         parameters.add(textField6, BorderLayout.EAST);
2 26 Feb 07 jari 103         
2 26 Feb 07 jari 104         
2 26 Feb 07 jari 105         JPanel panel3 = new JPanel(new BorderLayout());
2 26 Feb 07 jari 106         panel3.setForeground(Color.white);
2 26 Feb 07 jari 107         panel3.setBorder(BorderFactory.createLineBorder(Color.gray));
2 26 Feb 07 jari 108         panel3.setBackground(Color.white);
2 26 Feb 07 jari 109         panel3.add(parameters, BorderLayout.WEST);
2 26 Feb 07 jari 110         panel3.add(new JLabel(GUIFactory.getIcon("dialog_button_bar.gif")), BorderLayout.EAST);
2 26 Feb 07 jari 111         
2 26 Feb 07 jari 112         JPanel panel1 = new JPanel(new BorderLayout());
2 26 Feb 07 jari 113         panel1.add(panel3, BorderLayout.CENTER);
2 26 Feb 07 jari 114         addContent(panel1);
2 26 Feb 07 jari 115         setActionListeners(listener);
2 26 Feb 07 jari 116         pack();
2 26 Feb 07 jari 117         setResizable(false);
2 26 Feb 07 jari 118     }
2 26 Feb 07 jari 119     
2 26 Feb 07 jari 120     public PCASelectionAreaDialog(Content3D content, Frame parent, float positionX, float positionY, float positionZ,
2 26 Feb 07 jari 121     float sizeX, float sizeY, float sizeZ, float maxPosition) {
2 26 Feb 07 jari 122         super(parent, "PCA selection area configuration", false);
2 26 Feb 07 jari 123         
2 26 Feb 07 jari 124         this.positionX = positionX;
2 26 Feb 07 jari 125         this.positionY = positionY;
2 26 Feb 07 jari 126         this.positionZ = positionZ;
2 26 Feb 07 jari 127         this.sizeX = sizeX;
2 26 Feb 07 jari 128         this.sizeY = sizeY;
2 26 Feb 07 jari 129         this.sizeZ = sizeZ;
2 26 Feb 07 jari 130         this.content = content;
2 26 Feb 07 jari 131         this.maxPos = maxPosition;
2 26 Feb 07 jari 132         //this.maxPos = (float)(maxPos + 0.05f*maxPos); // make the bounds a bit larger than the actual extent of the graph
2 26 Feb 07 jari 133         
2 26 Feb 07 jari 134         posXSlider = new JSlider(-1000, 1000, 0);
2 26 Feb 07 jari 135         posYSlider = new JSlider(-1000, 1000, 0);
2 26 Feb 07 jari 136         posZSlider = new JSlider(-1000, 1000, 0);
2 26 Feb 07 jari 137         
2 26 Feb 07 jari 138         initSizePos = getSliderPos(sizeX);
2 26 Feb 07 jari 139         initSize = sizeX;
2 26 Feb 07 jari 140         sizeXSlider = new JSlider(0, 2000, initSizePos);
2 26 Feb 07 jari 141         sizeYSlider = new JSlider(0, 2000, initSizePos);
2 26 Feb 07 jari 142         sizeZSlider = new JSlider(0, 2000, initSizePos);
2 26 Feb 07 jari 143         
2 26 Feb 07 jari 144         posXSlider.setBackground(Color.white);
2 26 Feb 07 jari 145         posYSlider.setBackground(Color.white);
2 26 Feb 07 jari 146         posZSlider.setBackground(Color.white);
2 26 Feb 07 jari 147         sizeXSlider.setBackground(Color.white);
2 26 Feb 07 jari 148         sizeYSlider.setBackground(Color.white);
2 26 Feb 07 jari 149         sizeZSlider.setBackground(Color.white);
2 26 Feb 07 jari 150         
2 26 Feb 07 jari 151         textField1 = new JTextField(Float.toString(positionX), 5);
2 26 Feb 07 jari 152         textField2 = new JTextField(Float.toString(positionY), 5);
2 26 Feb 07 jari 153         textField3 = new JTextField(Float.toString(positionZ), 5);
2 26 Feb 07 jari 154         textField4 = new JTextField(Float.toString(sizeX), 5);
2 26 Feb 07 jari 155         textField5 = new JTextField(Float.toString(sizeY), 5);
2 26 Feb 07 jari 156         textField6 = new JTextField(Float.toString(sizeY), 5);
2 26 Feb 07 jari 157         
2 26 Feb 07 jari 158         textField1.addActionListener(new ActionListener(){
2 26 Feb 07 jari 159             public void actionPerformed(ActionEvent evt) {
2 26 Feb 07 jari 160                 int sliderValue;
2 26 Feb 07 jari 161                 try {
2 26 Feb 07 jari 162                     String s = textField1.getText();
2 26 Feb 07 jari 163                     float val = Float.parseFloat(s);
2 26 Feb 07 jari 164                     sliderValue = getSliderPos(val);
2 26 Feb 07 jari 165                     if (sliderValue >= 1000) {
2 26 Feb 07 jari 166                         posXSlider.setValue(1000);
2 26 Feb 07 jari 167                         textField1.setText("" + (float)(maxPos));
2 26 Feb 07 jari 168                     }
2 26 Feb 07 jari 169                     else if (sliderValue <= -1000) {
2 26 Feb 07 jari 170                         posXSlider.setValue(-1000);
2 26 Feb 07 jari 171                         textField1.setText("" + (float)(-1f*maxPos));
2 26 Feb 07 jari 172                     } else {
2 26 Feb 07 jari 173                         posXSlider.setValue(sliderValue);
2 26 Feb 07 jari 174                         textField1.setText("" + (float)val);
2 26 Feb 07 jari 175                     }
2 26 Feb 07 jari 176                 } catch (Exception exc){
2 26 Feb 07 jari 177                     posXSlider.setValue(0);
2 26 Feb 07 jari 178                     textField1.setText("0.0");
2 26 Feb 07 jari 179                     setPositionX(0f);
2 26 Feb 07 jari 180                     updateContent();
2 26 Feb 07 jari 181                 }
2 26 Feb 07 jari 182                 
2 26 Feb 07 jari 183                 String posString = textField1.getText();
2 26 Feb 07 jari 184                 float posX = Float.parseFloat(posString);
2 26 Feb 07 jari 185                 setPositionX(posX);
2 26 Feb 07 jari 186                 updateContent();
2 26 Feb 07 jari 187             }
2 26 Feb 07 jari 188         });
2 26 Feb 07 jari 189         
2 26 Feb 07 jari 190         textField1.addFocusListener(new FocusListener() {
2 26 Feb 07 jari 191             public void focusLost(FocusEvent e) {
2 26 Feb 07 jari 192                 int sliderValue;
2 26 Feb 07 jari 193                 try {
2 26 Feb 07 jari 194                     String s = textField1.getText();
2 26 Feb 07 jari 195                     float val = Float.parseFloat(s);
2 26 Feb 07 jari 196                     sliderValue = getSliderPos(val);
2 26 Feb 07 jari 197                     if (sliderValue >= 1000) {
2 26 Feb 07 jari 198                         posXSlider.setValue(1000);
2 26 Feb 07 jari 199                         textField1.setText("" + (float)(maxPos));
2 26 Feb 07 jari 200                     }
2 26 Feb 07 jari 201                     else if (sliderValue <= -1000) {
2 26 Feb 07 jari 202                         posXSlider.setValue(-1000);
2 26 Feb 07 jari 203                         textField1.setText("" + (float)(-1f*maxPos));
2 26 Feb 07 jari 204                     } else {
2 26 Feb 07 jari 205                         posXSlider.setValue(sliderValue);
2 26 Feb 07 jari 206                         textField1.setText("" + (float)val);
2 26 Feb 07 jari 207                     }
2 26 Feb 07 jari 208                 } catch (Exception exc){
2 26 Feb 07 jari 209                     posXSlider.setValue(0);
2 26 Feb 07 jari 210                     textField1.setText("0.0");
2 26 Feb 07 jari 211                     setPositionX(0f);
2 26 Feb 07 jari 212                     updateContent();
2 26 Feb 07 jari 213                 }
2 26 Feb 07 jari 214                 
2 26 Feb 07 jari 215                 String posString = textField1.getText();
2 26 Feb 07 jari 216                 float posX = Float.parseFloat(posString);
2 26 Feb 07 jari 217                 setPositionX(posX);
2 26 Feb 07 jari 218                 updateContent();                
2 26 Feb 07 jari 219             }
2 26 Feb 07 jari 220             
2 26 Feb 07 jari 221                 public void focusGained(FocusEvent e) {
2 26 Feb 07 jari 222     }            
2 26 Feb 07 jari 223         });
2 26 Feb 07 jari 224         
2 26 Feb 07 jari 225         posXSlider.addChangeListener(new ChangeListener() {
2 26 Feb 07 jari 226             public void stateChanged(ChangeEvent e) {
2 26 Feb 07 jari 227                 JSlider source = (JSlider)e.getSource();
2 26 Feb 07 jari 228                 int value = (int)source.getValue();
2 26 Feb 07 jari 229                 float displayValue = getCoord(value);
2 26 Feb 07 jari 230                 if (value == -1000) {
2 26 Feb 07 jari 231                     displayValue = (float)((-1f)*maxPos);
2 26 Feb 07 jari 232                 }
2 26 Feb 07 jari 233                 if (value == 1000) {
2 26 Feb 07 jari 234                     displayValue = maxPos;
2 26 Feb 07 jari 235                 }
2 26 Feb 07 jari 236                 textField1.setText("" + displayValue);
2 26 Feb 07 jari 237                 String dString = textField1.getText();
2 26 Feb 07 jari 238                 float pos = Float.parseFloat(dString);
2 26 Feb 07 jari 239                 setPositionX(pos);
2 26 Feb 07 jari 240                 updateContent();
2 26 Feb 07 jari 241             }
2 26 Feb 07 jari 242         });
2 26 Feb 07 jari 243         
2 26 Feb 07 jari 244         
2 26 Feb 07 jari 245         textField2.addActionListener(new ActionListener(){
2 26 Feb 07 jari 246             public void actionPerformed(ActionEvent evt) {
2 26 Feb 07 jari 247                 int sliderValue;
2 26 Feb 07 jari 248                 try {
2 26 Feb 07 jari 249                     String s = textField2.getText();
2 26 Feb 07 jari 250                     float val = Float.parseFloat(s);
2 26 Feb 07 jari 251                     sliderValue = getSliderPos(val);
2 26 Feb 07 jari 252                     if (sliderValue >= 1000) {
2 26 Feb 07 jari 253                         posYSlider.setValue(1000);
2 26 Feb 07 jari 254                         textField2.setText("" + (float)(maxPos));
2 26 Feb 07 jari 255                     }
2 26 Feb 07 jari 256                     else if (sliderValue <= -1000) {
2 26 Feb 07 jari 257                         posYSlider.setValue(-1000);
2 26 Feb 07 jari 258                         textField2.setText("" + (float)(-1f*maxPos));
2 26 Feb 07 jari 259                     } else {
2 26 Feb 07 jari 260                         posYSlider.setValue(sliderValue);
2 26 Feb 07 jari 261                         textField2.setText("" + (float)val);
2 26 Feb 07 jari 262                     }
2 26 Feb 07 jari 263                 } catch (Exception exc){
2 26 Feb 07 jari 264                     posYSlider.setValue(0);
2 26 Feb 07 jari 265                     textField2.setText("0.0");
2 26 Feb 07 jari 266                     setPositionY(0f);
2 26 Feb 07 jari 267                     updateContent();
2 26 Feb 07 jari 268                 }
2 26 Feb 07 jari 269                 
2 26 Feb 07 jari 270                 String posString = textField2.getText();
2 26 Feb 07 jari 271                 float pos = Float.parseFloat(posString);
2 26 Feb 07 jari 272                 setPositionY(pos);
2 26 Feb 07 jari 273                 updateContent();
2 26 Feb 07 jari 274             }
2 26 Feb 07 jari 275         });       
2 26 Feb 07 jari 276         
2 26 Feb 07 jari 277         textField2.addFocusListener(new FocusListener() {
2 26 Feb 07 jari 278             public void focusLost(FocusEvent e) {
2 26 Feb 07 jari 279                 int sliderValue;
2 26 Feb 07 jari 280                 try {
2 26 Feb 07 jari 281                     String s = textField2.getText();
2 26 Feb 07 jari 282                     float val = Float.parseFloat(s);
2 26 Feb 07 jari 283                     sliderValue = getSliderPos(val);
2 26 Feb 07 jari 284                     if (sliderValue >= 1000) {
2 26 Feb 07 jari 285                         posYSlider.setValue(1000);
2 26 Feb 07 jari 286                         textField2.setText("" + (float)(maxPos));
2 26 Feb 07 jari 287                     }
2 26 Feb 07 jari 288                     else if (sliderValue <= -1000) {
2 26 Feb 07 jari 289                         posYSlider.setValue(-1000);
2 26 Feb 07 jari 290                         textField2.setText("" + (float)(-1f*maxPos));
2 26 Feb 07 jari 291                     } else {
2 26 Feb 07 jari 292                         posYSlider.setValue(sliderValue);
2 26 Feb 07 jari 293                         textField2.setText("" + (float)val);
2 26 Feb 07 jari 294                     }
2 26 Feb 07 jari 295                 } catch (Exception exc){
2 26 Feb 07 jari 296                     posYSlider.setValue(0);
2 26 Feb 07 jari 297                     textField2.setText("0.0");
2 26 Feb 07 jari 298                     setPositionY(0f);
2 26 Feb 07 jari 299                     updateContent();
2 26 Feb 07 jari 300                 }
2 26 Feb 07 jari 301                 
2 26 Feb 07 jari 302                 String posString = textField2.getText();
2 26 Feb 07 jari 303                 float pos = Float.parseFloat(posString);
2 26 Feb 07 jari 304                 setPositionY(pos);
2 26 Feb 07 jari 305                 updateContent();                
2 26 Feb 07 jari 306             }
2 26 Feb 07 jari 307             
2 26 Feb 07 jari 308             public void focusGained(FocusEvent e) {
2 26 Feb 07 jari 309             }          
2 26 Feb 07 jari 310         });
2 26 Feb 07 jari 311         
2 26 Feb 07 jari 312         posYSlider.addChangeListener(new ChangeListener() {
2 26 Feb 07 jari 313             public void stateChanged(ChangeEvent e) {
2 26 Feb 07 jari 314                 JSlider source = (JSlider)e.getSource();
2 26 Feb 07 jari 315                 int value = (int)source.getValue();
2 26 Feb 07 jari 316                 float displayValue = getCoord(value);
2 26 Feb 07 jari 317                 if (value == -1000) {
2 26 Feb 07 jari 318                     displayValue = (float)((-1f)*maxPos);
2 26 Feb 07 jari 319                 }
2 26 Feb 07 jari 320                 if (value == 1000) {
2 26 Feb 07 jari 321                     displayValue = maxPos;
2 26 Feb 07 jari 322                 }
2 26 Feb 07 jari 323                 textField2.setText("" + displayValue);
2 26 Feb 07 jari 324                 String dString = textField2.getText();
2 26 Feb 07 jari 325                 float pos = Float.parseFloat(dString);
2 26 Feb 07 jari 326                 setPositionY(pos);
2 26 Feb 07 jari 327                 updateContent();
2 26 Feb 07 jari 328             }
2 26 Feb 07 jari 329         });
2 26 Feb 07 jari 330         
2 26 Feb 07 jari 331         
2 26 Feb 07 jari 332         textField3.addActionListener(new ActionListener(){
2 26 Feb 07 jari 333             public void actionPerformed(ActionEvent evt) {
2 26 Feb 07 jari 334                 int sliderValue;
2 26 Feb 07 jari 335                 try {
2 26 Feb 07 jari 336                     String s = textField3.getText();
2 26 Feb 07 jari 337                     float val = Float.parseFloat(s);
2 26 Feb 07 jari 338                     sliderValue = getSliderPos(val);
2 26 Feb 07 jari 339                     if (sliderValue >= 1000) {
2 26 Feb 07 jari 340                         posZSlider.setValue(1000);
2 26 Feb 07 jari 341                         textField3.setText("" + (float)(maxPos));
2 26 Feb 07 jari 342                     }
2 26 Feb 07 jari 343                     else if (sliderValue <= -1000) {
2 26 Feb 07 jari 344                         posZSlider.setValue(-1000);
2 26 Feb 07 jari 345                         textField3.setText("" + (float)(-1f*maxPos));
2 26 Feb 07 jari 346                     } else {
2 26 Feb 07 jari 347                         posZSlider.setValue(sliderValue);
2 26 Feb 07 jari 348                         textField3.setText("" + (float)val);
2 26 Feb 07 jari 349                     }
2 26 Feb 07 jari 350                 } catch (Exception exc){
2 26 Feb 07 jari 351                     posZSlider.setValue(0);
2 26 Feb 07 jari 352                     textField3.setText("0.0");
2 26 Feb 07 jari 353                     setPositionZ(0f);
2 26 Feb 07 jari 354                     updateContent();
2 26 Feb 07 jari 355                 }
2 26 Feb 07 jari 356                 
2 26 Feb 07 jari 357                 String posString = textField3.getText();
2 26 Feb 07 jari 358                 float pos = Float.parseFloat(posString);
2 26 Feb 07 jari 359                 setPositionZ(pos);
2 26 Feb 07 jari 360                 updateContent();
2 26 Feb 07 jari 361             }
2 26 Feb 07 jari 362         });     
2 26 Feb 07 jari 363         
2 26 Feb 07 jari 364         textField3.addFocusListener(new FocusListener() {
2 26 Feb 07 jari 365             public void focusLost(FocusEvent e) {
2 26 Feb 07 jari 366                 int sliderValue;
2 26 Feb 07 jari 367                 try {
2 26 Feb 07 jari 368                     String s = textField3.getText();
2 26 Feb 07 jari 369                     float val = Float.parseFloat(s);
2 26 Feb 07 jari 370                     sliderValue = getSliderPos(val);
2 26 Feb 07 jari 371                     if (sliderValue >= 1000) {
2 26 Feb 07 jari 372                         posZSlider.setValue(1000);
2 26 Feb 07 jari 373                         textField3.setText("" + (float)(maxPos));
2 26 Feb 07 jari 374                     }
2 26 Feb 07 jari 375                     else if (sliderValue <= -1000) {
2 26 Feb 07 jari 376                         posZSlider.setValue(-1000);
2 26 Feb 07 jari 377                         textField3.setText("" + (float)(-1f*maxPos));
2 26 Feb 07 jari 378                     } else {
2 26 Feb 07 jari 379                         posZSlider.setValue(sliderValue);
2 26 Feb 07 jari 380                         textField3.setText("" + (float)val);
2 26 Feb 07 jari 381                     }
2 26 Feb 07 jari 382                 } catch (Exception exc){
2 26 Feb 07 jari 383                     posZSlider.setValue(0);
2 26 Feb 07 jari 384                     textField3.setText("0.0");
2 26 Feb 07 jari 385                     setPositionZ(0f);
2 26 Feb 07 jari 386                     updateContent();
2 26 Feb 07 jari 387                 }
2 26 Feb 07 jari 388                 
2 26 Feb 07 jari 389                 String posString = textField3.getText();
2 26 Feb 07 jari 390                 float pos = Float.parseFloat(posString);
2 26 Feb 07 jari 391                 setPositionZ(pos);
2 26 Feb 07 jari 392                 updateContent();                
2 26 Feb 07 jari 393             }
2 26 Feb 07 jari 394             
2 26 Feb 07 jari 395             public void focusGained(FocusEvent e) {
2 26 Feb 07 jari 396             }          
2 26 Feb 07 jari 397         });            
2 26 Feb 07 jari 398             
2 26 Feb 07 jari 399         posZSlider.addChangeListener(new ChangeListener() {
2 26 Feb 07 jari 400             public void stateChanged(ChangeEvent e) {
2 26 Feb 07 jari 401                 JSlider source = (JSlider)e.getSource();
2 26 Feb 07 jari 402                 int value = (int)source.getValue();
2 26 Feb 07 jari 403                 float displayValue = getCoord(value);
2 26 Feb 07 jari 404                 if (value == -1000) {
2 26 Feb 07 jari 405                     displayValue = (float)((-1f)*maxPos);
2 26 Feb 07 jari 406                 }
2 26 Feb 07 jari 407                 if (value == 1000) {
2 26 Feb 07 jari 408                     displayValue = maxPos;
2 26 Feb 07 jari 409                 }
2 26 Feb 07 jari 410                 textField3.setText("" + displayValue);
2 26 Feb 07 jari 411                 String dString = textField3.getText();
2 26 Feb 07 jari 412                 float pos = Float.parseFloat(dString);
2 26 Feb 07 jari 413                 setPositionZ(pos);
2 26 Feb 07 jari 414                 updateContent();
2 26 Feb 07 jari 415             }
2 26 Feb 07 jari 416         });     
2 26 Feb 07 jari 417         
2 26 Feb 07 jari 418         
2 26 Feb 07 jari 419         textField4.addActionListener(new ActionListener(){
2 26 Feb 07 jari 420             public void actionPerformed(ActionEvent evt) {
2 26 Feb 07 jari 421                 int sliderValue;
2 26 Feb 07 jari 422                 try {
2 26 Feb 07 jari 423                     String s = textField4.getText();
2 26 Feb 07 jari 424                     float val = Float.parseFloat(s);
2 26 Feb 07 jari 425                     sliderValue = getSliderPos(val);
2 26 Feb 07 jari 426                     if (sliderValue >= 2000) {
2 26 Feb 07 jari 427                         sizeXSlider.setValue(2000);
2 26 Feb 07 jari 428                         textField4.setText("" + (float)(2*maxPos));
2 26 Feb 07 jari 429                     }
2 26 Feb 07 jari 430                     else if (sliderValue == 0) {
2 26 Feb 07 jari 431                         sizeXSlider.setValue(0);
2 26 Feb 07 jari 432                         textField4.setText("" + 0.0f);
2 26 Feb 07 jari 433                     } else {
2 26 Feb 07 jari 434                         sizeXSlider.setValue(sliderValue);
2 26 Feb 07 jari 435                         textField4.setText("" + (float)val);
2 26 Feb 07 jari 436                     }
2 26 Feb 07 jari 437                 } catch (Exception exc){
2 26 Feb 07 jari 438                     sizeXSlider.setValue(initSizePos);
2 26 Feb 07 jari 439                     textField4.setText("" + initSize);
2 26 Feb 07 jari 440                     setSizeX(initSize);
2 26 Feb 07 jari 441                     updateContent();
2 26 Feb 07 jari 442                 }
2 26 Feb 07 jari 443                 
2 26 Feb 07 jari 444                 String sizeString = textField4.getText();
2 26 Feb 07 jari 445                 float size = Float.parseFloat(sizeString);
2 26 Feb 07 jari 446                 setSizeX(size);
2 26 Feb 07 jari 447                 updateContent();
2 26 Feb 07 jari 448             }
2 26 Feb 07 jari 449         });   
2 26 Feb 07 jari 450         
2 26 Feb 07 jari 451         textField4.addFocusListener(new FocusListener() {
2 26 Feb 07 jari 452             public void focusLost(FocusEvent e) {
2 26 Feb 07 jari 453                 int sliderValue;
2 26 Feb 07 jari 454                 try {
2 26 Feb 07 jari 455                     String s = textField4.getText();
2 26 Feb 07 jari 456                     float val = Float.parseFloat(s);
2 26 Feb 07 jari 457                     sliderValue = getSliderPos(val);
2 26 Feb 07 jari 458                     if (sliderValue >= 2000) {
2 26 Feb 07 jari 459                         sizeXSlider.setValue(2000);
2 26 Feb 07 jari 460                         textField4.setText("" + (float)(2*maxPos));
2 26 Feb 07 jari 461                     }
2 26 Feb 07 jari 462                     else if (sliderValue == 0) {
2 26 Feb 07 jari 463                         sizeXSlider.setValue(0);
2 26 Feb 07 jari 464                         textField4.setText("" + 0.0f);
2 26 Feb 07 jari 465                     } else {
2 26 Feb 07 jari 466                         sizeXSlider.setValue(sliderValue);
2 26 Feb 07 jari 467                         textField4.setText("" + (float)val);
2 26 Feb 07 jari 468                     }
2 26 Feb 07 jari 469                 } catch (Exception exc){
2 26 Feb 07 jari 470                     sizeXSlider.setValue(initSizePos);
2 26 Feb 07 jari 471                     textField4.setText("" + initSize);
2 26 Feb 07 jari 472                     setSizeX(initSize);
2 26 Feb 07 jari 473                     updateContent();
2 26 Feb 07 jari 474                 }
2 26 Feb 07 jari 475                 
2 26 Feb 07 jari 476                 String sizeString = textField4.getText();
2 26 Feb 07 jari 477                 float size = Float.parseFloat(sizeString);
2 26 Feb 07 jari 478                 setSizeX(size);
2 26 Feb 07 jari 479                 updateContent();                
2 26 Feb 07 jari 480             }
2 26 Feb 07 jari 481             
2 26 Feb 07 jari 482             public void focusGained(FocusEvent e) {
2 26 Feb 07 jari 483             }            
2 26 Feb 07 jari 484         });
2 26 Feb 07 jari 485         
2 26 Feb 07 jari 486         sizeXSlider.addChangeListener(new ChangeListener(){
2 26 Feb 07 jari 487             public void stateChanged(ChangeEvent e) {
2 26 Feb 07 jari 488                 JSlider source = (JSlider)e.getSource();
2 26 Feb 07 jari 489                 int value = (int)source.getValue();
2 26 Feb 07 jari 490                 float displayValue = getCoord(value);      
2 26 Feb 07 jari 491                 if (value == 0) {
2 26 Feb 07 jari 492                     displayValue = 0f;
2 26 Feb 07 jari 493                 } 
2 26 Feb 07 jari 494                 if (value == 2000) {
2 26 Feb 07 jari 495                     displayValue = (float)(2*maxPos);
2 26 Feb 07 jari 496                 }
2 26 Feb 07 jari 497                 textField4.setText("" + displayValue);
2 26 Feb 07 jari 498                 String dString = textField4.getText();
2 26 Feb 07 jari 499                 float size = Float.parseFloat(dString);
2 26 Feb 07 jari 500                 setSizeX(size);
2 26 Feb 07 jari 501                 updateContent();
2 26 Feb 07 jari 502             }
2 26 Feb 07 jari 503         });
2 26 Feb 07 jari 504         
2 26 Feb 07 jari 505         
2 26 Feb 07 jari 506         textField5.addActionListener(new ActionListener(){
2 26 Feb 07 jari 507             public void actionPerformed(ActionEvent evt) {
2 26 Feb 07 jari 508                 int sliderValue;
2 26 Feb 07 jari 509                 try {
2 26 Feb 07 jari 510                     String s = textField5.getText();
2 26 Feb 07 jari 511                     float val = Float.parseFloat(s);
2 26 Feb 07 jari 512                     sliderValue = getSliderPos(val);
2 26 Feb 07 jari 513                     if (sliderValue >= 2000) {
2 26 Feb 07 jari 514                         sizeYSlider.setValue(2000);
2 26 Feb 07 jari 515                         textField5.setText("" + (float)(2*maxPos));
2 26 Feb 07 jari 516                     }
2 26 Feb 07 jari 517                     else if (sliderValue == 0) {
2 26 Feb 07 jari 518                         sizeYSlider.setValue(0);
2 26 Feb 07 jari 519                         textField5.setText("" + 0.0f);
2 26 Feb 07 jari 520                     } else {
2 26 Feb 07 jari 521                         sizeYSlider.setValue(sliderValue);
2 26 Feb 07 jari 522                         textField5.setText("" + (float)val);
2 26 Feb 07 jari 523                     }
2 26 Feb 07 jari 524                 } catch (Exception exc){
2 26 Feb 07 jari 525                     sizeYSlider.setValue(initSizePos);
2 26 Feb 07 jari 526                     textField5.setText("" + initSize);
2 26 Feb 07 jari 527                     setSizeY(initSize);
2 26 Feb 07 jari 528                     updateContent();
2 26 Feb 07 jari 529                 }
2 26 Feb 07 jari 530                 
2 26 Feb 07 jari 531                 String sizeString = textField5.getText();
2 26 Feb 07 jari 532                 float size = Float.parseFloat(sizeString);
2 26 Feb 07 jari 533                 setSizeY(size);
2 26 Feb 07 jari 534                 updateContent();
2 26 Feb 07 jari 535             }
2 26 Feb 07 jari 536         });       
2 26 Feb 07 jari 537         
2 26 Feb 07 jari 538         textField5.addFocusListener(new FocusListener() {
2 26 Feb 07 jari 539             public void focusLost(FocusEvent e) {  
2 26 Feb 07 jari 540                 int sliderValue;
2 26 Feb 07 jari 541                 try {
2 26 Feb 07 jari 542                     String s = textField5.getText();
2 26 Feb 07 jari 543                     float val = Float.parseFloat(s);
2 26 Feb 07 jari 544                     sliderValue = getSliderPos(val);
2 26 Feb 07 jari 545                     if (sliderValue >= 2000) {
2 26 Feb 07 jari 546                         sizeYSlider.setValue(2000);
2 26 Feb 07 jari 547                         textField5.setText("" + (float)(2*maxPos));
2 26 Feb 07 jari 548                     }
2 26 Feb 07 jari 549                     else if (sliderValue == 0) {
2 26 Feb 07 jari 550                         sizeYSlider.setValue(0);
2 26 Feb 07 jari 551                         textField5.setText("" + 0.0f);
2 26 Feb 07 jari 552                     } else {
2 26 Feb 07 jari 553                         sizeYSlider.setValue(sliderValue);
2 26 Feb 07 jari 554                         textField5.setText("" + (float)val);
2 26 Feb 07 jari 555                     }
2 26 Feb 07 jari 556                 } catch (Exception exc){
2 26 Feb 07 jari 557                     sizeYSlider.setValue(initSizePos);
2 26 Feb 07 jari 558                     textField5.setText("" + initSize);
2 26 Feb 07 jari 559                     setSizeY(initSize);
2 26 Feb 07 jari 560                     updateContent();
2 26 Feb 07 jari 561                 }
2 26 Feb 07 jari 562                 
2 26 Feb 07 jari 563                 String sizeString = textField5.getText();
2 26 Feb 07 jari 564                 float size = Float.parseFloat(sizeString);
2 26 Feb 07 jari 565                 setSizeY(size);
2 26 Feb 07 jari 566                 updateContent();                
2 26 Feb 07 jari 567             }
2 26 Feb 07 jari 568             
2 26 Feb 07 jari 569             public void focusGained(FocusEvent e) {
2 26 Feb 07 jari 570             }            
2 26 Feb 07 jari 571         });
2 26 Feb 07 jari 572         
2 26 Feb 07 jari 573         sizeYSlider.addChangeListener(new ChangeListener(){
2 26 Feb 07 jari 574             public void stateChanged(ChangeEvent e) {
2 26 Feb 07 jari 575                 JSlider source = (JSlider)e.getSource();
2 26 Feb 07 jari 576                 int value = (int)source.getValue();
2 26 Feb 07 jari 577                 float displayValue = getCoord(value);      
2 26 Feb 07 jari 578                 if (value == 0) {
2 26 Feb 07 jari 579                     displayValue = 0f;
2 26 Feb 07 jari 580                 } 
2 26 Feb 07 jari 581                 if (value == 2000) {
2 26 Feb 07 jari 582                     displayValue = (float)(2*maxPos);
2 26 Feb 07 jari 583                 }
2 26 Feb 07 jari 584                 textField5.setText("" + displayValue);
2 26 Feb 07 jari 585                 String dString = textField5.getText();
2 26 Feb 07 jari 586                 float size = Float.parseFloat(dString);
2 26 Feb 07 jari 587                 setSizeY(size);
2 26 Feb 07 jari 588                 updateContent();
2 26 Feb 07 jari 589             }
2 26 Feb 07 jari 590         });       
2 26 Feb 07 jari 591         
2 26 Feb 07 jari 592         textField6.addActionListener(new ActionListener(){
2 26 Feb 07 jari 593             public void actionPerformed(ActionEvent evt) {
2 26 Feb 07 jari 594                 int sliderValue;
2 26 Feb 07 jari 595                 try {
2 26 Feb 07 jari 596                     String s = textField6.getText();
2 26 Feb 07 jari 597                     float val = Float.parseFloat(s);
2 26 Feb 07 jari 598                     sliderValue = getSliderPos(val);
2 26 Feb 07 jari 599                     if (sliderValue >= 2000) {
2 26 Feb 07 jari 600                         sizeZSlider.setValue(2000);
2 26 Feb 07 jari 601                         textField6.setText("" + (float)(2*maxPos));
2 26 Feb 07 jari 602                     }
2 26 Feb 07 jari 603                     else if (sliderValue == 0) {
2 26 Feb 07 jari 604                         sizeZSlider.setValue(0);
2 26 Feb 07 jari 605                         textField6.setText("" + 0.0f);
2 26 Feb 07 jari 606                     } else {
2 26 Feb 07 jari 607                         sizeZSlider.setValue(sliderValue);
2 26 Feb 07 jari 608                         textField6.setText("" + (float)val);
2 26 Feb 07 jari 609                     }
2 26 Feb 07 jari 610                 } catch (Exception exc){
2 26 Feb 07 jari 611                     sizeZSlider.setValue(initSizePos);
2 26 Feb 07 jari 612                     textField6.setText("" + initSize);
2 26 Feb 07 jari 613                     setSizeZ(initSize);
2 26 Feb 07 jari 614                     updateContent();
2 26 Feb 07 jari 615                 }
2 26 Feb 07 jari 616                 
2 26 Feb 07 jari 617                 String sizeString = textField6.getText();
2 26 Feb 07 jari 618                 float size = Float.parseFloat(sizeString);
2 26 Feb 07 jari 619                 setSizeZ(size);
2 26 Feb 07 jari 620                 updateContent();
2 26 Feb 07 jari 621             }
2 26 Feb 07 jari 622         });   
2 26 Feb 07 jari 623         
2 26 Feb 07 jari 624         textField6.addFocusListener(new FocusListener() {
2 26 Feb 07 jari 625             public void focusLost(FocusEvent e) { 
2 26 Feb 07 jari 626                 int sliderValue;
2 26 Feb 07 jari 627                 try {
2 26 Feb 07 jari 628                     String s = textField6.getText();
2 26 Feb 07 jari 629                     float val = Float.parseFloat(s);
2 26 Feb 07 jari 630                     sliderValue = getSliderPos(val);
2 26 Feb 07 jari 631                     if (sliderValue >= 2000) {
2 26 Feb 07 jari 632                         sizeZSlider.setValue(2000);
2 26 Feb 07 jari 633                         textField6.setText("" + (float)(2*maxPos));
2 26 Feb 07 jari 634                     }
2 26 Feb 07 jari 635                     else if (sliderValue == 0) {
2 26 Feb 07 jari 636                         sizeZSlider.setValue(0);
2 26 Feb 07 jari 637                         textField6.setText("" + 0.0f);
2 26 Feb 07 jari 638                     } else {
2 26 Feb 07 jari 639                         sizeZSlider.setValue(sliderValue);
2 26 Feb 07 jari 640                         textField6.setText("" + (float)val);
2 26 Feb 07 jari 641                     }
2 26 Feb 07 jari 642                 } catch (Exception exc){
2 26 Feb 07 jari 643                     sizeZSlider.setValue(initSizePos);
2 26 Feb 07 jari 644                     textField6.setText("" + initSize);
2 26 Feb 07 jari 645                     setSizeZ(initSize);
2 26 Feb 07 jari 646                     updateContent();
2 26 Feb 07 jari 647                 }
2 26 Feb 07 jari 648                 
2 26 Feb 07 jari 649                 String sizeString = textField6.getText();
2 26 Feb 07 jari 650                 float size = Float.parseFloat(sizeString);
2 26 Feb 07 jari 651                 setSizeZ(size);
2 26 Feb 07 jari 652                 updateContent();                
2 26 Feb 07 jari 653             }
2 26 Feb 07 jari 654             
2 26 Feb 07 jari 655             public void focusGained(FocusEvent e) {
2 26 Feb 07 jari 656             }            
2 26 Feb 07 jari 657         });
2 26 Feb 07 jari 658         
2 26 Feb 07 jari 659         sizeZSlider.addChangeListener(new ChangeListener(){
2 26 Feb 07 jari 660             public void stateChanged(ChangeEvent e) {
2 26 Feb 07 jari 661                 JSlider source = (JSlider)e.getSource();
2 26 Feb 07 jari 662                 int value = (int)source.getValue();
2 26 Feb 07 jari 663                 float displayValue = getCoord(value);      
2 26 Feb 07 jari 664                 if (value == 0) {
2 26 Feb 07 jari 665                     displayValue = 0f;
2 26 Feb 07 jari 666                 } 
2 26 Feb 07 jari 667                 if (value == 2000) {
2 26 Feb 07 jari 668                     displayValue = (float)(2*maxPos);
2 26 Feb 07 jari 669                 }
2 26 Feb 07 jari 670                 textField6.setText("" + displayValue);
2 26 Feb 07 jari 671                 String dString = textField6.getText();
2 26 Feb 07 jari 672                 float size = Float.parseFloat(dString);
2 26 Feb 07 jari 673                 setSizeZ(size);
2 26 Feb 07 jari 674                 updateContent();
2 26 Feb 07 jari 675             }
2 26 Feb 07 jari 676         });     
2 26 Feb 07 jari 677         
2 26 Feb 07 jari 678         
2 26 Feb 07 jari 679         //Listener listener = new Listener();
2 26 Feb 07 jari 680         //addWindowListener(listener);    
2 26 Feb 07 jari 681         
2 26 Feb 07 jari 682         GridBagLayout gridbag = new GridBagLayout();
2 26 Feb 07 jari 683         GridBagConstraints constraints = new GridBagConstraints();           
2 26 Feb 07 jari 684         
2 26 Feb 07 jari 685         JPanel pane = new JPanel();
2 26 Feb 07 jari 686         pane.setBackground(Color.white);
2 26 Feb 07 jari 687         pane.setBorder(new EtchedBorder());
2 26 Feb 07 jari 688         pane.setLayout(gridbag); 
2 26 Feb 07 jari 689         
2 26 Feb 07 jari 690         JLabel posXLabel = new JLabel("Position X  ");
2 26 Feb 07 jari 691         buildConstraints(constraints, 0, 0, 1, 1, 25, 16);
2 26 Feb 07 jari 692         gridbag.setConstraints(posXLabel, constraints);
2 26 Feb 07 jari 693         pane.add(posXLabel); 
2 26 Feb 07 jari 694         
2 26 Feb 07 jari 695         
2 26 Feb 07 jari 696         buildConstraints(constraints, 1, 0, 1, 1, 25, 0);
2 26 Feb 07 jari 697         gridbag.setConstraints(textField1, constraints);
2 26 Feb 07 jari 698         pane.add(textField1);
2 26 Feb 07 jari 699         
2 26 Feb 07 jari 700         buildConstraints(constraints, 2, 0, 1, 1, 50, 0);
2 26 Feb 07 jari 701         gridbag.setConstraints(posXSlider, constraints);
2 26 Feb 07 jari 702         pane.add(posXSlider);    
2 26 Feb 07 jari 703         
2 26 Feb 07 jari 704         
2 26 Feb 07 jari 705         JLabel posYLabel = new JLabel("Position Y  ");
2 26 Feb 07 jari 706         buildConstraints(constraints, 0, 1, 1, 1, 25, 16);
2 26 Feb 07 jari 707         gridbag.setConstraints(posYLabel, constraints);
2 26 Feb 07 jari 708         pane.add(posYLabel); 
2 26 Feb 07 jari 709         
2 26 Feb 07 jari 710         
2 26 Feb 07 jari 711         buildConstraints(constraints, 1, 1, 1, 1, 25, 0);
2 26 Feb 07 jari 712         gridbag.setConstraints(textField2, constraints);
2 26 Feb 07 jari 713         pane.add(textField2);
2 26 Feb 07 jari 714         
2 26 Feb 07 jari 715         buildConstraints(constraints, 2, 1, 1, 1, 50, 0);
2 26 Feb 07 jari 716         gridbag.setConstraints(posYSlider, constraints);
2 26 Feb 07 jari 717         pane.add(posYSlider); 
2 26 Feb 07 jari 718         
2 26 Feb 07 jari 719
2 26 Feb 07 jari 720         JLabel posZLabel = new JLabel("Position Z  ");
2 26 Feb 07 jari 721         buildConstraints(constraints, 0, 2, 1, 1, 25, 17);
2 26 Feb 07 jari 722         gridbag.setConstraints(posZLabel, constraints);
2 26 Feb 07 jari 723         pane.add(posZLabel); 
2 26 Feb 07 jari 724         
2 26 Feb 07 jari 725         
2 26 Feb 07 jari 726         buildConstraints(constraints, 1, 2, 1, 1, 25, 0);
2 26 Feb 07 jari 727         gridbag.setConstraints(textField3, constraints);
2 26 Feb 07 jari 728         pane.add(textField3);
2 26 Feb 07 jari 729         
2 26 Feb 07 jari 730         buildConstraints(constraints, 2, 2, 1, 1, 50, 0);
2 26 Feb 07 jari 731         gridbag.setConstraints(posZSlider, constraints);
2 26 Feb 07 jari 732         pane.add(posZSlider);     
2 26 Feb 07 jari 733         
2 26 Feb 07 jari 734         JLabel sizeXLabel = new JLabel("Size X  ");
2 26 Feb 07 jari 735         buildConstraints(constraints, 0, 3, 1, 1, 25, 17);
2 26 Feb 07 jari 736         gridbag.setConstraints(sizeXLabel, constraints);
2 26 Feb 07 jari 737         pane.add(sizeXLabel); 
2 26 Feb 07 jari 738         
2 26 Feb 07 jari 739         
2 26 Feb 07 jari 740         buildConstraints(constraints, 1, 3, 1, 1, 25, 0);
2 26 Feb 07 jari 741         gridbag.setConstraints(textField4, constraints);
2 26 Feb 07 jari 742         pane.add(textField4);
2 26 Feb 07 jari 743         
2 26 Feb 07 jari 744         buildConstraints(constraints, 2, 3, 1, 1, 50, 0);
2 26 Feb 07 jari 745         gridbag.setConstraints(sizeXSlider, constraints);
2 26 Feb 07 jari 746         pane.add(sizeXSlider);       
2 26 Feb 07 jari 747         
2 26 Feb 07 jari 748         JLabel sizeYLabel = new JLabel("Size Y  ");
2 26 Feb 07 jari 749         buildConstraints(constraints, 0, 4, 1, 1, 25, 17);
2 26 Feb 07 jari 750         gridbag.setConstraints(sizeYLabel, constraints);
2 26 Feb 07 jari 751         pane.add(sizeYLabel); 
2 26 Feb 07 jari 752         
2 26 Feb 07 jari 753         
2 26 Feb 07 jari 754         buildConstraints(constraints, 1, 4, 1, 1, 25, 0);
2 26 Feb 07 jari 755         gridbag.setConstraints(textField5, constraints);
2 26 Feb 07 jari 756         pane.add(textField5);
2 26 Feb 07 jari 757         
2 26 Feb 07 jari 758         buildConstraints(constraints, 2, 4, 1, 1, 50, 0);
2 26 Feb 07 jari 759         gridbag.setConstraints(sizeYSlider, constraints);
2 26 Feb 07 jari 760         pane.add(sizeYSlider);     
2 26 Feb 07 jari 761         
2 26 Feb 07 jari 762         JLabel sizeZLabel = new JLabel("Size Z  ");
2 26 Feb 07 jari 763         buildConstraints(constraints, 0, 5, 1, 1, 25, 17);
2 26 Feb 07 jari 764         gridbag.setConstraints(sizeZLabel, constraints);
2 26 Feb 07 jari 765         pane.add(sizeZLabel); 
2 26 Feb 07 jari 766         
2 26 Feb 07 jari 767         
2 26 Feb 07 jari 768         buildConstraints(constraints, 1, 5, 1, 1, 25, 0);
2 26 Feb 07 jari 769         gridbag.setConstraints(textField6, constraints);
2 26 Feb 07 jari 770         pane.add(textField6);
2 26 Feb 07 jari 771         
2 26 Feb 07 jari 772         buildConstraints(constraints, 2, 5, 1, 1, 50, 0);
2 26 Feb 07 jari 773         gridbag.setConstraints(sizeZSlider, constraints);
2 26 Feb 07 jari 774         pane.add(sizeZSlider);              
2 26 Feb 07 jari 775         
2 26 Feb 07 jari 776         addContent(pane);
2 26 Feb 07 jari 777         Listener listener = new Listener();
2 26 Feb 07 jari 778         addWindowListener(listener);
2 26 Feb 07 jari 779         setActionListeners(listener);    
2 26 Feb 07 jari 780         pack();
2 26 Feb 07 jari 781     }
2 26 Feb 07 jari 782     
2 26 Feb 07 jari 783     private int getSliderPos(float pos) {
2 26 Feb 07 jari 784         return Math.round((float)((1000f/maxPos)*pos));        
2 26 Feb 07 jari 785     }
2 26 Feb 07 jari 786     
2 26 Feb 07 jari 787     private float getCoord(int sliderPos) {
2 26 Feb 07 jari 788         return (float)((float)(maxPos*sliderPos)/1000f);
2 26 Feb 07 jari 789     }
2 26 Feb 07 jari 790     
2 26 Feb 07 jari 791     void buildConstraints(GridBagConstraints gbc, int gx, int gy,
2 26 Feb 07 jari 792     int gw, int gh, int wx, int wy) {
2 26 Feb 07 jari 793         
2 26 Feb 07 jari 794         gbc.gridx = gx;
2 26 Feb 07 jari 795         gbc.gridy = gy;
2 26 Feb 07 jari 796         gbc.gridwidth = gw;
2 26 Feb 07 jari 797         gbc.gridheight = gh;
2 26 Feb 07 jari 798         gbc.weightx = wx;
2 26 Feb 07 jari 799         gbc.weighty = wy;
2 26 Feb 07 jari 800     }    
2 26 Feb 07 jari 801     
2 26 Feb 07 jari 802     /**
2 26 Feb 07 jari 803      * Shows the dialog.
2 26 Feb 07 jari 804      */
2 26 Feb 07 jari 805     public int showModal() {
2 26 Feb 07 jari 806         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
2 26 Feb 07 jari 807         setLocation((screenSize.width - getSize().width)/2, (screenSize.height - getSize().height)/2);
2 26 Feb 07 jari 808         show();
2 26 Feb 07 jari 809         return result;
2 26 Feb 07 jari 810     }
2 26 Feb 07 jari 811     
2 26 Feb 07 jari 812     /**
2 26 Feb 07 jari 813      * Returns x position.
2 26 Feb 07 jari 814      */
2 26 Feb 07 jari 815     public float getPositionX() {
2 26 Feb 07 jari 816         return Float.parseFloat(textField1.getText());
2 26 Feb 07 jari 817     }
2 26 Feb 07 jari 818     
2 26 Feb 07 jari 819     private void setPositionX(float posX) {
2 26 Feb 07 jari 820         positionX = posX;
2 26 Feb 07 jari 821     }
2 26 Feb 07 jari 822     
2 26 Feb 07 jari 823     /**
2 26 Feb 07 jari 824      * Returns y position.
2 26 Feb 07 jari 825      */
2 26 Feb 07 jari 826     public float getPositionY() {
2 26 Feb 07 jari 827         return Float.parseFloat(textField2.getText());
2 26 Feb 07 jari 828     }
2 26 Feb 07 jari 829     
2 26 Feb 07 jari 830     private void setPositionY(float posY) {
2 26 Feb 07 jari 831         positionY = posY;
2 26 Feb 07 jari 832     }    
2 26 Feb 07 jari 833     
2 26 Feb 07 jari 834     /**
2 26 Feb 07 jari 835      * Returns z position.
2 26 Feb 07 jari 836      */
2 26 Feb 07 jari 837     public float getPositionZ() {
2 26 Feb 07 jari 838         return Float.parseFloat(textField3.getText());
2 26 Feb 07 jari 839     }
2 26 Feb 07 jari 840     
2 26 Feb 07 jari 841     private void setPositionZ(float posZ) {
2 26 Feb 07 jari 842         positionZ = posZ;
2 26 Feb 07 jari 843     }    
2 26 Feb 07 jari 844     
2 26 Feb 07 jari 845     /**
2 26 Feb 07 jari 846      * Returns x size.
2 26 Feb 07 jari 847      */
2 26 Feb 07 jari 848     public float getSizeX() {
2 26 Feb 07 jari 849         return Float.parseFloat(textField4.getText());
2 26 Feb 07 jari 850     }
2 26 Feb 07 jari 851     
2 26 Feb 07 jari 852     private void setSizeX(float val) {
2 26 Feb 07 jari 853         sizeX = val;
2 26 Feb 07 jari 854     }    
2 26 Feb 07 jari 855     
2 26 Feb 07 jari 856     /**
2 26 Feb 07 jari 857      * Returns y size.
2 26 Feb 07 jari 858      */
2 26 Feb 07 jari 859     public float getSizeY() {
2 26 Feb 07 jari 860         return Float.parseFloat(textField5.getText());
2 26 Feb 07 jari 861     }
2 26 Feb 07 jari 862     
2 26 Feb 07 jari 863     private void setSizeY(float val) {
2 26 Feb 07 jari 864         sizeY = val;
2 26 Feb 07 jari 865     }    
2 26 Feb 07 jari 866     
2 26 Feb 07 jari 867     /**
2 26 Feb 07 jari 868      * Returns z size.
2 26 Feb 07 jari 869      */
2 26 Feb 07 jari 870     public float getSizeZ() {
2 26 Feb 07 jari 871         return Float.parseFloat(textField6.getText());
2 26 Feb 07 jari 872     }
2 26 Feb 07 jari 873     
2 26 Feb 07 jari 874     private void setSizeZ(float val) {
2 26 Feb 07 jari 875         sizeZ = val;
2 26 Feb 07 jari 876     }    
2 26 Feb 07 jari 877     
2 26 Feb 07 jari 878     private void updateContent() {
2 26 Feb 07 jari 879         content.setBoxPosition(getPositionX(), getPositionY(), getPositionZ());
2 26 Feb 07 jari 880         content.setBoxSize(getSizeX(), getSizeY(), getSizeZ());
2 26 Feb 07 jari 881         content.updateScene();       
2 26 Feb 07 jari 882     }
2 26 Feb 07 jari 883     
2 26 Feb 07 jari 884     private void updateContentToInit() {
2 26 Feb 07 jari 885         content.setBoxPosition(0f, 0f, 0f);
2 26 Feb 07 jari 886         content.setBoxSize(initSize, initSize, initSize);
2 26 Feb 07 jari 887         content.updateScene();
2 26 Feb 07 jari 888     }
2 26 Feb 07 jari 889     
2 26 Feb 07 jari 890     private void resetValues() {
2 26 Feb 07 jari 891         posXSlider.setValue(0);
2 26 Feb 07 jari 892         posYSlider.setValue(0);
2 26 Feb 07 jari 893         posZSlider.setValue(0);
2 26 Feb 07 jari 894         sizeXSlider.setValue(initSizePos);
2 26 Feb 07 jari 895         sizeYSlider.setValue(initSizePos);
2 26 Feb 07 jari 896         sizeZSlider.setValue(initSizePos);
2 26 Feb 07 jari 897         
2 26 Feb 07 jari 898         textField1.setText("" + 0f);
2 26 Feb 07 jari 899         textField2.setText("" + 0f);
2 26 Feb 07 jari 900         textField3.setText("" + 0f);
2 26 Feb 07 jari 901         textField4.setText("" + initSize);
2 26 Feb 07 jari 902         textField5.setText("" + initSize);
2 26 Feb 07 jari 903         textField6.setText("" + initSize);
2 26 Feb 07 jari 904     }
2 26 Feb 07 jari 905     
2 26 Feb 07 jari 906     public static void main(String [] args){
2 26 Feb 07 jari 907         PCASelectionAreaDialog dialog = new PCASelectionAreaDialog(new Frame(), 0,0,0,5,5,5);
2 26 Feb 07 jari 908         dialog.showModal();
2 26 Feb 07 jari 909     }
2 26 Feb 07 jari 910     
2 26 Feb 07 jari 911     /**
2 26 Feb 07 jari 912      * The listener to listen to the dialog events.
2 26 Feb 07 jari 913      */
2 26 Feb 07 jari 914     private class Listener extends DialogListener {
2 26 Feb 07 jari 915         
2 26 Feb 07 jari 916         public void actionPerformed(ActionEvent e) {
2 26 Feb 07 jari 917             String command = e.getActionCommand();
2 26 Feb 07 jari 918             if (command.equals("ok-command")) {
2 26 Feb 07 jari 919                 try {
2 26 Feb 07 jari 920                     Float.parseFloat(textField1.getText());
2 26 Feb 07 jari 921                     Float.parseFloat(textField2.getText());
2 26 Feb 07 jari 922                     Float.parseFloat(textField3.getText());
2 26 Feb 07 jari 923                     Float.parseFloat(textField4.getText());
2 26 Feb 07 jari 924                     Float.parseFloat(textField5.getText());
2 26 Feb 07 jari 925                     Float.parseFloat(textField6.getText());
2 26 Feb 07 jari 926                     result = JOptionPane.OK_OPTION;
2 26 Feb 07 jari 927                 } catch (Exception exception) {
2 26 Feb 07 jari 928                     result = JOptionPane.CANCEL_OPTION;
2 26 Feb 07 jari 929                 }
2 26 Feb 07 jari 930                 dispose();
2 26 Feb 07 jari 931             } else if (command.equals("cancel-command")) {
2 26 Feb 07 jari 932                 result = JOptionPane.CANCEL_OPTION;
2 26 Feb 07 jari 933                 dispose();
2 26 Feb 07 jari 934             } else if (command.equals("reset-command")){ 
2 26 Feb 07 jari 935                 resetValues();
2 26 Feb 07 jari 936                 updateContentToInit();
2 26 Feb 07 jari 937                 /*
2 26 Feb 07 jari 938                 textField1.setText(String.valueOf(positionX));
2 26 Feb 07 jari 939                 textField2.setText(String.valueOf(positionY));
2 26 Feb 07 jari 940                 textField3.setText(String.valueOf(positionZ));
2 26 Feb 07 jari 941                 textField4.setText(String.valueOf(sizeX));
2 26 Feb 07 jari 942                 textField5.setText(String.valueOf(sizeY));
2 26 Feb 07 jari 943                 textField6.setText(String.valueOf(sizeZ));
2 26 Feb 07 jari 944                  */
2 26 Feb 07 jari 945             } else if (command.equals("info-command")){
2 26 Feb 07 jari 946                 HelpWindow helpWindow = new HelpWindow(PCASelectionAreaDialog.this, "PCA Selection Area Configuration");
2 26 Feb 07 jari 947                 if(helpWindow.getWindowContent()){
2 26 Feb 07 jari 948                     helpWindow.setSize(450, 600);
2 26 Feb 07 jari 949                     helpWindow.setLocation();
2 26 Feb 07 jari 950                     helpWindow.show();
2 26 Feb 07 jari 951                 }
2 26 Feb 07 jari 952                 else{
2 26 Feb 07 jari 953                     helpWindow.dispose();
2 26 Feb 07 jari 954                 }
2 26 Feb 07 jari 955             }
2 26 Feb 07 jari 956         }
2 26 Feb 07 jari 957         
2 26 Feb 07 jari 958         public void windowClosing(WindowEvent e) {
2 26 Feb 07 jari 959             result = JOptionPane.CLOSED_OPTION;
2 26 Feb 07 jari 960             dispose();
2 26 Feb 07 jari 961         }
2 26 Feb 07 jari 962         
2 26 Feb 07 jari 963     }
2 26 Feb 07 jari 964     
2 26 Feb 07 jari 965 }