PageRenderTime 63ms CodeModel.GetById 27ms RepoModel.GetById 1ms app.codeStats 0ms

/source/tools/java/UnitEditor.java

https://bitbucket.org/gcubar/asc
Java | 2118 lines | 1599 code | 356 blank | 163 comment | 291 complexity | c2802e6afcdd3756e9dd32d1197220b1 MD5 | raw file
Possible License(s): GPL-2.0, AGPL-1.0

Large files files are truncated, but you can click here to view the full file

  1. // $Id: UnitEditor.java,v 1.13 2009-04-18 13:48:40 mbickel Exp $
  2. //
  3. // $Log: not supported by cvs2svn $
  4. // Revision 1.12 2001/07/14 19:13:16 mbickel
  5. // Rewrote sound system
  6. // Moveing units make sounds
  7. // Added sound files to data
  8. //
  9. // Revision 1.11 2001/05/10 16:24:03 mbickel
  10. // Fixed crash in Java-Uniteditor when palette not available
  11. //
  12. // Revision 1.10 2000/11/08 19:37:41 mbickel
  13. // Changed the terrain types (again): "lava" now replaces "small trench"
  14. //
  15. // Revision 1.9 2000/11/07 22:14:33 mbickel
  16. // Added terrain type "Lava"
  17. //
  18. // Revision 1.8 2000/11/07 16:19:40 schelli
  19. // Minor Memory-Functions & Problems changed
  20. // Picture Support partly enabled
  21. // New Funktion partly implemented
  22. // Buildings partly implemented
  23. //
  24. // Revision 1.7 2000/11/01 11:41:05 mbickel
  25. // Fixed: Selection in MainWindow-List not being evaluated, the first list
  26. // entry was always edited.
  27. //
  28. // Revision 1.6 2000/10/31 18:06:46 mbickel
  29. // Fileselector now displays files too
  30. //
  31. // Revision 1.5 2000/10/29 21:06:04 mbickel
  32. // Modified filename construction to run under Linux
  33. // Started implementing a better directory choosing dialog
  34. //
  35. // Revision 1.4 2000/10/17 17:28:27 schelli
  36. // minor bugs fixed in lots of sources
  37. // add & remove weapon works now
  38. // revert to save button removed
  39. // class-handling bugs fixed
  40. // load & save routines fully implemented
  41. // terrainacces added
  42. //
  43. // Revision 1.3 2000/10/14 22:40:02 schelli
  44. // AutoRepairRate added
  45. // version will be updated to actual version when saved
  46. // "vehicle must category" added
  47. // Weapon pannel restructured + can.NOT.hit added
  48. // data-arrays updated
  49. //
  50. // Revision 1.2 2000/10/13 13:15:47 schelli
  51. // Load&Save routines finished
  52. //
  53. /*
  54. * UnitEditor.java
  55. *
  56. * Created on 23. November 1999, 16:59
  57. This file is part of Advanced Strategic Command; http://www.asc-hq.de
  58. Copyright (C) 1994-2000 Martin Bickel and Marc Schellenberger
  59. This program is free software; you can redistribute it and/or modify
  60. it under the terms of the GNU General Public License as published by
  61. the Free Software Foundation; either version 2 of the License, or
  62. (at your option) any later version.
  63. This program is distributed in the hope that it will be useful,
  64. but WITHOUT ANY WARRANTY; without even the implied warranty of
  65. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  66. GNU General Public License for more details.
  67. You should have received a copy of the GNU General Public License
  68. along with this program; see the file COPYING. If not, write to the
  69. Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  70. Boston, MA 02111-1307 USA
  71. */
  72. public class UnitEditor extends javax.swing.JFrame {
  73. public static int DISPOSE = 1;
  74. public static int EXIT = 0;
  75. public int initDone;
  76. public String errorMessage;
  77. public SgStream s;
  78. private Unit tUnit;
  79. private ErrorMessage errMsg;
  80. private int exitAction;
  81. //*Variable-Definitions*
  82. //Main-Table
  83. private MakeCheckIntRangeField jIntFieldID;
  84. private MakeCheckIntRangeField jIntFieldArmor;
  85. private MakeCheckIntRangeField jIntFieldWeight;
  86. private MakeCheckIntRangeField jIntFieldEnergyTank;
  87. private MakeCheckIntRangeField jIntFieldMaterialTank;
  88. private MakeCheckIntRangeField jIntFieldProductionEnergy;
  89. private MakeCheckIntRangeField jIntFieldProductionMaterial;
  90. private MakeCheckIntRangeField jIntFieldView;
  91. private MakeCheckIntRangeField jIntFieldJamming;
  92. //Movement-Table
  93. private MakeCheckIntRangeField jIntFieldMovementTable[];
  94. private MakeCheckIntRangeField jIntFieldFuelconsumption;
  95. private MakeCheckIntRangeField jIntFieldTank;
  96. private MakeCheckIntRangeField jIntFieldDistanceHeightChange;
  97. private MakeCheckIntRangeField jIntFieldMaxWindspeed;
  98. private MakeCheckIntRangeField jIntFieldMaxLoad;
  99. private MakeCheckIntRangeField jIntFieldMaxUnitWeight;
  100. private javax.swing.JCheckBox movementTableCheckBox[];
  101. private javax.swing.JTextField movementTableTextField[];
  102. //Load-Table
  103. private javax.swing.JCheckBox loadOnHeightTableCheckBox[];
  104. private javax.swing.JCheckBox loadAbleHeightTableCheckBox[];
  105. private javax.swing.JCheckBox loadNotHeightTableCheckBox[];
  106. private javax.swing.JCheckBox loadMustCategoryCheckBox[];
  107. //Functions-Table
  108. private MakeCheckIntRangeField jIntFieldResourceRadius;
  109. private MakeCheckIntRangeField jIntFieldAutoRepairRate;
  110. private javax.swing.JCheckBox functionSelectCheckBox[];
  111. //Class-Table
  112. private String classNames[];
  113. private int classLastIndex = 0;
  114. private javax.swing.JCheckBox classFunctionSelectCheckBox[];
  115. private static int CLASS_STANDARD = 0;
  116. private static int CLASS_ORIGINAL = 1;
  117. private javax.swing.JTextField classWeaponImprovementTextField[];
  118. private MakeCheckIntRangeField jIntFieldClassWeaponImprovement[];
  119. private javax.swing.JTextField classTechnologyIDTextField[];
  120. private MakeCheckIntRangeField jIntFieldClassTechnologyID[];
  121. private MakeCheckIntRangeField jIntFieldClassTechLevel;
  122. //Weapon-Table
  123. private int weaponLastIndex = 0;
  124. private static int WEAPON_NOSAVE = 0;
  125. private static int WEAPON_SAVE = 1;
  126. private javax.swing.JCheckBox weaponTypeSelectCheckBox[];
  127. private javax.swing.JCheckBox weaponAimSelectCheckBox[];
  128. private javax.swing.JCheckBox weaponSourceSelectCheckBox[];
  129. private javax.swing.JCheckBox weaponCanNotHitSelectCheckBox[];
  130. private MakeCheckIntRangeField jIntFieldMinDistance;
  131. private MakeCheckIntRangeField jIntFieldMaxDistance;
  132. private MakeCheckIntRangeField jIntFieldMinDistanceStrength;
  133. private MakeCheckIntRangeField jIntFieldMaxDistanceStrength;
  134. private MakeCheckIntRangeField jIntFieldAmmo;
  135. private javax.swing.JTextField jTextFieldEfficiencies[];
  136. private MakeCheckIntRangeField jIntFieldEfficiencies[];
  137. //TerrainAccess-Table
  138. private javax.swing.JLabel jLabelAccessAbleHeightTable;
  139. private javax.swing.JLabel jLabelaccessNecessaryHeightTable;
  140. private javax.swing.JLabel jLabelAccessNoneHeightTable;
  141. private javax.swing.JLabel jLabelAccessDiesHeightTable;
  142. private javax.swing.JCheckBox accessAbleHeightTableCheckBox[];
  143. private javax.swing.JCheckBox accessNecessaryHeightTableTableCheckBox[];
  144. private javax.swing.JCheckBox accessNoneHeightTableCheckBox[];
  145. private javax.swing.JCheckBox accessDiesHeightTableCheckBox[];
  146. //Image-Table
  147. private ImgCanvas canvas;
  148. private boolean pictureAvail;
  149. private ImageProcess imgProcess;
  150. /** Creates new form UnitWindow */
  151. public UnitEditor(String unitPath, String unitFileName, int action,int exitAct){
  152. // action new / load;
  153. //exitAct exit / dispose
  154. initDone = 0;
  155. pictureAvail = false;
  156. if (unitPath.length() == 0) return;
  157. exitAction = exitAct;
  158. initComponents ();
  159. if ( unitPath.endsWith(java.io.File.separator ) == false ) unitPath = unitPath.concat(java.io.File.separator);
  160. String unitAbsoluteFileName = unitPath.concat(unitFileName);
  161. tUnit = new Unit(unitAbsoluteFileName);
  162. if (action == tUnit.NEW) tUnit.createNew();
  163. else tUnit.load();
  164. setTitle(unitFileName+" - "+tUnit.name+" - "+tUnit.description);
  165. errMsg = new ErrorMessage(jLabelErrorMessage);
  166. //*Int-Field-Settings*
  167. jLabelVersion.setText ("Version "+tUnit.version+".0");
  168. // Main-Panel
  169. jIntFieldID = new MakeCheckIntRangeField(jTextFieldID,errMsg,0,65534);
  170. jIntFieldArmor = new MakeCheckIntRangeField(jTextFieldArmor,errMsg,0,65535);
  171. jIntFieldWeight = new MakeCheckIntRangeField(jTextFieldWeight,errMsg,0,32000);
  172. jIntFieldEnergyTank = new MakeCheckIntRangeField(jTextFieldEnergyTank,errMsg,0,2147483646);
  173. jIntFieldMaterialTank = new MakeCheckIntRangeField(jTextFieldMaterialTank,errMsg,0,2147483646);
  174. jIntFieldProductionEnergy = new MakeCheckIntRangeField(jTextFieldProductionEnergy,errMsg,0,65535);
  175. jIntFieldProductionMaterial = new MakeCheckIntRangeField(jTextFieldProductionMaterial,errMsg,0,65535);
  176. jIntFieldView = new MakeCheckIntRangeField(jTextFieldView,errMsg,0,255);
  177. jIntFieldJamming = new MakeCheckIntRangeField(jTextFieldJamming,errMsg,0,255);
  178. // Movement-Panel
  179. jIntFieldFuelconsumption = new MakeCheckIntRangeField(jTextFieldFuelconsumption,
  180. errMsg,0,65534);
  181. jIntFieldTank = new MakeCheckIntRangeField(jTextFieldTank,
  182. errMsg,0,2147483646);
  183. jIntFieldDistanceHeightChange = new MakeCheckIntRangeField(jTextFieldDistanceHeightChange,
  184. errMsg,0,255);
  185. jIntFieldMaxWindspeed = new MakeCheckIntRangeField(jTextFieldMaxWindspeed,
  186. errMsg,0,255);
  187. // Load-Panel
  188. jIntFieldMaxLoad = new MakeCheckIntRangeField(jTextFieldMaxLoad,
  189. errMsg,0,32000);
  190. jIntFieldMaxUnitWeight = new MakeCheckIntRangeField(jTextFieldMaxUnitWeight,
  191. errMsg,0,32000);
  192. // Functions-Panel
  193. jIntFieldResourceRadius = new MakeCheckIntRangeField(jTextFieldResourceRadius,
  194. errMsg,0,255);
  195. jIntFieldAutoRepairRate = new MakeCheckIntRangeField(jTextFieldAutoRepairRate,
  196. errMsg,0,100);
  197. // Class-Panel
  198. jIntFieldClassTechLevel = new MakeCheckIntRangeField(jTextFieldTechLevel,
  199. errMsg,0,255);
  200. // Weapon-Panel
  201. jIntFieldMinDistance = new MakeCheckIntRangeField(jTextFieldWeaponMinDistance,
  202. errMsg,0,255);
  203. jIntFieldMaxDistance = new MakeCheckIntRangeField(jTextFieldWeaponMaxDistance,
  204. errMsg,0,255);
  205. jIntFieldMinDistanceStrength = new MakeCheckIntRangeField(jTextFieldWeaponMinStrength,
  206. errMsg,1,2147483646);
  207. jIntFieldMaxDistanceStrength = new MakeCheckIntRangeField(jTextFieldWeaponMaxStrength,
  208. errMsg,1,2147483646);
  209. jIntFieldAmmo = new MakeCheckIntRangeField(jTextFieldWeaponAmmo,
  210. errMsg,0,255);
  211. //*Field-Value-Initialisations*
  212. // Main-Panel
  213. if ((tUnit.name != null) && (action == tUnit.LOAD)) jTxtFieldName.setText (tUnit.name);
  214. else jTxtFieldName.setText ("");
  215. if (tUnit.description != null)
  216. jTxtFieldDescription.setText (tUnit.description);
  217. else jTxtFieldDescription.setText ("");
  218. jIntFieldID.setInt(tUnit.id);
  219. jIntFieldArmor.setInt(tUnit.armor);
  220. jIntFieldWeight.setInt(tUnit.weight);
  221. jIntFieldEnergyTank.setInt(tUnit.energy);
  222. jIntFieldMaterialTank.setInt(tUnit.material);
  223. jIntFieldProductionEnergy.setInt(tUnit.production.energy);
  224. jIntFieldProductionMaterial.setInt(tUnit.production.material);
  225. jIntFieldView.setInt(tUnit.view);
  226. jIntFieldJamming.setInt(tUnit.jamming);
  227. // InfoText-Panel
  228. if (tUnit.infotext != null)
  229. jTextPaneInfoText.setText (tUnit.infotext);
  230. else
  231. jTextPaneInfoText.setText ("");
  232. // Movement-Panel
  233. jIntFieldFuelconsumption.setInt(tUnit.fuelconsumption);
  234. jIntFieldTank.setInt(tUnit.tank);
  235. jIntFieldDistanceHeightChange.setInt(tUnit.steigung);
  236. jIntFieldMaxWindspeed.setInt(tUnit.maxwindspeedonwater);
  237. // Load-Panel
  238. jIntFieldMaxLoad.setInt(tUnit.loadcapacity);
  239. if (tUnit.maxunitweight <=0 ) tUnit.maxunitweight = tUnit.loadcapacity;
  240. jIntFieldMaxUnitWeight.setInt(tUnit.maxunitweight);
  241. // Functions-Panel
  242. jIntFieldResourceRadius.setInt(tUnit.digrange);
  243. jIntFieldAutoRepairRate.setInt(tUnit.autorepairrate);
  244. //*Variable-Layout-Design*
  245. // Movement-Panel
  246. jPanelMovementTable.setLayout ( new java.awt.GridLayout (cHeightLevel.length, 2));
  247. movementTableCheckBox = new javax.swing.JCheckBox[cHeightLevel.length];
  248. movementTableTextField = new javax.swing.JTextField[cHeightLevel.length];
  249. jIntFieldMovementTable = new MakeCheckIntRangeField[cHeightLevel.length];
  250. for (int i=0; i < cHeightLevel.length;i++) {
  251. movementTableCheckBox[i] = new javax.swing.JCheckBox();
  252. movementTableCheckBox[i].setText (cHeightLevel[i]);
  253. movementTableCheckBox[i].setName(new java.lang.Integer(i).toString());
  254. jPanelMovementTable.add (movementTableCheckBox[i]);
  255. movementTableTextField[i] = new javax.swing.JTextField();
  256. movementTableTextField[i].setBorder (
  257. new javax.swing.border.TitledBorder(new javax.swing.border.EtchedBorder(),cHeightLevel[i]
  258. .concat(".Movement (0-255)"), 1, 2, new java.awt.Font ("Arial", 0, 10)));
  259. movementTableTextField[i].setText ("0");
  260. movementTableTextField[i].setEnabled (false);
  261. jIntFieldMovementTable[i] = new MakeCheckIntRangeField
  262. (movementTableTextField[i],errMsg,0,255);
  263. if ( (tUnit.height & (1 << i)) > 0 ) {
  264. movementTableCheckBox[i].setSelected(true);
  265. movementTableTextField[i].setEnabled (true);
  266. jIntFieldMovementTable[i].setInt(tUnit.movement[i]);
  267. }
  268. jPanelMovementTable.add (movementTableTextField[i]);
  269. movementTableCheckBox[i].addActionListener (new java.awt.event.ActionListener () {
  270. public void actionPerformed (java.awt.event.ActionEvent evt) {
  271. movementTableActionPerformed(evt);
  272. }
  273. }
  274. );
  275. }
  276. for (int i = 0; i < cMovemaliType.length;i++)
  277. jComboBoxCategory.addItem(cMovemaliType[i]);
  278. jComboBoxCategory.setSelectedIndex(tUnit.movemalustyp);
  279. if (tUnit.wait > 0 ) jCheckBoxWaitAfterMove.setSelected(true);
  280. else jCheckBoxWaitAfterMove.setSelected(false);
  281. heightChangeCheck(); //check, if at least 2 heights r selected
  282. //Load-Table
  283. jPanelLoadTable.setLayout (new java.awt.GridLayout (cHeightLevel.length, 3));
  284. loadOnHeightTableCheckBox = new javax.swing.JCheckBox[cHeightLevel.length];
  285. loadAbleHeightTableCheckBox = new javax.swing.JCheckBox[cHeightLevel.length];
  286. loadNotHeightTableCheckBox = new javax.swing.JCheckBox[cHeightLevel.length];
  287. for (int i=0; i < cHeightLevel.length;i++) {
  288. loadOnHeightTableCheckBox[i] = new javax.swing.JCheckBox();
  289. loadOnHeightTableCheckBox[i].setText (cHeightLevel[i]);
  290. loadAbleHeightTableCheckBox[i] = new javax.swing.JCheckBox();
  291. loadAbleHeightTableCheckBox[i].setText (cHeightLevel[i]);
  292. loadNotHeightTableCheckBox[i] = new javax.swing.JCheckBox();
  293. loadNotHeightTableCheckBox[i].setText (cHeightLevel[i]);
  294. jPanelLoadTable.add (loadOnHeightTableCheckBox[i]);
  295. jPanelLoadTable.add (loadAbleHeightTableCheckBox[i]);
  296. jPanelLoadTable.add (loadNotHeightTableCheckBox[i]);
  297. if ( (tUnit.loadcapability & (1 << i)) > 0 )
  298. loadOnHeightTableCheckBox[i].setSelected(true);
  299. if ( (tUnit.loadcapabilityreq & (1 << i)) > 0 )
  300. loadAbleHeightTableCheckBox[i].setSelected(true);
  301. if ( (tUnit.loadcapabilitynot & (1 << i)) > 0 )
  302. loadNotHeightTableCheckBox[i].setSelected(true);
  303. }
  304. jPanelMustCategory.setLayout (new java.awt.GridLayout (cMovemaliType.length, 1));
  305. loadMustCategoryCheckBox = new javax.swing.JCheckBox[cMovemaliType.length];
  306. for (int i=0; i < cMovemaliType.length;i++) {
  307. loadMustCategoryCheckBox[i] = new javax.swing.JCheckBox();
  308. loadMustCategoryCheckBox[i].setText (cMovemaliType[i]);
  309. jPanelMustCategory.add (loadMustCategoryCheckBox[i]);
  310. if ( (tUnit.vehicleCategoriesLoadable & (1 << i)) > 0 )
  311. loadMustCategoryCheckBox[i].setSelected(true);
  312. }
  313. jTextFieldMaxLoad.addActionListener (new java.awt.event.ActionListener () {
  314. public void actionPerformed (java.awt.event.ActionEvent evt) {
  315. maxLoadCheck();
  316. }
  317. }
  318. );
  319. jTextFieldMaxLoad.addFocusListener (new java.awt.event.FocusAdapter () {
  320. public void focusLost (java.awt.event.FocusEvent evt) {
  321. maxLoadCheck();
  322. }
  323. }
  324. );
  325. maxLoadCheck();
  326. //Functions-Table
  327. jPanelFunctionSelect.setLayout
  328. (new java.awt.GridLayout (cVehicleFunctions.length, 3));
  329. functionSelectCheckBox = new javax.swing.JCheckBox[cVehicleFunctions.length];
  330. for (int i=0; i < cVehicleFunctions.length;i++) {
  331. functionSelectCheckBox[i] = new javax.swing.JCheckBox();
  332. functionSelectCheckBox[i].setText (cVehicleFunctions[i]);
  333. jPanelFunctionSelect.add (functionSelectCheckBox[i]);
  334. if ( (tUnit.functions & (1 << i)) > 0 )
  335. functionSelectCheckBox[i].setSelected(true);
  336. if (((1 << i) & (cfautodigger | cfmanualdigger)) > 0) {
  337. functionSelectCheckBox[i].addActionListener (new java.awt.event.ActionListener () {
  338. public void actionPerformed (java.awt.event.ActionEvent evt) {
  339. digCheck();
  340. }
  341. }
  342. );
  343. functionSelectCheckBox[i].addFocusListener (new java.awt.event.FocusAdapter () {
  344. public void focusLost (java.awt.event.FocusEvent evt) {
  345. digCheck();
  346. }
  347. }
  348. );
  349. }
  350. }
  351. digCheck();
  352. //Class-Table
  353. classNames = new String[9]; //Einer mehr als Classes, damit man auch hinter der letzten Class einfuegen kann
  354. for (int i=0; i<8;i++) {
  355. if (tUnit.classnames[i] != null) classNames[i] = tUnit.classnames[i];
  356. }
  357. jListClasses.setListData(classNames);
  358. jListClasses.setSelectionMode
  359. (new javax.swing.DefaultListSelectionModel().SINGLE_SELECTION);
  360. jPanelClassFunctionSelect.setLayout
  361. (new java.awt.GridLayout (cVehicleFunctions.length, 1));
  362. classFunctionSelectCheckBox = new javax.swing.JCheckBox[cVehicleFunctions.length];
  363. for (int i=0; i < cVehicleFunctions.length;i++) {
  364. classFunctionSelectCheckBox[i] = new javax.swing.JCheckBox();
  365. classFunctionSelectCheckBox[i].setText (cVehicleFunctions[i]);
  366. jPanelClassFunctionSelect.add (classFunctionSelectCheckBox[i]);
  367. }
  368. jPanelClassWeaponImprovement.setLayout
  369. (new java.awt.GridLayout (tUnit.classbound[0].weaponcount + 1, 1));
  370. classWeaponImprovementTextField =
  371. new javax.swing.JTextField[tUnit.classbound[0].weaponcount +1];
  372. jIntFieldClassWeaponImprovement =
  373. new MakeCheckIntRangeField[tUnit.classbound[0].weaponcount +1];
  374. for (int i=0; i < tUnit.classbound[0].weaponcount;i++) {
  375. classWeaponImprovementTextField[i] = new javax.swing.JTextField();
  376. classWeaponImprovementTextField[i].setBorder (new javax.swing.border
  377. .TitledBorder(new javax.swing.border.EtchedBorder(),cWeaponType[i]
  378. .concat(".Improvement (1024-65530)"), 1, 2, new java.awt.Font ("Arial", 0, 10)));
  379. jIntFieldClassWeaponImprovement[i] = new MakeCheckIntRangeField
  380. (classWeaponImprovementTextField[i],errMsg,1024,65530);
  381. jIntFieldClassWeaponImprovement[i].setInt(0);
  382. jPanelClassWeaponImprovement.add (classWeaponImprovementTextField[i]);
  383. }
  384. classWeaponImprovementTextField[tUnit.classbound[0].weaponcount] = new javax.swing.JTextField();
  385. classWeaponImprovementTextField[tUnit.classbound[0].weaponcount].setBorder
  386. (new javax.swing.border.TitledBorder(new javax.swing.border.EtchedBorder(),
  387. "armor.Improvement (1024-65530)", 1, 2, new java.awt.Font ("Arial", 0, 10)));
  388. classWeaponImprovementTextField[tUnit.classbound[0].weaponcount].setEnabled(true);
  389. jIntFieldClassWeaponImprovement[tUnit.classbound[0].weaponcount] = new MakeCheckIntRangeField
  390. (classWeaponImprovementTextField[tUnit.classbound[0].weaponcount],errMsg,1024,65530);
  391. jPanelClassWeaponImprovement.add (classWeaponImprovementTextField[tUnit.classbound[0].weaponcount]);
  392. // Armor improvement ist einfach an Weapon angehängt
  393. classTechnologyIDTextField = new javax.swing.JTextField[4];
  394. jIntFieldClassTechnologyID = new MakeCheckIntRangeField[4];
  395. for (int i=0; i < 4;i++) {
  396. classTechnologyIDTextField[i] = new javax.swing.JTextField();
  397. classTechnologyIDTextField[i].setBorder (new javax.swing.border
  398. .TitledBorder(new javax.swing.border.EtchedBorder(),"Technology required ID "
  399. .concat(new java.lang.Integer(i+1).toString()).concat(" (0-65500)")
  400. , 1, 2, new java.awt.Font ("Arial", 0, 10)));
  401. classTechnologyIDTextField[i].setText ("0");
  402. classTechnologyIDTextField[i].setEnabled (false);
  403. classTechnologyIDTextField[i].setName(new java.lang.Integer(i).toString());
  404. jIntFieldClassTechnologyID[i] = new MakeCheckIntRangeField
  405. (classTechnologyIDTextField[i],errMsg,0,65500);
  406. jPanelClassTechnologyIDs.add (classTechnologyIDTextField[i]);
  407. classTechnologyIDTextField[i].addActionListener (new java.awt.event.ActionListener () {
  408. public void actionPerformed (java.awt.event.ActionEvent evt) {
  409. technologyIDCheck();
  410. }
  411. }
  412. );
  413. classTechnologyIDTextField[i].addFocusListener (new java.awt.event.FocusAdapter () {
  414. public void focusLost (java.awt.event.FocusEvent evt) {
  415. technologyIDCheck();
  416. }
  417. }
  418. );
  419. }
  420. classTechnologyIDTextField[0].setEnabled (true);
  421. showClassValues(0);
  422. //Weapon-Table
  423. jPanelWeaponType.setLayout
  424. (new java.awt.GridLayout (cWeaponType.length, 1));
  425. weaponTypeSelectCheckBox = new javax.swing.JCheckBox[cWeaponType.length];
  426. for (int i=0; i < cWeaponType.length;i++) {
  427. weaponTypeSelectCheckBox[i] = new javax.swing.JCheckBox();
  428. weaponTypeSelectCheckBox[i].setText (cWeaponType[i]);
  429. jPanelWeaponType.add (weaponTypeSelectCheckBox[i]);
  430. }
  431. jPanelWeaponAim.setLayout
  432. (new java.awt.GridLayout (cHeightLevel.length, 1));
  433. weaponAimSelectCheckBox = new javax.swing.JCheckBox[cHeightLevel.length];
  434. for (int i=0; i < cHeightLevel.length;i++) {
  435. weaponAimSelectCheckBox[i] = new javax.swing.JCheckBox();
  436. weaponAimSelectCheckBox[i].setText (cHeightLevel[i]);
  437. jPanelWeaponAim.add (weaponAimSelectCheckBox[i]);
  438. }
  439. jPanelWeaponSource.setLayout
  440. (new java.awt.GridLayout (cHeightLevel.length, 1));
  441. weaponSourceSelectCheckBox = new javax.swing.JCheckBox[cHeightLevel.length];
  442. for (int i=0; i < cHeightLevel.length;i++) {
  443. weaponSourceSelectCheckBox[i] = new javax.swing.JCheckBox();
  444. weaponSourceSelectCheckBox[i].setText (cHeightLevel[i]);
  445. jPanelWeaponSource.add (weaponSourceSelectCheckBox[i]);
  446. }
  447. jPanelWeaponCanNotHit.setLayout
  448. (new java.awt.GridLayout (cMovemaliType.length, 1));
  449. weaponCanNotHitSelectCheckBox = new javax.swing.JCheckBox[cMovemaliType.length];
  450. for (int i=0; i < cMovemaliType.length;i++) {
  451. weaponCanNotHitSelectCheckBox[i] = new javax.swing.JCheckBox();
  452. weaponCanNotHitSelectCheckBox[i].setText (cMovemaliType[i]);
  453. jPanelWeaponCanNotHit.add (weaponCanNotHitSelectCheckBox[i]);
  454. }
  455. jPanelEfficiencies.setLayout
  456. (new java.awt.GridLayout (13, 1));
  457. jTextFieldEfficiencies = new javax.swing.JTextField[13];
  458. jIntFieldEfficiencies = new MakeCheckIntRangeField[13];
  459. for (int i=0; i < 13;i++) {
  460. jTextFieldEfficiencies[i] = new javax.swing.JTextField();
  461. jTextFieldEfficiencies[i].setBorder (new javax.swing.border
  462. .TitledBorder(new javax.swing.border.EtchedBorder(),"height "
  463. .concat(new java.lang.Integer(i-6).toString()).concat(" (0-100)"), 1, 2,
  464. new java.awt.Font ("Arial", 0, 10)));
  465. jIntFieldEfficiencies[i] = new MakeCheckIntRangeField
  466. (jTextFieldEfficiencies[i],errMsg,0,100);
  467. jIntFieldEfficiencies[i].setInt(100);
  468. jPanelEfficiencies.add (jTextFieldEfficiencies[i]);
  469. }
  470. jTextFieldWeaponMaxDistance.addActionListener (new java.awt.event.ActionListener () {
  471. public void actionPerformed (java.awt.event.ActionEvent evt) {
  472. weaponMaxDistanceCheck();
  473. }
  474. }
  475. );
  476. jTextFieldWeaponMaxDistance.addFocusListener (new java.awt.event.FocusAdapter () {
  477. public void focusLost (java.awt.event.FocusEvent evt) {
  478. weaponMaxDistanceCheck();
  479. }
  480. }
  481. );
  482. if (tUnit.weapons.count > 0) {
  483. for (int i = 0 ; i < tUnit.weapons.count; i++)
  484. jComboBoxWeapons.addItem("Weapon ".concat(new java.lang.Integer(i+1).toString()));
  485. } else {
  486. jComboBoxWeapons.addItem("No weapons");
  487. }
  488. setUnitWeaponComboBox();
  489. showWeaponValues(0,WEAPON_NOSAVE);
  490. weaponMaxDistanceCheck();
  491. jTextFieldMaxLoad.addActionListener (new java.awt.event.ActionListener () {
  492. public void actionPerformed (java.awt.event.ActionEvent evt) {
  493. maxLoadCheck();
  494. }
  495. }
  496. );
  497. jTextFieldMaxLoad.addFocusListener (new java.awt.event.FocusAdapter () {
  498. public void focusLost (java.awt.event.FocusEvent evt) {
  499. maxLoadCheck();
  500. }
  501. }
  502. );
  503. maxLoadCheck();
  504. //TerrainAccess-Table
  505. jPanelTerrainAccess.setLayout (new java.awt.GridLayout (cTerrainType.length+1, 4));
  506. jLabelAccessAbleHeightTable = new javax.swing.JLabel ();
  507. jLabelaccessNecessaryHeightTable = new javax.swing.JLabel ();
  508. jLabelAccessNoneHeightTable = new javax.swing.JLabel ();
  509. jLabelAccessDiesHeightTable = new javax.swing.JLabel ();
  510. jPanelTerrainAccess.add ( jLabelAccessAbleHeightTable );
  511. jPanelTerrainAccess.add ( jLabelaccessNecessaryHeightTable );
  512. jPanelTerrainAccess.add ( jLabelAccessNoneHeightTable );
  513. jPanelTerrainAccess.add ( jLabelAccessDiesHeightTable );
  514. jLabelAccessAbleHeightTable.setText("Terrain unit can drive on");
  515. jLabelaccessNecessaryHeightTable.setText("ALL bits are necessary to drive on");
  516. jLabelAccessNoneHeightTable.setText("NONE bits are necessary to drive on");
  517. jLabelAccessDiesHeightTable.setText("Unit is destroyed on");
  518. accessAbleHeightTableCheckBox = new javax.swing.JCheckBox[cTerrainType.length];
  519. accessNecessaryHeightTableTableCheckBox = new javax.swing.JCheckBox[cTerrainType.length];
  520. accessNoneHeightTableCheckBox = new javax.swing.JCheckBox[cTerrainType.length];
  521. accessDiesHeightTableCheckBox = new javax.swing.JCheckBox[cTerrainType.length];
  522. for (int i=0; i < cTerrainType.length;i++) {
  523. accessAbleHeightTableCheckBox[i] = new javax.swing.JCheckBox();
  524. accessAbleHeightTableCheckBox[i].setText (cTerrainType[i]);
  525. accessNecessaryHeightTableTableCheckBox[i] = new javax.swing.JCheckBox();
  526. accessNecessaryHeightTableTableCheckBox[i].setText (cTerrainType[i]);
  527. accessNoneHeightTableCheckBox[i] = new javax.swing.JCheckBox();
  528. accessNoneHeightTableCheckBox[i].setText (cTerrainType[i]);
  529. accessDiesHeightTableCheckBox[i] = new javax.swing.JCheckBox();
  530. accessDiesHeightTableCheckBox[i].setText (cTerrainType[i]);
  531. jPanelTerrainAccess.add (accessAbleHeightTableCheckBox[i]);
  532. jPanelTerrainAccess.add (accessNecessaryHeightTableTableCheckBox[i]);
  533. jPanelTerrainAccess.add (accessNoneHeightTableCheckBox[i]);
  534. jPanelTerrainAccess.add (accessDiesHeightTableCheckBox[i]);
  535. if ( (tUnit._terrain & (1 << i)) > 0 )
  536. accessAbleHeightTableCheckBox[i].setSelected(true);
  537. if ( (tUnit._terrainreq & (1 << i)) > 0 )
  538. accessNecessaryHeightTableTableCheckBox[i].setSelected(true);
  539. if ( (tUnit._terrainnot & (1 << i)) > 0 )
  540. accessNoneHeightTableCheckBox[i].setSelected(true);
  541. if ( (tUnit._terrainkill & (1 << i)) > 0 )
  542. accessDiesHeightTableCheckBox[i].setSelected(true);
  543. }
  544. /*
  545. canvas = new ImgCanvas();
  546. s = new SgStream("E:\\Demount\\palette.pal",s.STREAM_READ);
  547. if ( s.error == 0 ) canvas.palette = s.readPalette();
  548. s.close();
  549. canvas.setVisible(false);
  550. jPanelPicture.add (canvas, new org.netbeans.lib.awtextra.AbsoluteConstraints (10, 10, 110, 110));
  551. imgProcess = new ImageProcess(tUnit.picPackage[0],canvas);
  552. */
  553. initDone = 1;
  554. pack ();
  555. }
  556. /** This method is called from within the constructor to
  557. * initialize the form.
  558. * WARNING: Do NOT modify this code. The content of this method is
  559. * always regenerated by the FormEditor.
  560. */
  561. private void initComponents () {//GEN-BEGIN:initComponents
  562. jTabbedPaneMain = new javax.swing.JTabbedPane ();
  563. jPanelMain = new javax.swing.JPanel ();
  564. jTxtFieldName = new javax.swing.JTextField ();
  565. jTxtFieldDescription = new javax.swing.JTextField ();
  566. jTextFieldID = new javax.swing.JTextField ();
  567. jTextFieldArmor = new javax.swing.JTextField ();
  568. jTextFieldProductionMaterial = new javax.swing.JTextField ();
  569. jTextFieldProductionEnergy = new javax.swing.JTextField ();
  570. jTextFieldWeight = new javax.swing.JTextField ();
  571. jTextFieldView = new javax.swing.JTextField ();
  572. jTextFieldJamming = new javax.swing.JTextField ();
  573. jTextFieldEnergyTank = new javax.swing.JTextField ();
  574. jTextFieldMaterialTank = new javax.swing.JTextField ();
  575. jLabelProductionBorder = new javax.swing.JLabel ();
  576. jLabelNameDescriptionBorder = new javax.swing.JLabel ();
  577. jLabelIDArmorWeightBorder = new javax.swing.JLabel ();
  578. jLabelViewJammingBorder = new javax.swing.JLabel ();
  579. jLabelEnergyMaterialTankBorder = new javax.swing.JLabel ();
  580. jLabelEnergyTankWarning = new javax.swing.JLabel ();
  581. jButtonSave = new javax.swing.JButton ();
  582. jLabelVersion = new javax.swing.JLabel ();
  583. jPanelMovement = new javax.swing.JPanel ();
  584. jPanelMovementTable = new javax.swing.JPanel ();
  585. jComboBoxCategory = new javax.swing.JComboBox ();
  586. jCheckBoxWaitAfterMove = new javax.swing.JCheckBox ();
  587. jTextFieldFuelconsumption = new javax.swing.JTextField ();
  588. jTextFieldTank = new javax.swing.JTextField ();
  589. jLabelFuelconsumptionTankBorder = new javax.swing.JLabel ();
  590. jTextFieldDistanceHeightChange = new javax.swing.JTextField ();
  591. jTextFieldMaxWindspeed = new javax.swing.JTextField ();
  592. jLabelMaxWindspeed = new javax.swing.JLabel ();
  593. jLabelWindspeedBorder = new javax.swing.JLabel ();
  594. jPanelLoad = new javax.swing.JPanel ();
  595. jTextFieldMaxLoad = new javax.swing.JTextField ();
  596. jTextFieldMaxUnitWeight = new javax.swing.JTextField ();
  597. jPanelLoadTable = new javax.swing.JPanel ();
  598. jPanelLoadTabelTitle = new javax.swing.JPanel ();
  599. jLabelOnHeight = new javax.swing.JLabel ();
  600. jLabelAbleHeight = new javax.swing.JLabel ();
  601. jLabelNotHeight = new javax.swing.JLabel ();
  602. jLabelMustCategory = new javax.swing.JLabel ();
  603. jPanelMustCategory = new javax.swing.JPanel ();
  604. jPanelWeapons = new javax.swing.JPanel ();
  605. jComboBoxWeapons = new javax.swing.JComboBox ();
  606. jPanelEfficiencies = new javax.swing.JPanel ();
  607. jButtonAddWeapon = new javax.swing.JButton ();
  608. jButtonRemoveWeapon = new javax.swing.JButton ();
  609. jTabbedPaneWeapons = new javax.swing.JTabbedPane ();
  610. jPaneWeaponslMisc = new javax.swing.JPanel ();
  611. jTextFieldWeaponMaxDistance = new javax.swing.JTextField ();
  612. jTextFieldWeaponMinDistance = new javax.swing.JTextField ();
  613. jTextFieldWeaponMinStrength = new javax.swing.JTextField ();
  614. jTextFieldWeaponMaxStrength = new javax.swing.JTextField ();
  615. jTextFieldWeaponAmmo = new javax.swing.JTextField ();
  616. jPaneWeaponslWeaponAimHeights = new javax.swing.JPanel ();
  617. jPanelWeaponAim = new javax.swing.JPanel ();
  618. jPanelWeaponsWeaponSourceHeights = new javax.swing.JPanel ();
  619. jPanelWeaponSource = new javax.swing.JPanel ();
  620. jPanelWeaponsWeaponType = new javax.swing.JPanel ();
  621. jPanelWeaponType = new javax.swing.JPanel ();
  622. jPanelWeaponsWeaponCanNotHit = new javax.swing.JPanel ();
  623. jPanelWeaponCanNotHit = new javax.swing.JPanel ();
  624. jPanelFunctions = new javax.swing.JPanel ();
  625. jPanelFunctionSelect = new javax.swing.JPanel ();
  626. jTextFieldResourceRadius = new javax.swing.JTextField ();
  627. jTextFieldAutoRepairRate = new javax.swing.JTextField ();
  628. jPanelClass = new javax.swing.JPanel ();
  629. jPanelClassFunctionSelect = new javax.swing.JPanel ();
  630. jListClasses = new javax.swing.JList ();
  631. jTextFieldClassName = new javax.swing.JTextField ();
  632. jButtonNewClass = new javax.swing.JButton ();
  633. jButtonSetClassName = new javax.swing.JButton ();
  634. jButtonDeleteClass = new javax.swing.JButton ();
  635. jButtonSetClassStandard = new javax.swing.JButton ();
  636. jPanelClassWeaponImprovement = new javax.swing.JPanel ();
  637. jPanelClassTechnologyIDs = new javax.swing.JPanel ();
  638. jTextFieldTechLevel = new javax.swing.JTextField ();
  639. jPanelInfoText = new javax.swing.JPanel ();
  640. jScrollPaneInfoText = new javax.swing.JScrollPane ();
  641. jTextPaneInfoText = new javax.swing.JTextPane ();
  642. jPanelTerrainAccess = new javax.swing.JPanel ();
  643. jPanelPicture = new javax.swing.JPanel ();
  644. jLabelErrorMessage = new javax.swing.JLabel ();
  645. getContentPane ().setLayout (new org.netbeans.lib.awtextra.AbsoluteLayout ());
  646. addWindowListener (new java.awt.event.WindowAdapter () {
  647. public void windowClosing (java.awt.event.WindowEvent evt) {
  648. closeDialog (evt);
  649. }
  650. }
  651. );
  652. jTabbedPaneMain.addChangeListener (new javax.swing.event.ChangeListener () {
  653. public void stateChanged (javax.swing.event.ChangeEvent evt) {
  654. jTabbedPaneMainStateChanged (evt);
  655. }
  656. }
  657. );
  658. jPanelMain.setLayout (new org.netbeans.lib.awtextra.AbsoluteLayout ());
  659. jPanelMain.setBorder (new javax.swing.border.EmptyBorder(new java.awt.Insets(1, 1, 1, 1)));
  660. jTxtFieldName.setBorder (new javax.swing.border.TitledBorder(
  661. new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)),
  662. "Name", 4, 2, new java.awt.Font ("Arial", 0, 10), java.awt.Color.black));
  663. jTxtFieldName.setText ("Name");
  664. jPanelMain.add (jTxtFieldName, new org.netbeans.lib.awtextra.AbsoluteConstraints (20, 20, 590, 40));
  665. jTxtFieldDescription.setBorder (new javax.swing.border.TitledBorder(
  666. new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)),
  667. "Description", 4, 2, new java.awt.Font ("Arial", 0, 10), java.awt.Color.black));
  668. jTxtFieldDescription.setText ("Description");
  669. jPanelMain.add (jTxtFieldDescription, new org.netbeans.lib.awtextra.AbsoluteConstraints (20, 70, 590, 40));
  670. jTextFieldID.setBorder (new javax.swing.border.TitledBorder(
  671. new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)),
  672. "ID (0-65534)", 4, 2, new java.awt.Font ("Arial", 0, 10), java.awt.Color.black));
  673. jTextFieldID.setText ("0");
  674. jPanelMain.add (jTextFieldID, new org.netbeans.lib.awtextra.AbsoluteConstraints (30, 160, 380, 40));
  675. jTextFieldArmor.setBorder (new javax.swing.border.TitledBorder(
  676. new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)),
  677. "Armor (0-65535)", 4, 2, new java.awt.Font ("Arial", 0, 10), java.awt.Color.black));
  678. jTextFieldArmor.setText ("0");
  679. jPanelMain.add (jTextFieldArmor, new org.netbeans.lib.awtextra.AbsoluteConstraints (30, 210, 380, 40));
  680. jTextFieldProductionMaterial.setBorder (new javax.swing.border.TitledBorder(
  681. new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)),
  682. "Produktioncost.Material (0-65535)", 4, 2, new java.awt.Font ("Arial", 0, 10),
  683. java.awt.Color.black));
  684. jTextFieldProductionMaterial.setText ("0");
  685. jPanelMain.add (jTextFieldProductionMaterial, new org.netbeans.lib.awtextra.AbsoluteConstraints (30, 350, 380, 40));
  686. jTextFieldProductionEnergy.setBorder (new javax.swing.border.TitledBorder(
  687. new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)),
  688. "Produktion.Energy (0-65535)", 4, 2, new java.awt.Font ("Arial", 0, 10),
  689. java.awt.Color.black));
  690. jTextFieldProductionEnergy.setText ("0");
  691. jPanelMain.add (jTextFieldProductionEnergy, new org.netbeans.lib.awtextra.AbsoluteConstraints (30, 410, 380, 40));
  692. jTextFieldWeight.setBorder (new javax.swing.border.TitledBorder(
  693. new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)),
  694. "Weight (0-32000)", 4, 2, new java.awt.Font ("Arial", 0, 10), java.awt.Color.black));
  695. jTextFieldWeight.setText ("0");
  696. jPanelMain.add (jTextFieldWeight, new org.netbeans.lib.awtextra.AbsoluteConstraints (30, 260, 380, 40));
  697. jTextFieldView.setBorder (new javax.swing.border.TitledBorder(
  698. new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)),
  699. "View (0-255)", 4, 2, new java.awt.Font ("Arial", 0, 10), java.awt.Color.black));
  700. jTextFieldView.setText ("0");
  701. jPanelMain.add (jTextFieldView, new org.netbeans.lib.awtextra.AbsoluteConstraints (460, 150, 300, 40));
  702. jTextFieldJamming.setBorder (new javax.swing.border.TitledBorder(
  703. new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)),
  704. "Jamming (0-255)", 4, 2, new java.awt.Font ("Arial", 0, 10), java.awt.Color.black));
  705. jTextFieldJamming.setText ("0");
  706. jPanelMain.add (jTextFieldJamming, new org.netbeans.lib.awtextra.AbsoluteConstraints (460, 210, 300, 40));
  707. jTextFieldEnergyTank.setBorder (new javax.swing.border.TitledBorder(
  708. new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)),
  709. "Energy.Tank (0-2147483646)", 4, 2, new java.awt.Font ("Arial", 0, 10),
  710. java.awt.Color.black));
  711. jTextFieldEnergyTank.setText ("0");
  712. jPanelMain.add (jTextFieldEnergyTank, new org.netbeans.lib.awtextra.AbsoluteConstraints (460, 360, 300, 40));
  713. jTextFieldMaterialTank.setBorder (new javax.swing.border.TitledBorder(
  714. new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)),
  715. "Material.Tank (0-2147483646)", 4, 2, new java.awt.Font ("Arial", 0, 10),
  716. java.awt.Color.black));
  717. jTextFieldMaterialTank.setText ("0");
  718. jPanelMain.add (jTextFieldMaterialTank, new org.netbeans.lib.awtextra.AbsoluteConstraints (460, 300, 300, 40));
  719. jLabelProductionBorder.setBorder (new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)));
  720. jPanelMain.add (jLabelProductionBorder, new org.netbeans.lib.awtextra.AbsoluteConstraints (10, 330, 420, 140));
  721. jLabelNameDescriptionBorder.setBorder (new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)));
  722. jPanelMain.add (jLabelNameDescriptionBorder, new org.netbeans.lib.awtextra.AbsoluteConstraints (10, 10, 770, 110));
  723. jLabelIDArmorWeightBorder.setBorder (new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)));
  724. jPanelMain.add (jLabelIDArmorWeightBorder, new org.netbeans.lib.awtextra.AbsoluteConstraints (10, 130, 420, 190));
  725. jLabelViewJammingBorder.setBorder (new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)));
  726. jPanelMain.add (jLabelViewJammingBorder, new org.netbeans.lib.awtextra.AbsoluteConstraints (440, 130, 340, 140));
  727. jLabelEnergyMaterialTankBorder.setBorder (new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)));
  728. jPanelMain.add (jLabelEnergyMaterialTankBorder, new org.netbeans.lib.awtextra.AbsoluteConstraints (440, 280, 340, 190));
  729. jLabelEnergyTankWarning.setBorder (new javax.swing.border.TitledBorder(
  730. new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)),
  731. "Energy.Tank.Note", 4, 2, new java.awt.Font ("Arial", 0, 10), java.awt.Color.black));
  732. jLabelEnergyTankWarning.setText ("Energy.Tank > 0 for generators ONLY !");
  733. jPanelMain.add (jLabelEnergyTankWarning, new org.netbeans.lib.awtextra.AbsoluteConstraints (460, 410, 300, 40));
  734. jButtonSave.setText ("Save");
  735. jButtonSave.addActionListener (new java.awt.event.ActionListener () {
  736. public void actionPerformed (java.awt.event.ActionEvent evt) {
  737. jButtonSaveActionPerformed (evt);
  738. }
  739. }
  740. );
  741. jPanelMain.add (jButtonSave, new org.netbeans.lib.awtextra.AbsoluteConstraints (620, 20, 140, 40));
  742. jLabelVersion.setText ("Version ???");
  743. jLabelVersion.setHorizontalAlignment (javax.swing.SwingConstants.CENTER);
  744. jPanelMain.add (jLabelVersion, new org.netbeans.lib.awtextra.AbsoluteConstraints (620, 70, 150, 40));
  745. jTabbedPaneMain.addTab ("Main", jPanelMain);
  746. jPanelMovement.setLayout (new org.netbeans.lib.awtextra.AbsoluteLayout ());
  747. jPanelMovementTable.setLayout (new java.awt.GridLayout (8, 2));
  748. jPanelMovement.add (jPanelMovementTable, new org.netbeans.lib.awtextra.AbsoluteConstraints (340, 10, 430, 360));
  749. jComboBoxCategory.setBorder (new javax.swing.border.TitledBorder(
  750. new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)),
  751. "Category", 4, 2, new java.awt.Font ("Arial", 0, 10), java.awt.Color.black));
  752. jPanelMovement.add (jComboBoxCategory, new org.netbeans.lib.awtextra.AbsoluteConstraints (20, 40, 290, 50));
  753. jCheckBoxWaitAfterMove.setText ("wait after movement (for attack)");
  754. jPanelMovement.add (jCheckBoxWaitAfterMove, new org.netbeans.lib.awtextra.AbsoluteConstraints (20, 130, 290, 40));
  755. jTextFieldFuelconsumption.setBorder (new javax.swing.border.TitledBorder(
  756. new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)),
  757. "Fuelconsumption (0-65534)", 4, 2, new java.awt.Font ("Arial", 0, 10),
  758. java.awt.Color.black));
  759. jTextFieldFuelconsumption.setText ("0");
  760. jPanelMovement.add (jTextFieldFuelconsumption, new org.netbeans.lib.awtextra.AbsoluteConstraints (360, 410, 180, 40));
  761. jTextFieldTank.setBorder (new javax.swing.border.TitledBorder(
  762. new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)),
  763. "Tank (0-2147483646)", 4, 2, new java.awt.Font ("Arial", 0, 10), java.awt.Color.black));
  764. jTextFieldTank.setText ("0");
  765. jPanelMovement.add (jTextFieldTank, new org.netbeans.lib.awtextra.AbsoluteConstraints (580, 410, 170, 40));
  766. jLabelFuelconsumptionTankBorder.setBorder (new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)));
  767. jPanelMovement.add (jLabelFuelconsumptionTankBorder, new org.netbeans.lib.awtextra.AbsoluteConstraints (340, 390, 430, 80));
  768. jTextFieldDistanceHeightChange.setBorder (new javax.swing.border.TitledBorder(
  769. new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)),
  770. "Distance for height-change (0-255)", 4, 2, new java.awt.Font ("Arial", 0, 10),
  771. java.awt.Color.black));
  772. jTextFieldDistanceHeightChange.setText ("0");
  773. jPanelMovement.add (jTextFieldDistanceHeightChange, new org.netbeans.lib.awtextra.AbsoluteConstraints (20, 210, 290, 40));
  774. jTextFieldMaxWindspeed.setBorder (new javax.swing.border.TitledBorder(
  775. new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)),
  776. "Maximum windspeed (0-255)", 4, 2, new java.awt.Font ("Arial", 0, 10),
  777. java.awt.Color.black));
  778. jTextFieldMaxWindspeed.setText ("0");
  779. jPanelMovement.add (jTextFieldMaxWindspeed, new org.netbeans.lib.awtextra.AbsoluteConstraints (30, 310, 270, 40));
  780. jLabelMaxWindspeed.setBorder (new javax.swing.border.TitledBorder(
  781. new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)),
  782. "Maximum windspeed.Note", 4, 2, new java.awt.Font ("Arial", 0, 10), java.awt.Color.black));
  783. jLabelMaxWindspeed.setText ("maximum windspeed that can be survived");
  784. jLabelMaxWindspeed.setFont (new java.awt.Font ("Arial", 0, 10));
  785. jPanelMovement.add (jLabelMaxWindspeed, new org.netbeans.lib.awtextra.AbsoluteConstraints (30, 380, 270, 50));
  786. jLabelWindspeedBorder.setBorder (new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)));
  787. jPanelMovement.add (jLabelWindspeedBorder, new org.netbeans.lib.awtextra.AbsoluteConstraints (10, 290, 310, 180));
  788. jTabbedPaneMain.addTab ("Movement", jPanelMovement);
  789. jPanelLoad.setLayout (new org.netbeans.lib.awtextra.AbsoluteLayout ());
  790. jTextFieldMaxLoad.setBorder (new javax.swing.border.TitledBorder(
  791. new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)),
  792. "Maximum total load (0-32000)", 4, 2, new java.awt.Font ("Arial", 0, 10),
  793. java.awt.Color.black));
  794. jTextFieldMaxLoad.setText ("0");
  795. jPanelLoad.add (jTextFieldMaxLoad, new org.netbeans.lib.awtextra.AbsoluteConstraints (120, 10, 260, 40));
  796. jTextFieldMaxUnitWeight.setBorder (new javax.swing.border.TitledBorder(
  797. new javax.swing.border.EtchedBorder(java.awt.Color.white, new java.awt.Color (134, 134, 134)),
  798. "Maximum weight of unit (0-32000)", 4, 2, new java.awt.Font ("Arial", 0, 10),
  799. java.awt.Color.black));
  800. jTextFieldMaxUnitWeight.setText ("0");
  801. jPanelLoad.add (jTextFieldMaxUnitWeight, new org.netbeans.lib.awtextra.AbsoluteConstraints (390, 10, 240, 40));
  802. jPanelLoadTable.setLayout (new java.awt.GridLayout (8, 3));
  803. jPanelLoad.add (jPanelLoadTable, new org.netbeans.lib.awtextra.AbsoluteConstraints (10, 110, 570, 320));
  804. jPanelLoadTabelTitle.setLayout (new java.awt.GridLayout (1, 4));
  805. jLabelOnHeight.setText ("Unit must be on that height");
  806. jLabelOnHeight.setFont (new java.awt.Font ("Dialog", 0, 10));
  807. jPanelLoadTabelTitle.add (jLabelOnHeight);
  808. jLabelAbleHeight.setText ("Unit must be able to be on that height");
  809. jLabelAbleHeight.setFont (new java.awt.Font ("Dialog", 0, 10));
  810. jLabelAbleHeight.setHorizontalTextPosition (javax.swing.SwingConstants.LEFT);
  811. jPanelLoadTabelTitle.add (jLabelAbleHeight);
  812. jLabelNotHeight.setText ("Unit mustn\u00b4t be able to be on that height");
  813. jLabelNotHeight.setFont (new java.awt.Font ("Dialog", 0, 10));
  814. jPanelLoadTabelTitle.add (jLabelNotHeight);
  815. jLabelMustCategory.setText ("Unit must be of that category");
  816. jLabelMustCategory.setFont (new java.awt.Font ("Dialog", 0, 10));
  817. jPanelLoadTabelTitle.add (jLabelMustCategory);
  818. jPanelLoad.add (jPanelLoadTabelTitle, new org.netbeans.lib.awtextra.AbsoluteConstraints (10, 70, 760, 40));
  819. jPanelMustCategory.setLayout (new java.awt.GridLayout (15, 1));
  820. jPanelLoad.add (jPanelMustCategory, new org.netbeans.lib.awtextra.AbsoluteConstraints (580, 110, 190, 320));
  821. jTabbedPaneMain.addTab ("Load", jPanelLoad);
  822. jPanelWeapons.setLayout (new org.netbeans.lib.awtextra.AbsoluteLayou

Large files files are truncated, but you can click here to view the full file