View Javadoc

1   /* -------------------------------------------------------------------
2    * Java source file for the class Transform3DEditor
3    * 
4    * Copyright (c), 2003, Masahiro Takatsuka.
5    * All Rights Researved.
6    * 
7    * Original Author: Masahiro Takatsuka (masa@jbeans.net)
8    * $Author: takatsukam $
9    * 
10   * $Date: 2004/03/03 11:53:05 $
11   * 
12   * $Id: Transform3DEditor.java,v 1.3 2004/03/03 11:53:05 takatsukam Exp $
13   * 
14   * Reference:		Document no:
15   * ___				___
16   * 
17   * To Do:
18   * ___
19   * 
20  ------------------------------------------------------------------- */
21  
22  /* --------------------------- Package ---------------------------- */
23  package net.jbeans.j3d.bean.property.editor;
24  
25  /* ------------------ Import classes (packages) ------------------- *//package-summary/html">class="comment"> ------------------ Import classes (packages) ------------------- *//package-summary.html">class="comment">/* ------------------ Import classes (packages) ------------------- *//package-summary.html">class="comment"> ------------------ Import classes (packages) ------------------- */
26  import java.awt.event.*;
27  import javax.swing.*;
28  import javax.media.j3d.*;
29  
30  import net.jbeans.bean.property.editor.*;
31  import net.jbeans.util.text.*;
32  
33  /*====================================================================
34                Implementation of class Transform3DEditor               
35  ====================================================================*/
36  /***
37   * A property editor for editing Transform3D object.
38   * 
39   * @version $Revision: 1.3 $
40   * @author Masahiro Takatsuka (masa@jbeans.net)
41   * @see EditorSupport
42   */
43  
44  public final class Transform3DEditor extends EditorSupport {
45      private JTextField m00;
46      private JTextField m01;
47      private JTextField m02;
48      private JTextField m03;		
49      private JTextField m10;
50      private JTextField m11;
51      private JTextField m12;
52      private JTextField m13;		
53      private JTextField m20;
54      private JTextField m21;
55      private JTextField m22;
56      private JTextField m23;		
57      private JTextField m30;
58      private JTextField m31;
59      private JTextField m32;
60      private JTextField m33;		
61  
62      public Transform3DEditor() {
63          this.m00 = new JTextField();
64          this.m00.setDocument(new NumberDocument());
65          this.m01 = new JTextField();
66          this.m01.setDocument(new NumberDocument());
67          this.m02 = new JTextField();
68          this.m02.setDocument(new NumberDocument());
69          this.m03 = new JTextField();
70          this.m03.setDocument(new NumberDocument());
71  
72          this.m10 = new JTextField();
73          this.m10.setDocument(new NumberDocument());
74          this.m11 = new JTextField();
75          this.m11.setDocument(new NumberDocument());
76          this.m12 = new JTextField();
77          this.m12.setDocument(new NumberDocument());
78          this.m13 = new JTextField();
79          this.m13.setDocument(new NumberDocument());
80  
81          this.m20 = new JTextField();
82          this.m20.setDocument(new NumberDocument());
83          this.m21 = new JTextField();
84          this.m21.setDocument(new NumberDocument());
85          this.m22 = new JTextField();
86          this.m22.setDocument(new NumberDocument());
87          this.m23 = new JTextField();
88          this.m23.setDocument(new NumberDocument());
89  
90          this.m30 = new JTextField();
91          this.m30.setDocument(new NumberDocument());
92          this.m31 = new JTextField();
93          this.m31.setDocument(new NumberDocument());
94          this.m32 = new JTextField();
95          this.m32.setDocument(new NumberDocument());
96          this.m33 = new JTextField();
97          this.m33.setDocument(new NumberDocument());
98  
99  		JPanel mainpanel = new JPanel();
100 		mainpanel.setLayout(new BoxLayout(mainpanel, BoxLayout.Y_AXIS));
101         JPanel panel = new JPanel();
102         panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
103         panel.add(new JLabel("m00: "));
104         panel.add(this.m00);
105         panel.add(new JLabel("m01: "));
106         panel.add(this.m01);
107         panel.add(new JLabel("m02: "));
108         panel.add(this.m02);
109         panel.add(new JLabel("m03: "));
110         panel.add(this.m03);
111 		mainpanel.add(panel);
112 
113         panel = new JPanel();
114         panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
115         panel.add(new JLabel("m10: "));
116         panel.add(this.m10);
117         panel.add(new JLabel("m11: "));
118         panel.add(this.m11);
119         panel.add(new JLabel("m12: "));
120         panel.add(this.m12);
121         panel.add(new JLabel("m13: "));
122         panel.add(this.m13);
123 		mainpanel.add(panel);
124 
125         panel = new JPanel();
126         panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
127         panel.add(new JLabel("m20: "));
128         panel.add(this.m20);
129         panel.add(new JLabel("m21: "));
130         panel.add(this.m21);
131         panel.add(new JLabel("m22: "));
132         panel.add(this.m22);
133         panel.add(new JLabel("m23: "));
134         panel.add(this.m23);
135 		mainpanel.add(panel);
136 
137         panel = new JPanel();
138         panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
139         panel.add(new JLabel("m30: "));
140         panel.add(this.m30);
141         panel.add(new JLabel("m31: "));
142         panel.add(this.m31);
143         panel.add(new JLabel("m32: "));
144         panel.add(this.m32);
145         panel.add(new JLabel("m33: "));
146         panel.add(this.m33);
147 		mainpanel.add(panel);
148 		
149 		setPanel(mainpanel);
150     }
151 
152     public final void setValue(Object value)  {
153         super.setValue(value);
154 
155 		if (value == null) {
156 			value = new Transform3D();
157 		}
158         Transform3D transform3d = (Transform3D) value;
159 		double[] trans = new double[16];
160 		transform3d.get(trans);
161         this.m00.setText(Double.toString(trans[0]));
162         this.m01.setText(Double.toString(trans[1]));
163         this.m02.setText(Double.toString(trans[2]));
164         this.m03.setText(Double.toString(trans[3]));
165 
166         this.m10.setText(Double.toString(trans[4]));
167         this.m11.setText(Double.toString(trans[5]));
168         this.m12.setText(Double.toString(trans[6]));
169         this.m13.setText(Double.toString(trans[7]));
170 
171         this.m20.setText(Double.toString(trans[8]));
172         this.m21.setText(Double.toString(trans[9]));
173         this.m22.setText(Double.toString(trans[10]));
174         this.m23.setText(Double.toString(trans[11]));
175 
176         this.m30.setText(Double.toString(trans[12]));
177         this.m31.setText(Double.toString(trans[13]));
178         this.m32.setText(Double.toString(trans[14]));
179         this.m33.setText(Double.toString(trans[15]));
180     }
181 
182     private final double[] getTransform3DValue()  {
183 		double[] trans = new double[16];
184         trans[0] = Double.parseDouble(this.m00.getText());
185 		trans[1] = Double.parseDouble(this.m01.getText());
186 		trans[2] = Double.parseDouble(this.m02.getText());
187 		trans[3] = Double.parseDouble(this.m03.getText());
188 
189         trans[4] = Double.parseDouble(this.m10.getText());
190 		trans[5] = Double.parseDouble(this.m11.getText());
191 		trans[6] = Double.parseDouble(this.m12.getText());
192 		trans[7] = Double.parseDouble(this.m13.getText());
193 
194         trans[8] = Double.parseDouble(this.m20.getText());
195 		trans[9] = Double.parseDouble(this.m21.getText());
196 		trans[10] = Double.parseDouble(this.m22.getText());
197 		trans[11] = Double.parseDouble(this.m23.getText());
198 
199         trans[12] = Double.parseDouble(this.m30.getText());
200 		trans[13] = Double.parseDouble(this.m31.getText());
201 		trans[14] = Double.parseDouble(this.m32.getText());
202 		trans[15] = Double.parseDouble(this.m33.getText());
203         
204         return trans;
205     }
206 
207     public final Object getValue()  {
208 		double[] trans = getTransform3DValue();
209         return new Transform3D(trans);
210     }
211 	
212     public final String getJavaInitializationString() {
213 		double[] trans = getTransform3DValue();
214         return "new javax.media.j3d.Transform3D(new double[]{" +
215 			trans[0] + ", " + trans[1] + ", " + trans[2] + ", " + trans[3] + ", " +
216 			trans[4] + ", " + trans[5] + ", " + trans[6] + ", " + trans[7] + ", " +
217 			trans[8] + ", " + trans[9] + ", " + trans[10] + ", " + trans[11] + ", " +
218 			trans[12] + ", " + trans[13] + ", " + trans[14] + ", " + trans[15] + ", " 			
219 			+ "}";
220     }
221 }