4 * Created on 17. Mai 2008, 15:02
10 import javax.swing.JFileChooser;
16 public class JFrameMain extends javax.swing.JFrame {
18 /** Creates new form JFrameMain */
21 String testinput = "/mnt/data/nexuizsvn/nexuiz/trunk/tools/ImgToMap/test1.png";
22 String testoutput = "/tmp/test.map";
24 if(new File(testinput).exists()) {
25 jTextFieldInput.setText(testinput);
26 jTextFieldOutput.setText(testoutput);
31 /** This method is called from within the constructor to
32 * initialize the form.
33 * WARNING: Do NOT modify this code. The content of this method is
34 * always regenerated by the Form Editor.
36 @SuppressWarnings("unchecked")
37 // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
38 private void initComponents() {
40 jPanel1 = new javax.swing.JPanel();
41 jTextFieldInput = new javax.swing.JTextField();
42 jButtonInput = new javax.swing.JButton();
43 jTextFieldOutput = new javax.swing.JTextField();
44 jButtonOutput = new javax.swing.JButton();
45 jSpinnerUnits = new javax.swing.JSpinner();
46 jLabel1 = new javax.swing.JLabel();
47 jSpinnerHeight = new javax.swing.JSpinner();
48 jLabel2 = new javax.swing.JLabel();
49 jButtonOK = new javax.swing.JButton();
50 jLabel3 = new javax.swing.JLabel();
51 jTextFieldTexture = new javax.swing.JTextField();
52 jCheckBoxDetail = new javax.swing.JCheckBox();
53 jLabel4 = new javax.swing.JLabel();
54 jSpinner1 = new javax.swing.JSpinner();
56 setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
59 jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Convert image to map"));
61 jButtonInput.setText("Select input file");
62 jButtonInput.addActionListener(new java.awt.event.ActionListener() {
63 public void actionPerformed(java.awt.event.ActionEvent evt) {
64 jButtonInputActionPerformed(evt);
68 jButtonOutput.setText("Select output file");
70 jSpinnerUnits.setModel(new javax.swing.SpinnerNumberModel(256, 1, 2048, 1));
72 jLabel1.setText("Units per pixel:");
74 jSpinnerHeight.setModel(new javax.swing.SpinnerNumberModel(1024, 256, 16384, 1));
76 jLabel2.setText("Height for white:");
78 jButtonOK.setText("Start conversion!");
79 jButtonOK.addActionListener(new java.awt.event.ActionListener() {
80 public void actionPerformed(java.awt.event.ActionEvent evt) {
81 jButtonOKActionPerformed(evt);
85 jLabel3.setText("Cover terrain surface with texture:");
87 jTextFieldTexture.setText("terrain/terrain1");
89 jCheckBoxDetail.setSelected(true);
90 jCheckBoxDetail.setText("make detail");
92 jLabel4.setText("Texture scale:");
94 jSpinner1.setModel(new javax.swing.SpinnerNumberModel(0.5d, 0.25d, 16.0d, 0.25d));
96 javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
97 jPanel1.setLayout(jPanel1Layout);
98 jPanel1Layout.setHorizontalGroup(
99 jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
100 .addGroup(jPanel1Layout.createSequentialGroup()
102 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
103 .addComponent(jTextFieldTexture, javax.swing.GroupLayout.DEFAULT_SIZE, 465, Short.MAX_VALUE)
104 .addGroup(jPanel1Layout.createSequentialGroup()
105 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
106 .addComponent(jTextFieldInput, javax.swing.GroupLayout.DEFAULT_SIZE, 313, Short.MAX_VALUE)
107 .addComponent(jTextFieldOutput, javax.swing.GroupLayout.DEFAULT_SIZE, 313, Short.MAX_VALUE))
108 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
109 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
110 .addComponent(jButtonOutput, javax.swing.GroupLayout.DEFAULT_SIZE, 146, Short.MAX_VALUE)
111 .addComponent(jButtonInput, javax.swing.GroupLayout.DEFAULT_SIZE, 146, Short.MAX_VALUE)))
112 .addComponent(jButtonOK)
113 .addGroup(jPanel1Layout.createSequentialGroup()
114 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
115 .addComponent(jLabel1)
116 .addComponent(jSpinnerUnits, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
118 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
119 .addGroup(jPanel1Layout.createSequentialGroup()
120 .addComponent(jSpinnerHeight, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
122 .addComponent(jSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
123 .addGroup(jPanel1Layout.createSequentialGroup()
124 .addComponent(jLabel2)
126 .addComponent(jLabel4)))
127 .addGap(132, 132, 132))
128 .addComponent(jLabel3)
129 .addComponent(jCheckBoxDetail))
132 jPanel1Layout.setVerticalGroup(
133 jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
134 .addGroup(jPanel1Layout.createSequentialGroup()
136 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
137 .addComponent(jButtonInput)
138 .addComponent(jTextFieldInput, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE))
139 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
140 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
141 .addComponent(jButtonOutput)
142 .addComponent(jTextFieldOutput, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE))
144 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
145 .addComponent(jLabel1)
146 .addComponent(jLabel2)
147 .addComponent(jLabel4))
148 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
149 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
150 .addComponent(jSpinnerUnits, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
151 .addComponent(jSpinnerHeight, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
152 .addComponent(jSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
153 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
154 .addComponent(jLabel3)
155 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
156 .addComponent(jTextFieldTexture, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
157 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
158 .addComponent(jCheckBoxDetail)
159 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 18, Short.MAX_VALUE)
160 .addComponent(jButtonOK)
164 javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
165 getContentPane().setLayout(layout);
166 layout.setHorizontalGroup(
167 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
168 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
170 .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
173 layout.setVerticalGroup(
174 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
175 .addGroup(layout.createSequentialGroup()
177 .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
182 }// </editor-fold>//GEN-END:initComponents
184 private void jButtonInputActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonInputActionPerformed
185 JFileChooser fc = new JFileChooser();
186 int ret = fc.showOpenDialog(this);
188 if(ret == fc.APPROVE_OPTION) {
189 File f = fc.getSelectedFile();
191 jTextFieldInput.setText(f.getAbsolutePath());
194 }//GEN-LAST:event_jButtonInputActionPerformed
196 private void jButtonOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonOKActionPerformed
197 Parameters p = new Parameters();
198 p.infile = jTextFieldInput.getText();
199 p.outfile = jTextFieldOutput.getText();
200 p.texture = jTextFieldTexture.getText();
201 p.pixelsize = (Integer)jSpinnerUnits.getValue();
202 p.height = (Integer)jSpinnerHeight.getValue();
203 p.texturescale = (Double)jSpinner1.getValue();
204 p.detail = jCheckBoxDetail.isSelected();
205 new MapWriter().writeMap(p);
206 }//GEN-LAST:event_jButtonOKActionPerformed
209 * @param args the command line arguments
211 public static void main(String args[]) {
212 java.awt.EventQueue.invokeLater(new Runnable() {
214 new JFrameMain().setVisible(true);
219 // Variables declaration - do not modify//GEN-BEGIN:variables
220 private javax.swing.JButton jButtonInput;
221 private javax.swing.JButton jButtonOK;
222 private javax.swing.JButton jButtonOutput;
223 private javax.swing.JCheckBox jCheckBoxDetail;
224 private javax.swing.JLabel jLabel1;
225 private javax.swing.JLabel jLabel2;
226 private javax.swing.JLabel jLabel3;
227 private javax.swing.JLabel jLabel4;
228 private javax.swing.JPanel jPanel1;
229 private javax.swing.JSpinner jSpinner1;
230 private javax.swing.JSpinner jSpinnerHeight;
231 private javax.swing.JSpinner jSpinnerUnits;
232 private javax.swing.JTextField jTextFieldInput;
233 private javax.swing.JTextField jTextFieldOutput;
234 private javax.swing.JTextField jTextFieldTexture;
235 // End of variables declaration//GEN-END:variables