]> git.xonotic.org Git - xonotic/xonotic.git/blob - misc/tools/ImgToMap/src/imgtomap/JFrameMain.java
initial checkin from nexuiz svn r8756
[xonotic/xonotic.git] / misc / tools / ImgToMap / src / imgtomap / JFrameMain.java
1 /*
2  * JFrameMain.java
3  *
4  * Created on 17. Mai 2008, 15:02
5  */
6
7 package imgtomap;
8
9 import java.io.File;
10 import javax.swing.JFileChooser;
11 import javax.swing.JOptionPane;
12
13 /**
14  *
15  * @author  maik
16  */
17 public class JFrameMain extends javax.swing.JFrame {
18
19     /** Creates new form JFrameMain */
20     public JFrameMain() {
21         initComponents();
22         String testinput = "/mnt/data/nexuizsvn/nexuiz/trunk/tools/ImgToMap/test1.png";
23         String testoutput = "/tmp/test.map";
24         
25         if(new File(testinput).exists()) {
26             jTextFieldInput.setText(testinput);
27             jTextFieldOutput.setText(testoutput);
28         }
29         
30         enableSkyPanel(jCheckBoxSky.isSelected());
31     }
32
33     /** This method is called from within the constructor to
34      * initialize the form.
35      * WARNING: Do NOT modify this code. The content of this method is
36      * always regenerated by the Form Editor.
37      */
38     @SuppressWarnings("unchecked")
39     // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
40     private void initComponents() {
41
42         jPanel1 = new javax.swing.JPanel();
43         jTextFieldInput = new javax.swing.JTextField();
44         jButtonInput = new javax.swing.JButton();
45         jTextFieldOutput = new javax.swing.JTextField();
46         jButtonOutput = new javax.swing.JButton();
47         jButtonOK = new javax.swing.JButton();
48         jPanel2 = new javax.swing.JPanel();
49         jCheckBoxDetail = new javax.swing.JCheckBox();
50         jTextFieldTexture = new javax.swing.JTextField();
51         jLabel3 = new javax.swing.JLabel();
52         jSpinnerUnits = new javax.swing.JSpinner();
53         jSpinnerHeight = new javax.swing.JSpinner();
54         jSpinnerTextureScale = new javax.swing.JSpinner();
55         jLabel4 = new javax.swing.JLabel();
56         jLabel2 = new javax.swing.JLabel();
57         jLabel1 = new javax.swing.JLabel();
58         jCheckBoxVisBlocker = new javax.swing.JCheckBox();
59         jPanelSky = new javax.swing.JPanel();
60         jCheckBoxSky = new javax.swing.JCheckBox();
61         jLabel5 = new javax.swing.JLabel();
62         jSpinnerSkyHeight = new javax.swing.JSpinner();
63         jCheckBoxSkyFill = new javax.swing.JCheckBox();
64         jLabel6 = new javax.swing.JLabel();
65         jTextFieldSkyTexture = new javax.swing.JTextField();
66
67         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
68         setTitle("ImgToMap");
69
70         jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Files"));
71
72         jButtonInput.setText("Select input file");
73         jButtonInput.addActionListener(new java.awt.event.ActionListener() {
74             public void actionPerformed(java.awt.event.ActionEvent evt) {
75                 jButtonInputActionPerformed(evt);
76             }
77         });
78
79         jButtonOutput.setText("Select output file");
80         jButtonOutput.addActionListener(new java.awt.event.ActionListener() {
81             public void actionPerformed(java.awt.event.ActionEvent evt) {
82                 jButtonOutputActionPerformed(evt);
83             }
84         });
85
86         org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
87         jPanel1.setLayout(jPanel1Layout);
88         jPanel1Layout.setHorizontalGroup(
89             jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
90             .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel1Layout.createSequentialGroup()
91                 .addContainerGap()
92                 .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
93                     .add(org.jdesktop.layout.GroupLayout.LEADING, jTextFieldOutput, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 299, Short.MAX_VALUE)
94                     .add(org.jdesktop.layout.GroupLayout.LEADING, jTextFieldInput, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 299, Short.MAX_VALUE))
95                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
96                 .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
97                     .add(org.jdesktop.layout.GroupLayout.TRAILING, jButtonInput, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 142, Short.MAX_VALUE)
98                     .add(org.jdesktop.layout.GroupLayout.TRAILING, jButtonOutput, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 142, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
99                 .addContainerGap())
100         );
101         jPanel1Layout.setVerticalGroup(
102             jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
103             .add(jPanel1Layout.createSequentialGroup()
104                 .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
105                     .add(jButtonInput)
106                     .add(jTextFieldInput, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 27, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
107                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
108                 .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
109                     .add(jButtonOutput)
110                     .add(jTextFieldOutput, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 26, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
111                 .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
112         );
113
114         jButtonOK.setText("Start conversion!");
115         jButtonOK.addActionListener(new java.awt.event.ActionListener() {
116             public void actionPerformed(java.awt.event.ActionEvent evt) {
117                 jButtonOKActionPerformed(evt);
118             }
119         });
120
121         jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Terrain configuration"));
122
123         jCheckBoxDetail.setSelected(true);
124         jCheckBoxDetail.setText("make detail");
125
126         jTextFieldTexture.setText("terrain/terrain1");
127
128         jLabel3.setText("Cover terrain surface with texture:");
129
130         jSpinnerUnits.setModel(new javax.swing.SpinnerNumberModel(256, 1, 2048, 1));
131
132         jSpinnerHeight.setModel(new javax.swing.SpinnerNumberModel(2048, 256, 16384, 1));
133         jSpinnerHeight.addChangeListener(new javax.swing.event.ChangeListener() {
134             public void stateChanged(javax.swing.event.ChangeEvent evt) {
135                 jSpinnerHeightStateChanged(evt);
136             }
137         });
138
139         jSpinnerTextureScale.setModel(new javax.swing.SpinnerNumberModel(1.0d, 0.25d, 16.0d, 0.25d));
140
141         jLabel4.setText("Texture scale:");
142
143         jLabel2.setText("Height for white:");
144
145         jLabel1.setText("Units per pixel:");
146
147         jCheckBoxVisBlocker.setSelected(true);
148         jCheckBoxVisBlocker.setText("generate visblockers");
149
150         org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
151         jPanel2.setLayout(jPanel2Layout);
152         jPanel2Layout.setHorizontalGroup(
153             jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
154             .add(jPanel2Layout.createSequentialGroup()
155                 .addContainerGap()
156                 .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
157                     .add(jPanel2Layout.createSequentialGroup()
158                         .add(jTextFieldTexture, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 447, Short.MAX_VALUE)
159                         .addContainerGap())
160                     .add(jPanel2Layout.createSequentialGroup()
161                         .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
162                             .add(jLabel3)
163                             .add(jPanel2Layout.createSequentialGroup()
164                                 .add(jCheckBoxDetail)
165                                 .add(18, 18, 18)
166                                 .add(jCheckBoxVisBlocker))
167                             .add(jPanel2Layout.createSequentialGroup()
168                                 .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
169                                     .add(jLabel1)
170                                     .add(jLabel2))
171                                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
172                                 .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
173                                     .add(jSpinnerHeight, 0, 0, Short.MAX_VALUE)
174                                     .add(jSpinnerUnits))
175                                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
176                                 .add(jLabel4)
177                                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
178                                 .add(jSpinnerTextureScale, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 89, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
179                         .add(0, 0, 0))))
180         );
181         jPanel2Layout.setVerticalGroup(
182             jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
183             .add(jPanel2Layout.createSequentialGroup()
184                 .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
185                     .add(jSpinnerUnits, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
186                     .add(jLabel1)
187                     .add(jLabel4)
188                     .add(jSpinnerTextureScale, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
189                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
190                 .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
191                     .add(jLabel2)
192                     .add(jSpinnerHeight, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
193                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
194                 .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
195                     .add(jCheckBoxDetail)
196                     .add(jCheckBoxVisBlocker))
197                 .add(14, 14, 14)
198                 .add(jLabel3)
199                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
200                 .add(jTextFieldTexture, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
201                 .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
202         );
203
204         jPanelSky.setBorder(javax.swing.BorderFactory.createTitledBorder("Sky configuration"));
205
206         jCheckBoxSky.setSelected(true);
207         jCheckBoxSky.setText("generate a skybox");
208         jCheckBoxSky.addActionListener(new java.awt.event.ActionListener() {
209             public void actionPerformed(java.awt.event.ActionEvent evt) {
210                 jCheckBoxSkyActionPerformed(evt);
211             }
212         });
213
214         jLabel5.setText("Sky height:");
215
216         jSpinnerSkyHeight.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(2048), Integer.valueOf(256), null, Integer.valueOf(1)));
217         jSpinnerSkyHeight.addChangeListener(new javax.swing.event.ChangeListener() {
218             public void stateChanged(javax.swing.event.ChangeEvent evt) {
219                 jSpinnerSkyHeightStateChanged(evt);
220             }
221         });
222
223         jCheckBoxSkyFill.setSelected(true);
224         jCheckBoxSkyFill.setText("fill alpha-gaps with sky");
225
226         jLabel6.setText("Sky texture:");
227
228         jTextFieldSkyTexture.setText("skies/sky1");
229
230         org.jdesktop.layout.GroupLayout jPanelSkyLayout = new org.jdesktop.layout.GroupLayout(jPanelSky);
231         jPanelSky.setLayout(jPanelSkyLayout);
232         jPanelSkyLayout.setHorizontalGroup(
233             jPanelSkyLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
234             .add(jPanelSkyLayout.createSequentialGroup()
235                 .addContainerGap()
236                 .add(jPanelSkyLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
237                     .add(jTextFieldSkyTexture, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 447, Short.MAX_VALUE)
238                     .add(jPanelSkyLayout.createSequentialGroup()
239                         .add(jCheckBoxSky)
240                         .add(18, 18, 18)
241                         .add(jCheckBoxSkyFill))
242                     .add(jPanelSkyLayout.createSequentialGroup()
243                         .add(jLabel5)
244                         .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
245                         .add(jSpinnerSkyHeight, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 82, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
246                     .add(jLabel6))
247                 .addContainerGap())
248         );
249         jPanelSkyLayout.setVerticalGroup(
250             jPanelSkyLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
251             .add(jPanelSkyLayout.createSequentialGroup()
252                 .add(jPanelSkyLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
253                     .add(jCheckBoxSky)
254                     .add(jCheckBoxSkyFill))
255                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
256                 .add(jPanelSkyLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
257                     .add(jLabel5)
258                     .add(jSpinnerSkyHeight, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
259                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
260                 .add(jLabel6)
261                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
262                 .add(jTextFieldSkyTexture, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
263                 .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
264         );
265
266         org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
267         getContentPane().setLayout(layout);
268         layout.setHorizontalGroup(
269             layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
270             .add(layout.createSequentialGroup()
271                 .addContainerGap()
272                 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
273                     .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
274                     .add(jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
275                     .add(jPanelSky, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
276                     .add(jButtonOK))
277                 .addContainerGap())
278         );
279         layout.setVerticalGroup(
280             layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
281             .add(layout.createSequentialGroup()
282                 .addContainerGap()
283                 .add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
284                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
285                 .add(jPanel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
286                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
287                 .add(jPanelSky, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
288                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
289                 .add(jButtonOK)
290                 .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
291         );
292
293         pack();
294     }// </editor-fold>//GEN-END:initComponents
295
296 private void jButtonInputActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonInputActionPerformed
297     JFileChooser fc = new JFileChooser();
298     int ret = fc.showOpenDialog(this);
299     
300     if(ret == fc.APPROVE_OPTION) {
301         File f = fc.getSelectedFile();
302         if(f.exists()) {
303             jTextFieldInput.setText(f.getAbsolutePath());
304         }
305     }
306 }//GEN-LAST:event_jButtonInputActionPerformed
307
308 private void jButtonOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonOKActionPerformed
309     this.setVisible(false);
310     Parameters p = new Parameters();
311     p.infile = jTextFieldInput.getText();
312     p.outfile = jTextFieldOutput.getText();
313     p.texture = jTextFieldTexture.getText();
314     p.skytexture = jTextFieldSkyTexture.getText();
315     p.pixelsize = (Integer)jSpinnerUnits.getValue();
316     p.height = (Integer)jSpinnerHeight.getValue();
317     p.sky = jCheckBoxSky.isSelected();
318     p.skyfill = jCheckBoxSkyFill.isSelected() && p.sky;
319     p.visblockers = jCheckBoxVisBlocker.isSelected();
320     p.skyheight = (Integer)jSpinnerSkyHeight.getValue();
321     p.texturescale = (Double)jSpinnerTextureScale.getValue();
322     p.detail = jCheckBoxDetail.isSelected();
323     int ret = new MapWriter().writeMap(p);
324     if(ret == 0) {
325         JOptionPane.showMessageDialog(this, "Map successfully generated!", "Success!", JOptionPane.INFORMATION_MESSAGE);
326     } else {
327         JOptionPane.showMessageDialog(this, "Error occured! Oh no!", "Error!", JOptionPane.ERROR_MESSAGE);
328     }
329     
330     
331     this.setVisible(true);
332 }//GEN-LAST:event_jButtonOKActionPerformed
333
334 private void jButtonOutputActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonOutputActionPerformed
335     JFileChooser fc = new JFileChooser();
336     int ret = fc.showOpenDialog(this);
337     
338     if(ret == fc.APPROVE_OPTION) {
339         File f = fc.getSelectedFile();
340         jTextFieldOutput.setText(f.getAbsolutePath());
341     }
342 }//GEN-LAST:event_jButtonOutputActionPerformed
343
344 private void jCheckBoxSkyActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxSkyActionPerformed
345     enableSkyPanel(jCheckBoxSky.isSelected());
346 }//GEN-LAST:event_jCheckBoxSkyActionPerformed
347
348 private void jSpinnerHeightStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jSpinnerHeightStateChanged
349     int value = (Integer)jSpinnerHeight.getValue();
350     int skyheight = (Integer)jSpinnerSkyHeight.getValue();
351     if(skyheight < value) {
352         jSpinnerSkyHeight.setValue(value);
353     }
354 }//GEN-LAST:event_jSpinnerHeightStateChanged
355
356 private void jSpinnerSkyHeightStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jSpinnerSkyHeightStateChanged
357     int value =(Integer)jSpinnerSkyHeight.getValue();
358     int height = (Integer)jSpinnerHeight.getValue();
359     if(height > value) {
360         jSpinnerHeight.setValue(value);
361     }
362 }//GEN-LAST:event_jSpinnerSkyHeightStateChanged
363
364 private void enableSkyPanel(boolean b) {
365     jCheckBoxSkyFill.setEnabled(b);
366     jSpinnerSkyHeight.setEnabled(b);
367     jTextFieldSkyTexture.setEnabled(b);
368 }
369
370     /**
371     * @param args the command line arguments
372     */
373     public static void main(String args[]) {
374         java.awt.EventQueue.invokeLater(new Runnable() {
375             public void run() {
376                 new JFrameMain().setVisible(true);
377             }
378         });
379     }
380
381     // Variables declaration - do not modify//GEN-BEGIN:variables
382     private javax.swing.JButton jButtonInput;
383     private javax.swing.JButton jButtonOK;
384     private javax.swing.JButton jButtonOutput;
385     private javax.swing.JCheckBox jCheckBoxDetail;
386     private javax.swing.JCheckBox jCheckBoxSky;
387     private javax.swing.JCheckBox jCheckBoxSkyFill;
388     private javax.swing.JCheckBox jCheckBoxVisBlocker;
389     private javax.swing.JLabel jLabel1;
390     private javax.swing.JLabel jLabel2;
391     private javax.swing.JLabel jLabel3;
392     private javax.swing.JLabel jLabel4;
393     private javax.swing.JLabel jLabel5;
394     private javax.swing.JLabel jLabel6;
395     private javax.swing.JPanel jPanel1;
396     private javax.swing.JPanel jPanel2;
397     private javax.swing.JPanel jPanelSky;
398     private javax.swing.JSpinner jSpinnerHeight;
399     private javax.swing.JSpinner jSpinnerSkyHeight;
400     private javax.swing.JSpinner jSpinnerTextureScale;
401     private javax.swing.JSpinner jSpinnerUnits;
402     private javax.swing.JTextField jTextFieldInput;
403     private javax.swing.JTextField jTextFieldOutput;
404     private javax.swing.JTextField jTextFieldSkyTexture;
405     private javax.swing.JTextField jTextFieldTexture;
406     // End of variables declaration//GEN-END:variables
407
408 }