mev-4.0.01/source/org/tigr/microarray/mev/cluster/gui/impl/coa/COASelectionAreaDialog.java

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