From b5fa7bb0122cd2677b19f326ad7f92ef1bbfe692 Mon Sep 17 00:00:00 2001 From: Skyhigh Date: Sat, 14 Aug 2021 20:49:59 -0600 Subject: [PATCH 001/199] Adds to HD after all other areas are filled --- sswlib/src/main/java/components/BipedLoadout.java | 7 ++++++- sswlib/src/main/java/components/QuadLoadout.java | 7 ++++++- sswlib/src/main/java/components/TripodLoadout.java | 7 ++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/sswlib/src/main/java/components/BipedLoadout.java b/sswlib/src/main/java/components/BipedLoadout.java index 59665b3e..43e4a90b 100644 --- a/sswlib/src/main/java/components/BipedLoadout.java +++ b/sswlib/src/main/java/components/BipedLoadout.java @@ -2422,6 +2422,11 @@ public void AutoAllocate( EquipmentCollection e ) { while( ! Placed ) { try { switch( Loc ) { + case LocationIndex.MECH_LOC_HD: + AddToHD( p, FirstFree( HDCrits ) ); + Loc++; + Placed = true; + break; case LocationIndex.MECH_LOC_CT: AddToCT( p, FirstFree( CTCrits ) ); Loc++; @@ -2458,7 +2463,7 @@ public void AutoAllocate( EquipmentCollection e ) { Placed = true; break; default: - Loc = LocationIndex.MECH_LOC_CT; + Loc = LocationIndex.MECH_LOC_HD; DefCount++; } } catch( Exception x ) { diff --git a/sswlib/src/main/java/components/QuadLoadout.java b/sswlib/src/main/java/components/QuadLoadout.java index 161636a6..a085423b 100644 --- a/sswlib/src/main/java/components/QuadLoadout.java +++ b/sswlib/src/main/java/components/QuadLoadout.java @@ -2174,6 +2174,11 @@ public void AutoAllocate( EquipmentCollection e ) { while( ! Placed ) { try { switch( Loc ) { + case LocationIndex.MECH_LOC_HD: + AddToHD( p, FirstFree( HDCrits ) ); + Loc++; + Placed = true; + break; case LocationIndex.MECH_LOC_CT: AddToCT( p, FirstFree( CTCrits ) ); Loc++; @@ -2210,7 +2215,7 @@ public void AutoAllocate( EquipmentCollection e ) { Placed = true; break; default: - Loc = LocationIndex.MECH_LOC_CT; + Loc = LocationIndex.MECH_LOC_HD; DefCount++; } } catch( Exception x ) { diff --git a/sswlib/src/main/java/components/TripodLoadout.java b/sswlib/src/main/java/components/TripodLoadout.java index 82da5de1..9cf75c75 100644 --- a/sswlib/src/main/java/components/TripodLoadout.java +++ b/sswlib/src/main/java/components/TripodLoadout.java @@ -2554,6 +2554,11 @@ public void AutoAllocate( EquipmentCollection e ) { while( ! Placed ) { try { switch( Loc ) { + case LocationIndex.MECH_LOC_HD: + AddToHD( p, FirstFree( HDCrits ) ); + Loc++; + Placed = true; + break; case LocationIndex.MECH_LOC_CT: AddToCT( p, FirstFree( CTCrits ) ); Loc++; @@ -2595,7 +2600,7 @@ public void AutoAllocate( EquipmentCollection e ) { Placed = true; break; default: - Loc = LocationIndex.MECH_LOC_CT; + Loc = LocationIndex.MECH_LOC_HD; DefCount++; } } catch( Exception x ) { From a29300280f64af88f10270287f386122bcad4d05 Mon Sep 17 00:00:00 2001 From: George Date: Mon, 6 Sep 2021 20:45:13 -0600 Subject: [PATCH 002/199] Add handler to the wide form --- saw/src/main/java/saw/gui/frmVeeWide.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index f88fb033..e7ff267e 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -5831,7 +5831,8 @@ private void btnAddToForceListActionPerformed(java.awt.event.ActionEvent evt) {/ }//GEN-LAST:event_btnAddToForceListActionPerformed private void btnForceListActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnForceListActionPerformed - + GetForceDialogue().setLocationRelativeTo(this); + GetForceDialogue().setVisible(true); }//GEN-LAST:event_btnForceListActionPerformed private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSaveActionPerformed From 45792cbc11fca3ccd4f764122a96d97136524fcc Mon Sep 17 00:00:00 2001 From: George Blouin Date: Wed, 26 Oct 2022 16:13:08 -0600 Subject: [PATCH 003/199] Initial attempt to block the hexes title When the user has selected inches --- sswlib/src/main/java/Print/PrintVehicle.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/sswlib/src/main/java/Print/PrintVehicle.java b/sswlib/src/main/java/Print/PrintVehicle.java index a18f7fdb..d45de90c 100644 --- a/sswlib/src/main/java/Print/PrintVehicle.java +++ b/sswlib/src/main/java/Print/PrintVehicle.java @@ -295,6 +295,14 @@ private void DrawMechData( Graphics2D graphics ) { // graphics.drawString("+2", p[7].x, p[7].y-15); // graphics.drawString("+4", p[8].x, p[8].y-15); // } + + //Coverup the (hexes) above the ranges if we are not using traditional measurements + if (MiniConvRate > 1) + { + graphics.setColor(Color.white); + graphics.fillRect(p[6].x, p[8].y, 30, 10); + graphics.setColor(Color.black); + } graphics.setFont( PrintConsts.ReallySmallFont ); if (TotalItemLines() > 15) { graphics.setFont( PrintConsts.TinyFont ); } @@ -385,7 +393,7 @@ private void DrawMechData( Graphics2D graphics ) { graphics.setFont( PrintConsts.Small8Font ); graphics.drawString( ( CurVee.getCruiseMP() * MiniConvRate ) + "", p[PrintConsts.WALKMP].x, p[PrintConsts.WALKMP].y ); graphics.drawString( CurVee.getFlankMP( MiniConvRate ) + "", p[PrintConsts.RUNMP].x, p[PrintConsts.RUNMP].y ); - + // Movement and Engine if ( !CurVee.IsVTOL() ) { graphics.drawString( CurVee.GetMotiveLookupName() + "" + CurVee.GetChassisModifierString(), p[19].x, p[19].y ); From 5f4ced3f22293ef1c38bdcbe29b05d92c6e7a24b Mon Sep 17 00:00:00 2001 From: WEKarnesky99 Date: Sun, 8 Jan 2023 19:47:27 -0800 Subject: [PATCH 004/199] Make sure MASC has a minimum weight and tonnage of 1. --- sswlib/src/main/java/states/stPECLMASC.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sswlib/src/main/java/states/stPECLMASC.java b/sswlib/src/main/java/states/stPECLMASC.java index 56fc7c18..fb614a4d 100644 --- a/sswlib/src/main/java/states/stPECLMASC.java +++ b/sswlib/src/main/java/states/stPECLMASC.java @@ -47,11 +47,11 @@ public boolean HasCounterpart() { } public int GetTonnage( int mechtons ) { - return (int) (mechtons * 0.04f + 0.51f); + return (int) Math.max((mechtons * 0.04f + 0.51f), 1); } public int GetCrits( int mechtons ) { - return (int) (mechtons * 0.04f + 0.51f); + return (int) Math.max((mechtons * 0.04f + 0.51f), 1); } public String ActualName() { From 0f9d863f73566e12c4509a8726c659995820e502 Mon Sep 17 00:00:00 2001 From: WEKarnesky99 Date: Sun, 8 Jan 2023 19:58:28 -0800 Subject: [PATCH 005/199] add ilClan tot he era list. --- saw/src/main/java/saw/gui/frmVee.form | 3 +- saw/src/main/java/saw/gui/frmVee.java | 38 +++++++++++----------- saw/src/main/java/saw/gui/frmVeeWide.form | 3 +- saw/src/main/java/saw/gui/frmVeeWide.java | 36 ++++++++++---------- ssw/src/main/java/ssw/gui/frmMain.form | 3 +- ssw/src/main/java/ssw/gui/frmMain.java | 2 +- ssw/src/main/java/ssw/gui/frmMainWide.form | 3 +- ssw/src/main/java/ssw/gui/frmMainWide.java | 28 ++++++++-------- 8 files changed, 60 insertions(+), 56 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.form b/saw/src/main/java/saw/gui/frmVee.form index 5bdeba55..f07fd5cb 100644 --- a/saw/src/main/java/saw/gui/frmVee.form +++ b/saw/src/main/java/saw/gui/frmVee.form @@ -1058,7 +1058,7 @@ - + @@ -1070,6 +1070,7 @@ + diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 6100e6b0..b3e95fac 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -1685,7 +1685,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jLabel2.setText("Rules Level:"); - cmbRulesLevel.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Introductory", "Tournament Legal", "Advanced Rules", "Experimental Tech", "Era Specific" })); + cmbRulesLevel.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Introductory", "Tournament Legal", "Advanced", "Experimental" })); cmbRulesLevel.setSelectedIndex(1); cmbRulesLevel.setMinimumSize(new java.awt.Dimension(150, 20)); cmbRulesLevel.setPreferredSize(new java.awt.Dimension(150, 20)); @@ -1709,7 +1709,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jLabel3.setText("Tech Base:"); - cmbTechBase.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Inner Sphere", "Clan", "Mixed" })); + cmbTechBase.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Inner Sphere", "Clan", "Mixed Tech" })); cmbTechBase.setMinimumSize(new java.awt.Dimension(150, 20)); cmbTechBase.setPreferredSize(new java.awt.Dimension(150, 20)); cmbTechBase.addActionListener(new java.awt.event.ActionListener() { @@ -1741,7 +1741,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtProdYear.setMinimumSize(new java.awt.Dimension(60, 20)); txtProdYear.setPreferredSize(new java.awt.Dimension(60, 20)); - cmbProductionEra.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Age of War", "Star League", "Early Succession War", "LSW - LosTech", "LSW - Renaissance", "Clan Invasion", "Civil War", "Jihad", "Early Republic", "Late Republic", "Dark Ages" })); + cmbProductionEra.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Age of War", "Star League", "Early Succession War", "LSW - LosTech", "LSW - Renaissance", "Clan Invasion", "Civil War", "Jihad", "Early Republic", "Late Republic", "Dark Ages", "ilClan" })); cmbProductionEra.setMaximumSize(new java.awt.Dimension(90, 20)); cmbProductionEra.setMinimumSize(new java.awt.Dimension(90, 20)); cmbProductionEra.setPreferredSize(new java.awt.Dimension(90, 20)); @@ -1913,11 +1913,11 @@ public void focusGained(java.awt.event.FocusEvent evt) { } }); spnTonnage.addInputMethodListener(new java.awt.event.InputMethodListener() { + public void caretPositionChanged(java.awt.event.InputMethodEvent evt) { + } public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { spnTonnageInputMethodTextChanged(evt); } - public void caretPositionChanged(java.awt.event.InputMethodEvent evt) { - } }); jLabel9.setText("Engine:"); @@ -1962,11 +1962,11 @@ public void focusGained(java.awt.event.FocusEvent evt) { } }); spnHeatSinks.addInputMethodListener(new java.awt.event.InputMethodListener() { + public void caretPositionChanged(java.awt.event.InputMethodEvent evt) { + } public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { spnHeatSinksInputMethodTextChanged(evt); } - public void caretPositionChanged(java.awt.event.InputMethodEvent evt) { - } }); spnTurretTonnage.setModel(new javax.swing.SpinnerNumberModel(0.0d, 0.0d, 50.0d, 0.5d)); @@ -2075,11 +2075,11 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { } }); spnCruiseMP.addInputMethodListener(new java.awt.event.InputMethodListener() { + public void caretPositionChanged(java.awt.event.InputMethodEvent evt) { + } public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { spnCruiseMPInputMethodTextChanged(evt); } - public void caretPositionChanged(java.awt.event.InputMethodEvent evt) { - } }); jLabel11.setText("Flank MP:"); @@ -4907,7 +4907,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); - mnuNewMech.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuNewMech.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.ALT_MASK)); mnuNewMech.setText("New"); mnuNewMech.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -4916,7 +4916,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); mnuFile.add(mnuNewMech); - mnuLoad.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuLoad.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.ALT_MASK)); mnuLoad.setText("Load"); mnuLoad.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -4925,7 +4925,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); mnuFile.add(mnuLoad); - mnuOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_MASK)); mnuOpen.setText("Open"); mnuOpen.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -4955,7 +4955,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuFile.add(mnuImport); mnuFile.add(jSeparator22); - mnuSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_MASK)); mnuSave.setText("Save"); mnuSave.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -4964,7 +4964,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); mnuFile.add(mnuSave); - mnuSaveAs.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK)); + mnuSaveAs.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK)); mnuSaveAs.setText("Save As..."); mnuSaveAs.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -5021,7 +5021,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuPrint.setText("Print"); mnuFile.add(mnuPrint); - mnuPrintPreview.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK)); + mnuPrintPreview.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK)); mnuPrintPreview.setText("Print Preview"); mnuPrintPreview.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -5031,7 +5031,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuFile.add(mnuPrintPreview); mnuFile.add(jSeparator24); - mnuExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.ALT_MASK)); mnuExit.setText("Exit"); mnuExit.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -5044,7 +5044,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuClearFluff.setText("Tools"); - mnuSummary.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuSummary.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.ALT_MASK)); mnuSummary.setText("Show Summary"); mnuSummary.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -5079,7 +5079,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuClearFluff.add(mnuBFB); mnuClearFluff.add(jSeparator27); - mnuOptions.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuOptions.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_MASK)); mnuOptions.setText("Preferences"); mnuOptions.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -5088,7 +5088,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); mnuClearFluff.add(mnuOptions); - mnuViewToolbar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuViewToolbar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.ALT_MASK)); mnuViewToolbar.setSelected(true); mnuViewToolbar.setText("View Toolbar"); mnuViewToolbar.addActionListener(new java.awt.event.ActionListener() { diff --git a/saw/src/main/java/saw/gui/frmVeeWide.form b/saw/src/main/java/saw/gui/frmVeeWide.form index 08f46e89..9319f155 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.form +++ b/saw/src/main/java/saw/gui/frmVeeWide.form @@ -1071,7 +1071,7 @@ - + @@ -1083,6 +1083,7 @@ + diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index e7ff267e..37ff0d60 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -1732,7 +1732,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtProdYear.setMinimumSize(new java.awt.Dimension(60, 20)); txtProdYear.setPreferredSize(new java.awt.Dimension(60, 20)); - cmbProductionEra.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Age of War", "Star League", "Early Succession War", "LSW - LosTech", "LSW - Renaissance", "Clan Invasion", "Civil War", "Jihad", "Early Republic", "Late Republic", "Dark Ages" })); + cmbProductionEra.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Age of War", "Star League", "Early Succession War", "LSW - LosTech", "LSW - Renaissance", "Clan Invasion", "Civil War", "Jihad", "Early Republic", "Late Republic", "Dark Ages", "ilClan" })); cmbProductionEra.setMaximumSize(new java.awt.Dimension(90, 20)); cmbProductionEra.setMinimumSize(new java.awt.Dimension(90, 20)); cmbProductionEra.setPreferredSize(new java.awt.Dimension(90, 20)); @@ -1904,11 +1904,11 @@ public void focusGained(java.awt.event.FocusEvent evt) { } }); spnTonnage.addInputMethodListener(new java.awt.event.InputMethodListener() { + public void caretPositionChanged(java.awt.event.InputMethodEvent evt) { + } public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { spnTonnageInputMethodTextChanged(evt); } - public void caretPositionChanged(java.awt.event.InputMethodEvent evt) { - } }); jLabel9.setText("Engine:"); @@ -1953,11 +1953,11 @@ public void focusGained(java.awt.event.FocusEvent evt) { } }); spnHeatSinks.addInputMethodListener(new java.awt.event.InputMethodListener() { + public void caretPositionChanged(java.awt.event.InputMethodEvent evt) { + } public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { spnHeatSinksInputMethodTextChanged(evt); } - public void caretPositionChanged(java.awt.event.InputMethodEvent evt) { - } }); spnTurretTonnage.setModel(new javax.swing.SpinnerNumberModel(0.0d, 0.0d, 50.0d, 0.5d)); @@ -2066,11 +2066,11 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { } }); spnCruiseMP.addInputMethodListener(new java.awt.event.InputMethodListener() { + public void caretPositionChanged(java.awt.event.InputMethodEvent evt) { + } public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { spnCruiseMPInputMethodTextChanged(evt); } - public void caretPositionChanged(java.awt.event.InputMethodEvent evt) { - } }); jLabel11.setText("Flank MP:"); @@ -4176,7 +4176,7 @@ public void mouseClicked( MouseEvent e ) { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlSelected, javax.swing.GroupLayout.PREFERRED_SIZE, 264, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(pnlEquipInfo, javax.swing.GroupLayout.PREFERRED_SIZE, 544, Short.MAX_VALUE) + .addComponent(pnlEquipInfo, javax.swing.GroupLayout.DEFAULT_SIZE, 544, Short.MAX_VALUE) .addContainerGap()) ); pnlEquipmentLayout.setVerticalGroup( @@ -4863,7 +4863,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); - mnuNewMech.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuNewMech.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.ALT_MASK)); mnuNewMech.setText("New"); mnuNewMech.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -4872,7 +4872,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); mnuFile.add(mnuNewMech); - mnuLoad.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuLoad.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.ALT_MASK)); mnuLoad.setText("Load"); mnuLoad.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -4881,7 +4881,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); mnuFile.add(mnuLoad); - mnuOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_MASK)); mnuOpen.setText("Open"); mnuOpen.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -4911,7 +4911,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuFile.add(mnuImport); mnuFile.add(jSeparator22); - mnuSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_MASK)); mnuSave.setText("Save"); mnuSave.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -4920,7 +4920,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); mnuFile.add(mnuSave); - mnuSaveAs.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK)); + mnuSaveAs.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK)); mnuSaveAs.setText("Save As..."); mnuSaveAs.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -4977,7 +4977,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuPrint.setText("Print"); mnuFile.add(mnuPrint); - mnuPrintPreview.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK)); + mnuPrintPreview.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK)); mnuPrintPreview.setText("Print Preview"); mnuPrintPreview.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -4987,7 +4987,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuFile.add(mnuPrintPreview); mnuFile.add(jSeparator24); - mnuExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.ALT_MASK)); mnuExit.setText("Exit"); mnuExit.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -5000,7 +5000,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuClearFluff.setText("Tools"); - mnuSummary.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuSummary.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.ALT_MASK)); mnuSummary.setText("Show Summary"); mnuSummary.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -5035,7 +5035,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuClearFluff.add(mnuBFB); mnuClearFluff.add(jSeparator27); - mnuOptions.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuOptions.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_MASK)); mnuOptions.setText("Preferences"); mnuOptions.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -5044,7 +5044,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); mnuClearFluff.add(mnuOptions); - mnuViewToolbar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuViewToolbar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.ALT_MASK)); mnuViewToolbar.setSelected(true); mnuViewToolbar.setText("View Toolbar"); mnuViewToolbar.addActionListener(new java.awt.event.ActionListener() { diff --git a/ssw/src/main/java/ssw/gui/frmMain.form b/ssw/src/main/java/ssw/gui/frmMain.form index 1a9dd9b6..ef5d33f7 100644 --- a/ssw/src/main/java/ssw/gui/frmMain.form +++ b/ssw/src/main/java/ssw/gui/frmMain.form @@ -940,7 +940,7 @@ - + @@ -952,6 +952,7 @@ + diff --git a/ssw/src/main/java/ssw/gui/frmMain.java b/ssw/src/main/java/ssw/gui/frmMain.java index 54717c53..586eda27 100644 --- a/ssw/src/main/java/ssw/gui/frmMain.java +++ b/ssw/src/main/java/ssw/gui/frmMain.java @@ -5697,7 +5697,7 @@ public void mousePressed( MouseEvent e ) { pnlBasicInformation.add(jSeparator28, new java.awt.GridBagConstraints()); pnlBasicInformation.add(jSeparator29, new java.awt.GridBagConstraints()); - cmbProductionEra.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Age of War", "Star League", "Early Succession War", "LSW - LosTech", "LSW - Renaissance", "Clan Invasion", "Civil War", "Jihad", "Early Republic", "Late Republic", "Dark Ages" })); + cmbProductionEra.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Age of War", "Star League", "Early Succession War", "LSW - LosTech", "LSW - Renaissance", "Clan Invasion", "Civil War", "Jihad", "Early Republic", "Late Republic", "Dark Ages", "ilClan" })); cmbProductionEra.setMaximumSize(new java.awt.Dimension(90, 20)); cmbProductionEra.setMinimumSize(new java.awt.Dimension(90, 20)); cmbProductionEra.setPreferredSize(new java.awt.Dimension(90, 20)); diff --git a/ssw/src/main/java/ssw/gui/frmMainWide.form b/ssw/src/main/java/ssw/gui/frmMainWide.form index 0e07ebc7..e9b74ec3 100644 --- a/ssw/src/main/java/ssw/gui/frmMainWide.form +++ b/ssw/src/main/java/ssw/gui/frmMainWide.form @@ -940,7 +940,7 @@ - + @@ -952,6 +952,7 @@ + diff --git a/ssw/src/main/java/ssw/gui/frmMainWide.java b/ssw/src/main/java/ssw/gui/frmMainWide.java index 527a35a3..47696557 100644 --- a/ssw/src/main/java/ssw/gui/frmMainWide.java +++ b/ssw/src/main/java/ssw/gui/frmMainWide.java @@ -5593,7 +5593,7 @@ public void mousePressed( MouseEvent e ) { pnlBasicInformation.add(jSeparator28, new java.awt.GridBagConstraints()); pnlBasicInformation.add(jSeparator29, new java.awt.GridBagConstraints()); - cmbProductionEra.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Age of War", "Star League", "Early Succession War", "LSW - LosTech", "LSW - Renaissance", "Clan Invasion", "Civil War", "Jihad", "Early Republic", "Late Republic", "Dark Ages" })); + cmbProductionEra.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Age of War", "Star League", "Early Succession War", "LSW - LosTech", "LSW - Renaissance", "Clan Invasion", "Civil War", "Jihad", "Early Republic", "Late Republic", "Dark Ages", "ilClan" })); cmbProductionEra.setLightWeightPopupEnabled(false); cmbProductionEra.setMaximumSize(new java.awt.Dimension(90, 20)); cmbProductionEra.setMinimumSize(new java.awt.Dimension(90, 20)); @@ -10173,7 +10173,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); - mnuNewMech.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuNewMech.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.ALT_MASK)); mnuNewMech.setText("New Mech"); mnuNewMech.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -10182,7 +10182,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); mnuFile.add(mnuNewMech); - mnuLoad.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuLoad.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.ALT_MASK)); mnuLoad.setText("Load Mech"); mnuLoad.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -10191,7 +10191,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); mnuFile.add(mnuLoad); - mnuOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_MASK)); mnuOpen.setText("Open"); mnuOpen.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -10221,7 +10221,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuFile.add(mnuImport); mnuFile.add(jSeparator16); - mnuSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_MASK)); mnuSave.setText("Save Mech"); mnuSave.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -10230,7 +10230,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); mnuFile.add(mnuSave); - mnuSaveAs.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK)); + mnuSaveAs.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK)); mnuSaveAs.setText("Save Mech As..."); mnuSaveAs.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -10286,7 +10286,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuPrint.setText("Print"); - mnuPrintCurrentMech.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.CTRL_DOWN_MASK)); + mnuPrintCurrentMech.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.CTRL_MASK)); mnuPrintCurrentMech.setText("Current Mech"); mnuPrintCurrentMech.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -10295,7 +10295,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); mnuPrint.add(mnuPrintCurrentMech); - mnuPrintSavedMech.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK)); + mnuPrintSavedMech.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK)); mnuPrintSavedMech.setText("Saved Mech"); mnuPrintSavedMech.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -10304,7 +10304,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); mnuPrint.add(mnuPrintSavedMech); - mnuPrintBatch.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_B, java.awt.event.InputEvent.SHIFT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK)); + mnuPrintBatch.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_B, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK)); mnuPrintBatch.setText("Batch Print Mechs"); mnuPrintBatch.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -10315,7 +10315,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuFile.add(mnuPrint); - mnuPrintPreview.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.ALT_DOWN_MASK | java.awt.event.InputEvent.CTRL_DOWN_MASK)); + mnuPrintPreview.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK)); mnuPrintPreview.setText("Print Preview"); mnuPrintPreview.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -10325,7 +10325,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuFile.add(mnuPrintPreview); mnuFile.add(jSeparator17); - mnuExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.ALT_MASK)); mnuExit.setText("Exit"); mnuExit.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -10338,7 +10338,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuClearFluff.setText("Tools"); - mnuSummary.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuSummary.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.ALT_MASK)); mnuSummary.setText("Show Summary"); mnuSummary.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -10373,7 +10373,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuClearFluff.add(mnuBFB); mnuClearFluff.add(jSeparator27); - mnuOptions.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuOptions.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_MASK)); mnuOptions.setText("Preferences"); mnuOptions.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -10382,7 +10382,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); mnuClearFluff.add(mnuOptions); - mnuViewToolbar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.ALT_DOWN_MASK)); + mnuViewToolbar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.ALT_MASK)); mnuViewToolbar.setSelected(true); mnuViewToolbar.setText("View Toolbar"); mnuViewToolbar.addActionListener(new java.awt.event.ActionListener() { From 583dd789af967462ec22d64190f9510b6ffafac4 Mon Sep 17 00:00:00 2001 From: WEKarnesky99 Date: Sun, 8 Jan 2023 20:06:15 -0800 Subject: [PATCH 006/199] Change Version Number --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index ee16b91f..55aa90e2 100644 --- a/build.gradle +++ b/build.gradle @@ -4,9 +4,9 @@ plugins { } allprojects { - version '0.7.6' + version '0.7.6.1' ext { - release='Stable' + release='Snapshot' rev=versionDetails().gitHash } jar { From cb55e3b726221666e66805d17369d51af22ddaa7 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Fri, 13 Jan 2023 17:54:18 -0700 Subject: [PATCH 007/199] Logic from Mech Stealth to Vee Stealth Move over the logic that the Mech Stealth Armor class uses and put it in the Vee Stealth Armor class. --- sswlib/src/main/java/components/CVArmor.java | 11 +++++++ .../main/java/visitors/VArmorSetVStealth.java | 31 ++++++++++++++++++- 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/sswlib/src/main/java/components/CVArmor.java b/sswlib/src/main/java/components/CVArmor.java index d837d336..69804190 100644 --- a/sswlib/src/main/java/components/CVArmor.java +++ b/sswlib/src/main/java/components/CVArmor.java @@ -1068,6 +1068,17 @@ public MechModifier GetMechModifier() { @Override public String toString() { + if( Config.NumCrits() > 0 ) { + if( Config.NumCrits() > Placed ) { + if( Config.IsStealth() ) { + return Config.CritName(); + } else { + return Config.CritName() + " (" + ( Config.NumCrits() - Placed ) + ")"; + } + } else { + return Config.CritName(); + } + } return Config.CritName(); } diff --git a/sswlib/src/main/java/visitors/VArmorSetVStealth.java b/sswlib/src/main/java/visitors/VArmorSetVStealth.java index c9e3ec49..a386f37e 100644 --- a/sswlib/src/main/java/visitors/VArmorSetVStealth.java +++ b/sswlib/src/main/java/visitors/VArmorSetVStealth.java @@ -53,7 +53,36 @@ public void Visit(Mech m) throws Exception { } public void Visit( CombatVehicle v ) throws Exception { - v.GetArmor().SetISVST(); + // only the armor changes, so pass us off + CurVee = v; + ifCVLoadout l = CurVee.GetLoadout(); + CVArmor a = CurVee.GetArmor(); + + // remove the old armor, if needed + l.Remove( a ); + a.ResetPatchworkConfigs(); + + a.SetISVST(); + + if( Locs == null ) { + // place the armor + if( ! a.Place( l ) ) { + // not enough free space. tell the user + throw new Exception( "There is no available room for Stealth Armor!" ); + } + } else { + // use the location index array given to allocate the armor + if( ! a.Place( l, Locs ) ) { + // not enough free space. tell the user + throw new Exception( "There is no available room for Stealth Armor!" ); + } + } + if( a.GetMechModifier() != null ) { + CurVee.AddMechModifier( a.GetMechModifier() ); + } + // reset the locations just in case. Any time this visitor is used we + // should load up a new set of locations. + Locs = null; } public void Visit( Infantry i ) throws Exception { From adc409cfa69ef373910093cb39b326408adaa3a4 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 14 Jan 2023 15:01:25 -0700 Subject: [PATCH 008/199] Create variables needed --- sswlib/src/main/java/components/CVArmor.java | 5 ++++- sswlib/src/main/java/visitors/VArmorSetVStealth.java | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/sswlib/src/main/java/components/CVArmor.java b/sswlib/src/main/java/components/CVArmor.java index 69804190..f73d1957 100644 --- a/sswlib/src/main/java/components/CVArmor.java +++ b/sswlib/src/main/java/components/CVArmor.java @@ -41,6 +41,7 @@ public class CVArmor extends abPlaceable { // Declares private CombatVehicle Owner; + private int Placed = 0; private int[] ArmorPoints = { 0, 0, 0, 0, 0, 0, 0, 0 }; private int[] MaxArmor = { 390, 390, 390, 390, 390, 390, 2, 390 }; private ifArmor Industrial = new stArmorIN(), @@ -1029,7 +1030,9 @@ public int GetBAR() { } @Override - public void ResetPlaced() { return; } + public void ResetPlaced() { + Placed = 0; + } @Override public boolean Contiguous() { diff --git a/sswlib/src/main/java/visitors/VArmorSetVStealth.java b/sswlib/src/main/java/visitors/VArmorSetVStealth.java index a386f37e..752d26a3 100644 --- a/sswlib/src/main/java/visitors/VArmorSetVStealth.java +++ b/sswlib/src/main/java/visitors/VArmorSetVStealth.java @@ -33,6 +33,7 @@ public class VArmorSetVStealth implements ifVisitor { // sets the mech's armor to stealth private Mech CurMech; + private CombatVehicle CurVee; private LocationIndex[] Locs = null; public VArmorSetVStealth() { From 5e9b48d71144b460b985a7b646e48f01e70a650a Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 14 Jan 2023 17:24:20 -0700 Subject: [PATCH 009/199] Update SAW ECM Check Logic So that it matches SSW and is smarter about knowing that it exists already. --- sswlib/src/main/java/components/CombatVehicle.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index 9ed88257..6f08ebbb 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -1871,13 +1871,10 @@ public boolean ValidateECM() { } public boolean HasECM() { - // ensures that, if the 'Mech needs ECM, it has it. - SimplePlaceable p = new SimplePlaceable( "ECMTest", "ECMTest", "ECMTest", "ECMTest", "none", 0, false, null ); - p.SetExclusions(new String[] { "ECM", "Watchdog" }); - try { - CurLoadout.CheckExclusions( p ); - } catch( Exception e ) { - return true; + for (abPlaceable item : (ArrayList)CurLoadout.GetEquipment()) { + if (item.LookupName().contains("ECM") || item.LookupName().contains("Watchdog")) { + return true; + } } return false; } From a66cfffc5d61dddf4137b4fbffe70484bdb1eefc Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 14 Jan 2023 17:32:55 -0700 Subject: [PATCH 010/199] Add check for CEWS --- sswlib/src/main/java/components/CombatVehicle.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index 6f08ebbb..6d805374 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -1872,7 +1872,7 @@ public boolean ValidateECM() { public boolean HasECM() { for (abPlaceable item : (ArrayList)CurLoadout.GetEquipment()) { - if (item.LookupName().contains("ECM") || item.LookupName().contains("Watchdog")) { + if (item.LookupName().contains("ECM") || item.LookupName().contains("Watchdog") || item.LookupName().contains("CEWS")) { return true; } } From 2ec049e32a8c10809758002ea8d2e6346a17ca21 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 14 Jan 2023 19:18:30 -0700 Subject: [PATCH 011/199] Refresh Equipment when Rules Level Changes --- saw/src/main/java/saw/gui/frmVee.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index b3e95fac..824bfd6b 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -5581,6 +5581,7 @@ private void cmbRulesLevelActionPerformed(java.awt.event.ActionEvent evt) {//GEN //RecalcHeatSinks(); RecalcArmor(); RecalcEquipment(); + RefreshEquipment(); } BuildTurretSelector(); @@ -7030,7 +7031,7 @@ private void RefreshEquipment() { chkFCSAV.setEnabled( false ); } - // fix Artemis IV controls + // fix ApolloFCS controls ArtCheck = new ApolloFCS( null ); if( CommonTools.IsAllowed( ArtCheck.GetAvailability(), CurVee ) ) { chkFCSApollo.setEnabled( true ); From 9c9b927e610731e1025fb83c4fdc0994d2e452e2 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 14 Jan 2023 19:52:18 -0700 Subject: [PATCH 012/199] Cover Hexes text When the mini conversion is selected. --- sswlib/src/main/java/Print/PrintVehicle.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sswlib/src/main/java/Print/PrintVehicle.java b/sswlib/src/main/java/Print/PrintVehicle.java index d45de90c..19ab40b2 100644 --- a/sswlib/src/main/java/Print/PrintVehicle.java +++ b/sswlib/src/main/java/Print/PrintVehicle.java @@ -62,7 +62,7 @@ public class PrintVehicle implements Printable { currentAmmoFormat = ""; private int Piloting = 5, Gunnery = 4, - MiniConvRate = 1; + MiniConvRate = 0; private double BV = 0.0; private ifPrintPoints points = null; private Color Black = new Color( 0, 0, 0 ), @@ -297,10 +297,10 @@ private void DrawMechData( Graphics2D graphics ) { // } //Coverup the (hexes) above the ranges if we are not using traditional measurements - if (MiniConvRate > 1) + if (MiniConvRate > 0) { graphics.setColor(Color.white); - graphics.fillRect(p[6].x, p[8].y, 30, 10); + graphics.fillRect(p[6].x-5, p[6].y-28, 30, 10); graphics.setColor(Color.black); } From d0655915faac83e37b800b1d3d61c263a90670bc Mon Sep 17 00:00:00 2001 From: George Blouin Date: Tue, 17 Jan 2023 14:58:47 -0700 Subject: [PATCH 013/199] Update GetExplosiveWeaponPenalty for Quads Added check for Quad on the "arms" so that explosive items are correctly calculated when they are in the front legs. --- sswlib/src/main/java/components/Mech.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sswlib/src/main/java/components/Mech.java b/sswlib/src/main/java/components/Mech.java index f2585287..5e58c989 100644 --- a/sswlib/src/main/java/components/Mech.java +++ b/sswlib/src/main/java/components/Mech.java @@ -2794,12 +2794,12 @@ public double GetExplosiveWeaponPenalty() { } break; case 4: - if( ! CurLoadout.HasLACASEII() &! CurLoadout.HasLTCASEII() &! CurLoadout.IsUsingClanCASE() ) { + if ((!CurLoadout.HasLACASEII() & !CurLoadout.HasLTCASEII() & !CurLoadout.IsUsingClanCASE()) | CurLoadout.IsQuad()) { result -= p.NumCrits() + mod; } break; case 5: - if( ! CurLoadout.HasRACASEII() &! CurLoadout.HasRTCASEII() &! CurLoadout.IsUsingClanCASE() ) { + if ((!CurLoadout.HasRACASEII() & !CurLoadout.HasRTCASEII() & !CurLoadout.IsUsingClanCASE()) | CurLoadout.IsQuad()) { result -= p.NumCrits() + mod; } break; @@ -2837,12 +2837,12 @@ public double GetExplosiveWeaponPenalty() { } break; case 4: - if( ! CurLoadout.HasLACASEII() &! CurLoadout.HasLTCASEII() &! CurLoadout.HasLTCASE() &! CurLoadout.IsUsingClanCASE() ) { + if ((!CurLoadout.HasLACASEII() & !CurLoadout.HasLTCASEII() & !CurLoadout.HasLTCASE() & !CurLoadout.IsUsingClanCASE()) | CurLoadout.IsQuad()) { result -= p.NumCrits() + mod; } break; case 5: - if( ! CurLoadout.HasRACASEII() &! CurLoadout.HasRTCASEII() &! CurLoadout.HasRTCASE() &! CurLoadout.IsUsingClanCASE() ) { + if ((!CurLoadout.HasRACASEII() &! CurLoadout.HasRTCASEII() &! CurLoadout.HasRTCASE() & !CurLoadout.IsUsingClanCASE()) | CurLoadout.IsQuad()) { result -= p.NumCrits() + mod; } break; From e33c75ea38b0035afa68fc7495ea0847114c162e Mon Sep 17 00:00:00 2001 From: WEKarnesky99 Date: Wed, 18 Jan 2023 07:52:12 -0800 Subject: [PATCH 014/199] Fix spot welder to be exclusive with Salvage Arm --- Data/Equipment/physicals.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Data/Equipment/physicals.json b/Data/Equipment/physicals.json index f1c18592..08565395 100644 --- a/Data/Equipment/physicals.json +++ b/Data/Equipment/physicals.json @@ -2126,7 +2126,7 @@ "ToHitLong": 0, "DamageAdd": 5, "CritAdd": 1, - "PWClass": 5, + "PWClass": 4, "TonMult": 0.0, "CritMult": 0.0, "TonAdd": 2.0, From 0ed8fe2384c78f425c27916201f0ae9b2154b88d Mon Sep 17 00:00:00 2001 From: George Blouin Date: Wed, 18 Jan 2023 09:20:31 -0700 Subject: [PATCH 015/199] Quad Ammo Explosive Update Do the same check for quad in the GetExplosiveAmmoPenalty method. --- sswlib/src/main/java/components/Mech.java | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/sswlib/src/main/java/components/Mech.java b/sswlib/src/main/java/components/Mech.java index 5e58c989..3a835b9e 100644 --- a/sswlib/src/main/java/components/Mech.java +++ b/sswlib/src/main/java/components/Mech.java @@ -2569,18 +2569,12 @@ public double GetExplosiveAmmoPenalty() { } break; case 4: - if (CurLoadout instanceof QuadLoadout && (! CurLoadout.HasLACASEII() )){ - result -= 15.0 * p.NumCrits(); - } - else if( ! CurLoadout.HasLACASEII() &! CurLoadout.HasLTCASEII() &! CurLoadout.IsUsingClanCASE() ) { + if ((!CurLoadout.HasLACASEII() & !CurLoadout.HasLTCASEII() & !CurLoadout.HasLTCASE() & !CurLoadout.IsUsingClanCASE()) | CurLoadout.IsQuad()) { result -= 15.0 * p.NumCrits(); } break; case 5: - if (CurLoadout instanceof QuadLoadout && (! CurLoadout.HasRACASEII() )){ - result -= 15.0 * p.NumCrits(); - } - else if( ! CurLoadout.HasRACASEII() &! CurLoadout.HasRTCASEII() &! CurLoadout.IsUsingClanCASE() ) { + if ((!CurLoadout.HasRACASEII() & !CurLoadout.HasRTCASEII() & !CurLoadout.HasRTCASE() & !CurLoadout.IsUsingClanCASE()) | CurLoadout.IsQuad()) { result -= 15.0 * p.NumCrits(); } break; @@ -2618,12 +2612,12 @@ else if( ! CurLoadout.HasRACASEII() &! CurLoadout.HasRTCASEII() &! CurLoadout.Is } break; case 4: - if( ! CurLoadout.HasLACASEII() &! CurLoadout.HasLTCASEII() &! CurLoadout.HasLTCASE() &! CurLoadout.IsUsingClanCASE() ) { + if ((!CurLoadout.HasLACASEII() & !CurLoadout.HasLTCASEII() & !CurLoadout.HasLTCASE() & !CurLoadout.IsUsingClanCASE()) | CurLoadout.IsQuad()) { result -= 15.0 * p.NumCrits(); } break; case 5: - if( ! CurLoadout.HasRACASEII() &! CurLoadout.HasRTCASEII() &! CurLoadout.HasRTCASE() &! CurLoadout.IsUsingClanCASE() ) { + if ((!CurLoadout.HasRACASEII() & !CurLoadout.HasRTCASEII() & !CurLoadout.HasRTCASE() & !CurLoadout.IsUsingClanCASE()) | CurLoadout.IsQuad()) { result -= 15.0 * p.NumCrits(); } break; From dedbb266642152c1cc5cd98ce832d6dde1630b9b Mon Sep 17 00:00:00 2001 From: George Blouin Date: Fri, 20 Jan 2023 16:33:36 -0700 Subject: [PATCH 016/199] Add Generator to MTF File And output the current version of the program being used. --- saw/src/main/java/saw/gui/frmVee.java | 2 +- saw/src/main/java/saw/gui/frmVeeWide.java | 2 +- ssw/src/main/java/ssw/gui/frmMain.java | 2 +- ssw/src/main/java/ssw/gui/frmMainWide.java | 2 +- sswlib/src/main/java/IO/MTFWriter.java | 78 ++++++++++---------- sswlib/src/main/java/components/CVArmor.java | 2 +- 6 files changed, 44 insertions(+), 44 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 824bfd6b..4e95ce3b 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -7826,7 +7826,7 @@ private void btnExportMTFActionPerformed(java.awt.event.ActionEvent evt) {//GEN- } String filename = ""; - IO.MTFWriter mtfw = new IO.MTFWriter( CurVee ); + IO.MTFWriter mtfw = new IO.MTFWriter( CurVee, saw.Constants.AppDescription + " " + saw.Constants.GetVersion() ); try { filename = savemech.getCanonicalPath(); mtfw.WriteMTF( filename ); diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 37ff0d60..a051380e 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -7708,7 +7708,7 @@ private void btnExportMTFActionPerformed(java.awt.event.ActionEvent evt) {//GEN- } String filename = ""; - IO.MTFWriter mtfw = new IO.MTFWriter(CurVee); + IO.MTFWriter mtfw = new IO.MTFWriter(CurVee, saw.Constants.AppDescription + " " + saw.Constants.GetVersion()); try { filename = savemech.getCanonicalPath(); mtfw.WriteMTF(filename); diff --git a/ssw/src/main/java/ssw/gui/frmMain.java b/ssw/src/main/java/ssw/gui/frmMain.java index 586eda27..2913876e 100644 --- a/ssw/src/main/java/ssw/gui/frmMain.java +++ b/ssw/src/main/java/ssw/gui/frmMain.java @@ -12498,7 +12498,7 @@ private void btnExportMTFActionPerformed(java.awt.event.ActionEvent evt) {//GEN- } String filename = ""; - IO.MTFWriter mtfw = new IO.MTFWriter( CurMech ); + IO.MTFWriter mtfw = new IO.MTFWriter( CurMech, SSWConstants.AppDescription + " " + SSWConstants.GetVersion() ); try { filename = savemech.getCanonicalPath(); mtfw.WriteMTF( filename ); diff --git a/ssw/src/main/java/ssw/gui/frmMainWide.java b/ssw/src/main/java/ssw/gui/frmMainWide.java index 47696557..ed75be3a 100644 --- a/ssw/src/main/java/ssw/gui/frmMainWide.java +++ b/ssw/src/main/java/ssw/gui/frmMainWide.java @@ -11331,7 +11331,7 @@ private void btnExportMTFActionPerformed(java.awt.event.ActionEvent evt) {//GEN- } String filename = ""; - IO.MTFWriter mtfw = new IO.MTFWriter( CurMech ); + IO.MTFWriter mtfw = new IO.MTFWriter( CurMech, SSWConstants.AppDescription + " " + SSWConstants.GetVersion() ); try { filename = savemech.getCanonicalPath(); mtfw.WriteMTF( filename ); diff --git a/sswlib/src/main/java/IO/MTFWriter.java b/sswlib/src/main/java/IO/MTFWriter.java index aa782952..85f26b17 100644 --- a/sswlib/src/main/java/IO/MTFWriter.java +++ b/sswlib/src/main/java/IO/MTFWriter.java @@ -42,18 +42,13 @@ public class MTFWriter { private CombatVehicle CurVee; private String Prepend = ""; private boolean mixed = false; + private String Version = ""; public MTFWriter( ) { - } - public MTFWriter( Mech m ) { - CurMech = m; - } - - public MTFWriter( CombatVehicle v ) { - CurVee = v; - } + public MTFWriter( Mech m, String version ) { CurMech = m; Version = version; } + public MTFWriter( CombatVehicle v, String version ) { CurVee = v; Version = version; } public void WriteMechMTF( String filename ) throws IOException { BufferedWriter FR = new BufferedWriter( new FileWriter( filename ) ); @@ -72,8 +67,7 @@ public void WriteMechMTF( String filename ) throws IOException { mixed = true; break; } - // first block for vesioning and name - FR.write( "Version:1.1" ); + FR.write( "Generator:" + Version ); FR.newLine(); FR.write( CurMech.GetName() ); FR.newLine(); @@ -364,7 +358,6 @@ public void WriteMechMTF( String filename ) throws IOException { public void WriteVeeMTF( String filename ) throws IOException { BufferedWriter FR = new BufferedWriter( new FileWriter( filename ) ); - // get the prepend string for stuff that needs it switch( CurVee.GetLoadout().GetTechBase() ) { case AvailableCode.TECH_INNER_SPHERE: Prepend = "IS"; @@ -378,8 +371,7 @@ public void WriteVeeMTF( String filename ) throws IOException { mixed = true; break; } - // first block for vesioning and name - FR.write( "Version:1.1" ); + FR.write( "Generator:" + Version ); FR.newLine(); FR.write( CurVee.GetName() ); FR.newLine(); @@ -393,8 +385,6 @@ public void WriteVeeMTF( String filename ) throws IOException { FR.write( CurVee.GetModel() ); } FR.newLine(); - - // second block handles general mech stuff FR.newLine(); FR.write( "Config:" + CurVee.getCurConfig().GetMotiveLookupName() ); FR.newLine(); @@ -419,8 +409,6 @@ public void WriteVeeMTF( String filename ) throws IOException { FR.newLine(); FR.write( "Rules Level:" + CurVee.GetMegaMekLevel() ); FR.newLine(); - - // third block for mech specifics FR.newLine(); FR.write( "Mass:" + CurVee.GetTonnage() ); FR.newLine(); @@ -471,6 +459,8 @@ public void WriteVeeMTF( String filename ) throws IOException { } FR.write( "Cruise MP:" + CurVee.getCruiseMP() ); FR.newLine(); + FR.write( "Flank MP:" + CurVee.getFlankMP() ); + FR.newLine(); FR.write( "Jump MP:" + CurVee.GetJumpJets().GetNumJJ() ); FR.newLine(); @@ -486,27 +476,37 @@ public void WriteVeeMTF( String filename ) throws IOException { FR.write( "Armor:" + CurVee.GetArmor().MegaMekName( false ) ); } FR.newLine(); - FR.write( "LA Armor:" + CurVee.GetArmor().GetLocationArmor( LocationIndex.MECH_LOC_LA) ); - FR.newLine(); - FR.write( "RA Armor:" + CurVee.GetArmor().GetLocationArmor( LocationIndex.MECH_LOC_RA) ); - FR.newLine(); - FR.write( "LT Armor:" + CurVee.GetArmor().GetLocationArmor( LocationIndex.MECH_LOC_LT) ); - FR.newLine(); - FR.write( "RT Armor:" + CurVee.GetArmor().GetLocationArmor( LocationIndex.MECH_LOC_RT) ); - FR.newLine(); - FR.write( "CT Armor:" + CurVee.GetArmor().GetLocationArmor( LocationIndex.MECH_LOC_CT) ); - FR.newLine(); - FR.write( "HD Armor:" + CurVee.GetArmor().GetLocationArmor( LocationIndex.MECH_LOC_HD) ); - FR.newLine(); - FR.write( "LL Armor:" + CurVee.GetArmor().GetLocationArmor( LocationIndex.MECH_LOC_LL) ); + FR.write( "Front Armor:" + CurVee.GetArmor().GetLocationArmor( LocationIndex.CV_LOC_FRONT) ); FR.newLine(); - FR.write( "RL Armor:" + CurVee.GetArmor().GetLocationArmor( LocationIndex.MECH_LOC_RL) ); + FR.write( "Left Side Armor:" + CurVee.GetArmor().GetLocationArmor( LocationIndex.CV_LOC_LEFT) ); FR.newLine(); - FR.write( "RTL Armor:" + CurVee.GetArmor().GetLocationArmor( LocationIndex.MECH_LOC_LTR) ); + FR.write( "Right Side Armor:" + CurVee.GetArmor().GetLocationArmor( LocationIndex.CV_LOC_RIGHT) ); FR.newLine(); - FR.write( "RTR Armor:" + CurVee.GetArmor().GetLocationArmor( LocationIndex.MECH_LOC_RTR) ); + FR.write( "Body Armor:" + CurVee.GetArmor().GetLocationArmor( LocationIndex.CV_LOC_BODY) ); FR.newLine(); - FR.write( "RTC Armor:" + CurVee.GetArmor().GetLocationArmor( LocationIndex.MECH_LOC_CTR) ); + if (CurVee.getCurConfig().IsVTOL()) { + FR.write("Rotor Armor:" + CurVee.GetArmor().GetLocationArmor(LocationIndex.CV_LOC_ROTOR)); + FR.newLine(); + } + if (CurVee.isHasSponsonTurret()) { + FR.write("Left Sponson Armor:" + CurVee.GetArmor().GetLocationArmor(LocationIndex.CV_LOC_SPONSON_LEFT)); + FR.newLine(); + FR.write( "Right Sponson Armor:" + CurVee.GetArmor().GetLocationArmor( LocationIndex.CV_LOC_SPONSON_RIGHT) ); + FR.newLine(); + } + if (CurVee.isHasTurret1() && !CurVee.isHasTurret2()) { + FR.write("Turret Armor:" + CurVee.GetArmor().GetLocationArmor(LocationIndex.CV_LOC_TURRET1)); + FR.newLine(); + } + if (CurVee.isHasTurret1() && CurVee.isHasTurret2()) { + FR.write("Turret 1 Armor:" + CurVee.GetArmor().GetLocationArmor(LocationIndex.CV_LOC_TURRET1)); + FR.newLine(); + } + if (CurVee.isHasTurret2()) { + FR.write("Turret 2 Armor:" + CurVee.GetArmor().GetLocationArmor(LocationIndex.CV_LOC_TURRET2)); + FR.newLine(); + } + FR.write( "Rear Armor:" + CurVee.GetArmor().GetLocationArmor( LocationIndex.CV_LOC_REAR) ); FR.newLine(); // sixth block for weapon information. Get the loadout directly as this @@ -550,9 +550,9 @@ public void WriteVeeMTF( String filename ) throws IOException { } // now that we have the amount, add the line in if( ammoamount > 0 ) { - FR.write( "1 " + GetMMName( p ) + ", " + LocationIndex.MechLocs[l.Find( p )] + rear + ", Ammo:" + ammoamount ); + FR.write( "1 " + GetMMName( p ) + ", " + LocationIndex.CVLocs[l.Find( p )] + rear + ", Ammo:" + ammoamount ); } else { - FR.write( "1 " + GetMMName( p ) + ", " + LocationIndex.MechLocs[l.Find( p )] + rear ); + FR.write( "1 " + GetMMName( p ) + ", " + LocationIndex.CVLocs[l.Find( p )] + rear ); } } else { // check for a rear-facing weapon @@ -561,24 +561,24 @@ public void WriteVeeMTF( String filename ) throws IOException { rear = " (R)"; } // no ammo checking needed - FR.write( "1 " + GetMMName( p ) + ", " + LocationIndex.MechLocs[l.Find( p )] + rear ); + FR.write( "1 " + GetMMName( p ) + ", " + LocationIndex.CVLocs[l.Find( p )] + rear ); } FR.newLine(); } else { // not a weapon so no ammo checking. Add it to the file - FR.write( "1 " + GetMMName( p ) + ", " + LocationIndex.MechLocs[l.Find( p )] ); + FR.write( "1 " + GetMMName( p ) + ", " + LocationIndex.CVLocs[l.Find( p )] ); FR.newLine(); } // format is: // "1 , , Ammo: } - // all done FR.close(); } public void WriteMTF( String filename ) throws IOException { + if (CurMech != null) { WriteMechMTF(filename); return; diff --git a/sswlib/src/main/java/components/CVArmor.java b/sswlib/src/main/java/components/CVArmor.java index f73d1957..2cb4cf45 100644 --- a/sswlib/src/main/java/components/CVArmor.java +++ b/sswlib/src/main/java/components/CVArmor.java @@ -42,7 +42,7 @@ public class CVArmor extends abPlaceable { // Declares private CombatVehicle Owner; private int Placed = 0; - private int[] ArmorPoints = { 0, 0, 0, 0, 0, 0, 0, 0 }; + private int[] ArmorPoints = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; private int[] MaxArmor = { 390, 390, 390, 390, 390, 390, 2, 390 }; private ifArmor Industrial = new stArmorIN(), Standard = new stArmorMS(), From b9223f7a7bf4fbe8346c6193c951975ead14370d Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 21 Jan 2023 16:58:11 -0700 Subject: [PATCH 017/199] Implement Supercharger for CV --- saw/src/main/java/saw/gui/frmVee.java | 22 +++++++++++++-- saw/src/main/java/saw/gui/frmVeeWide.java | 27 ++++++++++++++++--- .../src/main/java/components/CVLoadout.java | 19 +++++++++---- .../main/java/components/Supercharger.java | 2 +- 4 files changed, 58 insertions(+), 12 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 824bfd6b..ca7bc0b4 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -5774,6 +5774,7 @@ private void cmbMotiveTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN SetWeaponChoosers(); RefreshSummary(); RefreshInfoPane(); + RefreshEquipment(); }//GEN-LAST:event_cmbMotiveTypeActionPerformed private void ShowInfoOn( abPlaceable p ) { @@ -6020,7 +6021,24 @@ private void ShowInfoOn( abPlaceable p ) { } private void chkSuperchargerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkSuperchargerActionPerformed - + if( CurVee.GetLoadout().HasSupercharger() == chkSupercharger.isSelected() ) { + return; + } + try { + CurVee.GetLoadout().SetSupercharger( chkSupercharger.isSelected()); + } catch( Exception e ) { + Media.Messager( this, e.getMessage() ); + try { + CurVee.GetLoadout().SetSupercharger( false ); + } catch( Exception x ) { + // how the hell did we get an error removing it? + Media.Messager( this, x.getMessage() ); + } + chkSupercharger.setSelected( false ); + } + // now refresh the information panes + RefreshSummary(); + RefreshInfoPane(); }//GEN-LAST:event_chkSuperchargerActionPerformed private void chkUseTCActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkUseTCActionPerformed @@ -7060,7 +7078,7 @@ private void RefreshEquipment() { //chkBSPFD.setEnabled( false ); //chkBSPFD.setSelected( false ); } - if( CommonTools.IsAllowed( CurVee.GetLoadout().GetSupercharger().GetAvailability(), CurVee ) ) { + if( CommonTools.IsAllowed( CurVee.GetLoadout().GetSupercharger().GetAvailability(), CurVee ) && !CurVee.IsVTOL() ) { chkSupercharger.setEnabled( true ); } else { chkSupercharger.setEnabled( false ); diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 37ff0d60..fa58a075 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -5565,7 +5565,7 @@ private void BuildChassisSelector() } } - private void BuildExpEquipmentSelector() { + private void BuildExpEquipmentSelector() { JCheckBox[] ExpEquipmentCheckboxes = { chkArmoredMotive, chkSupercharger, chkCommandConsole, @@ -5574,6 +5574,7 @@ private void BuildExpEquipmentSelector() { chkEscapePod, chkSponsonTurret }; if (cmbRulesLevel.getSelectedIndex() > 1) { + if (CurVee.CanUseSponson()) chkSponsonTurret.setEnabled(true); } else @@ -6393,7 +6394,7 @@ private void RefreshEquipment() { //chkBSPFD.setEnabled( false ); //chkBSPFD.setSelected( false ); } - if( CommonTools.IsAllowed( CurVee.GetLoadout().GetSupercharger().GetAvailability(), CurVee ) ) { + if( CommonTools.IsAllowed( CurVee.GetLoadout().GetSupercharger().GetAvailability(), CurVee ) && !CurVee.IsVTOL() ) { chkSupercharger.setEnabled( true ); } else { chkSupercharger.setEnabled( false ); @@ -8907,8 +8908,25 @@ private void chkFractionalActionPerformed(java.awt.event.ActionEvent evt) {//GEN }//GEN-LAST:event_chkFractionalActionPerformed private void chkSuperchargerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkSuperchargerActionPerformed - - }//GEN-LAST:event_chkSuperchargerActionPerformed + if( CurVee.GetLoadout().HasSupercharger() == chkSupercharger.isSelected() ) { + return; + } + try { + CurVee.GetLoadout().SetSupercharger( chkSupercharger.isSelected()); + } catch( Exception e ) { + Media.Messager( this, e.getMessage() ); + try { + CurVee.GetLoadout().SetSupercharger( false ); + } catch( Exception x ) { + // how the hell did we get an error removing it? + Media.Messager( this, x.getMessage() ); + } + chkSupercharger.setSelected( false ); + } + // now refresh the information panes + RefreshSummary(); + RefreshInfoPane(); + } private void chkEnviroSealingActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkEnviroSealingActionPerformed CurVee.SetEnvironmentalSealing(chkEnviroSealing.isSelected()); @@ -9298,6 +9316,7 @@ private void cmbMotiveTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN RecalcArmorLocations(); RefreshSummary(); RefreshInfoPane(); + RefreshEquipment(); }//GEN-LAST:event_cmbMotiveTypeActionPerformed private void cmbProductionEraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbProductionEraActionPerformed diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index ca39b21b..33a1f9d5 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -311,7 +311,7 @@ public void AddTo(abPlaceable p, int Loc) throws Exception { //Ammo only ever goes in the Body if ( p instanceof Ammunition ) Loc = LocationIndex.CV_LOC_BODY; //Quite a bit of equipment can only go in the body - if ( p instanceof Equipment ) { + if ( p instanceof Equipment && Loc != LocationIndex.CV_LOC_BODY) { if ( !((Equipment)p).CanAllocCVFront() && !((Equipment)p).CanAllocCVSide() && !((Equipment)p).CanAllocCVRear() && !((Equipment)p).CanAllocCVTurret() ) Loc = LocationIndex.CV_LOC_BODY; // Check max items allowed for that location @@ -632,10 +632,10 @@ public void FlushIllegal() { //Owner.CheckArmoredComponents(); // see if there's anything to flush out - if( GetNonCore().size() <= 0 ) { return; } + if( NonCore.isEmpty() ) { return; } - for( int i = GetNonCore().size() - 1; i >= 0; i-- ) { - p = (abPlaceable) GetNonCore().get( i ); + for( int i = NonCore.size() - 1; i >= 0; i-- ) { + p = (abPlaceable) NonCore.get( i ); AC = p.GetAvailability(); try { CheckExclusions( p ); @@ -645,7 +645,7 @@ public void FlushIllegal() { } catch( Exception e ) { Remove( p ); } - if( GetNonCore().contains( p ) ) { + if( NonCore.contains( p ) ) { if( Rules < AvailableCode.RULES_EXPERIMENTAL ) { p.ArmorComponent( false ); } @@ -1026,10 +1026,19 @@ public void CheckTC() { public void SetSupercharger(boolean b) throws Exception { UsingSupercharger = b; + try { + AddTo(SCharger, LocationIndex.CV_LOC_BODY); + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + AddMechModifier( SCharger.GetMechModifier() ); Owner.SetChanged( true ); } public void SetSupercharger(Supercharger s) { + // this sets the loadout's supercharger to a different one. + // Used for cloning purposes only! SCharger = s; Owner.SetChanged( true ); } diff --git a/sswlib/src/main/java/components/Supercharger.java b/sswlib/src/main/java/components/Supercharger.java index 2e2b088d..44245dba 100644 --- a/sswlib/src/main/java/components/Supercharger.java +++ b/sswlib/src/main/java/components/Supercharger.java @@ -39,7 +39,7 @@ public Supercharger( ifLoadout l ) { AC.SetCLCodes( 'C', 'X', 'F', 'F', 'D' ); AC.SetCLDates( 0, 0, false, 3078, 0, 0, false, false ); AC.SetCLFactions( "", "", "ES", "" ); - AC.SetRulesLevels( AvailableCode.RULES_EXPERIMENTAL, AvailableCode.RULES_EXPERIMENTAL, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED ); + AC.SetRulesLevels( AvailableCode.RULES_EXPERIMENTAL, AvailableCode.RULES_EXPERIMENTAL, AvailableCode.RULES_EXPERIMENTAL, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED ); Owner = (ifLoadout)l; AddMechModifier( new MechModifier( 0, 0, 0, 0.5, 0, 0, 0, 0.0, 0.0, 0.0, 0.0, true, false ) ); } From d517dad3d6b9c2e87b1a851827508f62689cfd28 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 21 Jan 2023 17:50:04 -0700 Subject: [PATCH 018/199] Remove when Unchecked Instead of adding another one :/ --- saw/src/main/java/saw/gui/frmVee.java | 2 +- saw/src/main/java/saw/gui/frmVeeWide.java | 2 +- .../src/main/java/components/CVLoadout.java | 20 +++++++++++++------ 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index ca7bc0b4..c784155f 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -6036,7 +6036,7 @@ private void chkSuperchargerActionPerformed(java.awt.event.ActionEvent evt) {//G } chkSupercharger.setSelected( false ); } - // now refresh the information panes + RefreshSelectedEquipment(); RefreshSummary(); RefreshInfoPane(); }//GEN-LAST:event_chkSuperchargerActionPerformed diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index fa58a075..a8fd67ce 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -8923,7 +8923,7 @@ private void chkSuperchargerActionPerformed(java.awt.event.ActionEvent evt) {//G } chkSupercharger.setSelected( false ); } - // now refresh the information panes + RefreshSelectedEquipment(); RefreshSummary(); RefreshInfoPane(); } diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index 33a1f9d5..7ee673f8 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -1026,13 +1026,21 @@ public void CheckTC() { public void SetSupercharger(boolean b) throws Exception { UsingSupercharger = b; - try { - AddTo(SCharger, LocationIndex.CV_LOC_BODY); - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } - AddMechModifier( SCharger.GetMechModifier() ); + if( !UsingSupercharger ) { + Remove( SCharger ); + RemoveMechMod(SCharger.GetMechModifier()); + return; + } else { + + try { + AddTo(SCharger, LocationIndex.CV_LOC_BODY); + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + + AddMechModifier(SCharger.GetMechModifier()); + } Owner.SetChanged( true ); } From a225a4cec34d652e921ba7507045463c83182cae Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sun, 22 Jan 2023 17:01:41 -0700 Subject: [PATCH 019/199] Fix Mini Rate Needed to add a boolean rather then setting the modifier to 0. --- sswlib/src/main/java/Print/PrintVehicle.java | 12 +++++++----- sswlib/src/main/java/Print/preview/dlgPreview.java | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/sswlib/src/main/java/Print/PrintVehicle.java b/sswlib/src/main/java/Print/PrintVehicle.java index 19ab40b2..4123402c 100644 --- a/sswlib/src/main/java/Print/PrintVehicle.java +++ b/sswlib/src/main/java/Print/PrintVehicle.java @@ -56,13 +56,14 @@ public class PrintVehicle implements Printable { TRO = false, printMech = false, printLogo = false, - makeAmmoGeneric = false; + makeAmmoGeneric = false, + UseMiniRate = false; private String PilotName = "", GroupName = "", currentAmmoFormat = ""; private int Piloting = 5, Gunnery = 4, - MiniConvRate = 0; + MiniConvRate = 1; private double BV = 0.0; private ifPrintPoints points = null; private Color Black = new Color( 0, 0, 0 ), @@ -110,8 +111,9 @@ public void SetOptions( boolean charts, boolean PrintP, double UseBV ) { PrintPilot = PrintP; } - public void SetMiniConversion( int conv ) { + public void SetMiniConversion( int conv, Boolean useMini ) { MiniConvRate = conv; + UseMiniRate = useMini; } public void setMechwarrior(String name) { @@ -168,7 +170,7 @@ public void setTRO(boolean TRO) { this.TRO = TRO; setCanon(true); setCharts(false); - SetMiniConversion(1); + SetMiniConversion(1, false); setPrintPilot(false); currentAmmoFormat = Prefs.get( "AmmoNamePrintFormat", "" ); Prefs.put( "AmmoNamePrintFormat", "Ammo (%P) %L" ); @@ -297,7 +299,7 @@ private void DrawMechData( Graphics2D graphics ) { // } //Coverup the (hexes) above the ranges if we are not using traditional measurements - if (MiniConvRate > 0) + if (UseMiniRate) { graphics.setColor(Color.white); graphics.fillRect(p[6].x-5, p[6].y-28, 30, 10); diff --git a/sswlib/src/main/java/Print/preview/dlgPreview.java b/sswlib/src/main/java/Print/preview/dlgPreview.java index ac84db43..32309889 100644 --- a/sswlib/src/main/java/Print/preview/dlgPreview.java +++ b/sswlib/src/main/java/Print/preview/dlgPreview.java @@ -479,7 +479,7 @@ private void PrinterSetup() { pv.setPrintPilot(chkPrintGroup.isSelected()); if ( cmbPaperSize.getSelectedIndex() == 2 ) pv.setA4(); if ( chkPrintGroup.isSelected() ) pv.setGroupName( g.getName() + " [" + g.getForce().ForceName + "]" ); - if ( chkUseHexConversion.isSelected() ) pv.SetMiniConversion(cmbHexConvFactor.getSelectedIndex()+1); + if ( chkUseHexConversion.isSelected() ) {pv.SetMiniConversion(cmbHexConvFactor.getSelectedIndex()+1, true);} else {pv.SetMiniConversion(1, false);}; if ( chkLogo.isSelected() ) pv.setLogoImage(imageTracker.getImage(g.getLogo())); if ( cmbRSType.getSelectedIndex() == 1 ) pv.setTRO(true); printer.Append( pageSize, pv); From 548c8e03f7a6a2cc755cf154d4892d95f45e59f8 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sun, 22 Jan 2023 18:06:59 -0700 Subject: [PATCH 020/199] Supercharger Adjustments --- .../src/main/java/components/CVLoadout.java | 71 +++++++++++++++---- .../main/java/components/CombatVehicle.java | 19 ++++- .../main/java/filehandlers/CVTXTWriter.java | 21 +++--- .../java/utilities/CVCostBVBreakdown.java | 6 +- 4 files changed, 89 insertions(+), 28 deletions(-) diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index 7ee673f8..db990d78 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -725,7 +725,51 @@ public void AutoAllocate(EquipmentCollection e) { } public boolean IsAllocated(abPlaceable p) { - throw new UnsupportedOperationException("Not supported yet."); + // checks to see if the specified item is allocated in the loadout + + if( FrontItems.contains(p)) { + // found it. + return true; + } + if( LeftItems.contains(p) ) { + // found it. + return true; + } + if( RightItems.contains(p) ) { + // found it. + return true; + } + if( BodyItems.contains(p) ) { + // found it. + return true; + } + if( RearItems.contains(p) ) { + // found it. + return true; + } + if( Turret1Items.contains(p) ) { + // found it. + return true; + } + if( Turret2Items.contains(p) ) { + // found it. + return true; + } + if( SponsonTurretLeftItems.contains(p) ) { + // found it. + return true; + } + if( SponsonTurretRightItems.contains(p) ) { + // found it. + return true; + } + if( RotorItems.contains(p) ) { + // found it. + return true; + } + + // couldn't find it + return false; } public int UnplacedItems() { @@ -1025,22 +1069,17 @@ public void CheckTC() { } public void SetSupercharger(boolean b) throws Exception { - UsingSupercharger = b; - - if( !UsingSupercharger ) { + if( b == false ) { Remove( SCharger ); - RemoveMechMod(SCharger.GetMechModifier()); return; - } else { - - try { - AddTo(SCharger, LocationIndex.CV_LOC_BODY); - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } + } - AddMechModifier(SCharger.GetMechModifier()); + try { + AddTo(SCharger, LocationIndex.CV_LOC_BODY); + } catch (Exception ex) { + System.err.println(ex.getMessage()); } + AddMechModifier(SCharger.GetMechModifier()); Owner.SetChanged( true ); } @@ -1052,7 +1091,11 @@ public void SetSupercharger(Supercharger s) { } public boolean HasSupercharger() { - return UsingSupercharger; + if( IsAllocated( SCharger ) ) { + return true; + } else { + return false; + } } public Supercharger GetSupercharger() { diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index 6d805374..f4aba987 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -1246,6 +1246,12 @@ public int getCruiseMP() { return CruiseMP; } + public int GetAdjustedCruiseMP( boolean BV, boolean MASCTSM ) { + int retval = CruiseMP; + retval += GetTotalModifiers( BV, MASCTSM ).WalkingAdder(); + if( retval < 0 ) { return 0; } + return retval; + } public int getMaxCruiseMP() { if( CurEngine.IsPrimitive() ) { return (int) Math.floor( ( ( 400.0 + (double)CurConfig.GetSuspensionFactor(Tonnage) ) / (double)Tonnage ) / 1.2 ); @@ -1564,7 +1570,18 @@ public int getFlankMP() { public int getFlankMP( int MiniMult ) { return (int) Math.floor( ( getCruiseMP() * MiniMult ) * 1.5 + 0.5 ); } - + + public int GetAdjustedFlankMP( boolean BV, boolean MASCTSM ) { + // this had to become more complicated because of the peculiar + // idiosyncracies of the BV system. Stupid. + MechModifier m = GetTotalModifiers( BV, MASCTSM ); + int WalkValue = GetAdjustedCruiseMP( BV, MASCTSM ); + double Multiplier = 1.5 + m.RunningMultiplier(); + int retval = (int) Math.floor( WalkValue * Multiplier + 0.5 ) + m.RunningAdder(); + if( retval < 0 ) { return 0; } + return retval; + } + public void SetRulesLevel( int r ) { if( Omni ) { CurLoadout.SetRulesLevel( r ); diff --git a/sswlib/src/main/java/filehandlers/CVTXTWriter.java b/sswlib/src/main/java/filehandlers/CVTXTWriter.java index 87463821..8dcdf3c3 100644 --- a/sswlib/src/main/java/filehandlers/CVTXTWriter.java +++ b/sswlib/src/main/java/filehandlers/CVTXTWriter.java @@ -111,12 +111,12 @@ public void WriteTXT( String filename ) throws IOException { FR.close(); } - public String GetChatStats( Mech m ) { + public String GetChatStats( CombatVehicle m ) { // a fun convenience routine for those who talk in chat or forums. String retval = ""; // pondering some sort of GetChatName() for abplaceables. - retval += m.GetTonnage() + " tons, " + m.GetAdjustedWalkingMP( false, true ) + "/" + m.GetAdjustedRunningMP( false, true ) + "/" + m.GetAdjustedJumpingMP( false ); + retval += m.GetTonnage() + " tons, " + m.GetAdjustedCruiseMP( false, true ) + "/" + m.GetAdjustedFlankMP( false, true ); //+ "/" + m.GetAdjustedJumpingMP( false ); return retval; } @@ -150,8 +150,8 @@ public String GetTextExport() { //retval += "Chassis: " + CurVee.GetChassisModel() + " " + CurVee.GetIntStruc().CritName() + NL; retval += "Power Plant: " + CurVee.GetEngineManufacturer() + " " + CurVee.GetEngine().GetRating() + " " + CurVee.GetEngine() + NL; - retval += "Cruise Speed: " + CommonTools.FormatSpeed( CurVee.getCruiseMP() * 10.8 ) + " km/h" + NL; - retval += "Flanking Speed: " + CommonTools.FormatSpeed( CurVee.getFlankMP() * 10.8 ) + " km/h" + NL; + retval += "Cruise Speed: " + CommonTools.FormatSpeed( CurVee.GetAdjustedCruiseMP(false, true) * 10.8 ) + " km/h" + NL; + retval += "Flanking Speed: " + CommonTools.FormatSpeed( CurVee.GetAdjustedFlankMP(false, true) * 10.8 ) + " km/h" + NL; if ( CurVee.GetJumpJets().GetNumJJ() > 0 ) { retval += "Jump Jets: " + CurVee.GetJJModel() + NL; retval += " Jump Capacity: " + GetJumpJetDistanceLine() + NL; @@ -214,8 +214,8 @@ public String GetMiniTextExport() { retval += "--------------------------------------------------------------------------------" + NL; retval += String.format( "Internal Structure: %1$-28s %2$3s points %3" + tformat, CurVee.GetIntStruc().CritName(), CurVee.GetIntStruc().GetTotalPoints(), CurVee.GetIntStruc().GetTonnage() ) + NL; retval += String.format( "Engine: %1$-28s %2$3s %3" + tformat, FileCommon.GetExportName( CurVee, CurVee.GetEngine() ), CurVee.GetEngine().GetRating(), CurVee.GetEngine().GetTonnage() ) + NL; - retval += " Cruise MP: " + CurVee.getCruiseMP() + NL; - retval += " Flank MP: " + CurVee.getFlankMP() + NL; + retval += " Cruise MP: " + CurVee.GetAdjustedCruiseMP(false, true) + NL; + retval += " Flank MP: " + CurVee.GetAdjustedFlankMP(false, true) + NL; if( CurVee.GetJumpJets().GetNumJJ() > 0 ) { retval += " Jumping MP: " + GetJumpingMPLine() + " " + GetJumpJetTypeLine() + NL; retval += String.format( " %1$-68s %2$6.2f", "Jump Jet Locations: " + FileCommon.GetJumpJetLocations( CurVee ), CurVee.GetJumpJets().GetTonnage() ) + NL; @@ -488,7 +488,8 @@ private String BuildEquipmentBlock() { //v.add( CurVee.GetTC() ); } if( CurVee.GetLoadout().HasSupercharger() ) { - v.add( CurVee.GetLoadout().GetSupercharger() ); + //don't add as we already have it in the Body + //v.add( CurVee.GetLoadout().GetSupercharger() ); } if( v.size() < 1 ) { return ""; } @@ -644,9 +645,9 @@ private String BuildOmniLoadout() { //don't add as we already have it in the Body of the Vehicle //v.add( CurVee.GetTC() ); } - if( CurVee.GetLoadout().HasSupercharger() ) { - v.add( CurVee.GetLoadout().GetSupercharger() ); - } +// if( CurVee.GetLoadout().HasSupercharger() ) { +// v.add( CurVee.GetLoadout().GetSupercharger() ); +// } // now sort the equipment by location v = FileCommon.SortEquipmentForStats( CurVee, v ); diff --git a/sswlib/src/main/java/utilities/CVCostBVBreakdown.java b/sswlib/src/main/java/utilities/CVCostBVBreakdown.java index 3b7243bd..c65a266a 100644 --- a/sswlib/src/main/java/utilities/CVCostBVBreakdown.java +++ b/sswlib/src/main/java/utilities/CVCostBVBreakdown.java @@ -142,7 +142,7 @@ private String GetEquipmentCostLines() { retval += String.format( "%1$-46s %2$,6.0f %3$,6.0f %4$,13.2f", CurUnit.GetBlueShield().CritName(), CurUnit.GetBlueShield().GetDefensiveBV(), CurUnit.GetBlueShield().GetOffensiveBV(), CurUnit.GetBlueShield().GetCost() ) + NL; } if( CurUnit.GetLoadout().HasSupercharger() ) { - retval += String.format( "%1$-46s %2$,6.0f %3$,6.0f %4$,13.2f", CurUnit.GetLoadout().GetSupercharger().CritName(), CurUnit.GetLoadout().GetSupercharger().GetDefensiveBV(), CurUnit.GetLoadout().GetSupercharger().GetOffensiveBV(), CurUnit.GetLoadout().GetSupercharger().GetCost() ) + NL; + //retval += String.format( "%1$-46s %2$,6.0f %3$,6.0f %4$,13.2f", CurUnit.GetLoadout().GetSupercharger().CritName(), CurUnit.GetLoadout().GetSupercharger().GetDefensiveBV(), CurUnit.GetLoadout().GetSupercharger().GetOffensiveBV(), CurUnit.GetLoadout().GetSupercharger().GetCost() ) + NL; } return retval; } @@ -249,8 +249,8 @@ public String PrintOffensiveFactorCalculations() { String retval = ""; double temp; - temp = (double) (CurUnit.getFlankMP() + ( Math.floor( 0 * 0.5 + 0.5 ) ) - 5.0 ); - retval += " Adjusted Flank MP (" + CurUnit.getFlankMP( ) + ") + ( Adjusted Jumping MP (" + 0 + ") / 2 ) - 5 = " + String.format( "%1$,.2f", CurUnit.getFlankMP() + ( Math.floor( 0 * 0.5 + 0.5 ) ) - 5.0 ) + NL; + temp = (double) (CurUnit.GetAdjustedFlankMP(false, true) + ( Math.floor( 0 * 0.5 + 0.5 ) ) - 5.0 ); + retval += " Adjusted Flank MP (" + CurUnit.GetAdjustedFlankMP(false, true ) + ") + ( Adjusted Jumping MP (" + 0 + ") / 2 ) - 5 = " + String.format( "%1$,.2f", CurUnit.GetAdjustedFlankMP(false, true) + ( Math.floor( 0 * 0.5 + 0.5 ) ) - 5.0 ) + NL; retval += " " + String.format( "%1$,.2f", temp ) + " / 10 + 1 = " + String.format( "%1$.3f", ( temp * 0.1 + 1.0 ) ) + NL; temp = temp * 0.1 + 1.0; retval += " " + String.format( "%1$,.2f", temp ) + " ^ 1.2 = " + (double) Math.floor( ( Math.pow( temp, 1.2 ) ) * 100 + 0.5 ) / 100 + " (rounded off to two digits)" + NL; From b6dc66d54794e6f1a85cd71ac365c83a34c66d3b Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sun, 22 Jan 2023 20:18:13 -0700 Subject: [PATCH 021/199] Stop Double Counting of Supercharger --- sswlib/src/main/java/components/CombatVehicle.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index f4aba987..8cdcfc89 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -424,7 +424,7 @@ public double GetCurrentTons() { result += GetFullAmphibiousTonnage(); result += GetEnvironmentalSealingTonnage(); //if( HasBlueShield ) { result += BlueShield.GetTonnage(); } - if( CurLoadout.HasSupercharger() ) { result += CurLoadout.GetSupercharger().GetTonnage(); } + //if( CurLoadout.HasSupercharger() ) { result += CurLoadout.GetSupercharger().GetTonnage(); } ArrayList v = CurLoadout.GetNonCore(); if( v.size() > 0 ) { @@ -449,7 +449,7 @@ public double GetCurrentDryTons() { if( CurLoadout.UsingTC() ) { result += GetTC().GetTonnage(); } if( ! CurEngine.IsNuclear() ) { result += CurLoadout.GetPowerAmplifier().GetTonnage(); } if( HasBlueShield ) { result += BlueShield.GetTonnage(); } - if( CurLoadout.HasSupercharger() ) { result += CurLoadout.GetSupercharger().GetTonnage(); } + //if( CurLoadout.HasSupercharger() ) { result += CurLoadout.GetSupercharger().GetTonnage(); } if( UsingEnvironmentalSealing ) { result += EnviroSealing.GetTonnage(); } ArrayList v = CurLoadout.GetNonCore(); @@ -2024,9 +2024,9 @@ public double GetDefensiveEquipBV() { if( HasBlueShield() ) { result += BlueShield.GetDefensiveBV(); } - if( CurLoadout.HasSupercharger() ) { - result += CurLoadout.GetSupercharger().GetDefensiveBV(); - } +// if( CurLoadout.HasSupercharger() ) { +// result += CurLoadout.GetSupercharger().GetDefensiveBV(); +// } } return result; } From 32d58978cc453d121b45b6ca3d84bfe3e4f33925 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sun, 22 Jan 2023 20:32:15 -0700 Subject: [PATCH 022/199] Adjust the Offensive BV --- sswlib/src/main/java/components/CombatVehicle.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index 8cdcfc89..b08588db 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -2333,7 +2333,7 @@ public double GetTonnageBV() { public double GetOffensiveFactor() { double result = 0.0; - result += (double) (getFlankMP() - 5.0f); + result += (double) (GetAdjustedFlankMP(true, true) - 5.0f); result = result * 0.1 + 1.0; result = (double) Math.pow( result, 1.2 ) ; From 521a7c6e95fa247ed0009972a29b434531ca17d4 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sun, 22 Jan 2023 20:46:18 -0700 Subject: [PATCH 023/199] Remove Modifier When Supercharger is removed --- sswlib/src/main/java/components/CVLoadout.java | 1 + 1 file changed, 1 insertion(+) diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index db990d78..16dc377b 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -1071,6 +1071,7 @@ public void CheckTC() { public void SetSupercharger(boolean b) throws Exception { if( b == false ) { Remove( SCharger ); + RemoveMechMod(SCharger.GetMechModifier()); return; } From d82dc55dbc9422cef54aaadf6b5aaf181477841c Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sun, 22 Jan 2023 20:46:38 -0700 Subject: [PATCH 024/199] Add Move Summary And add to the layout, this is a little messed up though! --- saw/src/main/java/saw/gui/frmVee.java | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index c784155f..1707e44b 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -890,6 +890,14 @@ public void RefreshInfoPane() { txtInfoFreeCrits.setForeground(Color.black); } + // fill in the movement summary + String temp = "Max W/R: "; + temp += CurVee.GetAdjustedCruiseMP( false, true ) + "/"; + temp += CurVee.GetAdjustedFlankMP( false, true ) + "/"; +// temp += CurMech.GetAdjustedJumpingMP( false ) + "/"; +// temp += CurMech.GetAdjustedBoosterMP( false ); + lblMoveSummary.setText( temp ); + // fill in the info if( CurVee.UsingFractionalAccounting() ) { txtInfoTonnage.setText( "Tons: " + CommonTools.RoundFractionalTons( CurVee.GetCurrentTons() ) ); @@ -1068,6 +1076,7 @@ private void initComponents() { btnOptions = new javax.swing.JButton(); jSeparator21 = new javax.swing.JToolBar.Separator(); lblSelectVariant = new javax.swing.JLabel(); + lblMoveSummary = new javax.swing.JLabel(); cmbOmniVariant = new javax.swing.JComboBox(); tbpMainTabPane = new javax.swing.JTabbedPane(); pnlBasicSetup = new javax.swing.JPanel(); @@ -2103,7 +2112,9 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addGroup(pnlMovementLayout.createSequentialGroup() .addComponent(jLabel10) .addGap(2, 2, 2) - .addComponent(spnCruiseMP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(spnCruiseMP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(2, 2, 2) + .addComponent(lblMoveSummary, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(pnlMovementLayout.createSequentialGroup() .addGap(5, 5, 5) .addGroup(pnlMovementLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -2124,7 +2135,8 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addGroup(pnlMovementLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel10)) - .addComponent(spnCruiseMP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(spnCruiseMP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblMoveSummary, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(2, 2, 2) .addGroup(pnlMovementLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel11) @@ -2154,6 +2166,12 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; pnlChassisMods.add(chkFlotationHull, gridBagConstraints); + lblMoveSummary.setText("W/R: 12/20"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0); + pnlMovement.add(lblMoveSummary, gridBagConstraints); + chkLimitedAmph.setText("Limited Amphibious"); chkLimitedAmph.setEnabled(false); chkLimitedAmph.addActionListener(new java.awt.event.ActionListener() { @@ -10126,6 +10144,7 @@ private void FixJJSpinnerModel() { private javax.swing.JLabel lblRightIntPts; private javax.swing.JLabel lblRotorIntPts; private javax.swing.JLabel lblSelectVariant; + private javax.swing.JLabel lblMoveSummary; private javax.swing.JLabel lblSupensionFacter; private javax.swing.JLabel lblTurretIntPts; private javax.swing.JLabel lblVeeClass; From 3249c7a1ff950f92f2ad6daacac1c6e6552a629a Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sun, 22 Jan 2023 20:59:08 -0700 Subject: [PATCH 025/199] Max Move on Layout Better laid out this time. --- saw/src/main/java/saw/gui/frmVee.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 1707e44b..4045d89d 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -891,9 +891,9 @@ public void RefreshInfoPane() { } // fill in the movement summary - String temp = "Max W/R: "; + String temp = "Max C/F: "; temp += CurVee.GetAdjustedCruiseMP( false, true ) + "/"; - temp += CurVee.GetAdjustedFlankMP( false, true ) + "/"; + temp += CurVee.GetAdjustedFlankMP( false, true ); // temp += CurMech.GetAdjustedJumpingMP( false ) + "/"; // temp += CurMech.GetAdjustedBoosterMP( false ); lblMoveSummary.setText( temp ); @@ -2104,6 +2104,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { javax.swing.GroupLayout pnlMovementLayout = new javax.swing.GroupLayout(pnlMovement); pnlMovement.setLayout(pnlMovementLayout); + pnlMovementLayout.setHorizontalGroup( pnlMovementLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlMovementLayout.createSequentialGroup() @@ -2113,8 +2114,8 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addComponent(jLabel10) .addGap(2, 2, 2) .addComponent(spnCruiseMP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(2, 2, 2) - .addComponent(lblMoveSummary, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(5, 5, 5) + .addComponent(lblMoveSummary, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(pnlMovementLayout.createSequentialGroup() .addGap(5, 5, 5) .addGroup(pnlMovementLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -2126,7 +2127,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addComponent(jLabel13) .addGap(2, 2, 2) .addComponent(spnJumpMP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))) - .addContainerGap(129, Short.MAX_VALUE)) + .addContainerGap(20, Short.MAX_VALUE)) ); pnlMovementLayout.setVerticalGroup( pnlMovementLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -2136,7 +2137,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addGap(3, 3, 3) .addComponent(jLabel10)) .addComponent(spnCruiseMP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblMoveSummary, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(lblMoveSummary, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE)) .addGap(2, 2, 2) .addGroup(pnlMovementLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel11) From 2c0443214af551313c621f294355f1bf3f0c5909 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sun, 22 Jan 2023 21:06:27 -0700 Subject: [PATCH 026/199] Change save output So that it only has one entry for supercharger. --- .../src/main/java/filehandlers/CVWriter.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/sswlib/src/main/java/filehandlers/CVWriter.java b/sswlib/src/main/java/filehandlers/CVWriter.java index 7b6ba129..358fdb0e 100644 --- a/sswlib/src/main/java/filehandlers/CVWriter.java +++ b/sswlib/src/main/java/filehandlers/CVWriter.java @@ -430,14 +430,14 @@ private String GetEquipmentLines( String prefix ) { retval += prefix + "" + NL; } */ - if( CurUnit.GetLoadout().HasSupercharger() ) { - abPlaceable p = (abPlaceable) CurUnit.GetLoadout().GetSupercharger(); - retval += prefix + "" + NL; - retval += prefix + tab + "Supercharger" + NL; - retval += prefix + tab + "Supercharger" + NL; - retval += GetLocationLines( prefix + tab, p ); - retval += prefix + "" + NL; - } +// if( CurUnit.GetLoadout().HasSupercharger() ) { +// abPlaceable p = (abPlaceable) CurUnit.GetLoadout().GetSupercharger(); +// retval += prefix + "" + NL; +// retval += prefix + tab + "Supercharger" + NL; +// retval += prefix + tab + "Supercharger" + NL; +// retval += GetLocationLines( prefix + tab, p ); +// retval += prefix + "" + NL; +// } return retval; } @@ -469,6 +469,8 @@ private String GetEquipmentType( abPlaceable p ) { return "TargetingComputer"; } else if ( p instanceof CASE ) { return "CASE"; + } else if ( p instanceof Supercharger ) { + return "Supercharger"; } else { return "miscellaneous"; } From 82ada384fc690af821547356ec1d4babeb4ed0f3 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Tue, 24 Jan 2023 21:03:46 -0700 Subject: [PATCH 027/199] Save Supercharger as Physical Enhancement --- sswlib/src/main/java/filehandlers/CVWriter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sswlib/src/main/java/filehandlers/CVWriter.java b/sswlib/src/main/java/filehandlers/CVWriter.java index 358fdb0e..384c335d 100644 --- a/sswlib/src/main/java/filehandlers/CVWriter.java +++ b/sswlib/src/main/java/filehandlers/CVWriter.java @@ -470,7 +470,7 @@ private String GetEquipmentType( abPlaceable p ) { } else if ( p instanceof CASE ) { return "CASE"; } else if ( p instanceof Supercharger ) { - return "Supercharger"; + return "physical enhancement"; } else { return "miscellaneous"; } From 1119a519253a97b4bfe54a8b67a43072d79aef23 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Tue, 24 Jan 2023 21:10:40 -0700 Subject: [PATCH 028/199] Add Modifier on Clone --- sswlib/src/main/java/components/CVLoadout.java | 1 + 1 file changed, 1 insertion(+) diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index 16dc377b..268fc7f9 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -1088,6 +1088,7 @@ public void SetSupercharger(Supercharger s) { // this sets the loadout's supercharger to a different one. // Used for cloning purposes only! SCharger = s; + AddMechModifier(SCharger.GetMechModifier()); Owner.SetChanged( true ); } From be7e4acef86fc45e53dc459b54f5b0c040a82387 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Tue, 24 Jan 2023 22:07:27 -0700 Subject: [PATCH 029/199] Revert back to Supercharger As the loading of the file needs to know the special equipment to load. --- sswlib/src/main/java/filehandlers/CVWriter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sswlib/src/main/java/filehandlers/CVWriter.java b/sswlib/src/main/java/filehandlers/CVWriter.java index 384c335d..358fdb0e 100644 --- a/sswlib/src/main/java/filehandlers/CVWriter.java +++ b/sswlib/src/main/java/filehandlers/CVWriter.java @@ -470,7 +470,7 @@ private String GetEquipmentType( abPlaceable p ) { } else if ( p instanceof CASE ) { return "CASE"; } else if ( p instanceof Supercharger ) { - return "physical enhancement"; + return "Supercharger"; } else { return "miscellaneous"; } From a12c3e75f6b3ee43c6327e8d228cec7a44c9cb56 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Thu, 26 Jan 2023 20:29:05 -0700 Subject: [PATCH 030/199] Use Adjusted Flank for DBV --- sswlib/src/main/java/components/CombatVehicle.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index b08588db..b8b5483f 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -2024,9 +2024,9 @@ public double GetDefensiveEquipBV() { if( HasBlueShield() ) { result += BlueShield.GetDefensiveBV(); } -// if( CurLoadout.HasSupercharger() ) { -// result += CurLoadout.GetSupercharger().GetDefensiveBV(); -// } + if( CurLoadout.HasSupercharger() ) { + result += CurLoadout.GetSupercharger().GetDefensiveBV(); + } } return result; } @@ -2145,7 +2145,7 @@ public double GetDefensiveFactor() { // target number for speed. // subtract one since we're indexing an array - int RunMP = getFlankMP() - 1; + int RunMP = GetAdjustedFlankMP(true, false) - 1; int JumpMP = 0; // this is a safeguard for using MASC on an incredibly speedy chassis From 1f59cbed4787397b7bd3cae93b37d25849dae903 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Thu, 26 Jan 2023 22:03:29 -0700 Subject: [PATCH 031/199] Print Preview shows adjusted movement When a supercharger is added. --- sswlib/src/main/java/Print/PrintVehicle.java | 21 ++++++++++++++++--- .../main/java/components/CombatVehicle.java | 12 +++++++++++ 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/sswlib/src/main/java/Print/PrintVehicle.java b/sswlib/src/main/java/Print/PrintVehicle.java index 4123402c..e03bb90c 100644 --- a/sswlib/src/main/java/Print/PrintVehicle.java +++ b/sswlib/src/main/java/Print/PrintVehicle.java @@ -393,9 +393,24 @@ private void DrawMechData( Graphics2D graphics ) { // have to hack the movement to print the correct stuff here. graphics.setFont( PrintConsts.Small8Font ); - graphics.drawString( ( CurVee.getCruiseMP() * MiniConvRate ) + "", p[PrintConsts.WALKMP].x, p[PrintConsts.WALKMP].y ); - graphics.drawString( CurVee.getFlankMP( MiniConvRate ) + "", p[PrintConsts.RUNMP].x, p[PrintConsts.RUNMP].y ); - + //graphics.drawString( ( CurVee.getCruiseMP() * MiniConvRate ) + "", p[PrintConsts.WALKMP].x, p[PrintConsts.WALKMP].y ); + //graphics.drawString( CurVee.getFlankMP( MiniConvRate ) + "", p[PrintConsts.RUNMP].x, p[PrintConsts.RUNMP].y ); + + if( CurVee.GetAdjustedCruiseMP( false, true ) != CurVee.getCruiseMP() ) { + graphics.drawString( ( CurVee.getCruiseMP() * MiniConvRate ) + " (" + ( CurVee.GetAdjustedCruiseMP( false, true ) * MiniConvRate ) + ")", p[PrintConsts.WALKMP].x, p[PrintConsts.WALKMP].y ); + } else { + graphics.drawString( ( CurVee.getCruiseMP() * MiniConvRate ) + "", p[PrintConsts.WALKMP].x, p[PrintConsts.WALKMP].y ); + } + if( CurVee.GetAdjustedFlankMP( false, true ) != CurVee.getFlankMP() ) { + if( CurVee.GetAdjustedFlankMP( false, true ) < CurVee.getFlankMP() ) { + graphics.drawString( CurVee.GetAdjustedFlankMP( false, true, MiniConvRate ) + "", p[PrintConsts.RUNMP].x, p[PrintConsts.RUNMP].y ); + } else { + graphics.drawString( CurVee.getFlankMP( MiniConvRate ) + " (" + CurVee.GetAdjustedFlankMP( false, true, MiniConvRate ) + ")", p[PrintConsts.RUNMP].x, p[PrintConsts.RUNMP].y ); + } + } else { + graphics.drawString( CurVee.getFlankMP( MiniConvRate ) + "", p[PrintConsts.RUNMP].x, p[PrintConsts.RUNMP].y ); + } + // Movement and Engine if ( !CurVee.IsVTOL() ) { graphics.drawString( CurVee.GetMotiveLookupName() + "" + CurVee.GetChassisModifierString(), p[19].x, p[19].y ); diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index b8b5483f..587e85d5 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -1582,6 +1582,18 @@ public int GetAdjustedFlankMP( boolean BV, boolean MASCTSM ) { return retval; } + public int GetAdjustedFlankMP( boolean BV, boolean MASCTSM, int MiniMult ) { + // this had to become more complicated because of the peculiar + // idiosyncracies of the BV system. Stupid. + // this method provided for miniatures-scale printing + MechModifier m = GetTotalModifiers( BV, MASCTSM ); + int WalkValue = GetAdjustedCruiseMP( BV, MASCTSM ) * MiniMult; + double Multiplier = 1.5 + m.RunningMultiplier(); + int retval = (int) Math.floor( WalkValue * Multiplier + 0.5 ) + m.RunningAdder(); + if( retval < 0 ) { return 0; } + return retval; + } + public void SetRulesLevel( int r ) { if( Omni ) { CurLoadout.SetRulesLevel( r ); From 6e9d909827620984af8f5da7b65d4638e62f9ca0 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Fri, 27 Jan 2023 17:40:42 -0700 Subject: [PATCH 032/199] Fix MP output and Clan Case --- .../src/main/java/components/CVLoadout.java | 7 ++++ .../main/java/components/CombatVehicle.java | 12 +++--- .../src/main/java/filehandlers/CVReader.java | 22 +++++++---- .../main/java/filehandlers/CVTXTWriter.java | 37 +++++++++++++------ .../src/main/java/filehandlers/CVWriter.java | 4 +- 5 files changed, 55 insertions(+), 27 deletions(-) diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index 268fc7f9..e019348f 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -926,8 +926,15 @@ public boolean IsUsingClanCASE() { } public void SetClanCASE(boolean b) { + UsingCASE = b; UsingClanCASE = b; Case.SetClan(b); + Remove(Case); + try { + AddTo(Case, LocationIndex.CV_LOC_BODY); + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } Owner.SetChanged( true ); } diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index 587e85d5..b6c2a20a 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -1738,14 +1738,14 @@ public String GetChatInfo() { info += GetTonnage() + "t, "; // MP info += getCruiseMP(); - //if( getCruiseMP() != GetAdjustedWalkingMP( false, true ) ) { - // info += "[" + GetAdjustedWalkingMP( false, true ) + "]"; - //} + if( getCruiseMP() != GetAdjustedCruiseMP( false, true ) ) { + info += "[" + GetAdjustedCruiseMP( false, true ) + "]"; + } info += "/"; info += getFlankMP(); - //if( getFlankMP() != GetAdjustedRunningMP( false, true ) ) { - // info += "[" + GetAdjustedRunningMP( false, true ) + "]"; - //} + if( getFlankMP() != GetAdjustedFlankMP( false, true ) ) { + info += "[" + GetAdjustedFlankMP( false, true ) + "]"; + } if ( CurLoadout.GetJumpJets().GetNumJJ() > 0 ) { info += "/" + CurLoadout.GetJumpJets().GetNumJJ(); //if( CurLoadout.GetJumpJets().GetNumJJ() != this.GetAdjustedJumpingMP( false ) ) { diff --git a/sswlib/src/main/java/filehandlers/CVReader.java b/sswlib/src/main/java/filehandlers/CVReader.java index 319169b9..632d918a 100644 --- a/sswlib/src/main/java/filehandlers/CVReader.java +++ b/sswlib/src/main/java/filehandlers/CVReader.java @@ -419,7 +419,7 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) // take care of Clan CASE on previous save file versions if( SaveFileVersion < 1 ) { // this will fail if Inner Sphere, so we're safe - //m.GetLoadout().SetClanCASE( true ); + m.GetLoadout().SetClanCASE( true ); } n = n.item( 0 ).getChildNodes(); LocationIndex ltc = new LocationIndex(); @@ -428,7 +428,7 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) if( n.item( i ).getNodeName().equals( "source" ) ) { m.setSource( n.item( i ).getTextContent() ); } else if( n.item( i ).getNodeName().equals( "clancase" ) ) { - //m.GetLoadout().SetClanCASE( ParseBoolean( n.item( i ).getTextContent() ) ); + m.GetLoadout().SetClanCASE( ParseBoolean( n.item( i ).getTextContent() ) ); } else if( n.item( i ).getNodeName().equals( "heatsinks" ) ) { map = n.item( i ).getAttributes(); int numhs = Integer.parseInt( map.getNamedItem( "number" ).getTextContent() ); @@ -553,8 +553,11 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) } ltc = l; } else if( eType.equals( "CASE" ) ) { - m.GetLoadout().SetISCASE(); - m.GetLoadout().SetClanCASE(( m.GetTechBase() == AvailableCode.TECH_CLAN)); + if (m.GetLoadout().IsUsingClanCASE()) { + m.GetLoadout().SetClanCASE(true); + } else { + m.GetLoadout().SetISCASE(); + } } else if( eType.equals( "Supercharger" ) ) { m.GetLoadout().SetSupercharger( true ); } @@ -873,7 +876,7 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) // take care of Clan CASE on previous save file versions if( SaveFileVersion < 1 ) { // this will fail if Inner Sphere, so we're safe - //m.GetLoadout().SetClanCASE( true ); + m.GetLoadout().SetClanCASE( true ); } if( SaveFileVersion < 2 ) { m.setSource( Source ); @@ -901,7 +904,7 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) } } } else if( n.item( i ).getNodeName().equals( "clancase" ) ) { - //m.GetLoadout().SetClanCASE( ParseBoolean( n.item( i ).getTextContent() ) ); + m.GetLoadout().SetClanCASE( ParseBoolean( n.item( i ).getTextContent() ) ); } else if( n.item( i ).getNodeName().equals( "heatsinks" ) ) { hsLoc.clear(); map = n.item( i ).getAttributes(); @@ -1021,8 +1024,11 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) } ltc = l; } else if( eType.equals( "CASE" ) ) { - m.GetLoadout().SetISCASE(); - m.GetLoadout().SetClanCASE(( m.GetTechBase() == AvailableCode.TECH_CLAN)); + if (m.GetLoadout().IsUsingClanCASE()) { + m.GetLoadout().SetClanCASE(true); + } else { + m.GetLoadout().SetISCASE(); + } } else if( eType.equals( "Supercharger" ) ) { m.GetLoadout().SetSupercharger( true ); } diff --git a/sswlib/src/main/java/filehandlers/CVTXTWriter.java b/sswlib/src/main/java/filehandlers/CVTXTWriter.java index 8dcdf3c3..687cfb6b 100644 --- a/sswlib/src/main/java/filehandlers/CVTXTWriter.java +++ b/sswlib/src/main/java/filehandlers/CVTXTWriter.java @@ -112,13 +112,8 @@ public void WriteTXT( String filename ) throws IOException { } public String GetChatStats( CombatVehicle m ) { - // a fun convenience routine for those who talk in chat or forums. - String retval = ""; - - // pondering some sort of GetChatName() for abplaceables. - retval += m.GetTonnage() + " tons, " + m.GetAdjustedCruiseMP( false, true ) + "/" + m.GetAdjustedFlankMP( false, true ); //+ "/" + m.GetAdjustedJumpingMP( false ); - - return retval; + // !!! DO NOT USE THIS METHOD, INSTEAD UPDATE CombatVehicle.GetChatInfo(); + return ""; } public String GetTextExport() { @@ -150,8 +145,18 @@ public String GetTextExport() { //retval += "Chassis: " + CurVee.GetChassisModel() + " " + CurVee.GetIntStruc().CritName() + NL; retval += "Power Plant: " + CurVee.GetEngineManufacturer() + " " + CurVee.GetEngine().GetRating() + " " + CurVee.GetEngine() + NL; - retval += "Cruise Speed: " + CommonTools.FormatSpeed( CurVee.GetAdjustedCruiseMP(false, true) * 10.8 ) + " km/h" + NL; - retval += "Flanking Speed: " + CommonTools.FormatSpeed( CurVee.GetAdjustedFlankMP(false, true) * 10.8 ) + " km/h" + NL; + //retval += "Cruise Speed: " + CommonTools.FormatSpeed( CurVee.GetAdjustedCruiseMP(false, true) * 10.8 ) + " km/h" + NL; + //retval += "Flanking Speed: " + CommonTools.FormatSpeed( CurVee.GetAdjustedFlankMP(false, true) * 10.8 ) + " km/h" + NL; + if( CurVee.GetAdjustedCruiseMP( false, true ) != CurVee.getCruiseMP() ) { + retval += "Cruise Speed: " + CommonTools.FormatSpeed( CurVee.getCruiseMP() * 10.8 ) + " km/h (" + CommonTools.FormatSpeed( CurVee.GetAdjustedCruiseMP( false, true ) * 10.8 ) + " km/h)" + NL; + } else { + retval += "Cruise Speed: " + CommonTools.FormatSpeed( CurVee.getCruiseMP() * 10.8 ) + " km/h" + NL; + } + if( CurVee.GetAdjustedFlankMP( false, true ) != CurVee.getFlankMP() ) { + retval += "Maximum Speed: " + CommonTools.FormatSpeed( CurVee.getFlankMP() * 10.8 ) + " km/h (" + CommonTools.FormatSpeed( CurVee.GetAdjustedFlankMP( false, true ) * 10.8 ) + " km/h)" + NL; + } else { + retval += "Maximum Speed: " + CommonTools.FormatSpeed( CurVee.getFlankMP() * 10.8 ) + " km/h" + NL; + } if ( CurVee.GetJumpJets().GetNumJJ() > 0 ) { retval += "Jump Jets: " + CurVee.GetJJModel() + NL; retval += " Jump Capacity: " + GetJumpJetDistanceLine() + NL; @@ -214,8 +219,18 @@ public String GetMiniTextExport() { retval += "--------------------------------------------------------------------------------" + NL; retval += String.format( "Internal Structure: %1$-28s %2$3s points %3" + tformat, CurVee.GetIntStruc().CritName(), CurVee.GetIntStruc().GetTotalPoints(), CurVee.GetIntStruc().GetTonnage() ) + NL; retval += String.format( "Engine: %1$-28s %2$3s %3" + tformat, FileCommon.GetExportName( CurVee, CurVee.GetEngine() ), CurVee.GetEngine().GetRating(), CurVee.GetEngine().GetTonnage() ) + NL; - retval += " Cruise MP: " + CurVee.GetAdjustedCruiseMP(false, true) + NL; - retval += " Flank MP: " + CurVee.GetAdjustedFlankMP(false, true) + NL; +// retval += " Cruise MP: " + CurVee.GetAdjustedCruiseMP(false, true) + NL; +// retval += " Flank MP: " + CurVee.GetAdjustedFlankMP(false, true) + NL; + if( CurVee.GetAdjustedCruiseMP( false, true ) != CurVee.getCruiseMP() ) { + retval += "Cruise MP: " + CommonTools.FormatSpeed( CurVee.getCruiseMP() ) + " (" + CommonTools.FormatSpeed( CurVee.GetAdjustedCruiseMP( false, true ) * 10.8 ) + " km/h)" + NL; + } else { + retval += "Cruise MP: " + CommonTools.FormatSpeed( CurVee.getCruiseMP() ) + NL; + } + if( CurVee.GetAdjustedFlankMP( false, true ) != CurVee.getFlankMP() ) { + retval += "Flank MP: " + CommonTools.FormatSpeed( CurVee.getFlankMP() ) + " (" + CommonTools.FormatSpeed( CurVee.GetAdjustedFlankMP( false, true ) * 10.8 ) + " km/h)" + NL; + } else { + retval += "Flank MP: " + CommonTools.FormatSpeed( CurVee.getFlankMP() ) + NL; + } if( CurVee.GetJumpJets().GetNumJJ() > 0 ) { retval += " Jumping MP: " + GetJumpingMPLine() + " " + GetJumpJetTypeLine() + NL; retval += String.format( " %1$-68s %2$6.2f", "Jump Jet Locations: " + FileCommon.GetJumpJetLocations( CurVee ), CurVee.GetJumpJets().GetTonnage() ) + NL; diff --git a/sswlib/src/main/java/filehandlers/CVWriter.java b/sswlib/src/main/java/filehandlers/CVWriter.java index 358fdb0e..60c51409 100644 --- a/sswlib/src/main/java/filehandlers/CVWriter.java +++ b/sswlib/src/main/java/filehandlers/CVWriter.java @@ -243,8 +243,8 @@ public void WriteXML( BufferedWriter FR ) throws IOException { FR.newLine(); FR.write( tab + tab + "" + CurUnit.GetTotalCost() + "" ); FR.newLine(); - //FR.write( tab + tab + "" + FileCommon.GetBoolean( CurUnit.GetLoadout().IsUsingClanCASE() ) + "" ); - //FR.newLine(); + FR.write( tab + tab + "" + FileCommon.GetBoolean( CurUnit.GetLoadout().IsUsingClanCASE() ) + "" ); + FR.newLine(); if( CurUnit.GetJumpJets().GetNumJJ() > CurUnit.GetJumpJets().GetBaseLoadoutNumJJ() ) { FR.write( tab + tab + "" ); FR.newLine(); From 99da92f876d74c6d6b9f74ef7d196172a51762fb Mon Sep 17 00:00:00 2001 From: George Blouin Date: Fri, 27 Jan 2023 18:20:37 -0700 Subject: [PATCH 033/199] Ammo & Equipment Changes for Maelwys --- Data/Equipment/ammunition.json | 14 +++++++------- Data/Equipment/equipment.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Data/Equipment/ammunition.json b/Data/Equipment/ammunition.json index e650fd6b..6db49066 100644 --- a/Data/Equipment/ammunition.json +++ b/Data/Equipment/ammunition.json @@ -8935,7 +8935,7 @@ "ActualName": "Ammo: Fluid Gun (Coolant)", "CritName": "@ Fluid Gun (Coolant)", "LookupName": "@ Fluid Gun (Coolant)", - "MegaMekName": "FluidGunCoolantAmmo", + "MegaMekName": "ISFluidGun Ammo", "BookRef": "Tactical Operations", "Tonnage": 1.0, "Cost": 3000.0, @@ -9012,7 +9012,7 @@ "ActualName": "Ammo: Fluid Gun (Corrosive)", "CritName": "@ Fluid Gun (Corrosive)", "LookupName": "@ Fluid Gun (Corrosive)", - "MegaMekName": "FluidGunCorrosiveAmmo", + "MegaMekName": "ISFluidGun Ammo", "BookRef": "Tactical Operations", "Tonnage": 1.0, "Cost": 5000.0, @@ -9089,7 +9089,7 @@ "ActualName": "Ammo: Fluid Gun (Flame Retardant Foam)", "CritName": "@ Fluid Gun (Flm Rtrdnt)", "LookupName": "@ Fluid Gun (Flame Retardant Foam)", - "MegaMekName": "FluidGunFoamAmmo", + "MegaMekName": "ISFluidGun Ammo", "BookRef": "Tactical Operations", "Tonnage": 1.0, "Cost": 1000.0, @@ -9166,7 +9166,7 @@ "ActualName": "Ammo: Fluid Gun (Inferno Fuel)", "CritName": "@ Fluid Gun (Inferno Fuel)", "LookupName": "@ Fluid Gun (Inferno Fuel)", - "MegaMekName": "FluidGunInfernoFuelAmmo", + "MegaMekName": "ISFluidGun Ammo", "BookRef": "Tactical Operations", "Tonnage": 1.0, "Cost": 2000.0, @@ -9243,7 +9243,7 @@ "ActualName": "Ammo: Fluid Gun (Oil Slick)", "CritName": "@ Fluid Gun (Oil Slick)", "LookupName": "@ Fluid Gun (Oil Slick)", - "MegaMekName": "FluidGunOilSlickAmmo", + "MegaMekName": "ISFluidGun Ammo", "BookRef": "Tactical Operations", "Tonnage": 1.0, "Cost": 2000.0, @@ -9320,7 +9320,7 @@ "ActualName": "Ammo: Fluid Gun (Paint/Obscurant)", "CritName": "@ Fluid Gun (Pnt/Obscrnt)", "LookupName": "@ Fluid Gun (Paint/Obscurant)", - "MegaMekName": "FluidGunPaintAmmo", + "MegaMekName": "ISFluidGun Ammo", "BookRef": "Tactical Operations", "Tonnage": 1.0, "Cost": 1000.0, @@ -9397,7 +9397,7 @@ "ActualName": "Ammo: Fluid Gun (Water)", "CritName": "@ Fluid Gun (Water)", "LookupName": "@ Fluid Gun (Water)", - "MegaMekName": "FluidGunWaterAmmo", + "MegaMekName": "ISFluidGun Ammo", "BookRef": "Tactical Operations", "Tonnage": 1.0, "Cost": 500.0, diff --git a/Data/Equipment/equipment.json b/Data/Equipment/equipment.json index b08f7cab..1eabe33b 100644 --- a/Data/Equipment/equipment.json +++ b/Data/Equipment/equipment.json @@ -5071,7 +5071,7 @@ "CritName": "Cargo, Liquid", "Type": "IE", "LookupName": "Cargo, Liquid", - "MegaMekName": "CargoLiquid", + "MegaMekName": "Liquid Storage", "BookReference": "Tech Manual", "ChatName": "LqdCrgo", "Specials": "-", From 7f26c3861adf9ae3cec3500024523c2f4100aca1 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Fri, 27 Jan 2023 18:21:45 -0700 Subject: [PATCH 034/199] Remove the kph --- sswlib/src/main/java/filehandlers/CVTXTWriter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sswlib/src/main/java/filehandlers/CVTXTWriter.java b/sswlib/src/main/java/filehandlers/CVTXTWriter.java index 687cfb6b..1c57088c 100644 --- a/sswlib/src/main/java/filehandlers/CVTXTWriter.java +++ b/sswlib/src/main/java/filehandlers/CVTXTWriter.java @@ -222,12 +222,12 @@ public String GetMiniTextExport() { // retval += " Cruise MP: " + CurVee.GetAdjustedCruiseMP(false, true) + NL; // retval += " Flank MP: " + CurVee.GetAdjustedFlankMP(false, true) + NL; if( CurVee.GetAdjustedCruiseMP( false, true ) != CurVee.getCruiseMP() ) { - retval += "Cruise MP: " + CommonTools.FormatSpeed( CurVee.getCruiseMP() ) + " (" + CommonTools.FormatSpeed( CurVee.GetAdjustedCruiseMP( false, true ) * 10.8 ) + " km/h)" + NL; + retval += "Cruise MP: " + CommonTools.FormatSpeed( CurVee.getCruiseMP() ) + " (" + CommonTools.FormatSpeed( CurVee.GetAdjustedCruiseMP( false, true ) ) + ")" + NL; } else { retval += "Cruise MP: " + CommonTools.FormatSpeed( CurVee.getCruiseMP() ) + NL; } if( CurVee.GetAdjustedFlankMP( false, true ) != CurVee.getFlankMP() ) { - retval += "Flank MP: " + CommonTools.FormatSpeed( CurVee.getFlankMP() ) + " (" + CommonTools.FormatSpeed( CurVee.GetAdjustedFlankMP( false, true ) * 10.8 ) + " km/h)" + NL; + retval += "Flank MP: " + CommonTools.FormatSpeed( CurVee.getFlankMP() ) + " (" + CommonTools.FormatSpeed( CurVee.GetAdjustedFlankMP( false, true ) ) + ")" + NL; } else { retval += "Flank MP: " + CommonTools.FormatSpeed( CurVee.getFlankMP() ) + NL; } From 31453b3f8c69aa82842195550bfea8226f18af6d Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 28 Jan 2023 10:12:52 -0700 Subject: [PATCH 035/199] Interface Cockpit wo Gyro Make the Gyro return a Standard Gyro result --- sswlib/src/main/java/components/Gyro.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sswlib/src/main/java/components/Gyro.java b/sswlib/src/main/java/components/Gyro.java index cb6d7fdb..2a9a4013 100644 --- a/sswlib/src/main/java/components/Gyro.java +++ b/sswlib/src/main/java/components/Gyro.java @@ -177,6 +177,15 @@ public double GetCurOffensiveBV( boolean UseRear, boolean UseTC, boolean UseAES, } public double GetDefensiveBV() { + //IntOps p.187 "Gyroless ’Mechs: If a ’Mech with a Machina Domini Interface Cockpit is not equipped with a gyro, + //treat the unit as if it is equipped with a standard gyro when finding its Defensive Battle Rating." + if( CurConfig instanceof stGyroNone) { + if(((Mech)Owner).GetCockpit().GetCurrentState() instanceof stCockpitInterface) { + Gyro temp = new Gyro((Mech)Owner); + temp.SetStandard(); + return temp.GetDefensiveBV(); + } + } if( IsArmored() ) { double result = Owner.GetTonnage() * CurConfig.GetBVMult(); result += result * NumCrits() * 0.05; From 4e76c609182cf40b31170ea46026d4e056ca9618 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 28 Jan 2023 10:42:53 -0700 Subject: [PATCH 036/199] Load Pulse Modules --- sswlib/src/main/java/filehandlers/CVReader.java | 6 ++++++ sswlib/src/main/java/filehandlers/MechReader.java | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/sswlib/src/main/java/filehandlers/CVReader.java b/sswlib/src/main/java/filehandlers/CVReader.java index 319169b9..1b84401d 100644 --- a/sswlib/src/main/java/filehandlers/CVReader.java +++ b/sswlib/src/main/java/filehandlers/CVReader.java @@ -1180,6 +1180,7 @@ private abPlaceable GetEquipmentByName( String name, String type, CombatVehicle if( type.equals( "energy" ) ) { boolean ppccap = false; boolean insulated = false; + boolean pulsemodule = false; if( name.contains( " + PPC Capacitor" ) ) { name = name.substring( 0, name.length() - 16 ); ppccap = true; @@ -1192,6 +1193,10 @@ private abPlaceable GetEquipmentByName( String name, String type, CombatVehicle name = name.substring( 0, name.length() - 12 ); insulated = true; } + if( name.contains(" + Pulse Module")) { + name = name.replace(" + Pulse Module", ""); + pulsemodule = true; + } if( name.contains( "Variable Speed Laser" ) ) { name = name.replace( "Variable Speed Laser", "Variable Speed Pulse Laser" ); } @@ -1203,6 +1208,7 @@ private abPlaceable GetEquipmentByName( String name, String type, CombatVehicle if( retval != null ) { ((RangedWeapon) retval).UseCapacitor( ppccap ); ((RangedWeapon) retval).UseInsulator( insulated ); + ((RangedWeapon) retval).UsePulseModule( pulsemodule); } } else if( type.equals( "ballistic" ) ) { boolean caseless = false; diff --git a/sswlib/src/main/java/filehandlers/MechReader.java b/sswlib/src/main/java/filehandlers/MechReader.java index 489a68ac..02fac9b5 100644 --- a/sswlib/src/main/java/filehandlers/MechReader.java +++ b/sswlib/src/main/java/filehandlers/MechReader.java @@ -1868,6 +1868,7 @@ private abPlaceable GetEquipmentByName( String name, String type, Mech m ) { if( type.equals( "energy" ) ) { boolean ppccap = false; boolean insulated = false; + boolean pulsemodule = false; if( name.contains( " + PPC Capacitor" ) ) { name = name.substring( 0, name.length() - 16 ); ppccap = true; @@ -1880,6 +1881,10 @@ private abPlaceable GetEquipmentByName( String name, String type, Mech m ) { name = name.substring( 0, name.length() - 12 ); insulated = true; } + if( name.contains(" + Pulse Module")) { + name = name.replace(" + Pulse Module", ""); + pulsemodule = true; + } if( name.contains( "Variable Speed Laser" ) ) { name = name.replace( "Variable Speed Laser", "Variable Speed Pulse Laser" ); } @@ -1891,6 +1896,7 @@ private abPlaceable GetEquipmentByName( String name, String type, Mech m ) { if( retval != null ) { ((RangedWeapon) retval).UseCapacitor( ppccap ); ((RangedWeapon) retval).UseInsulator( insulated ); + ((RangedWeapon) retval).UsePulseModule( pulsemodule); } } else if( type.equals( "ballistic" ) ) { boolean caseless = false; From 52be4ced687aacf50865ca9c4fcf71ca610c1211 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 28 Jan 2023 10:54:01 -0700 Subject: [PATCH 037/199] Set Armor Level for IM to Experimental --- sswlib/src/main/java/states/stArmorHD.java | 2 +- sswlib/src/main/java/states/stArmorISAB.java | 2 +- sswlib/src/main/java/states/stArmorISBR.java | 2 +- sswlib/src/main/java/states/stArmorISFF.java | 2 +- sswlib/src/main/java/states/stArmorISHF.java | 2 +- sswlib/src/main/java/states/stArmorISIR.java | 2 +- sswlib/src/main/java/states/stArmorISLF.java | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sswlib/src/main/java/states/stArmorHD.java b/sswlib/src/main/java/states/stArmorHD.java index 21e4eddf..b24fdcc2 100644 --- a/sswlib/src/main/java/states/stArmorHD.java +++ b/sswlib/src/main/java/states/stArmorHD.java @@ -45,7 +45,7 @@ public stArmorHD() { AC.SetCLCodes( 'E', 'X', 'X', 'X', 'E' ); AC.SetCLDates( 0, 0, false, 3126, 0, 0, false, false ); AC.SetCLFactions( "", "", "--", "" ); - AC.SetRulesLevels( AvailableCode.RULES_ADVANCED, AvailableCode.RULES_ADVANCED, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED ); + AC.SetRulesLevels( AvailableCode.RULES_ADVANCED, AvailableCode.RULES_EXPERIMENTAL, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED ); AC.SetPBMAllowed(true); } diff --git a/sswlib/src/main/java/states/stArmorISAB.java b/sswlib/src/main/java/states/stArmorISAB.java index e27e0d40..aaf918ef 100644 --- a/sswlib/src/main/java/states/stArmorISAB.java +++ b/sswlib/src/main/java/states/stArmorISAB.java @@ -42,7 +42,7 @@ public stArmorISAB() { AC.SetISCodes( 'E', 'X', 'X', 'X', 'E' ); AC.SetISDates( 0, 0, false, 3114, 0, 0, false, false ); AC.SetISFactions( "", "", "DC", "" ); - AC.SetRulesLevels( AvailableCode.RULES_ADVANCED, AvailableCode.RULES_ADVANCED, AvailableCode.RULES_ADVANCED, AvailableCode.RULES_ADVANCED, AvailableCode.RULES_ADVANCED ); + AC.SetRulesLevels( AvailableCode.RULES_ADVANCED, AvailableCode.RULES_EXPERIMENTAL, AvailableCode.RULES_ADVANCED, AvailableCode.RULES_ADVANCED, AvailableCode.RULES_ADVANCED ); AC.SetPBMAllowed(true); } diff --git a/sswlib/src/main/java/states/stArmorISBR.java b/sswlib/src/main/java/states/stArmorISBR.java index 21c7e056..82239533 100644 --- a/sswlib/src/main/java/states/stArmorISBR.java +++ b/sswlib/src/main/java/states/stArmorISBR.java @@ -42,7 +42,7 @@ public stArmorISBR() { AC.SetISCodes( 'E', 'X', 'X', 'X', 'E' ); AC.SetISDates( 0, 0, false, 3131, 0, 0, false, false ); AC.SetISFactions( "", "", "DC", "" ); - AC.SetRulesLevels( AvailableCode.RULES_ADVANCED, AvailableCode.RULES_ADVANCED, AvailableCode.RULES_ADVANCED, AvailableCode.RULES_ADVANCED, AvailableCode.RULES_ADVANCED ); + AC.SetRulesLevels( AvailableCode.RULES_ADVANCED, AvailableCode.RULES_EXPERIMENTAL, AvailableCode.RULES_ADVANCED, AvailableCode.RULES_ADVANCED, AvailableCode.RULES_ADVANCED ); AC.SetPBMAllowed(true); } diff --git a/sswlib/src/main/java/states/stArmorISFF.java b/sswlib/src/main/java/states/stArmorISFF.java index badc42b5..f8ebae63 100644 --- a/sswlib/src/main/java/states/stArmorISFF.java +++ b/sswlib/src/main/java/states/stArmorISFF.java @@ -42,7 +42,7 @@ public stArmorISFF() { AC.SetISCodes( 'E', 'D', 'F', 'D', 'C' ); AC.SetISDates( 0, 0, false, 2571, 2810, 3040, true, true ); AC.SetISFactions( "", "", "TH", "DC" ); - AC.SetRulesLevels( AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_ADVANCED, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT ); + AC.SetRulesLevels( AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_EXPERIMENTAL, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT ); AC.SetPBMAllowed(true); } diff --git a/sswlib/src/main/java/states/stArmorISHF.java b/sswlib/src/main/java/states/stArmorISHF.java index 6dfc9914..f24a0dff 100644 --- a/sswlib/src/main/java/states/stArmorISHF.java +++ b/sswlib/src/main/java/states/stArmorISHF.java @@ -38,7 +38,7 @@ public stArmorISHF() { AC.SetISCodes( 'E', 'X', 'X', 'E', 'D' ); AC.SetISDates( 0, 0, false, 3056, 0, 0, false, false ); AC.SetISFactions( "", "", "LA", "" ); - AC.SetRulesLevels( AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_ADVANCED, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT ); + AC.SetRulesLevels( AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_EXPERIMENTAL, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT ); AC.SetPBMAllowed(true); } diff --git a/sswlib/src/main/java/states/stArmorISIR.java b/sswlib/src/main/java/states/stArmorISIR.java index a38bb303..5ab19f3c 100644 --- a/sswlib/src/main/java/states/stArmorISIR.java +++ b/sswlib/src/main/java/states/stArmorISIR.java @@ -45,7 +45,7 @@ public stArmorISIR() { /*AC.SetCLCodes( 'E', 'X', 'X', 'X', 'E' ); AC.SetCLDates( 0, 0, false, 3126, 0, 0, false, false ); AC.SetCLFactions( "", "", "TH", "" );*/ - AC.SetRulesLevels( AvailableCode.RULES_ADVANCED, AvailableCode.RULES_ADVANCED, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED ); + AC.SetRulesLevels( AvailableCode.RULES_ADVANCED, AvailableCode.RULES_EXPERIMENTAL, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED ); AC.SetPBMAllowed(true); } diff --git a/sswlib/src/main/java/states/stArmorISLF.java b/sswlib/src/main/java/states/stArmorISLF.java index 04d6a8c3..f285b193 100644 --- a/sswlib/src/main/java/states/stArmorISLF.java +++ b/sswlib/src/main/java/states/stArmorISLF.java @@ -42,7 +42,7 @@ public stArmorISLF() { AC.SetISCodes( 'F', 'X', 'X', 'E', 'D' ); AC.SetISDates( 0, 0, false, 3055, 0, 0, false, false ); AC.SetISFactions( "", "", "FW", "" ); - AC.SetRulesLevels( AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_ADVANCED, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT ); + AC.SetRulesLevels( AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_EXPERIMENTAL, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT ); AC.SetPBMAllowed(true); } From c1fe72307d6fda3c4d8a6a65ec7bd21bc13f9978 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 28 Jan 2023 11:06:35 -0700 Subject: [PATCH 038/199] Update SSW Master Url In the open dialogs so that new users can actually find the files they need. --- saw/src/main/java/saw/gui/dlgFiles.java | 2 +- ssw/src/main/java/ssw/gui/dlgSSWFiles.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/saw/src/main/java/saw/gui/dlgFiles.java b/saw/src/main/java/saw/gui/dlgFiles.java index 24bff2c7..fdf25b9a 100644 --- a/saw/src/main/java/saw/gui/dlgFiles.java +++ b/saw/src/main/java/saw/gui/dlgFiles.java @@ -56,7 +56,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); - jLabel1.setText("

Solaris Armorwerks needs to know where you have placed your Unit files.

If you have not downloaded the zip file containing these files yet please go to

http://www.solarisskunkwerks.com/downloads


and download the Master file available there.


Once this file has downloaded you can unzip it wherever you would like as the next step will be to tell SAW where you put them.

"); + jLabel1.setText("

Solaris Armorwerks needs to know where you have placed your Unit files.

If you have not downloaded the zip file containing these files yet please go to

https://github.com/Solaris-Skunk-Werks/SSW-Master/archive/refs/heads/master.zip


and download the Master file available there.


Once this file has downloaded you can unzip it wherever you would like as the next step will be to tell SAW where you put them.

"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); diff --git a/ssw/src/main/java/ssw/gui/dlgSSWFiles.java b/ssw/src/main/java/ssw/gui/dlgSSWFiles.java index a46c7230..e8e209a2 100644 --- a/ssw/src/main/java/ssw/gui/dlgSSWFiles.java +++ b/ssw/src/main/java/ssw/gui/dlgSSWFiles.java @@ -56,7 +56,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); - jLabel1.setText("\n

Solaris Skunkwerks needs to know where you have placed your Mech files.

\n

If you have not downloaded the zip file containing these files yet please go to
\n

http://www.solarisskunkwerks.com/downloads


\n and download the Master file available there.

\n
\n

Once this file has downloaded you can unzip it wherever you would like as the next step will be to tell SSW where you put them.

"); + jLabel1.setText("\n

Solaris Skunkwerks needs to know where you have placed your Mech files.

\n

If you have not downloaded the zip file containing these files yet please go to
\n

https://github.com/Solaris-Skunk-Werks/SSW-Master/archive/refs/heads/master.zip


\n and download the Master file available there.

\n
\n

Once this file has downloaded you can unzip it wherever you would like as the next step will be to tell SSW where you put them.

"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); From 5bb27389c1a11b4952aac953f552901d61decef0 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 28 Jan 2023 17:48:28 -0700 Subject: [PATCH 039/199] Make MGArrays available to CV by changing the rules level for CV --- sswlib/src/main/java/common/EquipmentFactory.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sswlib/src/main/java/common/EquipmentFactory.java b/sswlib/src/main/java/common/EquipmentFactory.java index b33e7207..f777ea7f 100644 --- a/sswlib/src/main/java/common/EquipmentFactory.java +++ b/sswlib/src/main/java/common/EquipmentFactory.java @@ -558,7 +558,7 @@ public final void BuildMGArrays() { a.SetCLFactions( "", "", "CSF", "" ); a.SetPBMAllowed( true ); a.SetPIMAllowed( true ); - a.SetRulesLevels( AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED ); + a.SetRulesLevels( AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED ); // MGA light machine gun addBW = GetRangedWeaponByName( "(IS) Light Machine Gun", null ); @@ -611,7 +611,7 @@ public final void BuildMGArrays() { a.SetCLFactions( "--", "--", "CDS", "--" ); a.SetPBMAllowed( true ); a.SetPIMAllowed( true ); - a.SetRulesLevels( AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED ); + a.SetRulesLevels( AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED ); // LMGA light machine gun addBW = GetRangedWeaponByName( "(CL) Light Machine Gun", null ); From f8fb145b1d6b09ce824770c5bfba2735bd5acc7e Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 28 Jan 2023 18:20:04 -0700 Subject: [PATCH 040/199] Add the guns and block body --- sswlib/src/main/java/components/CVLoadout.java | 12 ++++++++++++ sswlib/src/main/java/components/MGArray.java | 5 +++++ 2 files changed, 17 insertions(+) diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index ca39b21b..3b8e6acf 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -391,6 +391,12 @@ public void AddTo(abPlaceable p, int Loc) throws Exception { default: throw new Exception( "Location not recognized or not an integer\nwhile placing " + p.CritName() ); } + // add in the machine guns if this is an array + if( p instanceof MGArray ) { + for( int i = 0; i < ((MGArray) p).GetNumMGs(); i++ ) { + AddTo(((MGArray) p).GetMGs()[i], Loc); + } + } if ( p instanceof RangedWeapon ) { if ( ((RangedWeapon)p).IsTCCapable() ) TCList.add(p); @@ -667,6 +673,12 @@ public boolean UnallocateAll(abPlaceable p, boolean override) { SponsonTurretRightItems.remove(p); NonCore.remove(p); TCList.remove(p); + // if the item is an MG Array, check for it's MGs and unallocate + if( p instanceof MGArray ) { + for( int i = 0; i < ((MGArray) p).GetMGs().length; i++ ) { + UnallocateAll( ((MGArray) p).GetMGs()[i], true ); + } + } Owner.SetChanged( true ); return true; } diff --git a/sswlib/src/main/java/components/MGArray.java b/sswlib/src/main/java/components/MGArray.java index 94c0d397..22b6e404 100644 --- a/sswlib/src/main/java/components/MGArray.java +++ b/sswlib/src/main/java/components/MGArray.java @@ -525,4 +525,9 @@ private RangedWeapon Copy( RangedWeapon b ) { public String toString() { return GetName(); } + + @Override + public boolean CanAllocCVBody() { + return false; + } } From 5ae2f4df08060edc87036c78fef5ff24079c1c83 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 28 Jan 2023 18:21:58 -0700 Subject: [PATCH 041/199] Update Heavy Duty Pile Driver to "Pile Driver" for the MM name. --- Data/Equipment/physicals.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Data/Equipment/physicals.json b/Data/Equipment/physicals.json index 08565395..d612de1b 100644 --- a/Data/Equipment/physicals.json +++ b/Data/Equipment/physicals.json @@ -1754,7 +1754,7 @@ "Heavy Duty Pile-Driver": { "ActualName": "Heavy Duty Pile-Driver", "CritName": "Heavy Duty Pile-Driver", - "MegaMekName": "HeavyDutyPile-Driver", + "MegaMekName": "Pile Driver", "LookupName": "Heavy Duty Pile-Driver", "ChatName": "HDPD", "Type": "PA", From 068279a92f2eee9838d3d002e9551fe34be5ed2c Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 28 Jan 2023 18:39:58 -0700 Subject: [PATCH 042/199] Don't list individual guns As it does not make sense on a CV with no critical slots. --- sswlib/src/main/java/components/CVLoadout.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index 3b8e6acf..fdd73c77 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -391,12 +391,6 @@ public void AddTo(abPlaceable p, int Loc) throws Exception { default: throw new Exception( "Location not recognized or not an integer\nwhile placing " + p.CritName() ); } - // add in the machine guns if this is an array - if( p instanceof MGArray ) { - for( int i = 0; i < ((MGArray) p).GetNumMGs(); i++ ) { - AddTo(((MGArray) p).GetMGs()[i], Loc); - } - } if ( p instanceof RangedWeapon ) { if ( ((RangedWeapon)p).IsTCCapable() ) TCList.add(p); From 6bec3038a613f2366cd4b0622525cecfdfd566db Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 28 Jan 2023 21:24:21 -0700 Subject: [PATCH 043/199] Fix Print view for MG Array Not sure why I had to do this as it works fine in SSW...but had to get the data and capture it. --- sswlib/src/main/java/Print/PrintConsts.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sswlib/src/main/java/Print/PrintConsts.java b/sswlib/src/main/java/Print/PrintConsts.java index 3d909a41..c74d64f3 100644 --- a/sswlib/src/main/java/Print/PrintConsts.java +++ b/sswlib/src/main/java/Print/PrintConsts.java @@ -448,6 +448,18 @@ private static ArrayList HandleLocation( CombatVehicle CurUnit, i // ATM, MML, Artemis, TC, etc PlaceableInfo factory = new PlaceableInfo(MiniConvRate, common.Constants.Vehicle); if ( p.Item instanceof ifWeapon ) { + //TODO: Why did I have to do this? It works fine for Mechs but didn't here + if (p.Item instanceof MGArray) { + MGArray temp =((MGArray) p.Item); + p.damage = temp.GetDamageShort() + ""; + p.rShort = temp.GetRangeShort() + ""; + p.rMed = temp.GetRangeMedium() + ""; + p.rLong = temp.GetRangeLong() + ""; + if( temp.GetSpecials().equals( "-" ) ) + p.damage += " [" + temp.GetType() + "]"; + else + p.specials = ("[" + temp.GetType() + ", " + temp.GetSpecials() + "]").replace(", -", ""); + } if( ((ifWeapon) p.Item).GetWeaponClass() == ifWeapon.W_MISSILE ) { if ( ((ifWeapon) p.Item).CritName().contains("ATM") ) { ArrayList t = new ArrayList(); From 68ad425c84f165a8932fdabfb8923b698d82a9dc Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 28 Jan 2023 21:43:50 -0700 Subject: [PATCH 044/199] Stop Division by Zero If the user hadn't added ammo this bombs out --- sswlib/src/main/java/battleforce/BattleForceTools.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sswlib/src/main/java/battleforce/BattleForceTools.java b/sswlib/src/main/java/battleforce/BattleForceTools.java index f81fb2e6..859364c5 100644 --- a/sswlib/src/main/java/battleforce/BattleForceTools.java +++ b/sswlib/src/main/java/battleforce/BattleForceTools.java @@ -168,7 +168,7 @@ public static String GetMovementString( ifBattleforce b ){ // at least 10 turns. If not, reduce the damage by 25%. if ( w.HasAmmo() && ! w.IsOneShot() ) { - if ( (b.GetAmmoCount( w.GetAmmoIndex() ) / b.GetWeaponCount(w.GetAmmoIndex()) ) < 10 ) + if ((b.GetWeaponCount(w.GetAmmoIndex()) == 0) || (b.GetAmmoCount( w.GetAmmoIndex() ) / b.GetWeaponCount(w.GetAmmoIndex()) < 10) ) { retval[BFConstants.BF_SHORT] *= 0.75; retval[BFConstants.BF_MEDIUM] *= 0.75; From 8dcd85adc549cb1077438e722ab4a568a9b474e1 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 28 Jan 2023 21:59:38 -0700 Subject: [PATCH 045/199] Don't Reset Loadout unless Omni selected --- saw/src/main/java/saw/gui/frmVee.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 824bfd6b..d9e669c9 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -9275,7 +9275,9 @@ private void mnuTextTROActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FI dlgTextExport Text = new dlgTextExport(this, true, CurVee); Text.setLocationRelativeTo(this); Text.setVisible(true); - CurVee.SetCurLoadout((String) cmbOmniVariant.getSelectedItem()); + if (cmbOmniVariant.isEnabled()) { + CurVee.SetCurLoadout((String) cmbOmniVariant.getSelectedItem()); + } SetSource = true; }//GEN-LAST:event_mnuTextTROActionPerformed From 561d02c5716d38a67d82c41ced40db982f2b0a21 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 28 Jan 2023 22:22:45 -0700 Subject: [PATCH 046/199] Correct space usage for MGArray on CVs --- sswlib/src/main/java/components/MGArray.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sswlib/src/main/java/components/MGArray.java b/sswlib/src/main/java/components/MGArray.java index 22b6e404..22d9f684 100644 --- a/sswlib/src/main/java/components/MGArray.java +++ b/sswlib/src/main/java/components/MGArray.java @@ -157,7 +157,7 @@ public int NumCrits() { } public int NumCVSpaces() { - return 1; + return 1 + NumMGs; } @Override From 235182fc3b9f08f1733fc7b72423f3a5e267e5de Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sun, 29 Jan 2023 18:06:46 -0700 Subject: [PATCH 047/199] Adding VTOL Jet Booster to SAW This shows the option, allows the user to select it and deselect it --- saw/src/main/java/saw/gui/frmVee.java | 41 ++++- saw/src/main/java/saw/gui/frmVeeWide.java | 35 +++- .../src/main/java/components/CVLoadout.java | 25 ++- .../src/main/java/components/VTOLBooster.java | 165 ++++++++++++++++++ .../src/main/java/components/ifCVLoadout.java | 3 + 5 files changed, 259 insertions(+), 10 deletions(-) create mode 100644 sswlib/src/main/java/components/VTOLBooster.java diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 824bfd6b..0d558c30 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -2229,7 +2229,11 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkJetBooster.setText("VTOL Jet Booster"); chkJetBooster.setEnabled(false); - + chkJetBooster.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + chkJetBoosterActionPerformed(evt); + } + }); chkSupercharger.setText("Supercharger"); chkSupercharger.setEnabled(false); chkSupercharger.addActionListener(new java.awt.event.ActionListener() { @@ -5571,7 +5575,6 @@ private void cmbRulesLevelActionPerformed(java.awt.event.ActionEvent evt) {//GEN BuildExpEquipmentSelector(); FixMPSpinner(); FixJJSpinnerModel(); - RefreshEquipment(); // now reset the combo boxes to the closest choices we previously selected LoadSelections(); @@ -5581,11 +5584,11 @@ private void cmbRulesLevelActionPerformed(java.awt.event.ActionEvent evt) {//GEN //RecalcHeatSinks(); RecalcArmor(); RecalcEquipment(); - RefreshEquipment(); } BuildTurretSelector(); // now refresh the information panes + RefreshEquipment(); RefreshSummary(); RefreshInfoPane(); SetWeaponChoosers(); @@ -5707,6 +5710,7 @@ private void BuildExpEquipmentSelector() { chkJetBooster, chkEscapePod, chkSponsonTurret }; + if (cmbRulesLevel.getSelectedIndex() > 1) { if (CurVee.CanUseSponson()) chkSponsonTurret.setEnabled(true); @@ -5772,6 +5776,7 @@ private void cmbMotiveTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN if( CurVee.IsVTOL() != wasVtol ) RecalcArmorPlacement(); RecalcArmorLocations(); SetWeaponChoosers(); + RefreshEquipment(); RefreshSummary(); RefreshInfoPane(); }//GEN-LAST:event_cmbMotiveTypeActionPerformed @@ -6019,9 +6024,29 @@ private void ShowInfoOn( abPlaceable p ) { lblInfoMountRestrict.setText(lblInfoMountRestrict.getText() + " MM Name " + p.MegaMekName(false)); } - private void chkSuperchargerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkSuperchargerActionPerformed + private void chkJetBoosterActionPerformed(java.awt.event.ActionEvent evt) { + if( CurVee.GetLoadout().HasVTOLBooster() == chkJetBooster.isSelected() ) { + return; + } + try { + CurVee.GetLoadout().SetVTOLBooster( chkJetBooster.isSelected()); + } catch( Exception e ) { + Media.Messager( this, e.getMessage() ); + try { + CurVee.GetLoadout().SetVTOLBooster( false ); + } catch( Exception x ) { + // how the hell did we get an error removing it? + Media.Messager( this, x.getMessage() ); + } + chkJetBooster.setSelected( false ); + } + RefreshSelectedEquipment(); + RefreshSummary(); + RefreshInfoPane(); + } + private void chkSuperchargerActionPerformed(java.awt.event.ActionEvent evt) { -}//GEN-LAST:event_chkSuperchargerActionPerformed + } private void chkUseTCActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkUseTCActionPerformed if( CurVee.UsingTC() == chkUseTC.isSelected() ) { return; } @@ -7065,7 +7090,11 @@ private void RefreshEquipment() { } else { chkSupercharger.setEnabled( false ); } - + if( CurVee.IsVTOL() && CommonTools.IsAllowed( CurVee.GetLoadout().GetVTOLBooster().GetAvailability(), CurVee ) ) { + chkJetBooster.setEnabled( true ); + } else { + chkJetBooster.setEnabled( false ); + } // now set all the equipment if needed if( ! chkFCSAIV.isEnabled() ) { try { diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 37ff0d60..1c44a564 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -2215,6 +2215,11 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkJetBooster.setText("VTOL Jet Booster"); chkJetBooster.setEnabled(false); + chkJetBooster.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + chkJetBoosterActionPerformed(evt); + } + }); chkSupercharger.setText("Supercharger"); chkSupercharger.setEnabled(false); @@ -6398,7 +6403,11 @@ private void RefreshEquipment() { } else { chkSupercharger.setEnabled( false ); } - + if( CurVee.IsVTOL() && CommonTools.IsAllowed( CurVee.GetLoadout().GetVTOLBooster().GetAvailability(), CurVee ) ) { + chkJetBooster.setEnabled( true ); + } else { + chkJetBooster.setEnabled( false ); + } // now set all the equipment if needed if( ! chkFCSAIV.isEnabled() ) { try { @@ -8906,6 +8915,26 @@ private void chkFractionalActionPerformed(java.awt.event.ActionEvent evt) {//GEN RefreshInfoPane(); }//GEN-LAST:event_chkFractionalActionPerformed + private void chkJetBoosterActionPerformed(java.awt.event.ActionEvent evt) { + if( CurVee.GetLoadout().HasVTOLBooster() == chkJetBooster.isSelected() ) { + return; + } + try { + CurVee.GetLoadout().SetVTOLBooster( chkJetBooster.isSelected()); + } catch( Exception e ) { + Media.Messager( this, e.getMessage() ); + try { + CurVee.GetLoadout().SetVTOLBooster( false ); + } catch( Exception x ) { + // how the hell did we get an error removing it? + Media.Messager( this, x.getMessage() ); + } + chkJetBooster.setSelected( false ); + } + RefreshSelectedEquipment(); + RefreshSummary(); + RefreshInfoPane(); + } private void chkSuperchargerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkSuperchargerActionPerformed }//GEN-LAST:event_chkSuperchargerActionPerformed @@ -9296,6 +9325,7 @@ private void cmbMotiveTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN FixMPSpinner(); if( CurVee.IsVTOL() != wasVtol ) RecalcArmorPlacement(); RecalcArmorLocations(); + RefreshEquipment(); RefreshSummary(); RefreshInfoPane(); }//GEN-LAST:event_cmbMotiveTypeActionPerformed @@ -9678,7 +9708,6 @@ private void cmbRulesLevelActionPerformed(java.awt.event.ActionEvent evt) {//GEN } BuildTechBaseSelector(); cmbTechBase.setSelectedIndex(CurVee.GetLoadout().GetTechBase()); - RefreshEquipment(); RecalcEquipment(); } else { // can't. reset to the default rules level and scold the user @@ -9720,7 +9749,6 @@ private void cmbRulesLevelActionPerformed(java.awt.event.ActionEvent evt) {//GEN BuildExpEquipmentSelector(); FixMPSpinner(); FixJJSpinnerModel(); - RefreshEquipment(); // now reset the combo boxes to the closest choices we previously selected LoadSelections(); @@ -9734,6 +9762,7 @@ private void cmbRulesLevelActionPerformed(java.awt.event.ActionEvent evt) {//GEN BuildTurretSelector(); // now refresh the information panes + RefreshEquipment(); RefreshSummary(); RefreshInfoPane(); SetWeaponChoosers(); diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index ca39b21b..45b93f1d 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -45,6 +45,7 @@ public class CVLoadout implements ifCVLoadout, ifLoadout { private CVJumpJetFactory Jumps; private TargetingComputer CurTC = new TargetingComputer( this, false ); private Supercharger SCharger = new Supercharger( this ); + private VTOLBooster VBooster = new VTOLBooster(this); private String Name = Constants.BASELOADOUT_NAME, Source = ""; private ArrayList Queue = new ArrayList(), @@ -71,7 +72,8 @@ public class CVLoadout implements ifCVLoadout, ifLoadout { UsingCASE = false, UsingSupercharger = false, YearSpecified = false, - YearRestricted = false; + YearRestricted = false, + UsingVTOLBooster = false; private Turret Turret1 = new Turret(this, false), Turret2 = new Turret(this, false); private SponsonTurret SponsonTurretLeft = new SponsonTurret(this, false), @@ -1042,6 +1044,27 @@ public Supercharger GetSupercharger() { return SCharger; } + public void SetVTOLBooster(boolean b) throws Exception { + UsingVTOLBooster = b; + if (!b) { + Remove(VBooster); + RemoveMechMod(VBooster.GetMechModifier()); + return; + } + + try { + AddToBody(VBooster); + AddMechModifier(VBooster.GetMechModifier()); + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + Owner.setChanged(true); + } + public boolean HasVTOLBooster() { return UsingVTOLBooster; } + public VTOLBooster GetVTOLBooster() { + return VBooster; + } + public CVPowerAmplifier GetPowerAmplifier() { return PowerAmplifier; } diff --git a/sswlib/src/main/java/components/VTOLBooster.java b/sswlib/src/main/java/components/VTOLBooster.java new file mode 100644 index 00000000..80978c32 --- /dev/null +++ b/sswlib/src/main/java/components/VTOLBooster.java @@ -0,0 +1,165 @@ +/* +Copyright (c) 2023~2024, Justin R. Bengtson (poopshotgun@yahoo.com) +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Justin R. Bengtson nor the names of contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +package components; + +public class VTOLBooster extends abPlaceable { + private ifLoadout Owner; + private AvailableCode AC = new AvailableCode( AvailableCode.TECH_BOTH ); + + public VTOLBooster(ifLoadout l ) { + AC.SetISCodes( 'D', 'X', 'F', 'E', 'D' ); + AC.SetISDates( 0, 0, false, 3009, 0, 0, false, false ); + AC.SetISFactions( "", "", "ES", "" ); + AC.SetCLCodes( 'D', 'X', 'F', 'E', 'D' ); + AC.SetCLDates( 0, 0, false, 2839, 0, 0, false, false ); + AC.SetCLFactions( "", "", "ES", "" ); + AC.SetRulesLevels( AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_EXPERIMENTAL, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED ); + Owner = (ifLoadout)l; + AddMechModifier( new MechModifier( 0, 0, 0, 0.5, 0, 3, 0, 0.0, 0.0, 0.0, 0.0, true, false ) ); + } + + public String ActualName() { + return "VTOL Jet Booster"; + } + + public String CritName() { + return "VTOL Jet Booster"; + } + + public String LookupName() { + return "VTOL Jet Booster"; + } + + public String ChatName() { + // ammo isn't included in the chat + return "VTOL Jet Booster"; + } + + public String MegaMekName( boolean UseRear ) { + if( Owner.GetTechBase() >= AvailableCode.TECH_CLAN ) { + return "CLVTOLJetBooster"; + } else { + return "ISVTOLJetBooster"; + } + } + + public String BookReference() { + return "Tactical Operations: Advanced Units Equipment"; + } + + @Override + public int NumCrits() { + return 1; + } + + public int NumCVSpaces() { + return 1; + } + + @Override + public double GetTonnage() { + double retval = 0.0; + if( Owner.UsingFractionalAccounting() ) { + retval = Math.ceil( Owner.GetEngine().GetTonnage() * 0.1); + } else { + retval = Math.ceil( Owner.GetEngine().GetTonnage() * 0.1); + } + if( IsArmored() ) { + retval += 0.5; + } + return retval; + } + + @Override + public double GetCost() { + double retval = Owner.GetEngine().GetRating() * 10000.0; + if( IsArmored() ) { + retval += 150000.; + } + return retval; + } + + @Override + public double GetOffensiveBV() { + return 0.0; + } + + @Override + public double GetCurOffensiveBV( boolean UseRear, boolean UseTC, boolean UseAES ) { + return 0.0; + } + + @Override + public double GetCurOffensiveBV( boolean UseRear, boolean UseTC, boolean UseAES, boolean UseRobotic ) { + // BV will not change for this item, so just return the normal value + return GetOffensiveBV(); + } + + @Override + public double GetDefensiveBV() { + if( IsArmored() ) { + return 5.0; + } else { + return 0.0; + } + } + + @Override + public boolean LocationLocked() { + return true; + } + + @Override + public boolean LocationLinked() { + return true; + } + + @Override + public boolean CoreComponent() { + return true; + } + + @Override + public AvailableCode GetAvailability() { + AvailableCode retval = AC.Clone(); + if( IsArmored() ) { + retval.Combine( ArmoredAC ); + } + return retval; + } + + @Override + public boolean CanAllocCVFront() { return false; } + @Override + public boolean CanAllocCVRear() { return false; } + @Override + public boolean CanAllocCVSide() { return false; } + @Override + public boolean CanAllocCVTurret() { return false; } +} diff --git a/sswlib/src/main/java/components/ifCVLoadout.java b/sswlib/src/main/java/components/ifCVLoadout.java index c0c05de6..e1e043db 100644 --- a/sswlib/src/main/java/components/ifCVLoadout.java +++ b/sswlib/src/main/java/components/ifCVLoadout.java @@ -148,6 +148,9 @@ public interface ifCVLoadout { public void SetSupercharger( Supercharger s ); public boolean HasSupercharger(); public Supercharger GetSupercharger(); + public void SetVTOLBooster(boolean b) throws Exception; + public boolean HasVTOLBooster(); + public VTOLBooster GetVTOLBooster(); public CVPowerAmplifier GetPowerAmplifier(); public void CheckExclusions( abPlaceable a ) throws Exception; public void MoveToQueue(int loc); From d7169ceb5a3adf8afff3a6342718cf1d9dc612fd Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sun, 29 Jan 2023 18:13:17 -0700 Subject: [PATCH 048/199] Remove extra merged method --- saw/src/main/java/saw/gui/frmVee.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index c2376027..4feb8ba4 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -6063,9 +6063,6 @@ private void chkJetBoosterActionPerformed(java.awt.event.ActionEvent evt) { RefreshSelectedEquipment(); RefreshSummary(); RefreshInfoPane(); - } - private void chkSuperchargerActionPerformed(java.awt.event.ActionEvent evt) { - } private void chkSuperchargerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkSuperchargerActionPerformed if( CurVee.GetLoadout().HasSupercharger() == chkSupercharger.isSelected() ) { From b58b4b7008cb49568683de8853d17812ad2f01f7 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sun, 29 Jan 2023 18:36:41 -0700 Subject: [PATCH 049/199] Add Walk Multiplier to Modifiers And implement it for the booster --- sswlib/src/main/java/components/CombatVehicle.java | 4 ++++ sswlib/src/main/java/components/MechModifier.java | 13 ++++++++++++- sswlib/src/main/java/components/VTOLBooster.java | 2 +- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index b6c2a20a..bb9b6b13 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -1247,7 +1247,11 @@ public int getCruiseMP() { } public int GetAdjustedCruiseMP( boolean BV, boolean MASCTSM ) { + MechModifier m = GetTotalModifiers( BV, MASCTSM ); int retval = CruiseMP; + if (m.WalkingMultiplier() > 0) { + retval = (int) Math.floor(CruiseMP * m.WalkingMultiplier()); + } retval += GetTotalModifiers( BV, MASCTSM ).WalkingAdder(); if( retval < 0 ) { return 0; } return retval; diff --git a/sswlib/src/main/java/components/MechModifier.java b/sswlib/src/main/java/components/MechModifier.java index 9e04fb97..a3cda6c8 100644 --- a/sswlib/src/main/java/components/MechModifier.java +++ b/sswlib/src/main/java/components/MechModifier.java @@ -40,6 +40,7 @@ public class MechModifier { MinDefBonus = 0.0, ArmorMult = 0.0, IntMult = 0.0, + WalkMult = 0.0, RunMult = 0.0; private boolean BVMovement, BVHeatMod, @@ -82,6 +83,10 @@ public MechModifier( int wadd, int radd, int jadd, double rmult, int gmod, int p BVHeatMod = BVHeat; ConfigOnly = Config_Only; } + public MechModifier( int wadd, int radd, int jadd, double wmult, double rmult, int gmod, int pmod, int heat, double def, double mindef, double amult, double imult, boolean BVMove, boolean BVHeat ) { + this(wadd, radd, jadd, rmult, gmod, pmod, heat, def, mindef, amult, imult, BVMove, BVHeat, false ); + WalkMult = wmult; + } public void SetCanJump(boolean j) { CanJump = j; @@ -107,6 +112,10 @@ public int JumpingAdder() { return JumpAdd; } + public double WalkingMultiplier() { + return WalkMult; + } + public double RunningMultiplier() { return RunMult; } @@ -152,6 +161,7 @@ public void Combine( MechModifier m ) { WalkAdd += m.WalkingAdder(); RunAdd += m.RunningAdder(); JumpAdd += m.JumpingAdder(); + WalkMult += m.WalkingMultiplier(); RunMult += m.RunningMultiplier(); GunneryMod += m.GunneryMod(); PilotMod += m.PilotingModifier(); @@ -174,6 +184,7 @@ public void BVCombine( MechModifier m ) { WalkAdd += m.WalkingAdder(); RunAdd += m.RunningAdder(); JumpAdd += m.JumpingAdder(); + WalkMult += m.WalkingMultiplier(); RunMult += m.RunningMultiplier(); } GunneryMod += m.GunneryMod(); @@ -194,7 +205,7 @@ public void BVCombine( MechModifier m ) { @Override public String toString() { - String retval = WalkAdd + "/" + RunAdd + "/" + JumpAdd + ", RunMult=" + RunMult + ", " + GunneryMod + "/" + PilotMod + ", " + HeatAdd + " heat, "; + String retval = WalkAdd + "/" + RunAdd + "/" + JumpAdd + ", WalkMult=" + WalkMult + ", RunMult=" + RunMult + ", " + GunneryMod + "/" + PilotMod + ", " + HeatAdd + " heat, "; retval += DefBonus + " DMod, " + MinDefBonus + " MinDMod, " + ArmorMult + "/" + IntMult + " multipliers"; return retval; } diff --git a/sswlib/src/main/java/components/VTOLBooster.java b/sswlib/src/main/java/components/VTOLBooster.java index 80978c32..735560f0 100644 --- a/sswlib/src/main/java/components/VTOLBooster.java +++ b/sswlib/src/main/java/components/VTOLBooster.java @@ -41,7 +41,7 @@ public VTOLBooster(ifLoadout l ) { AC.SetCLFactions( "", "", "ES", "" ); AC.SetRulesLevels( AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_EXPERIMENTAL, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED ); Owner = (ifLoadout)l; - AddMechModifier( new MechModifier( 0, 0, 0, 0.5, 0, 3, 0, 0.0, 0.0, 0.0, 0.0, true, false ) ); + AddMechModifier(new MechModifier(0, 0, 0, 2.0, 0.0, 0, 3, 0, 0.0, 0.0, 0.0, 0.0, true, false)); } public String ActualName() { From dda0969dc3cb2623589c6dc52daabaa1dd5e9d2d Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sun, 29 Jan 2023 18:50:07 -0700 Subject: [PATCH 050/199] Fix Movement Modifier --- sswlib/src/main/java/components/CombatVehicle.java | 2 +- sswlib/src/main/java/components/VTOLBooster.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index bb9b6b13..ff63e951 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -1579,7 +1579,7 @@ public int GetAdjustedFlankMP( boolean BV, boolean MASCTSM ) { // this had to become more complicated because of the peculiar // idiosyncracies of the BV system. Stupid. MechModifier m = GetTotalModifiers( BV, MASCTSM ); - int WalkValue = GetAdjustedCruiseMP( BV, MASCTSM ); + int WalkValue = getCruiseMP(); double Multiplier = 1.5 + m.RunningMultiplier(); int retval = (int) Math.floor( WalkValue * Multiplier + 0.5 ) + m.RunningAdder(); if( retval < 0 ) { return 0; } diff --git a/sswlib/src/main/java/components/VTOLBooster.java b/sswlib/src/main/java/components/VTOLBooster.java index 735560f0..04799fab 100644 --- a/sswlib/src/main/java/components/VTOLBooster.java +++ b/sswlib/src/main/java/components/VTOLBooster.java @@ -41,7 +41,7 @@ public VTOLBooster(ifLoadout l ) { AC.SetCLFactions( "", "", "ES", "" ); AC.SetRulesLevels( AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_EXPERIMENTAL, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED ); Owner = (ifLoadout)l; - AddMechModifier(new MechModifier(0, 0, 0, 2.0, 0.0, 0, 3, 0, 0.0, 0.0, 0.0, 0.0, true, false)); + AddMechModifier(new MechModifier(0, 0, 0, 0.0, 0.5, 0, 3, 0, 0.0, 0.0, 0.0, 0.0, true, false)); } public String ActualName() { From 31a0f6747c0774164b8bb191f083a1a592ce7e67 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sun, 29 Jan 2023 18:56:24 -0700 Subject: [PATCH 051/199] Remove Walk Multiplier Turns out is was unneeded. --- sswlib/src/main/java/components/MechModifier.java | 13 +------------ sswlib/src/main/java/components/VTOLBooster.java | 2 +- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/sswlib/src/main/java/components/MechModifier.java b/sswlib/src/main/java/components/MechModifier.java index a3cda6c8..9e04fb97 100644 --- a/sswlib/src/main/java/components/MechModifier.java +++ b/sswlib/src/main/java/components/MechModifier.java @@ -40,7 +40,6 @@ public class MechModifier { MinDefBonus = 0.0, ArmorMult = 0.0, IntMult = 0.0, - WalkMult = 0.0, RunMult = 0.0; private boolean BVMovement, BVHeatMod, @@ -83,10 +82,6 @@ public MechModifier( int wadd, int radd, int jadd, double rmult, int gmod, int p BVHeatMod = BVHeat; ConfigOnly = Config_Only; } - public MechModifier( int wadd, int radd, int jadd, double wmult, double rmult, int gmod, int pmod, int heat, double def, double mindef, double amult, double imult, boolean BVMove, boolean BVHeat ) { - this(wadd, radd, jadd, rmult, gmod, pmod, heat, def, mindef, amult, imult, BVMove, BVHeat, false ); - WalkMult = wmult; - } public void SetCanJump(boolean j) { CanJump = j; @@ -112,10 +107,6 @@ public int JumpingAdder() { return JumpAdd; } - public double WalkingMultiplier() { - return WalkMult; - } - public double RunningMultiplier() { return RunMult; } @@ -161,7 +152,6 @@ public void Combine( MechModifier m ) { WalkAdd += m.WalkingAdder(); RunAdd += m.RunningAdder(); JumpAdd += m.JumpingAdder(); - WalkMult += m.WalkingMultiplier(); RunMult += m.RunningMultiplier(); GunneryMod += m.GunneryMod(); PilotMod += m.PilotingModifier(); @@ -184,7 +174,6 @@ public void BVCombine( MechModifier m ) { WalkAdd += m.WalkingAdder(); RunAdd += m.RunningAdder(); JumpAdd += m.JumpingAdder(); - WalkMult += m.WalkingMultiplier(); RunMult += m.RunningMultiplier(); } GunneryMod += m.GunneryMod(); @@ -205,7 +194,7 @@ public void BVCombine( MechModifier m ) { @Override public String toString() { - String retval = WalkAdd + "/" + RunAdd + "/" + JumpAdd + ", WalkMult=" + WalkMult + ", RunMult=" + RunMult + ", " + GunneryMod + "/" + PilotMod + ", " + HeatAdd + " heat, "; + String retval = WalkAdd + "/" + RunAdd + "/" + JumpAdd + ", RunMult=" + RunMult + ", " + GunneryMod + "/" + PilotMod + ", " + HeatAdd + " heat, "; retval += DefBonus + " DMod, " + MinDefBonus + " MinDMod, " + ArmorMult + "/" + IntMult + " multipliers"; return retval; } diff --git a/sswlib/src/main/java/components/VTOLBooster.java b/sswlib/src/main/java/components/VTOLBooster.java index 04799fab..a734b106 100644 --- a/sswlib/src/main/java/components/VTOLBooster.java +++ b/sswlib/src/main/java/components/VTOLBooster.java @@ -41,7 +41,7 @@ public VTOLBooster(ifLoadout l ) { AC.SetCLFactions( "", "", "ES", "" ); AC.SetRulesLevels( AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_EXPERIMENTAL, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED ); Owner = (ifLoadout)l; - AddMechModifier(new MechModifier(0, 0, 0, 0.0, 0.5, 0, 3, 0, 0.0, 0.0, 0.0, 0.0, true, false)); + AddMechModifier(new MechModifier(0, 0, 0, 0.5, 0, 3, 0, 0.0, 0.0, 0.0, 0.0, true, false)); } public String ActualName() { From 1d9812cf7d394957355823d2e0e72d46d6432fa9 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sun, 29 Jan 2023 18:59:23 -0700 Subject: [PATCH 052/199] Remove Walk Mult from Cruise MP Calc --- sswlib/src/main/java/components/CombatVehicle.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index ff63e951..34ade813 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -1249,9 +1249,6 @@ public int getCruiseMP() { public int GetAdjustedCruiseMP( boolean BV, boolean MASCTSM ) { MechModifier m = GetTotalModifiers( BV, MASCTSM ); int retval = CruiseMP; - if (m.WalkingMultiplier() > 0) { - retval = (int) Math.floor(CruiseMP * m.WalkingMultiplier()); - } retval += GetTotalModifiers( BV, MASCTSM ).WalkingAdder(); if( retval < 0 ) { return 0; } return retval; From c2fd5979f0e080ca9500cdaa353589ce62016d4d Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sun, 29 Jan 2023 19:12:54 -0700 Subject: [PATCH 053/199] Fix Tonnage Calc --- sswlib/src/main/java/components/VTOLBooster.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sswlib/src/main/java/components/VTOLBooster.java b/sswlib/src/main/java/components/VTOLBooster.java index a734b106..5a5b5ef7 100644 --- a/sswlib/src/main/java/components/VTOLBooster.java +++ b/sswlib/src/main/java/components/VTOLBooster.java @@ -86,9 +86,9 @@ public int NumCVSpaces() { public double GetTonnage() { double retval = 0.0; if( Owner.UsingFractionalAccounting() ) { - retval = Math.ceil( Owner.GetEngine().GetTonnage() * 0.1); + retval = Math.ceil( Owner.GetEngine().GetTonnage() * 100 ) * 0.001; } else { - retval = Math.ceil( Owner.GetEngine().GetTonnage() * 0.1); + retval = ((int) ( Math.ceil( Owner.GetEngine().GetTonnage() * 0.1 * 2 ))) * 0.5; } if( IsArmored() ) { retval += 0.5; From 86a38dd8d3bb6a538ae8b59a15642f28d277dfb1 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sun, 29 Jan 2023 20:12:38 -0700 Subject: [PATCH 054/199] Clear Supercharger and VTOL Booster When the Tech changes or a new vee is created. --- saw/src/main/java/saw/gui/frmVee.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 4feb8ba4..9a47ed55 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -6900,6 +6900,8 @@ private void GetNewVee() { chkDuneBuggy.setSelected(false); chkEnviroSealing.setSelected(false); chkTrailer.setSelected(false); + chkSupercharger.setSelected(false); + chkJetBooster.setSelected(false); if( Omni ) { UnlockGUIFromOmni(); @@ -8352,6 +8354,10 @@ private void cmbTechBaseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F break; } + //Adding these here for now, since the loadout gets completely trashed, these selections need to go away. + chkSupercharger.setSelected(false); + chkJetBooster.setSelected(false); + // save the current selections. The 'Mech should have already // flushed any illegal equipment in the changeover SaveSelections(); @@ -8396,6 +8402,7 @@ private void cmbTechBaseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F chkUseTC.setSelected( false ); // now refresh the information panes + RefreshEquipment(); RefreshSummary(); RefreshInfoPane(); SetWeaponChoosers(); From 261b67aeb15c995b4cb19346fa4f8d21d6f1624e Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sun, 29 Jan 2023 20:14:33 -0700 Subject: [PATCH 055/199] Add the same to Wide --- saw/src/main/java/saw/gui/frmVeeWide.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index f20d467d..a59ad649 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -6177,6 +6177,9 @@ private void GetNewVee() { chkFullAmph.setSelected(false); chkDuneBuggy.setSelected(false); chkEnviroSealing.setSelected(false); + chkTrailer.setSelected(false); + chkSupercharger.setSelected(false); + chkJetBooster.setSelected(false); if( Omni ) { UnlockGUIFromOmni(); @@ -9522,6 +9525,10 @@ private void cmbTechBaseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F break; } + //Adding these here for now, since the loadout gets completely trashed, these selections need to go away. + chkSupercharger.setSelected(false); + chkJetBooster.setSelected(false); + // save the current selections. The 'Mech should have already // flushed any illegal equipment in the changeover SaveSelections(); From ea09ef4c4ab37f3948dc4231cd6551f5c8cff5cc Mon Sep 17 00:00:00 2001 From: George Blouin Date: Tue, 31 Jan 2023 12:43:04 -0700 Subject: [PATCH 056/199] No Booster in Omni pods + Clear Use flags Cannot add booster to an omni pod. When you change tech it clears the flags so that you don't have to click, unclick, and re-click to add. --- saw/src/main/java/saw/gui/frmVee.java | 6 ++++-- saw/src/main/java/saw/gui/frmVeeWide.java | 6 ++++-- sswlib/src/main/java/components/CVLoadout.java | 2 ++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 9a47ed55..e87aaafc 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -7129,7 +7129,7 @@ private void RefreshEquipment() { } else { chkSupercharger.setEnabled( false ); } - if( CurVee.IsVTOL() && CommonTools.IsAllowed( CurVee.GetLoadout().GetVTOLBooster().GetAvailability(), CurVee ) ) { + if( CurVee.IsVTOL() && CommonTools.IsAllowed( CurVee.GetLoadout().GetVTOLBooster().GetAvailability(), CurVee ) && !CurVee.IsOmni()) { chkJetBooster.setEnabled( true ); } else { chkJetBooster.setEnabled( false ); @@ -7304,6 +7304,7 @@ private void UnlockGUIFromOmni() { chkYearRestrict.setEnabled( true ); //chkBSPFD.setEnabled( true ); chkSupercharger.setEnabled( true ); + chkJetBooster.setEnabled(true); chkEnviroSealing.setEnabled( false ); // now enable the Omni controls cmbOmniVariant.setSelectedItem(""); @@ -8576,7 +8577,7 @@ private void CheckEquipment() { } private void LockGUIForOmni() { - // this locks most of the GUI controls. Used mainly by Omnimechs. + // this locks most of the GUI controls. Used mainly by OmniVehicles. isLocked = true; chkOmniVee.setSelected( true ); @@ -8601,6 +8602,7 @@ private void LockGUIForOmni() { btnLockChassis.setEnabled( false ); chkYearRestrict.setEnabled( false ); chkTrailer.setEnabled( false ); + chkJetBooster.setEnabled(false); if( CurVee.GetBaseLoadout().GetJumpJets().GetNumJJ() > 0 ) { //cmbJumpJetType.setEnabled( false ); } diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index a59ad649..ec56bb07 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -6407,7 +6407,7 @@ private void RefreshEquipment() { } else { chkSupercharger.setEnabled( false ); } - if( CurVee.IsVTOL() && CommonTools.IsAllowed( CurVee.GetLoadout().GetVTOLBooster().GetAvailability(), CurVee ) ) { + if( CurVee.IsVTOL() && CommonTools.IsAllowed( CurVee.GetLoadout().GetVTOLBooster().GetAvailability(), CurVee ) && !CurVee.isOmni() ) { chkJetBooster.setEnabled( true ); } else { chkJetBooster.setEnabled( false ); @@ -6578,6 +6578,7 @@ private void UnlockGUIFromOmni() { chkYearRestrict.setEnabled( true ); //chkBSPFD.setEnabled( true ); chkSupercharger.setEnabled( true ); + chkJetBooster.setEnabled(true); chkEnviroSealing.setEnabled( false ); // now enable the Omni controls cmbOmniVariant.setEnabled( false ); @@ -6847,7 +6848,7 @@ private void CheckEquipment() { } private void LockGUIForOmni() { - // this locks most of the GUI controls. Used mainly by Omnimechs. + // this locks most of the GUI controls. Used mainly by OmniVehichles. isLocked = true; chkOmniVee.setSelected( true ); @@ -6888,6 +6889,7 @@ private void LockGUIForOmni() { chkFractional.setEnabled( false ); chkEnviroSealing.setEnabled( false ); + chkJetBooster.setEnabled(false); if( CurVee.GetBaseLoadout().HasSupercharger() ) { chkSupercharger.setEnabled( false ); } diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index 0eeb3a37..e9481daf 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -260,6 +260,8 @@ public void FullUnallocate() { public void ClearLoadout() { FullUnallocate(); + UsingSupercharger = false; + UsingVTOLBooster = false; Owner.SetChanged( true ); } From ffc577885cb084a0dad509ef346098e3264e7154 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Tue, 31 Jan 2023 13:31:06 -0700 Subject: [PATCH 057/199] Only allow Chin Turret on a VTOL --- saw/src/main/java/saw/gui/frmVee.java | 12 +++++++++--- saw/src/main/java/saw/gui/frmVeeWide.java | 12 +++++++++--- sswlib/src/main/java/components/CombatVehicle.java | 2 +- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 824bfd6b..5e6cba95 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -5623,7 +5623,13 @@ private void BuildTurretSelector() cmbTurret.setEnabled(true); list.add("No Turret"); - if ( CurVee.CanUseTurret() ) list.add("Single Turret"); + if ( CurVee.CanUseTurret() ) { + if (CurVee.IsVTOL()) { + list.add("Chin Turret"); + } else{ + list.add("Single Turret"); + } + } if ( CurVee.CanUseDualTurret() ) list.add("Dual Turret"); if ( list.isEmpty() ) { @@ -7852,9 +7858,9 @@ private void btnAddQuirkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F private void cmbTurretActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbTurretActionPerformed if( Load ) { return; } - //TODO add logic to CombatVehicle to handle the turret + String Turret = cmbTurret.getSelectedItem().toString(); - if ( Turret.equals("Single Turret")) { + if ( Turret.equals("Single Turret") || Turret.equals("Chin Turret")) { CurVee.setHasTurret1(true); if (chkOmniVee.isSelected() && !isLocked ) spnTurretTonnage.setEnabled(true); diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 37ff0d60..c6e15c4c 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -5488,7 +5488,13 @@ private void BuildTurretSelector() cmbTurret.setEnabled(true); list.add("No Turret"); - if ( CurVee.CanUseTurret() ) list.add("Single Turret"); + if ( CurVee.CanUseTurret() ) { + if (CurVee.IsVTOL()) { + list.add("Chin Turret"); + } else{ + list.add("Single Turret"); + } + } if ( CurVee.CanUseDualTurret() ) list.add("Dual Turret"); if ( list.isEmpty() ) { @@ -9050,9 +9056,9 @@ private void cmbTurretActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR if (Load) { return; } - //TODO add logic to CombatVehicle to handle the turret + String Turret = cmbTurret.getSelectedItem().toString(); - if (Turret.equals("Single Turret")) { + if (Turret.equals("Single Turret") || Turret.equals("Chin Turret")) { CurVee.setHasTurret1(true); if (chkOmniVee.isSelected() && !isLocked) { spnTurretTonnage.setEnabled(true); diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index 6d805374..f00541de 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -329,7 +329,7 @@ public boolean CanUseTurret() { } public boolean CanUseDualTurret() { - if( CommonTools.IsAllowed( DualTurretAC,this) ) { return true; } + if( !IsVTOL() && CommonTools.IsAllowed( DualTurretAC,this) ) { return true; } return false; } From aff99bdb7ee4a3eac2814c98ebffd68dcc714d26 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Thu, 2 Feb 2023 11:08:35 -0700 Subject: [PATCH 058/199] Re-Add Version Because MML blew up when it didn't exist in the file. --- sswlib/src/main/java/IO/MTFWriter.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sswlib/src/main/java/IO/MTFWriter.java b/sswlib/src/main/java/IO/MTFWriter.java index 85f26b17..1ba9eb33 100644 --- a/sswlib/src/main/java/IO/MTFWriter.java +++ b/sswlib/src/main/java/IO/MTFWriter.java @@ -67,6 +67,8 @@ public void WriteMechMTF( String filename ) throws IOException { mixed = true; break; } + FR.write( "Version:1.1" ); + FR.newLine(); FR.write( "Generator:" + Version ); FR.newLine(); FR.write( CurMech.GetName() ); From 73a25abcc574cdbe065b0baa7782a9f6a0c469f1 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 4 Feb 2023 11:18:35 -0700 Subject: [PATCH 059/199] Output ClanCase Node outside of the omni section so that we can load mixed tech correctly. --- sswlib/src/main/java/filehandlers/CVWriter.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sswlib/src/main/java/filehandlers/CVWriter.java b/sswlib/src/main/java/filehandlers/CVWriter.java index 60c51409..7facca56 100644 --- a/sswlib/src/main/java/filehandlers/CVWriter.java +++ b/sswlib/src/main/java/filehandlers/CVWriter.java @@ -175,6 +175,9 @@ public void WriteXML( BufferedWriter FR ) throws IOException { FR.write( tab + tab + "" + CurUnit.GetChatInfo() + "" ); FR.newLine(); + FR.write( tab + tab + "" + FileCommon.GetBoolean( CurUnit.GetLoadout().IsUsingClanCASE() ) + "" ); + FR.newLine(); + BattleForceStats stat = new BattleForceStats(CurUnit); stat.SerializeXML(FR, 2); FR.newLine(); From 914dcbaf32998b8c3d2726f15e74a2867e751e90 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 4 Feb 2023 11:57:53 -0700 Subject: [PATCH 060/199] Default to Clan if techbase is --- sswlib/src/main/java/filehandlers/CVReader.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sswlib/src/main/java/filehandlers/CVReader.java b/sswlib/src/main/java/filehandlers/CVReader.java index 1289bcc7..2ac27e47 100644 --- a/sswlib/src/main/java/filehandlers/CVReader.java +++ b/sswlib/src/main/java/filehandlers/CVReader.java @@ -553,7 +553,7 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) } ltc = l; } else if( eType.equals( "CASE" ) ) { - if (m.GetLoadout().IsUsingClanCASE()) { + if (m.GetLoadout().IsUsingClanCASE() || (m.GetTechBase() == AvailableCode.TECH_CLAN)) { m.GetLoadout().SetClanCASE(true); } else { m.GetLoadout().SetISCASE(); From 9ffc16cad5f040ae655ac20dfddba91e4ddc48ce Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 4 Feb 2023 18:47:45 -0700 Subject: [PATCH 061/199] Track CASE at the Combat Vehicle --- saw/src/main/java/saw/gui/frmVee.java | 19 ++++---- saw/src/main/java/saw/gui/frmVeeWide.java | 18 +++----- sswlib/src/main/java/Print/PrintVehicle.java | 2 +- .../src/main/java/components/CVLoadout.java | 45 +++++++++---------- .../main/java/components/CombatVehicle.java | 9 ++++ .../src/main/java/components/ifCVLoadout.java | 10 ++--- .../src/main/java/filehandlers/CVReader.java | 22 +-------- 7 files changed, 52 insertions(+), 73 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 9c5e3553..b70acd0e 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -6185,7 +6185,7 @@ private void chkFCSApolloActionPerformed(java.awt.event.ActionEvent evt) {//GEN- private void chkClanCASEActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkClanCASEActionPerformed if ( !chkClanCASE.isSelected() ) { CurVee.GetLoadout().SetClanCASE(false); - CurVee.GetLoadout().RemoveISCase(); + CurVee.GetLoadout().RemoveCase(); SetWeaponChoosers(); RefreshSummary(); RefreshInfoPane(); @@ -6195,19 +6195,16 @@ private void chkClanCASEActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F try { switch ( CurVee.GetTechBase() ) { case AvailableCode.TECH_INNER_SPHERE: - CurVee.GetLoadout().SetISCASE(); + CurVee.GetLoadout().AddCase(false); break; case AvailableCode.TECH_CLAN: - CurVee.GetLoadout().SetClanCASE(true); - CurVee.GetLoadout().SetISCASE(); + CurVee.GetLoadout().AddCase(true); break; case AvailableCode.TECH_BOTH: dlgTechBaseChooser tech = new dlgTechBaseChooser( this, true ); tech.setLocationRelativeTo( this ); tech.setVisible( true ); - if ( tech.IsClan() ) - CurVee.GetLoadout().SetClanCASE(true); - CurVee.GetLoadout().SetISCASE(); + CurVee.GetLoadout().AddCase(tech.IsClan()); break; } } catch ( Exception e ) { @@ -7192,7 +7189,7 @@ private void RefreshEquipment() { } if( ! chkUseTC.isEnabled() ) { CurVee.UseTC( false, false ); } - chkClanCASE.setSelected( CurVee.GetLoadout().HasISCASE() ); + chkClanCASE.setSelected( CurVee.GetLoadout().HasCase() ); if( CurVee.GetRulesLevel() >= AvailableCode.RULES_EXPERIMENTAL ) { chkFractional.setEnabled( true ); @@ -7213,7 +7210,7 @@ private void RefreshEquipment() { if( CurVee.GetBaseLoadout().HasSupercharger() ) { chkSupercharger.setEnabled( false ); } - if( CurVee.GetBaseLoadout().HasISCASE() ) { + if( CurVee.GetBaseLoadout().HasCase() ) { chkClanCASE.setEnabled(false); } } else { @@ -8569,7 +8566,7 @@ private void CheckEquipment() { } else { chkSupercharger.setSelected( false ); } - if( CurVee.GetLoadout().HasISCASE() ) { + if( CurVee.GetLoadout().HasCase() ) { chkClanCASE.setSelected( true ); } else { chkClanCASE.setSelected( false ); @@ -8901,7 +8898,7 @@ public void LoadVehicleIntoGUI() { cmbTechBase.setEnabled( true ); txtProdYear.setEnabled( true ); chkTrailer.setSelected( CurVee.isTrailer() ); - chkClanCASE.setSelected(CurVee.GetLoadout().HasISCASE()); + chkClanCASE.setSelected(CurVee.GetLoadout().HasCase()); switch( CurVee.GetEra() ) { case AvailableCode.ERA_STAR_LEAGUE: lblEraYears.setText( "2443 ~ 2800" ); diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index f1242110..a1fc3894 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -6470,7 +6470,7 @@ private void RefreshEquipment() { } if( ! chkUseTC.isEnabled() ) { CurVee.UseTC( false, false ); } - chkClanCASE.setSelected( CurVee.GetLoadout().HasISCASE() ); + chkClanCASE.setSelected( CurVee.GetLoadout().HasCase() ); if( CurVee.GetRulesLevel() >= AvailableCode.RULES_EXPERIMENTAL ) { chkFractional.setEnabled( true ); @@ -6840,7 +6840,7 @@ private void CheckEquipment() { } else { chkSupercharger.setSelected( false ); } - if( CurVee.GetLoadout().HasISCASE() ) { + if( CurVee.GetLoadout().HasCase() ) { chkClanCASE.setSelected( true ); } else { chkClanCASE.setSelected( false ); @@ -7116,7 +7116,7 @@ public void LoadVehicleIntoGUI() { data.Rebuild( CurVee ); RefreshEquipment(); chkUseTC.setSelected( CurVee.UsingTC() ); - chkClanCASE.setSelected( CurVee.GetLoadout().HasISCASE() ); + chkClanCASE.setSelected( CurVee.GetLoadout().HasCase() ); chkEnviroSealing.setSelected( CurVee.HasEnvironmentalSealing() ); //chkCommandConsole.setSelected( CurVee.HasCommandConsole() ); RefreshSummary(); @@ -8120,7 +8120,7 @@ private void lstSelectedEquipmentValueChanged(javax.swing.event.ListSelectionEve private void chkClanCASEActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkClanCASEActionPerformed if (!chkClanCASE.isSelected()) { CurVee.GetLoadout().SetClanCASE(false); - CurVee.GetLoadout().RemoveISCase(); + CurVee.GetLoadout().RemoveCase(); SetWeaponChoosers(); RefreshSummary(); RefreshInfoPane(); @@ -8130,20 +8130,16 @@ private void chkClanCASEActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F try { switch (CurVee.GetTechBase()) { case AvailableCode.TECH_INNER_SPHERE: - CurVee.GetLoadout().SetISCASE(); + CurVee.GetLoadout().AddCase(false); break; case AvailableCode.TECH_CLAN: - CurVee.GetLoadout().SetClanCASE(true); - CurVee.GetLoadout().SetISCASE(); + CurVee.GetLoadout().AddCase(true); break; case AvailableCode.TECH_BOTH: dlgTechBaseChooser tech = new dlgTechBaseChooser(this, true); tech.setLocationRelativeTo(this); tech.setVisible(true); - if (tech.IsClan()) { - CurVee.GetLoadout().SetClanCASE(true); - } - CurVee.GetLoadout().SetISCASE(); + CurVee.GetLoadout().AddCase(tech.IsClan()); break; } } catch (Exception e) { diff --git a/sswlib/src/main/java/Print/PrintVehicle.java b/sswlib/src/main/java/Print/PrintVehicle.java index e03bb90c..66a61d20 100644 --- a/sswlib/src/main/java/Print/PrintVehicle.java +++ b/sswlib/src/main/java/Print/PrintVehicle.java @@ -355,7 +355,7 @@ private void DrawMechData( Graphics2D graphics ) { if ( !TRO ) { if ( AmmoList.size() > 0 ) { offset += 2; - graphics.drawString("Ammunition Type" + ( CurVee.GetLoadout().HasISCASE() ? " [CASE]":"" ), p[0].x, p[0].y + offset); + graphics.drawString("Ammunition Type" + ( CurVee.GetLoadout().HasCase() ? " [CASE]":"" ), p[0].x, p[0].y + offset); graphics.drawString("Rounds", p[3].x-30, p[3].y + offset); offset += 2; graphics.drawLine(p[0].x, p[0].y + offset, p[8].x + 8, p[8].y + offset); diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index 0ca9336c..9a77d7af 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -835,7 +835,6 @@ public ifCVLoadout Clone() { clone.SetTechBase( TechBase ); clone.SetEra( Era ); clone.SetYear( Year, false ); - clone.SetClanCASE( UsingClanCASE ); try { clone.SetFCSArtemisIV( UseAIVFCS ); clone.SetFCSArtemisV( UseAVFCS ); @@ -854,7 +853,10 @@ public ifCVLoadout Clone() { clone.SetTurret2( (ArrayList)Turret2Items.clone() ); clone.SetSponsonTurretLeftItems((ArrayList) SponsonTurretLeftItems.clone()); clone.SetSponsonTurretRightItems((ArrayList) SponsonTurretRightItems.clone()); - + + if ( HasCase() ) { + clone.AddCase(UsingClanCASE); + } if( TCList.size() > 0 ) { clone.SetTCList( (ArrayList) TCList.clone() ); } @@ -935,45 +937,38 @@ public boolean IsUsingClanCASE() { return UsingClanCASE; } - public void SetClanCASE(boolean b) { - UsingCASE = b; - UsingClanCASE = b; - Case.SetClan(b); - Remove(Case); + public void AddCase(boolean isClan) { + if (Owner.HasCase()) { return; } + Owner.SetCase(true); try { AddTo(Case, LocationIndex.CV_LOC_BODY); + UsingClanCASE = isClan; + UsingCASE = true; + Owner.SetChanged( true ); } catch (Exception ex) { System.err.println(ex.getMessage()); } - Owner.SetChanged( true ); } - public void RemoveISCase() { + public void RemoveCase() { UsingCASE = false; + UsingClanCASE = false; Remove(Case); + Owner.SetChanged( true ); } - - public void SetISCASE() { - UsingCASE = true; - Remove(Case); - try { - AddTo(Case, LocationIndex.CV_LOC_BODY); - } catch (Exception ex) { - System.err.println(ex.getMessage()); - } + public boolean HasCase() { + return Owner.HasCase(); } - - public boolean HasISCASE() { - if ( UsingCASE ) return true; - if ( Owner.IsOmni() && this != Owner.GetBaseLoadout() ) return Owner.GetBaseLoadout().HasISCASE(); - return false; + public void SetClanCASE(boolean b) { + UsingClanCASE = b; + Case.SetClan(b); + Owner.SetChanged( true ); } - public CASE GetISCase() { + public CASE GetCase() { return Case; } - // handlers for Artemis IV operations. public void SetFCSArtemisIV( boolean b ) throws Exception { if( b != UseAIVFCS ) { diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index 34ade813..cfddc5b8 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -74,6 +74,7 @@ public class CombatVehicle implements ifUnit, ifBattleforce { Changed = false, Primitive = false, HasBlueShield = false, + HasCase = false, HasTurret1 = false, HasTurret2 = false, HasSponsonTurret = false, @@ -2726,6 +2727,14 @@ public int GetMegaMekLevel() { return 5; } } + + public void SetCase(boolean b) { + HasCase = b; + } + + public boolean HasCase() { + return HasCase; + } public void SetTrailer(boolean b ) { IsTrailer = b; diff --git a/sswlib/src/main/java/components/ifCVLoadout.java b/sswlib/src/main/java/components/ifCVLoadout.java index e1e043db..c39290ec 100644 --- a/sswlib/src/main/java/components/ifCVLoadout.java +++ b/sswlib/src/main/java/components/ifCVLoadout.java @@ -130,11 +130,11 @@ public interface ifCVLoadout { public ArrayList GetMechMods(); public boolean CanUseClanCASE(); public boolean IsUsingClanCASE(); - public void SetClanCASE( boolean b ); - public void RemoveISCase(); - public void SetISCASE(); - public boolean HasISCASE(); - public CASE GetISCase(); + public void AddCase(boolean isClan); + public void RemoveCase(); + public boolean HasCase(); + public CASE GetCase(); + public void SetClanCASE(boolean b); public void SetFCSArtemisIV( boolean b ) throws Exception; public void SetFCSArtemisV( boolean b ) throws Exception; public void SetFCSApollo( boolean b ) throws Exception; diff --git a/sswlib/src/main/java/filehandlers/CVReader.java b/sswlib/src/main/java/filehandlers/CVReader.java index 2ac27e47..e08f7b07 100644 --- a/sswlib/src/main/java/filehandlers/CVReader.java +++ b/sswlib/src/main/java/filehandlers/CVReader.java @@ -416,11 +416,6 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) if ( omniCombatVehicle && map.getNamedItem("turretlimit") != null ) { m.GetLoadout().GetTurret().SetTonnage( Double.parseDouble(map.getNamedItem("turretlimit").getTextContent() ) ); } - // take care of Clan CASE on previous save file versions - if( SaveFileVersion < 1 ) { - // this will fail if Inner Sphere, so we're safe - m.GetLoadout().SetClanCASE( true ); - } n = n.item( 0 ).getChildNodes(); LocationIndex ltc = new LocationIndex(); for( int i = 0; i < n.getLength(); i++ ) { @@ -553,11 +548,7 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) } ltc = l; } else if( eType.equals( "CASE" ) ) { - if (m.GetLoadout().IsUsingClanCASE() || (m.GetTechBase() == AvailableCode.TECH_CLAN)) { - m.GetLoadout().SetClanCASE(true); - } else { - m.GetLoadout().SetISCASE(); - } + m.GetLoadout().AddCase(m.GetLoadout().IsUsingClanCASE() || (m.GetTechBase() == AvailableCode.TECH_CLAN)); } else if( eType.equals( "Supercharger" ) ) { m.GetLoadout().SetSupercharger( true ); } @@ -873,11 +864,6 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) } m.GetLoadout().SetRulesLevel( ruleslevel ); } - // take care of Clan CASE on previous save file versions - if( SaveFileVersion < 1 ) { - // this will fail if Inner Sphere, so we're safe - m.GetLoadout().SetClanCASE( true ); - } if( SaveFileVersion < 2 ) { m.setSource( Source ); } @@ -1024,11 +1010,7 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) } ltc = l; } else if( eType.equals( "CASE" ) ) { - if (m.GetLoadout().IsUsingClanCASE()) { - m.GetLoadout().SetClanCASE(true); - } else { - m.GetLoadout().SetISCASE(); - } + m.GetLoadout().AddCase(m.GetLoadout().IsUsingClanCASE() || (m.GetTechBase() == AvailableCode.TECH_CLAN)); } else if( eType.equals( "Supercharger" ) ) { m.GetLoadout().SetSupercharger( true ); } From 8d73308cbd38c0e678739c3912029261aba4fc1e Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 4 Feb 2023 19:42:25 -0700 Subject: [PATCH 062/199] Save and Load VTOL Booster --- saw/src/main/java/saw/gui/frmVee.java | 3 +++ saw/src/main/java/saw/gui/frmVeeWide.java | 3 +++ sswlib/src/main/java/filehandlers/CVReader.java | 12 ++++++++++-- sswlib/src/main/java/filehandlers/CVWriter.java | 2 ++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 9c5e3553..300a2b8f 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -7190,6 +7190,9 @@ private void RefreshEquipment() { chkSupercharger.setSelected( false ); } } + if (chkJetBooster.isEnabled()) { + chkJetBooster.setSelected(CurVee.GetLoadout().HasVTOLBooster()); + } if( ! chkUseTC.isEnabled() ) { CurVee.UseTC( false, false ); } chkClanCASE.setSelected( CurVee.GetLoadout().HasISCASE() ); diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index f1242110..221bda83 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -6468,6 +6468,9 @@ private void RefreshEquipment() { chkSupercharger.setSelected( false ); } } + if (chkJetBooster.isEnabled()) { + chkJetBooster.setSelected(CurVee.GetLoadout().HasVTOLBooster()); + } if( ! chkUseTC.isEnabled() ) { CurVee.UseTC( false, false ); } chkClanCASE.setSelected( CurVee.GetLoadout().HasISCASE() ); diff --git a/sswlib/src/main/java/filehandlers/CVReader.java b/sswlib/src/main/java/filehandlers/CVReader.java index 2ac27e47..9add5ba1 100644 --- a/sswlib/src/main/java/filehandlers/CVReader.java +++ b/sswlib/src/main/java/filehandlers/CVReader.java @@ -536,7 +536,9 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) lotsize = Integer.parseInt( nl.item( j ).getTextContent() ); } } - if( eType.equals( "TargetingComputer" ) || eType.equals( "CASE" ) || eType.equals( "CASEII" ) || eType.equals( "Supercharger" ) ) { + if( eType.equals( "TargetingComputer" ) || eType.equals( "CASE" ) + || eType.equals( "CASEII" ) || eType.equals( "Supercharger" ) + || eType.equals( "VTOL Jet Booster")) { if( eType.equals( "TargetingComputer") ) { if( SaveFileVersion == 0 ) { if( m.GetTechbase() == AvailableCode.TECH_CLAN ) { @@ -560,6 +562,8 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) } } else if( eType.equals( "Supercharger" ) ) { m.GetLoadout().SetSupercharger( true ); + } else if( eType.equals( "VTOL Jet Booster" ) ) { + m.GetLoadout().SetVTOLBooster( true ); } } else { abPlaceable p = GetEquipmentByName( eName, eType, m ); @@ -1007,7 +1011,9 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) lotsize = Integer.parseInt( nl.item( j ).getTextContent() ); } } - if( eType.equals( "TargetingComputer" ) || eType.equals( "CASE" ) || eType.equals( "CASEII" ) || eType.equals( "Supercharger" ) ) { + if( eType.equals( "TargetingComputer" ) || eType.equals( "CASE" ) + || eType.equals( "CASEII" ) || eType.equals( "Supercharger" ) + || eType.equals( "VTOL Jet Booster")) { if( eType.equals( "TargetingComputer") ) { if( SaveFileVersion == 0 ) { if( m.GetTechbase() == AvailableCode.TECH_CLAN ) { @@ -1031,6 +1037,8 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) } } else if( eType.equals( "Supercharger" ) ) { m.GetLoadout().SetSupercharger( true ); + } else if ( eType.equals( "VTOL Jet Booster")) { + m.GetLoadout().SetVTOLBooster( true); } } else { abPlaceable p = GetEquipmentByName( eName, eType, m ); diff --git a/sswlib/src/main/java/filehandlers/CVWriter.java b/sswlib/src/main/java/filehandlers/CVWriter.java index 7facca56..77995396 100644 --- a/sswlib/src/main/java/filehandlers/CVWriter.java +++ b/sswlib/src/main/java/filehandlers/CVWriter.java @@ -474,6 +474,8 @@ private String GetEquipmentType( abPlaceable p ) { return "CASE"; } else if ( p instanceof Supercharger ) { return "Supercharger"; + } else if ( p instanceof VTOLBooster ) { + return "VTOL Jet Booster"; } else { return "miscellaneous"; } From 95016a3d67b475b9cdeca0ad812b968aa9690b9b Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 4 Feb 2023 20:18:14 -0700 Subject: [PATCH 063/199] Allow CASE to be made Clan --- saw/src/main/java/saw/gui/frmVee.java | 45 +++++++++---------- saw/src/main/java/saw/gui/frmVeeWide.java | 37 ++++++++------- .../src/main/java/components/CVLoadout.java | 3 +- 3 files changed, 42 insertions(+), 43 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index b70acd0e..771999f9 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -1293,7 +1293,7 @@ private void initComponents() { chkFCSAIV = new javax.swing.JCheckBox(); chkFCSAV = new javax.swing.JCheckBox(); chkFCSApollo = new javax.swing.JCheckBox(); - chkClanCASE = new javax.swing.JCheckBox(); + chkCASE = new javax.swing.JCheckBox(); pnlSelected = new javax.swing.JPanel(); jScrollPane23 = new javax.swing.JScrollPane(); lstSelectedEquipment = new javax.swing.JList(); @@ -3804,10 +3804,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); pnlSpecials.add(chkFCSApollo, gridBagConstraints); - chkClanCASE.setText("Use CASE"); - chkClanCASE.addActionListener(new java.awt.event.ActionListener() { + chkCASE.setText("Use CASE"); + chkCASE.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { - chkClanCASEActionPerformed(evt); + chkCASEActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); @@ -3815,7 +3815,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { gridBagConstraints.gridy = 5; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(2, 2, 0, 0); - pnlSpecials.add(chkClanCASE, gridBagConstraints); + pnlSpecials.add(chkCASE, gridBagConstraints); pnlSelected.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Selected Equipment")); pnlSelected.setMaximumSize(new java.awt.Dimension(212, 286)); @@ -6182,9 +6182,8 @@ private void chkFCSApolloActionPerformed(java.awt.event.ActionEvent evt) {//GEN- SetWeaponChoosers(); }//GEN-LAST:event_chkFCSApolloActionPerformed - private void chkClanCASEActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkClanCASEActionPerformed - if ( !chkClanCASE.isSelected() ) { - CurVee.GetLoadout().SetClanCASE(false); + private void chkCASEActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkCASEActionPerformed + if ( !chkCASE.isSelected() ) { CurVee.GetLoadout().RemoveCase(); SetWeaponChoosers(); RefreshSummary(); @@ -6213,7 +6212,7 @@ private void chkClanCASEActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F SetWeaponChoosers(); RefreshSummary(); RefreshInfoPane(); -}//GEN-LAST:event_chkClanCASEActionPerformed +}//GEN-LAST:event_chkCASEActionPerformed private void lstSelectedEquipmentValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstSelectedEquipmentValueChanged if( lstSelectedEquipment.getSelectedIndex() < 0 ) { return; } @@ -7068,10 +7067,10 @@ private void RefreshEquipment() { //fix the CASE control CASE Case = new CASE(); if ( CommonTools.IsAllowed( Case.GetAvailability(), CurVee) || CurVee.GetTechBase() == AvailableCode.TECH_CLAN ) { - chkClanCASE.setEnabled(true); + chkCASE.setEnabled(true); } else { - chkClanCASE.setSelected(false); - chkClanCASE.setEnabled(false); + chkCASE.setSelected(false); + chkCASE.setEnabled(false); } // fix Artemis IV controls @@ -7189,7 +7188,7 @@ private void RefreshEquipment() { } if( ! chkUseTC.isEnabled() ) { CurVee.UseTC( false, false ); } - chkClanCASE.setSelected( CurVee.GetLoadout().HasCase() ); + chkCASE.setSelected( CurVee.GetLoadout().HasCase() ); if( CurVee.GetRulesLevel() >= AvailableCode.RULES_EXPERIMENTAL ) { chkFractional.setEnabled( true ); @@ -7211,7 +7210,7 @@ private void RefreshEquipment() { chkSupercharger.setEnabled( false ); } if( CurVee.GetBaseLoadout().HasCase() ) { - chkClanCASE.setEnabled(false); + chkCASE.setEnabled(false); } } else { try { @@ -7294,7 +7293,7 @@ private void UnlockGUIFromOmni() { chkFCSAIV.setEnabled( true ); chkFCSAV.setEnabled( true ); chkFCSApollo.setEnabled( true ); - chkClanCASE.setEnabled( true ); + chkCASE.setEnabled( true ); chkOmniVee.setSelected( false ); chkOmniVee.setEnabled( true ); spnCruiseMP.setEnabled( true ); @@ -8380,8 +8379,8 @@ private void cmbTechBaseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F LoadSelections(); if ( CurVee.GetTechBase() == AvailableCode.TECH_CLAN ) { - chkClanCASE.setSelected(true); - chkClanCASEActionPerformed(evt); + chkCASE.setSelected(true); + chkCASEActionPerformed(evt); } // recalculate the mech. RecalcEngine(); @@ -8567,9 +8566,9 @@ private void CheckEquipment() { chkSupercharger.setSelected( false ); } if( CurVee.GetLoadout().HasCase() ) { - chkClanCASE.setSelected( true ); + chkCASE.setSelected( true ); } else { - chkClanCASE.setSelected( false ); + chkCASE.setSelected( false ); } } @@ -8613,8 +8612,8 @@ private void LockGUIForOmni() { if( chkFCSApollo.isSelected() ) { chkFCSApollo.setEnabled( false ); } - if ( chkClanCASE.isSelected() ) { - chkClanCASE.setEnabled(false); + if ( chkCASE.isSelected() ) { + chkCASE.setEnabled(false); } chkFractional.setEnabled( false ); @@ -8898,7 +8897,7 @@ public void LoadVehicleIntoGUI() { cmbTechBase.setEnabled( true ); txtProdYear.setEnabled( true ); chkTrailer.setSelected( CurVee.isTrailer() ); - chkClanCASE.setSelected(CurVee.GetLoadout().HasCase()); + chkCASE.setSelected(CurVee.GetLoadout().HasCase()); switch( CurVee.GetEra() ) { case AvailableCode.ERA_STAR_LEAGUE: lblEraYears.setText( "2443 ~ 2800" ); @@ -9953,7 +9952,7 @@ private void FixJJSpinnerModel() { private javax.swing.JCheckBox chkArmoredMotive; private javax.swing.JCheckBox chkBalanceFRArmor; private javax.swing.JCheckBox chkBalanceLRArmor; - private javax.swing.JCheckBox chkClanCASE; + private javax.swing.JCheckBox chkCASE; private javax.swing.JCheckBox chkCommandConsole; private javax.swing.JCheckBox chkDuneBuggy; private javax.swing.JCheckBox chkEnviroSealing; diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index a1fc3894..1227975a 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -1283,7 +1283,7 @@ private void initComponents() { chkFCSAIV = new javax.swing.JCheckBox(); chkFCSAV = new javax.swing.JCheckBox(); chkFCSApollo = new javax.swing.JCheckBox(); - chkClanCASE = new javax.swing.JCheckBox(); + chkCASE = new javax.swing.JCheckBox(); pnlControls = new javax.swing.JPanel(); btnRemoveEquip = new javax.swing.JButton(); btnClearEquip = new javax.swing.JButton(); @@ -3677,10 +3677,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); pnlSpecials.add(chkFCSApollo, gridBagConstraints); - chkClanCASE.setText("Use CASE"); - chkClanCASE.addActionListener(new java.awt.event.ActionListener() { + chkCASE.setText("Use CASE"); + chkCASE.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { - chkClanCASEActionPerformed(evt); + chkCASEActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); @@ -3688,7 +3688,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { gridBagConstraints.gridy = 5; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(2, 2, 0, 0); - pnlSpecials.add(chkClanCASE, gridBagConstraints); + pnlSpecials.add(chkCASE, gridBagConstraints); pnlControls.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Controls")); pnlControls.setLayout(new java.awt.GridBagLayout()); @@ -6349,10 +6349,10 @@ private void RefreshEquipment() { //fix the CASE control CASE Case = new CASE(); if ( CommonTools.IsAllowed( Case.GetAvailability(), CurVee) || CurVee.GetTechBase() == AvailableCode.TECH_CLAN ) { - chkClanCASE.setEnabled(true); + chkCASE.setEnabled(true); } else { - chkClanCASE.setSelected(false); - chkClanCASE.setEnabled(false); + chkCASE.setSelected(false); + chkCASE.setEnabled(false); } // fix Artemis IV controls @@ -6470,7 +6470,7 @@ private void RefreshEquipment() { } if( ! chkUseTC.isEnabled() ) { CurVee.UseTC( false, false ); } - chkClanCASE.setSelected( CurVee.GetLoadout().HasCase() ); + chkCASE.setSelected( CurVee.GetLoadout().HasCase() ); if( CurVee.GetRulesLevel() >= AvailableCode.RULES_EXPERIMENTAL ) { chkFractional.setEnabled( true ); @@ -6841,9 +6841,9 @@ private void CheckEquipment() { chkSupercharger.setSelected( false ); } if( CurVee.GetLoadout().HasCase() ) { - chkClanCASE.setSelected( true ); + chkCASE.setSelected( true ); } else { - chkClanCASE.setSelected( false ); + chkCASE.setSelected( false ); } } @@ -7116,7 +7116,7 @@ public void LoadVehicleIntoGUI() { data.Rebuild( CurVee ); RefreshEquipment(); chkUseTC.setSelected( CurVee.UsingTC() ); - chkClanCASE.setSelected( CurVee.GetLoadout().HasCase() ); + chkCASE.setSelected( CurVee.GetLoadout().HasCase() ); chkEnviroSealing.setSelected( CurVee.HasEnvironmentalSealing() ); //chkCommandConsole.setSelected( CurVee.HasCommandConsole() ); RefreshSummary(); @@ -8117,9 +8117,8 @@ private void lstSelectedEquipmentValueChanged(javax.swing.event.ListSelectionEve ShowInfoOn(p); }//GEN-LAST:event_lstSelectedEquipmentValueChanged - private void chkClanCASEActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkClanCASEActionPerformed - if (!chkClanCASE.isSelected()) { - CurVee.GetLoadout().SetClanCASE(false); + private void chkCASEActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkCASEActionPerformed + if (!chkCASE.isSelected()) { CurVee.GetLoadout().RemoveCase(); SetWeaponChoosers(); RefreshSummary(); @@ -8148,7 +8147,7 @@ private void chkClanCASEActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F SetWeaponChoosers(); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_chkClanCASEActionPerformed + }//GEN-LAST:event_chkCASEActionPerformed private void chkFCSApolloActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkFCSApolloActionPerformed if (CurVee.UsingApollo() == chkFCSApollo.isSelected()) { @@ -9551,8 +9550,8 @@ private void cmbTechBaseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F LoadSelections(); if (CurVee.GetTechBase() == AvailableCode.TECH_CLAN) { - chkClanCASE.setSelected(true); - chkClanCASEActionPerformed(evt); + chkCASE.setSelected(true); + chkCASEActionPerformed(evt); } // recalculate the mech. RecalcEngine(); @@ -9931,7 +9930,7 @@ private void FixJJSpinnerModel() { private javax.swing.JCheckBox chkArmoredMotive; private javax.swing.JCheckBox chkBalanceFRArmor; private javax.swing.JCheckBox chkBalanceLRArmor; - private javax.swing.JCheckBox chkClanCASE; + private javax.swing.JCheckBox chkCASE; private javax.swing.JCheckBox chkCommandConsole; private javax.swing.JCheckBox chkDuneBuggy; private javax.swing.JCheckBox chkEnviroSealing; diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index 9a77d7af..d6567bb9 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -938,11 +938,11 @@ public boolean IsUsingClanCASE() { } public void AddCase(boolean isClan) { + UsingClanCASE = isClan; if (Owner.HasCase()) { return; } Owner.SetCase(true); try { AddTo(Case, LocationIndex.CV_LOC_BODY); - UsingClanCASE = isClan; UsingCASE = true; Owner.SetChanged( true ); } catch (Exception ex) { @@ -953,6 +953,7 @@ public void AddCase(boolean isClan) { public void RemoveCase() { UsingCASE = false; UsingClanCASE = false; + Owner.SetCase(false); Remove(Case); Owner.SetChanged( true ); } From f42115f55045fd5e19a506e1b1586aee61442106 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 4 Feb 2023 20:38:45 -0700 Subject: [PATCH 064/199] Set Clan ON the actual CASE Sheesh. --- sswlib/src/main/java/components/CVLoadout.java | 1 + 1 file changed, 1 insertion(+) diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index d6567bb9..5df1a9ed 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -939,6 +939,7 @@ public boolean IsUsingClanCASE() { public void AddCase(boolean isClan) { UsingClanCASE = isClan; + Case.SetClan(isClan); if (Owner.HasCase()) { return; } Owner.SetCase(true); try { From 24e4278a7bf2f46b4d84bec6abbe62399b194d74 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sun, 5 Feb 2023 21:20:04 -0700 Subject: [PATCH 065/199] Cleanup Auto-Generated comments --- saw/src/main/java/saw/gui/frmVee.java | 537 +++++++++------------- saw/src/main/java/saw/gui/frmVeeWide.java | 521 +++++++++------------ 2 files changed, 454 insertions(+), 604 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 771999f9..c63ca94b 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -5584,7 +5584,6 @@ private void cmbRulesLevelActionPerformed(java.awt.event.ActionEvent evt) {//GEN // since you can only ever change the rules level when not restricted, // we're not doing it here. Pass in default values. - //CurVee.GetLoadout().FlushIllegal( locArmor.GetEra(), 0, false ); CurVee.GetLoadout().FlushIllegal(); // refresh all the combo boxes. @@ -5599,8 +5598,6 @@ private void cmbRulesLevelActionPerformed(java.awt.event.ActionEvent evt) {//GEN LoadSelections(); RecalcEngine(); - //RecalcIntStruc(); - //RecalcHeatSinks(); RecalcArmor(); RecalcEquipment(); } @@ -5612,7 +5609,8 @@ private void cmbRulesLevelActionPerformed(java.awt.event.ActionEvent evt) {//GEN RefreshInfoPane(); SetWeaponChoosers(); ResetAmmo(); -}//GEN-LAST:event_cmbRulesLevelActionPerformed + } + // check the tonnage to see if it's legal and acts accordingly public void CheckTonnage( boolean RulesChange ) { if( CurVee.GetTonnage() < 1 ) { @@ -5637,8 +5635,7 @@ private void LoadSelections() { cmbArmorType.setSelectedItem( Selections[1] ); } - private void BuildTurretSelector() - { + private void BuildTurretSelector() { ArrayList list = new ArrayList(); if ( !CurVee.IsOmni()) @@ -5669,8 +5666,7 @@ else if (CurVee.isHasTurret1()) cmbTurret.setSelectedItem("No Turret"); } - private void BuildChassisSelector() - { + private void BuildChassisSelector() { chkFlotationHull.setSelected(false); chkLimitedAmph.setSelected(false); chkFullAmph.setSelected(false); @@ -5740,7 +5736,7 @@ private void BuildExpEquipmentSelector() { } } - private void cmbMotiveTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbMotiveTypeActionPerformed + private void cmbMotiveTypeActionPerformed(java.awt.event.ActionEvent evt) { if ( Load ) return; boolean wasVtol = CurVee.IsVTOL(); @@ -5799,7 +5795,7 @@ private void cmbMotiveTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN RefreshSummary(); RefreshInfoPane(); RefreshEquipment(); -}//GEN-LAST:event_cmbMotiveTypeActionPerformed + } private void ShowInfoOn( abPlaceable p ) { // this fills in all the information on the Equipment panel for the given @@ -6064,7 +6060,8 @@ private void chkJetBoosterActionPerformed(java.awt.event.ActionEvent evt) { RefreshSummary(); RefreshInfoPane(); } - private void chkSuperchargerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkSuperchargerActionPerformed + + private void chkSuperchargerActionPerformed(java.awt.event.ActionEvent evt) { if( CurVee.GetLoadout().HasSupercharger() == chkSupercharger.isSelected() ) { return; } @@ -6083,9 +6080,9 @@ private void chkSuperchargerActionPerformed(java.awt.event.ActionEvent evt) {//G RefreshSelectedEquipment(); RefreshSummary(); RefreshInfoPane(); -}//GEN-LAST:event_chkSuperchargerActionPerformed + } - private void chkUseTCActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkUseTCActionPerformed + private void chkUseTCActionPerformed(java.awt.event.ActionEvent evt) { if( CurVee.UsingTC() == chkUseTC.isSelected() ) { return; } if( chkUseTC.isSelected() ) { try { @@ -6111,9 +6108,9 @@ private void chkUseTCActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS RefreshSelectedEquipment(); RefreshSummary(); RefreshInfoPane(); -}//GEN-LAST:event_chkUseTCActionPerformed + } - private void chkFCSAIVActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkFCSAIVActionPerformed + private void chkFCSAIVActionPerformed(java.awt.event.ActionEvent evt) { if( CurVee.UsingArtemisIV() == chkFCSAIV.isSelected() ) { return; } if( chkFCSAIV.isSelected() ) { try { @@ -6134,9 +6131,9 @@ private void chkFCSAIVActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR RefreshSummary(); RefreshInfoPane(); SetWeaponChoosers(); -}//GEN-LAST:event_chkFCSAIVActionPerformed + } - private void chkFCSAVActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkFCSAVActionPerformed + private void chkFCSAVActionPerformed(java.awt.event.ActionEvent evt) { if( CurVee.UsingArtemisV() == chkFCSAV.isSelected() ) { return; } if( chkFCSAV.isSelected() ) { try { @@ -6157,9 +6154,9 @@ private void chkFCSAVActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS RefreshSummary(); RefreshInfoPane(); SetWeaponChoosers(); -}//GEN-LAST:event_chkFCSAVActionPerformed + } - private void chkFCSApolloActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkFCSApolloActionPerformed + private void chkFCSApolloActionPerformed(java.awt.event.ActionEvent evt) { if( CurVee.UsingApollo() == chkFCSApollo.isSelected() ) { return; } if( chkFCSApollo.isSelected() ) { try { @@ -6180,9 +6177,9 @@ private void chkFCSApolloActionPerformed(java.awt.event.ActionEvent evt) {//GEN- RefreshSummary(); RefreshInfoPane(); SetWeaponChoosers(); -}//GEN-LAST:event_chkFCSApolloActionPerformed + } - private void chkCASEActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkCASEActionPerformed + private void chkCASEActionPerformed(java.awt.event.ActionEvent evt) { if ( !chkCASE.isSelected() ) { CurVee.GetLoadout().RemoveCase(); SetWeaponChoosers(); @@ -6212,27 +6209,26 @@ private void chkCASEActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST SetWeaponChoosers(); RefreshSummary(); RefreshInfoPane(); -}//GEN-LAST:event_chkCASEActionPerformed + } - private void lstSelectedEquipmentValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstSelectedEquipmentValueChanged + private void lstSelectedEquipmentValueChanged(javax.swing.event.ListSelectionEvent evt) { if( lstSelectedEquipment.getSelectedIndex() < 0 ) { return; } abPlaceable p = (abPlaceable) Equipment[SELECTED][lstSelectedEquipment.getSelectedIndex()]; ShowInfoOn( p ); -}//GEN-LAST:event_lstSelectedEquipmentValueChanged + } - private void lstSelectedEquipmentKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_lstSelectedEquipmentKeyPressed - if ( evt.getKeyCode() == KeyEvent.VK_DELETE ) { - btnRemoveEquipActionPerformed(new ActionEvent(evt.getSource(), evt.getID(), null)); + private void lstSelectedEquipmentKeyPressed(java.awt.event.KeyEvent evt) { + if ( evt.getKeyCode() == KeyEvent.VK_DELETE ) { + btnRemoveEquipActionPerformed(new ActionEvent(evt.getSource(), evt.getID(), null)); + } } -}//GEN-LAST:event_lstSelectedEquipmentKeyPressed - private void btnRemoveEquipActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRemoveEquipActionPerformed + private void btnRemoveEquipActionPerformed(java.awt.event.ActionEvent evt) { if( lstSelectedEquipment.getSelectedIndex() < 0 ) { return; } int[] selected = lstSelectedEquipment.getSelectedIndices(); if( selected.length == 0 ) { return; } // we work in reverse so we can properly manage the items in the queue for( int i = selected.length - 1; i >= 0; i-- ) { - // abPlaceable p = (abPlaceable) locArmor.GetLoadout().GetNonCore().get( lstSelectedEquipment.getSelectedIndex() ); abPlaceable p = (abPlaceable) CurVee.GetLoadout().GetNonCore().get( selected[i] ); if ( p instanceof TargetingComputer ) { CurVee.UseTC(false, CurVee.GetTechBase() == AvailableCode.TECH_CLAN); @@ -6263,9 +6259,9 @@ private void btnRemoveEquipActionPerformed(java.awt.event.ActionEvent evt) {//GE // now refresh the information panes RefreshSummary(); RefreshInfoPane(); -}//GEN-LAST:event_btnRemoveEquipActionPerformed + } - private void btnClearEquipActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnClearEquipActionPerformed + private void btnClearEquipActionPerformed(java.awt.event.ActionEvent evt) { CurVee.GetLoadout().SafeClearLoadout(); // refresh the selected equipment listbox @@ -6287,9 +6283,9 @@ private void btnClearEquipActionPerformed(java.awt.event.ActionEvent evt) {//GEN // now refresh the information panes RefreshSummary(); RefreshInfoPane(); -}//GEN-LAST:event_btnClearEquipActionPerformed + } - private void btnAddEquipActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAddEquipActionPerformed + private void btnAddEquipActionPerformed(java.awt.event.ActionEvent evt) { abPlaceable a = null; int Index = 0; ArrayList v; @@ -6435,18 +6431,18 @@ private void btnAddEquipActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F RefreshInfoPane(); cmbNumEquips.setSelectedIndex( 0 ); } -}//GEN-LAST:event_btnAddEquipActionPerformed + } - private void btnAddToForceListActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAddToForceListActionPerformed + private void btnAddToForceListActionPerformed(java.awt.event.ActionEvent evt) { -}//GEN-LAST:event_btnAddToForceListActionPerformed + } - private void btnForceListActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnForceListActionPerformed + private void btnForceListActionPerformed(java.awt.event.ActionEvent evt) { GetForceDialogue().setLocationRelativeTo(this); GetForceDialogue().setVisible(true); -}//GEN-LAST:event_btnForceListActionPerformed + } - private void spnCruiseMPStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnCruiseMPStateChanged + private void spnCruiseMPStateChanged(javax.swing.event.ChangeEvent evt) { if( Load ) { return; } // see what changed and perform the appropriate action @@ -6454,7 +6450,6 @@ private void spnCruiseMPStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-F javax.swing.JComponent editor = spnCruiseMP.getEditor(); javax.swing.JFormattedTextField tf = ((javax.swing.JSpinner.DefaultEditor)editor).getTextField(); - //n.setMinimum(1); // get the value from the text box, if it's valid. try { spnCruiseMP.commitEdit(); @@ -6487,19 +6482,17 @@ private void spnCruiseMPStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-F // spinner model and recalculate the heat sinks FixMPSpinner(); FixJJSpinnerModel(); - //CurVee.GetHeatSinks().ReCalculate(); - //CurVee.GetLoadout().UnallocateFuelTanks(); // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnCruiseMPStateChanged + } - private void spnTonnageFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_spnTonnageFocusGained + private void spnTonnageFocusGained(java.awt.event.FocusEvent evt) { - }//GEN-LAST:event_spnTonnageFocusGained + } - private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSaveActionPerformed + private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) { setCursor( Hourglass ); File savevee = GetSaveFile( "saw", Prefs.get( "LastOpenCVDirectory", "" ), true, false ); @@ -6553,7 +6546,8 @@ private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST setCursor( NormalCursor ); setTitle( saw.Constants.AppName + " " + saw.Constants.GetVersion() + " - " + CurVee.GetName() + " " + CurVee.GetModel() ); CurVee.SetChanged( false ); - }//GEN-LAST:event_btnSaveActionPerformed + } + private void SaveOmniFluffInfo() { if( SetSource ) { CurVee.setSource( txtSource.getText() ); @@ -6763,7 +6757,7 @@ private boolean VerifyVehicle( ActionEvent evt ) { return true; } - private void spnTonnageStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnTonnageStateChanged + private void spnTonnageStateChanged(javax.swing.event.ChangeEvent evt) { if( Load ) { return; } // We have to decode the selected index to set values. A bit safer, I @@ -6816,10 +6810,9 @@ private void spnTonnageStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FI FixArmorSpinners(); // now refresh the information panes - //RefreshInternalPoints(); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnTonnageStateChanged + } private void EnableJumpJets( boolean enable ) { // this enables or disables the jump jet spinner if needed @@ -6952,8 +6945,6 @@ private void GetNewVee() { BuildArmorSelector(); BuildExpEquipmentSelector(); CheckOmni(); - //cmbEngineType.setSelectedItem( saw.Constants.DEFAULT_ENGINE ); - //cmbArmorType.setSelectedItem( saw.Constants.DEFAULT_ARMOR ); FixMPSpinner(); FixJJSpinnerModel(); FixArmorSpinners(); @@ -7029,7 +7020,6 @@ public void setValueAt( Object value, int row, int col ) { //} } } ); - tblWeaponManufacturers.getInputMap( javax.swing.JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put( javax.swing.KeyStroke.getKeyStroke( java.awt.event.KeyEvent.VK_TAB, 0, false ), "selectNextRow" ); if( cmbEra.getSelectedIndex() == AvailableCode.ERA_ALL ) { @@ -7062,6 +7052,7 @@ private void CheckOmni() { btnLockChassis.setEnabled( false ); } } + private void RefreshEquipment() { // refreshes the equipment selectors //fix the CASE control @@ -7346,6 +7337,7 @@ private void RecalcArmor() { } SetPatchworkArmor(); } + private boolean AddECM() { // Adds an ECM suite if a certain system needs it if( Prefs.getBoolean( "AutoAddECM", true ) ) { @@ -7486,7 +7478,7 @@ private void RecalcEquipment() { } } - private void cmbEngineTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbEngineTypeActionPerformed + private void cmbEngineTypeActionPerformed(java.awt.event.ActionEvent evt) { if( Load ) { return; } if( BuildLookupName( CurVee.GetEngine().GetCurrentState() ).equals( (String) cmbEngineType.getSelectedItem() ) ) { // only nuclear-powered mechs may use jump jets @@ -7504,25 +7496,11 @@ private void cmbEngineTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN return; } RecalcEngine(); - //spnCruiseMP.setValue(CurVee.getMinCruiseMP()); FixMPSpinner(); //When the engine changes we need to re-check the Heat Sinks CurVee.ResetHeatSinks(); - // only nuclear-powered mechs may use jump jets - /*if( CurVee.GetEngine().IsNuclear() ) { - /* - if( cmbJumpJetType.getSelectedItem() == null ) { - EnableJumpJets( false ); - } else { - EnableJumpJets( true ); - } - - } else { - EnableJumpJets( false ); - }*/ - // refresh the selected equipment listbox if( CurVee.GetLoadout().GetNonCore().toArray().length <= 0 ) { Equipment[SELECTED] = new Object[] { " " }; @@ -7534,9 +7512,9 @@ private void cmbEngineTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_cmbEngineTypeActionPerformed + } - private void cmbEraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbEraActionPerformed + private void cmbEraActionPerformed(java.awt.event.ActionEvent evt) { if( Load ) { return; } // whenever the era is changed we basically need to reset the GUI and // most of the mech. Certain things we will transfer. @@ -7595,7 +7573,6 @@ private void cmbEraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST: CurVee.SetChanged(true); if( CurVee.IsOmni() ) { - //BuildJumpJetSelector(); RefreshEquipment(); RefreshSummary(); RefreshInfoPane(); @@ -7624,11 +7601,6 @@ private void cmbEraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST: // refresh all the combo boxes. BuildChassisSelector(); BuildEngineSelector(); - //BuildGyroSelector(); - //BuildCockpitSelector(); - //BuildEnhancementSelector(); - //BuildHeatsinkSelector(); - //BuildJumpJetSelector(); BuildArmorSelector(); FixMPSpinner(); FixJJSpinnerModel(); @@ -7640,29 +7612,21 @@ private void cmbEraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST: // when a new era is selected, we have to recalculate the mech RecalcEngine(); - //RecalcGyro(); - //RecalcIntStruc(); - //RecalcCockpit(); - //CurVee.GetActuators().PlaceActuators(); - //RecalcHeatSinks(); - //RecalcJumpJets(); - //RecalcEnhancements(); RecalcArmor(); RecalcEquipment(); // since you can only ever change the era when not restricted, we're not // doing it here. Pass in default values. CurVee.GetLoadout().FlushIllegal(); - //CurVee.GetLoadout().FlushIllegal( cmbEra.getSelectedIndex(), 0, false ); // now refresh the information panes RefreshSummary(); RefreshInfoPane(); SetWeaponChoosers(); ResetAmmo(); - }//GEN-LAST:event_cmbEraActionPerformed + } - private void chkFractionalActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkFractionalActionPerformed + private void chkFractionalActionPerformed(java.awt.event.ActionEvent evt) { if( chkFractional.isSelected() == CurVee.UsingFractionalAccounting() ) { return; } CurVee.SetFractionalAccounting( chkFractional.isSelected() ); if( ! CurVee.UsingFractionalAccounting() ) { @@ -7677,17 +7641,17 @@ private void chkFractionalActionPerformed(java.awt.event.ActionEvent evt) {//GEN RefreshEquipment(); RefreshSummary(); RefreshInfoPane(); -}//GEN-LAST:event_chkFractionalActionPerformed + } - private void spnTonnageInputMethodTextChanged(java.awt.event.InputMethodEvent evt) {//GEN-FIRST:event_spnTonnageInputMethodTextChanged + private void spnTonnageInputMethodTextChanged(java.awt.event.InputMethodEvent evt) { spnTonnageStateChanged(null); - }//GEN-LAST:event_spnTonnageInputMethodTextChanged + } - private void spnCruiseMPInputMethodTextChanged(java.awt.event.InputMethodEvent evt) {//GEN-FIRST:event_spnCruiseMPInputMethodTextChanged + private void spnCruiseMPInputMethodTextChanged(java.awt.event.InputMethodEvent evt) { spnCruiseMPStateChanged(null); - }//GEN-LAST:event_spnCruiseMPInputMethodTextChanged + } - private void btnMaximizeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnMaximizeActionPerformed + private void btnMaximizeActionPerformed(java.awt.event.ActionEvent evt) { // this simply maximizes the mech's armor CVArmor a = CurVee.GetArmor(); a.Maximize(); @@ -7698,9 +7662,9 @@ private void btnMaximizeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_btnMaximizeActionPerformed + } - private void cmbArmorTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbArmorTypeActionPerformed + private void cmbArmorTypeActionPerformed(java.awt.event.ActionEvent evt) { if( Load ) { return; } if( BuildLookupName( CurVee.GetArmor().GetCurrentState() ).equals( (String) cmbArmorType.getSelectedItem() ) ) { return; @@ -7712,9 +7676,9 @@ private void cmbArmorTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN- // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_cmbArmorTypeActionPerformed + } - private void btnUseRemainingActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnUseRemainingActionPerformed + private void btnUseRemainingActionPerformed(java.awt.event.ActionEvent evt) { // see if we have a good number double freetons = CurVee.GetTonnage() - CurVee.GetCurrentTons() + CurVee.GetArmor().GetTonnage(); @@ -7737,9 +7701,9 @@ private void btnUseRemainingActionPerformed(java.awt.event.ActionEvent evt) {//G // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_btnUseRemainingActionPerformed + } - private void btnLoadImageActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLoadImageActionPerformed + private void btnLoadImageActionPerformed(java.awt.event.ActionEvent evt) { // Opens a file chooser for the user, then resizes the chosen image to // fit in the fluff label and adds it JFileChooser fc = new JFileChooser(); @@ -7796,15 +7760,15 @@ private void btnLoadImageActionPerformed(java.awt.event.ActionEvent evt) {//GEN- // add the image to the fluff image label lblFluffImage.setIcon( newFluffImage ); CurVee.SetSSWImage( fc.getSelectedFile().getPath() ); -}//GEN-LAST:event_btnLoadImageActionPerformed + } - private void btnClearImageActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnClearImageActionPerformed + private void btnClearImageActionPerformed(java.awt.event.ActionEvent evt) { // Set the fluff image to default lblFluffImage.setIcon( null ); CurVee.SetSSWImage(""); -}//GEN-LAST:event_btnClearImageActionPerformed + } - private void btnExportTXTActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportTXTActionPerformed + private void btnExportTXTActionPerformed(java.awt.event.ActionEvent evt) { // exports the mech to TXT format String CurLoadout = ""; if( CurVee.IsOmni() ) { @@ -7839,9 +7803,9 @@ private void btnExportTXTActionPerformed(java.awt.event.ActionEvent evt) {//GEN- //cmbOmniVariantActionPerformed( evt ); } setTitle( saw.Constants.AppName + " " + saw.Constants.GetVersion() + " - " + CurVee.GetName() + " " + CurVee.GetModel() ); -}//GEN-LAST:event_btnExportTXTActionPerformed + } - private void btnExportHTMLActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportHTMLActionPerformed + private void btnExportHTMLActionPerformed(java.awt.event.ActionEvent evt) { // exports the mech to HTML format String CurLoadout = ""; if( CurVee.IsOmni() ) { @@ -7876,11 +7840,10 @@ private void btnExportHTMLActionPerformed(java.awt.event.ActionEvent evt) {//GEN //cmbOmniVariantActionPerformed( evt ); } setTitle( saw.Constants.AppName + " " + saw.Constants.GetVersion() + " - " + CurVee.GetName() + " " + CurVee.GetModel() ); -}//GEN-LAST:event_btnExportHTMLActionPerformed + } - private void btnExportMTFActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportMTFActionPerformed + private void btnExportMTFActionPerformed(java.awt.event.ActionEvent evt) { // exports the mech to MTF format for use in Megamek - String dir = Prefs.get( "MTFExportPath", "none" ); if( dir.equals( "none" ) ) { dir = Prefs.get( "LastOpenCVDirectory", "" ); @@ -7903,9 +7866,9 @@ private void btnExportMTFActionPerformed(java.awt.event.ActionEvent evt) {//GEN- // if there were no problems, let the user know how it went Media.Messager( this, "Vehicle saved successfully to MTF:\n" + filename ); setTitle( saw.Constants.AppName + " " + saw.Constants.GetVersion() + " - " + CurVee.GetName() + " " + CurVee.GetModel() ); -}//GEN-LAST:event_btnExportMTFActionPerformed + } - private void btnAddQuirkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAddQuirkActionPerformed + private void btnAddQuirkActionPerformed(java.awt.event.ActionEvent evt) { /* dlgQuirks qmanage = new dlgQuirks(this, true, data, quirks); qmanage.setLocationRelativeTo(this); @@ -7913,9 +7876,9 @@ private void btnAddQuirkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F tblQuirks.setModel(new tbQuirks(quirks)); * */ -}//GEN-LAST:event_btnAddQuirkActionPerformed + } - private void cmbTurretActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbTurretActionPerformed + private void cmbTurretActionPerformed(java.awt.event.ActionEvent evt) { if( Load ) { return; } //TODO add logic to CombatVehicle to handle the turret String Turret = cmbTurret.getSelectedItem().toString(); @@ -7939,9 +7902,9 @@ private void cmbTurretActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR RefreshSelectedEquipment(); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_cmbTurretActionPerformed + } - private void btnSetArmorTonsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSetArmorTonsActionPerformed + private void btnSetArmorTonsActionPerformed(java.awt.event.ActionEvent evt) { // we'll need a new dialogue to get the tonnage dlgArmorTonnage ArmorDialogue = new dlgArmorTonnage( this, true, CurVee ); ArmorDialogue.setLocationRelativeTo( this ); @@ -7970,9 +7933,9 @@ private void btnSetArmorTonsActionPerformed(java.awt.event.ActionEvent evt) {//G // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_btnSetArmorTonsActionPerformed + } - private void spnHeatSinksStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnHeatSinksStateChanged + private void spnHeatSinksStateChanged(javax.swing.event.ChangeEvent evt) { if( Load ) { return; } // see what changed and perform the appropriate action javax.swing.SpinnerNumberModel n = (SpinnerNumberModel) spnHeatSinks.getModel(); @@ -8007,7 +7970,7 @@ private void spnHeatSinksStateChanged(javax.swing.event.ChangeEvent evt) {//GEN- // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnHeatSinksStateChanged + } private void FixHeatSinkSpinnerModel() { // mainly provided for Omnis. @@ -8022,15 +7985,15 @@ private void FixHeatSinkSpinnerModel() { ((JSpinner.DefaultEditor)spnHeatSinks.getEditor()).getTextField().addFocusListener(spinners); } - private void spnHeatSinksFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_spnHeatSinksFocusGained - // TODO add your handling code here: - }//GEN-LAST:event_spnHeatSinksFocusGained + private void spnHeatSinksFocusGained(java.awt.event.FocusEvent evt) { + + } + + private void spnHeatSinksInputMethodTextChanged(java.awt.event.InputMethodEvent evt) { - private void spnHeatSinksInputMethodTextChanged(java.awt.event.InputMethodEvent evt) {//GEN-FIRST:event_spnHeatSinksInputMethodTextChanged - // TODO add your handling code here: - }//GEN-LAST:event_spnHeatSinksInputMethodTextChanged + } - private void spnFrontArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnFrontArmorStateChanged + private void spnFrontArmorStateChanged(javax.swing.event.ChangeEvent evt) { if( Load ) { return; } // see what changed and perform the appropriate action javax.swing.SpinnerNumberModel n = (SpinnerNumberModel) spnFrontArmor.getModel(); @@ -8079,9 +8042,9 @@ private void spnFrontArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnFrontArmorStateChanged + } - private void spnLeftArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnLeftArmorStateChanged + private void spnLeftArmorStateChanged(javax.swing.event.ChangeEvent evt) { if( Load ) { return; } // see what changed and perform the appropriate action javax.swing.SpinnerNumberModel n = (SpinnerNumberModel) spnLeftArmor.getModel(); @@ -8130,9 +8093,9 @@ private void spnLeftArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN- // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnLeftArmorStateChanged + } - private void spnRightArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnRightArmorStateChanged + private void spnRightArmorStateChanged(javax.swing.event.ChangeEvent evt) { if( Load ) { return; } // see what changed and perform the appropriate action javax.swing.SpinnerNumberModel n = (SpinnerNumberModel) spnRightArmor.getModel(); @@ -8181,9 +8144,9 @@ private void spnRightArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnRightArmorStateChanged + } - private void spnRearArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnRearArmorStateChanged + private void spnRearArmorStateChanged(javax.swing.event.ChangeEvent evt) { if( Load ) { return; } // see what changed and perform the appropriate action javax.swing.SpinnerNumberModel n = (SpinnerNumberModel) spnRearArmor.getModel(); @@ -8232,9 +8195,9 @@ private void spnRearArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN- // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnRearArmorStateChanged + } - private void spnTurretArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnTurretArmorStateChanged + private void spnTurretArmorStateChanged(javax.swing.event.ChangeEvent evt) { if( Load ) { return; } // see what changed and perform the appropriate action javax.swing.SpinnerNumberModel n = (SpinnerNumberModel) spnTurretArmor.getModel(); @@ -8276,51 +8239,51 @@ private void spnTurretArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GE // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnTurretArmorStateChanged + } - private void lstChooseAmmunitionValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstChooseAmmunitionValueChanged + private void lstChooseAmmunitionValueChanged(javax.swing.event.ListSelectionEvent evt) { if( lstChooseAmmunition.getSelectedIndex() < 0 ) { return; } CurItem = (abPlaceable) Equipment[AMMUNITION][lstChooseAmmunition.getSelectedIndex()]; ShowInfoOn( CurItem ); - }//GEN-LAST:event_lstChooseAmmunitionValueChanged + } - private void lstChooseArtilleryValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstChooseArtilleryValueChanged + private void lstChooseArtilleryValueChanged(javax.swing.event.ListSelectionEvent evt) { if( lstChooseArtillery.getSelectedIndex() < 0 ) { return; } CurItem = (abPlaceable) Equipment[ARTILLERY][lstChooseArtillery.getSelectedIndex()]; ShowInfoOn( CurItem ); - }//GEN-LAST:event_lstChooseArtilleryValueChanged + } - private void lstChooseEquipmentValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstChooseEquipmentValueChanged + private void lstChooseEquipmentValueChanged(javax.swing.event.ListSelectionEvent evt) { if( lstChooseEquipment.getSelectedIndex() < 0 ) { return; } CurItem = (abPlaceable) Equipment[EQUIPMENT][lstChooseEquipment.getSelectedIndex()]; ShowInfoOn( CurItem ); - }//GEN-LAST:event_lstChooseEquipmentValueChanged + } - private void lstChooseMissileValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstChooseMissileValueChanged + private void lstChooseMissileValueChanged(javax.swing.event.ListSelectionEvent evt) { if( lstChooseMissile.getSelectedIndex() < 0 ) { return; } CurItem = (abPlaceable) Equipment[MISSILE][lstChooseMissile.getSelectedIndex()]; ShowInfoOn( CurItem ); - }//GEN-LAST:event_lstChooseMissileValueChanged + } - private void lstChooseEnergyValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstChooseEnergyValueChanged + private void lstChooseEnergyValueChanged(javax.swing.event.ListSelectionEvent evt) { if( lstChooseEnergy.getSelectedIndex() < 0 ) { return; } CurItem = (abPlaceable) Equipment[ENERGY][lstChooseEnergy.getSelectedIndex()]; ShowInfoOn( CurItem ); - }//GEN-LAST:event_lstChooseEnergyValueChanged + } - private void lstChooseBallisticValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstChooseBallisticValueChanged + private void lstChooseBallisticValueChanged(javax.swing.event.ListSelectionEvent evt) { if( lstChooseBallistic.getSelectedIndex() < 0 ) { return; } CurItem = (abPlaceable) Equipment[BALLISTIC][lstChooseBallistic.getSelectedIndex()]; ShowInfoOn( CurItem ); -}//GEN-LAST:event_lstChooseBallisticValueChanged + } - private void lstChoosePhysicalValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstChoosePhysicalValueChanged + private void lstChoosePhysicalValueChanged(javax.swing.event.ListSelectionEvent evt) { if( lstChoosePhysical.getSelectedIndex() < 0 ) { return; } CurItem = (abPlaceable) Equipment[PHYSICAL][lstChoosePhysical.getSelectedIndex()]; ShowInfoOn( CurItem ); - }//GEN-LAST:event_lstChoosePhysicalValueChanged + } - private void cmbTechBaseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbTechBaseActionPerformed + private void cmbTechBaseActionPerformed(java.awt.event.ActionEvent evt) { if( Load ) { return; } // do we really need to do this? if( CurVee.IsOmni() ) { @@ -8364,11 +8327,6 @@ private void cmbTechBaseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F // refresh all the combo boxes. BuildChassisSelector(); BuildEngineSelector(); - //BuildGyroSelector(); - //BuildCockpitSelector(); - //BuildEnhancementSelector(); - //BuildHeatsinkSelector(); - //BuildJumpJetSelector(); BuildArmorSelector(); RefreshEquipment(); FixMPSpinner(); @@ -8384,13 +8342,6 @@ private void cmbTechBaseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F } // recalculate the mech. RecalcEngine(); - //RecalcGyro(); - //RecalcIntStruc(); - //RecalcCockpit(); - //CurVee.GetActuators().PlaceActuators(); - //RecalcHeatSinks(); - //RecalcJumpJets(); - //RecalcEnhancements(); RecalcArmor(); } @@ -8403,9 +8354,9 @@ private void cmbTechBaseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F RefreshSummary(); RefreshInfoPane(); SetWeaponChoosers(); - }//GEN-LAST:event_cmbTechBaseActionPerformed + } - private void spnRotorArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnRotorArmorStateChanged + private void spnRotorArmorStateChanged(javax.swing.event.ChangeEvent evt) { if( Load ) { return; } // see what changed and perform the appropriate action javax.swing.SpinnerNumberModel n = (SpinnerNumberModel) spnRotorArmor.getModel(); @@ -8447,9 +8398,9 @@ private void spnRotorArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnRotorArmorStateChanged + } - private void btnNewVeeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNewVeeActionPerformed + private void btnNewVeeActionPerformed(java.awt.event.ActionEvent evt) { if( CurVee.HasChanged() ) { int choice = javax.swing.JOptionPane.showConfirmDialog( this, "The current Vehicle has changed.\nDo you want to discard those changes?", "Discard Changes?", javax.swing.JOptionPane.YES_NO_OPTION ); @@ -8457,9 +8408,9 @@ private void btnNewVeeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR } GetNewVee(); Prefs.put("Currentfile", ""); - }//GEN-LAST:event_btnNewVeeActionPerformed + } - private void btnLockChassisActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLockChassisActionPerformed + private void btnLockChassisActionPerformed(java.awt.event.ActionEvent evt) { // currently testing right now. SaveOmniFluffInfo(); String VariantName = ""; @@ -8501,16 +8452,14 @@ private void btnLockChassisActionPerformed(java.awt.event.ActionEvent evt) {//GE // make it an omni CurVee.SetOmni(VariantName); chkOmniVee.setEnabled(false); - //FixTransferHandlers(); FixJJSpinnerModel(); FixHeatSinkSpinnerModel(); LockGUIForOmni(); RefreshOmniVariants(); RefreshOmniChoices(); - //SolidifyJJManufacturer(); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_btnLockChassisActionPerformed + } private void RefreshOmniVariants() { ArrayList v = CurVee.GetLoadouts(); @@ -8629,7 +8578,7 @@ private void LockGUIForOmni() { btnRenameVariant.setEnabled( true ); } - private void btnAddVariantActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAddVariantActionPerformed + private void btnAddVariantActionPerformed(java.awt.event.ActionEvent evt) { SaveOmniFluffInfo(); String VariantName = ""; @@ -8657,20 +8606,16 @@ private void btnAddVariantActionPerformed(java.awt.event.ActionEvent evt) {//GEN // fix the GUI LoadOmniFluffInfo(); - //FixTransferHandlers(); - //SetLoadoutArrays(); SetWeaponChoosers(); - //BuildJumpJetSelector(); FixJJSpinnerModel(); FixHeatSinkSpinnerModel(); RefreshOmniVariants(); RefreshOmniChoices(); - //SolidifyJJManufacturer(); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_btnAddVariantActionPerformed + } - private void btnDeleteVariantActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDeleteVariantActionPerformed + private void btnDeleteVariantActionPerformed(java.awt.event.ActionEvent evt) { // see if the user actually wants to delete the variant int choice = javax.swing.JOptionPane.showConfirmDialog(this, "Are you sure you want to delete this variant?", "Delete Variant?", javax.swing.JOptionPane.YES_NO_OPTION); @@ -8689,19 +8634,15 @@ private void btnDeleteVariantActionPerformed(java.awt.event.ActionEvent evt) {// // refresh all the displays LoadOmniFluffInfo(); RefreshOmniVariants(); - //FixTransferHandlers(); - //SetLoadoutArrays(); SetWeaponChoosers(); - //BuildJumpJetSelector(); FixJJSpinnerModel(); FixHeatSinkSpinnerModel(); RefreshOmniChoices(); - //SolidifyJJManufacturer(); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_btnDeleteVariantActionPerformed + } - private void btnRenameVariantActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRenameVariantActionPerformed + private void btnRenameVariantActionPerformed(java.awt.event.ActionEvent evt) { SaveOmniFluffInfo(); String VariantName = ""; @@ -8734,9 +8675,9 @@ private void btnRenameVariantActionPerformed(java.awt.event.ActionEvent evt) {// CurVee.GetLoadout().SetName(VariantName); RefreshOmniVariants(); - }//GEN-LAST:event_btnRenameVariantActionPerformed + } - private void cmbOmniVariantActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbOmniVariantActionPerformed + private void cmbOmniVariantActionPerformed(java.awt.event.ActionEvent evt) { SaveOmniFluffInfo(); String variant = (String) cmbOmniVariant.getSelectedItem(); boolean changed = CurVee.HasChanged(); @@ -8745,11 +8686,7 @@ private void cmbOmniVariantActionPerformed(java.awt.event.ActionEvent evt) {//GE // now fix the GUI LoadOmniFluffInfo(); - //FixTransferHandlers(); - //SetLoadoutArrays(); SetWeaponChoosers(); - //BuildJumpJetSelector(); - //cmbJumpJetType.setSelectedItem(CurVee.GetJumpJets().LookupName()); FixJJSpinnerModel(); FixHeatSinkSpinnerModel(); RefreshOmniVariants(); @@ -8761,26 +8698,26 @@ private void cmbOmniVariantActionPerformed(java.awt.event.ActionEvent evt) {//GE // this prevents the program from setting the changed tag if we simply // open an omnimech for browsing. CurVee.SetChanged(changed); - }//GEN-LAST:event_cmbOmniVariantActionPerformed + } - private void chkOmniVeeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkOmniVeeActionPerformed + private void chkOmniVeeActionPerformed(java.awt.event.ActionEvent evt) { if( chkOmniVee.isSelected() ) { btnLockChassis.setEnabled( true ); } else { btnLockChassis.setEnabled( false ); } cmbTurretActionPerformed(evt); - }//GEN-LAST:event_chkOmniVeeActionPerformed + } - private void cmbProductionEraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbProductionEraActionPerformed + private void cmbProductionEraActionPerformed(java.awt.event.ActionEvent evt) { CurVee.SetProductionEra(cmbProductionEra.getSelectedIndex()); - }//GEN-LAST:event_cmbProductionEraActionPerformed + } - private void mnuNewMechActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuNewMechActionPerformed + private void mnuNewMechActionPerformed(java.awt.event.ActionEvent evt) { btnNewVeeActionPerformed(evt); - }//GEN-LAST:event_mnuNewMechActionPerformed + } - private void mnuLoadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuLoadActionPerformed + private void mnuLoadActionPerformed(java.awt.event.ActionEvent evt) { if (CurVee.HasChanged()) { int choice = javax.swing.JOptionPane.showConfirmDialog(this, "The current Vehicle has changed.\nDo you want to discard those changes?", "Discard Changes?", javax.swing.JOptionPane.YES_NO_OPTION); @@ -8796,11 +8733,12 @@ private void mnuLoadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST CurVee = m; LoadVehicleIntoGUI(); CurVee.SetChanged(false); - }//GEN-LAST:event_mnuLoadActionPerformed + } - private void mnuOpenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuOpenActionPerformed + private void mnuOpenActionPerformed(java.awt.event.ActionEvent evt) { btnOpenActionPerformed(evt); - }//GEN-LAST:event_mnuOpenActionPerformed + } + public CombatVehicle LoadVehicle (){ CombatVehicle m = null; @@ -8867,8 +8805,7 @@ public String getDescription() { return m; } - private void LoadVehicleFromFile( String filename ) - { + private void LoadVehicleFromFile( String filename ) { CombatVehicle m = null; if (! filename.isEmpty() ) { try { @@ -8972,7 +8909,6 @@ public void LoadVehicleIntoGUI() { RefreshEquipment(); chkUseTC.setSelected( CurVee.UsingTC() ); chkEnviroSealing.setSelected( CurVee.HasEnvironmentalSealing() ); - //chkCommandConsole.setSelected( CurVee.HasCommandConsole() ); RefreshSummary(); RefreshInfoPane(); SetWeaponChoosers(); @@ -9009,9 +8945,7 @@ public void LoadVehicleIntoGUI() { CurVee.SetChanged(false); } - - - private void mnuImportHMPActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuImportHMPActionPerformed + private void mnuImportHMPActionPerformed(java.awt.event.ActionEvent evt) { if (CurVee.HasChanged()) { int choice = javax.swing.JOptionPane.showConfirmDialog(this, "The current Vehicle has changed.\nDo you want to discard those changes?", "Discard Changes?", javax.swing.JOptionPane.YES_NO_OPTION); @@ -9090,15 +9024,15 @@ public String getDescription() { CurVee = m; LoadVehicleIntoGUI(); CurVee.SetChanged(false); - }//GEN-LAST:event_mnuImportHMPActionPerformed + } - private void mnuBatchHMPActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuBatchHMPActionPerformed + private void mnuBatchHMPActionPerformed(java.awt.event.ActionEvent evt) { dlgBatchHMP batch = new dlgBatchHMP(this, true); batch.setLocationRelativeTo(this); batch.setVisible(true); - }//GEN-LAST:event_mnuBatchHMPActionPerformed + } - private void mnuSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuSaveActionPerformed + private void mnuSaveActionPerformed(java.awt.event.ActionEvent evt) { // Solidify the mech first. setCursor(Hourglass); @@ -9161,9 +9095,9 @@ private void mnuSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST setCursor(NormalCursor); setTitle(saw.Constants.AppName + " " + saw.Constants.GetVersion() + " - " + CurVee.GetName() + " " + CurVee.GetModel()); CurVee.SetChanged(false); - }//GEN-LAST:event_mnuSaveActionPerformed + } - private void mnuSaveAsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuSaveAsActionPerformed + private void mnuSaveAsActionPerformed(java.awt.event.ActionEvent evt) { setCursor(Hourglass); File savemech = GetSaveFile("saw", Prefs.get("LastOpenCVDirectory", ""), false, false); if (savemech == null) { @@ -9220,27 +9154,27 @@ private void mnuSaveAsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR setTitle(saw.Constants.AppName + " " + saw.Constants.GetVersion() + " - " + CurVee.GetName() + " " + CurVee.GetModel()); CurVee.SetChanged(false); setCursor(NormalCursor); - }//GEN-LAST:event_mnuSaveAsActionPerformed + } - private void mnuExportHTMLActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuExportHTMLActionPerformed + private void mnuExportHTMLActionPerformed(java.awt.event.ActionEvent evt) { SetSource = false; btnExportHTMLActionPerformed(evt); SetSource = true; - }//GEN-LAST:event_mnuExportHTMLActionPerformed + } - private void mnuExportMTFActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuExportMTFActionPerformed + private void mnuExportMTFActionPerformed(java.awt.event.ActionEvent evt) { SetSource = false; btnExportMTFActionPerformed(evt); SetSource = true; - }//GEN-LAST:event_mnuExportMTFActionPerformed + } - private void mnuExportTXTActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuExportTXTActionPerformed + private void mnuExportTXTActionPerformed(java.awt.event.ActionEvent evt) { SetSource = false; btnExportTXTActionPerformed(evt); SetSource = true; - }//GEN-LAST:event_mnuExportTXTActionPerformed + } - private void mnuExportClipboardActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuExportClipboardActionPerformed + private void mnuExportClipboardActionPerformed(java.awt.event.ActionEvent evt) { // takes the text export and copies it to thesystem clipboard. String CurLoadout = ""; String output = ""; @@ -9267,20 +9201,20 @@ private void mnuExportClipboardActionPerformed(java.awt.event.ActionEvent evt) { } java.awt.datatransfer.Clipboard clipboard = java.awt.Toolkit.getDefaultToolkit().getSystemClipboard(); clipboard.setContents(export, this); - }//GEN-LAST:event_mnuExportClipboardActionPerformed + } - private void mnuCreateTCGMechActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuCreateTCGMechActionPerformed + private void mnuCreateTCGMechActionPerformed(java.awt.event.ActionEvent evt) { // Create CCG stats for mech // TODO: Add handling code to check if a canon card already exists. SolidifyVehicle(); //dlgCCGMech ccgMech = new dlgCCGMech(this, true, CurVee); //ccgMech.setLocationRelativeTo(this); //ccgMech.setVisible(true); - }//GEN-LAST:event_mnuCreateTCGMechActionPerformed + } - private void mnuPrintPreviewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuPrintPreviewActionPerformed + private void mnuPrintPreviewActionPerformed(java.awt.event.ActionEvent evt) { btnPrintActionPerformed(evt); - }//GEN-LAST:event_mnuPrintPreviewActionPerformed + } public void QuickSave() { File saveFile = GetSaveFile( "saw", Prefs.get( "LastOpenCVDirectory", "" ), true, false ); @@ -9299,7 +9233,7 @@ public void QuickSave() { } } - private void mnuExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuExitActionPerformed + private void mnuExitActionPerformed(java.awt.event.ActionEvent evt) { if (CurVee.HasChanged()) { int choice = javax.swing.JOptionPane.showConfirmDialog(this, "The current Vehicle has changed.\nDo you want to discard those changes?", "Discard Changes?", javax.swing.JOptionPane.YES_NO_OPTION); @@ -9308,11 +9242,10 @@ private void mnuExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST } } CloseProgram(); - }//GEN-LAST:event_mnuExitActionPerformed + } - private void mnuFileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuFileActionPerformed -// TODO add your handling code here: - }//GEN-LAST:event_mnuFileActionPerformed + private void mnuFileActionPerformed(java.awt.event.ActionEvent evt) { + } private void CloseProgram() { try { @@ -9326,21 +9259,21 @@ private void CloseProgram() { System.exit(0); } - private void mnuSummaryActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuSummaryActionPerformed + private void mnuSummaryActionPerformed(java.awt.event.ActionEvent evt) { SolidifyVehicle(); dlgSummaryInfo Summary = new dlgSummaryInfo(this, true, CurVee); Summary.setLocationRelativeTo(this); Summary.setVisible(true); - }//GEN-LAST:event_mnuSummaryActionPerformed + } - private void mnuCostBVBreakdownActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuCostBVBreakdownActionPerformed + private void mnuCostBVBreakdownActionPerformed(java.awt.event.ActionEvent evt) { SolidifyVehicle(); dlgCostBVBreakdown costbv = new dlgCostBVBreakdown(this, true, CurVee); costbv.setLocationRelativeTo(this); costbv.setVisible(true); - }//GEN-LAST:event_mnuCostBVBreakdownActionPerformed + } - private void mnuTextTROActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuTextTROActionPerformed + private void mnuTextTROActionPerformed(java.awt.event.ActionEvent evt) { SetSource = false; SolidifyVehicle(); dlgTextExport Text = new dlgTextExport(this, true, CurVee); @@ -9350,9 +9283,9 @@ private void mnuTextTROActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FI CurVee.SetCurLoadout((String) cmbOmniVariant.getSelectedItem()); } SetSource = true; - }//GEN-LAST:event_mnuTextTROActionPerformed + } - private void mnuBFBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuBFBActionPerformed + private void mnuBFBActionPerformed(java.awt.event.ActionEvent evt) { String[] call = {"java", "-Xmx256m", "-jar", "bfb.jar"}; try { Runtime.getRuntime().exec(call); @@ -9360,22 +9293,22 @@ private void mnuBFBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST: Media.Messager("Error while trying to open BFB\n" + ex.getMessage()); System.out.println(ex.getMessage()); } - }//GEN-LAST:event_mnuBFBActionPerformed + } - private void mnuOptionsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuOptionsActionPerformed + private void mnuOptionsActionPerformed(java.awt.event.ActionEvent evt) { dlgPrefs preferences = new dlgPrefs(this, true); preferences.setLocationRelativeTo(this); preferences.setVisible(true); ResetAmmo(); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_mnuOptionsActionPerformed + } - private void mnuViewToolbarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuViewToolbarActionPerformed + private void mnuViewToolbarActionPerformed(java.awt.event.ActionEvent evt) { setViewToolbar(mnuViewToolbar.getState()); - }//GEN-LAST:event_mnuViewToolbarActionPerformed + } - private void mnuClearUserDataActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuClearUserDataActionPerformed + private void mnuClearUserDataActionPerformed(java.awt.event.ActionEvent evt) { int choice = javax.swing.JOptionPane.showConfirmDialog(this, "This will remove all Solaris 7 user data.\nAre you sure you want to continue?", "Clear User Data?", javax.swing.JOptionPane.YES_NO_OPTION); if (choice == 1) { @@ -9385,9 +9318,9 @@ private void mnuClearUserDataActionPerformed(java.awt.event.ActionEvent evt) {// Prefs.put("S7Password", ""); Prefs.put("S7UserID", ""); } - }//GEN-LAST:event_mnuClearUserDataActionPerformed + } - private void mnuUnlockActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuUnlockActionPerformed + private void mnuUnlockActionPerformed(java.awt.event.ActionEvent evt) { int choice = javax.swing.JOptionPane.showConfirmDialog(this, "Are you sure you want to unlock the chassis?\nAll omni loadouts" + " will be deleted\nand the Vehicle will revert to its base loadout.", @@ -9401,9 +9334,9 @@ private void mnuUnlockActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR FixJJSpinnerModel(); FixHeatSinkSpinnerModel(); LoadVehicleIntoGUI(); - }//GEN-LAST:event_mnuUnlockActionPerformed + } - private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed + private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) { Overview.StartNewDocument(); Capabilities.StartNewDocument(); History.StartNewDocument(); @@ -9419,21 +9352,21 @@ private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FI txtJJModel.setText(""); txtCommSystem.setText(""); txtTNTSystem.setText(""); - }//GEN-LAST:event_jMenuItem1ActionPerformed + } - private void mnuCreditsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuCreditsActionPerformed + private void mnuCreditsActionPerformed(java.awt.event.ActionEvent evt) { dlgCredits Credits = new dlgCredits(this, true); Credits.setLocationRelativeTo(this); Credits.setVisible(true); - }//GEN-LAST:event_mnuCreditsActionPerformed + } - private void mnuAboutSSWActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuAboutSSWActionPerformed + private void mnuAboutSSWActionPerformed(java.awt.event.ActionEvent evt) { dlgAboutBox about = new dlgAboutBox(this, true); about.setLocationRelativeTo(this); about.setVisible(true); - }//GEN-LAST:event_mnuAboutSSWActionPerformed + } - private void btnPrintActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPrintActionPerformed + private void btnPrintActionPerformed(java.awt.event.ActionEvent evt) { SolidifyVehicle(); PagePrinter printer = SetupPrinter(); Scenario s = new Scenario(); @@ -9441,9 +9374,9 @@ private void btnPrintActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS dlgPreview prv = new dlgPreview("Print Preview", this, printer, s, imageTracker, true); prv.setLocationRelativeTo(this); prv.setVisible(true); - }//GEN-LAST:event_btnPrintActionPerformed + } - private void btnOpenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnOpenActionPerformed + private void btnOpenActionPerformed(java.awt.event.ActionEvent evt) { if( CurVee.HasChanged() ) { int choice = javax.swing.JOptionPane.showConfirmDialog( this, "The current Vehicle has changed.\nDo you want to discard those changes?", "Discard Changes?", javax.swing.JOptionPane.YES_NO_OPTION ); @@ -9454,24 +9387,22 @@ private void btnOpenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST dOpen.setSize( 1024, 600 ); dOpen.setVisible(true); - }//GEN-LAST:event_btnOpenActionPerformed + } private void formWindowClosed(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosed CloseProgram(); - }//GEN-LAST:event_formWindowClosed + } - private void btnOptionsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnOptionsActionPerformed + private void btnOptionsActionPerformed(java.awt.event.ActionEvent evt) { dlgPrefs preferences = new dlgPrefs( this, true ); preferences.setLocationRelativeTo( this ); preferences.setVisible( true ); - //Mechrender.Reset(); ResetAmmo(); - //RefreshInternalPoints(); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_btnOptionsActionPerformed + } - private void chkYearRestrictActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkYearRestrictActionPerformed + private void chkYearRestrictActionPerformed(java.awt.event.ActionEvent evt) { // This locks in the mech's production year, era, and tech base. int year = 0; if( CurVee.IsYearRestricted() == chkYearRestrict.isSelected() ) { return; } @@ -9568,11 +9499,6 @@ private void chkYearRestrictActionPerformed(java.awt.event.ActionEvent evt) {//G // first, refresh all the combo boxes. BuildChassisSelector(); BuildEngineSelector(); - //BuildGyroSelector(); - //BuildCockpitSelector(); - //BuildEnhancementSelector(); - //BuildHeatsinkSelector(); - //BuildJumpJetSelector(); BuildArmorSelector(); RefreshEquipment(); CheckOmni(); @@ -9582,16 +9508,8 @@ private void chkYearRestrictActionPerformed(java.awt.event.ActionEvent evt) {//G // now redo the mech based on what happened. RecalcEngine(); - //RecalcGyro(); - //RecalcIntStruc(); - //RecalcCockpit(); - //CurVee.GetActuators().PlaceActuators(); - //RecalcHeatSinks(); - //RecalcJumpJets(); - //RecalcEnhancements(); RecalcArmor(); RecalcEquipment(); - //CurVee.GetLoadout().FlushIllegal( cmbMechEra.getSelectedIndex(), year, chkYearRestrict.isSelected() ); CurVee.GetLoadout().FlushIllegal(); // finally, refresh the information panes @@ -9599,10 +9517,10 @@ private void chkYearRestrictActionPerformed(java.awt.event.ActionEvent evt) {//G RefreshInfoPane(); SetWeaponChoosers(); ResetAmmo(); - }//GEN-LAST:event_chkYearRestrictActionPerformed + } - private void btnExportClipboardIconActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportClipboardIconActionPerformed - // takes the text export and copies it to thesystem clipboard. + private void btnExportClipboardIconActionPerformed(java.awt.event.ActionEvent evt) { + // takes the text export and copies it to thesystem clipboard. String CurLoadout = ""; String output = ""; @@ -9628,15 +9546,15 @@ private void btnExportClipboardIconActionPerformed(java.awt.event.ActionEvent ev } java.awt.datatransfer.Clipboard clipboard = java.awt.Toolkit.getDefaultToolkit().getSystemClipboard(); clipboard.setContents( export, this ); - }//GEN-LAST:event_btnExportClipboardIconActionPerformed + } - private void btnChatInfoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnChatInfoActionPerformed + private void btnChatInfoActionPerformed(java.awt.event.ActionEvent evt) { java.awt.datatransfer.StringSelection export = new java.awt.datatransfer.StringSelection(CurVee.GetChatInfo()); java.awt.datatransfer.Clipboard clipboard = java.awt.Toolkit.getDefaultToolkit().getSystemClipboard(); clipboard.setContents(export, this); - }//GEN-LAST:event_btnChatInfoActionPerformed + } - private void btnExportHTMLIconActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportHTMLIconActionPerformed + private void btnExportHTMLIconActionPerformed(java.awt.event.ActionEvent evt) { SetSource = false; // exports the mech to HTML format String CurLoadout = ""; @@ -9673,21 +9591,21 @@ private void btnExportHTMLIconActionPerformed(java.awt.event.ActionEvent evt) {/ } setTitle( saw.Constants.AppName + " " + saw.Constants.GetVersion() + " - " + CurVee.GetName() + " " + CurVee.GetModel() ); SetSource = true; - }//GEN-LAST:event_btnExportHTMLIconActionPerformed + } - private void btnExportTextIconActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportTextIconActionPerformed + private void btnExportTextIconActionPerformed(java.awt.event.ActionEvent evt) { SetSource = false; btnExportTXTActionPerformed( evt ); SetSource = true; - }//GEN-LAST:event_btnExportTextIconActionPerformed + } - private void btnExportMTFIconActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportMTFIconActionPerformed + private void btnExportMTFIconActionPerformed(java.awt.event.ActionEvent evt) { SetSource = false; btnExportMTFActionPerformed( evt ); SetSource = true; - }//GEN-LAST:event_btnExportMTFIconActionPerformed + } - private void spnTurretTonnageStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnTurretTonnageStateChanged + private void spnTurretTonnageStateChanged(javax.swing.event.ChangeEvent evt) { double Tons = 0; try { @@ -9700,9 +9618,9 @@ private void spnTurretTonnageStateChanged(javax.swing.event.ChangeEvent evt) {// RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnTurretTonnageStateChanged + } - private void chkTrailerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkTrailerActionPerformed + private void chkTrailerActionPerformed(java.awt.event.ActionEvent evt) { CurVee.SetTrailer(chkTrailer.isSelected()); String curEngine = cmbEngineType.getSelectedItem().toString(); BuildEngineSelector(); @@ -9729,40 +9647,38 @@ private void chkTrailerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FI else cmbEngineType.setSelectedItem(curEngine); cmbEngineTypeActionPerformed(evt); - //spnCruiseMP.setValue(1); - //((SpinnerNumberModel)spnCruiseMP.getModel()).setMinimum(1); lblFlankMP.setText( "" + CurVee.getFlankMP() ); } SetWeaponChoosers(); RefreshEquipment(); RefreshInfoPane(); - }//GEN-LAST:event_chkTrailerActionPerformed + } - private void chkFlotationHullActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkFlotationHullActionPerformed + private void chkFlotationHullActionPerformed(java.awt.event.ActionEvent evt) { CurVee.SetFlotationHull(chkFlotationHull.isSelected()); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_chkFlotationHullActionPerformed + } - private void chkLimitedAmphActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkLimitedAmphActionPerformed + private void chkLimitedAmphActionPerformed(java.awt.event.ActionEvent evt) { CurVee.SetLimitedAmphibious(chkLimitedAmph.isSelected()); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_chkLimitedAmphActionPerformed + } - private void chkDuneBuggyActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkDuneBuggyActionPerformed + private void chkDuneBuggyActionPerformed(java.awt.event.ActionEvent evt) { CurVee.SetDuneBuggy(chkDuneBuggy.isSelected()); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_chkDuneBuggyActionPerformed + } - private void chkEnviroSealingActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkEnviroSealingActionPerformed + private void chkEnviroSealingActionPerformed(java.awt.event.ActionEvent evt) { CurVee.SetEnvironmentalSealing(chkEnviroSealing.isSelected()); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_chkEnviroSealingActionPerformed + } - private void spnRearTurretArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnRearTurretArmorStateChanged + private void spnRearTurretArmorStateChanged(javax.swing.event.ChangeEvent evt) { if( Load ) { return; } // see what changed and perform the appropriate action javax.swing.SpinnerNumberModel n = (SpinnerNumberModel) spnRearTurretArmor.getModel(); @@ -9800,14 +9716,14 @@ private void spnRearTurretArmorStateChanged(javax.swing.event.ChangeEvent evt) { // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnRearTurretArmorStateChanged + } - private void cmbLocationMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_cmbLocationMouseClicked + private void cmbLocationMouseClicked(java.awt.event.MouseEvent evt) { if ( evt.getClickCount() == 2 ) btnAddEquipActionPerformed(null); - }//GEN-LAST:event_cmbLocationMouseClicked + } - private void chkSponsonTurretActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkSponsonTurretActionPerformed + private void chkSponsonTurretActionPerformed(java.awt.event.ActionEvent evt) { if (chkSponsonTurret.isSelected()) CurVee.setHasSponsonTurret(true); else @@ -9816,13 +9732,12 @@ private void chkSponsonTurretActionPerformed(java.awt.event.ActionEvent evt) {// BuildLocationSelector(); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_chkSponsonTurretActionPerformed + } - private void chkEscapePodActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkEscapePodActionPerformed - // TODO add your handling code here: - }//GEN-LAST:event_chkEscapePodActionPerformed + private void chkEscapePodActionPerformed(java.awt.event.ActionEvent evt) { + } - private void mnuReloadEquipmentActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuReloadEquipmentActionPerformed + private void mnuReloadEquipmentActionPerformed(java.awt.event.ActionEvent evt) { try { data = new DataFactory( CurVee ); } catch( Exception e ) { @@ -9830,7 +9745,7 @@ private void mnuReloadEquipmentActionPerformed(java.awt.event.ActionEvent evt) { e.printStackTrace(); } SetWeaponChoosers(); - }//GEN-LAST:event_mnuReloadEquipmentActionPerformed + } private void chkFullAmphActionPerformed(java.awt.event.ActionEvent evt) { CurVee.SetFullAmphibious(chkFullAmph.isSelected()); diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 1227975a..172569b1 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -721,8 +721,7 @@ public void SetVariableSize() { } } - private void setViewToolbar(boolean Visible) - { + private void setViewToolbar(boolean Visible) { tlbIconBar.setVisible(Visible); Prefs.putBoolean("ViewToolbar", Visible); //mnuViewToolbar.setState(Visible); @@ -732,6 +731,7 @@ private void setViewToolbar(boolean Visible) if (this.getHeight() != 575) { this.setSize(750, 575); } } } + private void ConfigureUtilsMenu( java.awt.Component c ) { // configures the utilities popup menu boolean cap = LegalCapacitor( CurItem ) && CommonTools.IsAllowed( PPCCapAC, CurVee ); @@ -1030,7 +1030,6 @@ private void ResetAmmo() { * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") - // //GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; @@ -5137,7 +5136,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { ); pack(); - }// //GEN-END:initComponents + } private void RefreshSummary() { // refreshes the display completely using info from the mech. @@ -5257,6 +5256,7 @@ private void RecalcArmorLocations() { else spnRotorArmor.setValue(0); } + private void SolidifyVehicle() { // sets some of the basic vehicle information normally kept in the GUI and // prepares the vehicle for saving to file @@ -5461,6 +5461,7 @@ public void FixTonnageSpinner( int MinTonnage, int MaximumTonnage ) { spnTonnage.setModel( new javax.swing.SpinnerNumberModel(CurVal, MinTonnage, MaximumTonnage, 1) ); spnTonnageStateChanged(null); } + // check the tonnage to see if it's legal and acts accordingly public void CheckTonnage( boolean RulesChange ) { if( CurVee.GetTonnage() < 1 ) { @@ -5485,8 +5486,7 @@ private void LoadSelections() { cmbArmorType.setSelectedItem( Selections[1] ); } - private void BuildTurretSelector() - { + private void BuildTurretSelector() { ArrayList list = new ArrayList(); if ( !CurVee.IsOmni()) @@ -5517,8 +5517,7 @@ else if (CurVee.isHasTurret1()) cmbTurret.setSelectedItem("No Turret"); } - private void BuildChassisSelector() - { + private void BuildChassisSelector() { chkFlotationHull.setSelected(false); chkLimitedAmph.setSelected(false); chkFullAmph.setSelected(false); @@ -5832,16 +5831,15 @@ private void ShowInfoOn( abPlaceable p ) { lblInfoMountRestrict.setText(lblInfoMountRestrict.getText() + " MM Name " + p.MegaMekName(false)); } - private void btnAddToForceListActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAddToForceListActionPerformed - -}//GEN-LAST:event_btnAddToForceListActionPerformed + private void btnAddToForceListActionPerformed(java.awt.event.ActionEvent evt) { + } - private void btnForceListActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnForceListActionPerformed + private void btnForceListActionPerformed(java.awt.event.ActionEvent evt) { GetForceDialogue().setLocationRelativeTo(this); GetForceDialogue().setVisible(true); -}//GEN-LAST:event_btnForceListActionPerformed + } - private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSaveActionPerformed + private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) { setCursor( Hourglass ); File savevee = GetSaveFile( "saw", Prefs.get( "LastOpenCVDirectory", "" ), true, false ); @@ -5895,7 +5893,8 @@ private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST setCursor( NormalCursor ); setTitle( saw.Constants.AppName + " " + saw.Constants.GetVersion() + " - " + CurVee.GetName() + " " + CurVee.GetModel() ); CurVee.SetChanged( false ); - }//GEN-LAST:event_btnSaveActionPerformed + } + private void SaveOmniFluffInfo() { if( SetSource ) { CurVee.setSource( txtSource.getText() ); @@ -6344,6 +6343,7 @@ private void CheckOmni() { //btnLockChassis.setEnabled( false ); } } + private void RefreshEquipment() { // refreshes the equipment selectors //fix the CASE control @@ -6623,6 +6623,7 @@ private void RecalcArmor() { } SetPatchworkArmor(); } + private boolean AddECM() { // Adds an ECM suite if a certain system needs it if( Prefs.getBoolean( "AutoAddECM", true ) ) { @@ -6777,7 +6778,7 @@ private void FixHeatSinkSpinnerModel() { ((JSpinner.DefaultEditor)spnHeatSinks.getEditor()).getTextField().addFocusListener(spinners); } - private void btnNewVeeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNewVeeActionPerformed + private void btnNewVeeActionPerformed(java.awt.event.ActionEvent evt) { if( CurVee.HasChanged() ) { int choice = javax.swing.JOptionPane.showConfirmDialog( this, "The current Vehicle has changed.\nDo you want to discard those changes?", "Discard Changes?", javax.swing.JOptionPane.YES_NO_OPTION ); @@ -6785,7 +6786,7 @@ private void btnNewVeeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR } GetNewVee(); Prefs.put("Currentfile", ""); - }//GEN-LAST:event_btnNewVeeActionPerformed + } private void RefreshOmniVariants() { ArrayList v = CurVee.GetLoadouts(); @@ -6901,7 +6902,7 @@ private void LockGUIForOmni() { btnRenameVariant.setEnabled( true ); } - private void cmbOmniVariantActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbOmniVariantActionPerformed + private void cmbOmniVariantActionPerformed(java.awt.event.ActionEvent evt) { SaveOmniFluffInfo(); String variant = (String) cmbOmniVariant.getSelectedItem(); boolean changed = CurVee.HasChanged(); @@ -6910,11 +6911,7 @@ private void cmbOmniVariantActionPerformed(java.awt.event.ActionEvent evt) {//GE // now fix the GUI LoadOmniFluffInfo(); - //FixTransferHandlers(); - //SetLoadoutArrays(); SetWeaponChoosers(); - //BuildJumpJetSelector(); - //cmbJumpJetType.setSelectedItem(CurVee.GetJumpJets().LookupName()); FixJJSpinnerModel(); FixHeatSinkSpinnerModel(); RefreshOmniVariants(); @@ -6926,13 +6923,13 @@ private void cmbOmniVariantActionPerformed(java.awt.event.ActionEvent evt) {//GE // this prevents the program from setting the changed tag if we simply // open an omnimech for browsing. CurVee.SetChanged(changed); - }//GEN-LAST:event_cmbOmniVariantActionPerformed + } - private void mnuNewMechActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuNewMechActionPerformed + private void mnuNewMechActionPerformed(java.awt.event.ActionEvent evt) { btnNewVeeActionPerformed(evt); - }//GEN-LAST:event_mnuNewMechActionPerformed + } - private void mnuLoadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuLoadActionPerformed + private void mnuLoadActionPerformed(java.awt.event.ActionEvent evt) { if (CurVee.HasChanged()) { int choice = javax.swing.JOptionPane.showConfirmDialog(this, "The current Vehicle has changed.\nDo you want to discard those changes?", "Discard Changes?", javax.swing.JOptionPane.YES_NO_OPTION); @@ -6948,12 +6945,13 @@ private void mnuLoadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST CurVee = m; LoadVehicleIntoGUI(); CurVee.SetChanged(false); - }//GEN-LAST:event_mnuLoadActionPerformed + } - private void mnuOpenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuOpenActionPerformed + private void mnuOpenActionPerformed(java.awt.event.ActionEvent evt) { btnOpenActionPerformed(evt); - }//GEN-LAST:event_mnuOpenActionPerformed - public CombatVehicle LoadVehicle (){ + } + + public CombatVehicle LoadVehicle() { CombatVehicle m = null; File tempFile = new File( Prefs.get( "LastOpenCVDirectory", "" ) ); @@ -7019,8 +7017,7 @@ public String getDescription() { return m; } - private void LoadVehicleFromFile( String filename ) - { + private void LoadVehicleFromFile( String filename ) { CombatVehicle m = null; if (! filename.isEmpty() ) { try { @@ -7155,9 +7152,7 @@ public void LoadVehicleIntoGUI() { CurVee.SetChanged(false); } - - - private void mnuImportHMPActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuImportHMPActionPerformed + private void mnuImportHMPActionPerformed(java.awt.event.ActionEvent evt) { if (CurVee.HasChanged()) { int choice = javax.swing.JOptionPane.showConfirmDialog(this, "The current Vehicle has changed.\nDo you want to discard those changes?", "Discard Changes?", javax.swing.JOptionPane.YES_NO_OPTION); @@ -7236,15 +7231,15 @@ public String getDescription() { CurVee = m; LoadVehicleIntoGUI(); CurVee.SetChanged(false); - }//GEN-LAST:event_mnuImportHMPActionPerformed + } - private void mnuBatchHMPActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuBatchHMPActionPerformed + private void mnuBatchHMPActionPerformed(java.awt.event.ActionEvent evt) { dlgBatchHMP batch = new dlgBatchHMP(this, true); batch.setLocationRelativeTo(this); batch.setVisible(true); - }//GEN-LAST:event_mnuBatchHMPActionPerformed + } - private void mnuSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuSaveActionPerformed + private void mnuSaveActionPerformed(java.awt.event.ActionEvent evt) { // Solidify the mech first. setCursor(Hourglass); @@ -7307,9 +7302,9 @@ private void mnuSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST setCursor(NormalCursor); setTitle(saw.Constants.AppName + " " + saw.Constants.GetVersion() + " - " + CurVee.GetName() + " " + CurVee.GetModel()); CurVee.SetChanged(false); - }//GEN-LAST:event_mnuSaveActionPerformed + } - private void mnuSaveAsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuSaveAsActionPerformed + private void mnuSaveAsActionPerformed(java.awt.event.ActionEvent evt) { setCursor(Hourglass); File savemech = GetSaveFile("saw", Prefs.get("LastOpenCVDirectory", ""), false, false); if (savemech == null) { @@ -7366,27 +7361,27 @@ private void mnuSaveAsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR setTitle(saw.Constants.AppName + " " + saw.Constants.GetVersion() + " - " + CurVee.GetName() + " " + CurVee.GetModel()); CurVee.SetChanged(false); setCursor(NormalCursor); - }//GEN-LAST:event_mnuSaveAsActionPerformed + } - private void mnuExportHTMLActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuExportHTMLActionPerformed + private void mnuExportHTMLActionPerformed(java.awt.event.ActionEvent evt) { SetSource = false; btnExportHTMLActionPerformed(evt); SetSource = true; - }//GEN-LAST:event_mnuExportHTMLActionPerformed + } - private void mnuExportMTFActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuExportMTFActionPerformed + private void mnuExportMTFActionPerformed(java.awt.event.ActionEvent evt) { SetSource = false; btnExportMTFActionPerformed(evt); SetSource = true; - }//GEN-LAST:event_mnuExportMTFActionPerformed + } - private void mnuExportTXTActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuExportTXTActionPerformed + private void mnuExportTXTActionPerformed(java.awt.event.ActionEvent evt) { SetSource = false; btnExportTXTActionPerformed(evt); SetSource = true; - }//GEN-LAST:event_mnuExportTXTActionPerformed + } - private void mnuExportClipboardActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuExportClipboardActionPerformed + private void mnuExportClipboardActionPerformed(java.awt.event.ActionEvent evt) { // takes the text export and copies it to thesystem clipboard. String CurLoadout = ""; String output = ""; @@ -7413,20 +7408,20 @@ private void mnuExportClipboardActionPerformed(java.awt.event.ActionEvent evt) { } java.awt.datatransfer.Clipboard clipboard = java.awt.Toolkit.getDefaultToolkit().getSystemClipboard(); clipboard.setContents(export, this); - }//GEN-LAST:event_mnuExportClipboardActionPerformed + } - private void mnuCreateTCGMechActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuCreateTCGMechActionPerformed + private void mnuCreateTCGMechActionPerformed(java.awt.event.ActionEvent evt) { // Create CCG stats for mech // TODO: Add handling code to check if a canon card already exists. SolidifyVehicle(); //dlgCCGMech ccgMech = new dlgCCGMech(this, true, CurVee); //ccgMech.setLocationRelativeTo(this); //ccgMech.setVisible(true); - }//GEN-LAST:event_mnuCreateTCGMechActionPerformed + } - private void mnuPrintPreviewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuPrintPreviewActionPerformed + private void mnuPrintPreviewActionPerformed(java.awt.event.ActionEvent evt) { btnPrintActionPerformed(evt); - }//GEN-LAST:event_mnuPrintPreviewActionPerformed + } public void QuickSave() { File saveFile = GetSaveFile( "saw", Prefs.get( "LastOpenCVDirectory", "" ), true, false ); @@ -7445,7 +7440,7 @@ public void QuickSave() { } } - private void mnuExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuExitActionPerformed + private void mnuExitActionPerformed(java.awt.event.ActionEvent evt) { if (CurVee.HasChanged()) { int choice = javax.swing.JOptionPane.showConfirmDialog(this, "The current Vehicle has changed.\nDo you want to discard those changes?", "Discard Changes?", javax.swing.JOptionPane.YES_NO_OPTION); @@ -7454,11 +7449,10 @@ private void mnuExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST } } CloseProgram(); - }//GEN-LAST:event_mnuExitActionPerformed + } - private void mnuFileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuFileActionPerformed -// TODO add your handling code here: - }//GEN-LAST:event_mnuFileActionPerformed + private void mnuFileActionPerformed(java.awt.event.ActionEvent evt) { + } private void CloseProgram() { try { @@ -7472,21 +7466,21 @@ private void CloseProgram() { System.exit(0); } - private void mnuSummaryActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuSummaryActionPerformed + private void mnuSummaryActionPerformed(java.awt.event.ActionEvent evt) { SolidifyVehicle(); dlgSummaryInfo Summary = new dlgSummaryInfo(this, true, CurVee); Summary.setLocationRelativeTo(this); Summary.setVisible(true); - }//GEN-LAST:event_mnuSummaryActionPerformed + } - private void mnuCostBVBreakdownActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuCostBVBreakdownActionPerformed + private void mnuCostBVBreakdownActionPerformed(java.awt.event.ActionEvent evt) { SolidifyVehicle(); dlgCostBVBreakdown costbv = new dlgCostBVBreakdown(this, true, CurVee); costbv.setLocationRelativeTo(this); costbv.setVisible(true); - }//GEN-LAST:event_mnuCostBVBreakdownActionPerformed + } - private void mnuTextTROActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuTextTROActionPerformed + private void mnuTextTROActionPerformed(java.awt.event.ActionEvent evt) { SetSource = false; SolidifyVehicle(); dlgTextExport Text = new dlgTextExport(this, true, CurVee); @@ -7494,9 +7488,9 @@ private void mnuTextTROActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FI Text.setVisible(true); CurVee.SetCurLoadout((String) cmbOmniVariant.getSelectedItem()); SetSource = true; - }//GEN-LAST:event_mnuTextTROActionPerformed + } - private void mnuBFBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuBFBActionPerformed + private void mnuBFBActionPerformed(java.awt.event.ActionEvent evt) { String[] call = {"java", "-Xmx256m", "-jar", "bfb.jar"}; try { Runtime.getRuntime().exec(call); @@ -7504,22 +7498,22 @@ private void mnuBFBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST: Media.Messager("Error while trying to open BFB\n" + ex.getMessage()); System.out.println(ex.getMessage()); } - }//GEN-LAST:event_mnuBFBActionPerformed + } - private void mnuOptionsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuOptionsActionPerformed + private void mnuOptionsActionPerformed(java.awt.event.ActionEvent evt) { dlgPrefs preferences = new dlgPrefs(this, true); preferences.setLocationRelativeTo(this); preferences.setVisible(true); ResetAmmo(); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_mnuOptionsActionPerformed + } - private void mnuViewToolbarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuViewToolbarActionPerformed + private void mnuViewToolbarActionPerformed(java.awt.event.ActionEvent evt) { setViewToolbar(mnuViewToolbar.getState()); - }//GEN-LAST:event_mnuViewToolbarActionPerformed + } - private void mnuClearUserDataActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuClearUserDataActionPerformed + private void mnuClearUserDataActionPerformed(java.awt.event.ActionEvent evt) { int choice = javax.swing.JOptionPane.showConfirmDialog(this, "This will remove all Solaris 7 user data.\nAre you sure you want to continue?", "Clear User Data?", javax.swing.JOptionPane.YES_NO_OPTION); if (choice == 1) { @@ -7529,9 +7523,9 @@ private void mnuClearUserDataActionPerformed(java.awt.event.ActionEvent evt) {// Prefs.put("S7Password", ""); Prefs.put("S7UserID", ""); } - }//GEN-LAST:event_mnuClearUserDataActionPerformed + } - private void mnuUnlockActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuUnlockActionPerformed + private void mnuUnlockActionPerformed(java.awt.event.ActionEvent evt) { int choice = javax.swing.JOptionPane.showConfirmDialog(this, "Are you sure you want to unlock the chassis?\nAll omni loadouts" + " will be deleted\nand the Vehicle will revert to its base loadout.", @@ -7545,9 +7539,9 @@ private void mnuUnlockActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR FixJJSpinnerModel(); FixHeatSinkSpinnerModel(); LoadVehicleIntoGUI(); - }//GEN-LAST:event_mnuUnlockActionPerformed + } - private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed + private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) { Overview.StartNewDocument(); Capabilities.StartNewDocument(); History.StartNewDocument(); @@ -7563,21 +7557,21 @@ private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FI txtJJModel.setText(""); txtCommSystem.setText(""); txtTNTSystem.setText(""); - }//GEN-LAST:event_jMenuItem1ActionPerformed + } - private void mnuCreditsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuCreditsActionPerformed + private void mnuCreditsActionPerformed(java.awt.event.ActionEvent evt) { dlgCredits Credits = new dlgCredits(this, true); Credits.setLocationRelativeTo(this); Credits.setVisible(true); - }//GEN-LAST:event_mnuCreditsActionPerformed + } - private void mnuAboutSSWActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuAboutSSWActionPerformed + private void mnuAboutSSWActionPerformed(java.awt.event.ActionEvent evt) { dlgAboutBox about = new dlgAboutBox(this, true); about.setLocationRelativeTo(this); about.setVisible(true); - }//GEN-LAST:event_mnuAboutSSWActionPerformed + } - private void btnPrintActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPrintActionPerformed + private void btnPrintActionPerformed(java.awt.event.ActionEvent evt) { PagePrinter printer = SetupPrinter(); Scenario s = new Scenario(); s.getAttackerForce().AddUnit(new Unit(CurVee)); @@ -7585,9 +7579,9 @@ private void btnPrintActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS prv.setRSOnly(); prv.setLocationRelativeTo(this); prv.setVisible(true); - }//GEN-LAST:event_btnPrintActionPerformed + } - private void btnOpenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnOpenActionPerformed + private void btnOpenActionPerformed(java.awt.event.ActionEvent evt) { if( CurVee.HasChanged() ) { int choice = javax.swing.JOptionPane.showConfirmDialog( this, "The current Vehicle has changed.\nDo you want to discard those changes?", "Discard Changes?", javax.swing.JOptionPane.YES_NO_OPTION ); @@ -7598,25 +7592,23 @@ private void btnOpenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST dOpen.setSize( 1024, 600 ); dOpen.setVisible(true); - }//GEN-LAST:event_btnOpenActionPerformed + } - private void formWindowClosed(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosed + private void formWindowClosed(java.awt.event.WindowEvent evt) { CloseProgram(); - }//GEN-LAST:event_formWindowClosed + } - private void btnOptionsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnOptionsActionPerformed + private void btnOptionsActionPerformed(java.awt.event.ActionEvent evt) { dlgPrefs preferences = new dlgPrefs( this, true ); preferences.setLocationRelativeTo( this ); preferences.setVisible( true ); - //Mechrender.Reset(); ResetAmmo(); - //RefreshInternalPoints(); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_btnOptionsActionPerformed + } - private void btnExportClipboardIconActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportClipboardIconActionPerformed - // takes the text export and copies it to thesystem clipboard. + private void btnExportClipboardIconActionPerformed(java.awt.event.ActionEvent evt) { + // takes the text export and copies it to thesystem clipboard. String CurLoadout = ""; String output = ""; @@ -7642,15 +7634,15 @@ private void btnExportClipboardIconActionPerformed(java.awt.event.ActionEvent ev } java.awt.datatransfer.Clipboard clipboard = java.awt.Toolkit.getDefaultToolkit().getSystemClipboard(); clipboard.setContents( export, this ); - }//GEN-LAST:event_btnExportClipboardIconActionPerformed + } - private void btnChatInfoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnChatInfoActionPerformed + private void btnChatInfoActionPerformed(java.awt.event.ActionEvent evt) { java.awt.datatransfer.StringSelection export = new java.awt.datatransfer.StringSelection(CurVee.GetChatInfo()); java.awt.datatransfer.Clipboard clipboard = java.awt.Toolkit.getDefaultToolkit().getSystemClipboard(); clipboard.setContents(export, this); - }//GEN-LAST:event_btnChatInfoActionPerformed + } - private void btnExportHTMLIconActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportHTMLIconActionPerformed + private void btnExportHTMLIconActionPerformed(java.awt.event.ActionEvent evt) { SetSource = false; // exports the mech to HTML format String CurLoadout = ""; @@ -7687,30 +7679,30 @@ private void btnExportHTMLIconActionPerformed(java.awt.event.ActionEvent evt) {/ } setTitle( saw.Constants.AppName + " " + saw.Constants.GetVersion() + " - " + CurVee.GetName() + " " + CurVee.GetModel() ); SetSource = true; - }//GEN-LAST:event_btnExportHTMLIconActionPerformed + } - private void btnExportTextIconActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportTextIconActionPerformed + private void btnExportTextIconActionPerformed(java.awt.event.ActionEvent evt) { SetSource = false; btnExportTXTActionPerformed( evt ); SetSource = true; - }//GEN-LAST:event_btnExportTextIconActionPerformed + } - private void btnExportMTFIconActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportMTFIconActionPerformed + private void btnExportMTFIconActionPerformed(java.awt.event.ActionEvent evt) { SetSource = false; btnExportMTFActionPerformed( evt ); SetSource = true; - }//GEN-LAST:event_btnExportMTFIconActionPerformed + } - private void btnAddQuirkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAddQuirkActionPerformed + private void btnAddQuirkActionPerformed(java.awt.event.ActionEvent evt) { /* * dlgQuirks qmanage = new dlgQuirks(this, true, data, quirks); * qmanage.setLocationRelativeTo(this); qmanage.setVisible(true); * tblQuirks.setModel(new tbQuirks(quirks)); * */ - }//GEN-LAST:event_btnAddQuirkActionPerformed + } - private void btnExportMTFActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportMTFActionPerformed + private void btnExportMTFActionPerformed(java.awt.event.ActionEvent evt) { // exports the mech to MTF format for use in Megamek String dir = Prefs.get("MTFExportPath", "none"); @@ -7735,9 +7727,9 @@ private void btnExportMTFActionPerformed(java.awt.event.ActionEvent evt) {//GEN- // if there were no problems, let the user know how it went Media.Messager(this, "Vehicle saved successfully to MTF:\n" + filename); setTitle(saw.Constants.AppName + " " + saw.Constants.GetVersion() + " - " + CurVee.GetName() + " " + CurVee.GetModel()); - }//GEN-LAST:event_btnExportMTFActionPerformed + } - private void btnExportHTMLActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportHTMLActionPerformed + private void btnExportHTMLActionPerformed(java.awt.event.ActionEvent evt) { // exports the mech to HTML format String CurLoadout = ""; if (CurVee.IsOmni()) { @@ -7772,9 +7764,9 @@ private void btnExportHTMLActionPerformed(java.awt.event.ActionEvent evt) {//GEN //cmbOmniVariantActionPerformed( evt ); } setTitle(saw.Constants.AppName + " " + saw.Constants.GetVersion() + " - " + CurVee.GetName() + " " + CurVee.GetModel()); - }//GEN-LAST:event_btnExportHTMLActionPerformed + } - private void btnExportTXTActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportTXTActionPerformed + private void btnExportTXTActionPerformed(java.awt.event.ActionEvent evt) { // exports the mech to TXT format String CurLoadout = ""; if (CurVee.IsOmni()) { @@ -7809,15 +7801,15 @@ private void btnExportTXTActionPerformed(java.awt.event.ActionEvent evt) {//GEN- //cmbOmniVariantActionPerformed( evt ); } setTitle(saw.Constants.AppName + " " + saw.Constants.GetVersion() + " - " + CurVee.GetName() + " " + CurVee.GetModel()); - }//GEN-LAST:event_btnExportTXTActionPerformed + } - private void btnClearImageActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnClearImageActionPerformed + private void btnClearImageActionPerformed(java.awt.event.ActionEvent evt) { // Set the fluff image to default lblFluffImage.setIcon(null); CurVee.SetSSWImage(""); - }//GEN-LAST:event_btnClearImageActionPerformed + } - private void btnLoadImageActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLoadImageActionPerformed + private void btnLoadImageActionPerformed(java.awt.event.ActionEvent evt) { // Opens a file chooser for the user, then resizes the chosen image to // fit in the fluff label and adds it JFileChooser fc = new JFileChooser(); @@ -7876,9 +7868,9 @@ private void btnLoadImageActionPerformed(java.awt.event.ActionEvent evt) {//GEN- // add the image to the fluff image label lblFluffImage.setIcon(newFluffImage); CurVee.SetSSWImage(fc.getSelectedFile().getPath()); - }//GEN-LAST:event_btnLoadImageActionPerformed + } - private void btnAddEquipActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAddEquipActionPerformed + private void btnAddEquipActionPerformed(java.awt.event.ActionEvent evt) { abPlaceable a = null; int Index = 0; ArrayList v; @@ -8037,9 +8029,9 @@ private void btnAddEquipActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F RefreshInfoPane(); cmbNumEquips.setSelectedIndex(0); } - }//GEN-LAST:event_btnAddEquipActionPerformed + } - private void btnClearEquipActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnClearEquipActionPerformed + private void btnClearEquipActionPerformed(java.awt.event.ActionEvent evt) { CurVee.GetLoadout().SafeClearLoadout(); // refresh the selected equipment listbox @@ -8061,9 +8053,9 @@ private void btnClearEquipActionPerformed(java.awt.event.ActionEvent evt) {//GEN // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_btnClearEquipActionPerformed + } - private void btnRemoveEquipActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRemoveEquipActionPerformed + private void btnRemoveEquipActionPerformed(java.awt.event.ActionEvent evt) { if (lstSelectedEquipment.getSelectedIndex() < 0) { return; } @@ -8101,23 +8093,23 @@ private void btnRemoveEquipActionPerformed(java.awt.event.ActionEvent evt) {//GE // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_btnRemoveEquipActionPerformed + } - private void lstSelectedEquipmentKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_lstSelectedEquipmentKeyPressed + private void lstSelectedEquipmentKeyPressed(java.awt.event.KeyEvent evt) { if (evt.getKeyCode() == KeyEvent.VK_DELETE) { btnRemoveEquipActionPerformed(new ActionEvent(evt.getSource(), evt.getID(), null)); } - }//GEN-LAST:event_lstSelectedEquipmentKeyPressed + } - private void lstSelectedEquipmentValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstSelectedEquipmentValueChanged + private void lstSelectedEquipmentValueChanged(javax.swing.event.ListSelectionEvent evt) { if (lstSelectedEquipment.getSelectedIndex() < 0) { return; } abPlaceable p = (abPlaceable) Equipment[SELECTED][lstSelectedEquipment.getSelectedIndex()]; ShowInfoOn(p); - }//GEN-LAST:event_lstSelectedEquipmentValueChanged + } - private void chkCASEActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkCASEActionPerformed + private void chkCASEActionPerformed(java.awt.event.ActionEvent evt) { if (!chkCASE.isSelected()) { CurVee.GetLoadout().RemoveCase(); SetWeaponChoosers(); @@ -8147,9 +8139,9 @@ private void chkCASEActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST SetWeaponChoosers(); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_chkCASEActionPerformed + } - private void chkFCSApolloActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkFCSApolloActionPerformed + private void chkFCSApolloActionPerformed(java.awt.event.ActionEvent evt) { if (CurVee.UsingApollo() == chkFCSApollo.isSelected()) { return; } @@ -8171,9 +8163,9 @@ private void chkFCSApolloActionPerformed(java.awt.event.ActionEvent evt) {//GEN- // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_chkFCSApolloActionPerformed + } - private void chkFCSAVActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkFCSAVActionPerformed + private void chkFCSAVActionPerformed(java.awt.event.ActionEvent evt) { if (CurVee.UsingArtemisV() == chkFCSAV.isSelected()) { return; } @@ -8195,9 +8187,9 @@ private void chkFCSAVActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_chkFCSAVActionPerformed + } - private void chkFCSAIVActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkFCSAIVActionPerformed + private void chkFCSAIVActionPerformed(java.awt.event.ActionEvent evt) { if (CurVee.UsingArtemisIV() == chkFCSAIV.isSelected()) { return; } @@ -8219,9 +8211,9 @@ private void chkFCSAIVActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_chkFCSAIVActionPerformed + } - private void chkUseTCActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkUseTCActionPerformed + private void chkUseTCActionPerformed(java.awt.event.ActionEvent evt) { if (CurVee.UsingTC() == chkUseTC.isSelected()) { return; } @@ -8248,65 +8240,65 @@ private void chkUseTCActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS SetWeaponChoosers(); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_chkUseTCActionPerformed + } - private void lstChooseAmmunitionValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstChooseAmmunitionValueChanged + private void lstChooseAmmunitionValueChanged(javax.swing.event.ListSelectionEvent evt) { if (lstChooseAmmunition.getSelectedIndex() < 0) { return; } abPlaceable p = (abPlaceable) Equipment[AMMUNITION][lstChooseAmmunition.getSelectedIndex()]; ShowInfoOn(p); - }//GEN-LAST:event_lstChooseAmmunitionValueChanged + } - private void lstChooseArtilleryValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstChooseArtilleryValueChanged + private void lstChooseArtilleryValueChanged(javax.swing.event.ListSelectionEvent evt) { if (lstChooseArtillery.getSelectedIndex() < 0) { return; } abPlaceable p = (abPlaceable) Equipment[ARTILLERY][lstChooseArtillery.getSelectedIndex()]; ShowInfoOn(p); - }//GEN-LAST:event_lstChooseArtilleryValueChanged + } - private void lstChooseEquipmentValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstChooseEquipmentValueChanged + private void lstChooseEquipmentValueChanged(javax.swing.event.ListSelectionEvent evt) { if (lstChooseEquipment.getSelectedIndex() < 0) { return; } abPlaceable p = (abPlaceable) Equipment[EQUIPMENT][lstChooseEquipment.getSelectedIndex()]; ShowInfoOn(p); - }//GEN-LAST:event_lstChooseEquipmentValueChanged + } - private void lstChoosePhysicalValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstChoosePhysicalValueChanged + private void lstChoosePhysicalValueChanged(javax.swing.event.ListSelectionEvent evt) { if (lstChoosePhysical.getSelectedIndex() < 0) { return; } abPlaceable p = (abPlaceable) Equipment[PHYSICAL][lstChoosePhysical.getSelectedIndex()]; ShowInfoOn(p); - }//GEN-LAST:event_lstChoosePhysicalValueChanged + } - private void lstChooseMissileValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstChooseMissileValueChanged + private void lstChooseMissileValueChanged(javax.swing.event.ListSelectionEvent evt) { if (lstChooseMissile.getSelectedIndex() < 0) { return; } abPlaceable p = (abPlaceable) Equipment[MISSILE][lstChooseMissile.getSelectedIndex()]; ShowInfoOn(p); - }//GEN-LAST:event_lstChooseMissileValueChanged + } - private void lstChooseEnergyValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstChooseEnergyValueChanged + private void lstChooseEnergyValueChanged(javax.swing.event.ListSelectionEvent evt) { if (lstChooseEnergy.getSelectedIndex() < 0) { return; } abPlaceable p = (abPlaceable) Equipment[ENERGY][lstChooseEnergy.getSelectedIndex()]; ShowInfoOn(p); - }//GEN-LAST:event_lstChooseEnergyValueChanged + } - private void lstChooseBallisticValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstChooseBallisticValueChanged + private void lstChooseBallisticValueChanged(javax.swing.event.ListSelectionEvent evt) { if (lstChooseBallistic.getSelectedIndex() < 0) { return; } abPlaceable p = (abPlaceable) Equipment[BALLISTIC][lstChooseBallistic.getSelectedIndex()]; ShowInfoOn(p); - }//GEN-LAST:event_lstChooseBallisticValueChanged + } - private void btnMaximizeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnMaximizeActionPerformed + private void btnMaximizeActionPerformed(java.awt.event.ActionEvent evt) { // this simply maximizes the mech's armor CVArmor a = CurVee.GetArmor(); a.Maximize(); @@ -8317,9 +8309,9 @@ private void btnMaximizeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_btnMaximizeActionPerformed + } - private void btnUseRemainingActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnUseRemainingActionPerformed + private void btnUseRemainingActionPerformed(java.awt.event.ActionEvent evt) { // see if we have a good number double freetons = CurVee.GetTonnage() - CurVee.GetCurrentTons() + CurVee.GetArmor().GetTonnage(); @@ -8342,9 +8334,9 @@ private void btnUseRemainingActionPerformed(java.awt.event.ActionEvent evt) {//G // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_btnUseRemainingActionPerformed + } - private void btnSetArmorTonsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSetArmorTonsActionPerformed + private void btnSetArmorTonsActionPerformed(java.awt.event.ActionEvent evt) { // we'll need a new dialogue to get the tonnage dlgArmorTonnage ArmorDialogue = new dlgArmorTonnage(this, true, CurVee); ArmorDialogue.setLocationRelativeTo(this); @@ -8373,9 +8365,9 @@ private void btnSetArmorTonsActionPerformed(java.awt.event.ActionEvent evt) {//G // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_btnSetArmorTonsActionPerformed + } - private void cmbArmorTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbArmorTypeActionPerformed + private void cmbArmorTypeActionPerformed(java.awt.event.ActionEvent evt) { if (Load) { return; } @@ -8389,9 +8381,9 @@ private void cmbArmorTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN- // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_cmbArmorTypeActionPerformed + } - private void spnRotorArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnRotorArmorStateChanged + private void spnRotorArmorStateChanged(javax.swing.event.ChangeEvent evt) { if (Load) { return; } @@ -8435,9 +8427,9 @@ private void spnRotorArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnRotorArmorStateChanged + } - private void spnRearTurretArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnRearTurretArmorStateChanged + private void spnRearTurretArmorStateChanged(javax.swing.event.ChangeEvent evt) { if (Load) { return; } @@ -8477,9 +8469,9 @@ private void spnRearTurretArmorStateChanged(javax.swing.event.ChangeEvent evt) { // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnRearTurretArmorStateChanged + } - private void spnTurretArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnTurretArmorStateChanged + private void spnTurretArmorStateChanged(javax.swing.event.ChangeEvent evt) { if (Load) { return; } @@ -8523,9 +8515,9 @@ private void spnTurretArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GE // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnTurretArmorStateChanged + } - private void spnRearArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnRearArmorStateChanged + private void spnRearArmorStateChanged(javax.swing.event.ChangeEvent evt) { if (Load) { return; } @@ -8576,9 +8568,9 @@ private void spnRearArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN- // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnRearArmorStateChanged + } - private void spnLeftArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnLeftArmorStateChanged + private void spnLeftArmorStateChanged(javax.swing.event.ChangeEvent evt) { if (Load) { return; } @@ -8629,9 +8621,9 @@ private void spnLeftArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN- // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnLeftArmorStateChanged + } - private void spnFrontArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnFrontArmorStateChanged + private void spnFrontArmorStateChanged(javax.swing.event.ChangeEvent evt) { if (Load) { return; } @@ -8682,9 +8674,9 @@ private void spnFrontArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnFrontArmorStateChanged + } - private void spnRightArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnRightArmorStateChanged + private void spnRightArmorStateChanged(javax.swing.event.ChangeEvent evt) { if (Load) { return; } @@ -8735,9 +8727,9 @@ private void spnRightArmorStateChanged(javax.swing.event.ChangeEvent evt) {//GEN // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnRightArmorStateChanged + } - private void btnRenameVariantActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRenameVariantActionPerformed + private void btnRenameVariantActionPerformed(java.awt.event.ActionEvent evt) { SaveOmniFluffInfo(); String VariantName = ""; @@ -8770,9 +8762,9 @@ private void btnRenameVariantActionPerformed(java.awt.event.ActionEvent evt) {// CurVee.GetLoadout().SetName(VariantName); RefreshOmniVariants(); - }//GEN-LAST:event_btnRenameVariantActionPerformed + } - private void btnDeleteVariantActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDeleteVariantActionPerformed + private void btnDeleteVariantActionPerformed(java.awt.event.ActionEvent evt) { // see if the user actually wants to delete the variant int choice = javax.swing.JOptionPane.showConfirmDialog(this, "Are you sure you want to delete this variant?", "Delete Variant?", javax.swing.JOptionPane.YES_NO_OPTION); @@ -8791,19 +8783,15 @@ private void btnDeleteVariantActionPerformed(java.awt.event.ActionEvent evt) {// // refresh all the displays LoadOmniFluffInfo(); RefreshOmniVariants(); - //FixTransferHandlers(); - //SetLoadoutArrays(); SetWeaponChoosers(); - //BuildJumpJetSelector(); FixJJSpinnerModel(); FixHeatSinkSpinnerModel(); RefreshOmniChoices(); - //SolidifyJJManufacturer(); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_btnDeleteVariantActionPerformed + } - private void btnAddVariantActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAddVariantActionPerformed + private void btnAddVariantActionPerformed(java.awt.event.ActionEvent evt) { SaveOmniFluffInfo(); String VariantName = ""; @@ -8831,20 +8819,16 @@ private void btnAddVariantActionPerformed(java.awt.event.ActionEvent evt) {//GEN // fix the GUI LoadOmniFluffInfo(); - //FixTransferHandlers(); - //SetLoadoutArrays(); SetWeaponChoosers(); - //BuildJumpJetSelector(); FixJJSpinnerModel(); FixHeatSinkSpinnerModel(); RefreshOmniVariants(); RefreshOmniChoices(); - //SolidifyJJManufacturer(); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_btnAddVariantActionPerformed + } - private void btnLockChassisActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLockChassisActionPerformed + private void btnLockChassisActionPerformed(java.awt.event.ActionEvent evt) { // currently testing right now. SaveOmniFluffInfo(); String VariantName = ""; @@ -8886,18 +8870,16 @@ private void btnLockChassisActionPerformed(java.awt.event.ActionEvent evt) {//GE // make it an omni CurVee.SetOmni(VariantName); chkOmniVee.setEnabled(false); - //FixTransferHandlers(); FixJJSpinnerModel(); FixHeatSinkSpinnerModel(); LockGUIForOmni(); RefreshOmniVariants(); RefreshOmniChoices(); - //SolidifyJJManufacturer(); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_btnLockChassisActionPerformed + } - private void chkFractionalActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkFractionalActionPerformed + private void chkFractionalActionPerformed(java.awt.event.ActionEvent evt) { if (chkFractional.isSelected() == CurVee.UsingFractionalAccounting()) { return; } @@ -8914,7 +8896,7 @@ private void chkFractionalActionPerformed(java.awt.event.ActionEvent evt) {//GEN RefreshEquipment(); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_chkFractionalActionPerformed + } private void chkJetBoosterActionPerformed(java.awt.event.ActionEvent evt) { if( CurVee.GetLoadout().HasVTOLBooster() == chkJetBooster.isSelected() ) { @@ -8936,7 +8918,8 @@ private void chkJetBoosterActionPerformed(java.awt.event.ActionEvent evt) { RefreshSummary(); RefreshInfoPane(); } - private void chkSuperchargerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkSuperchargerActionPerformed + + private void chkSuperchargerActionPerformed(java.awt.event.ActionEvent evt) { if( CurVee.GetLoadout().HasSupercharger() == chkSupercharger.isSelected() ) { return; } @@ -8957,39 +8940,38 @@ private void chkSuperchargerActionPerformed(java.awt.event.ActionEvent evt) {//G RefreshInfoPane(); } - private void chkEnviroSealingActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkEnviroSealingActionPerformed + private void chkEnviroSealingActionPerformed(java.awt.event.ActionEvent evt) { CurVee.SetEnvironmentalSealing(chkEnviroSealing.isSelected()); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_chkEnviroSealingActionPerformed + } - private void chkDuneBuggyActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkDuneBuggyActionPerformed + private void chkDuneBuggyActionPerformed(java.awt.event.ActionEvent evt) { CurVee.SetDuneBuggy(chkDuneBuggy.isSelected()); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_chkDuneBuggyActionPerformed + } - private void chkFullAmphActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkFullAmphActionPerformed - // TODO add your handling code here: - }//GEN-LAST:event_chkFullAmphActionPerformed + private void chkFullAmphActionPerformed(java.awt.event.ActionEvent evt) { + } - private void chkLimitedAmphActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkLimitedAmphActionPerformed + private void chkLimitedAmphActionPerformed(java.awt.event.ActionEvent evt) { CurVee.SetLimitedAmphibious(chkLimitedAmph.isSelected()); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_chkLimitedAmphActionPerformed + } - private void chkFlotationHullActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkFlotationHullActionPerformed + private void chkFlotationHullActionPerformed(java.awt.event.ActionEvent evt) { CurVee.SetFlotationHull(chkFlotationHull.isSelected()); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_chkFlotationHullActionPerformed + } - private void spnCruiseMPInputMethodTextChanged(java.awt.event.InputMethodEvent evt) {//GEN-FIRST:event_spnCruiseMPInputMethodTextChanged + private void spnCruiseMPInputMethodTextChanged(java.awt.event.InputMethodEvent evt) { spnCruiseMPStateChanged(null); - }//GEN-LAST:event_spnCruiseMPInputMethodTextChanged + } - private void spnCruiseMPStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnCruiseMPStateChanged + private void spnCruiseMPStateChanged(javax.swing.event.ChangeEvent evt) { if (Load) { return; } @@ -9030,9 +9012,9 @@ private void spnCruiseMPStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-F // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnCruiseMPStateChanged + } - private void spnTurretTonnageStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnTurretTonnageStateChanged + private void spnTurretTonnageStateChanged(javax.swing.event.ChangeEvent evt) { double Tons = 0; try { Tons = Double.parseDouble(spnTurretTonnage.getValue().toString()); @@ -9044,17 +9026,15 @@ private void spnTurretTonnageStateChanged(javax.swing.event.ChangeEvent evt) {// RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnTurretTonnageStateChanged + } - private void spnHeatSinksInputMethodTextChanged(java.awt.event.InputMethodEvent evt) {//GEN-FIRST:event_spnHeatSinksInputMethodTextChanged - // TODO add your handling code here: - }//GEN-LAST:event_spnHeatSinksInputMethodTextChanged + private void spnHeatSinksInputMethodTextChanged(java.awt.event.InputMethodEvent evt) { + } - private void spnHeatSinksFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_spnHeatSinksFocusGained - // TODO add your handling code here: - }//GEN-LAST:event_spnHeatSinksFocusGained + private void spnHeatSinksFocusGained(java.awt.event.FocusEvent evt) { + } - private void spnHeatSinksStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnHeatSinksStateChanged + private void spnHeatSinksStateChanged(javax.swing.event.ChangeEvent evt) { if (Load) { return; } @@ -9091,9 +9071,9 @@ private void spnHeatSinksStateChanged(javax.swing.event.ChangeEvent evt) {//GEN- // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnHeatSinksStateChanged + } - private void cmbTurretActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbTurretActionPerformed + private void cmbTurretActionPerformed(java.awt.event.ActionEvent evt) { if (Load) { return; } @@ -9121,7 +9101,7 @@ private void cmbTurretActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR RefreshSelectedEquipment(); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_cmbTurretActionPerformed + } private void RefreshSelectedEquipment() { Equipment[SELECTED] = CurVee.GetLoadout().GetNonCore().toArray(); @@ -9129,7 +9109,7 @@ private void RefreshSelectedEquipment() { lstSelectedEquipment.repaint(); } - private void cmbEngineTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbEngineTypeActionPerformed + private void cmbEngineTypeActionPerformed(java.awt.event.ActionEvent evt) { if (Load) { return; } @@ -9172,17 +9152,16 @@ private void cmbEngineTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN // now refresh the information panes RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_cmbEngineTypeActionPerformed + } - private void spnTonnageInputMethodTextChanged(java.awt.event.InputMethodEvent evt) {//GEN-FIRST:event_spnTonnageInputMethodTextChanged + private void spnTonnageInputMethodTextChanged(java.awt.event.InputMethodEvent evt) { spnTonnageStateChanged(null); - }//GEN-LAST:event_spnTonnageInputMethodTextChanged - - private void spnTonnageFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_spnTonnageFocusGained + } - }//GEN-LAST:event_spnTonnageFocusGained + private void spnTonnageFocusGained(java.awt.event.FocusEvent evt) { + } - private void spnTonnageStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnTonnageStateChanged + private void spnTonnageStateChanged(javax.swing.event.ChangeEvent evt) { if (Load) { return; } @@ -9243,12 +9222,11 @@ private void spnTonnageStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FI FixArmorSpinners(); // now refresh the information panes - //RefreshInternalPoints(); RefreshSummary(); RefreshInfoPane(); - }//GEN-LAST:event_spnTonnageStateChanged + } - private void chkTrailerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkTrailerActionPerformed + private void chkTrailerActionPerformed(java.awt.event.ActionEvent evt) { CurVee.SetTrailer(chkTrailer.isSelected()); BuildEngineSelector(); if ( chkTrailer.isSelected() ) { @@ -9277,18 +9255,18 @@ private void chkTrailerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FI SetWeaponChoosers(); RefreshEquipment(); RefreshInfoPane(); - }//GEN-LAST:event_chkTrailerActionPerformed + } - private void chkOmniVeeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkOmniVeeActionPerformed + private void chkOmniVeeActionPerformed(java.awt.event.ActionEvent evt) { if (chkOmniVee.isSelected()) { btnLockChassis.setEnabled(true); } else { btnLockChassis.setEnabled(false); } cmbTurretActionPerformed(evt); - }//GEN-LAST:event_chkOmniVeeActionPerformed + } - private void cmbMotiveTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbMotiveTypeActionPerformed + private void cmbMotiveTypeActionPerformed(java.awt.event.ActionEvent evt) { if ( Load ) return; boolean wasVtol = CurVee.IsVTOL(); @@ -9347,13 +9325,13 @@ private void cmbMotiveTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN RefreshSummary(); RefreshInfoPane(); RefreshEquipment(); - }//GEN-LAST:event_cmbMotiveTypeActionPerformed + } - private void cmbProductionEraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbProductionEraActionPerformed + private void cmbProductionEraActionPerformed(java.awt.event.ActionEvent evt) { CurVee.SetProductionEra(cmbProductionEra.getSelectedIndex()); - }//GEN-LAST:event_cmbProductionEraActionPerformed + } - private void chkYearRestrictActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkYearRestrictActionPerformed + private void chkYearRestrictActionPerformed(java.awt.event.ActionEvent evt) { // This locks in the mech's production year, era, and tech base. int year = 0; if (CurVee.IsYearRestricted() == chkYearRestrict.isSelected()) { @@ -9452,11 +9430,6 @@ private void chkYearRestrictActionPerformed(java.awt.event.ActionEvent evt) {//G // first, refresh all the combo boxes. BuildChassisSelector(); BuildEngineSelector(); - //BuildGyroSelector(); - //BuildCockpitSelector(); - //BuildEnhancementSelector(); - //BuildHeatsinkSelector(); - //BuildJumpJetSelector(); BuildArmorSelector(); RefreshEquipment(); CheckOmni(); @@ -9466,16 +9439,8 @@ private void chkYearRestrictActionPerformed(java.awt.event.ActionEvent evt) {//G // now redo the mech based on what happened. RecalcEngine(); - //RecalcGyro(); - //RecalcIntStruc(); - //RecalcCockpit(); - //CurVee.GetActuators().PlaceActuators(); - //RecalcHeatSinks(); - //RecalcJumpJets(); - //RecalcEnhancements(); RecalcArmor(); RecalcEquipment(); - //CurVee.GetLoadout().FlushIllegal( cmbMechEra.getSelectedIndex(), year, chkYearRestrict.isSelected() ); CurVee.GetLoadout().FlushIllegal(); // finally, refresh the information panes @@ -9483,9 +9448,9 @@ private void chkYearRestrictActionPerformed(java.awt.event.ActionEvent evt) {//G RefreshInfoPane(); SetWeaponChoosers(); ResetAmmo(); - }//GEN-LAST:event_chkYearRestrictActionPerformed + } - private void cmbTechBaseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbTechBaseActionPerformed + private void cmbTechBaseActionPerformed(java.awt.event.ActionEvent evt) { if (Load) { return; } @@ -9535,11 +9500,6 @@ private void cmbTechBaseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F // refresh all the combo boxes. BuildChassisSelector(); BuildEngineSelector(); - //BuildGyroSelector(); - //BuildCockpitSelector(); - //BuildEnhancementSelector(); - //BuildHeatsinkSelector(); - //BuildJumpJetSelector(); BuildArmorSelector(); RefreshEquipment(); FixMPSpinner(); @@ -9553,15 +9513,7 @@ private void cmbTechBaseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F chkCASE.setSelected(true); chkCASEActionPerformed(evt); } - // recalculate the mech. RecalcEngine(); - //RecalcGyro(); - //RecalcIntStruc(); - //RecalcCockpit(); - //CurVee.GetActuators().PlaceActuators(); - //RecalcHeatSinks(); - //RecalcJumpJets(); - //RecalcEnhancements(); RecalcArmor(); } @@ -9573,9 +9525,9 @@ private void cmbTechBaseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F RefreshSummary(); RefreshInfoPane(); SetWeaponChoosers(); - }//GEN-LAST:event_cmbTechBaseActionPerformed + } - private void cmbEraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbEraActionPerformed + private void cmbEraActionPerformed(java.awt.event.ActionEvent evt) { if (Load) { return; } @@ -9643,7 +9595,6 @@ private void cmbEraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST: } if (CurVee.IsOmni()) { - //BuildJumpJetSelector(); RefreshEquipment(); RefreshSummary(); RefreshInfoPane(); @@ -9672,11 +9623,6 @@ private void cmbEraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST: // refresh all the combo boxes. BuildChassisSelector(); BuildEngineSelector(); - //BuildGyroSelector(); - //BuildCockpitSelector(); - //BuildEnhancementSelector(); - //BuildHeatsinkSelector(); - //BuildJumpJetSelector(); BuildArmorSelector(); FixMPSpinner(); FixJJSpinnerModel(); @@ -9688,29 +9634,21 @@ private void cmbEraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST: // when a new era is selected, we have to recalculate the mech RecalcEngine(); - //RecalcGyro(); - //RecalcIntStruc(); - //RecalcCockpit(); - //CurVee.GetActuators().PlaceActuators(); - //RecalcHeatSinks(); - //RecalcJumpJets(); - //RecalcEnhancements(); RecalcArmor(); RecalcEquipment(); // since you can only ever change the era when not restricted, we're not // doing it here. Pass in default values. CurVee.GetLoadout().FlushIllegal(); - //CurVee.GetLoadout().FlushIllegal( cmbEra.getSelectedIndex(), 0, false ); // now refresh the information panes RefreshSummary(); RefreshInfoPane(); SetWeaponChoosers(); ResetAmmo(); - }//GEN-LAST:event_cmbEraActionPerformed + } - private void cmbRulesLevelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbRulesLevelActionPerformed + private void cmbRulesLevelActionPerformed(java.awt.event.ActionEvent evt) { int NewLevel = cmbRulesLevel.getSelectedIndex(); int OldLevel = CurVee.GetLoadout().GetRulesLevel(); int OldType = cmbMotiveType.getSelectedIndex(); @@ -9762,7 +9700,6 @@ private void cmbRulesLevelActionPerformed(java.awt.event.ActionEvent evt) {//GEN // since you can only ever change the rules level when not restricted, // we're not doing it here. Pass in default values. - //CurVee.GetLoadout().FlushIllegal( locArmor.GetEra(), 0, false ); CurVee.GetLoadout().FlushIllegal(); // refresh all the combo boxes. @@ -9777,8 +9714,6 @@ private void cmbRulesLevelActionPerformed(java.awt.event.ActionEvent evt) {//GEN LoadSelections(); RecalcEngine(); - //RecalcIntStruc(); - //RecalcHeatSinks(); RecalcArmor(); RecalcEquipment(); } @@ -9790,23 +9725,23 @@ private void cmbRulesLevelActionPerformed(java.awt.event.ActionEvent evt) {//GEN RefreshInfoPane(); SetWeaponChoosers(); ResetAmmo(); - }//GEN-LAST:event_cmbRulesLevelActionPerformed + } - private void cmbLocationMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_cmbLocationMouseClicked + private void cmbLocationMouseClicked(java.awt.event.MouseEvent evt) { if ( evt.getClickCount() == 2 ) btnAddEquipActionPerformed(null); - }//GEN-LAST:event_cmbLocationMouseClicked + } - private void chkSponsonTurretActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkSponsonTurretActionPerformed + private void chkSponsonTurretActionPerformed(java.awt.event.ActionEvent evt) { if (chkSponsonTurret.isSelected()) CurVee.setHasSponsonTurret(true); else CurVee.setHasSponsonTurret(false); RefreshSelectedEquipment(); BuildLocationSelector(); - }//GEN-LAST:event_chkSponsonTurretActionPerformed + } - private void mnuReloadEquipmentActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuReloadEquipmentActionPerformed + private void mnuReloadEquipmentActionPerformed(java.awt.event.ActionEvent evt) { try { data = new DataFactory( CurVee ); } catch( Exception e ) { @@ -9814,7 +9749,7 @@ private void mnuReloadEquipmentActionPerformed(java.awt.event.ActionEvent evt) { e.printStackTrace(); } SetWeaponChoosers(); - }//GEN-LAST:event_mnuReloadEquipmentActionPerformed + } private PagePrinter SetupPrinter() { PagePrinter printer = new PagePrinter(); From b8d3cebf86dd9e353fe93017d92311de1684dab6 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sun, 5 Feb 2023 21:33:49 -0700 Subject: [PATCH 066/199] Match Naming --- saw/src/main/java/saw/gui/frmVee.java | 2 +- saw/src/main/java/saw/gui/frmVeeWide.java | 2 +- sswlib/src/main/java/components/CASE.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index c63ca94b..3209fda6 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -7063,6 +7063,7 @@ private void RefreshEquipment() { chkCASE.setSelected(false); chkCASE.setEnabled(false); } + chkCASE.setSelected( CurVee.GetLoadout().HasCase() ); // fix Artemis IV controls ifMissileGuidance ArtCheck = new ArtemisIVFCS( null ); @@ -7179,7 +7180,6 @@ private void RefreshEquipment() { } if( ! chkUseTC.isEnabled() ) { CurVee.UseTC( false, false ); } - chkCASE.setSelected( CurVee.GetLoadout().HasCase() ); if( CurVee.GetRulesLevel() >= AvailableCode.RULES_EXPERIMENTAL ) { chkFractional.setEnabled( true ); diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 172569b1..422a267a 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -6354,6 +6354,7 @@ private void RefreshEquipment() { chkCASE.setSelected(false); chkCASE.setEnabled(false); } + chkCASE.setSelected( CurVee.GetLoadout().HasCase() ); // fix Artemis IV controls ifMissileGuidance ArtCheck = new ArtemisIVFCS( null ); @@ -6470,7 +6471,6 @@ private void RefreshEquipment() { } if( ! chkUseTC.isEnabled() ) { CurVee.UseTC( false, false ); } - chkCASE.setSelected( CurVee.GetLoadout().HasCase() ); if( CurVee.GetRulesLevel() >= AvailableCode.RULES_EXPERIMENTAL ) { chkFractional.setEnabled( true ); diff --git a/sswlib/src/main/java/components/CASE.java b/sswlib/src/main/java/components/CASE.java index 2019597f..3d8319a8 100644 --- a/sswlib/src/main/java/components/CASE.java +++ b/sswlib/src/main/java/components/CASE.java @@ -133,7 +133,7 @@ public AvailableCode GetAvailability() { @Override public String toString() { - return "C.A.S.E."; + return "CASE"; } public void SetClan(boolean b ) { From 9442fcb5c3b885013ae4eb340c31c402ada44128 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sun, 5 Feb 2023 21:43:59 -0700 Subject: [PATCH 067/199] Clone Booster For Omni variants --- sswlib/src/main/java/components/CVLoadout.java | 12 ++++++++++++ sswlib/src/main/java/components/ifCVLoadout.java | 1 + 2 files changed, 13 insertions(+) diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index 0ca9336c..2d9604bd 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -864,6 +864,9 @@ public ifCVLoadout Clone() { if( HasSupercharger() ) { clone.SetSupercharger( SCharger ); } + if (HasVTOLBooster()) { + clone.SetVTOLBooster( VBooster ); + } if( Owner.IsOmni() ) { clone.SetBaseLoadout( this ); } @@ -1137,6 +1140,15 @@ public void SetVTOLBooster(boolean b) throws Exception { } Owner.setChanged(true); } + + public void SetVTOLBooster(VTOLBooster s) { + // this sets the loadout's booster to a different one. + // Used for cloning purposes only! + VBooster = s; + AddMechModifier(VBooster.GetMechModifier()); + Owner.SetChanged( true ); + } + public boolean HasVTOLBooster() { return UsingVTOLBooster; } public VTOLBooster GetVTOLBooster() { return VBooster; diff --git a/sswlib/src/main/java/components/ifCVLoadout.java b/sswlib/src/main/java/components/ifCVLoadout.java index e1e043db..7f87a43d 100644 --- a/sswlib/src/main/java/components/ifCVLoadout.java +++ b/sswlib/src/main/java/components/ifCVLoadout.java @@ -149,6 +149,7 @@ public interface ifCVLoadout { public boolean HasSupercharger(); public Supercharger GetSupercharger(); public void SetVTOLBooster(boolean b) throws Exception; + public void SetVTOLBooster(VTOLBooster s); public boolean HasVTOLBooster(); public VTOLBooster GetVTOLBooster(); public CVPowerAmplifier GetPowerAmplifier(); From 011e7045af7df64ab3705c3de7a11f0e81306034 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Mon, 6 Feb 2023 11:15:42 -0700 Subject: [PATCH 068/199] Sets the Booster check correctly --- saw/src/main/java/saw/gui/frmVee.java | 46 ++++--------------- saw/src/main/java/saw/gui/frmVeeWide.java | 44 ++++-------------- .../src/main/java/components/CVLoadout.java | 1 + 3 files changed, 18 insertions(+), 73 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 300a2b8f..eec4fee7 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -7190,9 +7190,7 @@ private void RefreshEquipment() { chkSupercharger.setSelected( false ); } } - if (chkJetBooster.isEnabled()) { - chkJetBooster.setSelected(CurVee.GetLoadout().HasVTOLBooster()); - } + chkJetBooster.setSelected(CurVee.GetLoadout().HasVTOLBooster()); if( ! chkUseTC.isEnabled() ) { CurVee.UseTC( false, false ); } chkClanCASE.setSelected( CurVee.GetLoadout().HasISCASE() ); @@ -8544,39 +8542,13 @@ private void RefreshOmniChoices() { private void CheckEquipment() { // consolidating some code here. - if( CurVee.UsingArtemisIV() ) { - chkFCSAIV.setSelected( true ); - } else { - chkFCSAIV.setSelected( false ); - } - if( CurVee.UsingArtemisV() ) { - chkFCSAV.setSelected( true ); - } else { - chkFCSAV.setSelected( false ); - } - if( CurVee.UsingApollo() ) { - chkFCSApollo.setSelected( true ); - } else { - chkFCSApollo.setSelected( false ); - } - - if( CurVee.UsingTC() ) { - chkUseTC.setSelected( true ); - } else { - chkUseTC.setSelected( false ); - } - - - if( CurVee.GetLoadout().HasSupercharger() ) { - chkSupercharger.setSelected( true ); - } else { - chkSupercharger.setSelected( false ); - } - if( CurVee.GetLoadout().HasISCASE() ) { - chkClanCASE.setSelected( true ); - } else { - chkClanCASE.setSelected( false ); - } + chkFCSAIV.setSelected( CurVee.UsingArtemisIV() ); + chkFCSAV.setSelected( CurVee.UsingArtemisV() ); + chkFCSApollo.setSelected( CurVee.UsingApollo() ); + chkUseTC.setSelected( CurVee.UsingTC() ); + chkJetBooster.setSelected( CurVee.GetBaseLoadout().HasVTOLBooster() ); + chkSupercharger.setSelected( CurVee.GetBaseLoadout().HasSupercharger() ); + chkClanCASE.setSelected( CurVee.GetBaseLoadout().HasISCASE() ); } private void LockGUIForOmni() { @@ -8605,7 +8577,6 @@ private void LockGUIForOmni() { btnLockChassis.setEnabled( false ); chkYearRestrict.setEnabled( false ); chkTrailer.setEnabled( false ); - chkJetBooster.setEnabled(false); if( CurVee.GetBaseLoadout().GetJumpJets().GetNumJJ() > 0 ) { //cmbJumpJetType.setEnabled( false ); } @@ -8625,6 +8596,7 @@ private void LockGUIForOmni() { chkFractional.setEnabled( false ); chkEnviroSealing.setEnabled( false ); + chkJetBooster.setEnabled(false); if( CurVee.GetBaseLoadout().HasSupercharger() ) { chkSupercharger.setEnabled( false ); } diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 221bda83..1f8f1cf9 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -6468,9 +6468,7 @@ private void RefreshEquipment() { chkSupercharger.setSelected( false ); } } - if (chkJetBooster.isEnabled()) { - chkJetBooster.setSelected(CurVee.GetLoadout().HasVTOLBooster()); - } + chkJetBooster.setSelected(CurVee.GetLoadout().HasVTOLBooster()); if( ! chkUseTC.isEnabled() ) { CurVee.UseTC( false, false ); } chkClanCASE.setSelected( CurVee.GetLoadout().HasISCASE() ); @@ -6815,39 +6813,13 @@ private void RefreshOmniChoices() { private void CheckEquipment() { // consolidating some code here. - if( CurVee.UsingArtemisIV() ) { - chkFCSAIV.setSelected( true ); - } else { - chkFCSAIV.setSelected( false ); - } - if( CurVee.UsingArtemisV() ) { - chkFCSAV.setSelected( true ); - } else { - chkFCSAV.setSelected( false ); - } - if( CurVee.UsingApollo() ) { - chkFCSApollo.setSelected( true ); - } else { - chkFCSApollo.setSelected( false ); - } - - if( CurVee.UsingTC() ) { - chkUseTC.setSelected( true ); - } else { - chkUseTC.setSelected( false ); - } - - - if( CurVee.GetLoadout().HasSupercharger() ) { - chkSupercharger.setSelected( true ); - } else { - chkSupercharger.setSelected( false ); - } - if( CurVee.GetLoadout().HasISCASE() ) { - chkClanCASE.setSelected( true ); - } else { - chkClanCASE.setSelected( false ); - } + chkFCSAIV.setSelected( CurVee.UsingArtemisIV() ); + chkFCSAV.setSelected( CurVee.UsingArtemisV() ); + chkFCSApollo.setSelected( CurVee.UsingApollo() ); + chkUseTC.setSelected( CurVee.UsingTC() ); + chkJetBooster.setSelected( CurVee.GetBaseLoadout().HasVTOLBooster() ); + chkSupercharger.setSelected( CurVee.GetBaseLoadout().HasSupercharger() ); + chkClanCASE.setSelected( CurVee.GetBaseLoadout().HasISCASE() ); } private void LockGUIForOmni() { diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index 2d9604bd..db9fdd30 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -1145,6 +1145,7 @@ public void SetVTOLBooster(VTOLBooster s) { // this sets the loadout's booster to a different one. // Used for cloning purposes only! VBooster = s; + UsingVTOLBooster = true; AddMechModifier(VBooster.GetMechModifier()); Owner.SetChanged( true ); } From 6d9d006311f0e9f0172992f117365b5ad46963f9 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Mon, 6 Feb 2023 22:05:16 -0700 Subject: [PATCH 069/199] Match Name changes For the chk and the method --- saw/src/main/java/saw/gui/frmVee.java | 2 +- saw/src/main/java/saw/gui/frmVeeWide.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 290a7522..a8fbddcd 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -8493,7 +8493,7 @@ private void CheckEquipment() { chkUseTC.setSelected( CurVee.UsingTC() ); chkJetBooster.setSelected( CurVee.GetBaseLoadout().HasVTOLBooster() ); chkSupercharger.setSelected( CurVee.GetBaseLoadout().HasSupercharger() ); - chkClanCASE.setSelected( CurVee.GetBaseLoadout().HasISCASE() ); + chkCASE.setSelected( CurVee.GetBaseLoadout().HasCase() ); } private void LockGUIForOmni() { diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 6d946a1b..7f16b73d 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -6820,7 +6820,7 @@ private void CheckEquipment() { chkUseTC.setSelected( CurVee.UsingTC() ); chkJetBooster.setSelected( CurVee.GetBaseLoadout().HasVTOLBooster() ); chkSupercharger.setSelected( CurVee.GetBaseLoadout().HasSupercharger() ); - chkClanCASE.setSelected( CurVee.GetBaseLoadout().HasISCASE() ); + chkCASE.setSelected( CurVee.GetBaseLoadout().HasCase() ); } private void LockGUIForOmni() { From 8d5d73b13999384ea722393318fff6e34f8f6b71 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Tue, 7 Feb 2023 21:01:39 -0700 Subject: [PATCH 070/199] Load 0Pt and Fix Compact --- Data/Equipment/quirks.json | 4 ++-- ssw/src/main/java/ssw/gui/dlgQuirks.java | 24 +++++++++---------- .../main/java/filehandlers/MechReader.java | 2 +- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Data/Equipment/quirks.json b/Data/Equipment/quirks.json index 4895c6ec..c3dc2f11 100644 --- a/Data/Equipment/quirks.json +++ b/Data/Equipment/quirks.json @@ -107,8 +107,8 @@ "protomech": false, "isvariable": false }, - "Compact ‘Mech": { - "name": "Compact ‘Mech", + "Compact 'Mech": { + "name": "Compact 'Mech", "cost": 1, "description": "This Quirk describes a ’Mech that is particularly slim in stature, such as the Jackalope. It enables the ’Mech to share a BattleMech cubicle with another Compact ’Mech. It also allows a ’Mech recovery vehicle to transport two Compact ’Mechs. In both cases, the combined tonnage of the two ’Mechs cannot exceed relevant tonnage limits. The Compact ’Mech quirk only provides this bonus for transportation purposes Compact ’Mechs cannot share the same space at the same time when undergoing maintenance or repairs. This quirk can only be applied to ’Mechs that also possess the Narrow/Low Profile quirk, and is further limited to ’Mechs of medium weight (55 tons) or less.", "positive": true, diff --git a/ssw/src/main/java/ssw/gui/dlgQuirks.java b/ssw/src/main/java/ssw/gui/dlgQuirks.java index 3ec4471b..7801fd4e 100644 --- a/ssw/src/main/java/ssw/gui/dlgQuirks.java +++ b/ssw/src/main/java/ssw/gui/dlgQuirks.java @@ -193,36 +193,36 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pack(); }// //GEN-END:initComponents - private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAddActionPerformed + private void btnAddActionPerformed(java.awt.event.ActionEvent evt) { Quirk q = (Quirk)((tbQuirks) tblList.getModel()).get( tblList.convertRowIndexToModel( tblList.getSelectedRow() )); tblQ.quirklist.add(q); Refresh(); - }//GEN-LAST:event_btnAddActionPerformed + } - private void btnRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRemoveActionPerformed + private void btnRemoveActionPerformed(java.awt.event.ActionEvent evt) { Quirk q = (Quirk)((tbQuirks) tblSelected.getModel()).get( tblSelected.convertRowIndexToModel( tblSelected.getSelectedRow() )); tblQ.quirklist.remove(q); Refresh(); - }//GEN-LAST:event_btnRemoveActionPerformed + } - private void btnDoneActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDoneActionPerformed + private void btnDoneActionPerformed(java.awt.event.ActionEvent evt) { setVisible( false ); - }//GEN-LAST:event_btnDoneActionPerformed + } - private void tblListMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tblListMouseClicked + private void tblListMouseClicked(java.awt.event.MouseEvent evt) { if ( evt.getClickCount() == 2 ) { btnAddActionPerformed(null); } - }//GEN-LAST:event_tblListMouseClicked + } - private void tblSelectedMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tblSelectedMouseClicked + private void tblSelectedMouseClicked(java.awt.event.MouseEvent evt) { if ( evt.getClickCount() == 2 ) { btnRemoveActionPerformed(null); } - }//GEN-LAST:event_tblSelectedMouseClicked + } - // Variables declaration - do not modify//GEN-BEGIN:variables + // Variables declaration - do not modify private javax.swing.JButton btnAdd; private javax.swing.JButton btnDone; private javax.swing.JButton btnRemove; @@ -231,6 +231,6 @@ private void tblSelectedMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST private javax.swing.JLabel lblBattleMechQuirks; private javax.swing.JTable tblList; private javax.swing.JTable tblSelected; - // End of variables declaration//GEN-END:variables + // End of variables declaration } diff --git a/sswlib/src/main/java/filehandlers/MechReader.java b/sswlib/src/main/java/filehandlers/MechReader.java index 02fac9b5..44c15459 100644 --- a/sswlib/src/main/java/filehandlers/MechReader.java +++ b/sswlib/src/main/java/filehandlers/MechReader.java @@ -1788,7 +1788,7 @@ else if (items.item(w).getNodeName().equals("Description")) { description = items.item(w).getTextContent(); } } - if (name != null && description != null && cost != 0) + if (name != null && description != null) { quirks.add(new Quirk(name, postive, cost, battlemech, industrialmech, combatvehicle, battlearmor, aerospacefighter, conventionalfighter,dropship, jumpship, warship, spacestation, protomech, isvariable, description)); From 09e43ca59e66952d056db8ce061741db96d1b259 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Tue, 7 Feb 2023 21:20:33 -0700 Subject: [PATCH 071/199] Replace Smart Quotes --- Data/Equipment/quirks.json | 40 +++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/Data/Equipment/quirks.json b/Data/Equipment/quirks.json index c3dc2f11..1756dde5 100644 --- a/Data/Equipment/quirks.json +++ b/Data/Equipment/quirks.json @@ -56,7 +56,7 @@ "Battlefists": { "name": "Battlefists", "cost": 2, - "description": "The Battlefists quirk applies only to ’Mechs that are equipped with hand actuators. This quirk reflects ’Mechs that feature hands which are better designed for melee combat as a consequence of their unique configuration (such as the Awesome’s mace-like fist, or the Pillager’s sharpened “knuckles”). This quirk is only paid for once, even if the ’Mech has two fists. If the ’Mech has two hands, and this quirk is only meant to apply to one of those hands, this must be specified (the cost remains the same). A ’Mech with Battlefists receives a –1 Target Number modifier when making Punch attacks.", + "description": "The Battlefists quirk applies only to 'Mechs that are equipped with hand actuators. This quirk reflects 'Mechs that feature hands which are better designed for melee combat as a consequence of their unique configuration (such as the Awesome's mace-like fist, or the Pillager's sharpened “knuckles”). This quirk is only paid for once, even if the 'Mech has two fists. If the 'Mech has two hands, and this quirk is only meant to apply to one of those hands, this must be specified (the cost remains the same). A 'Mech with Battlefists receives a –1 Target Number modifier when making Punch attacks.", "positive": true, "battlemech": true, "industrialmech": true, @@ -110,7 +110,7 @@ "Compact 'Mech": { "name": "Compact 'Mech", "cost": 1, - "description": "This Quirk describes a ’Mech that is particularly slim in stature, such as the Jackalope. It enables the ’Mech to share a BattleMech cubicle with another Compact ’Mech. It also allows a ’Mech recovery vehicle to transport two Compact ’Mechs. In both cases, the combined tonnage of the two ’Mechs cannot exceed relevant tonnage limits. The Compact ’Mech quirk only provides this bonus for transportation purposes Compact ’Mechs cannot share the same space at the same time when undergoing maintenance or repairs. This quirk can only be applied to ’Mechs that also possess the Narrow/Low Profile quirk, and is further limited to ’Mechs of medium weight (55 tons) or less.", + "description": "This Quirk describes a 'Mech that is particularly slim in stature, such as the Jackalope. It enables the 'Mech to share a BattleMech cubicle with another Compact 'Mech. It also allows a 'Mech recovery vehicle to transport two Compact 'Mechs. In both cases, the combined tonnage of the two 'Mechs cannot exceed relevant tonnage limits. The Compact 'Mech quirk only provides this bonus for transportation purposes Compact 'Mechs cannot share the same space at the same time when undergoing maintenance or repairs. This quirk can only be applied to 'Mechs that also possess the Narrow/Low Profile quirk, and is further limited to 'Mechs of medium weight (55 tons) or less.", "positive": true, "battlemech": true, "industrialmech": true, @@ -146,7 +146,7 @@ "Directional Torso Mount": { "name": "Directional Torso Mount", "cost": 2, - "description": "A well-known feature of the original Goliath, a Directional Torso Mount acts as a somewhat more restrictive BattleMech shoulder turret, allowing any weapons in the mount to shoot in either the front arc or the rear arc, depending on the mount’s current facing. The mount’s facing is set at the start of the game, and can be changed at the same time torso twists are made. However, unlike a torso twist, it does not reset at each End Phase: the arc chosen remains until deliberately changed. The mount rotates with any torso twist as normal. Each time a location with a Directional Torso Mount takes a hit (Front or Rear), the player must roll 2D6. A result of 9+ means the mount is destroyed and its weapon locked in its current arc, in addition to the normal effects of the attack. The 3-point version of this quirk is available only to quad ’Mechs. In this case, the mount operates as a full turret, capable of rotating a full 360 degrees. No weapon with location placement restrictions (such as a heavy Gauss rifle) can be placed in a Directional Torso Mount", + "description": "A well-known feature of the original Goliath, a Directional Torso Mount acts as a somewhat more restrictive BattleMech shoulder turret, allowing any weapons in the mount to shoot in either the front arc or the rear arc, depending on the mount's current facing. The mount's facing is set at the start of the game, and can be changed at the same time torso twists are made. However, unlike a torso twist, it does not reset at each End Phase: the arc chosen remains until deliberately changed. The mount rotates with any torso twist as normal. Each time a location with a Directional Torso Mount takes a hit (Front or Rear), the player must roll 2D6. A result of 9+ means the mount is destroyed and its weapon locked in its current arc, in addition to the normal effects of the attack. The 3-point version of this quirk is available only to quad 'Mechs. In this case, the mount operates as a full turret, capable of rotating a full 360 degrees. No weapon with location placement restrictions (such as a heavy Gauss rifle) can be placed in a Directional Torso Mount", "positive": true, "battlemech": true, "industrialmech": true, @@ -236,7 +236,7 @@ "Extended Torso Twist": { "name": "Extended Torso Twist", "cost": 3, - "description": "When torso twisting, the `Mech can change its facing by one or two hexsides. Quad ’Mechs normally cannot torso twist at all. However, a quad ’Mech with this quirk can perform a normal (not extended) torso twist.", + "description": "When torso twisting, the `Mech can change its facing by one or two hexsides. Quad 'Mechs normally cannot torso twist at all. However, a quad 'Mech with this quirk can perform a normal (not extended) torso twist.", "positive": true, "battlemech": true, "industrialmech": true, @@ -254,7 +254,7 @@ "Fine Manipulators": { "name": "Fine Manipulators", "cost": 0, - "description": "Though ’Mechs generally rely on hand actuators for any manual work, some units, such as the Jupiter, feature manipulators otherwise more commonly found on vehicles for delicate work. A ’Mech with this quirk may mount up to one Manipulator (see TM, p. 245) in each side torso and/or arm location. These do not follow the normal construction rules and are weight free the exact number must be specified.", + "description": "Though 'Mechs generally rely on hand actuators for any manual work, some units, such as the Jupiter, feature manipulators otherwise more commonly found on vehicles for delicate work. A 'Mech with this quirk may mount up to one Manipulator (see TM, p. 245) in each side torso and/or arm location. These do not follow the normal construction rules and are weight free the exact number must be specified.", "positive": true, "battlemech": true, "industrialmech": true, @@ -290,7 +290,7 @@ "Good Reputation": { "name": "Good Reputation", "cost": 0, - "description": "Whether due to clever marketing, use by an iconic MechWarrior, or proven capabilities, some ’Mechs are extremely popular. Such ’Mechs are worth a premium on the open market, as buyer demand means that acquiring one at its base price is almost impossible. For each level of this quirk, the ’Mech is worth 10% more C-bills than normal. This quirk is not worth points because it is not, strictly speaking, a bonus to the ’Mech. Note that in some eras and/or locations, such as during the late Third Succession War period, ’Mechs as a whole are so rare that all may be considered to have the 1 point version of this quirk. Furthermore, this quirk is not applicable to Clan machines, as the Clans do not really have a secondary ’Mech market and Inner Sphere customers will gladly pay inflated prices to acquire Clan ’Mechs regardless of their reputation.", + "description": "Whether due to clever marketing, use by an iconic MechWarrior, or proven capabilities, some 'Mechs are extremely popular. Such 'Mechs are worth a premium on the open market, as buyer demand means that acquiring one at its base price is almost impossible. For each level of this quirk, the 'Mech is worth 10% more C-bills than normal. This quirk is not worth points because it is not, strictly speaking, a bonus to the 'Mech. Note that in some eras and/or locations, such as during the late Third Succession War period, 'Mechs as a whole are so rare that all may be considered to have the 1 point version of this quirk. Furthermore, this quirk is not applicable to Clan machines, as the Clans do not really have a secondary 'Mech market and Inner Sphere customers will gladly pay inflated prices to acquire Clan 'Mechs regardless of their reputation.", "positive": true, "battlemech": true, "industrialmech": true, @@ -541,7 +541,7 @@ "Nimble Jumper": { "name": "Nimble Jumper", "cost": 3, - "description": "Jump jets are brute-force thrusters designed only to transport a ’Mech directly from point A to point B. Some ’Mechs, however, such as the Spider, are especially nimble when jumping. When a ’Mech with this quirk jumps, it need not follow the most direct path to its target hex. Instead, it may deviate from that path by up to one hex of its controller’s choice (assuming the ’Mech has the Jumping MP required, of course additional heat for such a jump is generated as normal for the jump jet type in use). For example, a jump that would normally cover six hexes can instead cover up to seven. If a ’Mech jumps in this fashion, attacks against the ’Mech receive an additional +1 Target Movement Modifier (a total of +2 for jumping, instead of the normal +1 the extra hex traveled is also factored into the ’Mech’s Target Movement Modifier, as normal). However, attacks made by the jumping ’Mech receive the same additional Target Number modifier (a total of +4 for jumping, instead of +3). This quirk can only be taken by light or medium ’Mechs, and only for those that have at least as many Jumping MP as they do Walking MP", + "description": "Jump jets are brute-force thrusters designed only to transport a 'Mech directly from point A to point B. Some 'Mechs, however, such as the Spider, are especially nimble when jumping. When a 'Mech with this quirk jumps, it need not follow the most direct path to its target hex. Instead, it may deviate from that path by up to one hex of its controller's choice (assuming the 'Mech has the Jumping MP required, of course additional heat for such a jump is generated as normal for the jump jet type in use). For example, a jump that would normally cover six hexes can instead cover up to seven. If a 'Mech jumps in this fashion, attacks against the 'Mech receive an additional +1 Target Movement Modifier (a total of +2 for jumping, instead of the normal +1 the extra hex traveled is also factored into the 'Mech's Target Movement Modifier, as normal). However, attacks made by the jumping 'Mech receive the same additional Target Number modifier (a total of +4 for jumping, instead of +3). This quirk can only be taken by light or medium 'Mechs, and only for those that have at least as many Jumping MP as they do Walking MP", "positive": true, "battlemech": true, "industrialmech": true, @@ -559,7 +559,7 @@ "Overhead Arms": { "name": "Overhead Arms", "cost": 2, - "description": "’Mechs equipped with overhead arms—such as the Fire Moth—can deliver ranged, direct-fire attacks while hiding almost completely from view. This quirk cannot be combined with the Low-Mounted Arms quirk, nor can it be taken by any ’Mech that either does not have arms, or lacks any form of direct-fire ranged weaponry in said arms. If standing, a ’Mech with Overhead Arms behind an adjacent Level 2 hill or building can fire its arm-mounted direct-fire weapons over it. Such attacks receive a +2 Target Number modifier. Friendly spotters cannot assist with this type of attack. However, a ’Mech with Overhead Arms is always exposed to return fire in these circumstances: it can still be attacked despite being behind Level 2 terrain. Apply a +2 Target Number modifier to any attacks that pass through such covering terrain, in addition to the normal +1 partial cover modifier. In this case, only arm hits actually strike the target: all other hits strike the covering terrain instead. This form of partial cover is not negated by the attacker being any number of levels higher than the defender", + "description": "'Mechs equipped with overhead arms—such as the Fire Moth—can deliver ranged, direct-fire attacks while hiding almost completely from view. This quirk cannot be combined with the Low-Mounted Arms quirk, nor can it be taken by any 'Mech that either does not have arms, or lacks any form of direct-fire ranged weaponry in said arms. If standing, a 'Mech with Overhead Arms behind an adjacent Level 2 hill or building can fire its arm-mounted direct-fire weapons over it. Such attacks receive a +2 Target Number modifier. Friendly spotters cannot assist with this type of attack. However, a 'Mech with Overhead Arms is always exposed to return fire in these circumstances: it can still be attacked despite being behind Level 2 terrain. Apply a +2 Target Number modifier to any attacks that pass through such covering terrain, in addition to the normal +1 partial cover modifier. In this case, only arm hits actually strike the target: all other hits strike the covering terrain instead. This form of partial cover is not negated by the attacker being any number of levels higher than the defender", "positive": true, "battlemech": true, "industrialmech": true, @@ -613,7 +613,7 @@ "Rugged": { "name": "Rugged", "cost": 1, - "description": "Some ’Mechs are extremely reliable, reducing the frequency with which they require maintenance. The cost is 1 point if the ‘Mech can go for two times as long between maintenance periods as normal, and 2 points if it can go up to three times as long.", + "description": "Some 'Mechs are extremely reliable, reducing the frequency with which they require maintenance. The cost is 1 point if the ‘Mech can go for two times as long between maintenance periods as normal, and 2 points if it can go up to three times as long.", "positive": true, "battlemech": true, "industrialmech": true, @@ -685,7 +685,7 @@ "Stabilized Weapon": { "name": "Stabilized Weapon", "cost": 0, - "description": "Some weapons, such as the center torso and head lasers of the Mongoose, are better cushioned against or otherwise compensated for the increased inaccuracy caused by moving at high speeds. If the ’Mech runs, all Target Numbers for that weapon receive a –1 modifier. The cost is 1 point per 7 points (or fraction thereof) of maximum damage the weapon can inflict in a single Damage Value grouping. If the “weapon” deals 0 damage (such as TAG), the cost is 1 point. More than one weapon can receive this positive quirk, but the cost for each must be paid.", + "description": "Some weapons, such as the center torso and head lasers of the Mongoose, are better cushioned against or otherwise compensated for the increased inaccuracy caused by moving at high speeds. If the 'Mech runs, all Target Numbers for that weapon receive a –1 modifier. The cost is 1 point per 7 points (or fraction thereof) of maximum damage the weapon can inflict in a single Damage Value grouping. If the “weapon” deals 0 damage (such as TAG), the cost is 1 point. More than one weapon can receive this positive quirk, but the cost for each must be paid.", "positive": true, "battlemech": true, "industrialmech": true, @@ -721,7 +721,7 @@ "Ubiquitous": { "name": "Ubiquitous", "cost": 1, - "description": "Some ’Mechs, such as the Archer, Wasp, and Locust, have been in production for literally centuries, with thousands or even tens of thousands produced in that time across multiple nations. For other ’Mechs, the manufacturer has gone to exceptional lengths to ensure that parts are readily available, such as mass producing them or using parts from other, more common machines. Whatever the case, when attempting to locate replacement parts for these ’Mechs, apply a –2 Target Number modifier. Note that this quirk does not cross between the Clans and the Inner Sphere. For example, a machine Ubiquitous amongst the Clans would not be Ubiquitous in the Inner Sphere, and vice versa.", + "description": "Some 'Mechs, such as the Archer, Wasp, and Locust, have been in production for literally centuries, with thousands or even tens of thousands produced in that time across multiple nations. For other 'Mechs, the manufacturer has gone to exceptional lengths to ensure that parts are readily available, such as mass producing them or using parts from other, more common machines. Whatever the case, when attempting to locate replacement parts for these 'Mechs, apply a –2 Target Number modifier. Note that this quirk does not cross between the Clans and the Inner Sphere. For example, a machine Ubiquitous amongst the Clans would not be Ubiquitous in the Inner Sphere, and vice versa.", "positive": true, "battlemech": true, "industrialmech": true, @@ -757,7 +757,7 @@ "Vestigial Hands": { "name": "Vestigial Hands", "cost": 0, - "description": "A ’Mech with vestigial hands lacks manipulators substantial enough for most game purposes, and does not have hand actuator critical hit slots. However, a ’Mech with vestigial hands may lift and drop items (see Lifting Items (Simplified), p. 21) if a scenario objective requires it.", + "description": "A 'Mech with vestigial hands lacks manipulators substantial enough for most game purposes, and does not have hand actuator critical hit slots. However, a 'Mech with vestigial hands may lift and drop items (see Lifting Items (Simplified), p. 21) if a scenario objective requires it.", "positive": true, "battlemech": true, "industrialmech": true, @@ -919,7 +919,7 @@ "EM Interference": { "name": "EM Interference", "cost": 1, - "description": "An energy weapon is insufficiently shielded and causes interference with other delicate electronics. The turn after the weapon has been fired, the following equipment aboard the ’Mech will not function: any ECM, any Active Probe, Artemis IV FCS, Artemis V FCS, Blue Shield PFD, any C3, Chameleon LPS, Cockpit Command Console, Electronic Warfare Equipment, MASC, MRM FCS, NARC, Null Signature System, Stealth Armor, Streak Launchers, Supercharger, Targeting Computer, and Void Signature System. Alternatively, this quirk can be purchased for the ’Mech itself, in which case the problem occurs whenever any energy weapon on the ’Mech is fired. The cost for this version of the quirk is 2 points, but can only be purchased if the ’Mech has more than one energy weapon.", + "description": "An energy weapon is insufficiently shielded and causes interference with other delicate electronics. The turn after the weapon has been fired, the following equipment aboard the 'Mech will not function: any ECM, any Active Probe, Artemis IV FCS, Artemis V FCS, Blue Shield PFD, any C3, Chameleon LPS, Cockpit Command Console, Electronic Warfare Equipment, MASC, MRM FCS, NARC, Null Signature System, Stealth Armor, Streak Launchers, Supercharger, Targeting Computer, and Void Signature System. Alternatively, this quirk can be purchased for the 'Mech itself, in which case the problem occurs whenever any energy weapon on the 'Mech is fired. The cost for this version of the quirk is 2 points, but can only be purchased if the 'Mech has more than one energy weapon.", "positive": false, "battlemech": true, "industrialmech": true, @@ -1027,7 +1027,7 @@ "Illegal Design": { "name": "Illegal Design", "cost": 0, - "description": "’Mechs designed with this quirk do not follow the existing construction rules for some reason, achieving effects that are not normally allowed in game-play, and which can fail spectacularly at any moment. (Note: The total weight and critical space of all components must still fit within the design’s tonnage and critical space.) If employed, the opposing player may roll 2D6 to determine if the ’Mech with this quirk suffers a catastrophic failure once every 6 turns of combat. On a result of 6 or higher, such catastrophic failure occurs in 1D6 of the ’Mech’s hit locations (using the Front/Back Hit Locations Table). A Critical Hit check is then made for each failure location determined, applying a +4 modifier to the roll result. On any modified roll result of 13+, the location suffers complete collapse if it is an arm, leg, head, wing, main gun, or turret. This will destroy all items within (and any explosive components checks should be made as appropriate for location destruction). If the affected location is none of the above, it suffers 4 critical hits, determined as normal. Illegal ’Mechs suffer an additional +4 Target Number modifier to repair or replace any damaged or destroyed components, and double all repair and maintenance times for work performed on them. If an Illegal ’Mech repair fails, the item gains the Nonfunctional quirk as well. Finally, because they are technically failures at the time of their production, Illegal ’Mechs should also receive the Obsolete quirk (see p. 88), with the year of their obsolescence determined to be the same as their year of introduction", + "description": "'Mechs designed with this quirk do not follow the existing construction rules for some reason, achieving effects that are not normally allowed in game-play, and which can fail spectacularly at any moment. (Note: The total weight and critical space of all components must still fit within the design's tonnage and critical space.) If employed, the opposing player may roll 2D6 to determine if the 'Mech with this quirk suffers a catastrophic failure once every 6 turns of combat. On a result of 6 or higher, such catastrophic failure occurs in 1D6 of the 'Mech's hit locations (using the Front/Back Hit Locations Table). A Critical Hit check is then made for each failure location determined, applying a +4 modifier to the roll result. On any modified roll result of 13+, the location suffers complete collapse if it is an arm, leg, head, wing, main gun, or turret. This will destroy all items within (and any explosive components checks should be made as appropriate for location destruction). If the affected location is none of the above, it suffers 4 critical hits, determined as normal. Illegal 'Mechs suffer an additional +4 Target Number modifier to repair or replace any damaged or destroyed components, and double all repair and maintenance times for work performed on them. If an Illegal 'Mech repair fails, the item gains the Nonfunctional quirk as well. Finally, because they are technically failures at the time of their production, Illegal 'Mechs should also receive the Obsolete quirk (see p. 88), with the year of their obsolescence determined to be the same as their year of introduction", "positive": false, "battlemech": true, "industrialmech": true, @@ -1081,7 +1081,7 @@ "Low-Mounted Arms": { "name": "Low-Mounted Arms", "cost": 2, - "description": "’Mechs equipped with extremely low-mounted arms—such as the Dark Crow—have mounted their arms far too low to take advantage of the ’Mech’s height advantage. This quirk cannot be combined with the Overhead Arms quirk, nor can it be taken by any ’Mech that either does not have arms, or lacks any form of weaponry in its arms. A ’Mech with Low-Mounted Arms fires its arm-mounted weapons as if they are actually mounted in the ’Mech’s legs, even though these arms still rotate with the torso position. As a result, these weapons may be blocked from firing by partial cover such as low hills and buildings. By the same token, attacks against ’Mech with Low-Mounted Arms that pass over partial cover cannot strike the ’Mech’s arms either, and instead will strike the covering terrain.", + "description": "'Mechs equipped with extremely low-mounted arms—such as the Dark Crow—have mounted their arms far too low to take advantage of the 'Mech's height advantage. This quirk cannot be combined with the Overhead Arms quirk, nor can it be taken by any 'Mech that either does not have arms, or lacks any form of weaponry in its arms. A 'Mech with Low-Mounted Arms fires its arm-mounted weapons as if they are actually mounted in the 'Mech's legs, even though these arms still rotate with the torso position. As a result, these weapons may be blocked from firing by partial cover such as low hills and buildings. By the same token, attacks against 'Mech with Low-Mounted Arms that pass over partial cover cannot strike the 'Mech's arms either, and instead will strike the covering terrain.", "positive": false, "battlemech": true, "industrialmech": true, @@ -1171,7 +1171,7 @@ "Non-Functional Item": { "name": "Non-Functional Item", "cost": 5, - "description": "A ’Mech with this quirk has one or more components or pieces of equipment that simply do not work. No amount of repairs or replacement will correct this issue the ’Mech must be redesigned from the ground up to solve the problem. A ’Mech can have multiple Non-functional quirks, but each must be assigned to the specifically non-operational components they possess", + "description": "A 'Mech with this quirk has one or more components or pieces of equipment that simply do not work. No amount of repairs or replacement will correct this issue the 'Mech must be redesigned from the ground up to solve the problem. A 'Mech can have multiple Non-functional quirks, but each must be assigned to the specifically non-operational components they possess", "positive": false, "battlemech": true, "industrialmech": true, @@ -1225,7 +1225,7 @@ "Oversized": { "name": "Oversized", "cost": 2, - "description": "The Oversized quirk cannot be combined with the Narrow/Low Profile quirk, and is further limited to ’Mechs of heavy weight (60 tons) and larger. This quirk describes a ’Mech that has been built physically larger than the norm, such as the Mackie or Scylla. Any Piloting Skill Rolls required of an Oversized ’Mech to avoid damage when passing through buildings suffer a +1 Target Number modifier. Furthermore, they find it harder to use covering terrain effectively: an Oversized ’Mech never receives the +1 Target Number modifier for partial cover when being attacked", + "description": "The Oversized quirk cannot be combined with the Narrow/Low Profile quirk, and is further limited to 'Mechs of heavy weight (60 tons) and larger. This quirk describes a 'Mech that has been built physically larger than the norm, such as the Mackie or Scylla. Any Piloting Skill Rolls required of an Oversized 'Mech to avoid damage when passing through buildings suffer a +1 Target Number modifier. Furthermore, they find it harder to use covering terrain effectively: an Oversized 'Mech never receives the +1 Target Number modifier for partial cover when being attacked", "positive": false, "battlemech": true, "industrialmech": true, @@ -1405,7 +1405,7 @@ "Ramshackle": { "name": "Ramshackle", "cost": 3, - "description": "Decades or even centuries of hard service and substandard maintenance have led to an unpredictable machine patched together with bailing wire and prayers. The ’Mech’s controller rolls 1D6 at the start of the battle. The result indicates what negative quirk, if any, applies to that ’Mech for the duration of the battle: Sensor Ghosts (1), EM Interference (entire ’Mech) (2), Hard to Pilot (3), Cooling System Flaws (4), Poor Performance (5), or no negative result (6)", + "description": "Decades or even centuries of hard service and substandard maintenance have led to an unpredictable machine patched together with bailing wire and prayers. The 'Mech's controller rolls 1D6 at the start of the battle. The result indicates what negative quirk, if any, applies to that 'Mech for the duration of the battle: Sensor Ghosts (1), EM Interference (entire 'Mech) (2), Hard to Pilot (3), Cooling System Flaws (4), Poor Performance (5), or no negative result (6)", "positive": false, "battlemech": true, "industrialmech": true, @@ -1441,7 +1441,7 @@ "Slow Traverse": { "name": "Slow Traverse", "cost": 1, - "description": "The ’Mech has an underpowered turret traverse mechanism. Any turret (or 3-point Directional Torso Mount) on the ’Mech may only rotate one hexside in a turn.", + "description": "The 'Mech has an underpowered turret traverse mechanism. Any turret (or 3-point Directional Torso Mount) on the 'Mech may only rotate one hexside in a turn.", "positive": false, "battlemech": true, "industrialmech": true, @@ -1459,7 +1459,7 @@ "Static Ammo Feed": { "name": "Static Ammo Feed", "cost": 1, - "description": "Weapons with the Static Ammo Feed quirk use a very crude or minimized form of ammunition feed that renders the weapon incapable of switching between multiple ammunition bins. It is most commonly seen in ’Mechs that feature exposed ammunition feeds, such as the Blade or the Cygnus, and thus often occurs in conjunction with the Exposed Weapon Linkage quirk. The Static Ammo Feed quirk must be taken for each affected weapon type the ’Mech carries, though it can cover multiple weapons of that type at the same time. Thus, a ’Mech with two Autocannon/10s and two Autocannon/5s would need two Static Ammo Quirks to account for all four weapons having this issue, if desired—one for the AC/10s and the other for the AC/5s. This quick cannot be applied to weapons without switchable ammunition. Weapons covered by this quirk will be unable to switch between different ammunition types, even if they possess the Switchable (S) feature. Thus, all ammunition carried for a weapon with a Static Ammo Feed must be of the same type throughout play.", + "description": "Weapons with the Static Ammo Feed quirk use a very crude or minimized form of ammunition feed that renders the weapon incapable of switching between multiple ammunition bins. It is most commonly seen in 'Mechs that feature exposed ammunition feeds, such as the Blade or the Cygnus, and thus often occurs in conjunction with the Exposed Weapon Linkage quirk. The Static Ammo Feed quirk must be taken for each affected weapon type the 'Mech carries, though it can cover multiple weapons of that type at the same time. Thus, a 'Mech with two Autocannon/10s and two Autocannon/5s would need two Static Ammo Quirks to account for all four weapons having this issue, if desired—one for the AC/10s and the other for the AC/5s. This quick cannot be applied to weapons without switchable ammunition. Weapons covered by this quirk will be unable to switch between different ammunition types, even if they possess the Switchable (S) feature. Thus, all ammunition carried for a weapon with a Static Ammo Feed must be of the same type throughout play.", "positive": false, "battlemech": true, "industrialmech": true, From 763ca3b89a1ef5cbcab68a6ac44ebae7b73aec38 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Wed, 8 Feb 2023 08:35:13 -0700 Subject: [PATCH 072/199] Accurate Weapon and Anti-Aircraft Targeting Added to the list of quirk options. --- Data/Equipment/quirks.json | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/Data/Equipment/quirks.json b/Data/Equipment/quirks.json index 1756dde5..a214c695 100644 --- a/Data/Equipment/quirks.json +++ b/Data/Equipment/quirks.json @@ -1,4 +1,40 @@ { + "Accurate Weapon": { + "name": "Accurate Weapon", + "cost": 0, + "description": "Being of exceptional design, a weapon or bay is more accurate than normal, and receives a –1 Target Number modifier. The cost is 1 point per 5 points (or fraction thereof) of maximum damage the weapon or bay can inflict in a single Damage Value grouping. More than one weapon or bay on a unit can receive this positive quirk, but the cost for each must be paid. If the “weapon” deals 0 damage (such as TAG), the cost is 2 points.", + "positive": true, + "battlemech": true, + "industrialmech": true, + "combatvehicle": true, + "battlearmor": true, + "aerospacefighter": true, + "conventionalfighter": true, + "dropship": true, + "jumpship": false, + "warship": true, + "spacestation": true, + "protomech": true, + "isvariable": true + }, + "Anti-Aircraft Targeting": { + "name": "Anti-Aircraft Targeting", + "cost": 0, + "description": "Some 'Mechs, like the Rifleman, have an advanced targeting system that can accurately target airborne units. This includes 'Mechs performing a combat drop (see p. 20, SO), but not jumping 'Mechs. All attacks against such units while airborne (not grounded) receive a –2 Target Number modifier. The cost is 1 point per 7 points (or fraction thereof ) of maximum damage that all the weapons mounted on the 'Mech can inflict (excluding physical attack weapons). This bonus is only available when the 'Mech itself is on the ground.", + "positive": true, + "battlemech": true, + "industrialmech": true, + "combatvehicle": true, + "battlearmor": false, + "aerospacefighter": false, + "conventionalfighter": false, + "dropship": false, + "jumpship": false, + "warship": false, + "spacestation": false, + "protomech": false, + "isvariable": true + }, "Atmospheric Flyer": { "name": "Atmospheric Flyer", "cost": 3, From 029fc061080b732ca4db3f55d265b75644075680 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Thu, 9 Feb 2023 12:47:15 -0700 Subject: [PATCH 073/199] Rename isIsVariable and Filter for Mechs --- ssw/src/main/java/ssw/gui/dlgQuirks.java | 8 +++++++- sswlib/src/main/java/components/Quirk.java | 10 ++++++---- sswlib/src/main/java/filehandlers/MechWriter.java | 2 +- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/ssw/src/main/java/ssw/gui/dlgQuirks.java b/ssw/src/main/java/ssw/gui/dlgQuirks.java index 7801fd4e..2106df2e 100644 --- a/ssw/src/main/java/ssw/gui/dlgQuirks.java +++ b/ssw/src/main/java/ssw/gui/dlgQuirks.java @@ -44,11 +44,17 @@ public dlgQuirks(java.awt.Frame parent, boolean modal, DataFactory quirks, Array initComponents(); list = quirks; + ArrayList mechQuirks = new ArrayList(); + for (Quirk item : list.GetQuirks()) { + if (item.isBattlemech() || item.isIndustrialmech()) { + mechQuirks.add(item); + } + } existingQuirks = currentQuirks; tblQ = new tbQuirks(currentQuirks); tblQ.setupTable(tblSelected); - tblList.setModel(new tbQuirks(list.GetQuirks())); + tblList.setModel(new tbQuirks(mechQuirks)); } private void Refresh() diff --git a/sswlib/src/main/java/components/Quirk.java b/sswlib/src/main/java/components/Quirk.java index 087a7872..c5ccd664 100644 --- a/sswlib/src/main/java/components/Quirk.java +++ b/sswlib/src/main/java/components/Quirk.java @@ -92,10 +92,12 @@ public String getName() { /** * @return the cost */ - public int getCost() { - return cost; - } + public int getCost() { return cost; } + public String getCostDisplay() { + if (isvariable) return "Varies"; + return cost + ""; + } /** * @return the description @@ -198,7 +200,7 @@ public boolean isProtomech() { /** * @return the isvariable */ - public boolean isIsvariable() { + public boolean isVariable() { return isvariable; } diff --git a/sswlib/src/main/java/filehandlers/MechWriter.java b/sswlib/src/main/java/filehandlers/MechWriter.java index 0dee8ead..3bc95562 100644 --- a/sswlib/src/main/java/filehandlers/MechWriter.java +++ b/sswlib/src/main/java/filehandlers/MechWriter.java @@ -507,7 +507,7 @@ public void WriteXML( BufferedWriter FR ) throws IOException { "\" conventionalfigher=\"" + Boolean.toString(quirk.isConventionalfighter()) + "\" dropship=\"" + Boolean.toString(quirk.isDropship()) + "\" jumpship=\"" + Boolean.toString(quirk.isDropship()) + "\" warship=\"" + Boolean.toString(quirk.isWarship()) + "\" spacestation=\"" + Boolean.toString(quirk.isSpacestation()) + "\" protomech=\"" + Boolean.toString(quirk.isProtomech()) - + "\" isvariable=\"" + Boolean.toString(quirk.isIsvariable()) + "\">"); + + "\" isvariable=\"" + Boolean.toString(quirk.isVariable()) + "\">"); FR.newLine(); FR.write(tab + tab + tab + tab + "" + FileCommon.EncodeFluff(quirk.getName()) + ""); FR.newLine(); From e3044d04b184ac833f753b5c746d82fb25dad40c Mon Sep 17 00:00:00 2001 From: George Blouin Date: Thu, 9 Feb 2023 16:00:28 -0700 Subject: [PATCH 074/199] Overhaul CASE code Stop using the boolean fields and instead KNOW when the equip is in the loadout + use the item itself to tell us whether it is Clan or not. --- saw/src/main/java/saw/gui/frmVee.java | 157 ++++-------------- saw/src/main/java/saw/gui/frmVeeWide.java | 157 ++++-------------- sswlib/src/main/java/components/CASE.java | 2 + .../src/main/java/components/CVLoadout.java | 43 +++-- .../src/main/java/components/ifCVLoadout.java | 1 + 5 files changed, 81 insertions(+), 279 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index a8fbddcd..6aa27923 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -7057,128 +7057,25 @@ private void RefreshEquipment() { // refreshes the equipment selectors //fix the CASE control CASE Case = new CASE(); - if ( CommonTools.IsAllowed( Case.GetAvailability(), CurVee) || CurVee.GetTechBase() == AvailableCode.TECH_CLAN ) { - chkCASE.setEnabled(true); - } else { - chkCASE.setSelected(false); - chkCASE.setEnabled(false); - } - chkCASE.setSelected( CurVee.GetLoadout().HasCase() ); + setCheckbox(chkCASE, ( CommonTools.IsAllowed( Case.GetAvailability(), CurVee) || CurVee.GetTechBase() == AvailableCode.TECH_CLAN ), CurVee.GetLoadout().HasCase()); // fix Artemis IV controls ifMissileGuidance ArtCheck = new ArtemisIVFCS( null ); - if( CommonTools.IsAllowed( ArtCheck.GetAvailability(), CurVee ) ) { - chkFCSAIV.setEnabled( true ); - } else { - chkFCSAIV.setSelected( false ); - chkFCSAIV.setEnabled( false ); - } + setCheckbox(chkFCSAIV, ( CommonTools.IsAllowed( ArtCheck.GetAvailability(), CurVee ) ), CurVee.UsingArtemisIV()); // fix Artemis V controls ArtCheck = new ArtemisVFCS( null ); - if( CommonTools.IsAllowed( ArtCheck.GetAvailability(), CurVee ) ) { - chkFCSAV.setEnabled( true ); - } else { - chkFCSAV.setSelected( false ); - chkFCSAV.setEnabled( false ); - } + setCheckbox(chkFCSAV, ( CommonTools.IsAllowed( ArtCheck.GetAvailability(), CurVee ) ), CurVee.UsingArtemisV()); // fix ApolloFCS controls ArtCheck = new ApolloFCS( null ); - if( CommonTools.IsAllowed( ArtCheck.GetAvailability(), CurVee ) ) { - chkFCSApollo.setEnabled( true ); - } else { - chkFCSApollo.setSelected( false ); - chkFCSApollo.setEnabled( false ); - } + setCheckbox(chkFCSApollo, ( CommonTools.IsAllowed( ArtCheck.GetAvailability(), CurVee ) ), CurVee.UsingApollo()); // fix the targeting computer display - if( CommonTools.IsAllowed( CurVee.GetTC().GetAvailability(), CurVee ) ) { - chkUseTC.setEnabled( true ); - if( CurVee.UsingTC() ) { - chkUseTC.setSelected( true ); - } else { - chkUseTC.setSelected( false ); - } - } else { - chkUseTC.setSelected( false ); - chkUseTC.setEnabled( false ); - } + setCheckbox(chkUseTC, ( CommonTools.IsAllowed( CurVee.GetTC().GetAvailability(), CurVee ) ), CurVee.UsingTC()); - // check all multi-slot systems - if( CommonTools.IsAllowed( CurVee.GetBlueShield().GetAvailability(), CurVee ) ) { - //chkBSPFD.setEnabled( true ); - } else { - //chkBSPFD.setEnabled( false ); - //chkBSPFD.setSelected( false ); - } - if( CommonTools.IsAllowed( CurVee.GetLoadout().GetSupercharger().GetAvailability(), CurVee ) && !CurVee.IsVTOL() ) { - chkSupercharger.setEnabled( true ); - } else { - chkSupercharger.setEnabled( false ); - } - if( CurVee.IsVTOL() && CommonTools.IsAllowed( CurVee.GetLoadout().GetVTOLBooster().GetAvailability(), CurVee ) && !CurVee.IsOmni()) { - chkJetBooster.setEnabled( true ); - } else { - chkJetBooster.setEnabled( false ); - } - // now set all the equipment if needed - if( ! chkFCSAIV.isEnabled() ) { - try { - CurVee.SetFCSArtemisIV( false ); - } catch( Exception e ) { - Media.Messager( this, e.getMessage() ); - } - chkFCSAIV.setSelected( false ); - } else { - if( CurVee.UsingArtemisIV() ) { - chkFCSAIV.setSelected( true ); - } else { - chkFCSAIV.setSelected( false ); - } - } - if( ! chkFCSAV.isEnabled() ) { - try { - CurVee.SetFCSArtemisV( false ); - } catch( Exception e ) { - Media.Messager( this, e.getMessage() ); - } - chkFCSAV.setSelected( false ); - } else { - if( CurVee.UsingArtemisV() ) { - chkFCSAV.setSelected( true ); - } else { - chkFCSAV.setSelected( false ); - } - } - if( ! chkFCSApollo.isEnabled() ) { - try { - CurVee.SetFCSApollo( false ); - } catch( Exception e ) { - Media.Messager( this, e.getMessage() ); - } - chkFCSApollo.setSelected( false ); - } else { - if( CurVee.UsingApollo() ) { - chkFCSApollo.setSelected( true ); - } else { - chkFCSApollo.setSelected( false ); - } - } - if( ! chkSupercharger.isEnabled() ) { - try { - CurVee.GetLoadout().SetSupercharger( false ); - } catch( Exception e ) { - Media.Messager( this, e.getMessage() ); - } - } else { - if( CurVee.GetLoadout().HasSupercharger() ) { - chkSupercharger.setSelected( true ); - } else { - chkSupercharger.setSelected( false ); - } - } - chkJetBooster.setSelected(CurVee.GetLoadout().HasVTOLBooster()); + setCheckbox(chkSupercharger, ( CommonTools.IsAllowed( CurVee.GetLoadout().GetSupercharger().GetAvailability(), CurVee ) && !CurVee.IsVTOL() ), CurVee.GetLoadout().HasSupercharger()); + setCheckbox(chkJetBooster, ( CommonTools.IsAllowed( CurVee.GetLoadout().GetVTOLBooster().GetAvailability(), CurVee ) && CurVee.IsVTOL() && !CurVee.IsOmni() ), CurVee.GetLoadout().HasVTOLBooster()); if( ! chkUseTC.isEnabled() ) { CurVee.UseTC( false, false ); } @@ -7193,28 +7090,31 @@ private void RefreshEquipment() { if( CurVee.IsOmni() ) { // these items can only be loaded into the base chassis, so they // are always locked for an Omni (although they may be checked). - //chkBSPFD.setEnabled( false ); chkEnviroSealing.setEnabled( false ); chkCommandConsole.setEnabled( false ); + chkJetBooster.setEnabled(false); - // now see if we have a supercharger on the base chassis + //These items can be selected on the base or variants but if the base + //has them disable and mark as selected if( CurVee.GetBaseLoadout().HasSupercharger() ) { chkSupercharger.setEnabled( false ); + chkSupercharger.setSelected( true ); } - if( CurVee.GetBaseLoadout().HasCase() ) { - chkCASE.setEnabled(false); - } - } else { - try { - //if( ! chkBSPFD.isEnabled() ) { locArmor.SetBlueShield( false ); } - //if( ! chkCommandConsole.isEnabled() ) { locArmor.SetCommandConsole( false ); } - } catch( Exception e ) { - // we should never get this, but report it if we do - Media.Messager( this, e.getMessage() ); + if( CurVee.GetLoadout().HasCase() ) { + chkCASE.setEnabled( false ); + chkCASE.setSelected( true ); } } } + private void setCheckbox(JCheckBox element, Boolean isEnabled, Boolean isSelected) { + element.setEnabled(isEnabled); + element.setSelected(false); + if (isEnabled) { + element.setSelected(isSelected); + } + } + private void SetWeaponChoosers() { // sets the weapon choosers up. first, get the user's choices. @@ -7290,7 +7190,6 @@ private void UnlockGUIFromOmni() { chkOmniVee.setEnabled( true ); spnCruiseMP.setEnabled( true ); chkYearRestrict.setEnabled( true ); - //chkBSPFD.setEnabled( true ); chkSupercharger.setEnabled( true ); chkJetBooster.setEnabled(true); chkEnviroSealing.setEnabled( false ); @@ -7599,6 +7498,10 @@ private void cmbEraActionPerformed(java.awt.event.ActionEvent evt) { // get the currently chosen selections SaveSelections(); + // since you can only ever change the era when not restricted, we're not + // doing it here. Pass in default values. + CurVee.GetLoadout().FlushIllegal(); + // refresh all the combo boxes. BuildChassisSelector(); BuildEngineSelector(); @@ -7616,10 +7519,6 @@ private void cmbEraActionPerformed(java.awt.event.ActionEvent evt) { RecalcArmor(); RecalcEquipment(); - // since you can only ever change the era when not restricted, we're not - // doing it here. Pass in default values. - CurVee.GetLoadout().FlushIllegal(); - // now refresh the information panes RefreshSummary(); RefreshInfoPane(); @@ -8493,7 +8392,7 @@ private void CheckEquipment() { chkUseTC.setSelected( CurVee.UsingTC() ); chkJetBooster.setSelected( CurVee.GetBaseLoadout().HasVTOLBooster() ); chkSupercharger.setSelected( CurVee.GetBaseLoadout().HasSupercharger() ); - chkCASE.setSelected( CurVee.GetBaseLoadout().HasCase() ); + chkCASE.setSelected( CurVee.GetLoadout().HasCase() ); } private void LockGUIForOmni() { @@ -8809,7 +8708,7 @@ public void LoadVehicleIntoGUI() { cmbTechBase.setEnabled( true ); txtProdYear.setEnabled( true ); chkTrailer.setSelected( CurVee.isTrailer() ); - chkCASE.setSelected(CurVee.GetLoadout().HasCase()); + switch( CurVee.GetEra() ) { case AvailableCode.ERA_STAR_LEAGUE: lblEraYears.setText( "2443 ~ 2800" ); diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 7f16b73d..aa3cf657 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -6348,128 +6348,25 @@ private void RefreshEquipment() { // refreshes the equipment selectors //fix the CASE control CASE Case = new CASE(); - if ( CommonTools.IsAllowed( Case.GetAvailability(), CurVee) || CurVee.GetTechBase() == AvailableCode.TECH_CLAN ) { - chkCASE.setEnabled(true); - } else { - chkCASE.setSelected(false); - chkCASE.setEnabled(false); - } - chkCASE.setSelected( CurVee.GetLoadout().HasCase() ); + setCheckbox(chkCASE, ( CommonTools.IsAllowed( Case.GetAvailability(), CurVee) || CurVee.GetTechBase() == AvailableCode.TECH_CLAN ), CurVee.GetLoadout().HasCase()); // fix Artemis IV controls ifMissileGuidance ArtCheck = new ArtemisIVFCS( null ); - if( CommonTools.IsAllowed( ArtCheck.GetAvailability(), CurVee ) ) { - chkFCSAIV.setEnabled( true ); - } else { - chkFCSAIV.setSelected( false ); - chkFCSAIV.setEnabled( false ); - } + setCheckbox(chkFCSAIV, ( CommonTools.IsAllowed( ArtCheck.GetAvailability(), CurVee ) ), CurVee.UsingArtemisIV()); // fix Artemis V controls ArtCheck = new ArtemisVFCS( null ); - if( CommonTools.IsAllowed( ArtCheck.GetAvailability(), CurVee ) ) { - chkFCSAV.setEnabled( true ); - } else { - chkFCSAV.setSelected( false ); - chkFCSAV.setEnabled( false ); - } + setCheckbox(chkFCSAV, ( CommonTools.IsAllowed( ArtCheck.GetAvailability(), CurVee ) ), CurVee.UsingArtemisV()); - // fix Artemis IV controls + // fix ApolloFCS controls ArtCheck = new ApolloFCS( null ); - if( CommonTools.IsAllowed( ArtCheck.GetAvailability(), CurVee ) ) { - chkFCSApollo.setEnabled( true ); - } else { - chkFCSApollo.setSelected( false ); - chkFCSApollo.setEnabled( false ); - } + setCheckbox(chkFCSApollo, ( CommonTools.IsAllowed( ArtCheck.GetAvailability(), CurVee ) ), CurVee.UsingApollo()); // fix the targeting computer display - if( CommonTools.IsAllowed( CurVee.GetTC().GetAvailability(), CurVee ) ) { - chkUseTC.setEnabled( true ); - if( CurVee.UsingTC() ) { - chkUseTC.setSelected( true ); - } else { - chkUseTC.setSelected( false ); - } - } else { - chkUseTC.setSelected( false ); - chkUseTC.setEnabled( false ); - } + setCheckbox(chkUseTC, ( CommonTools.IsAllowed( CurVee.GetTC().GetAvailability(), CurVee ) ), CurVee.UsingTC()); - // check all multi-slot systems - if( CommonTools.IsAllowed( CurVee.GetBlueShield().GetAvailability(), CurVee ) ) { - //chkBSPFD.setEnabled( true ); - } else { - //chkBSPFD.setEnabled( false ); - //chkBSPFD.setSelected( false ); - } - if( CommonTools.IsAllowed( CurVee.GetLoadout().GetSupercharger().GetAvailability(), CurVee ) && !CurVee.IsVTOL() ) { - chkSupercharger.setEnabled( true ); - } else { - chkSupercharger.setEnabled( false ); - } - if( CurVee.IsVTOL() && CommonTools.IsAllowed( CurVee.GetLoadout().GetVTOLBooster().GetAvailability(), CurVee ) && !CurVee.isOmni() ) { - chkJetBooster.setEnabled( true ); - } else { - chkJetBooster.setEnabled( false ); - } - // now set all the equipment if needed - if( ! chkFCSAIV.isEnabled() ) { - try { - CurVee.SetFCSArtemisIV( false ); - } catch( Exception e ) { - Media.Messager( this, e.getMessage() ); - } - chkFCSAIV.setSelected( false ); - } else { - if( CurVee.UsingArtemisIV() ) { - chkFCSAIV.setSelected( true ); - } else { - chkFCSAIV.setSelected( false ); - } - } - if( ! chkFCSAV.isEnabled() ) { - try { - CurVee.SetFCSArtemisV( false ); - } catch( Exception e ) { - Media.Messager( this, e.getMessage() ); - } - chkFCSAV.setSelected( false ); - } else { - if( CurVee.UsingArtemisV() ) { - chkFCSAV.setSelected( true ); - } else { - chkFCSAV.setSelected( false ); - } - } - if( ! chkFCSApollo.isEnabled() ) { - try { - CurVee.SetFCSApollo( false ); - } catch( Exception e ) { - Media.Messager( this, e.getMessage() ); - } - chkFCSApollo.setSelected( false ); - } else { - if( CurVee.UsingApollo() ) { - chkFCSApollo.setSelected( true ); - } else { - chkFCSApollo.setSelected( false ); - } - } - if( ! chkSupercharger.isEnabled() ) { - try { - CurVee.GetLoadout().SetSupercharger( false ); - } catch( Exception e ) { - Media.Messager( this, e.getMessage() ); - } - } else { - if( CurVee.GetLoadout().HasSupercharger() ) { - chkSupercharger.setSelected( true ); - } else { - chkSupercharger.setSelected( false ); - } - } - chkJetBooster.setSelected(CurVee.GetLoadout().HasVTOLBooster()); + setCheckbox(chkSupercharger, ( CommonTools.IsAllowed( CurVee.GetLoadout().GetSupercharger().GetAvailability(), CurVee ) && !CurVee.IsVTOL() ), CurVee.GetLoadout().HasSupercharger()); + setCheckbox(chkJetBooster, ( CommonTools.IsAllowed( CurVee.GetLoadout().GetVTOLBooster().GetAvailability(), CurVee ) && CurVee.IsVTOL() && !CurVee.IsOmni() ), CurVee.GetLoadout().HasVTOLBooster()); if( ! chkUseTC.isEnabled() ) { CurVee.UseTC( false, false ); } @@ -6484,25 +6381,30 @@ private void RefreshEquipment() { if( CurVee.IsOmni() ) { // these items can only be loaded into the base chassis, so they // are always locked for an Omni (although they may be checked). - //chkBSPFD.setEnabled( false ); chkEnviroSealing.setEnabled( false ); chkCommandConsole.setEnabled( false ); + chkJetBooster.setEnabled(false); - // now see if we have a supercharger on the base chassis + //These items can be selected on the base or variants but if the base + //has them disable and mark as selected if( CurVee.GetBaseLoadout().HasSupercharger() ) { chkSupercharger.setEnabled( false ); + chkSupercharger.setSelected( true ); } - } else { - try { - //if( ! chkBSPFD.isEnabled() ) { locArmor.SetBlueShield( false ); } - //if( ! chkCommandConsole.isEnabled() ) { locArmor.SetCommandConsole( false ); } - } catch( Exception e ) { - // we should never get this, but report it if we do - Media.Messager( this, e.getMessage() ); + if( CurVee.GetLoadout().HasCase() ) { + chkCASE.setEnabled( false ); + chkCASE.setSelected( true ); } } } + private void setCheckbox(JCheckBox element, Boolean isEnabled, Boolean isSelected) { + element.setEnabled(isEnabled); + element.setSelected(false); + if (isEnabled) { + element.setSelected(isSelected); + } + } private void SetWeaponChoosers() { // sets the weapon choosers up. first, get the user's choices. @@ -6568,7 +6470,6 @@ private void UnlockGUIFromOmni() { chkTrailer.setEnabled( true ); //btnEfficientArmor.setEnabled( true ); //btnBalanceArmor.setEnabled( true ); - //btnLockChassis.setEnabled( true ); chkFCSAIV.setEnabled( true ); chkFCSAV.setEnabled( true ); chkFCSApollo.setEnabled( true ); @@ -6577,7 +6478,6 @@ private void UnlockGUIFromOmni() { btnLockChassis.setEnabled( true ); spnCruiseMP.setEnabled( true ); chkYearRestrict.setEnabled( true ); - //chkBSPFD.setEnabled( true ); chkSupercharger.setEnabled( true ); chkJetBooster.setEnabled(true); chkEnviroSealing.setEnabled( false ); @@ -6820,7 +6720,7 @@ private void CheckEquipment() { chkUseTC.setSelected( CurVee.UsingTC() ); chkJetBooster.setSelected( CurVee.GetBaseLoadout().HasVTOLBooster() ); chkSupercharger.setSelected( CurVee.GetBaseLoadout().HasSupercharger() ); - chkCASE.setSelected( CurVee.GetBaseLoadout().HasCase() ); + chkCASE.setSelected( CurVee.GetLoadout().HasCase() ); } private void LockGUIForOmni() { @@ -6869,6 +6769,9 @@ private void LockGUIForOmni() { if( CurVee.GetBaseLoadout().HasSupercharger() ) { chkSupercharger.setEnabled( false ); } + if ( chkCASE.isSelected() ) { + chkCASE.setEnabled(false); + } // now enable the omnimech controls cmbOmniVariant.setEnabled( true ); @@ -9595,6 +9498,10 @@ private void cmbEraActionPerformed(java.awt.event.ActionEvent evt) { // get the currently chosen selections SaveSelections(); + // since you can only ever change the era when not restricted, we're not + // doing it here. Pass in default values. + CurVee.GetLoadout().FlushIllegal(); + // refresh all the combo boxes. BuildChassisSelector(); BuildEngineSelector(); @@ -9612,10 +9519,6 @@ private void cmbEraActionPerformed(java.awt.event.ActionEvent evt) { RecalcArmor(); RecalcEquipment(); - // since you can only ever change the era when not restricted, we're not - // doing it here. Pass in default values. - CurVee.GetLoadout().FlushIllegal(); - // now refresh the information panes RefreshSummary(); RefreshInfoPane(); diff --git a/sswlib/src/main/java/components/CASE.java b/sswlib/src/main/java/components/CASE.java index 3d8319a8..ba459103 100644 --- a/sswlib/src/main/java/components/CASE.java +++ b/sswlib/src/main/java/components/CASE.java @@ -139,4 +139,6 @@ public String toString() { public void SetClan(boolean b ) { IsClan = b; } + + public boolean IsClan() { return IsClan; } } diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index 9e2ae46b..ce435a29 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -260,6 +260,8 @@ public void FullUnallocate() { public void ClearLoadout() { FullUnallocate(); + + //Clear out any flags during the clearout as this is used for Tech changes UsingSupercharger = false; UsingVTOLBooster = false; Owner.SetChanged( true ); @@ -627,14 +629,14 @@ public int[] FindModularArmor() { } public void FlushIllegal() { - // since most everything else is taken care of during mech recalculates, + // since most everything else is taken care of during recalculates, // this method is provided for non-core equipment AvailableCode AC; abPlaceable p; int Rules = Owner.GetRulesLevel(); //Owner.CheckArmoredComponents(); - + NonCore = GetNonCore(); // see if there's anything to flush out if( NonCore.isEmpty() ) { return; } @@ -854,15 +856,15 @@ public ifCVLoadout Clone() { clone.SetSponsonTurretLeftItems((ArrayList) SponsonTurretLeftItems.clone()); clone.SetSponsonTurretRightItems((ArrayList) SponsonTurretRightItems.clone()); - if ( HasCase() ) { - clone.AddCase(UsingClanCASE); - } if( TCList.size() > 0 ) { clone.SetTCList( (ArrayList) TCList.clone() ); } if( Equipment.size() > 0 ) { clone.SetEquipment( (ArrayList) Equipment.clone() ); } + if (HasCase()) { + clone.SetCase( Case ); + } if( HasSupercharger() ) { clone.SetSupercharger( SCharger ); } @@ -937,17 +939,15 @@ public boolean CanUseClanCASE() { } public boolean IsUsingClanCASE() { - return UsingClanCASE; + return Case.IsClan(); } public void AddCase(boolean isClan) { - UsingClanCASE = isClan; Case.SetClan(isClan); - if (Owner.HasCase()) { return; } - Owner.SetCase(true); + + if (HasCase()) { return; } try { AddTo(Case, LocationIndex.CV_LOC_BODY); - UsingCASE = true; Owner.SetChanged( true ); } catch (Exception ex) { System.err.println(ex.getMessage()); @@ -955,17 +955,19 @@ public void AddCase(boolean isClan) { } public void RemoveCase() { - UsingCASE = false; - UsingClanCASE = false; - Owner.SetCase(false); + Case.SetClan(false); Remove(Case); Owner.SetChanged( true ); } + public boolean HasCase() { - return Owner.HasCase(); + return IsAllocated(Case); + } + + public void SetCase( CASE c ) { + Case = c; } public void SetClanCASE(boolean b) { - UsingClanCASE = b; Case.SetClan(b); Owner.SetChanged( true ); } @@ -1110,11 +1112,7 @@ public void SetSupercharger(Supercharger s) { } public boolean HasSupercharger() { - if( IsAllocated( SCharger ) ) { - return true; - } else { - return false; - } + return IsAllocated( SCharger ); } public Supercharger GetSupercharger() { @@ -1122,7 +1120,6 @@ public Supercharger GetSupercharger() { } public void SetVTOLBooster(boolean b) throws Exception { - UsingVTOLBooster = b; if (!b) { Remove(VBooster); RemoveMechMod(VBooster.GetMechModifier()); @@ -1142,12 +1139,12 @@ public void SetVTOLBooster(VTOLBooster s) { // this sets the loadout's booster to a different one. // Used for cloning purposes only! VBooster = s; - UsingVTOLBooster = true; AddMechModifier(VBooster.GetMechModifier()); Owner.SetChanged( true ); } - public boolean HasVTOLBooster() { return UsingVTOLBooster; } + public boolean HasVTOLBooster() { return IsAllocated(VBooster); } + public VTOLBooster GetVTOLBooster() { return VBooster; } diff --git a/sswlib/src/main/java/components/ifCVLoadout.java b/sswlib/src/main/java/components/ifCVLoadout.java index 39928a3c..fc592e74 100644 --- a/sswlib/src/main/java/components/ifCVLoadout.java +++ b/sswlib/src/main/java/components/ifCVLoadout.java @@ -133,6 +133,7 @@ public interface ifCVLoadout { public void AddCase(boolean isClan); public void RemoveCase(); public boolean HasCase(); + public void SetCase( CASE c ); public CASE GetCase(); public void SetClanCASE(boolean b); public void SetFCSArtemisIV( boolean b ) throws Exception; From 055eb3fbd2d7e76d86bf5567b88a47a7e5224eee Mon Sep 17 00:00:00 2001 From: George Blouin Date: Thu, 9 Feb 2023 17:02:18 -0700 Subject: [PATCH 075/199] Only disable if Base has it --- saw/src/main/java/saw/gui/frmVee.java | 2 +- saw/src/main/java/saw/gui/frmVeeWide.java | 2 +- sswlib/src/main/java/components/CVLoadout.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 6aa27923..f38562eb 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -7100,7 +7100,7 @@ private void RefreshEquipment() { chkSupercharger.setEnabled( false ); chkSupercharger.setSelected( true ); } - if( CurVee.GetLoadout().HasCase() ) { + if( CurVee.GetBaseLoadout().HasCase() ) { chkCASE.setEnabled( false ); chkCASE.setSelected( true ); } diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index aa3cf657..d6c9ca6b 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -6391,7 +6391,7 @@ private void RefreshEquipment() { chkSupercharger.setEnabled( false ); chkSupercharger.setSelected( true ); } - if( CurVee.GetLoadout().HasCase() ) { + if( CurVee.GetBaseLoadout().HasCase() ) { chkCASE.setEnabled( false ); chkCASE.setSelected( true ); } diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index ce435a29..ae46d75e 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -1144,7 +1144,7 @@ public void SetVTOLBooster(VTOLBooster s) { } public boolean HasVTOLBooster() { return IsAllocated(VBooster); } - + public VTOLBooster GetVTOLBooster() { return VBooster; } From e8dd5de1f984995c5703d5ff4c3c7c6be1c6dd46 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Fri, 10 Feb 2023 15:46:17 -0700 Subject: [PATCH 076/199] Normal UI Cleanup --- saw/src/main/java/saw/Main.java | 12 +- saw/src/main/java/saw/gui/frmVee.java | 194 ++++++++++++-------------- 2 files changed, 98 insertions(+), 108 deletions(-) diff --git a/saw/src/main/java/saw/Main.java b/saw/src/main/java/saw/Main.java index bc02746d..46306a88 100644 --- a/saw/src/main/java/saw/Main.java +++ b/saw/src/main/java/saw/Main.java @@ -43,10 +43,6 @@ public class Main { - /** - * @param args the command line arguments - */ - public static void main(String[] args) { Preferences prefs = Preferences.userRoot().node( common.Constants.SAWPrefs ); prefs.remove("FileToOpen"); @@ -121,14 +117,18 @@ public void run() { MainFrame = new frmVeeWide(); MainFrame.setSize( 1280, 600 ); break; + case Constants.SCREEN_SIZE_WIDE_1600: + MainFrame = new frmVeeWide(); + MainFrame.setSize( 1600, 900 ); + break; default: MainFrame = new frmVee(); - //MainFrame.setSize( 800, 600 ); + MainFrame.setSize( 825, 625 ); break; } try { - icon = new ImageIcon(MainFrame.getClass().getResource("/saw/Images/appicon.png")); + icon = new ImageIcon(MainFrame.getClass().getResource("/Images/SSW_Logo.png")); MainFrame.setIconImage(icon.getImage()); } catch (Exception e) { System.out.println("Error loading Icon image...\n" + e.getMessage()); diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index a8fbddcd..365df808 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -1080,7 +1080,7 @@ private void initComponents() { cmbOmniVariant = new javax.swing.JComboBox(); tbpMainTabPane = new javax.swing.JTabbedPane(); pnlBasicSetup = new javax.swing.JPanel(); - jPanel5 = new javax.swing.JPanel(); + pnlBasicInfo = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); txtVehicleName = new javax.swing.JTextField(); jLabel4 = new javax.swing.JLabel(); @@ -1233,7 +1233,7 @@ private void initComponents() { jLabel92 = new javax.swing.JLabel(); jLabel93 = new javax.swing.JLabel(); spnRotorArmor = new javax.swing.JSpinner(); - jPanel7 = new javax.swing.JPanel(); + pnlArmorType = new javax.swing.JPanel(); jLabel52 = new javax.swing.JLabel(); cmbArmorType = new javax.swing.JComboBox(); chkBalanceLRArmor = new javax.swing.JCheckBox(); @@ -1680,7 +1680,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); tlbIconBar.add(cmbOmniVariant); - jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Basic Information")); + pnlBasicInfo.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Basic Information")); jLabel1.setText("Vehicle Name:"); @@ -1760,8 +1760,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); - javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5); - jPanel5.setLayout(jPanel5Layout); + javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(pnlBasicInfo); + pnlBasicInfo.setLayout(jPanel5Layout); jPanel5Layout.setHorizontalGroup( jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup() @@ -2732,10 +2732,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { javax.swing.GroupLayout pnlInformationLayout = new javax.swing.GroupLayout(pnlInformation); pnlInformation.setLayout(pnlInformationLayout); pnlInformationLayout.setHorizontalGroup( - pnlInformationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + pnlInformationLayout.createParallelGroup(GroupLayout.Alignment.LEADING, true) .addGroup(pnlInformationLayout.createSequentialGroup() .addContainerGap() - .addGroup(pnlInformationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlInformationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, true) .addGroup(pnlInformationLayout.createSequentialGroup() .addGap(95, 95, 95) .addComponent(jLabel30) @@ -2864,35 +2864,35 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { javax.swing.GroupLayout pnlBasicSetupLayout = new javax.swing.GroupLayout(pnlBasicSetup); pnlBasicSetup.setLayout(pnlBasicSetupLayout); pnlBasicSetupLayout.setHorizontalGroup( - pnlBasicSetupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + pnlBasicSetupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, true) .addGroup(pnlBasicSetupLayout.createSequentialGroup() - .addGroup(pnlBasicSetupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(pnlChassisMods, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(pnlBasicSetupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, true) + .addComponent(pnlChassisMods, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(pnlMovement, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(pnlBasicInfo, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(pnlBasicSetupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(pnlBasicSetupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, true) .addComponent(pnlExperimental, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel11, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(pnlChassis, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(pnlBasicSetupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(pnlBasicSetupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, true) .addComponent(pnlSummary, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(pnlOmniInfo, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(pnlInformation, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(pnlInformation, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE)) .addGap(0, 0, 0)) ); pnlBasicSetupLayout.setVerticalGroup( - pnlBasicSetupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + pnlBasicSetupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, true) .addGroup(pnlBasicSetupLayout.createSequentialGroup() - .addGroup(pnlBasicSetupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicSetupLayout.createParallelGroup(GroupLayout.Alignment.LEADING, true) .addGroup(pnlBasicSetupLayout.createSequentialGroup() .addComponent(pnlChassis, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlExperimental, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(pnlBasicSetupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) + .addGroup(pnlBasicSetupLayout.createParallelGroup(GroupLayout.Alignment.LEADING, true) .addGroup(pnlBasicSetupLayout.createSequentialGroup() .addComponent(pnlOmniInfo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) @@ -2900,10 +2900,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlInformation, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, pnlBasicSetupLayout.createSequentialGroup() - .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, 221, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(pnlBasicInfo, javax.swing.GroupLayout.PREFERRED_SIZE, 221, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlMovement, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(2, 2, 2) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlChassisMods, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addContainerGap()) ); @@ -3203,7 +3203,7 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { .addContainerGap()) ); - jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Armor Type")); + pnlArmorType.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Armor Type")); jLabel52.setText("Armor Type:"); @@ -3242,8 +3242,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); - javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7); - jPanel7.setLayout(jPanel7Layout); + javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(pnlArmorType); + pnlArmorType.setLayout(jPanel7Layout); jPanel7Layout.setHorizontalGroup( jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel7Layout.createSequentialGroup() @@ -3359,7 +3359,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jPanel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(pnlArmorType, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap(214, Short.MAX_VALUE)) ); jPanel2Layout.setVerticalGroup( @@ -3371,7 +3371,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addContainerGap()) .addGroup(jPanel2Layout.createSequentialGroup() - .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(pnlArmorType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(199, 199, 199)))) @@ -3389,9 +3389,9 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jScrollPane8.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); jScrollPane8.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane8.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane8.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane8.setPreferredSize(new java.awt.Dimension(200, 260)); + jScrollPane8.setMaximumSize(new java.awt.Dimension(300, 300)); + jScrollPane8.setMinimumSize(new java.awt.Dimension(300, 300)); + jScrollPane8.setPreferredSize(new java.awt.Dimension(300, 300)); lstChooseBallistic.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; @@ -3399,9 +3399,9 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseBallistic.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseBallistic.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseBallistic.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseBallistic.setPreferredSize(null); + lstChooseBallistic.setMaximumSize(new java.awt.Dimension(300, 300)); + lstChooseBallistic.setMinimumSize(new java.awt.Dimension(300, 300)); + lstChooseBallistic.setPreferredSize(new java.awt.Dimension(300, 300)); lstChooseBallistic.setVisibleRowCount(16); lstChooseBallistic.addListSelectionListener(new javax.swing.event.ListSelectionListener() { public void valueChanged(javax.swing.event.ListSelectionEvent evt) { @@ -3428,25 +3428,16 @@ public void mouseClicked( MouseEvent e ) { pnlBallisticLayout.setHorizontalGroup( pnlBallisticLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlBallisticLayout.createSequentialGroup() - .addGap(106, 106, 106) - .addComponent(jSeparator5, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(pnlBallisticLayout.createSequentialGroup() - .addGap(6, 6, 6) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGap(6, 6, 6)) - .addGroup(pnlBallisticLayout.createSequentialGroup() - .addGap(106, 106, 106) - .addComponent(jSeparator6, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)) ); pnlBallisticLayout.setVerticalGroup( pnlBallisticLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlBallisticLayout.createSequentialGroup() - .addComponent(jSeparator5, javax.swing.GroupLayout.PREFERRED_SIZE, 9, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(0, 0, 0) - .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, 291, Short.MAX_VALUE) - .addGap(0, 0, 0) - .addComponent(jSeparator6, javax.swing.GroupLayout.PREFERRED_SIZE, 9, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(1, 1, 1)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)) ); tbpWeaponChooser.addTab("Ballistic", pnlBallistic); @@ -3460,9 +3451,9 @@ public void mouseClicked( MouseEvent e ) { jScrollPane9.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); jScrollPane9.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane9.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane9.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane9.setPreferredSize(new java.awt.Dimension(200, 260)); + jScrollPane9.setMaximumSize(new java.awt.Dimension(300, 300)); + jScrollPane9.setMinimumSize(new java.awt.Dimension(300, 300)); + jScrollPane9.setPreferredSize(new java.awt.Dimension(300, 300)); lstChooseEnergy.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; @@ -3470,9 +3461,9 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseEnergy.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseEnergy.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseEnergy.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseEnergy.setPreferredSize(null); + lstChooseEnergy.setMaximumSize(new java.awt.Dimension(300, 300)); + lstChooseEnergy.setMinimumSize(new java.awt.Dimension(300, 300)); + lstChooseEnergy.setPreferredSize(new java.awt.Dimension(300, 300)); lstChooseEnergy.setVisibleRowCount(16); lstChooseEnergy.addListSelectionListener(new javax.swing.event.ListSelectionListener() { public void valueChanged(javax.swing.event.ListSelectionEvent evt) { @@ -3508,9 +3499,9 @@ public void mouseClicked( MouseEvent e ) { jScrollPane19.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); jScrollPane19.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane19.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane19.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane19.setPreferredSize(new java.awt.Dimension(200, 260)); + jScrollPane19.setMaximumSize(new java.awt.Dimension(300, 300)); + jScrollPane19.setMinimumSize(new java.awt.Dimension(300, 300)); + jScrollPane19.setPreferredSize(new java.awt.Dimension(300, 300)); lstChooseMissile.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; @@ -3518,9 +3509,9 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseMissile.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseMissile.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseMissile.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseMissile.setPreferredSize(null); + lstChooseMissile.setMaximumSize(new java.awt.Dimension(300, 300)); + lstChooseMissile.setMinimumSize(new java.awt.Dimension(300, 300)); + lstChooseMissile.setPreferredSize(new java.awt.Dimension(300, 300)); lstChooseMissile.setVisibleRowCount(16); lstChooseMissile.addListSelectionListener(new javax.swing.event.ListSelectionListener() { public void valueChanged(javax.swing.event.ListSelectionEvent evt) { @@ -3556,9 +3547,9 @@ public void mouseClicked( MouseEvent e ) { jScrollPane20.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); jScrollPane20.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane20.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane20.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane20.setPreferredSize(new java.awt.Dimension(200, 260)); + jScrollPane20.setMaximumSize(new java.awt.Dimension(300, 300)); + jScrollPane20.setMinimumSize(new java.awt.Dimension(300, 300)); + jScrollPane20.setPreferredSize(new java.awt.Dimension(300, 300)); lstChoosePhysical.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; @@ -3566,9 +3557,9 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChoosePhysical.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChoosePhysical.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChoosePhysical.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChoosePhysical.setPreferredSize(null); + lstChoosePhysical.setMaximumSize(new java.awt.Dimension(300, 300)); + lstChoosePhysical.setMinimumSize(new java.awt.Dimension(300, 300)); + lstChoosePhysical.setPreferredSize(new java.awt.Dimension(300, 300)); lstChoosePhysical.setVisibleRowCount(16); lstChoosePhysical.addListSelectionListener(new javax.swing.event.ListSelectionListener() { public void valueChanged(javax.swing.event.ListSelectionEvent evt) { @@ -3604,9 +3595,9 @@ public void mouseClicked( MouseEvent e ) { jScrollPane21.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); jScrollPane21.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane21.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane21.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane21.setPreferredSize(new java.awt.Dimension(200, 260)); + jScrollPane21.setMaximumSize(new java.awt.Dimension(300, 300)); + jScrollPane21.setMinimumSize(new java.awt.Dimension(300, 300)); + jScrollPane21.setPreferredSize(new java.awt.Dimension(300, 300)); lstChooseEquipment.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; @@ -3614,9 +3605,9 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseEquipment.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseEquipment.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseEquipment.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseEquipment.setPreferredSize(null); + lstChooseEquipment.setMaximumSize(new java.awt.Dimension(300, 300)); + lstChooseEquipment.setMinimumSize(new java.awt.Dimension(300, 300)); + lstChooseEquipment.setPreferredSize(new java.awt.Dimension(300, 300)); lstChooseEquipment.setVisibleRowCount(16); lstChooseEquipment.addListSelectionListener(new javax.swing.event.ListSelectionListener() { public void valueChanged(javax.swing.event.ListSelectionEvent evt) { @@ -3652,9 +3643,9 @@ public void mouseClicked( MouseEvent e ) { jScrollPane24.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); jScrollPane24.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane24.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane24.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane24.setPreferredSize(new java.awt.Dimension(200, 260)); + jScrollPane24.setMaximumSize(new java.awt.Dimension(300, 300)); + jScrollPane24.setMinimumSize(new java.awt.Dimension(300, 300)); + jScrollPane24.setPreferredSize(new java.awt.Dimension(300, 300)); lstChooseArtillery.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; @@ -3662,9 +3653,9 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseArtillery.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseArtillery.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseArtillery.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseArtillery.setPreferredSize(null); + lstChooseArtillery.setMaximumSize(new java.awt.Dimension(300, 300)); + lstChooseArtillery.setMinimumSize(new java.awt.Dimension(300, 300)); + lstChooseArtillery.setPreferredSize(new java.awt.Dimension(300, 300)); lstChooseArtillery.setVisibleRowCount(16); lstChooseArtillery.addListSelectionListener(new javax.swing.event.ListSelectionListener() { public void valueChanged(javax.swing.event.ListSelectionEvent evt) { @@ -3700,9 +3691,9 @@ public void mouseClicked( MouseEvent e ) { jScrollPane22.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); jScrollPane22.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane22.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane22.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane22.setPreferredSize(new java.awt.Dimension(200, 260)); + jScrollPane22.setMaximumSize(new java.awt.Dimension(300, 300)); + jScrollPane22.setMinimumSize(new java.awt.Dimension(300, 300)); + jScrollPane22.setPreferredSize(new java.awt.Dimension(300, 300)); lstChooseAmmunition.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; @@ -3710,9 +3701,9 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseAmmunition.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseAmmunition.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseAmmunition.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseAmmunition.setPreferredSize(null); + lstChooseAmmunition.setMaximumSize(new java.awt.Dimension(300, 300)); + lstChooseAmmunition.setMinimumSize(new java.awt.Dimension(300, 300)); + lstChooseAmmunition.setPreferredSize(new java.awt.Dimension(300, 300)); lstChooseAmmunition.setVisibleRowCount(16); lstChooseAmmunition.addListSelectionListener(new javax.swing.event.ListSelectionListener() { public void valueChanged(javax.swing.event.ListSelectionEvent evt) { @@ -4233,7 +4224,7 @@ public void mouseClicked(java.awt.event.MouseEvent evt) { .addComponent(pnlSpecials, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlSelected, javax.swing.GroupLayout.PREFERRED_SIZE, 264, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addComponent(pnlEquipInfo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(pnlEquipInfo, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap()) ); jPanel3Layout.setVerticalGroup( @@ -4248,8 +4239,7 @@ public void mouseClicked(java.awt.event.MouseEvent evt) { .addComponent(pnlSelected, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(tbpWeaponChooser, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(pnlEquipInfo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(844, 844, 844)) + .addComponent(pnlEquipInfo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) ); tbpMainTabPane.addTab("Equipment", jPanel3); @@ -4261,9 +4251,9 @@ public void mouseClicked(java.awt.event.MouseEvent evt) { lblFluffImage.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); lblFluffImage.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblFluffImage.setMaximumSize(new java.awt.Dimension(290, 350)); - lblFluffImage.setMinimumSize(new java.awt.Dimension(290, 350)); - lblFluffImage.setPreferredSize(new java.awt.Dimension(290, 350)); + lblFluffImage.setMaximumSize(new java.awt.Dimension(325, 350)); + lblFluffImage.setMinimumSize(new java.awt.Dimension(325, 350)); + lblFluffImage.setPreferredSize(new java.awt.Dimension(325, 350)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; @@ -4894,31 +4884,31 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jPanel10.setBorder(javax.swing.BorderFactory.createTitledBorder("Conversion Steps")); jPanel10.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); - jTextAreaBFConversion.setColumns(20); + jTextAreaBFConversion.setColumns(60); jTextAreaBFConversion.setEditable(false); jTextAreaBFConversion.setRows(5); jScrollPane14.setViewportView(jTextAreaBFConversion); - jPanel10.add(jScrollPane14, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 20, 660, 190)); + jPanel10.add(jScrollPane14, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 20, 740, 190)); javax.swing.GroupLayout jPanel9Layout = new javax.swing.GroupLayout(jPanel9); jPanel9.setLayout(jPanel9Layout); jPanel9Layout.setHorizontalGroup( - jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, true) .addGroup(jPanel9Layout.createSequentialGroup() .addContainerGap() - .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(pnlBFStats, javax.swing.GroupLayout.PREFERRED_SIZE, 690, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jPanel10, javax.swing.GroupLayout.PREFERRED_SIZE, 690, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(75, Short.MAX_VALUE)) + .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, true) + .addComponent(pnlBFStats, javax.swing.GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE) + .addComponent(jPanel10, javax.swing.GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE)) + .addContainerGap()) ); jPanel9Layout.setVerticalGroup( - jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, true) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel9Layout.createSequentialGroup() - .addContainerGap(30, Short.MAX_VALUE) - .addComponent(pnlBFStats, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(10, 10, 10) - .addComponent(jPanel10, javax.swing.GroupLayout.PREFERRED_SIZE, 230, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap() + .addComponent(pnlBFStats, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE) + .addContainerGap() + .addComponent(jPanel10, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE)) ); tbpMainTabPane.addTab("BattleForce", jPanel9); @@ -5182,7 +5172,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, true) .addComponent(tlbIconBar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(pnlInfoPane, javax.swing.GroupLayout.DEFAULT_SIZE, 800, Short.MAX_VALUE) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() @@ -5191,7 +5181,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addContainerGap()) ); layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, true) .addGroup(layout.createSequentialGroup() .addComponent(tlbIconBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) @@ -9975,9 +9965,9 @@ private void FixJJSpinnerModel() { private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; - private javax.swing.JPanel jPanel5; + private javax.swing.JPanel pnlBasicInfo; private javax.swing.JPanel jPanel6; - private javax.swing.JPanel jPanel7; + private javax.swing.JPanel pnlArmorType; private javax.swing.JPanel jPanel8; private javax.swing.JPanel jPanel9; private javax.swing.JScrollPane jScrollPane1; From a60599e251c4566c3b4899447cda31b42190deb2 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 11 Feb 2023 11:29:41 -0700 Subject: [PATCH 077/199] Wide Cleanup Added a bit more room for the layout in the main form size, cleaned up variables, simplified code, and made the Equipment selection have more room and be cleaner. --- saw/src/main/java/saw/Main.java | 2 +- saw/src/main/java/saw/gui/frmVeeWide.java | 1570 +++++++++------------ 2 files changed, 704 insertions(+), 868 deletions(-) diff --git a/saw/src/main/java/saw/Main.java b/saw/src/main/java/saw/Main.java index 46306a88..e850fd9f 100644 --- a/saw/src/main/java/saw/Main.java +++ b/saw/src/main/java/saw/Main.java @@ -115,7 +115,7 @@ public void run() { switch( screensize ) { case Constants.SCREEN_SIZE_WIDE_1280: MainFrame = new frmVeeWide(); - MainFrame.setSize( 1280, 600 ); + MainFrame.setSize( 1280, 625 ); break; case Constants.SCREEN_SIZE_WIDE_1600: MainFrame = new frmVeeWide(); diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 7f16b73d..8e93ca8a 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -726,9 +726,9 @@ private void setViewToolbar(boolean Visible) { Prefs.putBoolean("ViewToolbar", Visible); //mnuViewToolbar.setState(Visible); if (Visible) { - if (this.getHeight() != 600) { this.setSize(750, 600); } + if (this.getHeight() != 600) { this.setSize(1280, 600); } } else { - if (this.getHeight() != 575) { this.setSize(750, 575); } + if (this.getHeight() != 575) { this.setSize(1280, 575); } } } @@ -1031,7 +1031,7 @@ private void ResetAmmo() { */ @SuppressWarnings("unchecked") private void initComponents() { - java.awt.GridBagConstraints gridBagConstraints; + GridBagConstraints gridBagConstraints; pnlInfoPane = new javax.swing.JPanel(); txtInfoTonnage = new javax.swing.JTextField(); @@ -1162,17 +1162,17 @@ private void initComponents() { txtSumPATons = new javax.swing.JTextField(); txtSumPAAV = new javax.swing.JTextField(); pnlInformation = new javax.swing.JPanel(); - jLabel29 = new javax.swing.JLabel(); + titleSuspension = new javax.swing.JLabel(); lblSupensionFacter = new javax.swing.JLabel(); - jLabel31 = new javax.swing.JLabel(); + titleMinEngTon = new javax.swing.JLabel(); lblMinEngineTons = new javax.swing.JLabel(); - jLabel33 = new javax.swing.JLabel(); + titleBaseEngRate = new javax.swing.JLabel(); lblBaseEngineRating = new javax.swing.JLabel(); - jLabel35 = new javax.swing.JLabel(); + titleFinalEngRate = new javax.swing.JLabel(); lblFinalEngineRating = new javax.swing.JLabel(); - jLabel28 = new javax.swing.JLabel(); + titleFreeHeatSinks = new javax.swing.JLabel(); lblFreeHeatSinks = new javax.swing.JLabel(); - jLabel30 = new javax.swing.JLabel(); + titleCrew = new javax.swing.JLabel(); lblNumCrew = new javax.swing.JLabel(); pnlOmniInfo = new javax.swing.JPanel(); btnLockChassis = new javax.swing.JButton(); @@ -1234,20 +1234,20 @@ private void initComponents() { lblArmorLeftInLot = new javax.swing.JLabel(); pnlEquipment = new javax.swing.JPanel(); pnlEquipInfo = new javax.swing.JPanel(); - jLabel38 = new javax.swing.JLabel(); - jLabel39 = new javax.swing.JLabel(); - jLabel53 = new javax.swing.JLabel(); + lblAvailability = new javax.swing.JLabel(); + lblSW = new javax.swing.JLabel(); + lblCI = new javax.swing.JLabel(); lblInfoAVSL = new javax.swing.JLabel(); lblInfoAVSW = new javax.swing.JLabel(); lblInfoAVCI = new javax.swing.JLabel(); - jLabel54 = new javax.swing.JLabel(); - jLabel55 = new javax.swing.JLabel(); - jLabel56 = new javax.swing.JLabel(); + lblIntro = new javax.swing.JLabel(); + lblExtinct = new javax.swing.JLabel(); + lblReintro = new javax.swing.JLabel(); lblInfoIntro = new javax.swing.JLabel(); lblInfoExtinct = new javax.swing.JLabel(); lblInfoReintro = new javax.swing.JLabel(); - jLabel57 = new javax.swing.JLabel(); - jLabel58 = new javax.swing.JLabel(); + lblName = new javax.swing.JLabel(); + lblType = new javax.swing.JLabel(); jLabel59 = new javax.swing.JLabel(); jLabel60 = new javax.swing.JLabel(); jLabel61 = new javax.swing.JLabel(); @@ -1271,6 +1271,8 @@ private void initComponents() { jLabel67 = new javax.swing.JLabel(); lblInfoBV = new javax.swing.JLabel(); jLabel68 = new javax.swing.JLabel(); + lblMMName = new javax.swing.JLabel(); + lblMMNameInfo = new javax.swing.JLabel(); lblInfoMountRestrict = new javax.swing.JLabel(); jLabel69 = new javax.swing.JLabel(); lblInfoRulesLevel = new javax.swing.JLabel(); @@ -1288,47 +1290,35 @@ private void initComponents() { btnClearEquip = new javax.swing.JButton(); btnAddEquip = new javax.swing.JButton(); cmbNumEquips = new javax.swing.JComboBox(); - jScrollPane1 = new javax.swing.JScrollPane(); + scrLocations = new javax.swing.JScrollPane(); cmbLocation = new javax.swing.JList(); pnlSelected = new javax.swing.JPanel(); - jScrollPane23 = new javax.swing.JScrollPane(); + scrSelectedEquip = new javax.swing.JScrollPane(); lstSelectedEquipment = new javax.swing.JList(); tbpWeaponChooser = new javax.swing.JTabbedPane(); pnlBallistic = new javax.swing.JPanel(); - jSeparator5 = new javax.swing.JSeparator(); - jScrollPane8 = new javax.swing.JScrollPane(); + scrPhysical = new javax.swing.JScrollPane(); lstChooseBallistic = new javax.swing.JList(); - jSeparator6 = new javax.swing.JSeparator(); pnlEnergy = new javax.swing.JPanel(); jSeparator7 = new javax.swing.JSeparator(); - jScrollPane9 = new javax.swing.JScrollPane(); + scrMissile = new javax.swing.JScrollPane(); lstChooseEnergy = new javax.swing.JList(); jSeparator8 = new javax.swing.JSeparator(); pnlMissile = new javax.swing.JPanel(); - jSeparator9 = new javax.swing.JSeparator(); - jScrollPane19 = new javax.swing.JScrollPane(); + scrEquipment = new javax.swing.JScrollPane(); lstChooseMissile = new javax.swing.JList(); - jSeparator10 = new javax.swing.JSeparator(); pnlPhysical = new javax.swing.JPanel(); - jSeparator11 = new javax.swing.JSeparator(); - jScrollPane20 = new javax.swing.JScrollPane(); + scrEnergy = new javax.swing.JScrollPane(); lstChoosePhysical = new javax.swing.JList(); - jSeparator12 = new javax.swing.JSeparator(); pnlEquipmentChooser = new javax.swing.JPanel(); - jSeparator13 = new javax.swing.JSeparator(); - jScrollPane21 = new javax.swing.JScrollPane(); + scrBallistic = new javax.swing.JScrollPane(); lstChooseEquipment = new javax.swing.JList(); - jSeparator14 = new javax.swing.JSeparator(); pnlArtillery = new javax.swing.JPanel(); - jSeparator18 = new javax.swing.JSeparator(); - jScrollPane24 = new javax.swing.JScrollPane(); + scrArtillery = new javax.swing.JScrollPane(); lstChooseArtillery = new javax.swing.JList(); - jSeparator19 = new javax.swing.JSeparator(); pnlAmmunition = new javax.swing.JPanel(); - jSeparator15 = new javax.swing.JSeparator(); - jScrollPane22 = new javax.swing.JScrollPane(); + scrAmmo = new javax.swing.JScrollPane(); lstChooseAmmunition = new javax.swing.JList(); - jSeparator16 = new javax.swing.JSeparator(); pnlFluff = new javax.swing.JPanel(); pnlExport = new javax.swing.JPanel(); btnExportTXT = new javax.swing.JButton(); @@ -1441,9 +1431,9 @@ private void initComponents() { mnuAboutSSW = new javax.swing.JMenuItem(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); - setMaximumSize(new java.awt.Dimension(1280, 600)); - setMinimumSize(new java.awt.Dimension(1280, 600)); - setResizable(false); + setMaximumSize(new java.awt.Dimension(1600, 900)); + setMinimumSize(new java.awt.Dimension(1280, 650)); + setResizable(true); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosed(java.awt.event.WindowEvent evt) { formWindowClosed(evt); @@ -1741,107 +1731,107 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); - javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5); + GroupLayout jPanel5Layout = new GroupLayout(jPanel5); jPanel5.setLayout(jPanel5Layout); jPanel5Layout.setHorizontalGroup( - jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup() - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel5Layout.createSequentialGroup() + .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.TRAILING) + .addGroup(GroupLayout.Alignment.LEADING, jPanel5Layout.createSequentialGroup() .addGap(22, 22, 22) .addComponent(jLabel2) .addGap(2, 2, 2) - .addComponent(cmbRulesLevel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel5Layout.createSequentialGroup() + .addComponent(cmbRulesLevel, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addGroup(GroupLayout.Alignment.LEADING, jPanel5Layout.createSequentialGroup() .addGap(60, 60, 60) .addComponent(jLabel5) .addGap(2, 2, 2) - .addComponent(cmbEra, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel5Layout.createSequentialGroup() + .addComponent(cmbEra, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addGroup(GroupLayout.Alignment.LEADING, jPanel5Layout.createSequentialGroup() .addGap(27, 27, 27) .addComponent(jLabel3) .addGap(2, 2, 2) - .addComponent(cmbTechBase, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel5Layout.createSequentialGroup() + .addComponent(cmbTechBase, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addGroup(GroupLayout.Alignment.LEADING, jPanel5Layout.createSequentialGroup() .addGap(129, 129, 129) .addComponent(lblEraYears)) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel5Layout.createSequentialGroup() + .addGroup(GroupLayout.Alignment.LEADING, jPanel5Layout.createSequentialGroup() .addGap(5, 5, 5) - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel81, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jLabel4, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.TRAILING)) - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(jLabel81, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jLabel4, GroupLayout.Alignment.TRAILING) + .addComponent(jLabel1, GroupLayout.Alignment.TRAILING)) + .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(txtVehicleName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup() + .addComponent(txtVehicleName, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addGroup(GroupLayout.Alignment.TRAILING, jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup() .addGap(2, 2, 2) - .addComponent(txtSource, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(txtSource, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel5Layout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(txtModel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))))) + .addComponent(txtModel, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))))) .addContainerGap(24, Short.MAX_VALUE)) .addGroup(jPanel5Layout.createSequentialGroup() .addContainerGap() - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.TRAILING) .addGroup(jPanel5Layout.createSequentialGroup() .addComponent(lblProdYear) .addGap(2, 2, 2) - .addComponent(txtProdYear, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(txtProdYear, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addGap(0, 0, 0) - .addComponent(cmbProductionEra, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(cmbProductionEra, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addComponent(chkYearRestrict)) .addContainerGap(23, Short.MAX_VALUE)) ); jPanel5Layout.setVerticalGroup( - jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup() - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel1)) - .addComponent(txtVehicleName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(txtVehicleName, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel4)) - .addComponent(txtModel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(txtModel, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGap(0, 0, 0) - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(txtSource, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(txtSource, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addGroup(jPanel5Layout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel81))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel2)) - .addComponent(cmbRulesLevel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(cmbRulesLevel, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel5)) - .addComponent(cmbEra, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(cmbEra, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel3)) - .addComponent(cmbTechBase, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(cmbTechBase, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGap(2, 2, 2) .addComponent(lblEraYears) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(lblProdYear)) - .addComponent(txtProdYear, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(cmbProductionEra, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(txtProdYear, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(cmbProductionEra, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(chkYearRestrict) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); MouseListener mlProdYear = new MouseAdapter() { @@ -1967,15 +1957,15 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { } }); - javax.swing.GroupLayout pnlChassisLayout = new javax.swing.GroupLayout(pnlChassis); + GroupLayout pnlChassisLayout = new GroupLayout(pnlChassis); pnlChassis.setLayout(pnlChassisLayout); pnlChassisLayout.setHorizontalGroup( - pnlChassisLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(pnlChassisLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + pnlChassisLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(pnlChassisLayout.createParallelGroup(GroupLayout.Alignment.LEADING, false) .addGroup(pnlChassisLayout.createSequentialGroup() .addComponent(jLabel7) .addGap(2, 2, 2) - .addComponent(cmbMotiveType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(cmbMotiveType, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGroup(pnlChassisLayout.createSequentialGroup() .addGap(65, 65, 65) .addComponent(chkOmniVee)) @@ -1984,23 +1974,23 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { .addComponent(chkTrailer)) .addGroup(pnlChassisLayout.createSequentialGroup() .addGap(27, 27, 27) - .addGroup(pnlChassisLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(pnlChassisLayout.createParallelGroup(GroupLayout.Alignment.LEADING, false) .addGroup(pnlChassisLayout.createSequentialGroup() .addComponent(jLabel32) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(cmbTurret, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(cmbTurret, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(spnTurretTonnage)) .addGroup(pnlChassisLayout.createSequentialGroup() .addComponent(jLabel9) .addGap(2, 2, 2) - .addComponent(cmbEngineType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addComponent(cmbEngineType, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))) .addGroup(pnlChassisLayout.createSequentialGroup() .addGap(17, 17, 17) .addComponent(jLabel8) .addGap(2, 2, 2) - .addComponent(spnTonnage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(spnTonnage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(lblVeeClass) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(lblVeeLimits))) @@ -2008,47 +1998,47 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { .addContainerGap() .addComponent(jLabel91) .addGap(2, 2, 2) - .addComponent(spnHeatSinks, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(spnHeatSinks, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) ); pnlChassisLayout.setVerticalGroup( - pnlChassisLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + pnlChassisLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlChassisLayout.createSequentialGroup() - .addGroup(pnlChassisLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlChassisLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlChassisLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel7)) - .addComponent(cmbMotiveType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(cmbMotiveType, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGap(2, 2, 2) - .addGroup(pnlChassisLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(spnTonnage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(pnlChassisLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(spnTonnage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addGroup(pnlChassisLayout.createSequentialGroup() .addGap(3, 3, 3) - .addGroup(pnlChassisLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlChassisLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(jLabel8) - .addGroup(pnlChassisLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addGroup(pnlChassisLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(lblVeeClass) .addComponent(lblVeeLimits))))) .addComponent(chkOmniVee) .addGap(0, 0, 0) .addComponent(chkTrailer) .addGap(2, 2, 2) - .addGroup(pnlChassisLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlChassisLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlChassisLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel9)) - .addComponent(cmbEngineType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(cmbEngineType, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(pnlChassisLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addGroup(pnlChassisLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(jLabel32) - .addComponent(cmbTurret, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(spnTurretTonnage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(cmbTurret, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(spnTurretTonnage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(pnlChassisLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlChassisLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlChassisLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel91)) - .addComponent(spnHeatSinks, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(spnHeatSinks, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); pnlMovement.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Movement")); @@ -2083,20 +2073,20 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { spnJumpMP.setNextFocusableComponent(chkFlotationHull); spnJumpMP.setPreferredSize(new java.awt.Dimension(45, 20)); - javax.swing.GroupLayout pnlMovementLayout = new javax.swing.GroupLayout(pnlMovement); + GroupLayout pnlMovementLayout = new GroupLayout(pnlMovement); pnlMovement.setLayout(pnlMovementLayout); pnlMovementLayout.setHorizontalGroup( - pnlMovementLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + pnlMovementLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlMovementLayout.createSequentialGroup() .addGap(29, 29, 29) - .addGroup(pnlMovementLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlMovementLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlMovementLayout.createSequentialGroup() .addComponent(jLabel10) .addGap(2, 2, 2) - .addComponent(spnCruiseMP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(spnCruiseMP, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGroup(pnlMovementLayout.createSequentialGroup() .addGap(5, 5, 5) - .addGroup(pnlMovementLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlMovementLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlMovementLayout.createSequentialGroup() .addComponent(jLabel11) .addGap(18, 18, 18) @@ -2104,28 +2094,28 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addGroup(pnlMovementLayout.createSequentialGroup() .addComponent(jLabel13) .addGap(2, 2, 2) - .addComponent(spnJumpMP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))) + .addComponent(spnJumpMP, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))))) .addContainerGap(129, Short.MAX_VALUE)) ); pnlMovementLayout.setVerticalGroup( - pnlMovementLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + pnlMovementLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlMovementLayout.createSequentialGroup() - .addGroup(pnlMovementLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlMovementLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlMovementLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel10)) - .addComponent(spnCruiseMP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(spnCruiseMP, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGap(2, 2, 2) - .addGroup(pnlMovementLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addGroup(pnlMovementLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(jLabel11) .addComponent(lblFlankMP)) .addGap(2, 2, 2) - .addGroup(pnlMovementLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlMovementLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlMovementLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel13)) - .addComponent(spnJumpMP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(spnJumpMP, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); pnlChassisMods.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Chassis Modifications")); @@ -2138,10 +2128,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkFlotationHullActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlChassisMods.add(chkFlotationHull, gridBagConstraints); chkLimitedAmph.setText("Limited Amphibious"); @@ -2151,10 +2141,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkLimitedAmphActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlChassisMods.add(chkLimitedAmph, gridBagConstraints); chkFullAmph.setText("Fully Amphibious"); @@ -2164,10 +2154,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkFullAmphActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlChassisMods.add(chkFullAmph, gridBagConstraints); chkDuneBuggy.setText("Dune Buggy"); @@ -2177,10 +2167,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkDuneBuggyActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlChassisMods.add(chkDuneBuggy, gridBagConstraints); chkEnviroSealing.setText("Enviro (Vacuum) Sealing"); @@ -2191,10 +2181,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkEnviroSealingActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlChassisMods.add(chkEnviroSealing, gridBagConstraints); pnlExperimental.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Experimental Equipment")); @@ -2237,12 +2227,12 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); - javax.swing.GroupLayout pnlExperimentalLayout = new javax.swing.GroupLayout(pnlExperimental); + GroupLayout pnlExperimentalLayout = new GroupLayout(pnlExperimental); pnlExperimental.setLayout(pnlExperimentalLayout); pnlExperimentalLayout.setHorizontalGroup( - pnlExperimentalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + pnlExperimentalLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlExperimentalLayout.createSequentialGroup() - .addGroup(pnlExperimentalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlExperimentalLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(chkArmoredMotive) .addComponent(chkSupercharger) .addComponent(chkJetBooster) @@ -2250,10 +2240,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addComponent(chkCommandConsole) .addComponent(chkEscapePod) .addComponent(chkSponsonTurret)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); pnlExperimentalLayout.setVerticalGroup( - pnlExperimentalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + pnlExperimentalLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlExperimentalLayout.createSequentialGroup() .addComponent(chkArmoredMotive) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) @@ -2282,36 +2272,36 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkFractionalActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; jPanel11.add(chkFractional, gridBagConstraints); pnlSummary.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Summary")); pnlSummary.setLayout(new java.awt.GridBagLayout()); jLabel12.setText("Item"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel12, gridBagConstraints); jLabel14.setText("Tonnage"); - pnlSummary.add(jLabel14, new java.awt.GridBagConstraints()); + pnlSummary.add(jLabel14, new GridBagConstraints()); jLabel15.setText("Space"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2); pnlSummary.add(jLabel15, gridBagConstraints); jLabel16.setText("Availability"); - pnlSummary.add(jLabel16, new java.awt.GridBagConstraints()); + pnlSummary.add(jLabel16, new GridBagConstraints()); jLabel17.setText("Internal Structure:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel17, gridBagConstraints); @@ -2320,10 +2310,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumIntTons.setText("000.00"); txtSumIntTons.setMinimumSize(new java.awt.Dimension(50, 20)); txtSumIntTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumIntTons, gridBagConstraints); txtSumIntAV.setEditable(false); @@ -2331,17 +2321,17 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumIntAV.setText("X/X-X-X"); txtSumIntAV.setMinimumSize(new java.awt.Dimension(65, 20)); txtSumIntAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumIntAV, gridBagConstraints); jLabel18.setText("Engine:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel18, gridBagConstraints); @@ -2350,10 +2340,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumEngTons.setText("000.00"); txtSumEngTons.setMinimumSize(new java.awt.Dimension(50, 20)); txtSumEngTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumEngTons, gridBagConstraints); txtSumEngAV.setEditable(false); @@ -2361,17 +2351,17 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumEngAV.setText("X/X-X-X"); txtSumEngAV.setMinimumSize(new java.awt.Dimension(65, 20)); txtSumEngAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumEngAV, gridBagConstraints); jLabel19.setText("Lift/Dive/Rotor:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel19, gridBagConstraints); @@ -2380,10 +2370,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumLifTons.setText("000.00"); txtSumLifTons.setMinimumSize(new java.awt.Dimension(50, 20)); txtSumLifTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 3; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumLifTons, gridBagConstraints); txtSumLifAV.setEditable(false); @@ -2391,10 +2381,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumLifAV.setText("X/X-X-X"); txtSumLifAV.setMinimumSize(new java.awt.Dimension(65, 20)); txtSumLifAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 3; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumLifAV, gridBagConstraints); txtSumEngSpace.setEditable(false); @@ -2402,17 +2392,17 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumEngSpace.setText("00"); txtSumEngSpace.setMinimumSize(new java.awt.Dimension(40, 20)); txtSumEngSpace.setPreferredSize(new java.awt.Dimension(40, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 2; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2); pnlSummary.add(txtSumEngSpace, gridBagConstraints); jLabel20.setText("Controls:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel20, gridBagConstraints); @@ -2421,10 +2411,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumConTons.setText("000.00"); txtSumConTons.setMinimumSize(new java.awt.Dimension(50, 20)); txtSumConTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 4; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumConTons, gridBagConstraints); txtSumConAV.setEditable(false); @@ -2432,17 +2422,17 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumConAV.setText("X/X-X-X"); txtSumConAV.setMinimumSize(new java.awt.Dimension(65, 20)); txtSumConAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 4; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumConAV, gridBagConstraints); jLabel21.setText("Jump Jets:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 5; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel21, gridBagConstraints); @@ -2451,10 +2441,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumJJTons.setText("000.00"); txtSumJJTons.setMinimumSize(new java.awt.Dimension(50, 20)); txtSumJJTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 5; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumJJTons, gridBagConstraints); txtSumJJSpace.setEditable(false); @@ -2462,7 +2452,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumJJSpace.setText("00"); txtSumJJSpace.setMinimumSize(new java.awt.Dimension(40, 20)); txtSumJJSpace.setPreferredSize(new java.awt.Dimension(40, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 5; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2); @@ -2473,17 +2463,17 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumJJAV.setText("X/X-X-X"); txtSumJJAV.setMinimumSize(new java.awt.Dimension(65, 20)); txtSumJJAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 5; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumJJAV, gridBagConstraints); jLabel22.setText("Heat Sinks:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 6; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel22, gridBagConstraints); @@ -2492,10 +2482,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumHSTons.setText("000.00"); txtSumHSTons.setMinimumSize(new java.awt.Dimension(50, 20)); txtSumHSTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 6; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumHSTons, gridBagConstraints); txtSumHSAV.setEditable(false); @@ -2503,17 +2493,17 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumHSAV.setText("X/X-X-X"); txtSumHSAV.setMinimumSize(new java.awt.Dimension(65, 20)); txtSumHSAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 6; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumHSAV, gridBagConstraints); jLabel23.setText("Armor:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 7; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel23, gridBagConstraints); @@ -2522,10 +2512,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumArmTons.setText("000.00"); txtSumArmTons.setMinimumSize(new java.awt.Dimension(50, 20)); txtSumArmTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 7; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumArmTons, gridBagConstraints); txtSumArmSpace.setEditable(false); @@ -2533,7 +2523,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumArmSpace.setText("00"); txtSumArmSpace.setMinimumSize(new java.awt.Dimension(40, 20)); txtSumArmSpace.setPreferredSize(new java.awt.Dimension(40, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 7; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2); @@ -2544,17 +2534,17 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumArmAV.setText("X/X-X-X"); txtSumArmAV.setMinimumSize(new java.awt.Dimension(65, 20)); txtSumArmAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 7; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumArmAV, gridBagConstraints); jLabel24.setText("Turret:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 8; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel24, gridBagConstraints); @@ -2563,10 +2553,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumTurTons.setText("000.00"); txtSumTurTons.setMinimumSize(new java.awt.Dimension(50, 20)); txtSumTurTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 8; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumTurTons, gridBagConstraints); txtSumTurAV.setEditable(false); @@ -2574,17 +2564,17 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumTurAV.setText("X/X-X-X"); txtSumTurAV.setMinimumSize(new java.awt.Dimension(65, 20)); txtSumTurAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 8; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumTurAV, gridBagConstraints); jLabel25.setText("Rear Turret:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 9; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel25, gridBagConstraints); @@ -2593,10 +2583,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumRTuTons.setText("000.00"); txtSumRTuTons.setMinimumSize(new java.awt.Dimension(50, 20)); txtSumRTuTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 9; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumRTuTons, gridBagConstraints); txtSumRTuAV.setEditable(false); @@ -2604,17 +2594,17 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumRTuAV.setText("X/X-X-X"); txtSumRTuAV.setMinimumSize(new java.awt.Dimension(65, 20)); txtSumRTuAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 9; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumRTuAV, gridBagConstraints); jLabel26.setText("Sponsons:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 10; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel26, gridBagConstraints); @@ -2623,10 +2613,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumSpnTons.setText("000.00"); txtSumSpnTons.setMinimumSize(new java.awt.Dimension(50, 20)); txtSumSpnTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 10; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumSpnTons, gridBagConstraints); txtSumSpnAV.setEditable(false); @@ -2634,17 +2624,17 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumSpnAV.setText("X/X-X-X"); txtSumSpnAV.setMinimumSize(new java.awt.Dimension(65, 20)); txtSumSpnAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 10; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumSpnAV, gridBagConstraints); jLabel27.setText("Power Amplifiers:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 11; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel27, gridBagConstraints); @@ -2653,10 +2643,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumPATons.setText("000.00"); txtSumPATons.setMinimumSize(new java.awt.Dimension(50, 20)); txtSumPATons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 11; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumPATons, gridBagConstraints); txtSumPAAV.setEditable(false); @@ -2664,101 +2654,101 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumPAAV.setText("X/X-X-X"); txtSumPAAV.setMinimumSize(new java.awt.Dimension(65, 20)); txtSumPAAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 11; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumPAAV, gridBagConstraints); pnlInformation.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Information")); - jLabel29.setText("Suspension Factor:"); + titleSuspension.setText("Suspension Factor:"); lblSupensionFacter.setText("000"); - jLabel31.setText("Minimum Engine Tonnage:"); + titleMinEngTon.setText("Minimum Engine Tonnage:"); lblMinEngineTons.setText("10"); - jLabel33.setText("Base Engine Rating:"); + titleBaseEngRate.setText("Base Engine Rating:"); lblBaseEngineRating.setText("000"); - jLabel35.setText("Final Engine Rating:"); + titleFinalEngRate.setText("Final Engine Rating:"); lblFinalEngineRating.setText("000"); - jLabel28.setText("Free Heat Sinks:"); + titleFreeHeatSinks.setText("Free Heat Sinks:"); lblFreeHeatSinks.setText("000"); - jLabel30.setText("Crew:"); + titleCrew.setText("Crew:"); lblNumCrew.setText("00"); - javax.swing.GroupLayout pnlInformationLayout = new javax.swing.GroupLayout(pnlInformation); + GroupLayout pnlInformationLayout = new GroupLayout(pnlInformation); pnlInformation.setLayout(pnlInformationLayout); pnlInformationLayout.setHorizontalGroup( - pnlInformationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + pnlInformationLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlInformationLayout.createSequentialGroup() .addContainerGap() - .addGroup(pnlInformationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlInformationLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlInformationLayout.createSequentialGroup() .addGap(95, 95, 95) - .addComponent(jLabel30) + .addComponent(titleCrew) .addGap(4, 4, 4) .addComponent(lblNumCrew)) .addGroup(pnlInformationLayout.createSequentialGroup() .addGap(32, 32, 32) - .addComponent(jLabel29) + .addComponent(titleSuspension) .addGap(4, 4, 4) .addComponent(lblSupensionFacter)) .addGroup(pnlInformationLayout.createSequentialGroup() - .addComponent(jLabel31) + .addComponent(titleMinEngTon) .addGap(4, 4, 4) .addComponent(lblMinEngineTons)) .addGroup(pnlInformationLayout.createSequentialGroup() .addGap(28, 28, 28) - .addComponent(jLabel33) + .addComponent(titleBaseEngRate) .addGap(4, 4, 4) .addComponent(lblBaseEngineRating)) .addGroup(pnlInformationLayout.createSequentialGroup() .addGap(29, 29, 29) - .addComponent(jLabel35) + .addComponent(titleFinalEngRate) .addGap(4, 4, 4) .addComponent(lblFinalEngineRating)) .addGroup(pnlInformationLayout.createSequentialGroup() .addGap(45, 45, 45) - .addComponent(jLabel28) + .addComponent(titleFreeHeatSinks) .addGap(4, 4, 4) .addComponent(lblFreeHeatSinks))) .addContainerGap(95, Short.MAX_VALUE)) ); pnlInformationLayout.setVerticalGroup( - pnlInformationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + pnlInformationLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlInformationLayout.createSequentialGroup() - .addGroup(pnlInformationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel30) + .addGroup(pnlInformationLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(titleCrew) .addComponent(lblNumCrew)) .addGap(2, 2, 2) - .addGroup(pnlInformationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel29) + .addGroup(pnlInformationLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(titleSuspension) .addComponent(lblSupensionFacter)) .addGap(2, 2, 2) - .addGroup(pnlInformationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel31) + .addGroup(pnlInformationLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(titleMinEngTon) .addComponent(lblMinEngineTons)) .addGap(2, 2, 2) - .addGroup(pnlInformationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel33) + .addGroup(pnlInformationLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(titleBaseEngRate) .addComponent(lblBaseEngineRating)) .addGap(2, 2, 2) - .addGroup(pnlInformationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel35) + .addGroup(pnlInformationLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(titleFinalEngRate) .addComponent(lblFinalEngineRating)) .addGap(2, 2, 2) - .addGroup(pnlInformationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel28) + .addGroup(pnlInformationLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(titleFreeHeatSinks) .addComponent(lblFreeHeatSinks))) ); @@ -2775,10 +2765,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnLockChassisActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; pnlOmniInfo.add(btnLockChassis, gridBagConstraints); btnAddVariant.setText("Add Variant"); @@ -2791,10 +2781,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnAddVariantActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; pnlOmniInfo.add(btnAddVariant, gridBagConstraints); btnDeleteVariant.setText("Delete Variant"); @@ -2807,10 +2797,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnDeleteVariantActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; pnlOmniInfo.add(btnDeleteVariant, gridBagConstraints); btnRenameVariant.setText("Rename Variant"); @@ -2822,10 +2812,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnRenameVariantActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; pnlOmniInfo.add(btnRenameVariant, gridBagConstraints); jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Armor Locations")); @@ -2839,16 +2829,16 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { lblRightIntPts.setMaximumSize(new java.awt.Dimension(45, 20)); lblRightIntPts.setMinimumSize(new java.awt.Dimension(45, 20)); lblRightIntPts.setPreferredSize(new java.awt.Dimension(45, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; pnlRightArmor.add(lblRightIntPts, gridBagConstraints); jLabel40.setText("Internal"); - pnlRightArmor.add(jLabel40, new java.awt.GridBagConstraints()); + pnlRightArmor.add(jLabel40, new GridBagConstraints()); jLabel46.setText("Armor"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; pnlRightArmor.add(jLabel46, gridBagConstraints); @@ -2860,7 +2850,7 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { spnRightArmorStateChanged(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; pnlRightArmor.add(spnRightArmor, gridBagConstraints); @@ -2874,16 +2864,16 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { lblFrontIntPts.setMaximumSize(new java.awt.Dimension(45, 20)); lblFrontIntPts.setMinimumSize(new java.awt.Dimension(45, 20)); lblFrontIntPts.setPreferredSize(new java.awt.Dimension(45, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; pnlFrontArmor.add(lblFrontIntPts, gridBagConstraints); jLabel45.setText("Internal"); - pnlFrontArmor.add(jLabel45, new java.awt.GridBagConstraints()); + pnlFrontArmor.add(jLabel45, new GridBagConstraints()); jLabel47.setText("Armor"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; pnlFrontArmor.add(jLabel47, gridBagConstraints); @@ -2895,7 +2885,7 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { spnFrontArmorStateChanged(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; pnlFrontArmor.add(spnFrontArmor, gridBagConstraints); @@ -2909,16 +2899,16 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { lblLeftIntPts.setMaximumSize(new java.awt.Dimension(45, 20)); lblLeftIntPts.setMinimumSize(new java.awt.Dimension(45, 20)); lblLeftIntPts.setPreferredSize(new java.awt.Dimension(45, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; pnlLeftArmor.add(lblLeftIntPts, gridBagConstraints); jLabel41.setText("Internal"); - pnlLeftArmor.add(jLabel41, new java.awt.GridBagConstraints()); + pnlLeftArmor.add(jLabel41, new GridBagConstraints()); jLabel48.setText("Armor"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; pnlLeftArmor.add(jLabel48, gridBagConstraints); @@ -2930,7 +2920,7 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { spnLeftArmorStateChanged(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; pnlLeftArmor.add(spnLeftArmor, gridBagConstraints); @@ -2944,16 +2934,16 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { lblRearIntPts.setMaximumSize(new java.awt.Dimension(45, 20)); lblRearIntPts.setMinimumSize(new java.awt.Dimension(45, 20)); lblRearIntPts.setPreferredSize(new java.awt.Dimension(45, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; pnlRearArmor.add(lblRearIntPts, gridBagConstraints); jLabel44.setText("Internal"); - pnlRearArmor.add(jLabel44, new java.awt.GridBagConstraints()); + pnlRearArmor.add(jLabel44, new GridBagConstraints()); jLabel49.setText("Armor"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; pnlRearArmor.add(jLabel49, gridBagConstraints); @@ -2965,7 +2955,7 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { spnRearArmorStateChanged(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; pnlRearArmor.add(spnRearArmor, gridBagConstraints); @@ -2979,16 +2969,16 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { lblTurretIntPts.setMaximumSize(new java.awt.Dimension(45, 20)); lblTurretIntPts.setMinimumSize(new java.awt.Dimension(45, 20)); lblTurretIntPts.setPreferredSize(new java.awt.Dimension(45, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; pnlTurretArmor.add(lblTurretIntPts, gridBagConstraints); jLabel42.setText("Internal"); - pnlTurretArmor.add(jLabel42, new java.awt.GridBagConstraints()); + pnlTurretArmor.add(jLabel42, new GridBagConstraints()); jLabel50.setText("Armor"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; pnlTurretArmor.add(jLabel50, gridBagConstraints); @@ -3000,7 +2990,7 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { spnTurretArmorStateChanged(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; pnlTurretArmor.add(spnTurretArmor, gridBagConstraints); @@ -3015,16 +3005,16 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { lblRearTurretIntPts.setMaximumSize(new java.awt.Dimension(45, 20)); lblRearTurretIntPts.setMinimumSize(new java.awt.Dimension(45, 20)); lblRearTurretIntPts.setPreferredSize(new java.awt.Dimension(45, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; pnlRearTurretArmor.add(lblRearTurretIntPts, gridBagConstraints); jLabel43.setText("Internal"); - pnlRearTurretArmor.add(jLabel43, new java.awt.GridBagConstraints()); + pnlRearTurretArmor.add(jLabel43, new GridBagConstraints()); jLabel51.setText("Armor"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; pnlRearTurretArmor.add(jLabel51, gridBagConstraints); @@ -3036,7 +3026,7 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { spnRearTurretArmorStateChanged(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; pnlRearTurretArmor.add(spnRearTurretArmor, gridBagConstraints); @@ -3051,16 +3041,16 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { lblRotorIntPts.setMaximumSize(new java.awt.Dimension(45, 20)); lblRotorIntPts.setMinimumSize(new java.awt.Dimension(45, 20)); lblRotorIntPts.setPreferredSize(new java.awt.Dimension(45, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; pnlRotorArmor.add(lblRotorIntPts, gridBagConstraints); jLabel92.setText("Internal"); - pnlRotorArmor.add(jLabel92, new java.awt.GridBagConstraints()); + pnlRotorArmor.add(jLabel92, new GridBagConstraints()); jLabel93.setText("Armor"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; pnlRotorArmor.add(jLabel93, gridBagConstraints); @@ -3072,52 +3062,52 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { spnRotorArmorStateChanged(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; pnlRotorArmor.add(spnRotorArmor, gridBagConstraints); - javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6); + GroupLayout jPanel6Layout = new GroupLayout(jPanel6); jPanel6.setLayout(jPanel6Layout); jPanel6Layout.setHorizontalGroup( - jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + jPanel6Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel6Layout.createSequentialGroup() .addContainerGap() - .addComponent(pnlLeftArmor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(pnlLeftArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) - .addComponent(pnlFrontArmor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(pnlRearTurretArmor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(pnlRearArmor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(pnlTurretArmor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(pnlRotorArmor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(jPanel6Layout.createParallelGroup(GroupLayout.Alignment.CENTER) + .addComponent(pnlFrontArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(pnlRearTurretArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(pnlRearArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(pnlTurretArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(pnlRotorArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(pnlRightArmor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(pnlRightArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addContainerGap(30, Short.MAX_VALUE)) ); jPanel6Layout.setVerticalGroup( - jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel6Layout.createSequentialGroup() - .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + jPanel6Layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(GroupLayout.Alignment.TRAILING, jPanel6Layout.createSequentialGroup() + .addGroup(jPanel6Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel6Layout.createSequentialGroup() .addGap(100, 100, 100) - .addComponent(pnlLeftArmor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(pnlLeftArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel6Layout.createSequentialGroup() - .addComponent(pnlFrontArmor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(pnlFrontArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel6Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel6Layout.createSequentialGroup() .addGap(0, 0, Short.MAX_VALUE) - .addComponent(pnlTurretArmor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(pnlTurretArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel6Layout.createSequentialGroup() - .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(pnlRightArmor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(pnlRotorArmor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(jPanel6Layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(pnlRightArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(pnlRotorArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGap(0, 0, Short.MAX_VALUE))))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 11, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(pnlRearTurretArmor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 11, GroupLayout.PREFERRED_SIZE) + .addComponent(pnlRearTurretArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(pnlRearArmor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(pnlRearArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addContainerGap()) ); @@ -3160,41 +3150,41 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); - javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7); + GroupLayout jPanel7Layout = new GroupLayout(jPanel7); jPanel7.setLayout(jPanel7Layout); jPanel7Layout.setHorizontalGroup( - jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + jPanel7Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel7Layout.createSequentialGroup() - .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel7Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel7Layout.createSequentialGroup() .addGap(1, 1, 1) .addComponent(jLabel52) .addGap(2, 2, 2) - .addComponent(cmbArmorType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(cmbArmorType, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel7Layout.createSequentialGroup() .addGap(1, 1, 1) - .addComponent(btnSetArmorTons, javax.swing.GroupLayout.PREFERRED_SIZE, 212, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(btnSetArmorTons, GroupLayout.PREFERRED_SIZE, 212, GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel7Layout.createSequentialGroup() .addGap(1, 1, 1) - .addComponent(btnUseRemaining, javax.swing.GroupLayout.PREFERRED_SIZE, 212, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(btnUseRemaining, GroupLayout.PREFERRED_SIZE, 212, GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel7Layout.createSequentialGroup() .addGap(1, 1, 1) - .addComponent(btnMaximize, javax.swing.GroupLayout.PREFERRED_SIZE, 212, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(btnMaximize, GroupLayout.PREFERRED_SIZE, 212, GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel7Layout.createSequentialGroup() .addGap(31, 31, 31) - .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel7Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(chkBalanceLRArmor) .addComponent(chkBalanceFRArmor)))) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel7Layout.setVerticalGroup( - jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + jPanel7Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel7Layout.createSequentialGroup() - .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel7Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel7Layout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel52)) - .addComponent(cmbArmorType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(cmbArmorType, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(chkBalanceLRArmor) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) @@ -3211,21 +3201,21 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jPanel8.setLayout(new java.awt.GridBagLayout()); jLabel34.setText("Tons"); - jPanel8.add(jLabel34, new java.awt.GridBagConstraints()); + jPanel8.add(jLabel34, new GridBagConstraints()); jLabel36.setText("Space"); - jPanel8.add(jLabel36, new java.awt.GridBagConstraints()); + jPanel8.add(jLabel36, new GridBagConstraints()); lblArmorTotals.setText("999 of 999 Armor Points"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); jPanel8.add(lblArmorTotals, gridBagConstraints); lblArmorCoverage.setText("100.00% Coverage"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST; + gridBagConstraints.anchor = GridBagConstraints.SOUTHEAST; gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); jPanel8.add(lblArmorCoverage, gridBagConstraints); @@ -3234,7 +3224,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtArmorTons.setText("000.00"); txtArmorTons.setMinimumSize(new java.awt.Dimension(50, 20)); txtArmorTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; jPanel8.add(txtArmorTons, gridBagConstraints); @@ -3244,85 +3234,85 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtArmorSpace.setText("00"); txtArmorSpace.setMinimumSize(new java.awt.Dimension(40, 20)); txtArmorSpace.setPreferredSize(new java.awt.Dimension(40, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; jPanel8.add(txtArmorSpace, gridBagConstraints); lblArmorTonsWasted.setText("0.00 Tons Wasted"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.gridwidth = 3; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 0); jPanel8.add(lblArmorTonsWasted, gridBagConstraints); lblArmorLeftInLot.setText("99 Points Left In This 1/2 Ton Lot"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.gridwidth = 3; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 0); jPanel8.add(lblArmorLeftInLot, gridBagConstraints); - javax.swing.GroupLayout pnlBasicSetupLayout = new javax.swing.GroupLayout(pnlBasicSetup); + GroupLayout pnlBasicSetupLayout = new GroupLayout(pnlBasicSetup); pnlBasicSetup.setLayout(pnlBasicSetupLayout); pnlBasicSetupLayout.setHorizontalGroup( - pnlBasicSetupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + pnlBasicSetupLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlBasicSetupLayout.createSequentialGroup() - .addGroup(pnlBasicSetupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(pnlChassisMods, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(pnlMovement, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(pnlBasicSetupLayout.createParallelGroup(GroupLayout.Alignment.LEADING, false) + .addComponent(pnlChassisMods, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(pnlMovement, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jPanel5, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(pnlBasicSetupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(pnlExperimental, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jPanel11, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(pnlChassis, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(pnlBasicSetupLayout.createParallelGroup(GroupLayout.Alignment.LEADING, false) + .addComponent(pnlExperimental, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jPanel11, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(pnlChassis, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(pnlBasicSetupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(pnlSummary, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(pnlOmniInfo, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(pnlInformation, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(pnlBasicSetupLayout.createParallelGroup(GroupLayout.Alignment.LEADING, false) + .addComponent(pnlSummary, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(pnlOmniInfo, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(pnlInformation, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jPanel6, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(pnlBasicSetupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(jPanel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(pnlBasicSetupLayout.createParallelGroup(GroupLayout.Alignment.LEADING, false) + .addComponent(jPanel7, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jPanel8, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); pnlBasicSetupLayout.setVerticalGroup( - pnlBasicSetupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + pnlBasicSetupLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlBasicSetupLayout.createSequentialGroup() - .addGroup(pnlBasicSetupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicSetupLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlBasicSetupLayout.createSequentialGroup() - .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jPanel7, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(jPanel8, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGroup(pnlBasicSetupLayout.createSequentialGroup() - .addComponent(pnlChassis, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(pnlChassis, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(pnlExperimental, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(pnlExperimental, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jPanel11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(pnlBasicSetupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) + .addComponent(jPanel11, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addGroup(pnlBasicSetupLayout.createParallelGroup(GroupLayout.Alignment.TRAILING, false) .addGroup(pnlBasicSetupLayout.createSequentialGroup() - .addComponent(pnlOmniInfo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(pnlSummary, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(pnlOmniInfo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(pnlInformation, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, pnlBasicSetupLayout.createSequentialGroup() - .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, 221, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(pnlSummary, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(pnlMovement, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(2, 2, 2) - .addComponent(pnlChassisMods, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addComponent(jPanel6, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(pnlInformation, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addGroup(GroupLayout.Alignment.LEADING, pnlBasicSetupLayout.createSequentialGroup() + .addComponent(jPanel5, GroupLayout.PREFERRED_SIZE, 221, GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(pnlMovement, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addComponent(pnlChassisMods, GroupLayout.PREFERRED_SIZE, 142, GroupLayout.PREFERRED_SIZE)) + .addComponent(jPanel6, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); tbpMainTabPane.addTab("Basic Setup and Armor", pnlBasicSetup); @@ -3330,282 +3320,317 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pnlEquipInfo.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Information")); pnlEquipInfo.setLayout(new java.awt.GridBagLayout()); - jLabel38.setText("Availability(AoW/SL)"); - gridBagConstraints = new java.awt.GridBagConstraints(); + lblAvailability.setText("Avail. (AoW/SL)"); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 3); - pnlEquipInfo.add(jLabel38, gridBagConstraints); + pnlEquipInfo.add(lblAvailability, gridBagConstraints); - jLabel39.setText("Availability (SW)"); - gridBagConstraints = new java.awt.GridBagConstraints(); + lblSW.setText("Avail. (SW)"); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 3); - pnlEquipInfo.add(jLabel39, gridBagConstraints); + pnlEquipInfo.add(lblSW, gridBagConstraints); - jLabel53.setText("Availability (CI)"); - gridBagConstraints = new java.awt.GridBagConstraints(); + lblCI.setText("Avail. (CI)"); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 5; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 3); - pnlEquipInfo.add(jLabel53, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + pnlEquipInfo.add(lblCI, gridBagConstraints); + + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 3; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoAVSL, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 4; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoAVSW, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 5; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoAVCI, gridBagConstraints); - jLabel54.setText("Introduction"); - gridBagConstraints = new java.awt.GridBagConstraints(); + lblIntro.setText("Introduction"); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 3; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(jLabel54, gridBagConstraints); + pnlEquipInfo.add(lblIntro, gridBagConstraints); - jLabel55.setText("Extinction"); - gridBagConstraints = new java.awt.GridBagConstraints(); + lblExtinct.setText("Extinction"); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 4; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(jLabel55, gridBagConstraints); + pnlEquipInfo.add(lblExtinct, gridBagConstraints); - jLabel56.setText("Reintroduction"); - gridBagConstraints = new java.awt.GridBagConstraints(); + lblReintro.setText("Reintroduction"); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 5; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(jLabel56, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + pnlEquipInfo.add(lblReintro, gridBagConstraints); + + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 3; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoIntro, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 4; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoExtinct, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 5; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoReintro, gridBagConstraints); - jLabel57.setText("Name"); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + lblName.setText(" "); + gridBagConstraints = new GridBagConstraints(); + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 3); - pnlEquipInfo.add(jLabel57, gridBagConstraints); + pnlEquipInfo.add(lblName, gridBagConstraints); - jLabel58.setText("Type"); - gridBagConstraints = new java.awt.GridBagConstraints(); + lblType.setText("Type"); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); - pnlEquipInfo.add(jLabel58, gridBagConstraints); + pnlEquipInfo.add(lblType, gridBagConstraints); jLabel59.setText("Heat"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); pnlEquipInfo.add(jLabel59, gridBagConstraints); jLabel60.setText("Damage"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); pnlEquipInfo.add(jLabel60, gridBagConstraints); jLabel61.setText("Range"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); pnlEquipInfo.add(jLabel61, gridBagConstraints); - lblInfoName.setText(" "); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 3); - pnlEquipInfo.add(lblInfoName, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); +// lblInfoName.setText(" "); +// gridBagConstraints = new GridBagConstraints(); +// gridBagConstraints.gridx = 0; +// gridBagConstraints.gridy = 1; +// gridBagConstraints.anchor = GridBagConstraints.WEST; +// gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 3); +// pnlEquipInfo.add(lblInfoName, gridBagConstraints); + + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoType, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoHeat, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoDamage, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoRange, gridBagConstraints); jSeparator17.setBorder(javax.swing.BorderFactory.createEtchedBorder()); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; - gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(4, 0, 4, 0); pnlEquipInfo.add(jSeparator17, gridBagConstraints); jLabel62.setText("Ammo"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); pnlEquipInfo.add(jLabel62, gridBagConstraints); jLabel63.setText("Tonnage"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 6; gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); pnlEquipInfo.add(jLabel63, gridBagConstraints); jLabel64.setText("Crits"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 7; gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); pnlEquipInfo.add(jLabel64, gridBagConstraints); jLabel65.setText("Specials"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 8; gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 0); pnlEquipInfo.add(jLabel65, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoAmmo, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 6; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoTonnage, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 7; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoCrits, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 8; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 0); pnlEquipInfo.add(lblInfoSpecials, gridBagConstraints); jSeparator20.setBorder(javax.swing.BorderFactory.createEtchedBorder()); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 7; - gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(4, 0, 4, 0); pnlEquipInfo.add(jSeparator20, gridBagConstraints); jLabel66.setText("Cost"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 4; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(jLabel66, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 7; gridBagConstraints.gridy = 4; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 0); pnlEquipInfo.add(lblInfoCost, gridBagConstraints); jLabel67.setText("BV"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 5; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(jLabel67, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 7; gridBagConstraints.gridy = 5; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 0); pnlEquipInfo.add(lblInfoBV, gridBagConstraints); jLabel68.setText("Mounting Restrictions"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 8; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 4, 3); pnlEquipInfo.add(jLabel68, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 8; gridBagConstraints.gridwidth = 7; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 4, 0); pnlEquipInfo.add(lblInfoMountRestrict, gridBagConstraints); + lblMMName.setText("MM Name"); + gridBagConstraints = new GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 9; + gridBagConstraints.gridwidth = 2; + gridBagConstraints.anchor = GridBagConstraints.WEST; + gridBagConstraints.insets = new java.awt.Insets(0, 0, 4, 3); + pnlEquipInfo.add(lblMMName, gridBagConstraints); + + gridBagConstraints = new GridBagConstraints(); + gridBagConstraints.gridx = 2; + gridBagConstraints.gridy = 9; + gridBagConstraints.gridwidth = 7; + gridBagConstraints.anchor = GridBagConstraints.WEST; + gridBagConstraints.insets = new java.awt.Insets(0, 3, 4, 0); + pnlEquipInfo.add(lblMMNameInfo, gridBagConstraints); + jLabel69.setText("Rules Level"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 3; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(jLabel69, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 7; gridBagConstraints.gridy = 3; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 0); pnlEquipInfo.add(lblInfoRulesLevel, gridBagConstraints); - jLabel6.setText("Availability (DA)"); - gridBagConstraints = new java.awt.GridBagConstraints(); + jLabel6.setText("Avail. (DA)"); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 6; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 3); pnlEquipInfo.add(jLabel6, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 6; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); @@ -3615,9 +3640,9 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pnlSpecials.setLayout(new java.awt.GridBagLayout()); jLabel37.setText("Missile Guidance:"); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints = new GridBagConstraints(); + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 0); pnlSpecials.add(jLabel37, gridBagConstraints); @@ -3628,10 +3653,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkUseTCActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(2, 2, 0, 0); pnlSpecials.add(chkUseTC, gridBagConstraints); @@ -3641,10 +3666,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkFCSAIVActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); pnlSpecials.add(chkFCSAIV, gridBagConstraints); @@ -3655,10 +3680,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkFCSAVActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); pnlSpecials.add(chkFCSAV, gridBagConstraints); @@ -3669,10 +3694,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkFCSApolloActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); pnlSpecials.add(chkFCSApollo, gridBagConstraints); @@ -3682,10 +3707,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkCASEActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 5; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(2, 2, 0, 0); pnlSpecials.add(chkCASE, gridBagConstraints); @@ -3698,7 +3723,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnRemoveEquipActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 8); pnlControls.add(btnRemoveEquip, gridBagConstraints); @@ -3708,7 +3733,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnClearEquipActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 0); @@ -3720,14 +3745,14 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnAddEquipActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); pnlControls.add(btnAddEquip, gridBagConstraints); cmbNumEquips.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15" })); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(4, 8, 0, 0); @@ -3740,36 +3765,28 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); cmbLocation.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); cmbLocation.setSelectedIndex(0); - cmbLocation.setVisibleRowCount(4); + cmbLocation.setVisibleRowCount(8); cmbLocation.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { cmbLocationMouseClicked(evt); } }); - jScrollPane1.setViewportView(cmbLocation); + scrLocations.setViewportView(cmbLocation); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.gridwidth = 3; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(4, 0, 4, 0); - pnlControls.add(jScrollPane1, gridBagConstraints); + pnlControls.add(scrLocations, gridBagConstraints); pnlSelected.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Selected Equipment")); - pnlSelected.setMaximumSize(new java.awt.Dimension(212, 286)); - pnlSelected.setMinimumSize(new java.awt.Dimension(212, 286)); + pnlSelected.setMaximumSize(new java.awt.Dimension(250, 1000)); + pnlSelected.setMinimumSize(new java.awt.Dimension(150, 250)); pnlSelected.setLayout(new javax.swing.BoxLayout(pnlSelected, javax.swing.BoxLayout.LINE_AXIS)); - jScrollPane23.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane23.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - - lstSelectedEquipment.setModel( new javax.swing.DefaultListModel() - ); - lstSelectedEquipment.setMaximumSize(new java.awt.Dimension(180, 225)); - lstSelectedEquipment.setMinimumSize(new java.awt.Dimension(180, 225)); - lstSelectedEquipment.setPreferredSize(null); - lstSelectedEquipment.setVisibleRowCount(16); + lstSelectedEquipment.setModel( new javax.swing.DefaultListModel()); lstSelectedEquipment.addListSelectionListener(new javax.swing.event.ListSelectionListener() { public void valueChanged(javax.swing.event.ListSelectionEvent evt) { lstSelectedEquipmentValueChanged(evt); @@ -3802,23 +3819,15 @@ public void mousePressed( MouseEvent e ) { }; lstSelectedEquipment.addMouseListener( mlSelect ); lstSelectedEquipment.setCellRenderer( new saw.gui.EquipmentSelectedRenderer( this ) ); - jScrollPane23.setViewportView(lstSelectedEquipment); + scrSelectedEquip.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + scrSelectedEquip.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); + scrSelectedEquip.setViewportView(lstSelectedEquipment); - pnlSelected.add(jScrollPane23); + pnlSelected.add(scrSelectedEquip); tbpWeaponChooser.setTabPlacement(javax.swing.JTabbedPane.RIGHT); - tbpWeaponChooser.setMaximumSize(new java.awt.Dimension(300, 300)); - tbpWeaponChooser.setMinimumSize(new java.awt.Dimension(300, 300)); - - jSeparator5.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator5.setAlignmentX(0.0F); - jSeparator5.setAlignmentY(0.0F); - - jScrollPane8.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane8.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane8.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane8.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane8.setPreferredSize(new java.awt.Dimension(200, 260)); + tbpWeaponChooser.setMinimumSize(new Dimension(150, 250)); + tbpWeaponChooser.setMaximumSize(new Dimension(350, 1000)); lstChooseBallistic.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; @@ -3826,10 +3835,6 @@ public void mousePressed( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseBallistic.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseBallistic.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseBallistic.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseBallistic.setPreferredSize(null); - lstChooseBallistic.setVisibleRowCount(16); lstChooseBallistic.addListSelectionListener(new javax.swing.event.ListSelectionListener() { public void valueChanged(javax.swing.event.ListSelectionEvent evt) { lstChooseBallisticValueChanged(evt); @@ -3844,52 +3849,11 @@ public void mouseClicked( MouseEvent e ) { }; lstChooseBallistic.addMouseListener( mlBallistic ); lstChooseBallistic.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); - jScrollPane8.setViewportView(lstChooseBallistic); - - jSeparator6.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator6.setAlignmentX(0.0F); - jSeparator6.setAlignmentY(0.0F); - - javax.swing.GroupLayout pnlBallisticLayout = new javax.swing.GroupLayout(pnlBallistic); - pnlBallistic.setLayout(pnlBallisticLayout); - pnlBallisticLayout.setHorizontalGroup( - pnlBallisticLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(pnlBallisticLayout.createSequentialGroup() - .addGap(106, 106, 106) - .addComponent(jSeparator5, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(pnlBallisticLayout.createSequentialGroup() - .addGap(6, 6, 6) - .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGap(6, 6, 6)) - .addGroup(pnlBallisticLayout.createSequentialGroup() - .addGap(106, 106, 106) - .addComponent(jSeparator6, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)) - ); - pnlBallisticLayout.setVerticalGroup( - pnlBallisticLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(pnlBallisticLayout.createSequentialGroup() - .addComponent(jSeparator5, javax.swing.GroupLayout.PREFERRED_SIZE, 9, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(0, 0, 0) - .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, 291, Short.MAX_VALUE) - .addGap(0, 0, 0) - .addComponent(jSeparator6, javax.swing.GroupLayout.PREFERRED_SIZE, 9, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(1, 1, 1)) - ); - - tbpWeaponChooser.addTab("Ballistic", pnlBallistic); - - pnlEnergy.setLayout(new javax.swing.BoxLayout(pnlEnergy, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator7.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator7.setAlignmentX(0.0F); - jSeparator7.setAlignmentY(0.0F); - pnlEnergy.add(jSeparator7); - - jScrollPane9.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane9.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane9.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane9.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane9.setPreferredSize(new java.awt.Dimension(200, 260)); + scrBallistic.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); + scrBallistic.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); + scrBallistic.setViewportView(lstChooseBallistic); + pnlBallistic.setLayout(new javax.swing.BoxLayout(pnlBallistic, javax.swing.BoxLayout.Y_AXIS)); + pnlBallistic.add(scrBallistic); lstChooseEnergy.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; @@ -3897,10 +3861,6 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseEnergy.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseEnergy.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseEnergy.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseEnergy.setPreferredSize(null); - lstChooseEnergy.setVisibleRowCount(16); lstChooseEnergy.addListSelectionListener(new javax.swing.event.ListSelectionListener() { public void valueChanged(javax.swing.event.ListSelectionEvent evt) { lstChooseEnergyValueChanged(evt); @@ -3915,29 +3875,13 @@ public void mouseClicked( MouseEvent e ) { }; lstChooseEnergy.addMouseListener( mlEnergy ); lstChooseEnergy.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); - jScrollPane9.setViewportView(lstChooseEnergy); - - pnlEnergy.add(jScrollPane9); - - jSeparator8.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator8.setAlignmentX(0.0F); - jSeparator8.setAlignmentY(0.0F); - pnlEnergy.add(jSeparator8); - tbpWeaponChooser.addTab("Energy", pnlEnergy); - - pnlMissile.setLayout(new javax.swing.BoxLayout(pnlMissile, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator9.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator9.setAlignmentX(0.0F); - jSeparator9.setAlignmentY(0.0F); - pnlMissile.add(jSeparator9); + scrEnergy.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); + scrEnergy.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); + scrEnergy.setViewportView(lstChooseEnergy); - jScrollPane19.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane19.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane19.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane19.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane19.setPreferredSize(new java.awt.Dimension(200, 260)); + pnlEnergy.setLayout(new javax.swing.BoxLayout(pnlEnergy, javax.swing.BoxLayout.Y_AXIS)); + pnlEnergy.add(scrEnergy); lstChooseMissile.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; @@ -3945,10 +3889,6 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseMissile.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseMissile.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseMissile.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseMissile.setPreferredSize(null); - lstChooseMissile.setVisibleRowCount(16); lstChooseMissile.addListSelectionListener(new javax.swing.event.ListSelectionListener() { public void valueChanged(javax.swing.event.ListSelectionEvent evt) { lstChooseMissileValueChanged(evt); @@ -3963,29 +3903,11 @@ public void mouseClicked( MouseEvent e ) { }; lstChooseMissile.addMouseListener( mlMissile ); lstChooseMissile.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); - jScrollPane19.setViewportView(lstChooseMissile); - - pnlMissile.add(jScrollPane19); - - jSeparator10.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator10.setAlignmentX(0.0F); - jSeparator10.setAlignmentY(0.0F); - pnlMissile.add(jSeparator10); - - tbpWeaponChooser.addTab("Missile", pnlMissile); - - pnlPhysical.setLayout(new javax.swing.BoxLayout(pnlPhysical, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator11.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator11.setAlignmentX(0.0F); - jSeparator11.setAlignmentY(0.0F); - pnlPhysical.add(jSeparator11); - - jScrollPane20.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane20.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane20.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane20.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane20.setPreferredSize(new java.awt.Dimension(200, 260)); + scrMissile.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); + scrMissile.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); + scrMissile.setViewportView(lstChooseMissile); + pnlMissile.setLayout(new javax.swing.BoxLayout(pnlMissile, javax.swing.BoxLayout.Y_AXIS)); + pnlMissile.add(scrMissile); lstChoosePhysical.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; @@ -3993,10 +3915,6 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChoosePhysical.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChoosePhysical.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChoosePhysical.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChoosePhysical.setPreferredSize(null); - lstChoosePhysical.setVisibleRowCount(16); lstChoosePhysical.addListSelectionListener(new javax.swing.event.ListSelectionListener() { public void valueChanged(javax.swing.event.ListSelectionEvent evt) { lstChoosePhysicalValueChanged(evt); @@ -4011,29 +3929,11 @@ public void mouseClicked( MouseEvent e ) { }; lstChoosePhysical.addMouseListener( mlPhysical ); lstChoosePhysical.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); - jScrollPane20.setViewportView(lstChoosePhysical); - - pnlPhysical.add(jScrollPane20); - - jSeparator12.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator12.setAlignmentX(0.0F); - jSeparator12.setAlignmentY(0.0F); - pnlPhysical.add(jSeparator12); - - tbpWeaponChooser.addTab("Physical", pnlPhysical); - - pnlEquipmentChooser.setLayout(new javax.swing.BoxLayout(pnlEquipmentChooser, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator13.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator13.setAlignmentX(0.0F); - jSeparator13.setAlignmentY(0.0F); - pnlEquipmentChooser.add(jSeparator13); - - jScrollPane21.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane21.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane21.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane21.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane21.setPreferredSize(new java.awt.Dimension(200, 260)); + scrPhysical.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); + scrPhysical.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); + scrPhysical.setViewportView(lstChoosePhysical); + pnlPhysical.setLayout(new javax.swing.BoxLayout(pnlPhysical, javax.swing.BoxLayout.Y_AXIS)); + pnlPhysical.add(scrPhysical); lstChooseEquipment.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; @@ -4041,10 +3941,6 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseEquipment.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseEquipment.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseEquipment.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseEquipment.setPreferredSize(null); - lstChooseEquipment.setVisibleRowCount(16); lstChooseEquipment.addListSelectionListener(new javax.swing.event.ListSelectionListener() { public void valueChanged(javax.swing.event.ListSelectionEvent evt) { lstChooseEquipmentValueChanged(evt); @@ -4059,29 +3955,11 @@ public void mouseClicked( MouseEvent e ) { }; lstChooseEquipment.addMouseListener( mlEquipment ); lstChooseEquipment.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); - jScrollPane21.setViewportView(lstChooseEquipment); - - pnlEquipmentChooser.add(jScrollPane21); - - jSeparator14.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator14.setAlignmentX(0.0F); - jSeparator14.setAlignmentY(0.0F); - pnlEquipmentChooser.add(jSeparator14); - - tbpWeaponChooser.addTab("Equipment", pnlEquipmentChooser); - - pnlArtillery.setLayout(new javax.swing.BoxLayout(pnlArtillery, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator18.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator18.setAlignmentX(0.0F); - jSeparator18.setAlignmentY(0.0F); - pnlArtillery.add(jSeparator18); - - jScrollPane24.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane24.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane24.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane24.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane24.setPreferredSize(new java.awt.Dimension(200, 260)); + scrEquipment.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); + scrEquipment.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); + scrEquipment.setViewportView(lstChooseEquipment); + pnlEquipmentChooser.setLayout(new javax.swing.BoxLayout(pnlEquipmentChooser, javax.swing.BoxLayout.Y_AXIS)); + pnlEquipmentChooser.add(scrEquipment); lstChooseArtillery.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; @@ -4089,10 +3967,6 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseArtillery.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseArtillery.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseArtillery.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseArtillery.setPreferredSize(null); - lstChooseArtillery.setVisibleRowCount(16); lstChooseArtillery.addListSelectionListener(new javax.swing.event.ListSelectionListener() { public void valueChanged(javax.swing.event.ListSelectionEvent evt) { lstChooseArtilleryValueChanged(evt); @@ -4107,29 +3981,11 @@ public void mouseClicked( MouseEvent e ) { }; lstChooseArtillery.addMouseListener( mlArtillery ); lstChooseArtillery.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); - jScrollPane24.setViewportView(lstChooseArtillery); - - pnlArtillery.add(jScrollPane24); - - jSeparator19.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator19.setAlignmentX(0.0F); - jSeparator19.setAlignmentY(0.0F); - pnlArtillery.add(jSeparator19); - - tbpWeaponChooser.addTab("Artillery", pnlArtillery); - - pnlAmmunition.setLayout(new javax.swing.BoxLayout(pnlAmmunition, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator15.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator15.setAlignmentX(0.0F); - jSeparator15.setAlignmentY(0.0F); - pnlAmmunition.add(jSeparator15); - - jScrollPane22.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane22.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane22.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane22.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane22.setPreferredSize(new java.awt.Dimension(200, 260)); + scrArtillery.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); + scrArtillery.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); + scrArtillery.setViewportView(lstChooseArtillery); + pnlArtillery.setLayout(new javax.swing.BoxLayout(pnlArtillery, javax.swing.BoxLayout.Y_AXIS)); + pnlArtillery.add(scrArtillery); lstChooseAmmunition.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; @@ -4137,10 +3993,6 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseAmmunition.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseAmmunition.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseAmmunition.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseAmmunition.setPreferredSize(null); - lstChooseAmmunition.setVisibleRowCount(16); lstChooseAmmunition.addListSelectionListener(new javax.swing.event.ListSelectionListener() { public void valueChanged(javax.swing.event.ListSelectionEvent evt) { lstChooseAmmunitionValueChanged(evt); @@ -4155,49 +4007,44 @@ public void mouseClicked( MouseEvent e ) { }; lstChooseAmmunition.addMouseListener( mlAmmo ); lstChooseAmmunition.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); - jScrollPane22.setViewportView(lstChooseAmmunition); - - pnlAmmunition.add(jScrollPane22); - - jSeparator16.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator16.setAlignmentX(0.0F); - jSeparator16.setAlignmentY(0.0F); - pnlAmmunition.add(jSeparator16); + scrAmmo.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); + scrAmmo.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); + scrAmmo.setViewportView(lstChooseAmmunition); + pnlAmmunition.setLayout(new javax.swing.BoxLayout(pnlAmmunition, javax.swing.BoxLayout.Y_AXIS)); + pnlAmmunition.add(scrAmmo); + tbpWeaponChooser.addTab("Ballistic", pnlBallistic); + tbpWeaponChooser.addTab("Energy", pnlEnergy); + tbpWeaponChooser.addTab("Missile", pnlMissile); + tbpWeaponChooser.addTab("Physical", pnlPhysical); + tbpWeaponChooser.addTab("Equipment", pnlEquipmentChooser); + tbpWeaponChooser.addTab("Artillery", pnlArtillery); tbpWeaponChooser.addTab("Ammunition", pnlAmmunition); - javax.swing.GroupLayout pnlEquipmentLayout = new javax.swing.GroupLayout(pnlEquipment); + GroupLayout pnlEquipmentLayout = new GroupLayout(pnlEquipment); pnlEquipment.setLayout(pnlEquipmentLayout); pnlEquipmentLayout.setHorizontalGroup( - pnlEquipmentLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + pnlEquipmentLayout.createParallelGroup(GroupLayout.Alignment.LEADING, true) .addGroup(pnlEquipmentLayout.createSequentialGroup() - .addContainerGap() - .addComponent(tbpWeaponChooser, javax.swing.GroupLayout.PREFERRED_SIZE, 294, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(pnlEquipmentLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(pnlControls, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(pnlSpecials, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(pnlSelected, javax.swing.GroupLayout.PREFERRED_SIZE, 264, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(pnlEquipInfo, javax.swing.GroupLayout.DEFAULT_SIZE, 544, Short.MAX_VALUE) - .addContainerGap()) + .addComponent(tbpWeaponChooser, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE) + .addGroup(pnlEquipmentLayout.createParallelGroup(GroupLayout.Alignment.LEADING, false) + .addComponent(pnlControls, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(pnlSpecials, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)) + .addComponent(pnlSelected, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE) + .addComponent(pnlEquipInfo, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)) ); pnlEquipmentLayout.setVerticalGroup( - pnlEquipmentLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + pnlEquipmentLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlEquipmentLayout.createSequentialGroup() - .addContainerGap() - .addGroup(pnlEquipmentLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) - .addComponent(pnlSelected, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(tbpWeaponChooser, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(pnlEquipmentLayout.createParallelGroup(GroupLayout.Alignment.LEADING, true) + .addComponent(pnlSelected, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(tbpWeaponChooser, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(pnlEquipmentLayout.createSequentialGroup() - .addComponent(pnlControls, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(pnlSpecials, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addContainerGap(139, Short.MAX_VALUE)) + .addComponent(pnlControls, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(pnlSpecials, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) .addGroup(pnlEquipmentLayout.createSequentialGroup() - .addComponent(pnlEquipInfo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(0, 0, Short.MAX_VALUE)) + .addComponent(pnlEquipInfo, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)) ); tbpMainTabPane.addTab("Equipment", pnlEquipment); @@ -4211,8 +4058,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnExportTXTActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints = new GridBagConstraints(); + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlExport.add(btnExportTXT, gridBagConstraints); btnExportHTML.setText("to HTML"); @@ -4221,7 +4068,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnExportHTMLActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 4); pnlExport.add(btnExportHTML, gridBagConstraints); @@ -4231,21 +4078,21 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnExportMTFActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints = new GridBagConstraints(); + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlExport.add(btnExportMTF, gridBagConstraints); tbpFluffEditors.setTabPlacement(javax.swing.JTabbedPane.LEFT); - tbpFluffEditors.setMaximumSize(new java.awt.Dimension(420, 455)); - tbpFluffEditors.setMinimumSize(new java.awt.Dimension(420, 455)); + //tbpFluffEditors.setMaximumSize(new java.awt.Dimension(420, 455)); + //tbpFluffEditors.setMinimumSize(new java.awt.Dimension(420, 455)); - pnlOverview.setMaximumSize(new java.awt.Dimension(427, 485)); - pnlOverview.setMinimumSize(new java.awt.Dimension(427, 485)); + //pnlOverview.setMaximumSize(new java.awt.Dimension(427, 485)); + //pnlOverview.setMinimumSize(new java.awt.Dimension(427, 485)); pnlOverview.setLayout(new javax.swing.BoxLayout(pnlOverview, javax.swing.BoxLayout.Y_AXIS)); tbpFluffEditors.addTab("Overview", pnlOverview); - pnlCapabilities.setMaximumSize(new java.awt.Dimension(427, 485)); - pnlCapabilities.setMinimumSize(new java.awt.Dimension(427, 485)); + //pnlCapabilities.setMaximumSize(new java.awt.Dimension(427, 485)); + //pnlCapabilities.setMinimumSize(new java.awt.Dimension(427, 485)); pnlCapabilities.setLayout(new javax.swing.BoxLayout(pnlCapabilities, javax.swing.BoxLayout.Y_AXIS)); tbpFluffEditors.addTab("Capabilities", pnlCapabilities); @@ -4271,59 +4118,59 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jLabel82.setMaximumSize(new java.awt.Dimension(175, 15)); jLabel82.setMinimumSize(new java.awt.Dimension(175, 15)); jLabel82.setPreferredSize(new java.awt.Dimension(175, 15)); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.gridwidth = 2; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(5, 10, 0, 0); pnlManufacturers.add(jLabel82, gridBagConstraints); jLabel83.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N jLabel83.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel83.setText("Manufacturing Company:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(10, 10, 0, 0); pnlManufacturers.add(jLabel83, gridBagConstraints); jLabel84.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N jLabel84.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel84.setText("Location:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 76; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); pnlManufacturers.add(jLabel84, gridBagConstraints); jLabel85.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N jLabel85.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel85.setText("Engine Manufacturer:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 17; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); pnlManufacturers.add(jLabel85, gridBagConstraints); jLabel86.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N jLabel86.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel86.setText("Armor Model:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 5; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 56; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); pnlManufacturers.add(jLabel86, gridBagConstraints); @@ -4331,45 +4178,45 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jLabel87.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel87.setText("Chassis Model:"); jLabel87.setEnabled(false); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 47; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); pnlManufacturers.add(jLabel87, gridBagConstraints); jLabel88.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N jLabel88.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel88.setText("Communications System:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 7; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); pnlManufacturers.add(jLabel88, gridBagConstraints); jLabel89.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N jLabel89.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel89.setText("Targeting and Tracking:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 8; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 7; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); pnlManufacturers.add(jLabel89, gridBagConstraints); txtManufacturer.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(10, 2, 0, 11); pnlManufacturers.add(txtManufacturer, gridBagConstraints); MouseListener mlManufacturer = new MouseAdapter() { @@ -4387,12 +4234,12 @@ public void mousePressed( MouseEvent e ) { txtManufacturer.addMouseListener( mlManufacturer ); txtEngineManufacturer.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 4; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 11); pnlManufacturers.add(txtEngineManufacturer, gridBagConstraints); MouseListener mlEngineManufacturer = new MouseAdapter() { @@ -4410,12 +4257,12 @@ public void mousePressed( MouseEvent e ) { txtEngineManufacturer.addMouseListener( mlEngineManufacturer ); txtArmorModel.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 5; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 11); pnlManufacturers.add(txtArmorModel, gridBagConstraints); MouseListener mlArmorModel = new MouseAdapter() { @@ -4434,12 +4281,12 @@ public void mousePressed( MouseEvent e ) { txtChassisModel.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N txtChassisModel.setEnabled(false); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 3; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 11); pnlManufacturers.add(txtChassisModel, gridBagConstraints); MouseListener mlChassisModel = new MouseAdapter() { @@ -4457,12 +4304,12 @@ public void mousePressed( MouseEvent e ) { txtChassisModel.addMouseListener( mlChassisModel ); txtCommSystem.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 7; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 11); pnlManufacturers.add(txtCommSystem, gridBagConstraints); MouseListener mlCommSystem = new MouseAdapter() { @@ -4480,12 +4327,12 @@ public void mousePressed( MouseEvent e ) { txtCommSystem.addMouseListener( mlCommSystem ); txtTNTSystem.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 8; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 11); pnlManufacturers.add(txtTNTSystem, gridBagConstraints); MouseListener mlTNTSystem = new MouseAdapter() { @@ -4508,10 +4355,10 @@ public void mousePressed( MouseEvent e ) { pnlWeaponsManufacturers.setLayout(new java.awt.GridBagLayout()); chkIndividualWeapons.setText("Assign manufacturers individually"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 10, 4, 0); pnlWeaponsManufacturers.add(chkIndividualWeapons, gridBagConstraints); @@ -4538,26 +4385,26 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { }); scpWeaponManufacturers.setViewportView(tblWeaponManufacturers); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.ipadx = 280; gridBagConstraints.ipady = 180; pnlWeaponsManufacturers.add(scpWeaponManufacturers, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 9; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(2, 10, 2, 10); pnlManufacturers.add(pnlWeaponsManufacturers, gridBagConstraints); txtManufacturerLocation.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 2; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 11); pnlManufacturers.add(txtManufacturerLocation, gridBagConstraints); MouseListener mlManufacturerLocation = new MouseAdapter() { @@ -4577,22 +4424,22 @@ public void mousePressed( MouseEvent e ) { jLabel90.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N jLabel90.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel90.setText("Jump Jet Model:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 6; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 44; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); pnlManufacturers.add(jLabel90, gridBagConstraints); txtJJModel.setEnabled(false); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 6; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 11); pnlManufacturers.add(txtJJModel, gridBagConstraints); MouseListener mlJJModel = new MouseAdapter() { @@ -4654,26 +4501,26 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); - javax.swing.GroupLayout pnlQuirksLayout = new javax.swing.GroupLayout(pnlQuirks); + GroupLayout pnlQuirksLayout = new GroupLayout(pnlQuirks); pnlQuirks.setLayout(pnlQuirksLayout); pnlQuirksLayout.setHorizontalGroup( - pnlQuirksLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(lblBattleMechQuirks, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + pnlQuirksLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(lblBattleMechQuirks, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addGroup(pnlQuirksLayout.createSequentialGroup() .addContainerGap() - .addGroup(pnlQuirksLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlQuirksLayout.createSequentialGroup() + .addGroup(pnlQuirksLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(GroupLayout.Alignment.TRAILING, pnlQuirksLayout.createSequentialGroup() .addGap(0, 313, Short.MAX_VALUE) .addComponent(btnAddQuirk)) - .addComponent(scpQuirkTable, javax.swing.GroupLayout.DEFAULT_SIZE, 392, Short.MAX_VALUE)) + .addComponent(scpQuirkTable, GroupLayout.DEFAULT_SIZE, 392, Short.MAX_VALUE)) .addContainerGap()) ); pnlQuirksLayout.setVerticalGroup( - pnlQuirksLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + pnlQuirksLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlQuirksLayout.createSequentialGroup() - .addComponent(lblBattleMechQuirks, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(scpQuirkTable, javax.swing.GroupLayout.PREFERRED_SIZE, 389, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblBattleMechQuirks, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(scpQuirkTable, GroupLayout.PREFERRED_SIZE, 389, GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btnAddQuirk) .addContainerGap()) @@ -4766,17 +4613,17 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jTextAreaBFConversion.setRows(5); jScrollPane14.setViewportView(jTextAreaBFConversion); - javax.swing.GroupLayout jPanel10Layout = new javax.swing.GroupLayout(jPanel10); + GroupLayout jPanel10Layout = new GroupLayout(jPanel10); jPanel10.setLayout(jPanel10Layout); jPanel10Layout.setHorizontalGroup( - jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + jPanel10Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel10Layout.createSequentialGroup() .addGap(4, 4, 4) .addComponent(jScrollPane14) .addContainerGap()) ); jPanel10Layout.setVerticalGroup( - jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + jPanel10Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(jScrollPane14) ); @@ -4796,7 +4643,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnLoadImageActionPerformed(evt); } }); - jPanel1.add(btnLoadImage, new java.awt.GridBagConstraints()); + jPanel1.add(btnLoadImage, new GridBagConstraints()); btnClearImage.setText("Clear Image"); btnClearImage.addActionListener(new java.awt.event.ActionListener() { @@ -4804,57 +4651,57 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnClearImageActionPerformed(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; jPanel1.add(btnClearImage, gridBagConstraints); - javax.swing.GroupLayout pnlImageLayout = new javax.swing.GroupLayout(pnlImage); + GroupLayout pnlImageLayout = new GroupLayout(pnlImage); pnlImage.setLayout(pnlImageLayout); pnlImageLayout.setHorizontalGroup( - pnlImageLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblFluffImage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + pnlImageLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(jPanel1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(lblFluffImage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) ); pnlImageLayout.setVerticalGroup( - pnlImageLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + pnlImageLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlImageLayout.createSequentialGroup() - .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jPanel1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addGap(4, 4, 4) - .addComponent(lblFluffImage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(lblFluffImage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); - javax.swing.GroupLayout pnlFluffLayout = new javax.swing.GroupLayout(pnlFluff); + GroupLayout pnlFluffLayout = new GroupLayout(pnlFluff); pnlFluff.setLayout(pnlFluffLayout); pnlFluffLayout.setHorizontalGroup( - pnlFluffLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlFluffLayout.createSequentialGroup() .addContainerGap() - .addComponent(pnlImage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(pnlImage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(tbpFluffEditors, javax.swing.GroupLayout.DEFAULT_SIZE, 503, Short.MAX_VALUE) + .addComponent(tbpFluffEditors, GroupLayout.DEFAULT_SIZE, 503, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(pnlFluffLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(pnlFluffLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(pnlBFStats, javax.swing.GroupLayout.PREFERRED_SIZE, 378, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jPanel10, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addComponent(pnlExport, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING, false) + .addComponent(pnlBFStats, GroupLayout.PREFERRED_SIZE, 378, GroupLayout.PREFERRED_SIZE) + .addComponent(jPanel10, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(pnlExport, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addContainerGap()) ); pnlFluffLayout.setVerticalGroup( - pnlFluffLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlFluffLayout.createSequentialGroup() .addContainerGap() - .addGroup(pnlFluffLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING, true) .addGroup(pnlFluffLayout.createSequentialGroup() - .addComponent(pnlBFStats, javax.swing.GroupLayout.PREFERRED_SIZE, 167, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(pnlBFStats, GroupLayout.PREFERRED_SIZE, 167, GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jPanel10, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jPanel10, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(pnlExport, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addComponent(tbpFluffEditors, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) - .addComponent(pnlImage, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(pnlExport, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addComponent(tbpFluffEditors, GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) + .addComponent(pnlImage, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap(40, Short.MAX_VALUE)) ); @@ -5116,23 +4963,20 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { setJMenuBar(jMenuBar1); - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); + GroupLayout layout = new GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(tlbIconBar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(pnlInfoPane, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(tbpMainTabPane, javax.swing.GroupLayout.PREFERRED_SIZE, 1280, javax.swing.GroupLayout.PREFERRED_SIZE) + layout.createParallelGroup(GroupLayout.Alignment.LEADING, true) + .addComponent(tlbIconBar, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(pnlInfoPane, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(tbpMainTabPane, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + layout.createParallelGroup(GroupLayout.Alignment.LEADING, true) .addGroup(layout.createSequentialGroup() - .addComponent(tlbIconBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(2, 2, 2) - .addComponent(tbpMainTabPane, javax.swing.GroupLayout.PREFERRED_SIZE, 493, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(pnlInfoPane, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap(24, Short.MAX_VALUE)) + .addComponent(tlbIconBar, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(tbpMainTabPane) + .addComponent(pnlInfoPane, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)) ); pack(); @@ -5668,7 +5512,9 @@ private void ShowInfoOn( abPlaceable p ) { default: lblInfoRulesLevel.setText( "??" ); } - lblInfoName.setText( p.CritName() ); + + pnlEquipInfo.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), p.CritName())); + //lblInfoName.setText( p.CritName() ); lblInfoTonnage.setText( "" + p.GetTonnage() ); lblInfoCrits.setText( "" + p.NumCVSpaces() ); lblInfoCost.setText( "" + String.format( "%1$,.0f", p.GetCost() ) ); @@ -5828,7 +5674,7 @@ private void ShowInfoOn( abPlaceable p ) { lblInfoMountRestrict.setText( "None" ); } - lblInfoMountRestrict.setText(lblInfoMountRestrict.getText() + " MM Name " + p.MegaMekName(false)); + lblMMNameInfo.setText(p.MegaMekName(false)); } private void btnAddToForceListActionPerformed(java.awt.event.ActionEvent evt) { @@ -9892,19 +9738,19 @@ private void FixJJSpinnerModel() { private javax.swing.JLabel jLabel25; private javax.swing.JLabel jLabel26; private javax.swing.JLabel jLabel27; - private javax.swing.JLabel jLabel28; - private javax.swing.JLabel jLabel29; + private javax.swing.JLabel titleFreeHeatSinks; + private javax.swing.JLabel titleSuspension; private javax.swing.JLabel jLabel3; - private javax.swing.JLabel jLabel30; - private javax.swing.JLabel jLabel31; + private javax.swing.JLabel titleCrew; + private javax.swing.JLabel titleMinEngTon; private javax.swing.JLabel jLabel32; - private javax.swing.JLabel jLabel33; + private javax.swing.JLabel titleBaseEngRate; private javax.swing.JLabel jLabel34; - private javax.swing.JLabel jLabel35; + private javax.swing.JLabel titleFinalEngRate; private javax.swing.JLabel jLabel36; private javax.swing.JLabel jLabel37; - private javax.swing.JLabel jLabel38; - private javax.swing.JLabel jLabel39; + private javax.swing.JLabel lblAvailability; + private javax.swing.JLabel lblSW; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel40; private javax.swing.JLabel jLabel41; @@ -9920,12 +9766,12 @@ private void FixJJSpinnerModel() { private javax.swing.JLabel jLabel50; private javax.swing.JLabel jLabel51; private javax.swing.JLabel jLabel52; - private javax.swing.JLabel jLabel53; - private javax.swing.JLabel jLabel54; - private javax.swing.JLabel jLabel55; - private javax.swing.JLabel jLabel56; - private javax.swing.JLabel jLabel57; - private javax.swing.JLabel jLabel58; + private javax.swing.JLabel lblCI; + private javax.swing.JLabel lblIntro; + private javax.swing.JLabel lblExtinct; + private javax.swing.JLabel lblReintro; + private javax.swing.JLabel lblName; + private javax.swing.JLabel lblType; private javax.swing.JLabel jLabel59; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel60; @@ -9937,6 +9783,8 @@ private void FixJJSpinnerModel() { private javax.swing.JLabel jLabel66; private javax.swing.JLabel jLabel67; private javax.swing.JLabel jLabel68; + private javax.swing.JLabel lblMMName; + private javax.swing.JLabel lblMMNameInfo; private javax.swing.JLabel jLabel69; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel70; @@ -9974,27 +9822,18 @@ private void FixJJSpinnerModel() { private javax.swing.JPanel jPanel6; private javax.swing.JPanel jPanel7; private javax.swing.JPanel jPanel8; - private javax.swing.JScrollPane jScrollPane1; + private javax.swing.JScrollPane scrLocations; private javax.swing.JScrollPane jScrollPane14; - private javax.swing.JScrollPane jScrollPane19; - private javax.swing.JScrollPane jScrollPane20; - private javax.swing.JScrollPane jScrollPane21; - private javax.swing.JScrollPane jScrollPane22; - private javax.swing.JScrollPane jScrollPane23; - private javax.swing.JScrollPane jScrollPane24; - private javax.swing.JScrollPane jScrollPane8; - private javax.swing.JScrollPane jScrollPane9; + private javax.swing.JScrollPane scrMissile; + private javax.swing.JScrollPane scrPhysical; + private javax.swing.JScrollPane scrEquipment; + private javax.swing.JScrollPane scrAmmo; + private javax.swing.JScrollPane scrSelectedEquip; + private javax.swing.JScrollPane scrArtillery; + private javax.swing.JScrollPane scrBallistic; + private javax.swing.JScrollPane scrEnergy; private javax.swing.JToolBar.Separator jSeparator1; - private javax.swing.JSeparator jSeparator10; - private javax.swing.JSeparator jSeparator11; - private javax.swing.JSeparator jSeparator12; - private javax.swing.JSeparator jSeparator13; - private javax.swing.JSeparator jSeparator14; - private javax.swing.JSeparator jSeparator15; - private javax.swing.JSeparator jSeparator16; private javax.swing.JSeparator jSeparator17; - private javax.swing.JSeparator jSeparator18; - private javax.swing.JSeparator jSeparator19; private javax.swing.JToolBar.Separator jSeparator2; private javax.swing.JSeparator jSeparator20; private javax.swing.JToolBar.Separator jSeparator21; @@ -10007,11 +9846,8 @@ private void FixJJSpinnerModel() { private javax.swing.JToolBar.Separator jSeparator3; private javax.swing.JSeparator jSeparator30; private javax.swing.JToolBar.Separator jSeparator4; - private javax.swing.JSeparator jSeparator5; - private javax.swing.JSeparator jSeparator6; private javax.swing.JSeparator jSeparator7; private javax.swing.JSeparator jSeparator8; - private javax.swing.JSeparator jSeparator9; private javax.swing.JTextArea jTextAreaBFConversion; private javax.swing.JLabel lblArmorCoverage; private javax.swing.JLabel lblArmorLeftInLot; From 34f1adf71afdc4a744b229ce45012566d53de3b2 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 11 Feb 2023 15:08:05 -0700 Subject: [PATCH 078/199] Fluff Resizes And does not blow out the layout anymore.... --- saw/src/main/java/saw/gui/frmVeeWide.java | 533 ++++++---------------- 1 file changed, 136 insertions(+), 397 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 8e93ca8a..58c995de 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -37,9 +37,11 @@ import battleforce.BattleForceStats; import common.*; import components.*; +import dialog.dlgQuirks; import dialog.frmForce; import filehandlers.*; import gui.TextPane; +import list.view.tbQuirks; import saw.filehandlers.HTMLWriter; import states.ifState; import visitors.VArmorSetPatchworkLocation; @@ -48,6 +50,7 @@ import visitors.ifVisitor; import javax.swing.*; +import javax.swing.table.AbstractTableModel; import javax.swing.text.JTextComponent; import java.awt.*; import java.awt.datatransfer.Clipboard; @@ -89,7 +92,7 @@ public final class frmVeeWide extends javax.swing.JFrame implements java.awt.dat private ImageTracker imageTracker = new ImageTracker(); public dlgOpen dOpen = new dlgOpen(this, true); public frmForce dForce = new frmForce(this, imageTracker); - + public ArrayList quirks = new ArrayList(); TextPane Overview = new TextPane(); TextPane Capabilities = new TextPane(); TextPane Deployment = new TextPane(); @@ -153,6 +156,7 @@ public frmVeeWide() { cmbMotiveTypeActionPerformed(null); spnTonnageStateChanged(null); + setTitle( saw.Constants.AppDescription + " " + saw.Constants.GetVersion() ); // added for easy checking @@ -1333,7 +1337,7 @@ private void initComponents() { pnlNotables = new javax.swing.JPanel(); pnlAdditionalFluff = new javax.swing.JPanel(); pnlManufacturers = new javax.swing.JPanel(); - jLabel82 = new javax.swing.JLabel(); + lblManuInfo = new javax.swing.JLabel(); jLabel83 = new javax.swing.JLabel(); jLabel84 = new javax.swing.JLabel(); jLabel85 = new javax.swing.JLabel(); @@ -1350,6 +1354,7 @@ private void initComponents() { pnlWeaponsManufacturers = new javax.swing.JPanel(); chkIndividualWeapons = new javax.swing.JCheckBox(); scpWeaponManufacturers = new javax.swing.JScrollPane(); + scpManufacturers = new javax.swing.JScrollPane(); tblWeaponManufacturers = new javax.swing.JTable(); txtManufacturerLocation = new javax.swing.JTextField(); jLabel90 = new javax.swing.JLabel(); @@ -1387,7 +1392,7 @@ private void initComponents() { jTextAreaBFConversion = new javax.swing.JTextArea(); pnlImage = new javax.swing.JPanel(); lblFluffImage = new javax.swing.JLabel(); - jPanel1 = new javax.swing.JPanel(); + pnlImageButtons = new javax.swing.JPanel(); btnLoadImage = new javax.swing.JButton(); btnClearImage = new javax.swing.JButton(); jMenuBar1 = new javax.swing.JMenuBar(); @@ -1763,14 +1768,14 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addComponent(jLabel1, GroupLayout.Alignment.TRAILING)) .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup() - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(txtVehicleName, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGroup(GroupLayout.Alignment.TRAILING, jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup() .addGap(2, 2, 2) .addComponent(txtSource, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel5Layout.createSequentialGroup() - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(txtModel, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))))) .addContainerGap(24, Short.MAX_VALUE)) .addGroup(jPanel5Layout.createSequentialGroup() @@ -1804,7 +1809,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addGroup(jPanel5Layout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel81))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup() .addGap(3, 3, 3) @@ -1822,14 +1827,14 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addComponent(cmbTechBase, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGap(2, 2, 2) .addComponent(lblEraYears) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(lblProdYear)) .addComponent(txtProdYear, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(cmbProductionEra, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(chkYearRestrict) .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); @@ -1977,9 +1982,9 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { .addGroup(pnlChassisLayout.createParallelGroup(GroupLayout.Alignment.LEADING, false) .addGroup(pnlChassisLayout.createSequentialGroup() .addComponent(jLabel32) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(cmbTurret, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(spnTurretTonnage)) .addGroup(pnlChassisLayout.createSequentialGroup() .addComponent(jLabel9) @@ -1990,9 +1995,9 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { .addComponent(jLabel8) .addGap(2, 2, 2) .addComponent(spnTonnage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(lblVeeClass) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(lblVeeLimits))) .addGroup(pnlChassisLayout.createSequentialGroup() .addContainerGap() @@ -2027,12 +2032,12 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { .addGap(3, 3, 3) .addComponent(jLabel9)) .addComponent(cmbEngineType, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addGroup(pnlChassisLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(jLabel32) .addComponent(cmbTurret, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(spnTurretTonnage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addGroup(pnlChassisLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlChassisLayout.createSequentialGroup() .addGap(3, 3, 3) @@ -2246,17 +2251,17 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pnlExperimentalLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlExperimentalLayout.createSequentialGroup() .addComponent(chkArmoredMotive) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(chkSupercharger) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(chkCommandConsole) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(chkMinesweeper) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(chkJetBooster) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(chkEscapePod) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(chkSponsonTurret) .addContainerGap()) ); @@ -3074,14 +3079,14 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { .addGroup(jPanel6Layout.createSequentialGroup() .addContainerGap() .addComponent(pnlLeftArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel6Layout.createParallelGroup(GroupLayout.Alignment.CENTER) .addComponent(pnlFrontArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(pnlRearTurretArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(pnlRearArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(pnlTurretArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(pnlRotorArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlRightArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addContainerGap(30, Short.MAX_VALUE)) ); @@ -3094,7 +3099,7 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { .addComponent(pnlLeftArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel6Layout.createSequentialGroup() .addComponent(pnlFrontArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel6Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel6Layout.createSequentialGroup() .addGap(0, 0, Short.MAX_VALUE) @@ -3104,7 +3109,7 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { .addComponent(pnlRightArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(pnlRotorArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGap(0, 0, Short.MAX_VALUE))))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 11, GroupLayout.PREFERRED_SIZE) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 11, GroupLayout.PREFERRED_SIZE) .addComponent(pnlRearTurretArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(pnlRearArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) @@ -3185,9 +3190,9 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addGap(3, 3, 3) .addComponent(jLabel52)) .addComponent(cmbArmorType, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(chkBalanceLRArmor) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(chkBalanceFRArmor) .addGap(0, 0, 0) .addComponent(btnSetArmorTons) @@ -3266,7 +3271,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addComponent(pnlChassisMods, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(pnlMovement, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel5, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addGroup(pnlBasicSetupLayout.createParallelGroup(GroupLayout.Alignment.LEADING, false) .addComponent(pnlExperimental, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel11, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) @@ -3276,9 +3281,9 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addComponent(pnlSummary, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(pnlOmniInfo, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(pnlInformation, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel6, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addGroup(pnlBasicSetupLayout.createParallelGroup(GroupLayout.Alignment.LEADING, false) .addComponent(jPanel7, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel8, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) @@ -3290,24 +3295,24 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addGroup(pnlBasicSetupLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlBasicSetupLayout.createSequentialGroup() .addComponent(jPanel7, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel8, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGroup(pnlBasicSetupLayout.createSequentialGroup() .addComponent(pnlChassis, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlExperimental, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel11, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGroup(pnlBasicSetupLayout.createParallelGroup(GroupLayout.Alignment.TRAILING, false) .addGroup(pnlBasicSetupLayout.createSequentialGroup() .addComponent(pnlOmniInfo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlSummary, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlInformation, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGroup(GroupLayout.Alignment.LEADING, pnlBasicSetupLayout.createSequentialGroup() .addComponent(jPanel5, GroupLayout.PREFERRED_SIZE, 221, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlMovement, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlChassisMods, GroupLayout.PREFERRED_SIZE, 142, GroupLayout.PREFERRED_SIZE)) @@ -3784,7 +3789,7 @@ public void mouseClicked(java.awt.event.MouseEvent evt) { pnlSelected.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Selected Equipment")); pnlSelected.setMaximumSize(new java.awt.Dimension(250, 1000)); pnlSelected.setMinimumSize(new java.awt.Dimension(150, 250)); - pnlSelected.setLayout(new javax.swing.BoxLayout(pnlSelected, javax.swing.BoxLayout.LINE_AXIS)); + pnlSelected.setLayout(new BoxLayout(pnlSelected, BoxLayout.LINE_AXIS)); lstSelectedEquipment.setModel( new javax.swing.DefaultListModel()); lstSelectedEquipment.addListSelectionListener(new javax.swing.event.ListSelectionListener() { @@ -3852,7 +3857,7 @@ public void mouseClicked( MouseEvent e ) { scrBallistic.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); scrBallistic.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); scrBallistic.setViewportView(lstChooseBallistic); - pnlBallistic.setLayout(new javax.swing.BoxLayout(pnlBallistic, javax.swing.BoxLayout.Y_AXIS)); + pnlBallistic.setLayout(new BoxLayout(pnlBallistic, BoxLayout.Y_AXIS)); pnlBallistic.add(scrBallistic); lstChooseEnergy.setModel(new javax.swing.AbstractListModel() { @@ -3880,7 +3885,7 @@ public void mouseClicked( MouseEvent e ) { scrEnergy.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); scrEnergy.setViewportView(lstChooseEnergy); - pnlEnergy.setLayout(new javax.swing.BoxLayout(pnlEnergy, javax.swing.BoxLayout.Y_AXIS)); + pnlEnergy.setLayout(new BoxLayout(pnlEnergy, BoxLayout.Y_AXIS)); pnlEnergy.add(scrEnergy); lstChooseMissile.setModel(new javax.swing.AbstractListModel() { @@ -3906,7 +3911,7 @@ public void mouseClicked( MouseEvent e ) { scrMissile.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); scrMissile.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); scrMissile.setViewportView(lstChooseMissile); - pnlMissile.setLayout(new javax.swing.BoxLayout(pnlMissile, javax.swing.BoxLayout.Y_AXIS)); + pnlMissile.setLayout(new BoxLayout(pnlMissile, BoxLayout.Y_AXIS)); pnlMissile.add(scrMissile); lstChoosePhysical.setModel(new javax.swing.AbstractListModel() { @@ -3932,7 +3937,7 @@ public void mouseClicked( MouseEvent e ) { scrPhysical.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); scrPhysical.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); scrPhysical.setViewportView(lstChoosePhysical); - pnlPhysical.setLayout(new javax.swing.BoxLayout(pnlPhysical, javax.swing.BoxLayout.Y_AXIS)); + pnlPhysical.setLayout(new BoxLayout(pnlPhysical, BoxLayout.Y_AXIS)); pnlPhysical.add(scrPhysical); lstChooseEquipment.setModel(new javax.swing.AbstractListModel() { @@ -3958,7 +3963,7 @@ public void mouseClicked( MouseEvent e ) { scrEquipment.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); scrEquipment.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); scrEquipment.setViewportView(lstChooseEquipment); - pnlEquipmentChooser.setLayout(new javax.swing.BoxLayout(pnlEquipmentChooser, javax.swing.BoxLayout.Y_AXIS)); + pnlEquipmentChooser.setLayout(new BoxLayout(pnlEquipmentChooser, BoxLayout.Y_AXIS)); pnlEquipmentChooser.add(scrEquipment); lstChooseArtillery.setModel(new javax.swing.AbstractListModel() { @@ -3984,7 +3989,7 @@ public void mouseClicked( MouseEvent e ) { scrArtillery.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); scrArtillery.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); scrArtillery.setViewportView(lstChooseArtillery); - pnlArtillery.setLayout(new javax.swing.BoxLayout(pnlArtillery, javax.swing.BoxLayout.Y_AXIS)); + pnlArtillery.setLayout(new BoxLayout(pnlArtillery, BoxLayout.Y_AXIS)); pnlArtillery.add(scrArtillery); lstChooseAmmunition.setModel(new javax.swing.AbstractListModel() { @@ -4010,7 +4015,7 @@ public void mouseClicked( MouseEvent e ) { scrAmmo.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); scrAmmo.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); scrAmmo.setViewportView(lstChooseAmmunition); - pnlAmmunition.setLayout(new javax.swing.BoxLayout(pnlAmmunition, javax.swing.BoxLayout.Y_AXIS)); + pnlAmmunition.setLayout(new BoxLayout(pnlAmmunition, BoxLayout.Y_AXIS)); pnlAmmunition.add(scrAmmo); tbpWeaponChooser.addTab("Ballistic", pnlBallistic); @@ -4042,7 +4047,7 @@ public void mouseClicked( MouseEvent e ) { .addGroup(pnlEquipmentLayout.createSequentialGroup() .addComponent(pnlControls, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(pnlSpecials, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) .addGroup(pnlEquipmentLayout.createSequentialGroup() .addComponent(pnlEquipInfo, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)) ); @@ -4083,213 +4088,35 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pnlExport.add(btnExportMTF, gridBagConstraints); tbpFluffEditors.setTabPlacement(javax.swing.JTabbedPane.LEFT); - //tbpFluffEditors.setMaximumSize(new java.awt.Dimension(420, 455)); - //tbpFluffEditors.setMinimumSize(new java.awt.Dimension(420, 455)); + tbpFluffEditors.setMaximumSize(new java.awt.Dimension(1000, 1000)); + tbpFluffEditors.setMinimumSize(new java.awt.Dimension(420, 455)); //pnlOverview.setMaximumSize(new java.awt.Dimension(427, 485)); //pnlOverview.setMinimumSize(new java.awt.Dimension(427, 485)); - pnlOverview.setLayout(new javax.swing.BoxLayout(pnlOverview, javax.swing.BoxLayout.Y_AXIS)); + pnlOverview.setLayout(new BoxLayout(pnlOverview, BoxLayout.Y_AXIS)); tbpFluffEditors.addTab("Overview", pnlOverview); //pnlCapabilities.setMaximumSize(new java.awt.Dimension(427, 485)); //pnlCapabilities.setMinimumSize(new java.awt.Dimension(427, 485)); - pnlCapabilities.setLayout(new javax.swing.BoxLayout(pnlCapabilities, javax.swing.BoxLayout.Y_AXIS)); + pnlCapabilities.setLayout(new BoxLayout(pnlCapabilities, BoxLayout.Y_AXIS)); tbpFluffEditors.addTab("Capabilities", pnlCapabilities); - pnlHistory.setLayout(new javax.swing.BoxLayout(pnlHistory, javax.swing.BoxLayout.Y_AXIS)); + pnlHistory.setLayout(new BoxLayout(pnlHistory, BoxLayout.Y_AXIS)); tbpFluffEditors.addTab("Battle History", pnlHistory); - pnlDeployment.setLayout(new javax.swing.BoxLayout(pnlDeployment, javax.swing.BoxLayout.Y_AXIS)); + pnlDeployment.setLayout(new BoxLayout(pnlDeployment, BoxLayout.Y_AXIS)); tbpFluffEditors.addTab("Deployment", pnlDeployment); - pnlVariants.setLayout(new javax.swing.BoxLayout(pnlVariants, javax.swing.BoxLayout.Y_AXIS)); + pnlVariants.setLayout(new BoxLayout(pnlVariants, BoxLayout.Y_AXIS)); tbpFluffEditors.addTab("Variants", pnlVariants); - pnlNotables.setLayout(new javax.swing.BoxLayout(pnlNotables, javax.swing.BoxLayout.Y_AXIS)); + pnlNotables.setLayout(new BoxLayout(pnlNotables, BoxLayout.Y_AXIS)); tbpFluffEditors.addTab("Notables", pnlNotables); - pnlAdditionalFluff.setLayout(new javax.swing.BoxLayout(pnlAdditionalFluff, javax.swing.BoxLayout.Y_AXIS)); + pnlAdditionalFluff.setLayout(new BoxLayout(pnlAdditionalFluff, BoxLayout.Y_AXIS)); tbpFluffEditors.addTab("Additional", pnlAdditionalFluff); - pnlManufacturers.setLayout(new java.awt.GridBagLayout()); - - jLabel82.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N - jLabel82.setText("Manufacturer Information"); - jLabel82.setMaximumSize(new java.awt.Dimension(175, 15)); - jLabel82.setMinimumSize(new java.awt.Dimension(175, 15)); - jLabel82.setPreferredSize(new java.awt.Dimension(175, 15)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 0; - gridBagConstraints.gridwidth = 2; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; - gridBagConstraints.insets = new java.awt.Insets(5, 10, 0, 0); - pnlManufacturers.add(jLabel82, gridBagConstraints); - - jLabel83.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - jLabel83.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); - jLabel83.setText("Manufacturing Company:"); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; - gridBagConstraints.insets = new java.awt.Insets(10, 10, 0, 0); - pnlManufacturers.add(jLabel83, gridBagConstraints); - - jLabel84.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - jLabel84.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); - jLabel84.setText("Location:"); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 2; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.ipadx = 76; - gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; - gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); - pnlManufacturers.add(jLabel84, gridBagConstraints); - - jLabel85.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - jLabel85.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); - jLabel85.setText("Engine Manufacturer:"); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 4; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.ipadx = 17; - gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; - gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); - pnlManufacturers.add(jLabel85, gridBagConstraints); - - jLabel86.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - jLabel86.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); - jLabel86.setText("Armor Model:"); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 5; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.ipadx = 56; - gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; - gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); - pnlManufacturers.add(jLabel86, gridBagConstraints); - - jLabel87.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - jLabel87.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); - jLabel87.setText("Chassis Model:"); - jLabel87.setEnabled(false); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 3; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.ipadx = 47; - gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; - gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); - pnlManufacturers.add(jLabel87, gridBagConstraints); - - jLabel88.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - jLabel88.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); - jLabel88.setText("Communications System:"); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 7; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; - gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); - pnlManufacturers.add(jLabel88, gridBagConstraints); - - jLabel89.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - jLabel89.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); - jLabel89.setText("Targeting and Tracking:"); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 8; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.ipadx = 7; - gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; - gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); - pnlManufacturers.add(jLabel89, gridBagConstraints); - - txtManufacturer.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 1; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; - gridBagConstraints.insets = new java.awt.Insets(10, 2, 0, 11); - pnlManufacturers.add(txtManufacturer, gridBagConstraints); - MouseListener mlManufacturer = new MouseAdapter() { - public void mouseReleased( MouseEvent e ) { - if( e.isPopupTrigger() ) { - mnuFluff.show( e.getComponent(), e.getX(), e.getY() ); - } - } - public void mousePressed( MouseEvent e ) { - if( e.isPopupTrigger() ) { - mnuFluff.show( e.getComponent(), e.getX(), e.getY() ); - } - } - }; - txtManufacturer.addMouseListener( mlManufacturer ); - - txtEngineManufacturer.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 4; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; - gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 11); - pnlManufacturers.add(txtEngineManufacturer, gridBagConstraints); - MouseListener mlEngineManufacturer = new MouseAdapter() { - public void mouseReleased( MouseEvent e ) { - if( e.isPopupTrigger() ) { - mnuFluff.show( e.getComponent(), e.getX(), e.getY() ); - } - } - public void mousePressed( MouseEvent e ) { - if( e.isPopupTrigger() ) { - mnuFluff.show( e.getComponent(), e.getX(), e.getY() ); - } - } - }; - txtEngineManufacturer.addMouseListener( mlEngineManufacturer ); - - txtArmorModel.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 5; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; - gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 11); - pnlManufacturers.add(txtArmorModel, gridBagConstraints); - MouseListener mlArmorModel = new MouseAdapter() { - public void mouseReleased( MouseEvent e ) { - if( e.isPopupTrigger() ) { - mnuFluff.show( e.getComponent(), e.getX(), e.getY() ); - } - } - public void mousePressed( MouseEvent e ) { - if( e.isPopupTrigger() ) { - mnuFluff.show( e.getComponent(), e.getX(), e.getY() ); - } - } - }; - txtArmorModel.addMouseListener( mlArmorModel ); - - txtChassisModel.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - txtChassisModel.setEnabled(false); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 3; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; - gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 11); - pnlManufacturers.add(txtChassisModel, gridBagConstraints); - MouseListener mlChassisModel = new MouseAdapter() { + MouseListener showFluff = new MouseAdapter() { public void mouseReleased( MouseEvent e ) { if( e.isPopupTrigger() ) { mnuFluff.show( e.getComponent(), e.getX(), e.getY() ); @@ -4301,82 +4128,42 @@ public void mousePressed( MouseEvent e ) { } } }; - txtChassisModel.addMouseListener( mlChassisModel ); - txtCommSystem.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 7; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; - gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 11); - pnlManufacturers.add(txtCommSystem, gridBagConstraints); - MouseListener mlCommSystem = new MouseAdapter() { - public void mouseReleased( MouseEvent e ) { - if( e.isPopupTrigger() ) { - mnuFluff.show( e.getComponent(), e.getX(), e.getY() ); - } - } - public void mousePressed( MouseEvent e ) { - if( e.isPopupTrigger() ) { - mnuFluff.show( e.getComponent(), e.getX(), e.getY() ); - } - } - }; - txtCommSystem.addMouseListener( mlCommSystem ); + lblManuInfo.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N + lblManuInfo.setText("Manufacturer Information"); - txtTNTSystem.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 8; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; - gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 11); - pnlManufacturers.add(txtTNTSystem, gridBagConstraints); - MouseListener mlTNTSystem = new MouseAdapter() { - public void mouseReleased( MouseEvent e ) { - if( e.isPopupTrigger() ) { - mnuFluff.show( e.getComponent(), e.getX(), e.getY() ); - } - } - public void mousePressed( MouseEvent e ) { - if( e.isPopupTrigger() ) { - mnuFluff.show( e.getComponent(), e.getX(), e.getY() ); - } - } - }; - txtTNTSystem.addMouseListener( mlTNTSystem ); + pnlManufacturers.setLayout(new BoxLayout(pnlManufacturers, BoxLayout.Y_AXIS)); + pnlManufacturers.setPreferredSize(new Dimension(400, 100)); + pnlManufacturers.add(lblManuInfo); + pnlManufacturers.add(DataEntry("Manufacturing Company:", txtManufacturer, showFluff)); + pnlManufacturers.add(DataEntry("Location:", txtManufacturerLocation, showFluff)); + pnlManufacturers.add(DataEntry("Chassis Model:", txtChassisModel, showFluff)); + pnlManufacturers.add(DataEntry("Engine Manufacturer:", txtEngineManufacturer, showFluff)); + pnlManufacturers.add(DataEntry("Armor Model:", txtArmorModel, showFluff)); + pnlManufacturers.add(DataEntry("Communications System:", txtCommSystem, showFluff)); + pnlManufacturers.add(DataEntry("Targeting and Tracking:", txtTNTSystem, showFluff)); pnlWeaponsManufacturers.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Weapons Manufacturers", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 0, 11))); // NOI18N pnlWeaponsManufacturers.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - pnlWeaponsManufacturers.setMinimumSize(new java.awt.Dimension(315, 260)); - pnlWeaponsManufacturers.setLayout(new java.awt.GridBagLayout()); + pnlWeaponsManufacturers.setMinimumSize(new java.awt.Dimension(200, 200)); + pnlWeaponsManufacturers.setLayout(new BoxLayout(pnlWeaponsManufacturers, BoxLayout.Y_AXIS)); chkIndividualWeapons.setText("Assign manufacturers individually"); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(4, 10, 4, 0); - pnlWeaponsManufacturers.add(chkIndividualWeapons, gridBagConstraints); - - scpWeaponManufacturers.setPreferredSize(new java.awt.Dimension(452, 392)); + pnlWeaponsManufacturers.add(chkIndividualWeapons); tblWeaponManufacturers.setModel(new javax.swing.table.DefaultTableModel( - new Object [][] { - {null, null}, - {null, null}, - {null, null}, - {null, null} - }, - new String [] { - "Weapon", "Manufacturer" - } + new Object [][] { + {null, null}, + {null, null}, + {null, null}, + {null, null} + }, + new String [] { + "Weapon", "Manufacturer" + } ) { boolean[] canEdit = new boolean [] { - false, true + false, true }; public boolean isCellEditable(int rowIndex, int columnIndex) { @@ -4384,85 +4171,13 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { } }); scpWeaponManufacturers.setViewportView(tblWeaponManufacturers); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.ipadx = 280; - gridBagConstraints.ipady = 180; - pnlWeaponsManufacturers.add(scpWeaponManufacturers, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 9; - gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; - gridBagConstraints.insets = new java.awt.Insets(2, 10, 2, 10); - pnlManufacturers.add(pnlWeaponsManufacturers, gridBagConstraints); - - txtManufacturerLocation.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 2; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; - gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 11); - pnlManufacturers.add(txtManufacturerLocation, gridBagConstraints); - MouseListener mlManufacturerLocation = new MouseAdapter() { - public void mouseReleased( MouseEvent e ) { - if( e.isPopupTrigger() ) { - mnuFluff.show( e.getComponent(), e.getX(), e.getY() ); - } - } - public void mousePressed( MouseEvent e ) { - if( e.isPopupTrigger() ) { - mnuFluff.show( e.getComponent(), e.getX(), e.getY() ); - } - } - }; - txtManufacturerLocation.addMouseListener( mlManufacturerLocation ); - - jLabel90.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - jLabel90.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); - jLabel90.setText("Jump Jet Model:"); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 6; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.ipadx = 44; - gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; - gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); - pnlManufacturers.add(jLabel90, gridBagConstraints); - - txtJJModel.setEnabled(false); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 6; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; - gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 11); - pnlManufacturers.add(txtJJModel, gridBagConstraints); - MouseListener mlJJModel = new MouseAdapter() { - public void mouseReleased( MouseEvent e ) { - if( e.isPopupTrigger() ) { - mnuFluff.show( e.getComponent(), e.getX(), e.getY() ); - } - } - public void mousePressed( MouseEvent e ) { - if( e.isPopupTrigger() ) { - mnuFluff.show( e.getComponent(), e.getX(), e.getY() ); - } - } - }; - txtJJModel.addMouseListener( mlJJModel ); + pnlWeaponsManufacturers.add(scpWeaponManufacturers); + pnlManufacturers.add(pnlWeaponsManufacturers); tbpFluffEditors.addTab("Manufacturers", pnlManufacturers); lblBattleMechQuirks.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N lblBattleMechQuirks.setText("Quirks"); - lblBattleMechQuirks.setMaximumSize(new java.awt.Dimension(175, 15)); - lblBattleMechQuirks.setMinimumSize(new java.awt.Dimension(175, 15)); - lblBattleMechQuirks.setPreferredSize(new java.awt.Dimension(175, 15)); tblQuirks.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { @@ -4519,9 +4234,9 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pnlQuirksLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlQuirksLayout.createSequentialGroup() .addComponent(lblBattleMechQuirks, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(scpQuirkTable, GroupLayout.PREFERRED_SIZE, 389, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(btnAddQuirk) .addContainerGap()) ); @@ -4630,12 +4345,11 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pnlImage.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Fluff Image", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 0, 11))); // NOI18N lblFluffImage.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblFluffImage.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); lblFluffImage.setMaximumSize(new java.awt.Dimension(375, 260)); lblFluffImage.setMinimumSize(new java.awt.Dimension(375, 260)); lblFluffImage.setPreferredSize(new java.awt.Dimension(350, 350)); - jPanel1.setLayout(new java.awt.GridBagLayout()); + pnlImageButtons.setLayout(new java.awt.GridBagLayout()); btnLoadImage.setText("Load Image"); btnLoadImage.addActionListener(new java.awt.event.ActionListener() { @@ -4643,7 +4357,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnLoadImageActionPerformed(evt); } }); - jPanel1.add(btnLoadImage, new GridBagConstraints()); + pnlImageButtons.add(btnLoadImage, new GridBagConstraints()); btnClearImage.setText("Clear Image"); btnClearImage.addActionListener(new java.awt.event.ActionListener() { @@ -4654,20 +4368,20 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; - jPanel1.add(btnClearImage, gridBagConstraints); + pnlImageButtons.add(btnClearImage, gridBagConstraints); GroupLayout pnlImageLayout = new GroupLayout(pnlImage); pnlImage.setLayout(pnlImageLayout); pnlImageLayout.setHorizontalGroup( pnlImageLayout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addComponent(jPanel1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(pnlImageButtons, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(lblFluffImage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) ); pnlImageLayout.setVerticalGroup( pnlImageLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlImageLayout.createSequentialGroup() - .addComponent(jPanel1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addGap(4, 4, 4) + .addComponent(pnlImageButtons, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(lblFluffImage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); @@ -4679,9 +4393,9 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addGroup(pnlFluffLayout.createSequentialGroup() .addContainerGap() .addComponent(pnlImage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(tbpFluffEditors, GroupLayout.DEFAULT_SIZE, 503, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addComponent(tbpFluffEditors, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addGroup(pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING, false) .addComponent(pnlBFStats, GroupLayout.PREFERRED_SIZE, 378, GroupLayout.PREFERRED_SIZE) @@ -4690,19 +4404,19 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addContainerGap()) ); pnlFluffLayout.setVerticalGroup( - pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING, true) .addGroup(pnlFluffLayout.createSequentialGroup() .addContainerGap() .addGroup(pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING, true) .addGroup(pnlFluffLayout.createSequentialGroup() .addComponent(pnlBFStats, GroupLayout.PREFERRED_SIZE, 167, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel10, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(pnlExport, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addComponent(tbpFluffEditors, GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addComponent(pnlExport, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)) + .addComponent(tbpFluffEditors, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE) .addComponent(pnlImage, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addContainerGap(40, Short.MAX_VALUE)) + .addContainerGap()) ); tbpMainTabPane.addTab("Fluff and BattleForce", pnlFluff); @@ -4982,6 +4696,31 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pack(); } + private JPanel DataEntry(String label, JTextField input, MouseListener listener) { + JPanel entry = new JPanel(); + entry.setLayout(new BoxLayout(entry, BoxLayout.X_AXIS)); + + JLabel dataLabel = new JLabel(); + dataLabel.setText(label); + dataLabel.setHorizontalAlignment(SwingConstants.RIGHT); + dataLabel.setPreferredSize(new Dimension(150, 20)); + + input.setFont(new java.awt.Font("Arial", 0, 11)); + input.addMouseListener(listener); + + entry.add(dataLabel); + entry.add(input); + + return entry; + } + private GridBagConstraints placeItem(int x, int y, int top, int left, int bottom, int right) { + GridBagConstraints gridBagConstraints = new GridBagConstraints(); + gridBagConstraints.gridx = x; + gridBagConstraints.gridy = y; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; + gridBagConstraints.insets = new java.awt.Insets(top, left, bottom, right); + return gridBagConstraints; + } private void RefreshSummary() { // refreshes the display completely using info from the mech. txtSumEngTons.setText( "" + CurVee.GetEngineTonnage() ); @@ -6111,6 +5850,7 @@ private void GetNewVee() { //Reset Manufacturers tblWeaponManufacturers.setModel( new javax.swing.table.AbstractTableModel() { + @Override public String getColumnName( int col ) { if( col == 1 ) { @@ -6119,7 +5859,7 @@ public String getColumnName( int col ) { return "Item Name"; } } - public int getRowCount() { return CurVee.GetLoadout().GetEquipment().size(); } + public int getRowCount() { return CurVee.GetLoadout().GetEquipment().size() + 5; } public int getColumnCount() { return 2; } public Object getValueAt( int row, int col ) { Object o = CurVee.GetLoadout().GetEquipment().get( row ); @@ -6947,6 +6687,7 @@ public void LoadVehicleIntoGUI() { media.blankLogo(lblFluffImage); media.setLogo(lblFluffImage, media.DetermineMatchingImage(CurVee.GetName(), CurVee.GetModel(), CurVee.GetSSWImage())); + quirks = CurVee.GetQuirks(); Overview.SetText( CurVee.getOverview() ); Capabilities.SetText( CurVee.getCapabilities() ); History.SetText( CurVee.getHistory() ); @@ -7515,12 +7256,9 @@ private void btnExportMTFIconActionPerformed(java.awt.event.ActionEvent evt) { } private void btnAddQuirkActionPerformed(java.awt.event.ActionEvent evt) { - /* - * dlgQuirks qmanage = new dlgQuirks(this, true, data, quirks); - * qmanage.setLocationRelativeTo(this); qmanage.setVisible(true); - * tblQuirks.setModel(new tbQuirks(quirks)); - * - */ + dlgQuirks qmanage = new dlgQuirks(this, true, data, quirks); + qmanage.setLocationRelativeTo(this); qmanage.setVisible(true); + tblQuirks.setModel(new tbQuirks(quirks)); } private void btnExportMTFActionPerformed(java.awt.event.ActionEvent evt) { @@ -9800,7 +9538,7 @@ private void FixJJSpinnerModel() { private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel80; private javax.swing.JLabel jLabel81; - private javax.swing.JLabel jLabel82; + private javax.swing.JLabel lblManuInfo; private javax.swing.JLabel jLabel83; private javax.swing.JLabel jLabel84; private javax.swing.JLabel jLabel85; @@ -9815,7 +9553,7 @@ private void FixJJSpinnerModel() { private javax.swing.JLabel jLabel93; private javax.swing.JMenuBar jMenuBar1; private javax.swing.JMenuItem jMenuItem1; - private javax.swing.JPanel jPanel1; + private javax.swing.JPanel pnlImageButtons; private javax.swing.JPanel jPanel10; private javax.swing.JPanel jPanel11; private javax.swing.JPanel jPanel5; @@ -9988,6 +9726,7 @@ private void FixJJSpinnerModel() { private javax.swing.JPanel pnlWeaponsManufacturers; private javax.swing.JScrollPane scpQuirkTable; private javax.swing.JScrollPane scpWeaponManufacturers; + private javax.swing.JScrollPane scpManufacturers; private javax.swing.JSpinner spnCruiseMP; private javax.swing.JSpinner spnFrontArmor; private javax.swing.JSpinner spnHeatSinks; From 98fa79e203b311019a466a16858b51031bb2af51 Mon Sep 17 00:00:00 2001 From: George Blouin Date: Sat, 11 Feb 2023 15:14:51 -0700 Subject: [PATCH 079/199] Add Quirk button opens dialog --- saw/src/main/java/saw/gui/frmVeeWide.java | 13 +- .../main/java/components/CombatVehicle.java | 9 + sswlib/src/main/java/dialog/dlgQuirks.form | 196 +++++++++++++++ sswlib/src/main/java/dialog/dlgQuirks.java | 237 ++++++++++++++++++ 4 files changed, 448 insertions(+), 7 deletions(-) create mode 100644 sswlib/src/main/java/dialog/dlgQuirks.form create mode 100644 sswlib/src/main/java/dialog/dlgQuirks.java diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 7f16b73d..915bd276 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -37,9 +37,11 @@ import battleforce.BattleForceStats; import common.*; import components.*; +import dialog.dlgQuirks; import dialog.frmForce; import filehandlers.*; import gui.TextPane; +import list.view.tbQuirks; import saw.filehandlers.HTMLWriter; import states.ifState; import visitors.VArmorSetPatchworkLocation; @@ -89,7 +91,7 @@ public final class frmVeeWide extends javax.swing.JFrame implements java.awt.dat private ImageTracker imageTracker = new ImageTracker(); public dlgOpen dOpen = new dlgOpen(this, true); public frmForce dForce = new frmForce(this, imageTracker); - + public ArrayList quirks = new ArrayList(); TextPane Overview = new TextPane(); TextPane Capabilities = new TextPane(); TextPane Deployment = new TextPane(); @@ -7669,12 +7671,9 @@ private void btnExportMTFIconActionPerformed(java.awt.event.ActionEvent evt) { } private void btnAddQuirkActionPerformed(java.awt.event.ActionEvent evt) { - /* - * dlgQuirks qmanage = new dlgQuirks(this, true, data, quirks); - * qmanage.setLocationRelativeTo(this); qmanage.setVisible(true); - * tblQuirks.setModel(new tbQuirks(quirks)); - * - */ + dlgQuirks qmanage = new dlgQuirks(this, true, data, quirks); + qmanage.setLocationRelativeTo(this); qmanage.setVisible(true); + tblQuirks.setModel(new tbQuirks(quirks)); } private void btnExportMTFActionPerformed(java.awt.event.ActionEvent evt) { diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index cfddc5b8..6b167925 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -105,6 +105,7 @@ public class CombatVehicle implements ifUnit, ifBattleforce { private CVArmor CurArmor = new CVArmor( this ); private Hashtable Lookup = new Hashtable(); private ArrayList MechMods = new ArrayList(); + private ArrayList Quirks = new ArrayList(); private static AvailableCode OmniAvailable = new AvailableCode( AvailableCode.TECH_BOTH ), DualTurretAC = new AvailableCode( AvailableCode.TECH_BOTH ), ChinTurretAC = new AvailableCode( AvailableCode.TECH_BOTH ), @@ -1054,6 +1055,14 @@ public void setModel(String Model) { this.Model = Model; } + public ArrayList GetQuirks() { + return Quirks; + } + public void SetQuirks (ArrayList q) { + Quirks = q; + + SetChanged( true ); + } public String getOverview() { return Overview; } diff --git a/sswlib/src/main/java/dialog/dlgQuirks.form b/sswlib/src/main/java/dialog/dlgQuirks.form new file mode 100644 index 00000000..52d012f7 --- /dev/null +++ b/sswlib/src/main/java/dialog/dlgQuirks.form @@ -0,0 +1,196 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + <Editor/> + <Renderer/> + </Column> + <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true"> + <Title/> + <Editor/> + <Renderer/> + </Column> + <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true"> + <Title/> + <Editor/> + <Renderer/> + </Column> + <Column maxWidth="-1" minWidth="-1" prefWidth="-1" resizable="true"> + <Title/> + <Editor/> + <Renderer/> + </Column> + </TableColumnModel> + </Property> + <Property name="tableHeader" type="javax.swing.table.JTableHeader" editor="org.netbeans.modules.form.editors2.JTableHeaderEditor"> + <TableHeader reorderingAllowed="true" resizingAllowed="true"/> + </Property> + </Properties> + <Events> + <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="tblListMouseClicked"/> + </Events> + </Component> + </SubComponents> + </Container> + <Container class="javax.swing.JScrollPane" name="jScrollPane2"> + + <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/> + <SubComponents> + <Component class="javax.swing.JTable" name="tblSelected"> + <Properties> + <Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.editors2.TableModelEditor"> + <Table columnCount="4" rowCount="4"> + <Column editable="true" title="Title 1" type="java.lang.Object"/> + <Column editable="true" title="Title 2" type="java.lang.Object"/> + <Column editable="true" title="Title 3" type="java.lang.Object"/> + <Column editable="true" title="Title 4" type="java.lang.Object"/> + </Table> + </Property> + </Properties> + <Events> + <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="tblSelectedMouseClicked"/> + </Events> + </Component> + </SubComponents> + </Container> + <Component class="javax.swing.JButton" name="btnAdd"> + <Properties> + <Property name="text" type="java.lang.String" value=">>"/> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnAddActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JButton" name="btnRemove"> + <Properties> + <Property name="text" type="java.lang.String" value="<<"/> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnRemoveActionPerformed"/> + </Events> + </Component> + <Component class="javax.swing.JButton" name="btnDone"> + <Properties> + <Property name="text" type="java.lang.String" value="Done"/> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnDoneActionPerformed"/> + </Events> + </Component> + </SubComponents> +</Form> diff --git a/sswlib/src/main/java/dialog/dlgQuirks.java b/sswlib/src/main/java/dialog/dlgQuirks.java new file mode 100644 index 00000000..be9bd37e --- /dev/null +++ b/sswlib/src/main/java/dialog/dlgQuirks.java @@ -0,0 +1,237 @@ +/* +Copyright (c) 2008~2009, George Blouin Jr (george.blouin@gmail.com) +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Justin R. Bengtson nor the names of contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +package dialog; + +import common.DataFactory; +import components.Quirk; +import list.view.tbQuirks; + +import java.util.ArrayList; + +public class dlgQuirks extends javax.swing.JDialog { + private DataFactory list; + private ArrayList<Quirk> existingQuirks; + private tbQuirks tblQ; + + /** Creates new form dlgQuirks */ + public dlgQuirks(java.awt.Frame parent, boolean modal, DataFactory quirks, ArrayList<Quirk> currentQuirks) { + super(parent, modal); + initComponents(); + + list = quirks; + existingQuirks = currentQuirks; + + tblQ = new tbQuirks(currentQuirks); + tblQ.setupTable(tblSelected); + tblList.setModel(new tbQuirks(list.GetQuirks())); + } + + private void Refresh() + { + tblQ.setupTable(tblSelected); + tblQ.fireTableChanged(null); + } + + /** This method is called from within the constructor to + * initialize the form. + * WARNING: Do NOT modify this code. The content of this method is + * always regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents + private void initComponents() { + + lblBattleMechQuirks = new javax.swing.JLabel(); + jScrollPane1 = new javax.swing.JScrollPane(); + tblList = new javax.swing.JTable(); + jScrollPane2 = new javax.swing.JScrollPane(); + tblSelected = new javax.swing.JTable(); + btnAdd = new javax.swing.JButton(); + btnRemove = new javax.swing.JButton(); + btnDone = new javax.swing.JButton(); + + setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); + + lblBattleMechQuirks.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N + lblBattleMechQuirks.setText("BattleMech Quirks"); + lblBattleMechQuirks.setMaximumSize(new java.awt.Dimension(175, 15)); + lblBattleMechQuirks.setMinimumSize(new java.awt.Dimension(175, 15)); + lblBattleMechQuirks.setPreferredSize(new java.awt.Dimension(175, 15)); + + tblList.setModel(new javax.swing.table.DefaultTableModel( + new Object [][] { + {null, null, null, null}, + {null, null, null, null}, + {null, null, null, null}, + {null, null, null, null} + }, + new String [] { + "Title 1", "Title 2", "Title 3", "Title 4" + } + )); + tblList.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseClicked(java.awt.event.MouseEvent evt) { + tblListMouseClicked(evt); + } + }); + jScrollPane1.setViewportView(tblList); + + tblSelected.setModel(new javax.swing.table.DefaultTableModel( + new Object [][] { + {null, null, null, null}, + {null, null, null, null}, + {null, null, null, null}, + {null, null, null, null} + }, + new String [] { + "Title 1", "Title 2", "Title 3", "Title 4" + } + )); + tblSelected.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseClicked(java.awt.event.MouseEvent evt) { + tblSelectedMouseClicked(evt); + } + }); + jScrollPane2.setViewportView(tblSelected); + + btnAdd.setText(">>"); + btnAdd.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnAddActionPerformed(evt); + } + }); + + btnRemove.setText("<<"); + btnRemove.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnRemoveActionPerformed(evt); + } + }); + + btnDone.setText("Done"); + btnDone.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnDoneActionPerformed(evt); + } + }); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 254, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(btnRemove) + .addComponent(btnAdd)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 13, Short.MAX_VALUE) + .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 245, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createSequentialGroup() + .addComponent(lblBattleMechQuirks, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(0, 0, Short.MAX_VALUE)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addGap(0, 0, Short.MAX_VALUE) + .addComponent(btnDone))) + .addContainerGap()) + ); + + layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jScrollPane1, jScrollPane2}); + + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(lblBattleMechQuirks, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(0, 0, 0) + .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 222, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(btnDone) + .addContainerGap()) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addComponent(btnAdd) + .addGap(26, 26, 26) + .addComponent(btnRemove) + .addGap(111, 111, 111)))) + ); + + pack(); + }// </editor-fold>//GEN-END:initComponents + + private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAddActionPerformed + Quirk q = (Quirk)((tbQuirks) tblList.getModel()).get( tblList.convertRowIndexToModel( tblList.getSelectedRow() )); + tblQ.quirklist.add(q); + Refresh(); + }//GEN-LAST:event_btnAddActionPerformed + + private void btnRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRemoveActionPerformed + Quirk q = (Quirk)((tbQuirks) tblSelected.getModel()).get( tblSelected.convertRowIndexToModel( tblSelected.getSelectedRow() )); + tblQ.quirklist.remove(q); + Refresh(); + }//GEN-LAST:event_btnRemoveActionPerformed + + private void btnDoneActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDoneActionPerformed + setVisible( false ); + }//GEN-LAST:event_btnDoneActionPerformed + + private void tblListMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tblListMouseClicked + if ( evt.getClickCount() == 2 ) { + btnAddActionPerformed(null); + } + }//GEN-LAST:event_tblListMouseClicked + + private void tblSelectedMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tblSelectedMouseClicked + if ( evt.getClickCount() == 2 ) { + btnRemoveActionPerformed(null); + } + }//GEN-LAST:event_tblSelectedMouseClicked + + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JButton btnAdd; + private javax.swing.JButton btnDone; + private javax.swing.JButton btnRemove; + private javax.swing.JScrollPane jScrollPane1; + private javax.swing.JScrollPane jScrollPane2; + private javax.swing.JLabel lblBattleMechQuirks; + private javax.swing.JTable tblList; + private javax.swing.JTable tblSelected; + // End of variables declaration//GEN-END:variables + +} From 643a337e8a70457a32a99415486e8a83fd85923d Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 11 Feb 2023 15:15:17 -0700 Subject: [PATCH 080/199] Add large screen option --- saw/src/main/java/saw/Constants.java | 3 ++- saw/src/main/java/saw/gui/dlgPrefs.java | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/saw/src/main/java/saw/Constants.java b/saw/src/main/java/saw/Constants.java index 41e22d54..35d808b4 100644 --- a/saw/src/main/java/saw/Constants.java +++ b/saw/src/main/java/saw/Constants.java @@ -48,7 +48,8 @@ public class Constants { ART4_ART_5 = 2, ART4_APOLLO = 3; public final static int SCREEN_SIZE_NORMAL = 0, - SCREEN_SIZE_WIDE_1280 = 1; + SCREEN_SIZE_WIDE_1280 = 1, + SCREEN_SIZE_WIDE_1600 = 2; public static String GetVersion() { Properties props = new Properties(); diff --git a/saw/src/main/java/saw/gui/dlgPrefs.java b/saw/src/main/java/saw/gui/dlgPrefs.java index 3f8ed6b4..7f1408de 100644 --- a/saw/src/main/java/saw/gui/dlgPrefs.java +++ b/saw/src/main/java/saw/gui/dlgPrefs.java @@ -127,6 +127,9 @@ private void SetState() { case saw.Constants.SCREEN_SIZE_WIDE_1280: rdoWidescreen.setSelected( true ); break; + case saw.Constants.SCREEN_SIZE_WIDE_1600: + rdoLargescreen.setSelected(true); + break; default: rdoNormalSize.setSelected( true ); break; @@ -193,6 +196,8 @@ private void SaveState() { Prefs.putInt( "SSWScreenSize", saw.Constants.SCREEN_SIZE_NORMAL ); } else if( rdoWidescreen.isSelected() ) { Prefs.putInt( "SSWScreenSize", saw.Constants.SCREEN_SIZE_WIDE_1280 ); + } else if (rdoLargescreen.isSelected()) { + Prefs.putInt( "SSWScreenSize", saw.Constants.SCREEN_SIZE_WIDE_1600); } } @@ -349,6 +354,7 @@ private void initComponents() { jPanel14 = new javax.swing.JPanel(); rdoNormalSize = new javax.swing.JRadioButton(); rdoWidescreen = new javax.swing.JRadioButton(); + rdoLargescreen = new javax.swing.JRadioButton(); lblScreenSizeNotice = new javax.swing.JLabel(); jPanel9 = new javax.swing.JPanel(); btnSave = new javax.swing.JButton(); @@ -1196,11 +1202,19 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; jPanel14.add(rdoWidescreen, gridBagConstraints); - lblScreenSizeNotice.setText("Change requires restart of SSW."); + btgScreenSize.add(rdoLargescreen); + rdoLargescreen.setText("Large Screen (1600 wide)"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + jPanel14.add(rdoLargescreen, gridBagConstraints); + + lblScreenSizeNotice.setText("Change requires restart of SSW."); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 3; + gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; jPanel14.add(lblScreenSizeNotice, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); @@ -1719,6 +1733,7 @@ private void btnDefaultImagePathActionPerformed(java.awt.event.ActionEvent evt) private javax.swing.JRadioButton rdoExportSortOut; private javax.swing.JRadioButton rdoNormalSize; private javax.swing.JRadioButton rdoWidescreen; + private javax.swing.JRadioButton rdoLargescreen; private javax.swing.JTextField txtAmmoExportName; private javax.swing.JTextField txtAmmoPrintName; private javax.swing.JTextField txtCTRArmor; From 29f36cb2eb9261d8d5bc08e7089a123801ef9f7e Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 11 Feb 2023 15:19:08 -0700 Subject: [PATCH 081/199] Make Quirk Dialog available in SSWLib --- sswlib/src/main/java/dialog/dlgQuirks.form | 2 +- sswlib/src/main/java/dialog/dlgQuirks.java | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/sswlib/src/main/java/dialog/dlgQuirks.form b/sswlib/src/main/java/dialog/dlgQuirks.form index 52d012f7..633563f0 100644 --- a/sswlib/src/main/java/dialog/dlgQuirks.form +++ b/sswlib/src/main/java/dialog/dlgQuirks.form @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> - + <Form version="1.5" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JDialogFormInfo"> <Properties> <Property name="defaultCloseOperation" type="int" value="2"/> diff --git a/sswlib/src/main/java/dialog/dlgQuirks.java b/sswlib/src/main/java/dialog/dlgQuirks.java index be9bd37e..a41f62e2 100644 --- a/sswlib/src/main/java/dialog/dlgQuirks.java +++ b/sswlib/src/main/java/dialog/dlgQuirks.java @@ -194,33 +194,33 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pack(); }// </editor-fold>//GEN-END:initComponents - private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAddActionPerformed + private void btnAddActionPerformed(java.awt.event.ActionEvent evt) { Quirk q = (Quirk)((tbQuirks) tblList.getModel()).get( tblList.convertRowIndexToModel( tblList.getSelectedRow() )); tblQ.quirklist.add(q); Refresh(); - }//GEN-LAST:event_btnAddActionPerformed + } - private void btnRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRemoveActionPerformed + private void btnRemoveActionPerformed(java.awt.event.ActionEvent evt) { Quirk q = (Quirk)((tbQuirks) tblSelected.getModel()).get( tblSelected.convertRowIndexToModel( tblSelected.getSelectedRow() )); tblQ.quirklist.remove(q); Refresh(); - }//GEN-LAST:event_btnRemoveActionPerformed + } - private void btnDoneActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDoneActionPerformed + private void btnDoneActionPerformed(java.awt.event.ActionEvent evt) { setVisible( false ); - }//GEN-LAST:event_btnDoneActionPerformed + } - private void tblListMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tblListMouseClicked + private void tblListMouseClicked(java.awt.event.MouseEvent evt) { if ( evt.getClickCount() == 2 ) { btnAddActionPerformed(null); } - }//GEN-LAST:event_tblListMouseClicked + } - private void tblSelectedMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tblSelectedMouseClicked + private void tblSelectedMouseClicked(java.awt.event.MouseEvent evt) { if ( evt.getClickCount() == 2 ) { btnRemoveActionPerformed(null); } - }//GEN-LAST:event_tblSelectedMouseClicked + } // Variables declaration - do not modify//GEN-BEGIN:variables From 11790eb88ac73e0fff274fc59e0e6d2100128c89 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 11 Feb 2023 15:20:25 -0700 Subject: [PATCH 082/199] Unintended Addition These are moved into saw-quirks --- saw/src/main/java/saw/gui/frmVeeWide.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 58c995de..169d3051 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -37,11 +37,9 @@ import battleforce.BattleForceStats; import common.*; import components.*; -import dialog.dlgQuirks; import dialog.frmForce; import filehandlers.*; import gui.TextPane; -import list.view.tbQuirks; import saw.filehandlers.HTMLWriter; import states.ifState; import visitors.VArmorSetPatchworkLocation; @@ -92,7 +90,7 @@ public final class frmVeeWide extends javax.swing.JFrame implements java.awt.dat private ImageTracker imageTracker = new ImageTracker(); public dlgOpen dOpen = new dlgOpen(this, true); public frmForce dForce = new frmForce(this, imageTracker); - public ArrayList<Quirk> quirks = new ArrayList<Quirk>(); + TextPane Overview = new TextPane(); TextPane Capabilities = new TextPane(); TextPane Deployment = new TextPane(); @@ -6687,7 +6685,6 @@ public void LoadVehicleIntoGUI() { media.blankLogo(lblFluffImage); media.setLogo(lblFluffImage, media.DetermineMatchingImage(CurVee.GetName(), CurVee.GetModel(), CurVee.GetSSWImage())); - quirks = CurVee.GetQuirks(); Overview.SetText( CurVee.getOverview() ); Capabilities.SetText( CurVee.getCapabilities() ); History.SetText( CurVee.getHistory() ); @@ -7256,9 +7253,9 @@ private void btnExportMTFIconActionPerformed(java.awt.event.ActionEvent evt) { } private void btnAddQuirkActionPerformed(java.awt.event.ActionEvent evt) { - dlgQuirks qmanage = new dlgQuirks(this, true, data, quirks); - qmanage.setLocationRelativeTo(this); qmanage.setVisible(true); - tblQuirks.setModel(new tbQuirks(quirks)); +// dlgQuirks qmanage = new dlgQuirks(this, true, data, quirks); +// qmanage.setLocationRelativeTo(this); qmanage.setVisible(true); +// tblQuirks.setModel(new tbQuirks(quirks)); } private void btnExportMTFActionPerformed(java.awt.event.ActionEvent evt) { From 32c8408c886b57b124ddbd792ab0a37a66b32fd6 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 11 Feb 2023 15:35:14 -0700 Subject: [PATCH 083/199] Filtered Quirk List And resetting when new --- saw/src/main/java/saw/gui/frmVeeWide.java | 30 +++++++++++++++++++--- sswlib/src/main/java/dialog/dlgQuirks.java | 6 ++--- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 915bd276..10e3e92b 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -4674,10 +4674,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pnlQuirksLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlQuirksLayout.createSequentialGroup() .addComponent(lblBattleMechQuirks, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(btnAddQuirk) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(scpQuirkTable, javax.swing.GroupLayout.PREFERRED_SIZE, 389, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(btnAddQuirk) .addContainerGap()) ); @@ -6264,6 +6264,7 @@ private void GetNewVee() { txtTNTSystem.setText( "" ); txtSource.setText( "" ); lblFluffImage.setIcon( null ); + ResetQuirks(); //Reset Manufacturers tblWeaponManufacturers.setModel( new javax.swing.table.AbstractTableModel() { @@ -7671,11 +7672,32 @@ private void btnExportMTFIconActionPerformed(java.awt.event.ActionEvent evt) { } private void btnAddQuirkActionPerformed(java.awt.event.ActionEvent evt) { - dlgQuirks qmanage = new dlgQuirks(this, true, data, quirks); + ArrayList<Quirk> filtered = new ArrayList<Quirk>(); + for (Quirk item : data.GetQuirks()) { + if (item.isCombatvehicle()) { + filtered.add(item); + } + } + dlgQuirks qmanage = new dlgQuirks(this, true, filtered, quirks); qmanage.setLocationRelativeTo(this); qmanage.setVisible(true); tblQuirks.setModel(new tbQuirks(quirks)); } + private void ResetQuirks() { + quirks = new ArrayList<>(); + tblQuirks.setModel(new javax.swing.table.DefaultTableModel( + new Object [][] { + {null, null}, + {null, null}, + {null, null}, + {null, null} + }, + new String [] { + "Cost", "Quirk" + })); + CurVee.SetQuirks(quirks); + } + private void btnExportMTFActionPerformed(java.awt.event.ActionEvent evt) { // exports the mech to MTF format for use in Megamek diff --git a/sswlib/src/main/java/dialog/dlgQuirks.java b/sswlib/src/main/java/dialog/dlgQuirks.java index a41f62e2..53a4e365 100644 --- a/sswlib/src/main/java/dialog/dlgQuirks.java +++ b/sswlib/src/main/java/dialog/dlgQuirks.java @@ -35,21 +35,19 @@ import java.util.ArrayList; public class dlgQuirks extends javax.swing.JDialog { - private DataFactory list; private ArrayList<Quirk> existingQuirks; private tbQuirks tblQ; /** Creates new form dlgQuirks */ - public dlgQuirks(java.awt.Frame parent, boolean modal, DataFactory quirks, ArrayList<Quirk> currentQuirks) { + public dlgQuirks(java.awt.Frame parent, boolean modal, ArrayList<Quirk> availableQuirks, ArrayList<Quirk> currentQuirks) { super(parent, modal); initComponents(); - list = quirks; existingQuirks = currentQuirks; tblQ = new tbQuirks(currentQuirks); tblQ.setupTable(tblSelected); - tblList.setModel(new tbQuirks(list.GetQuirks())); + tblList.setModel(new tbQuirks(availableQuirks)); } private void Refresh() From 3e6ab5d5640dce7520da9bbc9eca5dc6f32e7853 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 11 Feb 2023 16:06:07 -0700 Subject: [PATCH 084/199] Add/Remove Save/Load Quirks in SAW Only in the Wide form at the moment. --- saw/src/main/java/saw/gui/frmVeeWide.java | 20 ++++---- .../main/java/components/CombatVehicle.java | 9 ++++ sswlib/src/main/java/components/Mech.java | 7 +++ sswlib/src/main/java/components/ifUnit.java | 5 ++ sswlib/src/main/java/dialog/dlgQuirks.java | 8 +++- .../src/main/java/filehandlers/CVReader.java | 48 +++++++++++++++++++ .../src/main/java/filehandlers/CVWriter.java | 26 ++++++++++ 7 files changed, 111 insertions(+), 12 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 10e3e92b..da09c1ab 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -214,6 +214,8 @@ public frmVeeWide() { pnlAdditionalFluff.add( Additional ); pnlVariants.add( Variants ); pnlNotables.add( Notables ); + + quirks = CurVee.GetQuirks(); pack(); @@ -7098,6 +7100,7 @@ public void LoadVehicleIntoGUI() { RefreshInfoPane(); SetWeaponChoosers(); ResetAmmo(); + RefreshQuirks(); // load the fluff image. Media media = new Media(); @@ -7678,23 +7681,18 @@ private void btnAddQuirkActionPerformed(java.awt.event.ActionEvent evt) { filtered.add(item); } } - dlgQuirks qmanage = new dlgQuirks(this, true, filtered, quirks); + dlgQuirks qmanage = new dlgQuirks(this, true, CurVee, filtered, quirks); qmanage.setLocationRelativeTo(this); qmanage.setVisible(true); tblQuirks.setModel(new tbQuirks(quirks)); } + private void RefreshQuirks() { + tblQuirks.setModel(new tbQuirks(CurVee.GetQuirks())); + } + private void ResetQuirks() { quirks = new ArrayList<>(); - tblQuirks.setModel(new javax.swing.table.DefaultTableModel( - new Object [][] { - {null, null}, - {null, null}, - {null, null}, - {null, null} - }, - new String [] { - "Cost", "Quirk" - })); + tblQuirks.setModel(new tbQuirks(quirks)); CurVee.SetQuirks(quirks); } diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index 6b167925..85b1a0e1 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -1058,6 +1058,15 @@ public void setModel(String Model) { public ArrayList<Quirk> GetQuirks() { return Quirks; } + + public void AddQuirk(Quirk q) { + Quirks.add(q); + } + + public void RemoveQuirk(Quirk q) { + Quirks.remove(q); + } + public void SetQuirks (ArrayList<Quirk> q) { Quirks = q; diff --git a/sswlib/src/main/java/components/Mech.java b/sswlib/src/main/java/components/Mech.java index 3a835b9e..5fee2f6d 100644 --- a/sswlib/src/main/java/components/Mech.java +++ b/sswlib/src/main/java/components/Mech.java @@ -4892,6 +4892,13 @@ public void SetQuirks (ArrayList<Quirk> q) { SetChanged( true ); } + public void AddQuirk(Quirk q) { + Quirks.add(q); + } + + public void RemoveQuirk(Quirk q) { + Quirks.remove(q); + } public void SetCapabilities( String n ) { Capabilities = n; diff --git a/sswlib/src/main/java/components/ifUnit.java b/sswlib/src/main/java/components/ifUnit.java index 9e71f3fd..66b18834 100644 --- a/sswlib/src/main/java/components/ifUnit.java +++ b/sswlib/src/main/java/components/ifUnit.java @@ -5,6 +5,8 @@ package components; +import java.util.ArrayList; + public interface ifUnit { public int GetUnitType(); public int GetRulesLevel(); @@ -26,4 +28,7 @@ public interface ifUnit { public PhysicalEnhancement GetPhysEnhance(); public boolean UsingTC(); public TargetingComputer GetTC(); + public void SetQuirks (ArrayList<Quirk> q); + public void AddQuirk(Quirk q); + public void RemoveQuirk(Quirk q); } diff --git a/sswlib/src/main/java/dialog/dlgQuirks.java b/sswlib/src/main/java/dialog/dlgQuirks.java index 53a4e365..4a38e84d 100644 --- a/sswlib/src/main/java/dialog/dlgQuirks.java +++ b/sswlib/src/main/java/dialog/dlgQuirks.java @@ -30,6 +30,7 @@ import common.DataFactory; import components.Quirk; +import components.ifUnit; import list.view.tbQuirks; import java.util.ArrayList; @@ -37,12 +38,14 @@ public class dlgQuirks extends javax.swing.JDialog { private ArrayList<Quirk> existingQuirks; private tbQuirks tblQ; + private ifUnit Unit; /** Creates new form dlgQuirks */ - public dlgQuirks(java.awt.Frame parent, boolean modal, ArrayList<Quirk> availableQuirks, ArrayList<Quirk> currentQuirks) { + public dlgQuirks(java.awt.Frame parent, boolean modal, ifUnit unit, ArrayList<Quirk> availableQuirks, ArrayList<Quirk> currentQuirks) { super(parent, modal); initComponents(); + Unit = unit; existingQuirks = currentQuirks; tblQ = new tbQuirks(currentQuirks); @@ -194,17 +197,20 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { private void btnAddActionPerformed(java.awt.event.ActionEvent evt) { Quirk q = (Quirk)((tbQuirks) tblList.getModel()).get( tblList.convertRowIndexToModel( tblList.getSelectedRow() )); + //Unit.AddQuirk(q); tblQ.quirklist.add(q); Refresh(); } private void btnRemoveActionPerformed(java.awt.event.ActionEvent evt) { Quirk q = (Quirk)((tbQuirks) tblSelected.getModel()).get( tblSelected.convertRowIndexToModel( tblSelected.getSelectedRow() )); + //Unit.RemoveQuirk(q); tblQ.quirklist.remove(q); Refresh(); } private void btnDoneActionPerformed(java.awt.event.ActionEvent evt) { + Unit.SetQuirks(tblQ.quirklist); setVisible( false ); } diff --git a/sswlib/src/main/java/filehandlers/CVReader.java b/sswlib/src/main/java/filehandlers/CVReader.java index 4b559e0a..8f6aedaa 100644 --- a/sswlib/src/main/java/filehandlers/CVReader.java +++ b/sswlib/src/main/java/filehandlers/CVReader.java @@ -1106,6 +1106,54 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) } else { m.SetAdditional( FileCommon.DecodeFluff( n.item( 0 ).getTextContent() ) ); } + n = d.getElementsByTagName( "quirks" ); + if (n.getLength() != 0) { + ArrayList<Quirk> quirks = new ArrayList<Quirk>(); + NodeList quirkList = n.item( 0 ).getChildNodes(); + for( int i = 0; i < quirkList.getLength(); i++ ) { + if (quirkList.item(i).getNodeName().equals("quirk")) { + Node nodeQuirk = quirkList.item(i); + map = nodeQuirk.getAttributes(); + + boolean postive = Boolean.parseBoolean(map.getNamedItem("postive").getTextContent()); + boolean battlemech = Boolean.parseBoolean(map.getNamedItem("battlemech").getTextContent()); + boolean industrialmech = Boolean.parseBoolean(map.getNamedItem("industrialmech").getTextContent()); + boolean combatvehicle = Boolean.parseBoolean(map.getNamedItem("combatvehicle").getTextContent()); + boolean battlearmor = Boolean.parseBoolean(map.getNamedItem("battlearmor").getTextContent()); + boolean aerospacefighter = Boolean.parseBoolean(map.getNamedItem("aerospacefighter").getTextContent()); + boolean conventionalfighter = Boolean.parseBoolean(map.getNamedItem("conventionalfigher").getTextContent()); + boolean dropship = Boolean.parseBoolean(map.getNamedItem("dropship").getTextContent()); + boolean jumpship = Boolean.parseBoolean(map.getNamedItem("jumpship").getTextContent()); + boolean warship = Boolean.parseBoolean(map.getNamedItem("warship").getTextContent()); + boolean spacestation = Boolean.parseBoolean(map.getNamedItem("spacestation").getTextContent()); + boolean protomech = Boolean.parseBoolean(map.getNamedItem("protomech").getTextContent()); + boolean isvariable = Boolean.parseBoolean(map.getNamedItem("isvariable").getTextContent()); + String name = null; + String description = null; + int cost = 0; + if (nodeQuirk != null) { + NodeList items = nodeQuirk.getChildNodes(); + for (int w = 0; w < items.getLength(); w++) { + if (items.item(w).getNodeName().equals("Name")) { + name = items.item(w).getTextContent(); + } + else if (items.item(w).getNodeName().equals("Cost")) { + cost = Integer.parseInt(items.item(w).getTextContent()); + } + else if (items.item(w).getNodeName().equals("Description")) { + description = items.item(w).getTextContent(); + } + } + if (name != null && description != null && cost != 0) + { + quirks.add(new Quirk(name, postive, cost, battlemech, industrialmech, combatvehicle, battlearmor, aerospacefighter, conventionalfighter,dropship, + jumpship, warship, spacestation, protomech, isvariable, description)); + } + } + } + } + m.SetQuirks(quirks); + } n = d.getElementsByTagName( "jumpjet_model" ); if( n.item( 0 ).getTextContent() == null ) { m.SetJJModel( "" ); diff --git a/sswlib/src/main/java/filehandlers/CVWriter.java b/sswlib/src/main/java/filehandlers/CVWriter.java index 77995396..c3bb707a 100644 --- a/sswlib/src/main/java/filehandlers/CVWriter.java +++ b/sswlib/src/main/java/filehandlers/CVWriter.java @@ -292,6 +292,32 @@ public void WriteXML( BufferedWriter FR ) throws IOException { FR.newLine(); FR.write( tab + tab + "<additional>" + FileCommon.EncodeFluff( CurUnit.GetAdditional() ) + "</additional>" ); FR.newLine(); + if (CurUnit.GetQuirks().size() > 0) + { + FR.write(tab + tab + "<quirks>"); + FR.newLine(); + for (Quirk quirk : CurUnit.GetQuirks()) + { + FR.write(tab + tab + tab + "<quirk postive=\"" + Boolean.toString(quirk.isPositive())+"\" battlemech=\"" + Boolean.toString(quirk.isBattlemech()) + + "\" industrialmech=\"" + Boolean.toString(quirk.isIndustrialmech()) + "\" combatvehicle=\"" + Boolean.toString(quirk.isCombatvehicle()) + + "\" battlearmor=\"" + Boolean.toString(quirk.isBattlearmor()) + "\" aerospacefighter=\"" + Boolean.toString(quirk.isAerospacefighter()) + + "\" conventionalfigher=\"" + Boolean.toString(quirk.isConventionalfighter()) + "\" dropship=\"" + Boolean.toString(quirk.isDropship()) + + "\" jumpship=\"" + Boolean.toString(quirk.isDropship()) + "\" warship=\"" + Boolean.toString(quirk.isWarship()) + + "\" spacestation=\"" + Boolean.toString(quirk.isSpacestation()) + "\" protomech=\"" + Boolean.toString(quirk.isProtomech()) + + "\" isvariable=\"" + Boolean.toString(quirk.isIsvariable()) + "\">"); + FR.newLine(); + FR.write(tab + tab + tab + tab + "<Name>" + FileCommon.EncodeFluff(quirk.getName()) + "</Name>"); + FR.newLine(); + FR.write(tab + tab + tab + tab + "<Cost>" + quirk.getCost() + "</Cost>"); + FR.newLine(); + FR.write(tab + tab + tab + tab + "<Description>" + FileCommon.EncodeFluff(quirk.getDescription()) + "</Description>"); + FR.newLine(); + FR.write(tab + tab + tab + "</quirk>"); + FR.newLine(); + } + FR.write(tab + tab + "</quirks>"); + FR.newLine(); + } FR.write( tab + tab + "<jumpjet_model>" + FileCommon.EncodeFluff( CurUnit.GetJJModel() ) + "</jumpjet_model>" ); FR.newLine(); FR.write( tab + tab + "<commsystem>" + FileCommon.EncodeFluff( CurUnit.GetCommSystem() ) + "</commsystem>" ); From f37750e2f487a8a132aae224f62d5b834a9e691c Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 11 Feb 2023 16:09:26 -0700 Subject: [PATCH 085/199] Use Refresh As it is simpler --- saw/src/main/java/saw/gui/frmVeeWide.java | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index da09c1ab..d31147d9 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -6266,7 +6266,7 @@ private void GetNewVee() { txtTNTSystem.setText( "" ); txtSource.setText( "" ); lblFluffImage.setIcon( null ); - ResetQuirks(); + RefreshQuirks(); //Reset Manufacturers tblWeaponManufacturers.setModel( new javax.swing.table.AbstractTableModel() { @@ -7690,12 +7690,6 @@ private void RefreshQuirks() { tblQuirks.setModel(new tbQuirks(CurVee.GetQuirks())); } - private void ResetQuirks() { - quirks = new ArrayList<>(); - tblQuirks.setModel(new tbQuirks(quirks)); - CurVee.SetQuirks(quirks); - } - private void btnExportMTFActionPerformed(java.awt.event.ActionEvent evt) { // exports the mech to MTF format for use in Megamek From 695d7274ea29fc259d54e48829530b6373dd3092 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 11 Feb 2023 16:58:44 -0700 Subject: [PATCH 086/199] Cleanup Unneeded And capture changes to the Vee --- saw/src/main/java/saw/gui/frmVeeWide.java | 4 +++- sswlib/src/main/java/components/CombatVehicle.java | 8 -------- sswlib/src/main/java/components/Mech.java | 7 ------- sswlib/src/main/java/components/ifUnit.java | 3 +-- sswlib/src/main/java/dialog/dlgQuirks.java | 7 ------- 5 files changed, 4 insertions(+), 25 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index d31147d9..63a78ed0 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -4651,7 +4651,7 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { tblQuirks.getTableHeader().setReorderingAllowed(false); scpQuirkTable.setViewportView(tblQuirks); - btnAddQuirk.setText("Add Quirk"); + btnAddQuirk.setText("Manage Quirks"); btnAddQuirk.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnAddQuirkActionPerformed(evt); @@ -7107,6 +7107,7 @@ public void LoadVehicleIntoGUI() { media.blankLogo(lblFluffImage); media.setLogo(lblFluffImage, media.DetermineMatchingImage(CurVee.GetName(), CurVee.GetModel(), CurVee.GetSSWImage())); + quirks = CurVee.GetQuirks(); Overview.SetText( CurVee.getOverview() ); Capabilities.SetText( CurVee.getCapabilities() ); History.SetText( CurVee.getHistory() ); @@ -7684,6 +7685,7 @@ private void btnAddQuirkActionPerformed(java.awt.event.ActionEvent evt) { dlgQuirks qmanage = new dlgQuirks(this, true, CurVee, filtered, quirks); qmanage.setLocationRelativeTo(this); qmanage.setVisible(true); tblQuirks.setModel(new tbQuirks(quirks)); + CurVee.SetQuirks(quirks); } private void RefreshQuirks() { diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index 85b1a0e1..8cf4727a 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -1059,14 +1059,6 @@ public ArrayList<Quirk> GetQuirks() { return Quirks; } - public void AddQuirk(Quirk q) { - Quirks.add(q); - } - - public void RemoveQuirk(Quirk q) { - Quirks.remove(q); - } - public void SetQuirks (ArrayList<Quirk> q) { Quirks = q; diff --git a/sswlib/src/main/java/components/Mech.java b/sswlib/src/main/java/components/Mech.java index 5fee2f6d..3a835b9e 100644 --- a/sswlib/src/main/java/components/Mech.java +++ b/sswlib/src/main/java/components/Mech.java @@ -4892,13 +4892,6 @@ public void SetQuirks (ArrayList<Quirk> q) { SetChanged( true ); } - public void AddQuirk(Quirk q) { - Quirks.add(q); - } - - public void RemoveQuirk(Quirk q) { - Quirks.remove(q); - } public void SetCapabilities( String n ) { Capabilities = n; diff --git a/sswlib/src/main/java/components/ifUnit.java b/sswlib/src/main/java/components/ifUnit.java index 66b18834..d046e20a 100644 --- a/sswlib/src/main/java/components/ifUnit.java +++ b/sswlib/src/main/java/components/ifUnit.java @@ -29,6 +29,5 @@ public interface ifUnit { public boolean UsingTC(); public TargetingComputer GetTC(); public void SetQuirks (ArrayList<Quirk> q); - public void AddQuirk(Quirk q); - public void RemoveQuirk(Quirk q); + } diff --git a/sswlib/src/main/java/dialog/dlgQuirks.java b/sswlib/src/main/java/dialog/dlgQuirks.java index 4a38e84d..3133d199 100644 --- a/sswlib/src/main/java/dialog/dlgQuirks.java +++ b/sswlib/src/main/java/dialog/dlgQuirks.java @@ -28,15 +28,12 @@ package dialog; -import common.DataFactory; import components.Quirk; import components.ifUnit; import list.view.tbQuirks; - import java.util.ArrayList; public class dlgQuirks extends javax.swing.JDialog { - private ArrayList<Quirk> existingQuirks; private tbQuirks tblQ; private ifUnit Unit; @@ -46,7 +43,6 @@ public dlgQuirks(java.awt.Frame parent, boolean modal, ifUnit unit, ArrayList<Qu initComponents(); Unit = unit; - existingQuirks = currentQuirks; tblQ = new tbQuirks(currentQuirks); tblQ.setupTable(tblSelected); @@ -197,20 +193,17 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { private void btnAddActionPerformed(java.awt.event.ActionEvent evt) { Quirk q = (Quirk)((tbQuirks) tblList.getModel()).get( tblList.convertRowIndexToModel( tblList.getSelectedRow() )); - //Unit.AddQuirk(q); tblQ.quirklist.add(q); Refresh(); } private void btnRemoveActionPerformed(java.awt.event.ActionEvent evt) { Quirk q = (Quirk)((tbQuirks) tblSelected.getModel()).get( tblSelected.convertRowIndexToModel( tblSelected.getSelectedRow() )); - //Unit.RemoveQuirk(q); tblQ.quirklist.remove(q); Refresh(); } private void btnDoneActionPerformed(java.awt.event.ActionEvent evt) { - Unit.SetQuirks(tblQ.quirklist); setVisible( false ); } From 2e532b8277b1cd4176da357cec162a8b1dbe98c4 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 11 Feb 2023 17:07:58 -0700 Subject: [PATCH 087/199] Consistent Saving --- ssw/src/main/java/ssw/gui/frmMain.java | 15 ++++++++------- ssw/src/main/java/ssw/gui/frmMainWide.java | 13 +++++++------ 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/ssw/src/main/java/ssw/gui/frmMain.java b/ssw/src/main/java/ssw/gui/frmMain.java index 2913876e..20793add 100644 --- a/ssw/src/main/java/ssw/gui/frmMain.java +++ b/ssw/src/main/java/ssw/gui/frmMain.java @@ -9923,7 +9923,7 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { tblQuirks.getColumnModel().getColumn(1).setPreferredWidth(5); } - btnAddQuirk.setText("Add Quirk"); + btnAddQuirk.setText("Manage Quirks"); btnAddQuirk.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnAddQuirkActionPerformed(evt); @@ -14965,12 +14965,13 @@ private void cmbProductionEraActionPerformed(java.awt.event.ActionEvent evt) {// CurMech.SetProductionEra( cmbProductionEra.getSelectedIndex() ); }//GEN-LAST:event_cmbProductionEraActionPerformed -private void btnAddQuirkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAddQuirkActionPerformed - dlgQuirks qmanage = new dlgQuirks(this, true, data, quirks); - qmanage.setLocationRelativeTo(this); - qmanage.setVisible(true); - tblQuirks.setModel(new tbQuirks(quirks)); -}//GEN-LAST:event_btnAddQuirkActionPerformed + private void btnAddQuirkActionPerformed(java.awt.event.ActionEvent evt) { + dlgQuirks qmanage = new dlgQuirks(this, true, data, quirks); + qmanage.setLocationRelativeTo(this); + qmanage.setVisible(true); + tblQuirks.setModel(new tbQuirks(quirks)); + CurMech.SetQuirks(quirks); + } private void mnuReloadEquipmentActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuReloadEquipmentActionPerformed try { diff --git a/ssw/src/main/java/ssw/gui/frmMainWide.java b/ssw/src/main/java/ssw/gui/frmMainWide.java index ed75be3a..0aeb7de2 100644 --- a/ssw/src/main/java/ssw/gui/frmMainWide.java +++ b/ssw/src/main/java/ssw/gui/frmMainWide.java @@ -9334,7 +9334,7 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { tblQuirks.getTableHeader().setReorderingAllowed(false); scpQuirkTable.setViewportView(tblQuirks); - btnAddQuirk.setText("Add Quirk"); + btnAddQuirk.setText("Manage Quirks"); btnAddQuirk.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnAddQuirkActionPerformed(evt); @@ -14760,16 +14760,17 @@ private void chkBoobyTrapActionPerformed(java.awt.event.ActionEvent evt) {//GEN- RefreshInfoPane(); }//GEN-LAST:event_chkBoobyTrapActionPerformed -private void cmbProductionEraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbProductionEraActionPerformed - CurMech.SetProductionEra( cmbProductionEra.getSelectedIndex() ); -}//GEN-LAST:event_cmbProductionEraActionPerformed + private void cmbProductionEraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbProductionEraActionPerformed + CurMech.SetProductionEra( cmbProductionEra.getSelectedIndex() ); + }//GEN-LAST:event_cmbProductionEraActionPerformed - private void btnAddQuirkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAddQuirkActionPerformed + private void btnAddQuirkActionPerformed(java.awt.event.ActionEvent evt) { dlgQuirks qmanage = new dlgQuirks(this, true, data, quirks); qmanage.setLocationRelativeTo(this); qmanage.setVisible(true); tblQuirks.setModel(new tbQuirks(quirks)); - }//GEN-LAST:event_btnAddQuirkActionPerformed + CurMech.SetQuirks(quirks); + } private void mnuReloadEquipmentActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuReloadEquipmentActionPerformed try { From 1546575c53653d6cdb555af1e83c3d45e0e34049 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 11 Feb 2023 17:31:28 -0700 Subject: [PATCH 088/199] Sort and Distinguish Pos/Neg --- sswlib/src/main/java/components/Quirk.java | 17 +++++++++++++---- sswlib/src/main/java/list/view/tbQuirks.java | 5 ++++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/sswlib/src/main/java/components/Quirk.java b/sswlib/src/main/java/components/Quirk.java index c5ccd664..306f2a72 100644 --- a/sswlib/src/main/java/components/Quirk.java +++ b/sswlib/src/main/java/components/Quirk.java @@ -92,13 +92,22 @@ public String getName() { /** * @return the cost */ - public int getCost() { return cost; } + public String getCost() { + if (isPositive()) { + return "+" + cost; + } + return "-" + cost; + } - public String getCostDisplay() { - if (isvariable) return "Varies"; - return cost + ""; + public String getDirection() { + if (isPositive()) { + return "Pos"; + } else { + return "Neg"; + } } + /** * @return the description */ diff --git a/sswlib/src/main/java/list/view/tbQuirks.java b/sswlib/src/main/java/list/view/tbQuirks.java index 91c73e3d..ae6fdf61 100644 --- a/sswlib/src/main/java/list/view/tbQuirks.java +++ b/sswlib/src/main/java/list/view/tbQuirks.java @@ -43,7 +43,10 @@ public tbQuirks(ArrayList quirks) public void setupTable( JTable tbl ) { tbl.setModel(this); - tbl.getColumnModel().getColumn(0).setPreferredWidth(1); + tbl.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); + tbl.setAutoCreateRowSorter(true); + tbl.getColumnModel().getColumn(0).setMinWidth(1); + tbl.getColumnModel().getColumn(1).setMinWidth(100); } public Object get( int index ) { From 9995214a1d00badb83c853de5fb4ad40fde2005f Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 11 Feb 2023 20:26:01 -0700 Subject: [PATCH 089/199] Seperate Fluff and Battleforce And a bunch of logic cleanup from IntelliJ Problem resolutions. --- saw/src/main/java/saw/gui/frmVeeWide.java | 1996 +++++++-------------- 1 file changed, 603 insertions(+), 1393 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 169d3051..be0fb83b 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -48,7 +48,6 @@ import visitors.ifVisitor; import javax.swing.*; -import javax.swing.table.AbstractTableModel; import javax.swing.text.JTextComponent; import java.awt.*; import java.awt.datatransfer.Clipboard; @@ -67,8 +66,8 @@ public final class frmVeeWide extends javax.swing.JFrame implements java.awt.dat Preferences Prefs; String[] Selections = { "", "" }; public DataFactory data; - private Cursor Hourglass = new Cursor( Cursor.WAIT_CURSOR ); - private Cursor NormalCursor = new Cursor( Cursor.DEFAULT_CURSOR ); + private final Cursor Hourglass = new Cursor( Cursor.WAIT_CURSOR ); + private final Cursor NormalCursor = new Cursor( Cursor.DEFAULT_CURSOR ); boolean Load = false, isLocked = false, SetSource = true; @@ -87,7 +86,7 @@ public final class frmVeeWide extends javax.swing.JFrame implements java.awt.dat private final AvailableCode PulseModuleAC = new AvailableCode( AvailableCode.TECH_INNER_SPHERE ); private final AvailableCode CaselessAmmoAC = new AvailableCode( AvailableCode.TECH_INNER_SPHERE ); - private ImageTracker imageTracker = new ImageTracker(); + private final ImageTracker imageTracker = new ImageTracker(); public dlgOpen dOpen = new dlgOpen(this, true); public frmForce dForce = new frmForce(this, imageTracker); @@ -101,7 +100,6 @@ public final class frmVeeWide extends javax.swing.JFrame implements java.awt.dat JPopupMenu mnuUtilities = new JPopupMenu(); JMenuItem mnuDetails = new JMenuItem( "Details" ); - JMenuItem mnuMountRear = new JMenuItem( "Mount Rear" ); JMenuItem mnuSetVariable = new JMenuItem( "Set Tonnage" ); JMenuItem mnuSetLotSize = new JMenuItem( "Set Lot Size" ); JMenuItem mnuArmorComponent = new JMenuItem( "Armor Component" ); @@ -135,11 +133,7 @@ public final class frmVeeWide extends javax.swing.JFrame implements java.awt.dat public void focusGained(FocusEvent e) { if ( e.getSource() instanceof JTextComponent ) { final JTextComponent textComponent = ((JTextComponent)e.getSource()); - SwingUtilities.invokeLater(new Runnable() { - public void run() { - textComponent.selectAll(); - } - }); + SwingUtilities.invokeLater(textComponent::selectAll); } } }; @@ -215,110 +209,28 @@ public frmVeeWide() { pnlVariants.add( Variants ); pnlNotables.add( Notables ); pack(); - - mnuDetails.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - GetInfoOn(); - ShowInfoOn(CurItem); - } - }); - - mnuSetVariable.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SetVariableSize(); - } - }); - - mnuSetLotSize.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SetAmmoLotSize(); - } - }); - - mnuAddCapacitor.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - PPCCapacitor(); - } - }); - - mnuAddInsulator.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - LaserInsulator(); - } - }); - - mnuAddPulseModule.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - PulseModule(); - } - }); - - mnuDumper.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - DumperMount(); - } - }); - - mnuCaseless.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SwitchCaseless(); - } - }); - - mnuVGLArcFore.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SetVGLArcFore(); - } - }); - - mnuVGLArcForeSide.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SetVGLArcForeSide(); - } - }); - - mnuVGLArcRear.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SetVGLArcRear(); - } - }); - - mnuVGLArcRearSide.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SetVGLArcRearSide(); - } - }); - - mnuVGLAmmoFrag.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SetVGLAmmoFrag(); - } - }); - - mnuVGLAmmoChaff.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SetVGLAmmoChaff(); - } - }); - - mnuVGLAmmoIncen.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SetVGLAmmoIncendiary(); - } - }); - - mnuVGLAmmoSmoke.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SetVGLAmmoSmoke(); - } - }); - - mnuRemoveItem.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - RemoveItemCritTab(); - } - }); + mnuDetails.addActionListener(evt -> { + GetInfoOn(); + ShowInfoOn(CurItem); + }); + + mnuSetVariable.addActionListener(e -> SetVariableSize()); + mnuSetLotSize.addActionListener(e -> SetAmmoLotSize()); + mnuAddCapacitor.addActionListener(e -> PPCCapacitor()); + mnuAddInsulator.addActionListener(e -> LaserInsulator()); + mnuAddPulseModule.addActionListener(e -> PulseModule()); + mnuDumper.addActionListener(e -> DumperMount()); + mnuCaseless.addActionListener(e -> SwitchCaseless()); + mnuVGLArcFore.addActionListener(e -> SetVGLArcFore()); + mnuVGLArcForeSide.addActionListener(e -> SetVGLArcForeSide()); + mnuVGLArcRear.addActionListener(e -> SetVGLArcRear()); + mnuVGLArcRearSide.addActionListener(e -> SetVGLArcRearSide()); + mnuVGLAmmoFrag.addActionListener(e -> SetVGLAmmoFrag()); + mnuVGLAmmoChaff.addActionListener(e -> SetVGLAmmoChaff()); + mnuVGLAmmoIncen.addActionListener(e -> SetVGLAmmoIncendiary()); + mnuVGLAmmoSmoke.addActionListener(e -> SetVGLAmmoSmoke()); + mnuRemoveItem.addActionListener(e -> RemoveItemCritTab()); mnuVGLArc.setText( "Set VGL Arc" ); mnuVGLArc.add( mnuVGLArcFore ); @@ -383,23 +295,11 @@ public void actionPerformed(ActionEvent e) { ((JSpinner.DefaultEditor)spnRearTurretArmor.getEditor()).getTextField().addFocusListener(spinners); ((JSpinner.DefaultEditor)spnRotorArmor.getEditor()).getTextField().addFocusListener(spinners); - mnuFluffCut.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed( ActionEvent e ) { - FluffCut( mnuFluff.getInvoker() ); - } - }); + mnuFluffCut.addActionListener(e -> FluffCut( mnuFluff.getInvoker() )); - mnuFluffCopy.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - FluffCopy( mnuFluff.getInvoker() ); - } - }); + mnuFluffCopy.addActionListener(e -> FluffCopy( mnuFluff.getInvoker() )); - mnuFluffPaste.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - FluffPaste( mnuFluff.getInvoker() ); - } - }); + mnuFluffPaste.addActionListener(e -> FluffPaste( mnuFluff.getInvoker() )); mnuFluff.add( mnuFluffCut ); mnuFluff.add( mnuFluffCopy ); @@ -427,11 +327,7 @@ public Object getValueAt( int row, int col ) { } @Override public boolean isCellEditable( int row, int col ) { - if( col == 0 ) { - return false; - } else { - return true; - } + return col != 0; } @Override public void setValueAt( Object value, int row, int col ) { @@ -443,9 +339,9 @@ public void setValueAt( Object value, int row, int col ) { fireTableCellUpdated( row, col ); } else { ArrayList v = CurVee.GetLoadout().GetEquipment(); - for( int i = 0; i < v.size(); i++ ) { - if( FileCommon.LookupStripArc( ((abPlaceable) v.get( i )).LookupName() ).equals( FileCommon.LookupStripArc( a.LookupName() ) ) ) { - ((abPlaceable) v.get( i )).SetManufacturer( (String) value ); + for (Object o : v) { + if (FileCommon.LookupStripArc(((abPlaceable) o).LookupName()).equals(FileCommon.LookupStripArc(a.LookupName()))) { + ((abPlaceable) o).SetManufacturer((String) value); } } fireTableDataChanged(); @@ -492,7 +388,6 @@ private void PPCCapacitor() { CurVee.GetLoadout().Remove( p ); } else { ((RangedWeapon) CurItem).UseCapacitor( true ); - abPlaceable p = ((RangedWeapon) CurItem).GetCapacitor(); LocationIndex Loc = CurVee.GetLoadout().FindIndex( CurItem ); if( Loc.Location != -1 ) { try { @@ -502,10 +397,6 @@ private void PPCCapacitor() { // couldn't allocate the capacitor? Unallocate the PPC. try { CurVee.GetLoadout().UnallocateAll( CurItem, false ); - // remove the capacitor if it's in the queue - //if( CurVee.GetLoadout().QueueContains( p ) ) { - // CurVee.GetLoadout().GetQueue().remove( p ); - //} } catch( Exception e1 ) { // failed big. no problem Media.Messager( this, "Fatal error adding a PPC Capacitor:\n" + e.getMessage() + "\nThe Capacitor will be removed." ); @@ -538,10 +429,6 @@ private void LaserInsulator() { // couldn't allocate the insulator? Unallocate the PPC. try { CurVee.GetLoadout().UnallocateAll( CurItem, false ); - // remove the insulator if it's in the queue - //if( CurVee.GetLoadout().QueueContains( p ) ) { - // CurVee.GetLoadout().GetQueue().remove( p ); - //} } catch( Exception e1 ) { // failed big. no problem Media.Messager( this, "Fatal error adding a Laser Insulator:\n" + e.getMessage() + "\nThe Insulator will be removed." ); @@ -574,10 +461,6 @@ private void PulseModule() { // couldn't allocate the insulator? Unallocate the PPC. try { CurVee.GetLoadout().UnallocateAll( CurItem, false ); - // remove the insulator if it's in the queue - //if( CurVee.GetLoadout().QueueContains( p ) ) { - // CurVee.GetLoadout().GetQueue().remove( p ); - //} } catch( Exception e1 ) { // failed big. no problem Media.Messager( this, "Fatal error adding a Laser Insulator:\n" + e.getMessage() + "\nThe Insulator will be removed." ); @@ -612,29 +495,29 @@ private void SwitchCaseless() { ArrayList replace = new ArrayList(); abPlaceable p; boolean HasOrig = false; - for( int i = 0; i < check.size(); i++ ) { - p = (abPlaceable) check.get( i ); - if( p instanceof RangedWeapon ) { - if( ((RangedWeapon) p).GetAmmoIndex() == origIDX ) { + for (Object o : check) { + p = (abPlaceable) o; + if (p instanceof RangedWeapon) { + if (((RangedWeapon) p).GetAmmoIndex() == origIDX) { HasOrig = true; } } - if( p instanceof Ammunition ) { - replace.add( p ); + if (p instanceof Ammunition) { + replace.add(p); } } // replace any ammo with the new stuff if there are no other original weapons if( ! HasOrig ) { Object[] newammo = data.GetEquipment().GetAmmo( newIDX, CurVee ); - for( int i = 0; i < replace.size(); i++ ) { - p = (abPlaceable) replace.get( i ); - if( ((Ammunition) p).GetAmmoIndex() == origIDX ) { - CurVee.GetLoadout().Remove( p ); - if( newammo.length > 0 ) { - p = data.GetEquipment().GetCopy( (abPlaceable) newammo[0], CurVee); + for (Object o : replace) { + p = (abPlaceable) o; + if (((Ammunition) p).GetAmmoIndex() == origIDX) { + CurVee.GetLoadout().Remove(p); + if (newammo.length > 0) { + p = data.GetEquipment().GetCopy((abPlaceable) newammo[0], CurVee); try { - CurVee.GetLoadout().AddTo( p, LocationIndex.CV_LOC_BODY ); + CurVee.GetLoadout().AddTo(p, LocationIndex.CV_LOC_BODY); } catch (Exception ex) { Media.Messager(ex.getMessage()); } @@ -791,19 +674,11 @@ private void ConfigureUtilsMenu( java.awt.Component c ) { } } if( CurItem instanceof Equipment ) { - if( ((Equipment) CurItem).IsVariableSize() ) { - mnuSetVariable.setVisible( true ); - } else { - mnuSetVariable.setVisible( false ); - } + mnuSetVariable.setVisible(((Equipment) CurItem).IsVariableSize()); } else { mnuSetVariable.setVisible( false ); } - if( CurItem.CoreComponent() || CurItem.LocationLinked() ) { - mnuRemoveItem.setEnabled( false ); - } else { - mnuRemoveItem.setEnabled( true ); - } + mnuRemoveItem.setEnabled(!CurItem.CoreComponent() && !CurItem.LocationLinked()); } private void RemoveItemCritTab() { @@ -811,7 +686,7 @@ private void RemoveItemCritTab() { CurVee.GetLoadout().Remove( CurItem ); // refresh the selected equipment listbox - if( CurVee.GetLoadout().GetNonCore().toArray().length <= 0 ) { + if(CurVee.GetLoadout().GetNonCore().toArray().length == 0) { Equipment[SELECTED] = new Object[] { " " }; } else { Equipment[SELECTED] = CurVee.GetLoadout().GetNonCore().toArray(); @@ -858,14 +733,12 @@ public boolean LegalTurretMount( abPlaceable p ) { public boolean LegalLotChange( abPlaceable p ) { if( ! ( p instanceof Ammunition ) ) { return false; } - if( CurVee.UsingFractionalAccounting() ) { return true; } - return false; + return CurVee.UsingFractionalAccounting(); } public boolean LegalDumper( abPlaceable p ) { if ( ! ( p instanceof Equipment ) ) { return false; } - if ( ( (Equipment)p).CritName().equals("Cargo Container") ) { return true; } - return false; + return p.CritName().equals("Cargo Container"); } public void RefreshInfoPane() { @@ -928,7 +801,7 @@ private void FluffCut( Component c ) { } java.awt.datatransfer.StringSelection export = new java.awt.datatransfer.StringSelection( cut ); java.awt.datatransfer.Clipboard clipboard = java.awt.Toolkit.getDefaultToolkit().getSystemClipboard(); - clipboard.setContents( export, (ClipboardOwner) this); + clipboard.setContents( export, this); } private void FluffCopy( Component c ) { @@ -955,7 +828,7 @@ private void FluffCopy( Component c ) { } java.awt.datatransfer.StringSelection export = new java.awt.datatransfer.StringSelection( copy ); java.awt.datatransfer.Clipboard clipboard = java.awt.Toolkit.getDefaultToolkit().getSystemClipboard(); - clipboard.setContents( export, (ClipboardOwner) this); + clipboard.setContents( export, this); } private void FluffPaste( Component c ) { @@ -963,7 +836,7 @@ private void FluffPaste( Component c ) { char space = 20; char linereturn = 13; java.awt.datatransfer.Clipboard clipboard = java.awt.Toolkit.getDefaultToolkit().getSystemClipboard(); - String txtimport = null; + String txtimport; try { txtimport = (String) clipboard.getData( DataFlavor.stringFlavor ); txtimport.replace(linereturn, space); @@ -972,7 +845,6 @@ private void FluffPaste( Component c ) { e.printStackTrace(); return; } - if( txtimport == null ) { return; } if( c instanceof JEditorPane ) { JEditorPane j = (JEditorPane) c; int insert = j.getCaretPosition(); @@ -992,15 +864,15 @@ private void ResetAmmo() { ArrayList v = CurVee.GetLoadout().GetNonCore(), wep = new ArrayList(); Object a; - for( int i = 0; i < v.size(); i++ ) { - a = v.get( i ); - if( a instanceof ifWeapon ) { - if( ((ifWeapon) a).HasAmmo() ) { - wep.add( a ); + for (Object o : v) { + a = o; + if (a instanceof ifWeapon) { + if (((ifWeapon) a).HasAmmo()) { + wep.add(a); } - } else if( a instanceof Equipment ) { - if( ((Equipment) a).HasAmmo() ) { - wep.add( a ); + } else if (a instanceof Equipment) { + if (((Equipment) a).HasAmmo()) { + wep.add(a); } } } @@ -1035,7 +907,7 @@ private void ResetAmmo() { private void initComponents() { GridBagConstraints gridBagConstraints; - pnlInfoPane = new javax.swing.JPanel(); + JPanel pnlInfoPane = new JPanel(); txtInfoTonnage = new javax.swing.JTextField(); txtInfoFreeTons = new javax.swing.JTextField(); txtInfoFreeCrits = new javax.swing.JTextField(); @@ -1043,76 +915,76 @@ private void initComponents() { txtInfoBattleValue = new javax.swing.JTextField(); txtInfoCost = new javax.swing.JTextField(); tlbIconBar = new javax.swing.JToolBar(); - btnNewVee = new javax.swing.JButton(); - btnOpen = new javax.swing.JButton(); - btnSave = new javax.swing.JButton(); - jSeparator1 = new javax.swing.JToolBar.Separator(); - btnPrint = new javax.swing.JButton(); - jSeparator2 = new javax.swing.JToolBar.Separator(); - btnExportClipboardIcon = new javax.swing.JButton(); - btnExportHTMLIcon = new javax.swing.JButton(); - btnExportTextIcon = new javax.swing.JButton(); - btnExportMTFIcon = new javax.swing.JButton(); - btnChatInfo = new javax.swing.JButton(); - jSeparator3 = new javax.swing.JToolBar.Separator(); - jSeparator25 = new javax.swing.JToolBar.Separator(); - btnAddToForceList = new javax.swing.JButton(); - btnForceList = new javax.swing.JButton(); - jSeparator4 = new javax.swing.JToolBar.Separator(); - btnOptions = new javax.swing.JButton(); - jSeparator21 = new javax.swing.JToolBar.Separator(); - lblSelectVariant = new javax.swing.JLabel(); + JButton btnNewVee = new JButton(); + JButton btnOpen = new JButton(); + JButton btnSave = new JButton(); + JToolBar.Separator jSeparator1 = new JToolBar.Separator(); + JButton btnPrint = new JButton(); + JToolBar.Separator jSeparator2 = new JToolBar.Separator(); + JButton btnExportClipboardIcon = new JButton(); + JButton btnExportHTMLIcon = new JButton(); + JButton btnExportTextIcon = new JButton(); + JButton btnExportMTFIcon = new JButton(); + JButton btnChatInfo = new JButton(); + JToolBar.Separator jSeparator3 = new JToolBar.Separator(); + JToolBar.Separator jSeparator25 = new JToolBar.Separator(); + JButton btnAddToForceList = new JButton(); + JButton btnForceList = new JButton(); + JToolBar.Separator jSeparator4 = new JToolBar.Separator(); + JButton btnOptions = new JButton(); + JToolBar.Separator jSeparator21 = new JToolBar.Separator(); + JLabel lblSelectVariant = new JLabel(); cmbOmniVariant = new javax.swing.JComboBox(); tbpMainTabPane = new javax.swing.JTabbedPane(); pnlBasicSetup = new javax.swing.JPanel(); - jPanel5 = new javax.swing.JPanel(); - jLabel1 = new javax.swing.JLabel(); + JPanel jPanel5 = new JPanel(); + JLabel jLabel1 = new JLabel(); txtVehicleName = new javax.swing.JTextField(); - jLabel4 = new javax.swing.JLabel(); + JLabel jLabel4 = new JLabel(); txtModel = new javax.swing.JTextField(); - jLabel2 = new javax.swing.JLabel(); + JLabel jLabel2 = new JLabel(); cmbRulesLevel = new javax.swing.JComboBox(); - jLabel5 = new javax.swing.JLabel(); + JLabel jLabel5 = new JLabel(); cmbEra = new javax.swing.JComboBox(); - jLabel3 = new javax.swing.JLabel(); + JLabel jLabel3 = new JLabel(); cmbTechBase = new javax.swing.JComboBox(); lblEraYears = new javax.swing.JLabel(); chkYearRestrict = new javax.swing.JCheckBox(); - jLabel81 = new javax.swing.JLabel(); + JLabel jLabel81 = new JLabel(); txtSource = new javax.swing.JTextField(); - lblProdYear = new javax.swing.JLabel(); + JLabel lblProdYear = new JLabel(); txtProdYear = new javax.swing.JTextField(); cmbProductionEra = new javax.swing.JComboBox(); - pnlChassis = new javax.swing.JPanel(); + JPanel pnlChassis = new JPanel(); cmbMotiveType = new javax.swing.JComboBox(); - jLabel7 = new javax.swing.JLabel(); - jLabel8 = new javax.swing.JLabel(); + JLabel jLabel7 = new JLabel(); + JLabel jLabel8 = new JLabel(); chkOmniVee = new javax.swing.JCheckBox(); chkTrailer = new javax.swing.JCheckBox(); spnTonnage = new javax.swing.JSpinner(); - jLabel9 = new javax.swing.JLabel(); + JLabel jLabel9 = new JLabel(); cmbEngineType = new javax.swing.JComboBox(); - jLabel32 = new javax.swing.JLabel(); + JLabel jLabel32 = new JLabel(); cmbTurret = new javax.swing.JComboBox(); lblVeeClass = new javax.swing.JLabel(); lblVeeLimits = new javax.swing.JLabel(); - jLabel91 = new javax.swing.JLabel(); + JLabel jLabel91 = new JLabel(); spnHeatSinks = new javax.swing.JSpinner(); spnTurretTonnage = new javax.swing.JSpinner(); - pnlMovement = new javax.swing.JPanel(); - jLabel10 = new javax.swing.JLabel(); + JPanel pnlMovement = new JPanel(); + JLabel jLabel10 = new JLabel(); spnCruiseMP = new javax.swing.JSpinner(); - jLabel11 = new javax.swing.JLabel(); + JLabel jLabel11 = new JLabel(); lblFlankMP = new javax.swing.JLabel(); - jLabel13 = new javax.swing.JLabel(); + JLabel jLabel13 = new JLabel(); spnJumpMP = new javax.swing.JSpinner(); - pnlChassisMods = new javax.swing.JPanel(); + JPanel pnlChassisMods = new JPanel(); chkFlotationHull = new javax.swing.JCheckBox(); chkLimitedAmph = new javax.swing.JCheckBox(); chkFullAmph = new javax.swing.JCheckBox(); chkDuneBuggy = new javax.swing.JCheckBox(); chkEnviroSealing = new javax.swing.JCheckBox(); - pnlExperimental = new javax.swing.JPanel(); + JPanel pnlExperimental = new JPanel(); chkArmoredMotive = new javax.swing.JCheckBox(); chkCommandConsole = new javax.swing.JCheckBox(); chkEscapePod = new javax.swing.JCheckBox(); @@ -1120,213 +992,214 @@ private void initComponents() { chkJetBooster = new javax.swing.JCheckBox(); chkSupercharger = new javax.swing.JCheckBox(); chkSponsonTurret = new javax.swing.JCheckBox(); - jPanel11 = new javax.swing.JPanel(); + JPanel jPanel11 = new JPanel(); chkFractional = new javax.swing.JCheckBox(); - pnlSummary = new javax.swing.JPanel(); - jLabel12 = new javax.swing.JLabel(); - jLabel14 = new javax.swing.JLabel(); - jLabel15 = new javax.swing.JLabel(); - jLabel16 = new javax.swing.JLabel(); - jLabel17 = new javax.swing.JLabel(); + JPanel pnlSummary = new JPanel(); + JLabel jLabel12 = new JLabel(); + JLabel jLabel14 = new JLabel(); + JLabel jLabel15 = new JLabel(); + JLabel jLabel16 = new JLabel(); + JLabel jLabel17 = new JLabel(); txtSumIntTons = new javax.swing.JTextField(); txtSumIntAV = new javax.swing.JTextField(); - jLabel18 = new javax.swing.JLabel(); + JLabel jLabel18 = new JLabel(); txtSumEngTons = new javax.swing.JTextField(); txtSumEngAV = new javax.swing.JTextField(); - jLabel19 = new javax.swing.JLabel(); + JLabel jLabel19 = new JLabel(); txtSumLifTons = new javax.swing.JTextField(); txtSumLifAV = new javax.swing.JTextField(); txtSumEngSpace = new javax.swing.JTextField(); - jLabel20 = new javax.swing.JLabel(); + JLabel jLabel20 = new JLabel(); txtSumConTons = new javax.swing.JTextField(); txtSumConAV = new javax.swing.JTextField(); - jLabel21 = new javax.swing.JLabel(); + JLabel jLabel21 = new JLabel(); txtSumJJTons = new javax.swing.JTextField(); - txtSumJJSpace = new javax.swing.JTextField(); + JTextField txtSumJJSpace = new JTextField(); txtSumJJAV = new javax.swing.JTextField(); - jLabel22 = new javax.swing.JLabel(); + JLabel jLabel22 = new JLabel(); txtSumHSTons = new javax.swing.JTextField(); txtSumHSAV = new javax.swing.JTextField(); - jLabel23 = new javax.swing.JLabel(); + JLabel jLabel23 = new JLabel(); txtSumArmTons = new javax.swing.JTextField(); txtSumArmSpace = new javax.swing.JTextField(); txtSumArmAV = new javax.swing.JTextField(); - jLabel24 = new javax.swing.JLabel(); + JLabel jLabel24 = new JLabel(); txtSumTurTons = new javax.swing.JTextField(); txtSumTurAV = new javax.swing.JTextField(); - jLabel25 = new javax.swing.JLabel(); + JLabel jLabel25 = new JLabel(); txtSumRTuTons = new javax.swing.JTextField(); txtSumRTuAV = new javax.swing.JTextField(); - jLabel26 = new javax.swing.JLabel(); + JLabel jLabel26 = new JLabel(); txtSumSpnTons = new javax.swing.JTextField(); txtSumSpnAV = new javax.swing.JTextField(); - jLabel27 = new javax.swing.JLabel(); + JLabel jLabel27 = new JLabel(); txtSumPATons = new javax.swing.JTextField(); txtSumPAAV = new javax.swing.JTextField(); - pnlInformation = new javax.swing.JPanel(); - titleSuspension = new javax.swing.JLabel(); + JPanel pnlInformation = new JPanel(); + JLabel titleSuspension = new JLabel(); lblSupensionFacter = new javax.swing.JLabel(); - titleMinEngTon = new javax.swing.JLabel(); + JLabel titleMinEngTon = new JLabel(); lblMinEngineTons = new javax.swing.JLabel(); - titleBaseEngRate = new javax.swing.JLabel(); + JLabel titleBaseEngRate = new JLabel(); lblBaseEngineRating = new javax.swing.JLabel(); - titleFinalEngRate = new javax.swing.JLabel(); + JLabel titleFinalEngRate = new JLabel(); lblFinalEngineRating = new javax.swing.JLabel(); - titleFreeHeatSinks = new javax.swing.JLabel(); + JLabel titleFreeHeatSinks = new JLabel(); lblFreeHeatSinks = new javax.swing.JLabel(); - titleCrew = new javax.swing.JLabel(); + JLabel titleCrew = new JLabel(); lblNumCrew = new javax.swing.JLabel(); - pnlOmniInfo = new javax.swing.JPanel(); + JPanel pnlOmniInfo = new JPanel(); btnLockChassis = new javax.swing.JButton(); btnAddVariant = new javax.swing.JButton(); btnDeleteVariant = new javax.swing.JButton(); btnRenameVariant = new javax.swing.JButton(); - jPanel6 = new javax.swing.JPanel(); - pnlRightArmor = new javax.swing.JPanel(); + JPanel jPanel6 = new JPanel(); + JPanel pnlRightArmor = new JPanel(); lblRightIntPts = new javax.swing.JLabel(); - jLabel40 = new javax.swing.JLabel(); - jLabel46 = new javax.swing.JLabel(); + JLabel jLabel40 = new JLabel(); + JLabel jLabel46 = new JLabel(); spnRightArmor = new javax.swing.JSpinner(); - pnlFrontArmor = new javax.swing.JPanel(); + JPanel pnlFrontArmor = new JPanel(); lblFrontIntPts = new javax.swing.JLabel(); - jLabel45 = new javax.swing.JLabel(); - jLabel47 = new javax.swing.JLabel(); + JLabel jLabel45 = new JLabel(); + JLabel jLabel47 = new JLabel(); spnFrontArmor = new javax.swing.JSpinner(); - pnlLeftArmor = new javax.swing.JPanel(); + JPanel pnlLeftArmor = new JPanel(); lblLeftIntPts = new javax.swing.JLabel(); - jLabel41 = new javax.swing.JLabel(); - jLabel48 = new javax.swing.JLabel(); + JLabel jLabel41 = new JLabel(); + JLabel jLabel48 = new JLabel(); spnLeftArmor = new javax.swing.JSpinner(); - pnlRearArmor = new javax.swing.JPanel(); + JPanel pnlRearArmor = new JPanel(); lblRearIntPts = new javax.swing.JLabel(); - jLabel44 = new javax.swing.JLabel(); - jLabel49 = new javax.swing.JLabel(); + JLabel jLabel44 = new JLabel(); + JLabel jLabel49 = new JLabel(); spnRearArmor = new javax.swing.JSpinner(); pnlTurretArmor = new javax.swing.JPanel(); lblTurretIntPts = new javax.swing.JLabel(); - jLabel42 = new javax.swing.JLabel(); - jLabel50 = new javax.swing.JLabel(); + JLabel jLabel42 = new JLabel(); + JLabel jLabel50 = new JLabel(); spnTurretArmor = new javax.swing.JSpinner(); pnlRearTurretArmor = new javax.swing.JPanel(); lblRearTurretIntPts = new javax.swing.JLabel(); - jLabel43 = new javax.swing.JLabel(); - jLabel51 = new javax.swing.JLabel(); + JLabel jLabel43 = new JLabel(); + JLabel jLabel51 = new JLabel(); spnRearTurretArmor = new javax.swing.JSpinner(); pnlRotorArmor = new javax.swing.JPanel(); lblRotorIntPts = new javax.swing.JLabel(); - jLabel92 = new javax.swing.JLabel(); - jLabel93 = new javax.swing.JLabel(); + JLabel jLabel92 = new JLabel(); + JLabel jLabel93 = new JLabel(); spnRotorArmor = new javax.swing.JSpinner(); - jPanel7 = new javax.swing.JPanel(); - jLabel52 = new javax.swing.JLabel(); + JPanel jPanel7 = new JPanel(); + JLabel jLabel52 = new JLabel(); cmbArmorType = new javax.swing.JComboBox(); chkBalanceLRArmor = new javax.swing.JCheckBox(); chkBalanceFRArmor = new javax.swing.JCheckBox(); btnSetArmorTons = new javax.swing.JButton(); btnUseRemaining = new javax.swing.JButton(); btnMaximize = new javax.swing.JButton(); - jPanel8 = new javax.swing.JPanel(); - jLabel34 = new javax.swing.JLabel(); - jLabel36 = new javax.swing.JLabel(); + JPanel jPanel8 = new JPanel(); + JLabel jLabel34 = new JLabel(); + JLabel jLabel36 = new JLabel(); lblArmorTotals = new javax.swing.JLabel(); lblArmorCoverage = new javax.swing.JLabel(); txtArmorTons = new javax.swing.JTextField(); txtArmorSpace = new javax.swing.JTextField(); lblArmorTonsWasted = new javax.swing.JLabel(); lblArmorLeftInLot = new javax.swing.JLabel(); - pnlEquipment = new javax.swing.JPanel(); + JPanel pnlEquipment = new JPanel(); pnlEquipInfo = new javax.swing.JPanel(); - lblAvailability = new javax.swing.JLabel(); - lblSW = new javax.swing.JLabel(); - lblCI = new javax.swing.JLabel(); + JLabel lblAvailability = new JLabel(); + JLabel lblSW = new JLabel(); + JLabel lblCI = new JLabel(); lblInfoAVSL = new javax.swing.JLabel(); lblInfoAVSW = new javax.swing.JLabel(); lblInfoAVCI = new javax.swing.JLabel(); - lblIntro = new javax.swing.JLabel(); - lblExtinct = new javax.swing.JLabel(); - lblReintro = new javax.swing.JLabel(); + JLabel lblIntro = new JLabel(); + JLabel lblExtinct = new JLabel(); + JLabel lblReintro = new JLabel(); lblInfoIntro = new javax.swing.JLabel(); lblInfoExtinct = new javax.swing.JLabel(); lblInfoReintro = new javax.swing.JLabel(); - lblName = new javax.swing.JLabel(); - lblType = new javax.swing.JLabel(); - jLabel59 = new javax.swing.JLabel(); - jLabel60 = new javax.swing.JLabel(); - jLabel61 = new javax.swing.JLabel(); - lblInfoName = new javax.swing.JLabel(); + JLabel lblName = new JLabel(); + JLabel lblType = new JLabel(); + JLabel jLabel59 = new JLabel(); + JLabel jLabel60 = new JLabel(); + JLabel jLabel61 = new JLabel(); + JLabel lblInfoName = new JLabel(); lblInfoType = new javax.swing.JLabel(); lblInfoHeat = new javax.swing.JLabel(); lblInfoDamage = new javax.swing.JLabel(); lblInfoRange = new javax.swing.JLabel(); - jSeparator17 = new javax.swing.JSeparator(); - jLabel62 = new javax.swing.JLabel(); - jLabel63 = new javax.swing.JLabel(); - jLabel64 = new javax.swing.JLabel(); - jLabel65 = new javax.swing.JLabel(); + JSeparator jSeparator17 = new JSeparator(); + JLabel jLabel62 = new JLabel(); + JLabel jLabel63 = new JLabel(); + JLabel jLabel64 = new JLabel(); + JLabel jLabel65 = new JLabel(); lblInfoAmmo = new javax.swing.JLabel(); lblInfoTonnage = new javax.swing.JLabel(); lblInfoCrits = new javax.swing.JLabel(); lblInfoSpecials = new javax.swing.JLabel(); - jSeparator20 = new javax.swing.JSeparator(); - jLabel66 = new javax.swing.JLabel(); + JSeparator jSeparator20 = new JSeparator(); + JLabel jLabel66 = new JLabel(); lblInfoCost = new javax.swing.JLabel(); - jLabel67 = new javax.swing.JLabel(); + JLabel jLabel67 = new JLabel(); lblInfoBV = new javax.swing.JLabel(); - jLabel68 = new javax.swing.JLabel(); - lblMMName = new javax.swing.JLabel(); + JLabel jLabel68 = new JLabel(); + JLabel lblMMName = new JLabel(); lblMMNameInfo = new javax.swing.JLabel(); lblInfoMountRestrict = new javax.swing.JLabel(); - jLabel69 = new javax.swing.JLabel(); + JLabel jLabel69 = new JLabel(); lblInfoRulesLevel = new javax.swing.JLabel(); - jLabel6 = new javax.swing.JLabel(); + JLabel jLabel6 = new JLabel(); lblInfoAVDA = new javax.swing.JLabel(); - pnlSpecials = new javax.swing.JPanel(); - jLabel37 = new javax.swing.JLabel(); + JPanel pnlSpecials = new JPanel(); + JLabel jLabel37 = new JLabel(); chkUseTC = new javax.swing.JCheckBox(); chkFCSAIV = new javax.swing.JCheckBox(); chkFCSAV = new javax.swing.JCheckBox(); chkFCSApollo = new javax.swing.JCheckBox(); chkCASE = new javax.swing.JCheckBox(); - pnlControls = new javax.swing.JPanel(); - btnRemoveEquip = new javax.swing.JButton(); - btnClearEquip = new javax.swing.JButton(); - btnAddEquip = new javax.swing.JButton(); + JPanel pnlControls = new JPanel(); + JButton btnRemoveEquip = new JButton(); + JButton btnClearEquip = new JButton(); + // Variables declaration - do not modify//GEN-BEGIN:variables + JButton btnAddEquip = new JButton(); cmbNumEquips = new javax.swing.JComboBox(); - scrLocations = new javax.swing.JScrollPane(); + JScrollPane scrLocations = new JScrollPane(); cmbLocation = new javax.swing.JList(); - pnlSelected = new javax.swing.JPanel(); - scrSelectedEquip = new javax.swing.JScrollPane(); + JPanel pnlSelected = new JPanel(); + JScrollPane scrSelectedEquip = new JScrollPane(); lstSelectedEquipment = new javax.swing.JList(); tbpWeaponChooser = new javax.swing.JTabbedPane(); - pnlBallistic = new javax.swing.JPanel(); - scrPhysical = new javax.swing.JScrollPane(); + JPanel pnlBallistic = new JPanel(); + JScrollPane scrPhysical = new JScrollPane(); lstChooseBallistic = new javax.swing.JList(); - pnlEnergy = new javax.swing.JPanel(); - jSeparator7 = new javax.swing.JSeparator(); - scrMissile = new javax.swing.JScrollPane(); + JPanel pnlEnergy = new JPanel(); + JSeparator jSeparator7 = new JSeparator(); + JScrollPane scrMissile = new JScrollPane(); lstChooseEnergy = new javax.swing.JList(); - jSeparator8 = new javax.swing.JSeparator(); - pnlMissile = new javax.swing.JPanel(); - scrEquipment = new javax.swing.JScrollPane(); + JSeparator jSeparator8 = new JSeparator(); + JPanel pnlMissile = new JPanel(); + JScrollPane scrEquipment = new JScrollPane(); lstChooseMissile = new javax.swing.JList(); - pnlPhysical = new javax.swing.JPanel(); - scrEnergy = new javax.swing.JScrollPane(); + JPanel pnlPhysical = new JPanel(); + JScrollPane scrEnergy = new JScrollPane(); lstChoosePhysical = new javax.swing.JList(); - pnlEquipmentChooser = new javax.swing.JPanel(); - scrBallistic = new javax.swing.JScrollPane(); + JPanel pnlEquipmentChooser = new JPanel(); + JScrollPane scrBallistic = new JScrollPane(); lstChooseEquipment = new javax.swing.JList(); - pnlArtillery = new javax.swing.JPanel(); - scrArtillery = new javax.swing.JScrollPane(); + JPanel pnlArtillery = new JPanel(); + JScrollPane scrArtillery = new JScrollPane(); lstChooseArtillery = new javax.swing.JList(); - pnlAmmunition = new javax.swing.JPanel(); - scrAmmo = new javax.swing.JScrollPane(); + JPanel pnlAmmunition = new JPanel(); + JScrollPane scrAmmo = new JScrollPane(); lstChooseAmmunition = new javax.swing.JList(); - pnlFluff = new javax.swing.JPanel(); - pnlExport = new javax.swing.JPanel(); - btnExportTXT = new javax.swing.JButton(); - btnExportHTML = new javax.swing.JButton(); - btnExportMTF = new javax.swing.JButton(); - tbpFluffEditors = new javax.swing.JTabbedPane(); + JPanel pnlFluff = new JPanel(); + JPanel pnlExport = new JPanel(); + JButton btnExportTXT = new JButton(); + JButton btnExportHTML = new JButton(); + JButton btnExportMTF = new JButton(); + JTabbedPane tbpFluffEditors = new JTabbedPane(); pnlOverview = new javax.swing.JPanel(); pnlCapabilities = new javax.swing.JPanel(); pnlHistory = new javax.swing.JPanel(); @@ -1334,45 +1207,45 @@ private void initComponents() { pnlVariants = new javax.swing.JPanel(); pnlNotables = new javax.swing.JPanel(); pnlAdditionalFluff = new javax.swing.JPanel(); - pnlManufacturers = new javax.swing.JPanel(); - lblManuInfo = new javax.swing.JLabel(); - jLabel83 = new javax.swing.JLabel(); - jLabel84 = new javax.swing.JLabel(); - jLabel85 = new javax.swing.JLabel(); - jLabel86 = new javax.swing.JLabel(); - jLabel87 = new javax.swing.JLabel(); - jLabel88 = new javax.swing.JLabel(); - jLabel89 = new javax.swing.JLabel(); + JPanel pnlManufacturers = new JPanel(); + JLabel lblManuInfo = new JLabel(); + JLabel jLabel83 = new JLabel(); + JLabel jLabel84 = new JLabel(); + JLabel jLabel85 = new JLabel(); + JLabel jLabel86 = new JLabel(); + JLabel jLabel87 = new JLabel(); + JLabel jLabel88 = new JLabel(); + JLabel jLabel89 = new JLabel(); txtManufacturer = new javax.swing.JTextField(); txtEngineManufacturer = new javax.swing.JTextField(); txtArmorModel = new javax.swing.JTextField(); txtChassisModel = new javax.swing.JTextField(); txtCommSystem = new javax.swing.JTextField(); txtTNTSystem = new javax.swing.JTextField(); - pnlWeaponsManufacturers = new javax.swing.JPanel(); + JPanel pnlWeaponsManufacturers = new JPanel(); chkIndividualWeapons = new javax.swing.JCheckBox(); - scpWeaponManufacturers = new javax.swing.JScrollPane(); - scpManufacturers = new javax.swing.JScrollPane(); + JScrollPane scpWeaponManufacturers = new JScrollPane(); + JScrollPane scpManufacturers = new JScrollPane(); tblWeaponManufacturers = new javax.swing.JTable(); txtManufacturerLocation = new javax.swing.JTextField(); - jLabel90 = new javax.swing.JLabel(); + JLabel jLabel90 = new JLabel(); txtJJModel = new javax.swing.JTextField(); - pnlQuirks = new javax.swing.JPanel(); - lblBattleMechQuirks = new javax.swing.JLabel(); - scpQuirkTable = new javax.swing.JScrollPane(); - tblQuirks = new javax.swing.JTable(); - btnAddQuirk = new javax.swing.JButton(); - pnlBFStats = new javax.swing.JPanel(); - jLabel70 = new javax.swing.JLabel(); - jLabel71 = new javax.swing.JLabel(); - jLabel72 = new javax.swing.JLabel(); - jLabel73 = new javax.swing.JLabel(); - jLabel74 = new javax.swing.JLabel(); - jLabel75 = new javax.swing.JLabel(); - jLabel76 = new javax.swing.JLabel(); - jLabel77 = new javax.swing.JLabel(); - jLabel78 = new javax.swing.JLabel(); - jLabel79 = new javax.swing.JLabel(); + JPanel pnlQuirks = new JPanel(); + JLabel lblBattleMechQuirks = new JLabel(); + JScrollPane scpQuirkTable = new JScrollPane(); + JTable tblQuirks = new JTable(); + JButton btnAddQuirk = new JButton(); + JPanel pnlBFStats = new JPanel(); + JLabel jLabel70 = new JLabel(); + JLabel jLabel71 = new JLabel(); + JLabel jLabel72 = new JLabel(); + JLabel jLabel73 = new JLabel(); + JLabel jLabel74 = new JLabel(); + JLabel jLabel75 = new JLabel(); + JLabel jLabel76 = new JLabel(); + JLabel jLabel77 = new JLabel(); + JLabel jLabel78 = new JLabel(); + JLabel jLabel79 = new JLabel(); lblBFMV = new javax.swing.JLabel(); lblBFWt = new javax.swing.JLabel(); lblBFOV = new javax.swing.JLabel(); @@ -1383,59 +1256,59 @@ private void initComponents() { lblBFArmor = new javax.swing.JLabel(); lblBFStructure = new javax.swing.JLabel(); lblBFSA = new javax.swing.JLabel(); - jLabel80 = new javax.swing.JLabel(); + JLabel jLabel80 = new JLabel(); lblBFPoints = new javax.swing.JLabel(); - jPanel10 = new javax.swing.JPanel(); - jScrollPane14 = new javax.swing.JScrollPane(); + JPanel pnlConversionSteps = new JPanel(); + JScrollPane scpBFConversion = new JScrollPane(); jTextAreaBFConversion = new javax.swing.JTextArea(); - pnlImage = new javax.swing.JPanel(); + JPanel pnlImage = new JPanel(); lblFluffImage = new javax.swing.JLabel(); - pnlImageButtons = new javax.swing.JPanel(); - btnLoadImage = new javax.swing.JButton(); - btnClearImage = new javax.swing.JButton(); - jMenuBar1 = new javax.swing.JMenuBar(); - mnuFile = new javax.swing.JMenu(); - mnuNewMech = new javax.swing.JMenuItem(); - mnuLoad = new javax.swing.JMenuItem(); - mnuOpen = new javax.swing.JMenuItem(); - mnuImport = new javax.swing.JMenu(); - mnuImportHMP = new javax.swing.JMenuItem(); - mnuBatchHMP = new javax.swing.JMenuItem(); - jSeparator22 = new javax.swing.JSeparator(); - mnuSave = new javax.swing.JMenuItem(); - mnuSaveAs = new javax.swing.JMenuItem(); - mnuExport = new javax.swing.JMenu(); - mnuExportHTML = new javax.swing.JMenuItem(); - mnuExportMTF = new javax.swing.JMenuItem(); - mnuExportTXT = new javax.swing.JMenuItem(); - mnuExportClipboard = new javax.swing.JMenuItem(); - mnuCreateTCGMech = new javax.swing.JMenuItem(); - jSeparator23 = new javax.swing.JSeparator(); - mnuPrint = new javax.swing.JMenu(); - mnuPrintPreview = new javax.swing.JMenuItem(); - jSeparator24 = new javax.swing.JSeparator(); - mnuExit = new javax.swing.JMenuItem(); - mnuClearFluff = new javax.swing.JMenu(); - mnuSummary = new javax.swing.JMenuItem(); - mnuCostBVBreakdown = new javax.swing.JMenuItem(); - mnuTextTRO = new javax.swing.JMenuItem(); - jSeparator26 = new javax.swing.JSeparator(); - mnuBFB = new javax.swing.JMenuItem(); - jSeparator27 = new javax.swing.JSeparator(); - mnuOptions = new javax.swing.JMenuItem(); + JPanel pnlImageButtons = new JPanel(); + JButton btnLoadImage = new JButton(); + JButton btnClearImage = new JButton(); + JMenuBar jMenuBar1 = new JMenuBar(); + JMenu mnuFile = new JMenu(); + JMenuItem mnuNewMech = new JMenuItem(); + JMenuItem mnuLoad = new JMenuItem(); + JMenuItem mnuOpen = new JMenuItem(); + JMenu mnuImport = new JMenu(); + JMenuItem mnuImportHMP = new JMenuItem(); + JMenuItem mnuBatchHMP = new JMenuItem(); + JSeparator jSeparator22 = new JSeparator(); + JMenuItem mnuSave = new JMenuItem(); + JMenuItem mnuSaveAs = new JMenuItem(); + JMenu mnuExport = new JMenu(); + JMenuItem mnuExportHTML = new JMenuItem(); + JMenuItem mnuExportMTF = new JMenuItem(); + JMenuItem mnuExportTXT = new JMenuItem(); + JMenuItem mnuExportClipboard = new JMenuItem(); + JMenuItem mnuCreateTCGMech = new JMenuItem(); + JSeparator jSeparator23 = new JSeparator(); + JMenu mnuPrint = new JMenu(); + JMenuItem mnuPrintPreview = new JMenuItem(); + JSeparator jSeparator24 = new JSeparator(); + JMenuItem mnuExit = new JMenuItem(); + JMenu mnuClearFluff = new JMenu(); + JMenuItem mnuSummary = new JMenuItem(); + JMenuItem mnuCostBVBreakdown = new JMenuItem(); + JMenuItem mnuTextTRO = new JMenuItem(); + JSeparator jSeparator26 = new JSeparator(); + JMenuItem mnuBFB = new JMenuItem(); + JSeparator jSeparator27 = new JSeparator(); + JMenuItem mnuOptions = new JMenuItem(); mnuViewToolbar = new javax.swing.JCheckBoxMenuItem(); - mnuClearUserData = new javax.swing.JMenuItem(); - jSeparator30 = new javax.swing.JSeparator(); + JMenuItem mnuClearUserData = new JMenuItem(); + JSeparator jSeparator30 = new JSeparator(); mnuUnlock = new javax.swing.JMenuItem(); - jMenuItem1 = new javax.swing.JMenuItem(); - mnuReloadEquipment = new javax.swing.JMenuItem(); - mnuHelp = new javax.swing.JMenu(); - mnuCredits = new javax.swing.JMenuItem(); - mnuAboutSSW = new javax.swing.JMenuItem(); + JMenuItem jMenuItem1 = new JMenuItem(); + JMenuItem mnuReloadEquipment = new JMenuItem(); + JMenu mnuHelp = new JMenu(); + JMenuItem mnuCredits = new JMenuItem(); + JMenuItem mnuAboutSSW = new JMenuItem(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); - setMaximumSize(new java.awt.Dimension(1600, 900)); - setMinimumSize(new java.awt.Dimension(1280, 650)); + setMaximumSize(new Dimension(1600, 900)); + setMinimumSize(new Dimension(1280, 650)); setResizable(true); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosed(java.awt.event.WindowEvent evt) { @@ -1446,49 +1319,49 @@ public void windowClosed(java.awt.event.WindowEvent evt) { txtInfoTonnage.setEditable(false); txtInfoTonnage.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtInfoTonnage.setText("Tonnage: 000.00"); - txtInfoTonnage.setMaximumSize(new java.awt.Dimension(110, 20)); - txtInfoTonnage.setMinimumSize(new java.awt.Dimension(110, 20)); - txtInfoTonnage.setPreferredSize(new java.awt.Dimension(110, 20)); + txtInfoTonnage.setMaximumSize(new Dimension(110, 20)); + txtInfoTonnage.setMinimumSize(new Dimension(110, 20)); + txtInfoTonnage.setPreferredSize(new Dimension(110, 20)); pnlInfoPane.add(txtInfoTonnage); txtInfoFreeTons.setEditable(false); txtInfoFreeTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtInfoFreeTons.setText("Free Tons: 000.00"); - txtInfoFreeTons.setMaximumSize(new java.awt.Dimension(115, 20)); - txtInfoFreeTons.setMinimumSize(new java.awt.Dimension(115, 20)); - txtInfoFreeTons.setPreferredSize(new java.awt.Dimension(115, 20)); + txtInfoFreeTons.setMaximumSize(new Dimension(115, 20)); + txtInfoFreeTons.setMinimumSize(new Dimension(115, 20)); + txtInfoFreeTons.setPreferredSize(new Dimension(115, 20)); pnlInfoPane.add(txtInfoFreeTons); txtInfoFreeCrits.setEditable(false); txtInfoFreeCrits.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtInfoFreeCrits.setText("Space: 00"); - txtInfoFreeCrits.setMaximumSize(new java.awt.Dimension(65, 20)); - txtInfoFreeCrits.setMinimumSize(new java.awt.Dimension(65, 20)); - txtInfoFreeCrits.setPreferredSize(new java.awt.Dimension(65, 20)); + txtInfoFreeCrits.setMaximumSize(new Dimension(65, 20)); + txtInfoFreeCrits.setMinimumSize(new Dimension(65, 20)); + txtInfoFreeCrits.setPreferredSize(new Dimension(65, 20)); pnlInfoPane.add(txtInfoFreeCrits); txtTurretInfo.setEditable(false); txtTurretInfo.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtTurretInfo.setText("Turret: 000.00"); - txtTurretInfo.setMaximumSize(new java.awt.Dimension(120, 20)); - txtTurretInfo.setMinimumSize(new java.awt.Dimension(120, 20)); - txtTurretInfo.setPreferredSize(new java.awt.Dimension(100, 20)); + txtTurretInfo.setMaximumSize(new Dimension(120, 20)); + txtTurretInfo.setMinimumSize(new Dimension(120, 20)); + txtTurretInfo.setPreferredSize(new Dimension(100, 20)); pnlInfoPane.add(txtTurretInfo); txtInfoBattleValue.setEditable(false); txtInfoBattleValue.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtInfoBattleValue.setText("BV: 00,000"); - txtInfoBattleValue.setMaximumSize(new java.awt.Dimension(75, 20)); - txtInfoBattleValue.setMinimumSize(new java.awt.Dimension(75, 20)); - txtInfoBattleValue.setPreferredSize(new java.awt.Dimension(75, 20)); + txtInfoBattleValue.setMaximumSize(new Dimension(75, 20)); + txtInfoBattleValue.setMinimumSize(new Dimension(75, 20)); + txtInfoBattleValue.setPreferredSize(new Dimension(75, 20)); pnlInfoPane.add(txtInfoBattleValue); txtInfoCost.setEditable(false); txtInfoCost.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtInfoCost.setText("Cost: 000,000,000,000.00"); - txtInfoCost.setMaximumSize(new java.awt.Dimension(165, 20)); - txtInfoCost.setMinimumSize(new java.awt.Dimension(165, 20)); - txtInfoCost.setPreferredSize(new java.awt.Dimension(165, 20)); + txtInfoCost.setMaximumSize(new Dimension(165, 20)); + txtInfoCost.setMinimumSize(new Dimension(165, 20)); + txtInfoCost.setPreferredSize(new Dimension(165, 20)); pnlInfoPane.add(txtInfoCost); tlbIconBar.setFloatable(false); @@ -1498,33 +1371,21 @@ public void windowClosed(java.awt.event.WindowEvent evt) { btnNewVee.setFocusable(false); btnNewVee.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnNewVee.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnNewVee.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnNewVeeActionPerformed(evt); - } - }); + btnNewVee.addActionListener(this::btnNewVeeActionPerformed); tlbIconBar.add(btnNewVee); btnOpen.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/folder-open-document.png"))); // NOI18N btnOpen.setFocusable(false); btnOpen.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnOpen.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnOpen.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnOpenActionPerformed(evt); - } - }); + btnOpen.addActionListener(this::btnOpenActionPerformed); tlbIconBar.add(btnOpen); btnSave.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/disk-black.png"))); // NOI18N btnSave.setFocusable(false); btnSave.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnSave.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnSave.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnSaveActionPerformed(evt); - } - }); + btnSave.addActionListener(this::btnSaveActionPerformed); tlbIconBar.add(btnSave); tlbIconBar.add(jSeparator1); @@ -1532,11 +1393,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnPrint.setFocusable(false); btnPrint.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnPrint.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnPrint.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnPrintActionPerformed(evt); - } - }); + btnPrint.addActionListener(this::btnPrintActionPerformed); tlbIconBar.add(btnPrint); tlbIconBar.add(jSeparator2); @@ -1545,11 +1402,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnExportClipboardIcon.setFocusable(false); btnExportClipboardIcon.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnExportClipboardIcon.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnExportClipboardIcon.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnExportClipboardIconActionPerformed(evt); - } - }); + btnExportClipboardIcon.addActionListener(this::btnExportClipboardIconActionPerformed); tlbIconBar.add(btnExportClipboardIcon); btnExportHTMLIcon.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/document-image.png"))); // NOI18N @@ -1557,11 +1410,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnExportHTMLIcon.setFocusable(false); btnExportHTMLIcon.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnExportHTMLIcon.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnExportHTMLIcon.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnExportHTMLIconActionPerformed(evt); - } - }); + btnExportHTMLIcon.addActionListener(this::btnExportHTMLIconActionPerformed); tlbIconBar.add(btnExportHTMLIcon); btnExportTextIcon.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/document-text.png"))); // NOI18N @@ -1569,11 +1418,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnExportTextIcon.setFocusable(false); btnExportTextIcon.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnExportTextIcon.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnExportTextIcon.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnExportTextIconActionPerformed(evt); - } - }); + btnExportTextIcon.addActionListener(this::btnExportTextIconActionPerformed); tlbIconBar.add(btnExportTextIcon); btnExportMTFIcon.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/document--arrow.png"))); // NOI18N @@ -1581,11 +1426,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnExportMTFIcon.setFocusable(false); btnExportMTFIcon.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnExportMTFIcon.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnExportMTFIcon.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnExportMTFIconActionPerformed(evt); - } - }); + btnExportMTFIcon.addActionListener(this::btnExportMTFIconActionPerformed); tlbIconBar.add(btnExportMTFIcon); btnChatInfo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/balloon.png"))); // NOI18N @@ -1593,11 +1434,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnChatInfo.setFocusable(false); btnChatInfo.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnChatInfo.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnChatInfo.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnChatInfoActionPerformed(evt); - } - }); + btnChatInfo.addActionListener(this::btnChatInfoActionPerformed); tlbIconBar.add(btnChatInfo); tlbIconBar.add(jSeparator3); tlbIconBar.add(jSeparator25); @@ -1607,11 +1444,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnAddToForceList.setFocusable(false); btnAddToForceList.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnAddToForceList.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnAddToForceList.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnAddToForceListActionPerformed(evt); - } - }); + btnAddToForceList.addActionListener(this::btnAddToForceListActionPerformed); tlbIconBar.add(btnAddToForceList); btnForceList.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/clipboard.png"))); // NOI18N @@ -1619,11 +1452,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnForceList.setFocusable(false); btnForceList.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnForceList.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnForceList.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnForceListActionPerformed(evt); - } - }); + btnForceList.addActionListener(this::btnForceListActionPerformed); tlbIconBar.add(btnForceList); tlbIconBar.add(jSeparator4); @@ -1631,11 +1460,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnOptions.setFocusable(false); btnOptions.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); btnOptions.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnOptions.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnOptionsActionPerformed(evt); - } - }); + btnOptions.addActionListener(this::btnOptionsActionPerformed); tlbIconBar.add(btnOptions); tlbIconBar.add(jSeparator21); @@ -1644,95 +1469,71 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { tlbIconBar.add(lblSelectVariant); cmbOmniVariant.setEnabled(false); - cmbOmniVariant.setMaximumSize(new java.awt.Dimension(150, 20)); - cmbOmniVariant.setMinimumSize(new java.awt.Dimension(150, 20)); - cmbOmniVariant.setPreferredSize(new java.awt.Dimension(150, 20)); - cmbOmniVariant.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cmbOmniVariantActionPerformed(evt); - } - }); + cmbOmniVariant.setMaximumSize(new Dimension(150, 20)); + cmbOmniVariant.setMinimumSize(new Dimension(150, 20)); + cmbOmniVariant.setPreferredSize(new Dimension(150, 20)); + cmbOmniVariant.addActionListener(this::cmbOmniVariantActionPerformed); tlbIconBar.add(cmbOmniVariant); jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Basic Information")); jLabel1.setText("Vehicle Name:"); - txtVehicleName.setMinimumSize(new java.awt.Dimension(150, 20)); - txtVehicleName.setPreferredSize(new java.awt.Dimension(150, 20)); + txtVehicleName.setMinimumSize(new Dimension(150, 20)); + txtVehicleName.setPreferredSize(new Dimension(150, 20)); jLabel4.setText("Model:"); - txtModel.setMinimumSize(new java.awt.Dimension(150, 20)); - txtModel.setPreferredSize(new java.awt.Dimension(150, 20)); + txtModel.setMinimumSize(new Dimension(150, 20)); + txtModel.setPreferredSize(new Dimension(150, 20)); jLabel2.setText("Rules Level:"); cmbRulesLevel.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Introductory", "Tournament Legal", "Advanced", "Experimental" })); cmbRulesLevel.setSelectedIndex(1); - cmbRulesLevel.setMinimumSize(new java.awt.Dimension(150, 20)); - cmbRulesLevel.setPreferredSize(new java.awt.Dimension(150, 20)); - cmbRulesLevel.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cmbRulesLevelActionPerformed(evt); - } - }); + cmbRulesLevel.setMinimumSize(new Dimension(150, 20)); + cmbRulesLevel.setPreferredSize(new Dimension(150, 20)); + cmbRulesLevel.addActionListener(this::cmbRulesLevelActionPerformed); jLabel5.setText("Era:"); cmbEra.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Age of War/Star League", "Succession Wars", "Clan Invasion", "Dark Ages", "All Eras (non-canon)" })); cmbEra.setSelectedIndex(1); - cmbEra.setMinimumSize(new java.awt.Dimension(150, 20)); - cmbEra.setPreferredSize(new java.awt.Dimension(150, 20)); - cmbEra.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cmbEraActionPerformed(evt); - } - }); + cmbEra.setMinimumSize(new Dimension(150, 20)); + cmbEra.setPreferredSize(new Dimension(150, 20)); + cmbEra.addActionListener(this::cmbEraActionPerformed); jLabel3.setText("Tech Base:"); cmbTechBase.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Inner Sphere", "Clan", "Mixed Tech" })); - cmbTechBase.setMinimumSize(new java.awt.Dimension(150, 20)); - cmbTechBase.setPreferredSize(new java.awt.Dimension(150, 20)); - cmbTechBase.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cmbTechBaseActionPerformed(evt); - } - }); + cmbTechBase.setMinimumSize(new Dimension(150, 20)); + cmbTechBase.setPreferredSize(new Dimension(150, 20)); + cmbTechBase.addActionListener(this::cmbTechBaseActionPerformed); lblEraYears.setText("2443~2800"); chkYearRestrict.setText("Restrict Availability by Year"); - chkYearRestrict.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkYearRestrictActionPerformed(evt); - } - }); + chkYearRestrict.addActionListener(this::chkYearRestrictActionPerformed); jLabel81.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel81.setText("Source:"); - txtSource.setMinimumSize(new java.awt.Dimension(150, 20)); - txtSource.setPreferredSize(new java.awt.Dimension(150, 20)); + txtSource.setMinimumSize(new Dimension(150, 20)); + txtSource.setPreferredSize(new Dimension(150, 20)); lblProdYear.setText("Prod Year/Era:"); txtProdYear.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtProdYear.setDisabledTextColor(new java.awt.Color(0, 0, 0)); - txtProdYear.setMaximumSize(new java.awt.Dimension(60, 20)); - txtProdYear.setMinimumSize(new java.awt.Dimension(60, 20)); - txtProdYear.setPreferredSize(new java.awt.Dimension(60, 20)); + txtProdYear.setMaximumSize(new Dimension(60, 20)); + txtProdYear.setMinimumSize(new Dimension(60, 20)); + txtProdYear.setPreferredSize(new Dimension(60, 20)); cmbProductionEra.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Age of War", "Star League", "Early Succession War", "LSW - LosTech", "LSW - Renaissance", "Clan Invasion", "Civil War", "Jihad", "Early Republic", "Late Republic", "Dark Ages", "ilClan" })); - cmbProductionEra.setMaximumSize(new java.awt.Dimension(90, 20)); - cmbProductionEra.setMinimumSize(new java.awt.Dimension(90, 20)); - cmbProductionEra.setPreferredSize(new java.awt.Dimension(90, 20)); - cmbProductionEra.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cmbProductionEraActionPerformed(evt); - } - }); + cmbProductionEra.setMaximumSize(new Dimension(90, 20)); + cmbProductionEra.setMinimumSize(new Dimension(90, 20)); + cmbProductionEra.setPreferredSize(new Dimension(90, 20)); + cmbProductionEra.addActionListener(this::cmbProductionEraActionPerformed); GroupLayout jPanel5Layout = new GroupLayout(jPanel5); jPanel5.setLayout(jPanel5Layout); @@ -1852,44 +1653,27 @@ public void mousePressed( MouseEvent e ) { txtProdYear.addMouseListener( mlProdYear ); pnlChassis.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Chassis")); - pnlChassis.setNextFocusableComponent(spnCruiseMP); cmbMotiveType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Hovercraft", "Naval (Displacement)", "Naval (Hydrofoil)", "Naval (Submarine)", "Tracked", "VTOL", "Wheeled", "WiGE", "Hovercraft (Super Heavy)", "Displacement (Super Heavy)" })); - cmbMotiveType.setMinimumSize(new java.awt.Dimension(150, 20)); - cmbMotiveType.setPreferredSize(new java.awt.Dimension(150, 20)); - cmbMotiveType.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cmbMotiveTypeActionPerformed(evt); - } - }); + cmbMotiveType.setMinimumSize(new Dimension(150, 20)); + cmbMotiveType.setPreferredSize(new Dimension(150, 20)); + cmbMotiveType.addActionListener(this::cmbMotiveTypeActionPerformed); jLabel7.setText("Motive Type:"); jLabel8.setText("Tonnage:"); chkOmniVee.setText("OmniVehicle"); - chkOmniVee.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkOmniVeeActionPerformed(evt); - } - }); + chkOmniVee.addActionListener(this::chkOmniVeeActionPerformed); chkTrailer.setText("Trailer"); chkTrailer.setEnabled(false); - chkTrailer.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkTrailerActionPerformed(evt); - } - }); + chkTrailer.addActionListener(this::chkTrailerActionPerformed); spnTonnage.setModel(new javax.swing.SpinnerNumberModel(10, 1, null, 1)); - spnTonnage.setMinimumSize(new java.awt.Dimension(45, 20)); - spnTonnage.setPreferredSize(new java.awt.Dimension(45, 20)); - spnTonnage.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnTonnageStateChanged(evt); - } - }); + spnTonnage.setMinimumSize(new Dimension(45, 20)); + spnTonnage.setPreferredSize(new Dimension(45, 20)); + spnTonnage.addChangeListener(this::spnTonnageStateChanged); spnTonnage.addFocusListener(new java.awt.event.FocusAdapter() { public void focusGained(java.awt.event.FocusEvent evt) { spnTonnageFocusGained(evt); @@ -1906,22 +1690,14 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { jLabel9.setText("Engine:"); cmbEngineType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "I.C.E.", "Fusion", "Light Fusion", "XL Fusion", "Compact Fusion" })); - cmbEngineType.setMinimumSize(new java.awt.Dimension(150, 20)); - cmbEngineType.setPreferredSize(new java.awt.Dimension(150, 20)); - cmbEngineType.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cmbEngineTypeActionPerformed(evt); - } - }); + cmbEngineType.setMinimumSize(new Dimension(150, 20)); + cmbEngineType.setPreferredSize(new Dimension(150, 20)); + cmbEngineType.addActionListener(this::cmbEngineTypeActionPerformed); jLabel32.setText("Turret:"); cmbTurret.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "No Turret", "Single Turret", "Dual Turret", "Sponson Turrets", "Chin Turret", "Mast Turret" })); - cmbTurret.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cmbTurretActionPerformed(evt); - } - }); + cmbTurret.addActionListener(this::cmbTurretActionPerformed); lblVeeClass.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); lblVeeClass.setText("Assault Vee"); @@ -1931,14 +1707,9 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jLabel91.setText("Heat Sinks:"); spnHeatSinks.setModel(new javax.swing.SpinnerNumberModel(10, 1, null, 1)); - spnHeatSinks.setMinimumSize(new java.awt.Dimension(45, 20)); - spnHeatSinks.setNextFocusableComponent(spnCruiseMP); - spnHeatSinks.setPreferredSize(new java.awt.Dimension(45, 20)); - spnHeatSinks.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnHeatSinksStateChanged(evt); - } - }); + spnHeatSinks.setMinimumSize(new Dimension(45, 20)); + spnHeatSinks.setPreferredSize(new Dimension(45, 20)); + spnHeatSinks.addChangeListener(this::spnHeatSinksStateChanged); spnHeatSinks.addFocusListener(new java.awt.event.FocusAdapter() { public void focusGained(java.awt.event.FocusEvent evt) { spnHeatSinksFocusGained(evt); @@ -1954,11 +1725,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { spnTurretTonnage.setModel(new javax.swing.SpinnerNumberModel(0.0d, 0.0d, 50.0d, 0.5d)); spnTurretTonnage.setEnabled(false); - spnTurretTonnage.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnTurretTonnageStateChanged(evt); - } - }); + spnTurretTonnage.addChangeListener(this::spnTurretTonnageStateChanged); GroupLayout pnlChassisLayout = new GroupLayout(pnlChassis); pnlChassis.setLayout(pnlChassisLayout); @@ -2045,18 +1812,13 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { ); pnlMovement.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Movement")); - pnlMovement.setNextFocusableComponent(pnlChassisMods); jLabel10.setText("Cruise MP:"); spnCruiseMP.setModel(new javax.swing.SpinnerNumberModel(1, 1, null, 1)); - spnCruiseMP.setMinimumSize(new java.awt.Dimension(45, 20)); - spnCruiseMP.setPreferredSize(new java.awt.Dimension(45, 20)); - spnCruiseMP.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnCruiseMPStateChanged(evt); - } - }); + spnCruiseMP.setMinimumSize(new Dimension(45, 20)); + spnCruiseMP.setPreferredSize(new Dimension(45, 20)); + spnCruiseMP.addChangeListener(this::spnCruiseMPStateChanged); spnCruiseMP.addInputMethodListener(new java.awt.event.InputMethodListener() { public void caretPositionChanged(java.awt.event.InputMethodEvent evt) { } @@ -2072,9 +1834,8 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { jLabel13.setText("Jump MP:"); spnJumpMP.setEnabled(false); - spnJumpMP.setMinimumSize(new java.awt.Dimension(45, 20)); - spnJumpMP.setNextFocusableComponent(chkFlotationHull); - spnJumpMP.setPreferredSize(new java.awt.Dimension(45, 20)); + spnJumpMP.setMinimumSize(new Dimension(45, 20)); + spnJumpMP.setPreferredSize(new Dimension(45, 20)); GroupLayout pnlMovementLayout = new GroupLayout(pnlMovement); pnlMovement.setLayout(pnlMovementLayout); @@ -2126,11 +1887,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { chkFlotationHull.setText("Flotation Hull"); chkFlotationHull.setEnabled(false); - chkFlotationHull.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkFlotationHullActionPerformed(evt); - } - }); + chkFlotationHull.addActionListener(this::chkFlotationHullActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; @@ -2139,11 +1896,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkLimitedAmph.setText("Limited Amphibious"); chkLimitedAmph.setEnabled(false); - chkLimitedAmph.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkLimitedAmphActionPerformed(evt); - } - }); + chkLimitedAmph.addActionListener(this::chkLimitedAmphActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; @@ -2152,11 +1905,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkFullAmph.setText("Fully Amphibious"); chkFullAmph.setEnabled(false); - chkFullAmph.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkFullAmphActionPerformed(evt); - } - }); + chkFullAmph.addActionListener(this::chkFullAmphActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; @@ -2165,11 +1914,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkDuneBuggy.setText("Dune Buggy"); chkDuneBuggy.setEnabled(false); - chkDuneBuggy.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkDuneBuggyActionPerformed(evt); - } - }); + chkDuneBuggy.addActionListener(this::chkDuneBuggyActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; @@ -2178,12 +1923,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkEnviroSealing.setText("Enviro (Vacuum) Sealing"); chkEnviroSealing.setEnabled(false); - chkEnviroSealing.setNextFocusableComponent(chkArmoredMotive); - chkEnviroSealing.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkEnviroSealingActionPerformed(evt); - } - }); + chkEnviroSealing.addActionListener(this::chkEnviroSealingActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; @@ -2200,35 +1940,21 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkEscapePod.setText("Combat Vehicle Escape Pod"); chkEscapePod.setEnabled(false); - chkEscapePod.setNextFocusableComponent(chkFractional); chkMinesweeper.setText("Minesweeper"); chkMinesweeper.setEnabled(false); chkJetBooster.setText("VTOL Jet Booster"); chkJetBooster.setEnabled(false); - chkJetBooster.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkJetBoosterActionPerformed(evt); - } - }); + chkJetBooster.addActionListener(this::chkJetBoosterActionPerformed); chkSupercharger.setText("Supercharger"); chkSupercharger.setEnabled(false); - chkSupercharger.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkSuperchargerActionPerformed(evt); - } - }); + chkSupercharger.addActionListener(this::chkSuperchargerActionPerformed); chkSponsonTurret.setText("Sponson Turret"); chkSponsonTurret.setEnabled(false); - chkSponsonTurret.setNextFocusableComponent(chkFractional); - chkSponsonTurret.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkSponsonTurretActionPerformed(evt); - } - }); + chkSponsonTurret.addActionListener(this::chkSponsonTurretActionPerformed); GroupLayout pnlExperimentalLayout = new GroupLayout(pnlExperimental); pnlExperimental.setLayout(pnlExperimentalLayout); @@ -2269,12 +1995,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkFractional.setText("Use Fractional Accounting"); chkFractional.setEnabled(false); - chkFractional.setNextFocusableComponent(txtVehicleName); - chkFractional.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkFractionalActionPerformed(evt); - } - }); + chkFractional.addActionListener(this::chkFractionalActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; @@ -2311,8 +2032,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumIntTons.setEditable(false); txtSumIntTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumIntTons.setText("000.00"); - txtSumIntTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumIntTons.setPreferredSize(new java.awt.Dimension(50, 20)); + txtSumIntTons.setMinimumSize(new Dimension(50, 20)); + txtSumIntTons.setPreferredSize(new Dimension(50, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; @@ -2322,8 +2043,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumIntAV.setEditable(false); txtSumIntAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumIntAV.setText("X/X-X-X"); - txtSumIntAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumIntAV.setPreferredSize(new java.awt.Dimension(65, 20)); + txtSumIntAV.setMinimumSize(new Dimension(65, 20)); + txtSumIntAV.setPreferredSize(new Dimension(65, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 1; @@ -2341,8 +2062,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumEngTons.setEditable(false); txtSumEngTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumEngTons.setText("000.00"); - txtSumEngTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumEngTons.setPreferredSize(new java.awt.Dimension(50, 20)); + txtSumEngTons.setMinimumSize(new Dimension(50, 20)); + txtSumEngTons.setPreferredSize(new Dimension(50, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 2; @@ -2352,8 +2073,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumEngAV.setEditable(false); txtSumEngAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumEngAV.setText("X/X-X-X"); - txtSumEngAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumEngAV.setPreferredSize(new java.awt.Dimension(65, 20)); + txtSumEngAV.setMinimumSize(new Dimension(65, 20)); + txtSumEngAV.setPreferredSize(new Dimension(65, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 2; @@ -2371,8 +2092,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumLifTons.setEditable(false); txtSumLifTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumLifTons.setText("000.00"); - txtSumLifTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumLifTons.setPreferredSize(new java.awt.Dimension(50, 20)); + txtSumLifTons.setMinimumSize(new Dimension(50, 20)); + txtSumLifTons.setPreferredSize(new Dimension(50, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 3; @@ -2382,8 +2103,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumLifAV.setEditable(false); txtSumLifAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumLifAV.setText("X/X-X-X"); - txtSumLifAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumLifAV.setPreferredSize(new java.awt.Dimension(65, 20)); + txtSumLifAV.setMinimumSize(new Dimension(65, 20)); + txtSumLifAV.setPreferredSize(new Dimension(65, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 3; @@ -2393,8 +2114,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumEngSpace.setEditable(false); txtSumEngSpace.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumEngSpace.setText("00"); - txtSumEngSpace.setMinimumSize(new java.awt.Dimension(40, 20)); - txtSumEngSpace.setPreferredSize(new java.awt.Dimension(40, 20)); + txtSumEngSpace.setMinimumSize(new Dimension(40, 20)); + txtSumEngSpace.setPreferredSize(new Dimension(40, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 2; @@ -2412,8 +2133,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumConTons.setEditable(false); txtSumConTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumConTons.setText("000.00"); - txtSumConTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumConTons.setPreferredSize(new java.awt.Dimension(50, 20)); + txtSumConTons.setMinimumSize(new Dimension(50, 20)); + txtSumConTons.setPreferredSize(new Dimension(50, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 4; @@ -2423,8 +2144,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumConAV.setEditable(false); txtSumConAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumConAV.setText("X/X-X-X"); - txtSumConAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumConAV.setPreferredSize(new java.awt.Dimension(65, 20)); + txtSumConAV.setMinimumSize(new Dimension(65, 20)); + txtSumConAV.setPreferredSize(new Dimension(65, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 4; @@ -2442,8 +2163,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumJJTons.setEditable(false); txtSumJJTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumJJTons.setText("000.00"); - txtSumJJTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumJJTons.setPreferredSize(new java.awt.Dimension(50, 20)); + txtSumJJTons.setMinimumSize(new Dimension(50, 20)); + txtSumJJTons.setPreferredSize(new Dimension(50, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 5; @@ -2453,8 +2174,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumJJSpace.setEditable(false); txtSumJJSpace.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumJJSpace.setText("00"); - txtSumJJSpace.setMinimumSize(new java.awt.Dimension(40, 20)); - txtSumJJSpace.setPreferredSize(new java.awt.Dimension(40, 20)); + txtSumJJSpace.setMinimumSize(new Dimension(40, 20)); + txtSumJJSpace.setPreferredSize(new Dimension(40, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 5; @@ -2464,8 +2185,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumJJAV.setEditable(false); txtSumJJAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumJJAV.setText("X/X-X-X"); - txtSumJJAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumJJAV.setPreferredSize(new java.awt.Dimension(65, 20)); + txtSumJJAV.setMinimumSize(new Dimension(65, 20)); + txtSumJJAV.setPreferredSize(new Dimension(65, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 5; @@ -2483,8 +2204,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumHSTons.setEditable(false); txtSumHSTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumHSTons.setText("000.00"); - txtSumHSTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumHSTons.setPreferredSize(new java.awt.Dimension(50, 20)); + txtSumHSTons.setMinimumSize(new Dimension(50, 20)); + txtSumHSTons.setPreferredSize(new Dimension(50, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 6; @@ -2494,8 +2215,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumHSAV.setEditable(false); txtSumHSAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumHSAV.setText("X/X-X-X"); - txtSumHSAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumHSAV.setPreferredSize(new java.awt.Dimension(65, 20)); + txtSumHSAV.setMinimumSize(new Dimension(65, 20)); + txtSumHSAV.setPreferredSize(new Dimension(65, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 6; @@ -2513,8 +2234,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumArmTons.setEditable(false); txtSumArmTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumArmTons.setText("000.00"); - txtSumArmTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumArmTons.setPreferredSize(new java.awt.Dimension(50, 20)); + txtSumArmTons.setMinimumSize(new Dimension(50, 20)); + txtSumArmTons.setPreferredSize(new Dimension(50, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 7; @@ -2524,8 +2245,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumArmSpace.setEditable(false); txtSumArmSpace.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumArmSpace.setText("00"); - txtSumArmSpace.setMinimumSize(new java.awt.Dimension(40, 20)); - txtSumArmSpace.setPreferredSize(new java.awt.Dimension(40, 20)); + txtSumArmSpace.setMinimumSize(new Dimension(40, 20)); + txtSumArmSpace.setPreferredSize(new Dimension(40, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 7; @@ -2535,8 +2256,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumArmAV.setEditable(false); txtSumArmAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumArmAV.setText("X/X-X-X"); - txtSumArmAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumArmAV.setPreferredSize(new java.awt.Dimension(65, 20)); + txtSumArmAV.setMinimumSize(new Dimension(65, 20)); + txtSumArmAV.setPreferredSize(new Dimension(65, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 7; @@ -2554,8 +2275,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumTurTons.setEditable(false); txtSumTurTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumTurTons.setText("000.00"); - txtSumTurTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumTurTons.setPreferredSize(new java.awt.Dimension(50, 20)); + txtSumTurTons.setMinimumSize(new Dimension(50, 20)); + txtSumTurTons.setPreferredSize(new Dimension(50, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 8; @@ -2565,8 +2286,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumTurAV.setEditable(false); txtSumTurAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumTurAV.setText("X/X-X-X"); - txtSumTurAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumTurAV.setPreferredSize(new java.awt.Dimension(65, 20)); + txtSumTurAV.setMinimumSize(new Dimension(65, 20)); + txtSumTurAV.setPreferredSize(new Dimension(65, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 8; @@ -2584,8 +2305,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumRTuTons.setEditable(false); txtSumRTuTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumRTuTons.setText("000.00"); - txtSumRTuTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumRTuTons.setPreferredSize(new java.awt.Dimension(50, 20)); + txtSumRTuTons.setMinimumSize(new Dimension(50, 20)); + txtSumRTuTons.setPreferredSize(new Dimension(50, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 9; @@ -2595,8 +2316,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumRTuAV.setEditable(false); txtSumRTuAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumRTuAV.setText("X/X-X-X"); - txtSumRTuAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumRTuAV.setPreferredSize(new java.awt.Dimension(65, 20)); + txtSumRTuAV.setMinimumSize(new Dimension(65, 20)); + txtSumRTuAV.setPreferredSize(new Dimension(65, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 9; @@ -2614,8 +2335,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumSpnTons.setEditable(false); txtSumSpnTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumSpnTons.setText("000.00"); - txtSumSpnTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumSpnTons.setPreferredSize(new java.awt.Dimension(50, 20)); + txtSumSpnTons.setMinimumSize(new Dimension(50, 20)); + txtSumSpnTons.setPreferredSize(new Dimension(50, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 10; @@ -2625,8 +2346,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumSpnAV.setEditable(false); txtSumSpnAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumSpnAV.setText("X/X-X-X"); - txtSumSpnAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumSpnAV.setPreferredSize(new java.awt.Dimension(65, 20)); + txtSumSpnAV.setMinimumSize(new Dimension(65, 20)); + txtSumSpnAV.setPreferredSize(new Dimension(65, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 10; @@ -2644,8 +2365,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumPATons.setEditable(false); txtSumPATons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumPATons.setText("000.00"); - txtSumPATons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumPATons.setPreferredSize(new java.awt.Dimension(50, 20)); + txtSumPATons.setMinimumSize(new Dimension(50, 20)); + txtSumPATons.setPreferredSize(new Dimension(50, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 11; @@ -2655,8 +2376,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumPAAV.setEditable(false); txtSumPAAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumPAAV.setText("X/X-X-X"); - txtSumPAAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumPAAV.setPreferredSize(new java.awt.Dimension(65, 20)); + txtSumPAAV.setMinimumSize(new Dimension(65, 20)); + txtSumPAAV.setPreferredSize(new Dimension(65, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 11; @@ -2760,14 +2481,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnLockChassis.setText("Lock Chassis"); btnLockChassis.setEnabled(false); - btnLockChassis.setMaximumSize(new java.awt.Dimension(200, 23)); - btnLockChassis.setMinimumSize(new java.awt.Dimension(105, 23)); - btnLockChassis.setPreferredSize(new java.awt.Dimension(120, 23)); - btnLockChassis.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnLockChassisActionPerformed(evt); - } - }); + btnLockChassis.setMaximumSize(new Dimension(200, 23)); + btnLockChassis.setMinimumSize(new Dimension(105, 23)); + btnLockChassis.setPreferredSize(new Dimension(120, 23)); + btnLockChassis.addActionListener(this::btnLockChassisActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; @@ -2776,14 +2493,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnAddVariant.setText("Add Variant"); btnAddVariant.setEnabled(false); - btnAddVariant.setMaximumSize(new java.awt.Dimension(200, 23)); - btnAddVariant.setMinimumSize(new java.awt.Dimension(80, 23)); - btnAddVariant.setPreferredSize(new java.awt.Dimension(120, 23)); - btnAddVariant.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnAddVariantActionPerformed(evt); - } - }); + btnAddVariant.setMaximumSize(new Dimension(200, 23)); + btnAddVariant.setMinimumSize(new Dimension(80, 23)); + btnAddVariant.setPreferredSize(new Dimension(120, 23)); + btnAddVariant.addActionListener(this::btnAddVariantActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; @@ -2792,14 +2505,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnDeleteVariant.setText("Delete Variant"); btnDeleteVariant.setEnabled(false); - btnDeleteVariant.setMaximumSize(new java.awt.Dimension(200, 23)); - btnDeleteVariant.setMinimumSize(new java.awt.Dimension(80, 23)); - btnDeleteVariant.setPreferredSize(new java.awt.Dimension(120, 23)); - btnDeleteVariant.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnDeleteVariantActionPerformed(evt); - } - }); + btnDeleteVariant.setMaximumSize(new Dimension(200, 23)); + btnDeleteVariant.setMinimumSize(new Dimension(80, 23)); + btnDeleteVariant.setPreferredSize(new Dimension(120, 23)); + btnDeleteVariant.addActionListener(this::btnDeleteVariantActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; @@ -2808,13 +2517,9 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnRenameVariant.setText("Rename Variant"); btnRenameVariant.setEnabled(false); - btnRenameVariant.setMinimumSize(new java.awt.Dimension(80, 23)); - btnRenameVariant.setPreferredSize(new java.awt.Dimension(120, 23)); - btnRenameVariant.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnRenameVariantActionPerformed(evt); - } - }); + btnRenameVariant.setMinimumSize(new Dimension(80, 23)); + btnRenameVariant.setPreferredSize(new Dimension(120, 23)); + btnRenameVariant.addActionListener(this::btnRenameVariantActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; @@ -2829,9 +2534,9 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { lblRightIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); lblRightIntPts.setText("00"); lblRightIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblRightIntPts.setMaximumSize(new java.awt.Dimension(45, 20)); - lblRightIntPts.setMinimumSize(new java.awt.Dimension(45, 20)); - lblRightIntPts.setPreferredSize(new java.awt.Dimension(45, 20)); + lblRightIntPts.setMaximumSize(new Dimension(45, 20)); + lblRightIntPts.setMinimumSize(new Dimension(45, 20)); + lblRightIntPts.setPreferredSize(new Dimension(45, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; @@ -2846,13 +2551,9 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { gridBagConstraints.gridy = 2; pnlRightArmor.add(jLabel46, gridBagConstraints); - spnRightArmor.setMinimumSize(new java.awt.Dimension(45, 20)); - spnRightArmor.setPreferredSize(new java.awt.Dimension(45, 20)); - spnRightArmor.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnRightArmorStateChanged(evt); - } - }); + spnRightArmor.setMinimumSize(new Dimension(45, 20)); + spnRightArmor.setPreferredSize(new Dimension(45, 20)); + spnRightArmor.addChangeListener(this::spnRightArmorStateChanged); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; @@ -2864,9 +2565,9 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { lblFrontIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); lblFrontIntPts.setText("00"); lblFrontIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblFrontIntPts.setMaximumSize(new java.awt.Dimension(45, 20)); - lblFrontIntPts.setMinimumSize(new java.awt.Dimension(45, 20)); - lblFrontIntPts.setPreferredSize(new java.awt.Dimension(45, 20)); + lblFrontIntPts.setMaximumSize(new Dimension(45, 20)); + lblFrontIntPts.setMinimumSize(new Dimension(45, 20)); + lblFrontIntPts.setPreferredSize(new Dimension(45, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; @@ -2881,13 +2582,9 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { gridBagConstraints.gridy = 2; pnlFrontArmor.add(jLabel47, gridBagConstraints); - spnFrontArmor.setMinimumSize(new java.awt.Dimension(45, 20)); - spnFrontArmor.setPreferredSize(new java.awt.Dimension(45, 20)); - spnFrontArmor.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnFrontArmorStateChanged(evt); - } - }); + spnFrontArmor.setMinimumSize(new Dimension(45, 20)); + spnFrontArmor.setPreferredSize(new Dimension(45, 20)); + spnFrontArmor.addChangeListener(this::spnFrontArmorStateChanged); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; @@ -2899,9 +2596,9 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { lblLeftIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); lblLeftIntPts.setText("00"); lblLeftIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblLeftIntPts.setMaximumSize(new java.awt.Dimension(45, 20)); - lblLeftIntPts.setMinimumSize(new java.awt.Dimension(45, 20)); - lblLeftIntPts.setPreferredSize(new java.awt.Dimension(45, 20)); + lblLeftIntPts.setMaximumSize(new Dimension(45, 20)); + lblLeftIntPts.setMinimumSize(new Dimension(45, 20)); + lblLeftIntPts.setPreferredSize(new Dimension(45, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; @@ -2916,13 +2613,9 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { gridBagConstraints.gridy = 2; pnlLeftArmor.add(jLabel48, gridBagConstraints); - spnLeftArmor.setMinimumSize(new java.awt.Dimension(45, 20)); - spnLeftArmor.setPreferredSize(new java.awt.Dimension(45, 20)); - spnLeftArmor.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnLeftArmorStateChanged(evt); - } - }); + spnLeftArmor.setMinimumSize(new Dimension(45, 20)); + spnLeftArmor.setPreferredSize(new Dimension(45, 20)); + spnLeftArmor.addChangeListener(this::spnLeftArmorStateChanged); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; @@ -2934,9 +2627,9 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { lblRearIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); lblRearIntPts.setText("00"); lblRearIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblRearIntPts.setMaximumSize(new java.awt.Dimension(45, 20)); - lblRearIntPts.setMinimumSize(new java.awt.Dimension(45, 20)); - lblRearIntPts.setPreferredSize(new java.awt.Dimension(45, 20)); + lblRearIntPts.setMaximumSize(new Dimension(45, 20)); + lblRearIntPts.setMinimumSize(new Dimension(45, 20)); + lblRearIntPts.setPreferredSize(new Dimension(45, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; @@ -2951,13 +2644,9 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { gridBagConstraints.gridy = 2; pnlRearArmor.add(jLabel49, gridBagConstraints); - spnRearArmor.setMinimumSize(new java.awt.Dimension(45, 20)); - spnRearArmor.setPreferredSize(new java.awt.Dimension(45, 20)); - spnRearArmor.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnRearArmorStateChanged(evt); - } - }); + spnRearArmor.setMinimumSize(new Dimension(45, 20)); + spnRearArmor.setPreferredSize(new Dimension(45, 20)); + spnRearArmor.addChangeListener(this::spnRearArmorStateChanged); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; @@ -2969,9 +2658,9 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { lblTurretIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); lblTurretIntPts.setText("00"); lblTurretIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblTurretIntPts.setMaximumSize(new java.awt.Dimension(45, 20)); - lblTurretIntPts.setMinimumSize(new java.awt.Dimension(45, 20)); - lblTurretIntPts.setPreferredSize(new java.awt.Dimension(45, 20)); + lblTurretIntPts.setMaximumSize(new Dimension(45, 20)); + lblTurretIntPts.setMinimumSize(new Dimension(45, 20)); + lblTurretIntPts.setPreferredSize(new Dimension(45, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; @@ -2986,13 +2675,9 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { gridBagConstraints.gridy = 2; pnlTurretArmor.add(jLabel50, gridBagConstraints); - spnTurretArmor.setMinimumSize(new java.awt.Dimension(45, 20)); - spnTurretArmor.setPreferredSize(new java.awt.Dimension(45, 20)); - spnTurretArmor.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnTurretArmorStateChanged(evt); - } - }); + spnTurretArmor.setMinimumSize(new Dimension(45, 20)); + spnTurretArmor.setPreferredSize(new Dimension(45, 20)); + spnTurretArmor.addChangeListener(this::spnTurretArmorStateChanged); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; @@ -3005,9 +2690,9 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { lblRearTurretIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); lblRearTurretIntPts.setText("00"); lblRearTurretIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblRearTurretIntPts.setMaximumSize(new java.awt.Dimension(45, 20)); - lblRearTurretIntPts.setMinimumSize(new java.awt.Dimension(45, 20)); - lblRearTurretIntPts.setPreferredSize(new java.awt.Dimension(45, 20)); + lblRearTurretIntPts.setMaximumSize(new Dimension(45, 20)); + lblRearTurretIntPts.setMinimumSize(new Dimension(45, 20)); + lblRearTurretIntPts.setPreferredSize(new Dimension(45, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; @@ -3022,13 +2707,9 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { gridBagConstraints.gridy = 2; pnlRearTurretArmor.add(jLabel51, gridBagConstraints); - spnRearTurretArmor.setMinimumSize(new java.awt.Dimension(45, 20)); - spnRearTurretArmor.setPreferredSize(new java.awt.Dimension(45, 20)); - spnRearTurretArmor.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnRearTurretArmorStateChanged(evt); - } - }); + spnRearTurretArmor.setMinimumSize(new Dimension(45, 20)); + spnRearTurretArmor.setPreferredSize(new Dimension(45, 20)); + spnRearTurretArmor.addChangeListener(this::spnRearTurretArmorStateChanged); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; @@ -3041,9 +2722,9 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { lblRotorIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); lblRotorIntPts.setText("00"); lblRotorIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblRotorIntPts.setMaximumSize(new java.awt.Dimension(45, 20)); - lblRotorIntPts.setMinimumSize(new java.awt.Dimension(45, 20)); - lblRotorIntPts.setPreferredSize(new java.awt.Dimension(45, 20)); + lblRotorIntPts.setMaximumSize(new Dimension(45, 20)); + lblRotorIntPts.setMinimumSize(new Dimension(45, 20)); + lblRotorIntPts.setPreferredSize(new Dimension(45, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; @@ -3058,13 +2739,9 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { gridBagConstraints.gridy = 2; pnlRotorArmor.add(jLabel93, gridBagConstraints); - spnRotorArmor.setMinimumSize(new java.awt.Dimension(45, 20)); - spnRotorArmor.setPreferredSize(new java.awt.Dimension(45, 20)); - spnRotorArmor.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnRotorArmorStateChanged(evt); - } - }); + spnRotorArmor.setMinimumSize(new Dimension(45, 20)); + spnRotorArmor.setPreferredSize(new Dimension(45, 20)); + spnRotorArmor.addChangeListener(this::spnRotorArmorStateChanged); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; @@ -3119,13 +2796,9 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { jLabel52.setText("Armor Type:"); cmbArmorType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Standard", "Industrial", "Commercial", "Ferro-Fibrous", "Light Ferro-Fibrous", "Heavy Ferro-Fibrous", "Vehicular Stealth" })); - cmbArmorType.setMinimumSize(new java.awt.Dimension(150, 20)); - cmbArmorType.setPreferredSize(new java.awt.Dimension(150, 20)); - cmbArmorType.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cmbArmorTypeActionPerformed(evt); - } - }); + cmbArmorType.setMinimumSize(new Dimension(150, 20)); + cmbArmorType.setPreferredSize(new Dimension(150, 20)); + cmbArmorType.addActionListener(this::cmbArmorTypeActionPerformed); chkBalanceLRArmor.setSelected(true); chkBalanceLRArmor.setText("Balance Left/Right Armor"); @@ -3133,25 +2806,13 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkBalanceFRArmor.setText("Balance Front/Rear Armor"); btnSetArmorTons.setText("Set Armor Tonnage"); - btnSetArmorTons.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnSetArmorTonsActionPerformed(evt); - } - }); + btnSetArmorTons.addActionListener(this::btnSetArmorTonsActionPerformed); btnUseRemaining.setText("Use Remaining Tonnage"); - btnUseRemaining.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnUseRemainingActionPerformed(evt); - } - }); + btnUseRemaining.addActionListener(this::btnUseRemainingActionPerformed); btnMaximize.setText("Maximize Armor"); - btnMaximize.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnMaximizeActionPerformed(evt); - } - }); + btnMaximize.addActionListener(this::btnMaximizeActionPerformed); GroupLayout jPanel7Layout = new GroupLayout(jPanel7); jPanel7.setLayout(jPanel7Layout); @@ -3225,8 +2886,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtArmorTons.setEditable(false); txtArmorTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtArmorTons.setText("000.00"); - txtArmorTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtArmorTons.setPreferredSize(new java.awt.Dimension(50, 20)); + txtArmorTons.setMinimumSize(new Dimension(50, 20)); + txtArmorTons.setPreferredSize(new Dimension(50, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; @@ -3235,8 +2896,8 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtArmorSpace.setEditable(false); txtArmorSpace.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtArmorSpace.setText("00"); - txtArmorSpace.setMinimumSize(new java.awt.Dimension(40, 20)); - txtArmorSpace.setPreferredSize(new java.awt.Dimension(40, 20)); + txtArmorSpace.setMinimumSize(new Dimension(40, 20)); + txtArmorSpace.setPreferredSize(new Dimension(40, 20)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; @@ -3439,14 +3100,6 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); pnlEquipInfo.add(jLabel61, gridBagConstraints); -// lblInfoName.setText(" "); -// gridBagConstraints = new GridBagConstraints(); -// gridBagConstraints.gridx = 0; -// gridBagConstraints.gridy = 1; -// gridBagConstraints.anchor = GridBagConstraints.WEST; -// gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 3); -// pnlEquipInfo.add(lblInfoName, gridBagConstraints); - gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; @@ -3651,11 +3304,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkUseTC.setText("Targeting Computer"); chkUseTC.setEnabled(false); - chkUseTC.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkUseTCActionPerformed(evt); - } - }); + chkUseTC.addActionListener(this::chkUseTCActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; @@ -3664,11 +3313,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pnlSpecials.add(chkUseTC, gridBagConstraints); chkFCSAIV.setText("Use Artemis IV"); - chkFCSAIV.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkFCSAIVActionPerformed(evt); - } - }); + chkFCSAIV.addActionListener(this::chkFCSAIVActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; @@ -3678,11 +3323,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkFCSAV.setText("Use Artemis V"); chkFCSAV.setEnabled(false); - chkFCSAV.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkFCSAVActionPerformed(evt); - } - }); + chkFCSAV.addActionListener(this::chkFCSAVActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; @@ -3692,11 +3333,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkFCSApollo.setText("Use MRM Apollo"); chkFCSApollo.setEnabled(false); - chkFCSApollo.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkFCSApolloActionPerformed(evt); - } - }); + chkFCSApollo.addActionListener(this::chkFCSApolloActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; @@ -3705,11 +3342,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pnlSpecials.add(chkFCSApollo, gridBagConstraints); chkCASE.setText("Use CASE"); - chkCASE.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkCASEActionPerformed(evt); - } - }); + chkCASE.addActionListener(this::chkCASEActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 5; @@ -3721,21 +3354,13 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pnlControls.setLayout(new java.awt.GridBagLayout()); btnRemoveEquip.setText("<<"); - btnRemoveEquip.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnRemoveEquipActionPerformed(evt); - } - }); + btnRemoveEquip.addActionListener(this::btnRemoveEquipActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 8); pnlControls.add(btnRemoveEquip, gridBagConstraints); btnClearEquip.setText("Clear"); - btnClearEquip.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnClearEquipActionPerformed(evt); - } - }); + btnClearEquip.addActionListener(this::btnClearEquipActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; @@ -3743,11 +3368,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pnlControls.add(btnClearEquip, gridBagConstraints); btnAddEquip.setText(">>"); - btnAddEquip.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnAddEquipActionPerformed(evt); - } - }); + btnAddEquip.addActionListener(this::btnAddEquipActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 0; @@ -3785,16 +3406,12 @@ public void mouseClicked(java.awt.event.MouseEvent evt) { pnlControls.add(scrLocations, gridBagConstraints); pnlSelected.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Selected Equipment")); - pnlSelected.setMaximumSize(new java.awt.Dimension(250, 1000)); - pnlSelected.setMinimumSize(new java.awt.Dimension(150, 250)); + pnlSelected.setMaximumSize(new Dimension(250, 1000)); + pnlSelected.setMinimumSize(new Dimension(150, 250)); pnlSelected.setLayout(new BoxLayout(pnlSelected, BoxLayout.LINE_AXIS)); lstSelectedEquipment.setModel( new javax.swing.DefaultListModel()); - lstSelectedEquipment.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstSelectedEquipmentValueChanged(evt); - } - }); + lstSelectedEquipment.addListSelectionListener(this::lstSelectedEquipmentValueChanged); lstSelectedEquipment.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(java.awt.event.KeyEvent evt) { lstSelectedEquipmentKeyPressed(evt); @@ -3838,11 +3455,7 @@ public void mousePressed( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseBallistic.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseBallistic.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseBallisticValueChanged(evt); - } - }); + lstChooseBallistic.addListSelectionListener(this::lstChooseBallisticValueChanged); MouseListener mlBallistic = new MouseAdapter() { public void mouseClicked( MouseEvent e ) { if ( e.getClickCount() == 2 && e.getButton() == 1 ) { @@ -3864,11 +3477,7 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseEnergy.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseEnergy.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseEnergyValueChanged(evt); - } - }); + lstChooseEnergy.addListSelectionListener(this::lstChooseEnergyValueChanged); MouseListener mlEnergy = new MouseAdapter() { public void mouseClicked( MouseEvent e ) { if ( e.getClickCount() == 2 && e.getButton() == 1 ) { @@ -3892,11 +3501,7 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseMissile.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseMissile.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseMissileValueChanged(evt); - } - }); + lstChooseMissile.addListSelectionListener(this::lstChooseMissileValueChanged); MouseListener mlMissile = new MouseAdapter() { public void mouseClicked( MouseEvent e ) { if ( e.getClickCount() == 2 && e.getButton() == 1 ) { @@ -3918,11 +3523,7 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChoosePhysical.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChoosePhysical.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChoosePhysicalValueChanged(evt); - } - }); + lstChoosePhysical.addListSelectionListener(this::lstChoosePhysicalValueChanged); MouseListener mlPhysical = new MouseAdapter() { public void mouseClicked( MouseEvent e ) { if ( e.getClickCount() == 2 && e.getButton() == 1 ) { @@ -3944,11 +3545,7 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseEquipment.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseEquipment.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseEquipmentValueChanged(evt); - } - }); + lstChooseEquipment.addListSelectionListener(this::lstChooseEquipmentValueChanged); MouseListener mlEquipment = new MouseAdapter() { public void mouseClicked( MouseEvent e ) { if ( e.getClickCount() == 2 && e.getButton() == 1 ) { @@ -3970,11 +3567,7 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseArtillery.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseArtillery.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseArtilleryValueChanged(evt); - } - }); + lstChooseArtillery.addListSelectionListener(this::lstChooseArtilleryValueChanged); MouseListener mlArtillery = new MouseAdapter() { public void mouseClicked( MouseEvent e ) { if ( e.getClickCount() == 2 && e.getButton() == 1 ) { @@ -3996,11 +3589,7 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseAmmunition.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseAmmunition.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseAmmunitionValueChanged(evt); - } - }); + lstChooseAmmunition.addListSelectionListener(this::lstChooseAmmunitionValueChanged); MouseListener mlAmmo = new MouseAdapter() { public void mouseClicked( MouseEvent e ) { if ( e.getClickCount() == 2 && e.getButton() == 1 ) { @@ -4052,50 +3641,34 @@ public void mouseClicked( MouseEvent e ) { tbpMainTabPane.addTab("Equipment", pnlEquipment); - pnlExport.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Export", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 0, 11))); // NOI18N + pnlExport.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Export", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", Font.PLAIN, 11))); // NOI18N pnlExport.setLayout(new java.awt.GridBagLayout()); btnExportTXT.setText("to TXT"); - btnExportTXT.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnExportTXTActionPerformed(evt); - } - }); + btnExportTXT.addActionListener(this::btnExportTXTActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.anchor = GridBagConstraints.WEST; pnlExport.add(btnExportTXT, gridBagConstraints); btnExportHTML.setText("to HTML"); - btnExportHTML.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnExportHTMLActionPerformed(evt); - } - }); + btnExportHTML.addActionListener(this::btnExportHTMLActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 4); pnlExport.add(btnExportHTML, gridBagConstraints); btnExportMTF.setText("to MegaMek"); - btnExportMTF.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnExportMTFActionPerformed(evt); - } - }); + btnExportMTF.addActionListener(this::btnExportMTFActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.anchor = GridBagConstraints.EAST; pnlExport.add(btnExportMTF, gridBagConstraints); - tbpFluffEditors.setTabPlacement(javax.swing.JTabbedPane.LEFT); - tbpFluffEditors.setMaximumSize(new java.awt.Dimension(1000, 1000)); - tbpFluffEditors.setMinimumSize(new java.awt.Dimension(420, 455)); + tbpFluffEditors.setTabPlacement(JTabbedPane.RIGHT); + tbpFluffEditors.setMaximumSize(new Dimension(1000, 1000)); + tbpFluffEditors.setMinimumSize(new Dimension(420, 455)); - //pnlOverview.setMaximumSize(new java.awt.Dimension(427, 485)); - //pnlOverview.setMinimumSize(new java.awt.Dimension(427, 485)); pnlOverview.setLayout(new BoxLayout(pnlOverview, BoxLayout.Y_AXIS)); tbpFluffEditors.addTab("Overview", pnlOverview); - //pnlCapabilities.setMaximumSize(new java.awt.Dimension(427, 485)); - //pnlCapabilities.setMinimumSize(new java.awt.Dimension(427, 485)); pnlCapabilities.setLayout(new BoxLayout(pnlCapabilities, BoxLayout.Y_AXIS)); tbpFluffEditors.addTab("Capabilities", pnlCapabilities); @@ -4127,7 +3700,7 @@ public void mousePressed( MouseEvent e ) { } }; - lblManuInfo.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N + lblManuInfo.setFont(new java.awt.Font("Arial", Font.BOLD, 12)); // NOI18N lblManuInfo.setText("Manufacturer Information"); pnlManufacturers.setLayout(new BoxLayout(pnlManufacturers, BoxLayout.Y_AXIS)); @@ -4141,9 +3714,9 @@ public void mousePressed( MouseEvent e ) { pnlManufacturers.add(DataEntry("Communications System:", txtCommSystem, showFluff)); pnlManufacturers.add(DataEntry("Targeting and Tracking:", txtTNTSystem, showFluff)); - pnlWeaponsManufacturers.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Weapons Manufacturers", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 0, 11))); // NOI18N - pnlWeaponsManufacturers.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - pnlWeaponsManufacturers.setMinimumSize(new java.awt.Dimension(200, 200)); + pnlWeaponsManufacturers.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Weapons Manufacturers", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", Font.PLAIN, 11))); // NOI18N + pnlWeaponsManufacturers.setFont(new java.awt.Font("Arial", Font.PLAIN, 11)); // NOI18N + pnlWeaponsManufacturers.setMinimumSize(new Dimension(200, 200)); pnlWeaponsManufacturers.setLayout(new BoxLayout(pnlWeaponsManufacturers, BoxLayout.Y_AXIS)); chkIndividualWeapons.setText("Assign manufacturers individually"); @@ -4172,9 +3745,9 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { pnlWeaponsManufacturers.add(scpWeaponManufacturers); pnlManufacturers.add(pnlWeaponsManufacturers); - tbpFluffEditors.addTab("Manufacturers", pnlManufacturers); + //tbpFluffEditors.addTab("Manufacturers", pnlManufacturers); - lblBattleMechQuirks.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N + lblBattleMechQuirks.setFont(new java.awt.Font("Arial", Font.BOLD, 12)); // NOI18N lblBattleMechQuirks.setText("Quirks"); tblQuirks.setModel(new javax.swing.table.DefaultTableModel( @@ -4208,11 +3781,7 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { scpQuirkTable.setViewportView(tblQuirks); btnAddQuirk.setText("Add Quirk"); - btnAddQuirk.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnAddQuirkActionPerformed(evt); - } - }); + btnAddQuirk.addActionListener(this::btnAddQuirkActionPerformed); GroupLayout pnlQuirksLayout = new GroupLayout(pnlQuirks); pnlQuirks.setLayout(pnlQuirksLayout); @@ -4319,50 +3888,42 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { lblBFPoints.setText("0"); pnlBFStats.add(lblBFPoints, new org.netbeans.lib.awtextra.AbsoluteConstraints(510, 30, -1, -1)); - jPanel10.setBorder(javax.swing.BorderFactory.createTitledBorder("Conversion Steps")); + pnlConversionSteps.setBorder(javax.swing.BorderFactory.createTitledBorder("Conversion Steps")); - jTextAreaBFConversion.setColumns(20); + jTextAreaBFConversion.setColumns(60); jTextAreaBFConversion.setEditable(false); jTextAreaBFConversion.setRows(5); - jScrollPane14.setViewportView(jTextAreaBFConversion); + scpBFConversion.setViewportView(jTextAreaBFConversion); - GroupLayout jPanel10Layout = new GroupLayout(jPanel10); - jPanel10.setLayout(jPanel10Layout); + GroupLayout jPanel10Layout = new GroupLayout(pnlConversionSteps); + pnlConversionSteps.setLayout(jPanel10Layout); jPanel10Layout.setHorizontalGroup( - jPanel10Layout.createParallelGroup(GroupLayout.Alignment.LEADING) + jPanel10Layout.createParallelGroup(GroupLayout.Alignment.LEADING, true) .addGroup(jPanel10Layout.createSequentialGroup() - .addGap(4, 4, 4) - .addComponent(jScrollPane14) + .addContainerGap() + .addComponent(scpBFConversion, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) .addContainerGap()) ); jPanel10Layout.setVerticalGroup( - jPanel10Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addComponent(jScrollPane14) + jPanel10Layout.createParallelGroup(GroupLayout.Alignment.LEADING, true) + .addComponent(scpBFConversion) ); - pnlImage.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Fluff Image", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 0, 11))); // NOI18N + pnlImage.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Fluff Image", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", Font.PLAIN, 11))); // NOI18N lblFluffImage.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblFluffImage.setMaximumSize(new java.awt.Dimension(375, 260)); - lblFluffImage.setMinimumSize(new java.awt.Dimension(375, 260)); - lblFluffImage.setPreferredSize(new java.awt.Dimension(350, 350)); + lblFluffImage.setMaximumSize(new Dimension(375, 260)); + lblFluffImage.setMinimumSize(new Dimension(375, 260)); + lblFluffImage.setPreferredSize(new Dimension(350, 350)); pnlImageButtons.setLayout(new java.awt.GridBagLayout()); btnLoadImage.setText("Load Image"); - btnLoadImage.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnLoadImageActionPerformed(evt); - } - }); + btnLoadImage.addActionListener(this::btnLoadImageActionPerformed); pnlImageButtons.add(btnLoadImage, new GridBagConstraints()); btnClearImage.setText("Clear Image"); - btnClearImage.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnClearImageActionPerformed(evt); - } - }); + btnClearImage.addActionListener(this::btnClearImageActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; @@ -4390,15 +3951,14 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlFluffLayout.createSequentialGroup() .addContainerGap() - .addComponent(pnlImage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addComponent(pnlManufacturers, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addComponent(tbpFluffEditors, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) - .addGroup(pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING, false) - .addComponent(pnlBFStats, GroupLayout.PREFERRED_SIZE, 378, GroupLayout.PREFERRED_SIZE) - .addComponent(jPanel10, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addComponent(pnlExport, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addComponent(pnlImage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addContainerGap()) ); pnlFluffLayout.setVerticalGroup( @@ -4406,69 +3966,47 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addGroup(pnlFluffLayout.createSequentialGroup() .addContainerGap() .addGroup(pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING, true) - .addGroup(pnlFluffLayout.createSequentialGroup() - .addComponent(pnlBFStats, GroupLayout.PREFERRED_SIZE, 167, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jPanel10, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) - .addComponent(pnlExport, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)) + .addComponent(pnlManufacturers, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(tbpFluffEditors, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE) .addComponent(pnlImage, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap()) ); - tbpMainTabPane.addTab("Fluff and BattleForce", pnlFluff); + tbpMainTabPane.addTab("Fluff", pnlFluff); + + JPanel pnlBF = new JPanel(); + pnlBF.setLayout(new BoxLayout(pnlBF, BoxLayout.X_AXIS)); + pnlBF.add(pnlBFStats); + pnlBF.add(pnlConversionSteps); + //pnlBF.add(pnlExport); + tbpMainTabPane.addTab("BattleForce", pnlBF); mnuFile.setText("File"); - mnuFile.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuFileActionPerformed(evt); - } - }); + mnuFile.addActionListener(this::mnuFileActionPerformed); mnuNewMech.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.ALT_MASK)); mnuNewMech.setText("New"); - mnuNewMech.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuNewMechActionPerformed(evt); - } - }); + mnuNewMech.addActionListener(this::mnuNewMechActionPerformed); mnuFile.add(mnuNewMech); mnuLoad.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.ALT_MASK)); mnuLoad.setText("Load"); - mnuLoad.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuLoadActionPerformed(evt); - } - }); + mnuLoad.addActionListener(this::mnuLoadActionPerformed); mnuFile.add(mnuLoad); mnuOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_MASK)); mnuOpen.setText("Open"); - mnuOpen.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuOpenActionPerformed(evt); - } - }); + mnuOpen.addActionListener(this::mnuOpenActionPerformed); mnuFile.add(mnuOpen); mnuImport.setText("Import..."); mnuImportHMP.setText("from Heavy Metal Pro (HMP)"); - mnuImportHMP.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuImportHMPActionPerformed(evt); - } - }); + mnuImportHMP.addActionListener(this::mnuImportHMPActionPerformed); mnuImport.add(mnuImportHMP); mnuBatchHMP.setText("Batch Import HMP Files"); - mnuBatchHMP.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuBatchHMPActionPerformed(evt); - } - }); + mnuBatchHMP.addActionListener(this::mnuBatchHMPActionPerformed); mnuImport.add(mnuBatchHMP); mnuFile.add(mnuImport); @@ -4476,62 +4014,34 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_MASK)); mnuSave.setText("Save"); - mnuSave.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuSaveActionPerformed(evt); - } - }); + mnuSave.addActionListener(this::mnuSaveActionPerformed); mnuFile.add(mnuSave); mnuSaveAs.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK)); mnuSaveAs.setText("Save As..."); - mnuSaveAs.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuSaveAsActionPerformed(evt); - } - }); + mnuSaveAs.addActionListener(this::mnuSaveAsActionPerformed); mnuFile.add(mnuSaveAs); mnuExport.setText("Export As..."); mnuExportHTML.setText("to HTML (Web)"); - mnuExportHTML.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuExportHTMLActionPerformed(evt); - } - }); + mnuExportHTML.addActionListener(this::mnuExportHTMLActionPerformed); mnuExport.add(mnuExportHTML); mnuExportMTF.setText("to MTF (MegaMek)"); - mnuExportMTF.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuExportMTFActionPerformed(evt); - } - }); + mnuExportMTF.addActionListener(this::mnuExportMTFActionPerformed); mnuExport.add(mnuExportMTF); mnuExportTXT.setText("to TXT (Text)"); - mnuExportTXT.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuExportTXTActionPerformed(evt); - } - }); + mnuExportTXT.addActionListener(this::mnuExportTXTActionPerformed); mnuExport.add(mnuExportTXT); mnuExportClipboard.setText("to Clipboard (Text)"); - mnuExportClipboard.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuExportClipboardActionPerformed(evt); - } - }); + mnuExportClipboard.addActionListener(this::mnuExportClipboardActionPerformed); mnuExport.add(mnuExportClipboard); mnuCreateTCGMech.setText("to TCG Format (Card)"); - mnuCreateTCGMech.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuCreateTCGMechActionPerformed(evt); - } - }); + mnuCreateTCGMech.addActionListener(this::mnuCreateTCGMechActionPerformed); mnuExport.add(mnuCreateTCGMech); mnuFile.add(mnuExport); @@ -4542,21 +4052,13 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuPrintPreview.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK)); mnuPrintPreview.setText("Print Preview"); - mnuPrintPreview.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuPrintPreviewActionPerformed(evt); - } - }); + mnuPrintPreview.addActionListener(this::mnuPrintPreviewActionPerformed); mnuFile.add(mnuPrintPreview); mnuFile.add(jSeparator24); mnuExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.ALT_MASK)); mnuExit.setText("Exit"); - mnuExit.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuExitActionPerformed(evt); - } - }); + mnuExit.addActionListener(this::mnuExitActionPerformed); mnuFile.add(mnuExit); jMenuBar1.add(mnuFile); @@ -4565,90 +4067,50 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuSummary.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.ALT_MASK)); mnuSummary.setText("Show Summary"); - mnuSummary.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuSummaryActionPerformed(evt); - } - }); + mnuSummary.addActionListener(this::mnuSummaryActionPerformed); mnuClearFluff.add(mnuSummary); mnuCostBVBreakdown.setText("Cost/BV Breakdown"); - mnuCostBVBreakdown.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuCostBVBreakdownActionPerformed(evt); - } - }); + mnuCostBVBreakdown.addActionListener(this::mnuCostBVBreakdownActionPerformed); mnuClearFluff.add(mnuCostBVBreakdown); mnuTextTRO.setText("Show Text TRO Format"); - mnuTextTRO.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuTextTROActionPerformed(evt); - } - }); + mnuTextTRO.addActionListener(this::mnuTextTROActionPerformed); mnuClearFluff.add(mnuTextTRO); mnuClearFluff.add(jSeparator26); mnuBFB.setText("Load Force Balancer"); - mnuBFB.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuBFBActionPerformed(evt); - } - }); + mnuBFB.addActionListener(this::mnuBFBActionPerformed); mnuClearFluff.add(mnuBFB); mnuClearFluff.add(jSeparator27); mnuOptions.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_MASK)); mnuOptions.setText("Preferences"); - mnuOptions.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuOptionsActionPerformed(evt); - } - }); + mnuOptions.addActionListener(this::mnuOptionsActionPerformed); mnuClearFluff.add(mnuOptions); mnuViewToolbar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.ALT_MASK)); mnuViewToolbar.setSelected(true); mnuViewToolbar.setText("View Toolbar"); - mnuViewToolbar.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuViewToolbarActionPerformed(evt); - } - }); + mnuViewToolbar.addActionListener(this::mnuViewToolbarActionPerformed); mnuClearFluff.add(mnuViewToolbar); mnuClearUserData.setText("Clear User Data"); - mnuClearUserData.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuClearUserDataActionPerformed(evt); - } - }); + mnuClearUserData.addActionListener(this::mnuClearUserDataActionPerformed); mnuClearFluff.add(mnuClearUserData); mnuClearFluff.add(jSeparator30); mnuUnlock.setText("Unlock Chassis"); mnuUnlock.setEnabled(false); - mnuUnlock.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuUnlockActionPerformed(evt); - } - }); + mnuUnlock.addActionListener(this::mnuUnlockActionPerformed); mnuClearFluff.add(mnuUnlock); jMenuItem1.setText("Clear All Fluff"); - jMenuItem1.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - jMenuItem1ActionPerformed(evt); - } - }); + jMenuItem1.addActionListener(this::jMenuItem1ActionPerformed); mnuClearFluff.add(jMenuItem1); mnuReloadEquipment.setText("Reload Equipment"); - mnuReloadEquipment.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuReloadEquipmentActionPerformed(evt); - } - }); + mnuReloadEquipment.addActionListener(this::mnuReloadEquipmentActionPerformed); mnuClearFluff.add(mnuReloadEquipment); jMenuBar1.add(mnuClearFluff); @@ -4656,19 +4118,11 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuHelp.setText("Help"); mnuCredits.setText("Credits"); - mnuCredits.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuCreditsActionPerformed(evt); - } - }); + mnuCredits.addActionListener(this::mnuCreditsActionPerformed); mnuHelp.add(mnuCredits); mnuAboutSSW.setText("About SAW"); - mnuAboutSSW.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuAboutSSWActionPerformed(evt); - } - }); + mnuAboutSSW.addActionListener(this::mnuAboutSSWActionPerformed); mnuHelp.add(mnuAboutSSW); jMenuBar1.add(mnuHelp); @@ -4703,7 +4157,7 @@ private JPanel DataEntry(String label, JTextField input, MouseListener listener) dataLabel.setHorizontalAlignment(SwingConstants.RIGHT); dataLabel.setPreferredSize(new Dimension(150, 20)); - input.setFont(new java.awt.Font("Arial", 0, 11)); + input.setFont(new java.awt.Font("Arial", Font.PLAIN, 11)); input.addMouseListener(listener); entry.add(dataLabel); @@ -4841,7 +4295,7 @@ private void RecalcArmorLocations() { private void SolidifyVehicle() { // sets some of the basic vehicle information normally kept in the GUI and // prepares the vehicle for saving to file - int year = 0; + int year; CurVee.setName( txtVehicleName.getText() ); CurVee.setModel( txtModel.getText() ); if( txtProdYear.getText().isEmpty() ) { @@ -5519,7 +4973,7 @@ private void LoadOmniFluffInfo() { } private File GetSaveFile( final String extension, String path, boolean autooverwrite, boolean singleloadout ) { - String filename = ""; + String filename; boolean overwrite = false; // perform standard actions required before saving @@ -5568,7 +5022,7 @@ private File GetSaveFile( final String extension, String path, boolean autooverw } } - File retval = null; + File retval; if( autooverwrite && overwrite ) { retval = new File( path + File.separator + filename ); } else { @@ -5585,11 +5039,7 @@ public boolean accept( File f ) { String checkext = Utils.getExtension( f ); if( checkext != null ) { - if( checkext.equals( extension ) ) { - return true; - } else { - return false; - } + return checkext.equals(extension); } return false; } @@ -5660,14 +5110,14 @@ private boolean VerifyVehicle( ActionEvent evt ) { // ensure we're not overweight if( CurVee.IsOmni() ) { ArrayList v = CurVee.GetLoadouts(); - for( int i = 0; i < v.size(); i++ ) { - CurVee.SetCurLoadout( ((ifCVLoadout) v.get( i )).GetName() ); - if( CurVee.GetCurrentTons() > CurVee.GetTonnage() ) { - Media.Messager( this, ((ifCVLoadout) v.get( i )).GetName() + - " loadout is overweight. Reduce the weight\nto equal or below the Vehicle's tonnage." ); + for (Object o : v) { + CurVee.SetCurLoadout(((ifCVLoadout) o).GetName()); + if (CurVee.GetCurrentTons() > CurVee.GetTonnage()) { + Media.Messager(this, ((ifCVLoadout) o).GetName() + + " loadout is overweight. Reduce the weight\nto equal or below the Vehicle's tonnage."); //cmbOmniVariant.setSelectedItem( ((ifCVLoadout) v.get( i )).GetName() ); //cmbOmniVariantActionPerformed( evt ); - tbpMainTabPane.setSelectedComponent( pnlBasicSetup ); + tbpMainTabPane.setSelectedComponent(pnlBasicSetup); SetSource = true; return false; } @@ -5713,11 +5163,11 @@ private void RecalcEngine() { String OldVal = BuildLookupName( CurVee.GetEngine().GetCurrentState() ); String LookupVal = (String) cmbEngineType.getSelectedItem(); if( OldVal.equals( LookupVal ) ) { return; } - ifVisitor v = (ifVisitor) CurVee.Lookup( LookupVal ); + ifVisitor v = CurVee.Lookup( LookupVal ); try { CurVee.Visit( v ); } catch( Exception e ) { - v = (ifVisitor) CurVee.Lookup( OldVal ); + v = CurVee.Lookup( OldVal ); try { Media.Messager( this, "The new engine type is not valid. Error:\n" + e.getMessage() + "\nReverting to the previous engine." ); CurVee.Visit( v ); @@ -5726,7 +5176,6 @@ private void RecalcEngine() { // wow, second one? Get a new 'Mech. Media.Messager( this, "Fatal error while attempting to revert to the old engine:\n" + e.getMessage() + "\nStarting over with a new Vehicle. Sorry." ); GetNewVee(); - return; } } } @@ -5816,8 +5265,6 @@ private void GetNewVee() { BuildArmorSelector(); BuildExpEquipmentSelector(); CheckOmni(); - //cmbEngineType.setSelectedItem( saw.Constants.DEFAULT_ENGINE ); - //cmbArmorType.setSelectedItem( saw.Constants.DEFAULT_ARMOR ); FixMPSpinner(); FixJJSpinnerModel(); FixArmorSpinners(); @@ -5860,6 +5307,7 @@ public String getColumnName( int col ) { public int getRowCount() { return CurVee.GetLoadout().GetEquipment().size() + 5; } public int getColumnCount() { return 2; } public Object getValueAt( int row, int col ) { + if (CurVee.GetLoadout().GetEquipment().isEmpty()) { return null; } Object o = CurVee.GetLoadout().GetEquipment().get( row ); if( col == 1 ) { return ((abPlaceable) o).GetManufacturer(); @@ -5869,11 +5317,7 @@ public Object getValueAt( int row, int col ) { } @Override public boolean isCellEditable( int row, int col ) { - if( col == 0 ) { - return false; - } else { - return true; - } + return col != 0; } @Override public void setValueAt( Object value, int row, int col ) { @@ -5885,11 +5329,11 @@ public void setValueAt( Object value, int row, int col ) { // fireTableCellUpdated( row, col ); //} else { ArrayList v = CurVee.GetLoadout().GetEquipment(); - for( int i = 0; i < v.size(); i++ ) { - if( FileCommon.LookupStripArc( ((abPlaceable) v.get( i )).LookupName() ).equals( FileCommon.LookupStripArc( a.LookupName() ) ) ) { - ((abPlaceable) v.get( i )).SetManufacturer( (String) value ); - } + for (Object o : v) { + if (FileCommon.LookupStripArc(((abPlaceable) o).LookupName()).equals(FileCommon.LookupStripArc(a.LookupName()))) { + ((abPlaceable) o).SetManufacturer((String) value); } + } fireTableDataChanged(); //} } @@ -6076,14 +5520,6 @@ private void RefreshEquipment() { if( CurVee.GetBaseLoadout().HasSupercharger() ) { chkSupercharger.setEnabled( false ); } - } else { - try { - //if( ! chkBSPFD.isEnabled() ) { locArmor.SetBlueShield( false ); } - //if( ! chkCommandConsole.isEnabled() ) { locArmor.SetCommandConsole( false ); } - } catch( Exception e ) { - // we should never get this, but report it if we do - Media.Messager( this, e.getMessage() ); - } } } @@ -6099,7 +5535,7 @@ private void SetWeaponChoosers() { Equipment[ARTILLERY] = data.GetEquipment().GetArtillery( CurVee ); Equipment[EQUIPMENT] = data.GetEquipment().GetEquipment( CurVee ); Equipment[AMMUNITION] = new Object[] { " " }; - if( CurVee.GetLoadout().GetNonCore().toArray().length <= 0 ) { + if(CurVee.GetLoadout().GetNonCore().toArray().length == 0) { Equipment[SELECTED] = new Object[] { " " }; } else { Equipment[SELECTED] = CurVee.GetLoadout().GetNonCore().toArray(); @@ -6152,7 +5588,6 @@ private void UnlockGUIFromOmni() { chkTrailer.setEnabled( true ); //btnEfficientArmor.setEnabled( true ); //btnBalanceArmor.setEnabled( true ); - //btnLockChassis.setEnabled( true ); chkFCSAIV.setEnabled( true ); chkFCSAV.setEnabled( true ); chkFCSApollo.setEnabled( true ); @@ -6161,7 +5596,6 @@ private void UnlockGUIFromOmni() { btnLockChassis.setEnabled( true ); spnCruiseMP.setEnabled( true ); chkYearRestrict.setEnabled( true ); - //chkBSPFD.setEnabled( true ); chkSupercharger.setEnabled( true ); chkJetBooster.setEnabled(true); chkEnviroSealing.setEnabled( false ); @@ -6235,11 +5669,10 @@ private boolean AddECM() { return false; } } - return true; } else { Media.Messager( this, "Please add an appropriate ECM Suite to complement this\n system. The Vehicle is not valid without an ECM Suite." ); - return true; } + return true; } private void SetPatchworkArmor() { @@ -6376,7 +5809,7 @@ private void btnNewVeeActionPerformed(java.awt.event.ActionEvent evt) { private void RefreshOmniVariants() { ArrayList v = CurVee.GetLoadouts(); String[] variants = new String[v.size()]; - if( v.size() <= 0 ) { + if(v.size() == 0) { variants = new String[] { common.Constants.BASELOADOUT_NAME }; } else { for( int i = 0; i < v.size(); i++ ) { @@ -6540,7 +5973,7 @@ public String getDescription() { fc.setAcceptAllFileFilterUsed( false ); fc.setCurrentDirectory( tempFile ); int returnVal = fc.showDialog( this, "Load Vehicle" ); - if( returnVal != JFileChooser.APPROVE_OPTION ) { return m; } + if( returnVal != JFileChooser.APPROVE_OPTION ) { return null; } File loadmech = fc.getSelectedFile(); String filename = ""; try { @@ -6550,7 +5983,7 @@ public String getDescription() { Prefs.put("CurrentCVfile", loadmech.getCanonicalPath()); } catch( Exception e ) { Media.Messager( this, "There was a problem opening the file:\n" + e.getMessage() ); - return m; + return null; } try { @@ -9289,10 +8722,7 @@ private void cmbLocationMouseClicked(java.awt.event.MouseEvent evt) { } private void chkSponsonTurretActionPerformed(java.awt.event.ActionEvent evt) { - if (chkSponsonTurret.isSelected()) - CurVee.setHasSponsonTurret(true); - else - CurVee.setHasSponsonTurret(false); + CurVee.setHasSponsonTurret(chkSponsonTurret.isSelected()); RefreshSelectedEquipment(); BuildLocationSelector(); } @@ -9352,7 +8782,7 @@ private void FixJJSpinnerModel() { // changes, here is a quick little routine to do it without extra fuss. int min = 0; - int max = 0; + int max; int current = 0; // if( locArmor.IsOmni() ) { @@ -9389,33 +8819,11 @@ private void FixJJSpinnerModel() { spnJumpMP.setModel( new javax.swing.SpinnerNumberModel( current, min, max, 1) ); } - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JButton btnAddEquip; - private javax.swing.JButton btnAddQuirk; - private javax.swing.JButton btnAddToForceList; private javax.swing.JButton btnAddVariant; - private javax.swing.JButton btnChatInfo; - private javax.swing.JButton btnClearEquip; - private javax.swing.JButton btnClearImage; private javax.swing.JButton btnDeleteVariant; - private javax.swing.JButton btnExportClipboardIcon; - private javax.swing.JButton btnExportHTML; - private javax.swing.JButton btnExportHTMLIcon; - private javax.swing.JButton btnExportMTF; - private javax.swing.JButton btnExportMTFIcon; - private javax.swing.JButton btnExportTXT; - private javax.swing.JButton btnExportTextIcon; - private javax.swing.JButton btnForceList; - private javax.swing.JButton btnLoadImage; private javax.swing.JButton btnLockChassis; private javax.swing.JButton btnMaximize; - private javax.swing.JButton btnNewVee; - private javax.swing.JButton btnOpen; - private javax.swing.JButton btnOptions; - private javax.swing.JButton btnPrint; - private javax.swing.JButton btnRemoveEquip; private javax.swing.JButton btnRenameVariant; - private javax.swing.JButton btnSave; private javax.swing.JButton btnSetArmorTons; private javax.swing.JButton btnUseRemaining; private javax.swing.JCheckBox chkArmoredMotive; @@ -9453,136 +8861,7 @@ private void FixJJSpinnerModel() { private javax.swing.JComboBox cmbRulesLevel; private javax.swing.JComboBox cmbTechBase; private javax.swing.JComboBox cmbTurret; - private javax.swing.JLabel jLabel1; - private javax.swing.JLabel jLabel10; - private javax.swing.JLabel jLabel11; - private javax.swing.JLabel jLabel12; - private javax.swing.JLabel jLabel13; - private javax.swing.JLabel jLabel14; - private javax.swing.JLabel jLabel15; - private javax.swing.JLabel jLabel16; - private javax.swing.JLabel jLabel17; - private javax.swing.JLabel jLabel18; - private javax.swing.JLabel jLabel19; - private javax.swing.JLabel jLabel2; - private javax.swing.JLabel jLabel20; - private javax.swing.JLabel jLabel21; - private javax.swing.JLabel jLabel22; - private javax.swing.JLabel jLabel23; - private javax.swing.JLabel jLabel24; - private javax.swing.JLabel jLabel25; - private javax.swing.JLabel jLabel26; - private javax.swing.JLabel jLabel27; - private javax.swing.JLabel titleFreeHeatSinks; - private javax.swing.JLabel titleSuspension; - private javax.swing.JLabel jLabel3; - private javax.swing.JLabel titleCrew; - private javax.swing.JLabel titleMinEngTon; - private javax.swing.JLabel jLabel32; - private javax.swing.JLabel titleBaseEngRate; - private javax.swing.JLabel jLabel34; - private javax.swing.JLabel titleFinalEngRate; - private javax.swing.JLabel jLabel36; - private javax.swing.JLabel jLabel37; - private javax.swing.JLabel lblAvailability; - private javax.swing.JLabel lblSW; - private javax.swing.JLabel jLabel4; - private javax.swing.JLabel jLabel40; - private javax.swing.JLabel jLabel41; - private javax.swing.JLabel jLabel42; - private javax.swing.JLabel jLabel43; - private javax.swing.JLabel jLabel44; - private javax.swing.JLabel jLabel45; - private javax.swing.JLabel jLabel46; - private javax.swing.JLabel jLabel47; - private javax.swing.JLabel jLabel48; - private javax.swing.JLabel jLabel49; - private javax.swing.JLabel jLabel5; - private javax.swing.JLabel jLabel50; - private javax.swing.JLabel jLabel51; - private javax.swing.JLabel jLabel52; - private javax.swing.JLabel lblCI; - private javax.swing.JLabel lblIntro; - private javax.swing.JLabel lblExtinct; - private javax.swing.JLabel lblReintro; - private javax.swing.JLabel lblName; - private javax.swing.JLabel lblType; - private javax.swing.JLabel jLabel59; - private javax.swing.JLabel jLabel6; - private javax.swing.JLabel jLabel60; - private javax.swing.JLabel jLabel61; - private javax.swing.JLabel jLabel62; - private javax.swing.JLabel jLabel63; - private javax.swing.JLabel jLabel64; - private javax.swing.JLabel jLabel65; - private javax.swing.JLabel jLabel66; - private javax.swing.JLabel jLabel67; - private javax.swing.JLabel jLabel68; - private javax.swing.JLabel lblMMName; private javax.swing.JLabel lblMMNameInfo; - private javax.swing.JLabel jLabel69; - private javax.swing.JLabel jLabel7; - private javax.swing.JLabel jLabel70; - private javax.swing.JLabel jLabel71; - private javax.swing.JLabel jLabel72; - private javax.swing.JLabel jLabel73; - private javax.swing.JLabel jLabel74; - private javax.swing.JLabel jLabel75; - private javax.swing.JLabel jLabel76; - private javax.swing.JLabel jLabel77; - private javax.swing.JLabel jLabel78; - private javax.swing.JLabel jLabel79; - private javax.swing.JLabel jLabel8; - private javax.swing.JLabel jLabel80; - private javax.swing.JLabel jLabel81; - private javax.swing.JLabel lblManuInfo; - private javax.swing.JLabel jLabel83; - private javax.swing.JLabel jLabel84; - private javax.swing.JLabel jLabel85; - private javax.swing.JLabel jLabel86; - private javax.swing.JLabel jLabel87; - private javax.swing.JLabel jLabel88; - private javax.swing.JLabel jLabel89; - private javax.swing.JLabel jLabel9; - private javax.swing.JLabel jLabel90; - private javax.swing.JLabel jLabel91; - private javax.swing.JLabel jLabel92; - private javax.swing.JLabel jLabel93; - private javax.swing.JMenuBar jMenuBar1; - private javax.swing.JMenuItem jMenuItem1; - private javax.swing.JPanel pnlImageButtons; - private javax.swing.JPanel jPanel10; - private javax.swing.JPanel jPanel11; - private javax.swing.JPanel jPanel5; - private javax.swing.JPanel jPanel6; - private javax.swing.JPanel jPanel7; - private javax.swing.JPanel jPanel8; - private javax.swing.JScrollPane scrLocations; - private javax.swing.JScrollPane jScrollPane14; - private javax.swing.JScrollPane scrMissile; - private javax.swing.JScrollPane scrPhysical; - private javax.swing.JScrollPane scrEquipment; - private javax.swing.JScrollPane scrAmmo; - private javax.swing.JScrollPane scrSelectedEquip; - private javax.swing.JScrollPane scrArtillery; - private javax.swing.JScrollPane scrBallistic; - private javax.swing.JScrollPane scrEnergy; - private javax.swing.JToolBar.Separator jSeparator1; - private javax.swing.JSeparator jSeparator17; - private javax.swing.JToolBar.Separator jSeparator2; - private javax.swing.JSeparator jSeparator20; - private javax.swing.JToolBar.Separator jSeparator21; - private javax.swing.JSeparator jSeparator22; - private javax.swing.JSeparator jSeparator23; - private javax.swing.JSeparator jSeparator24; - private javax.swing.JToolBar.Separator jSeparator25; - private javax.swing.JSeparator jSeparator26; - private javax.swing.JSeparator jSeparator27; - private javax.swing.JToolBar.Separator jSeparator3; - private javax.swing.JSeparator jSeparator30; - private javax.swing.JToolBar.Separator jSeparator4; - private javax.swing.JSeparator jSeparator7; - private javax.swing.JSeparator jSeparator8; private javax.swing.JTextArea jTextAreaBFConversion; private javax.swing.JLabel lblArmorCoverage; private javax.swing.JLabel lblArmorLeftInLot; @@ -9600,7 +8879,6 @@ private void FixJJSpinnerModel() { private javax.swing.JLabel lblBFStructure; private javax.swing.JLabel lblBFWt; private javax.swing.JLabel lblBaseEngineRating; - private javax.swing.JLabel lblBattleMechQuirks; private javax.swing.JLabel lblEraYears; private javax.swing.JLabel lblFinalEngineRating; private javax.swing.JLabel lblFlankMP; @@ -9620,7 +8898,6 @@ private void FixJJSpinnerModel() { private javax.swing.JLabel lblInfoHeat; private javax.swing.JLabel lblInfoIntro; private javax.swing.JLabel lblInfoMountRestrict; - private javax.swing.JLabel lblInfoName; private javax.swing.JLabel lblInfoRange; private javax.swing.JLabel lblInfoReintro; private javax.swing.JLabel lblInfoRulesLevel; @@ -9630,12 +8907,10 @@ private void FixJJSpinnerModel() { private javax.swing.JLabel lblLeftIntPts; private javax.swing.JLabel lblMinEngineTons; private javax.swing.JLabel lblNumCrew; - private javax.swing.JLabel lblProdYear; private javax.swing.JLabel lblRearIntPts; private javax.swing.JLabel lblRearTurretIntPts; private javax.swing.JLabel lblRightIntPts; private javax.swing.JLabel lblRotorIntPts; - private javax.swing.JLabel lblSelectVariant; private javax.swing.JLabel lblSupensionFacter; private javax.swing.JLabel lblTurretIntPts; private javax.swing.JLabel lblVeeClass; @@ -9648,82 +8923,20 @@ private void FixJJSpinnerModel() { private javax.swing.JList lstChooseMissile; private javax.swing.JList lstChoosePhysical; private javax.swing.JList lstSelectedEquipment; - private javax.swing.JMenuItem mnuAboutSSW; - private javax.swing.JMenuItem mnuBFB; - private javax.swing.JMenuItem mnuBatchHMP; - private javax.swing.JMenu mnuClearFluff; - private javax.swing.JMenuItem mnuClearUserData; - private javax.swing.JMenuItem mnuCostBVBreakdown; - private javax.swing.JMenuItem mnuCreateTCGMech; - private javax.swing.JMenuItem mnuCredits; - private javax.swing.JMenuItem mnuExit; - private javax.swing.JMenu mnuExport; - private javax.swing.JMenuItem mnuExportClipboard; - private javax.swing.JMenuItem mnuExportHTML; - private javax.swing.JMenuItem mnuExportMTF; - private javax.swing.JMenuItem mnuExportTXT; - private javax.swing.JMenu mnuFile; - private javax.swing.JMenu mnuHelp; - private javax.swing.JMenu mnuImport; - private javax.swing.JMenuItem mnuImportHMP; - private javax.swing.JMenuItem mnuLoad; - private javax.swing.JMenuItem mnuNewMech; - private javax.swing.JMenuItem mnuOpen; - private javax.swing.JMenuItem mnuOptions; - private javax.swing.JMenu mnuPrint; - private javax.swing.JMenuItem mnuPrintPreview; - private javax.swing.JMenuItem mnuReloadEquipment; - private javax.swing.JMenuItem mnuSave; - private javax.swing.JMenuItem mnuSaveAs; - private javax.swing.JMenuItem mnuSummary; - private javax.swing.JMenuItem mnuTextTRO; private javax.swing.JMenuItem mnuUnlock; private javax.swing.JCheckBoxMenuItem mnuViewToolbar; private javax.swing.JPanel pnlAdditionalFluff; - private javax.swing.JPanel pnlAmmunition; - private javax.swing.JPanel pnlArtillery; - private javax.swing.JPanel pnlBFStats; - private javax.swing.JPanel pnlBallistic; private javax.swing.JPanel pnlBasicSetup; private javax.swing.JPanel pnlCapabilities; - private javax.swing.JPanel pnlChassis; - private javax.swing.JPanel pnlChassisMods; - private javax.swing.JPanel pnlControls; private javax.swing.JPanel pnlDeployment; - private javax.swing.JPanel pnlEnergy; private javax.swing.JPanel pnlEquipInfo; - private javax.swing.JPanel pnlEquipment; - private javax.swing.JPanel pnlEquipmentChooser; - private javax.swing.JPanel pnlExperimental; - private javax.swing.JPanel pnlExport; - private javax.swing.JPanel pnlFluff; - private javax.swing.JPanel pnlFrontArmor; private javax.swing.JPanel pnlHistory; - private javax.swing.JPanel pnlImage; - private javax.swing.JPanel pnlInfoPane; - private javax.swing.JPanel pnlInformation; - private javax.swing.JPanel pnlLeftArmor; - private javax.swing.JPanel pnlManufacturers; - private javax.swing.JPanel pnlMissile; - private javax.swing.JPanel pnlMovement; private javax.swing.JPanel pnlNotables; - private javax.swing.JPanel pnlOmniInfo; private javax.swing.JPanel pnlOverview; - private javax.swing.JPanel pnlPhysical; - private javax.swing.JPanel pnlQuirks; - private javax.swing.JPanel pnlRearArmor; private javax.swing.JPanel pnlRearTurretArmor; - private javax.swing.JPanel pnlRightArmor; private javax.swing.JPanel pnlRotorArmor; - private javax.swing.JPanel pnlSelected; - private javax.swing.JPanel pnlSpecials; - private javax.swing.JPanel pnlSummary; private javax.swing.JPanel pnlTurretArmor; private javax.swing.JPanel pnlVariants; - private javax.swing.JPanel pnlWeaponsManufacturers; - private javax.swing.JScrollPane scpQuirkTable; - private javax.swing.JScrollPane scpWeaponManufacturers; - private javax.swing.JScrollPane scpManufacturers; private javax.swing.JSpinner spnCruiseMP; private javax.swing.JSpinner spnFrontArmor; private javax.swing.JSpinner spnHeatSinks; @@ -9736,9 +8949,7 @@ private void FixJJSpinnerModel() { private javax.swing.JSpinner spnTonnage; private javax.swing.JSpinner spnTurretArmor; private javax.swing.JSpinner spnTurretTonnage; - private javax.swing.JTable tblQuirks; private javax.swing.JTable tblWeaponManufacturers; - private javax.swing.JTabbedPane tbpFluffEditors; private javax.swing.JTabbedPane tbpMainTabPane; private javax.swing.JTabbedPane tbpWeaponChooser; private javax.swing.JToolBar tlbIconBar; @@ -9772,7 +8983,6 @@ private void FixJJSpinnerModel() { private javax.swing.JTextField txtSumIntAV; private javax.swing.JTextField txtSumIntTons; private javax.swing.JTextField txtSumJJAV; - private javax.swing.JTextField txtSumJJSpace; private javax.swing.JTextField txtSumJJTons; private javax.swing.JTextField txtSumLifAV; private javax.swing.JTextField txtSumLifTons; From 323e9a6ed45d4e25285905b042ffb3636b0741ec Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 12 Feb 2023 15:15:18 -0700 Subject: [PATCH 090/199] Code Cleanup --- saw/src/main/java/saw/gui/frmVee.java | 2763 +++++++++---------------- 1 file changed, 993 insertions(+), 1770 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 365df808..c4df38ef 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -51,7 +51,6 @@ import javax.swing.text.JTextComponent; import java.awt.*; import java.awt.datatransfer.Clipboard; -import java.awt.datatransfer.ClipboardOwner; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.event.*; @@ -66,8 +65,8 @@ public final class frmVee extends javax.swing.JFrame implements java.awt.datatra Preferences Prefs; String[] Selections = { "", "" }; public DataFactory data; - private Cursor Hourglass = new Cursor( Cursor.WAIT_CURSOR ); - private Cursor NormalCursor = new Cursor( Cursor.DEFAULT_CURSOR ); + private final Cursor Hourglass = new Cursor( Cursor.WAIT_CURSOR ); + private final Cursor NormalCursor = new Cursor( Cursor.DEFAULT_CURSOR ); boolean Load = false, isLocked = false, SetSource = true; @@ -86,7 +85,7 @@ public final class frmVee extends javax.swing.JFrame implements java.awt.datatra private final AvailableCode PulseModuleAC = new AvailableCode( AvailableCode.TECH_INNER_SPHERE ); private final AvailableCode CaselessAmmoAC = new AvailableCode( AvailableCode.TECH_INNER_SPHERE ); - private ImageTracker imageTracker = new ImageTracker(); + private final ImageTracker imageTracker = new ImageTracker(); public dlgOpen dOpen = new dlgOpen(this, true); public frmForce dForce = new frmForce(this, imageTracker); @@ -134,11 +133,7 @@ public final class frmVee extends javax.swing.JFrame implements java.awt.datatra public void focusGained(FocusEvent e) { if ( e.getSource() instanceof JTextComponent ) { final JTextComponent textComponent = ((JTextComponent)e.getSource()); - SwingUtilities.invokeLater(new Runnable() { - public void run() { - textComponent.selectAll(); - } - }); + SwingUtilities.invokeLater(textComponent::selectAll); } } }; @@ -215,109 +210,43 @@ public frmVee() { pack(); - mnuDetails.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - GetInfoOn(); - ShowInfoOn(CurItem); - } + mnuDetails.addActionListener(evt -> { + GetInfoOn(); + ShowInfoOn(CurItem); }); - mnuSetVariable.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SetVariableSize(); - } - }); + mnuSetVariable.addActionListener(e -> SetVariableSize()); - mnuSetLotSize.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SetAmmoLotSize(); - } - }); + mnuSetLotSize.addActionListener(e -> SetAmmoLotSize()); - mnuAddCapacitor.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - PPCCapacitor(); - } - }); + mnuAddCapacitor.addActionListener(e -> PPCCapacitor()); - mnuAddInsulator.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - LaserInsulator(); - } - }); + mnuAddInsulator.addActionListener(e -> LaserInsulator()); - mnuAddPulseModule.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - PulseModule(); - } - }); + mnuAddPulseModule.addActionListener(e -> PulseModule()); - mnuDumper.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - DumperMount(); - } - }); + mnuDumper.addActionListener(e -> DumperMount()); - mnuCaseless.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SwitchCaseless(); - } - }); + mnuCaseless.addActionListener(e -> SwitchCaseless()); - mnuVGLArcFore.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SetVGLArcFore(); - } - }); + mnuVGLArcFore.addActionListener(e -> SetVGLArcFore()); - mnuVGLArcForeSide.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SetVGLArcForeSide(); - } - }); + mnuVGLArcForeSide.addActionListener(e -> SetVGLArcForeSide()); - mnuVGLArcRear.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SetVGLArcRear(); - } - }); + mnuVGLArcRear.addActionListener(e -> SetVGLArcRear()); - mnuVGLArcRearSide.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SetVGLArcRearSide(); - } - }); + mnuVGLArcRearSide.addActionListener(e -> SetVGLArcRearSide()); - mnuVGLAmmoFrag.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SetVGLAmmoFrag(); - } - }); + mnuVGLAmmoFrag.addActionListener(e -> SetVGLAmmoFrag()); - mnuVGLAmmoChaff.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SetVGLAmmoChaff(); - } - }); + mnuVGLAmmoChaff.addActionListener(e -> SetVGLAmmoChaff()); - mnuVGLAmmoIncen.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SetVGLAmmoIncendiary(); - } - }); + mnuVGLAmmoIncen.addActionListener(e -> SetVGLAmmoIncendiary()); - mnuVGLAmmoSmoke.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - SetVGLAmmoSmoke(); - } - }); + mnuVGLAmmoSmoke.addActionListener(e -> SetVGLAmmoSmoke()); - mnuRemoveItem.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - RemoveItemCritTab(); - } - }); + mnuRemoveItem.addActionListener(e -> RemoveItemCritTab()); mnuVGLArc.setText( "Set VGL Arc" ); mnuVGLArc.add( mnuVGLArcFore ); @@ -382,23 +311,11 @@ public void actionPerformed(ActionEvent e) { ((JSpinner.DefaultEditor)spnRearTurretArmor.getEditor()).getTextField().addFocusListener(spinners); ((JSpinner.DefaultEditor)spnRotorArmor.getEditor()).getTextField().addFocusListener(spinners); - mnuFluffCut.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed( ActionEvent e ) { - FluffCut( mnuFluff.getInvoker() ); - } - }); + mnuFluffCut.addActionListener(e -> FluffCut( mnuFluff.getInvoker() )); - mnuFluffCopy.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - FluffCopy( mnuFluff.getInvoker() ); - } - }); + mnuFluffCopy.addActionListener(e -> FluffCopy( mnuFluff.getInvoker() )); - mnuFluffPaste.addActionListener( new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - FluffPaste( mnuFluff.getInvoker() ); - } - }); + mnuFluffPaste.addActionListener(e -> FluffPaste( mnuFluff.getInvoker() )); mnuFluff.add( mnuFluffCut ); mnuFluff.add( mnuFluffCopy ); @@ -426,11 +343,7 @@ public Object getValueAt( int row, int col ) { } @Override public boolean isCellEditable( int row, int col ) { - if( col == 0 ) { - return false; - } else { - return true; - } + return col != 0; } @Override public void setValueAt( Object value, int row, int col ) { @@ -442,9 +355,9 @@ public void setValueAt( Object value, int row, int col ) { fireTableCellUpdated( row, col ); } else { ArrayList v = CurVee.GetLoadout().GetEquipment(); - for( int i = 0; i < v.size(); i++ ) { - if( FileCommon.LookupStripArc( ((abPlaceable) v.get( i )).LookupName() ).equals( FileCommon.LookupStripArc( a.LookupName() ) ) ) { - ((abPlaceable) v.get( i )).SetManufacturer( (String) value ); + for (Object o : v) { + if (FileCommon.LookupStripArc(((abPlaceable) o).LookupName()).equals(FileCommon.LookupStripArc(a.LookupName()))) { + ((abPlaceable) o).SetManufacturer((String) value); } } fireTableDataChanged(); @@ -611,29 +524,29 @@ private void SwitchCaseless() { ArrayList replace = new ArrayList(); abPlaceable p; boolean HasOrig = false; - for( int i = 0; i < check.size(); i++ ) { - p = (abPlaceable) check.get( i ); - if( p instanceof RangedWeapon ) { - if( ((RangedWeapon) p).GetAmmoIndex() == origIDX ) { + for (Object o : check) { + p = (abPlaceable) o; + if (p instanceof RangedWeapon) { + if (((RangedWeapon) p).GetAmmoIndex() == origIDX) { HasOrig = true; } } - if( p instanceof Ammunition ) { - replace.add( p ); + if (p instanceof Ammunition) { + replace.add(p); } } // replace any ammo with the new stuff if there are no other original weapons if( ! HasOrig ) { Object[] newammo = data.GetEquipment().GetAmmo( newIDX, CurVee ); - for( int i = 0; i < replace.size(); i++ ) { - p = (abPlaceable) replace.get( i ); - if( ((Ammunition) p).GetAmmoIndex() == origIDX ) { - CurVee.GetLoadout().Remove( p ); - if( newammo.length > 0 ) { - p = data.GetEquipment().GetCopy( (abPlaceable) newammo[0], CurVee); + for (Object o : replace) { + p = (abPlaceable) o; + if (((Ammunition) p).GetAmmoIndex() == origIDX) { + CurVee.GetLoadout().Remove(p); + if (newammo.length > 0) { + p = data.GetEquipment().GetCopy((abPlaceable) newammo[0], CurVee); try { - CurVee.GetLoadout().AddTo( p, LocationIndex.CV_LOC_BODY ); + CurVee.GetLoadout().AddTo(p, LocationIndex.CV_LOC_BODY); } catch (Exception ex) { Media.Messager(ex.getMessage()); } @@ -796,19 +709,11 @@ private void ConfigureUtilsMenu( java.awt.Component c ) { } } if( CurItem instanceof Equipment ) { - if( ((Equipment) CurItem).IsVariableSize() ) { - mnuSetVariable.setVisible( true ); - } else { - mnuSetVariable.setVisible( false ); - } + mnuSetVariable.setVisible(((Equipment) CurItem).IsVariableSize()); } else { mnuSetVariable.setVisible( false ); } - if( CurItem.CoreComponent() || CurItem.LocationLinked() ) { - mnuRemoveItem.setEnabled( false ); - } else { - mnuRemoveItem.setEnabled( true ); - } + mnuRemoveItem.setEnabled(!CurItem.CoreComponent() && !CurItem.LocationLinked()); } private void RemoveItemCritTab() { @@ -863,14 +768,12 @@ public boolean LegalTurretMount( abPlaceable p ) { public boolean LegalLotChange( abPlaceable p ) { if( ! ( p instanceof Ammunition ) ) { return false; } - if( CurVee.UsingFractionalAccounting() ) { return true; } - return false; + return CurVee.UsingFractionalAccounting(); } public boolean LegalDumper( abPlaceable p ) { if ( ! ( p instanceof Equipment ) ) { return false; } - if ( ( (Equipment)p).CritName().equals("Cargo Container") ) { return true; } - return false; + return ((Equipment) p).CritName().equals("Cargo Container"); } public void RefreshInfoPane() { @@ -941,7 +844,7 @@ private void FluffCut( Component c ) { } java.awt.datatransfer.StringSelection export = new java.awt.datatransfer.StringSelection( cut ); java.awt.datatransfer.Clipboard clipboard = java.awt.Toolkit.getDefaultToolkit().getSystemClipboard(); - clipboard.setContents( export, (ClipboardOwner) this); + clipboard.setContents( export, this); } private void FluffCopy( Component c ) { @@ -968,7 +871,7 @@ private void FluffCopy( Component c ) { } java.awt.datatransfer.StringSelection export = new java.awt.datatransfer.StringSelection( copy ); java.awt.datatransfer.Clipboard clipboard = java.awt.Toolkit.getDefaultToolkit().getSystemClipboard(); - clipboard.setContents( export, (ClipboardOwner) this); + clipboard.setContents( export, this); } private void FluffPaste( Component c ) { @@ -976,7 +879,7 @@ private void FluffPaste( Component c ) { char space = 20; char linereturn = 13; java.awt.datatransfer.Clipboard clipboard = java.awt.Toolkit.getDefaultToolkit().getSystemClipboard(); - String txtimport = null; + String txtimport; try { txtimport = (String) clipboard.getData( DataFlavor.stringFlavor ); txtimport.replace(linereturn, space); @@ -985,7 +888,6 @@ private void FluffPaste( Component c ) { e.printStackTrace(); return; } - if( txtimport == null ) { return; } if( c instanceof JEditorPane ) { JEditorPane j = (JEditorPane) c; int insert = j.getCaretPosition(); @@ -1005,15 +907,15 @@ private void ResetAmmo() { ArrayList v = CurVee.GetLoadout().GetNonCore(), wep = new ArrayList(); Object a; - for( int i = 0; i < v.size(); i++ ) { - a = v.get( i ); - if( a instanceof ifWeapon ) { - if( ((ifWeapon) a).HasAmmo() ) { - wep.add( a ); + for (Object o : v) { + a = o; + if (a instanceof ifWeapon) { + if (((ifWeapon) a).HasAmmo()) { + wep.add(a); } - } else if( a instanceof Equipment ) { - if( ((Equipment) a).HasAmmo() ) { - wep.add( a ); + } else if (a instanceof Equipment) { + if (((Equipment) a).HasAmmo()) { + wep.add(a); } } } @@ -1047,9 +949,9 @@ private void ResetAmmo() { @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { - java.awt.GridBagConstraints gridBagConstraints; + GridBagConstraints gridBagConstraints; - pnlInfoPane = new javax.swing.JPanel(); + JPanel pnlInfoPane = new JPanel(); txtInfoTonnage = new javax.swing.JTextField(); txtInfoFreeTons = new javax.swing.JTextField(); txtInfoFreeCrits = new javax.swing.JTextField(); @@ -1057,77 +959,77 @@ private void initComponents() { txtInfoBattleValue = new javax.swing.JTextField(); txtInfoCost = new javax.swing.JTextField(); tlbIconBar = new javax.swing.JToolBar(); - btnNewVee = new javax.swing.JButton(); - btnOpen = new javax.swing.JButton(); - btnSave = new javax.swing.JButton(); - jSeparator1 = new javax.swing.JToolBar.Separator(); - btnPrint = new javax.swing.JButton(); - jSeparator2 = new javax.swing.JToolBar.Separator(); - btnExportClipboardIcon = new javax.swing.JButton(); - btnExportHTMLIcon = new javax.swing.JButton(); - btnExportTextIcon = new javax.swing.JButton(); - btnExportMTFIcon = new javax.swing.JButton(); - btnChatInfo = new javax.swing.JButton(); - jSeparator3 = new javax.swing.JToolBar.Separator(); - jSeparator25 = new javax.swing.JToolBar.Separator(); - btnAddToForceList = new javax.swing.JButton(); - btnForceList = new javax.swing.JButton(); - jSeparator4 = new javax.swing.JToolBar.Separator(); - btnOptions = new javax.swing.JButton(); - jSeparator21 = new javax.swing.JToolBar.Separator(); - lblSelectVariant = new javax.swing.JLabel(); + JButton btnNewVee = new JButton(); + JButton btnOpen = new JButton(); + JButton btnSave = new JButton(); + JToolBar.Separator jSeparator1 = new JToolBar.Separator(); + JButton btnPrint = new JButton(); + JToolBar.Separator jSeparator2 = new JToolBar.Separator(); + JButton btnExportClipboardIcon = new JButton(); + JButton btnExportHTMLIcon = new JButton(); + JButton btnExportTextIcon = new JButton(); + JButton btnExportMTFIcon = new JButton(); + JButton btnChatInfo = new JButton(); + JToolBar.Separator jSeparator3 = new JToolBar.Separator(); + JToolBar.Separator jSeparator25 = new JToolBar.Separator(); + JButton btnAddToForceList = new JButton(); + JButton btnForceList = new JButton(); + JToolBar.Separator jSeparator4 = new JToolBar.Separator(); + JButton btnOptions = new JButton(); + JToolBar.Separator jSeparator21 = new JToolBar.Separator(); + JLabel lblSelectVariant = new JLabel(); lblMoveSummary = new javax.swing.JLabel(); cmbOmniVariant = new javax.swing.JComboBox(); - tbpMainTabPane = new javax.swing.JTabbedPane(); + tbpMainTabPane = new JTabbedPane(); pnlBasicSetup = new javax.swing.JPanel(); - pnlBasicInfo = new javax.swing.JPanel(); - jLabel1 = new javax.swing.JLabel(); + JPanel pnlBasicInfo = new JPanel(); + JLabel jLabel1 = new JLabel(); txtVehicleName = new javax.swing.JTextField(); - jLabel4 = new javax.swing.JLabel(); + JLabel jLabel4 = new JLabel(); txtModel = new javax.swing.JTextField(); - jLabel2 = new javax.swing.JLabel(); + JLabel jLabel2 = new JLabel(); cmbRulesLevel = new javax.swing.JComboBox(); - jLabel5 = new javax.swing.JLabel(); + JLabel jLabel5 = new JLabel(); cmbEra = new javax.swing.JComboBox(); - jLabel3 = new javax.swing.JLabel(); + JLabel jLabel3 = new JLabel(); cmbTechBase = new javax.swing.JComboBox(); lblEraYears = new javax.swing.JLabel(); chkYearRestrict = new javax.swing.JCheckBox(); - jLabel81 = new javax.swing.JLabel(); + JLabel jLabel81 = new JLabel(); txtSource = new javax.swing.JTextField(); - lblProdYear = new javax.swing.JLabel(); + JLabel lblProdYear = new JLabel(); txtProdYear = new javax.swing.JTextField(); cmbProductionEra = new javax.swing.JComboBox(); - pnlChassis = new javax.swing.JPanel(); + JPanel pnlChassis = new JPanel(); cmbMotiveType = new javax.swing.JComboBox(); - jLabel7 = new javax.swing.JLabel(); - jLabel8 = new javax.swing.JLabel(); + JLabel jLabel7 = new JLabel(); + JLabel jLabel8 = new JLabel(); chkOmniVee = new javax.swing.JCheckBox(); chkTrailer = new javax.swing.JCheckBox(); spnTonnage = new javax.swing.JSpinner(); - jLabel9 = new javax.swing.JLabel(); + JLabel jLabel9 = new JLabel(); cmbEngineType = new javax.swing.JComboBox(); - jLabel32 = new javax.swing.JLabel(); + JLabel jLabel32 = new JLabel(); cmbTurret = new javax.swing.JComboBox(); lblVeeClass = new javax.swing.JLabel(); lblVeeLimits = new javax.swing.JLabel(); - jLabel91 = new javax.swing.JLabel(); + JLabel jLabel91 = new JLabel(); spnHeatSinks = new javax.swing.JSpinner(); spnTurretTonnage = new javax.swing.JSpinner(); - pnlMovement = new javax.swing.JPanel(); - jLabel10 = new javax.swing.JLabel(); + JPanel pnlMovement = new JPanel(); + JLabel jLabel10 = new JLabel(); spnCruiseMP = new javax.swing.JSpinner(); - jLabel11 = new javax.swing.JLabel(); + JLabel jLabel11 = new JLabel(); lblFlankMP = new javax.swing.JLabel(); - jLabel13 = new javax.swing.JLabel(); + JLabel jLabel13 = new JLabel(); spnJumpMP = new javax.swing.JSpinner(); - pnlChassisMods = new javax.swing.JPanel(); + JPanel pnlChassisMods = new JPanel(); chkFlotationHull = new javax.swing.JCheckBox(); chkLimitedAmph = new javax.swing.JCheckBox(); chkFullAmph = new javax.swing.JCheckBox(); chkDuneBuggy = new javax.swing.JCheckBox(); chkEnviroSealing = new javax.swing.JCheckBox(); - pnlExperimental = new javax.swing.JPanel(); + JPanel pnlExperimental = new JPanel(); chkArmoredMotive = new javax.swing.JCheckBox(); chkCommandConsole = new javax.swing.JCheckBox(); chkEscapePod = new javax.swing.JCheckBox(); @@ -1135,115 +1037,115 @@ private void initComponents() { chkJetBooster = new javax.swing.JCheckBox(); chkSupercharger = new javax.swing.JCheckBox(); chkSponsonTurret = new javax.swing.JCheckBox(); - jPanel11 = new javax.swing.JPanel(); + JPanel jPanel11 = new JPanel(); chkFractional = new javax.swing.JCheckBox(); - pnlSummary = new javax.swing.JPanel(); - jLabel12 = new javax.swing.JLabel(); - jLabel14 = new javax.swing.JLabel(); - jLabel15 = new javax.swing.JLabel(); - jLabel16 = new javax.swing.JLabel(); - jLabel17 = new javax.swing.JLabel(); + JPanel pnlSummary = new JPanel(); + JLabel jLabel12 = new JLabel(); + JLabel jLabel14 = new JLabel(); + JLabel jLabel15 = new JLabel(); + JLabel jLabel16 = new JLabel(); + JLabel jLabel17 = new JLabel(); txtSumIntTons = new javax.swing.JTextField(); txtSumIntAV = new javax.swing.JTextField(); - jLabel18 = new javax.swing.JLabel(); + JLabel jLabel18 = new JLabel(); txtSumEngTons = new javax.swing.JTextField(); txtSumEngAV = new javax.swing.JTextField(); - jLabel19 = new javax.swing.JLabel(); + JLabel jLabel19 = new JLabel(); txtSumLifTons = new javax.swing.JTextField(); txtSumLifAV = new javax.swing.JTextField(); txtSumEngSpace = new javax.swing.JTextField(); - jLabel20 = new javax.swing.JLabel(); + JLabel jLabel20 = new JLabel(); txtSumConTons = new javax.swing.JTextField(); txtSumConAV = new javax.swing.JTextField(); - jLabel21 = new javax.swing.JLabel(); + JLabel jLabel21 = new JLabel(); txtSumJJTons = new javax.swing.JTextField(); - txtSumJJSpace = new javax.swing.JTextField(); + JTextField txtSumJJSpace = new JTextField(); txtSumJJAV = new javax.swing.JTextField(); - jLabel22 = new javax.swing.JLabel(); + JLabel jLabel22 = new JLabel(); txtSumHSTons = new javax.swing.JTextField(); txtSumHSAV = new javax.swing.JTextField(); - jLabel23 = new javax.swing.JLabel(); + JLabel jLabel23 = new JLabel(); txtSumArmTons = new javax.swing.JTextField(); txtSumArmSpace = new javax.swing.JTextField(); txtSumArmAV = new javax.swing.JTextField(); - jLabel24 = new javax.swing.JLabel(); + JLabel jLabel24 = new JLabel(); txtSumTurTons = new javax.swing.JTextField(); txtSumTurAV = new javax.swing.JTextField(); - jLabel25 = new javax.swing.JLabel(); + JLabel jLabel25 = new JLabel(); txtSumRTuTons = new javax.swing.JTextField(); txtSumRTuAV = new javax.swing.JTextField(); - jLabel26 = new javax.swing.JLabel(); + JLabel jLabel26 = new JLabel(); txtSumSpnTons = new javax.swing.JTextField(); txtSumSpnAV = new javax.swing.JTextField(); - jLabel27 = new javax.swing.JLabel(); + JLabel jLabel27 = new JLabel(); txtSumPATons = new javax.swing.JTextField(); txtSumPAAV = new javax.swing.JTextField(); - pnlInformation = new javax.swing.JPanel(); - jLabel29 = new javax.swing.JLabel(); + JPanel pnlInformation = new JPanel(); + JLabel jLabel29 = new JLabel(); lblSupensionFacter = new javax.swing.JLabel(); - jLabel31 = new javax.swing.JLabel(); + JLabel jLabel31 = new JLabel(); lblMinEngineTons = new javax.swing.JLabel(); - jLabel33 = new javax.swing.JLabel(); + JLabel jLabel33 = new JLabel(); lblBaseEngineRating = new javax.swing.JLabel(); - jLabel35 = new javax.swing.JLabel(); + JLabel jLabel35 = new JLabel(); lblFinalEngineRating = new javax.swing.JLabel(); - jLabel28 = new javax.swing.JLabel(); + JLabel jLabel28 = new JLabel(); lblFreeHeatSinks = new javax.swing.JLabel(); - jLabel30 = new javax.swing.JLabel(); + JLabel jLabel30 = new JLabel(); lblNumCrew = new javax.swing.JLabel(); - pnlOmniInfo = new javax.swing.JPanel(); + JPanel pnlOmniInfo = new JPanel(); btnLockChassis = new javax.swing.JButton(); btnAddVariant = new javax.swing.JButton(); btnDeleteVariant = new javax.swing.JButton(); btnRenameVariant = new javax.swing.JButton(); - jPanel2 = new javax.swing.JPanel(); - jPanel6 = new javax.swing.JPanel(); - pnlRightArmor = new javax.swing.JPanel(); + JPanel jPanel2 = new JPanel(); + JPanel jPanel6 = new JPanel(); + JPanel pnlRightArmor = new JPanel(); lblRightIntPts = new javax.swing.JLabel(); - jLabel40 = new javax.swing.JLabel(); - jLabel46 = new javax.swing.JLabel(); + JLabel jLabel40 = new JLabel(); + JLabel jLabel46 = new JLabel(); spnRightArmor = new javax.swing.JSpinner(); - pnlFrontArmor = new javax.swing.JPanel(); + JPanel pnlFrontArmor = new JPanel(); lblFrontIntPts = new javax.swing.JLabel(); - jLabel45 = new javax.swing.JLabel(); - jLabel47 = new javax.swing.JLabel(); + JLabel jLabel45 = new JLabel(); + JLabel jLabel47 = new JLabel(); spnFrontArmor = new javax.swing.JSpinner(); - pnlLeftArmor = new javax.swing.JPanel(); + JPanel pnlLeftArmor = new JPanel(); lblLeftIntPts = new javax.swing.JLabel(); - jLabel41 = new javax.swing.JLabel(); - jLabel48 = new javax.swing.JLabel(); + JLabel jLabel41 = new JLabel(); + JLabel jLabel48 = new JLabel(); spnLeftArmor = new javax.swing.JSpinner(); - pnlRearArmor = new javax.swing.JPanel(); + JPanel pnlRearArmor = new JPanel(); lblRearIntPts = new javax.swing.JLabel(); - jLabel44 = new javax.swing.JLabel(); - jLabel49 = new javax.swing.JLabel(); + JLabel jLabel44 = new JLabel(); + JLabel jLabel49 = new JLabel(); spnRearArmor = new javax.swing.JSpinner(); pnlTurretArmor = new javax.swing.JPanel(); lblTurretIntPts = new javax.swing.JLabel(); - jLabel42 = new javax.swing.JLabel(); - jLabel50 = new javax.swing.JLabel(); + JLabel jLabel42 = new JLabel(); + JLabel jLabel50 = new JLabel(); spnTurretArmor = new javax.swing.JSpinner(); pnlRearTurretArmor = new javax.swing.JPanel(); lblRearTurretIntPts = new javax.swing.JLabel(); - jLabel43 = new javax.swing.JLabel(); - jLabel51 = new javax.swing.JLabel(); + JLabel jLabel43 = new JLabel(); + JLabel jLabel51 = new JLabel(); spnRearTurretArmor = new javax.swing.JSpinner(); pnlRotorArmor = new javax.swing.JPanel(); lblRotorIntPts = new javax.swing.JLabel(); - jLabel92 = new javax.swing.JLabel(); - jLabel93 = new javax.swing.JLabel(); + JLabel jLabel92 = new JLabel(); + JLabel jLabel93 = new JLabel(); spnRotorArmor = new javax.swing.JSpinner(); - pnlArmorType = new javax.swing.JPanel(); - jLabel52 = new javax.swing.JLabel(); + JPanel pnlArmorType = new JPanel(); + JLabel jLabel52 = new JLabel(); cmbArmorType = new javax.swing.JComboBox(); chkBalanceLRArmor = new javax.swing.JCheckBox(); chkBalanceFRArmor = new javax.swing.JCheckBox(); btnSetArmorTons = new javax.swing.JButton(); btnUseRemaining = new javax.swing.JButton(); btnMaximize = new javax.swing.JButton(); - jPanel8 = new javax.swing.JPanel(); - jLabel34 = new javax.swing.JLabel(); - jLabel36 = new javax.swing.JLabel(); + JPanel jPanel8 = new JPanel(); + JLabel jLabel34 = new JLabel(); + JLabel jLabel36 = new JLabel(); lblArmorTotals = new javax.swing.JLabel(); lblArmorCoverage = new javax.swing.JLabel(); txtArmorTons = new javax.swing.JTextField(); @@ -1251,114 +1153,115 @@ private void initComponents() { lblArmorTonsWasted = new javax.swing.JLabel(); lblArmorLeftInLot = new javax.swing.JLabel(); jPanel3 = new javax.swing.JPanel(); - tbpWeaponChooser = new javax.swing.JTabbedPane(); - pnlBallistic = new javax.swing.JPanel(); - jSeparator5 = new javax.swing.JSeparator(); - jScrollPane8 = new javax.swing.JScrollPane(); + tbpWeaponChooser = new JTabbedPane(); + JPanel pnlBallistic = new JPanel(); + JSeparator jSeparator5 = new JSeparator(); + JScrollPane jScrollPane8 = new JScrollPane(); lstChooseBallistic = new javax.swing.JList(); - jSeparator6 = new javax.swing.JSeparator(); - pnlEnergy = new javax.swing.JPanel(); - jSeparator7 = new javax.swing.JSeparator(); - jScrollPane9 = new javax.swing.JScrollPane(); + JSeparator jSeparator6 = new JSeparator(); + JPanel pnlEnergy = new JPanel(); + JSeparator jSeparator7 = new JSeparator(); + JScrollPane jScrollPane9 = new JScrollPane(); lstChooseEnergy = new javax.swing.JList(); - jSeparator8 = new javax.swing.JSeparator(); - pnlMissile = new javax.swing.JPanel(); - jSeparator9 = new javax.swing.JSeparator(); - jScrollPane19 = new javax.swing.JScrollPane(); + JSeparator jSeparator8 = new JSeparator(); + JPanel pnlMissile = new JPanel(); + JSeparator jSeparator9 = new JSeparator(); + JScrollPane jScrollPane19 = new JScrollPane(); lstChooseMissile = new javax.swing.JList(); - jSeparator10 = new javax.swing.JSeparator(); - pnlPhysical = new javax.swing.JPanel(); - jSeparator11 = new javax.swing.JSeparator(); - jScrollPane20 = new javax.swing.JScrollPane(); + JSeparator jSeparator10 = new JSeparator(); + JPanel pnlPhysical = new JPanel(); + JSeparator jSeparator11 = new JSeparator(); + JScrollPane jScrollPane20 = new JScrollPane(); lstChoosePhysical = new javax.swing.JList(); - jSeparator12 = new javax.swing.JSeparator(); - pnlEquipmentChooser = new javax.swing.JPanel(); - jSeparator13 = new javax.swing.JSeparator(); - jScrollPane21 = new javax.swing.JScrollPane(); + JSeparator jSeparator12 = new JSeparator(); + JPanel pnlEquipmentChooser = new JPanel(); + JSeparator jSeparator13 = new JSeparator(); + JScrollPane jScrollPane21 = new JScrollPane(); lstChooseEquipment = new javax.swing.JList(); - jSeparator14 = new javax.swing.JSeparator(); - pnlArtillery = new javax.swing.JPanel(); - jSeparator18 = new javax.swing.JSeparator(); - jScrollPane24 = new javax.swing.JScrollPane(); + JSeparator jSeparator14 = new JSeparator(); + JPanel pnlArtillery = new JPanel(); + JSeparator jSeparator18 = new JSeparator(); + JScrollPane jScrollPane24 = new JScrollPane(); lstChooseArtillery = new javax.swing.JList(); - jSeparator19 = new javax.swing.JSeparator(); - pnlAmmunition = new javax.swing.JPanel(); - jSeparator15 = new javax.swing.JSeparator(); - jScrollPane22 = new javax.swing.JScrollPane(); + JSeparator jSeparator19 = new JSeparator(); + JPanel pnlAmmunition = new JPanel(); + JSeparator jSeparator15 = new JSeparator(); + JScrollPane jScrollPane22 = new JScrollPane(); lstChooseAmmunition = new javax.swing.JList(); - jSeparator16 = new javax.swing.JSeparator(); - pnlSpecials = new javax.swing.JPanel(); - jLabel37 = new javax.swing.JLabel(); + JSeparator jSeparator16 = new JSeparator(); + JPanel pnlSpecials = new JPanel(); + JLabel jLabel37 = new JLabel(); chkUseTC = new javax.swing.JCheckBox(); chkFCSAIV = new javax.swing.JCheckBox(); chkFCSAV = new javax.swing.JCheckBox(); chkFCSApollo = new javax.swing.JCheckBox(); chkCASE = new javax.swing.JCheckBox(); - pnlSelected = new javax.swing.JPanel(); - jScrollPane23 = new javax.swing.JScrollPane(); + JPanel pnlSelected = new JPanel(); + JScrollPane jScrollPane23 = new JScrollPane(); lstSelectedEquipment = new javax.swing.JList(); - pnlEquipInfo = new javax.swing.JPanel(); - jLabel38 = new javax.swing.JLabel(); - jLabel39 = new javax.swing.JLabel(); - jLabel53 = new javax.swing.JLabel(); + JPanel pnlEquipInfo = new JPanel(); + JLabel jLabel38 = new JLabel(); + JLabel jLabel39 = new JLabel(); + JLabel jLabel53 = new JLabel(); lblInfoAVSL = new javax.swing.JLabel(); lblInfoAVSW = new javax.swing.JLabel(); lblInfoAVCI = new javax.swing.JLabel(); - jLabel54 = new javax.swing.JLabel(); - jLabel55 = new javax.swing.JLabel(); - jLabel56 = new javax.swing.JLabel(); + JLabel jLabel54 = new JLabel(); + JLabel jLabel55 = new JLabel(); + JLabel jLabel56 = new JLabel(); lblInfoIntro = new javax.swing.JLabel(); lblInfoExtinct = new javax.swing.JLabel(); lblInfoReintro = new javax.swing.JLabel(); - jLabel57 = new javax.swing.JLabel(); - jLabel58 = new javax.swing.JLabel(); - jLabel59 = new javax.swing.JLabel(); - jLabel60 = new javax.swing.JLabel(); - jLabel61 = new javax.swing.JLabel(); + JLabel jLabel57 = new JLabel(); + JLabel jLabel58 = new JLabel(); + JLabel jLabel59 = new JLabel(); + JLabel jLabel60 = new JLabel(); + JLabel jLabel61 = new JLabel(); lblInfoName = new javax.swing.JLabel(); lblInfoType = new javax.swing.JLabel(); lblInfoHeat = new javax.swing.JLabel(); lblInfoDamage = new javax.swing.JLabel(); lblInfoRange = new javax.swing.JLabel(); - jSeparator17 = new javax.swing.JSeparator(); - jLabel62 = new javax.swing.JLabel(); - jLabel63 = new javax.swing.JLabel(); - jLabel64 = new javax.swing.JLabel(); - jLabel65 = new javax.swing.JLabel(); + JSeparator jSeparator17 = new JSeparator(); + JLabel jLabel62 = new JLabel(); + JLabel jLabel63 = new JLabel(); + JLabel jLabel64 = new JLabel(); + JLabel jLabel65 = new JLabel(); lblInfoAmmo = new javax.swing.JLabel(); lblInfoTonnage = new javax.swing.JLabel(); lblInfoCrits = new javax.swing.JLabel(); lblInfoSpecials = new javax.swing.JLabel(); - jSeparator20 = new javax.swing.JSeparator(); - jLabel66 = new javax.swing.JLabel(); + JSeparator jSeparator20 = new JSeparator(); + JLabel jLabel66 = new JLabel(); lblInfoCost = new javax.swing.JLabel(); - jLabel67 = new javax.swing.JLabel(); + JLabel jLabel67 = new JLabel(); lblInfoBV = new javax.swing.JLabel(); - jLabel68 = new javax.swing.JLabel(); + JLabel jLabel68 = new JLabel(); lblInfoMountRestrict = new javax.swing.JLabel(); - jLabel69 = new javax.swing.JLabel(); + JLabel jLabel69 = new JLabel(); lblInfoRulesLevel = new javax.swing.JLabel(); - jLabel6 = new javax.swing.JLabel(); + JLabel jLabel6 = new JLabel(); lblInfoAVDA = new javax.swing.JLabel(); - pnlControls = new javax.swing.JPanel(); - btnRemoveEquip = new javax.swing.JButton(); - btnClearEquip = new javax.swing.JButton(); - btnAddEquip = new javax.swing.JButton(); + JPanel pnlControls = new JPanel(); + JButton btnRemoveEquip = new JButton(); + JButton btnClearEquip = new JButton(); + // Variables declaration - do not modify//GEN-BEGIN:variables + JButton btnAddEquip = new JButton(); cmbNumEquips = new javax.swing.JComboBox(); - jScrollPane1 = new javax.swing.JScrollPane(); + JScrollPane jScrollPane1 = new JScrollPane(); cmbLocation = new javax.swing.JList(); - jPanel4 = new javax.swing.JPanel(); - pnlFluff = new javax.swing.JPanel(); - pnlImage = new javax.swing.JPanel(); + JPanel jPanel4 = new JPanel(); + JPanel pnlFluff = new JPanel(); + JPanel pnlImage = new JPanel(); lblFluffImage = new javax.swing.JLabel(); - jPanel1 = new javax.swing.JPanel(); - btnLoadImage = new javax.swing.JButton(); - btnClearImage = new javax.swing.JButton(); - pnlExport = new javax.swing.JPanel(); - btnExportTXT = new javax.swing.JButton(); - btnExportHTML = new javax.swing.JButton(); - btnExportMTF = new javax.swing.JButton(); - tbpFluffEditors = new javax.swing.JTabbedPane(); + JPanel jPanel1 = new JPanel(); + JButton btnLoadImage = new JButton(); + JButton btnClearImage = new JButton(); + JPanel pnlExport = new JPanel(); + JButton btnExportTXT = new JButton(); + JButton btnExportHTML = new JButton(); + JButton btnExportMTF = new JButton(); + JTabbedPane tbpFluffEditors = new JTabbedPane(); pnlOverview = new javax.swing.JPanel(); pnlCapabilities = new javax.swing.JPanel(); pnlHistory = new javax.swing.JPanel(); @@ -1366,45 +1269,45 @@ private void initComponents() { pnlVariants = new javax.swing.JPanel(); pnlNotables = new javax.swing.JPanel(); pnlAdditionalFluff = new javax.swing.JPanel(); - pnlManufacturers = new javax.swing.JPanel(); - jLabel82 = new javax.swing.JLabel(); - jLabel83 = new javax.swing.JLabel(); - jLabel84 = new javax.swing.JLabel(); - jLabel85 = new javax.swing.JLabel(); - jLabel86 = new javax.swing.JLabel(); - jLabel87 = new javax.swing.JLabel(); - jLabel88 = new javax.swing.JLabel(); - jLabel89 = new javax.swing.JLabel(); + JPanel pnlManufacturers = new JPanel(); + JLabel jLabel82 = new JLabel(); + JLabel jLabel83 = new JLabel(); + JLabel jLabel84 = new JLabel(); + JLabel jLabel85 = new JLabel(); + JLabel jLabel86 = new JLabel(); + JLabel jLabel87 = new JLabel(); + JLabel jLabel88 = new JLabel(); + JLabel jLabel89 = new JLabel(); txtManufacturer = new javax.swing.JTextField(); txtEngineManufacturer = new javax.swing.JTextField(); txtArmorModel = new javax.swing.JTextField(); txtChassisModel = new javax.swing.JTextField(); txtCommSystem = new javax.swing.JTextField(); txtTNTSystem = new javax.swing.JTextField(); - pnlWeaponsManufacturers = new javax.swing.JPanel(); + JPanel pnlWeaponsManufacturers = new JPanel(); chkIndividualWeapons = new javax.swing.JCheckBox(); - scpWeaponManufacturers = new javax.swing.JScrollPane(); + JScrollPane scpWeaponManufacturers = new JScrollPane(); tblWeaponManufacturers = new javax.swing.JTable(); txtManufacturerLocation = new javax.swing.JTextField(); - jLabel90 = new javax.swing.JLabel(); + JLabel jLabel90 = new JLabel(); txtJJModel = new javax.swing.JTextField(); - pnlQuirks = new javax.swing.JPanel(); - lblBattleMechQuirks = new javax.swing.JLabel(); - scpQuirkTable = new javax.swing.JScrollPane(); - tblQuirks = new javax.swing.JTable(); - btnAddQuirk = new javax.swing.JButton(); - jPanel9 = new javax.swing.JPanel(); - pnlBFStats = new javax.swing.JPanel(); - jLabel70 = new javax.swing.JLabel(); - jLabel71 = new javax.swing.JLabel(); - jLabel72 = new javax.swing.JLabel(); - jLabel73 = new javax.swing.JLabel(); - jLabel74 = new javax.swing.JLabel(); - jLabel75 = new javax.swing.JLabel(); - jLabel76 = new javax.swing.JLabel(); - jLabel77 = new javax.swing.JLabel(); - jLabel78 = new javax.swing.JLabel(); - jLabel79 = new javax.swing.JLabel(); + JPanel pnlQuirks = new JPanel(); + JLabel lblBattleMechQuirks = new JLabel(); + JScrollPane scpQuirkTable = new JScrollPane(); + JTable tblQuirks = new JTable(); + JButton btnAddQuirk = new JButton(); + JPanel jPanel9 = new JPanel(); + JPanel pnlBFStats = new JPanel(); + JLabel jLabel70 = new JLabel(); + JLabel jLabel71 = new JLabel(); + JLabel jLabel72 = new JLabel(); + JLabel jLabel73 = new JLabel(); + JLabel jLabel74 = new JLabel(); + JLabel jLabel75 = new JLabel(); + JLabel jLabel76 = new JLabel(); + JLabel jLabel77 = new JLabel(); + JLabel jLabel78 = new JLabel(); + JLabel jLabel79 = new JLabel(); lblBFMV = new javax.swing.JLabel(); lblBFWt = new javax.swing.JLabel(); lblBFOV = new javax.swing.JLabel(); @@ -1415,53 +1318,53 @@ private void initComponents() { lblBFArmor = new javax.swing.JLabel(); lblBFStructure = new javax.swing.JLabel(); lblBFSA = new javax.swing.JLabel(); - jLabel80 = new javax.swing.JLabel(); + JLabel jLabel80 = new JLabel(); lblBFPoints = new javax.swing.JLabel(); - jPanel10 = new javax.swing.JPanel(); - jScrollPane14 = new javax.swing.JScrollPane(); + JPanel jPanel10 = new JPanel(); + JScrollPane jScrollPane14 = new JScrollPane(); jTextAreaBFConversion = new javax.swing.JTextArea(); - jMenuBar1 = new javax.swing.JMenuBar(); - mnuFile = new javax.swing.JMenu(); - mnuNewMech = new javax.swing.JMenuItem(); - mnuLoad = new javax.swing.JMenuItem(); - mnuOpen = new javax.swing.JMenuItem(); - mnuImport = new javax.swing.JMenu(); - mnuImportHMP = new javax.swing.JMenuItem(); - mnuBatchHMP = new javax.swing.JMenuItem(); - jSeparator22 = new javax.swing.JSeparator(); - mnuSave = new javax.swing.JMenuItem(); - mnuSaveAs = new javax.swing.JMenuItem(); - mnuExport = new javax.swing.JMenu(); - mnuExportHTML = new javax.swing.JMenuItem(); - mnuExportMTF = new javax.swing.JMenuItem(); - mnuExportTXT = new javax.swing.JMenuItem(); - mnuExportClipboard = new javax.swing.JMenuItem(); - mnuCreateTCGMech = new javax.swing.JMenuItem(); - jSeparator23 = new javax.swing.JSeparator(); - mnuPrint = new javax.swing.JMenu(); - mnuPrintPreview = new javax.swing.JMenuItem(); - jSeparator24 = new javax.swing.JSeparator(); - mnuExit = new javax.swing.JMenuItem(); - mnuClearFluff = new javax.swing.JMenu(); - mnuSummary = new javax.swing.JMenuItem(); - mnuCostBVBreakdown = new javax.swing.JMenuItem(); - mnuTextTRO = new javax.swing.JMenuItem(); - jSeparator26 = new javax.swing.JSeparator(); - mnuBFB = new javax.swing.JMenuItem(); - jSeparator27 = new javax.swing.JSeparator(); - mnuOptions = new javax.swing.JMenuItem(); + JMenuBar jMenuBar1 = new JMenuBar(); + JMenu mnuFile = new JMenu(); + JMenuItem mnuNewMech = new JMenuItem(); + JMenuItem mnuLoad = new JMenuItem(); + JMenuItem mnuOpen = new JMenuItem(); + JMenu mnuImport = new JMenu(); + JMenuItem mnuImportHMP = new JMenuItem(); + JMenuItem mnuBatchHMP = new JMenuItem(); + JSeparator jSeparator22 = new JSeparator(); + JMenuItem mnuSave = new JMenuItem(); + JMenuItem mnuSaveAs = new JMenuItem(); + JMenu mnuExport = new JMenu(); + JMenuItem mnuExportHTML = new JMenuItem(); + JMenuItem mnuExportMTF = new JMenuItem(); + JMenuItem mnuExportTXT = new JMenuItem(); + JMenuItem mnuExportClipboard = new JMenuItem(); + JMenuItem mnuCreateTCGMech = new JMenuItem(); + JSeparator jSeparator23 = new JSeparator(); + JMenu mnuPrint = new JMenu(); + JMenuItem mnuPrintPreview = new JMenuItem(); + JSeparator jSeparator24 = new JSeparator(); + JMenuItem mnuExit = new JMenuItem(); + JMenu mnuClearFluff = new JMenu(); + JMenuItem mnuSummary = new JMenuItem(); + JMenuItem mnuCostBVBreakdown = new JMenuItem(); + JMenuItem mnuTextTRO = new JMenuItem(); + JSeparator jSeparator26 = new JSeparator(); + JMenuItem mnuBFB = new JMenuItem(); + JSeparator jSeparator27 = new JSeparator(); + JMenuItem mnuOptions = new JMenuItem(); mnuViewToolbar = new javax.swing.JCheckBoxMenuItem(); - mnuClearUserData = new javax.swing.JMenuItem(); - jSeparator30 = new javax.swing.JSeparator(); + JMenuItem mnuClearUserData = new JMenuItem(); + JSeparator jSeparator30 = new JSeparator(); mnuUnlock = new javax.swing.JMenuItem(); - jMenuItem1 = new javax.swing.JMenuItem(); - mnuReloadEquipment = new javax.swing.JMenuItem(); - mnuHelp = new javax.swing.JMenu(); - mnuCredits = new javax.swing.JMenuItem(); - mnuAboutSSW = new javax.swing.JMenuItem(); + JMenuItem jMenuItem1 = new JMenuItem(); + JMenuItem mnuReloadEquipment = new JMenuItem(); + JMenu mnuHelp = new JMenu(); + JMenuItem mnuCredits = new JMenuItem(); + JMenuItem mnuAboutSSW = new JMenuItem(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); - setMinimumSize(new java.awt.Dimension(800, 600)); + setMinimumSize(new Dimension(800, 600)); setResizable(false); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosed(java.awt.event.WindowEvent evt) { @@ -1472,49 +1375,49 @@ public void windowClosed(java.awt.event.WindowEvent evt) { txtInfoTonnage.setEditable(false); txtInfoTonnage.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtInfoTonnage.setText("Tonnage: 000.00"); - txtInfoTonnage.setMaximumSize(new java.awt.Dimension(110, 20)); - txtInfoTonnage.setMinimumSize(new java.awt.Dimension(110, 20)); - txtInfoTonnage.setPreferredSize(new java.awt.Dimension(110, 20)); + txtInfoTonnage.setMaximumSize(new Dimension(110, 20)); + txtInfoTonnage.setMinimumSize(new Dimension(110, 20)); + txtInfoTonnage.setPreferredSize(new Dimension(110, 20)); pnlInfoPane.add(txtInfoTonnage); txtInfoFreeTons.setEditable(false); txtInfoFreeTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtInfoFreeTons.setText("Free Tons: 000.00"); - txtInfoFreeTons.setMaximumSize(new java.awt.Dimension(115, 20)); - txtInfoFreeTons.setMinimumSize(new java.awt.Dimension(115, 20)); - txtInfoFreeTons.setPreferredSize(new java.awt.Dimension(115, 20)); + txtInfoFreeTons.setMaximumSize(new Dimension(115, 20)); + txtInfoFreeTons.setMinimumSize(new Dimension(115, 20)); + txtInfoFreeTons.setPreferredSize(new Dimension(115, 20)); pnlInfoPane.add(txtInfoFreeTons); txtInfoFreeCrits.setEditable(false); txtInfoFreeCrits.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtInfoFreeCrits.setText("Space: 00"); - txtInfoFreeCrits.setMaximumSize(new java.awt.Dimension(65, 20)); - txtInfoFreeCrits.setMinimumSize(new java.awt.Dimension(65, 20)); - txtInfoFreeCrits.setPreferredSize(new java.awt.Dimension(65, 20)); + txtInfoFreeCrits.setMaximumSize(new Dimension(65, 20)); + txtInfoFreeCrits.setMinimumSize(new Dimension(65, 20)); + txtInfoFreeCrits.setPreferredSize(new Dimension(65, 20)); pnlInfoPane.add(txtInfoFreeCrits); txtTurretInfo.setEditable(false); txtTurretInfo.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtTurretInfo.setText("Turret: 000.00"); - txtTurretInfo.setMaximumSize(new java.awt.Dimension(120, 20)); - txtTurretInfo.setMinimumSize(new java.awt.Dimension(120, 20)); - txtTurretInfo.setPreferredSize(new java.awt.Dimension(100, 20)); + txtTurretInfo.setMaximumSize(new Dimension(120, 20)); + txtTurretInfo.setMinimumSize(new Dimension(120, 20)); + txtTurretInfo.setPreferredSize(new Dimension(100, 20)); pnlInfoPane.add(txtTurretInfo); txtInfoBattleValue.setEditable(false); txtInfoBattleValue.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtInfoBattleValue.setText("BV: 00,000"); - txtInfoBattleValue.setMaximumSize(new java.awt.Dimension(75, 20)); - txtInfoBattleValue.setMinimumSize(new java.awt.Dimension(75, 20)); - txtInfoBattleValue.setPreferredSize(new java.awt.Dimension(75, 20)); + txtInfoBattleValue.setMaximumSize(new Dimension(75, 20)); + txtInfoBattleValue.setMinimumSize(new Dimension(75, 20)); + txtInfoBattleValue.setPreferredSize(new Dimension(75, 20)); pnlInfoPane.add(txtInfoBattleValue); txtInfoCost.setEditable(false); txtInfoCost.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtInfoCost.setText("Cost: 000,000,000,000.00"); - txtInfoCost.setMaximumSize(new java.awt.Dimension(165, 20)); - txtInfoCost.setMinimumSize(new java.awt.Dimension(165, 20)); - txtInfoCost.setPreferredSize(new java.awt.Dimension(165, 20)); + txtInfoCost.setMaximumSize(new Dimension(165, 20)); + txtInfoCost.setMinimumSize(new Dimension(165, 20)); + txtInfoCost.setPreferredSize(new Dimension(165, 20)); pnlInfoPane.add(txtInfoCost); tlbIconBar.setFloatable(false); @@ -1522,108 +1425,72 @@ public void windowClosed(java.awt.event.WindowEvent evt) { btnNewVee.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/document--plus.png"))); // NOI18N btnNewVee.setFocusable(false); - btnNewVee.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnNewVee.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnNewVee.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnNewVeeActionPerformed(evt); - } - }); + btnNewVee.setHorizontalTextPosition(SwingConstants.CENTER); + btnNewVee.setVerticalTextPosition(SwingConstants.BOTTOM); + btnNewVee.addActionListener(this::btnNewVeeActionPerformed); tlbIconBar.add(btnNewVee); btnOpen.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/folder-open-document.png"))); // NOI18N btnOpen.setFocusable(false); - btnOpen.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnOpen.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnOpen.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnOpenActionPerformed(evt); - } - }); + btnOpen.setHorizontalTextPosition(SwingConstants.CENTER); + btnOpen.setVerticalTextPosition(SwingConstants.BOTTOM); + btnOpen.addActionListener(this::btnOpenActionPerformed); tlbIconBar.add(btnOpen); btnSave.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/disk-black.png"))); // NOI18N btnSave.setFocusable(false); - btnSave.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnSave.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnSave.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnSaveActionPerformed(evt); - } - }); + btnSave.setHorizontalTextPosition(SwingConstants.CENTER); + btnSave.setVerticalTextPosition(SwingConstants.BOTTOM); + btnSave.addActionListener(this::btnSaveActionPerformed); tlbIconBar.add(btnSave); tlbIconBar.add(jSeparator1); btnPrint.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/printer.png"))); // NOI18N btnPrint.setFocusable(false); - btnPrint.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnPrint.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnPrint.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnPrintActionPerformed(evt); - } - }); + btnPrint.setHorizontalTextPosition(SwingConstants.CENTER); + btnPrint.setVerticalTextPosition(SwingConstants.BOTTOM); + btnPrint.addActionListener(this::btnPrintActionPerformed); tlbIconBar.add(btnPrint); tlbIconBar.add(jSeparator2); btnExportClipboardIcon.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/document-clipboard.png"))); // NOI18N btnExportClipboardIcon.setToolTipText("Export Text to Clipboard"); btnExportClipboardIcon.setFocusable(false); - btnExportClipboardIcon.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnExportClipboardIcon.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnExportClipboardIcon.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnExportClipboardIconActionPerformed(evt); - } - }); + btnExportClipboardIcon.setHorizontalTextPosition(SwingConstants.CENTER); + btnExportClipboardIcon.setVerticalTextPosition(SwingConstants.BOTTOM); + btnExportClipboardIcon.addActionListener(this::btnExportClipboardIconActionPerformed); tlbIconBar.add(btnExportClipboardIcon); btnExportHTMLIcon.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/document-image.png"))); // NOI18N btnExportHTMLIcon.setToolTipText("Export HTML"); btnExportHTMLIcon.setFocusable(false); - btnExportHTMLIcon.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnExportHTMLIcon.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnExportHTMLIcon.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnExportHTMLIconActionPerformed(evt); - } - }); + btnExportHTMLIcon.setHorizontalTextPosition(SwingConstants.CENTER); + btnExportHTMLIcon.setVerticalTextPosition(SwingConstants.BOTTOM); + btnExportHTMLIcon.addActionListener(this::btnExportHTMLIconActionPerformed); tlbIconBar.add(btnExportHTMLIcon); btnExportTextIcon.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/document-text.png"))); // NOI18N btnExportTextIcon.setToolTipText("Export Text"); btnExportTextIcon.setFocusable(false); - btnExportTextIcon.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnExportTextIcon.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnExportTextIcon.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnExportTextIconActionPerformed(evt); - } - }); + btnExportTextIcon.setHorizontalTextPosition(SwingConstants.CENTER); + btnExportTextIcon.setVerticalTextPosition(SwingConstants.BOTTOM); + btnExportTextIcon.addActionListener(this::btnExportTextIconActionPerformed); tlbIconBar.add(btnExportTextIcon); btnExportMTFIcon.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/document--arrow.png"))); // NOI18N btnExportMTFIcon.setToolTipText("Export MTF"); btnExportMTFIcon.setFocusable(false); - btnExportMTFIcon.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnExportMTFIcon.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnExportMTFIcon.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnExportMTFIconActionPerformed(evt); - } - }); + btnExportMTFIcon.setHorizontalTextPosition(SwingConstants.CENTER); + btnExportMTFIcon.setVerticalTextPosition(SwingConstants.BOTTOM); + btnExportMTFIcon.addActionListener(this::btnExportMTFIconActionPerformed); tlbIconBar.add(btnExportMTFIcon); btnChatInfo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/balloon.png"))); // NOI18N btnChatInfo.setToolTipText("Copy Chat Line"); btnChatInfo.setFocusable(false); - btnChatInfo.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnChatInfo.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnChatInfo.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnChatInfoActionPerformed(evt); - } - }); + btnChatInfo.setHorizontalTextPosition(SwingConstants.CENTER); + btnChatInfo.setVerticalTextPosition(SwingConstants.BOTTOM); + btnChatInfo.addActionListener(this::btnChatInfoActionPerformed); tlbIconBar.add(btnChatInfo); tlbIconBar.add(jSeparator3); tlbIconBar.add(jSeparator25); @@ -1631,37 +1498,25 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnAddToForceList.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/clipboard--plus.png"))); // NOI18N btnAddToForceList.setToolTipText("Add to Force List"); btnAddToForceList.setFocusable(false); - btnAddToForceList.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnAddToForceList.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnAddToForceList.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnAddToForceListActionPerformed(evt); - } - }); + btnAddToForceList.setHorizontalTextPosition(SwingConstants.CENTER); + btnAddToForceList.setVerticalTextPosition(SwingConstants.BOTTOM); + btnAddToForceList.addActionListener(this::btnAddToForceListActionPerformed); tlbIconBar.add(btnAddToForceList); btnForceList.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/clipboard.png"))); // NOI18N btnForceList.setToolTipText("Force List"); btnForceList.setFocusable(false); - btnForceList.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnForceList.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnForceList.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnForceListActionPerformed(evt); - } - }); + btnForceList.setHorizontalTextPosition(SwingConstants.CENTER); + btnForceList.setVerticalTextPosition(SwingConstants.BOTTOM); + btnForceList.addActionListener(this::btnForceListActionPerformed); tlbIconBar.add(btnForceList); tlbIconBar.add(jSeparator4); btnOptions.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/gear.png"))); // NOI18N btnOptions.setFocusable(false); - btnOptions.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnOptions.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnOptions.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnOptionsActionPerformed(evt); - } - }); + btnOptions.setHorizontalTextPosition(SwingConstants.CENTER); + btnOptions.setVerticalTextPosition(SwingConstants.BOTTOM); + btnOptions.addActionListener(this::btnOptionsActionPerformed); tlbIconBar.add(btnOptions); tlbIconBar.add(jSeparator21); @@ -1670,95 +1525,71 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { tlbIconBar.add(lblSelectVariant); cmbOmniVariant.setEnabled(false); - cmbOmniVariant.setMaximumSize(new java.awt.Dimension(150, 20)); - cmbOmniVariant.setMinimumSize(new java.awt.Dimension(150, 20)); - cmbOmniVariant.setPreferredSize(new java.awt.Dimension(150, 20)); - cmbOmniVariant.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cmbOmniVariantActionPerformed(evt); - } - }); + cmbOmniVariant.setMaximumSize(new Dimension(150, 20)); + cmbOmniVariant.setMinimumSize(new Dimension(150, 20)); + cmbOmniVariant.setPreferredSize(new Dimension(150, 20)); + cmbOmniVariant.addActionListener(this::cmbOmniVariantActionPerformed); tlbIconBar.add(cmbOmniVariant); pnlBasicInfo.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Basic Information")); jLabel1.setText("Vehicle Name:"); - txtVehicleName.setMinimumSize(new java.awt.Dimension(150, 20)); - txtVehicleName.setPreferredSize(new java.awt.Dimension(150, 20)); + txtVehicleName.setMinimumSize(new Dimension(150, 20)); + txtVehicleName.setPreferredSize(new Dimension(150, 20)); jLabel4.setText("Model:"); - txtModel.setMinimumSize(new java.awt.Dimension(150, 20)); - txtModel.setPreferredSize(new java.awt.Dimension(150, 20)); + txtModel.setMinimumSize(new Dimension(150, 20)); + txtModel.setPreferredSize(new Dimension(150, 20)); jLabel2.setText("Rules Level:"); cmbRulesLevel.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Introductory", "Tournament Legal", "Advanced", "Experimental" })); cmbRulesLevel.setSelectedIndex(1); - cmbRulesLevel.setMinimumSize(new java.awt.Dimension(150, 20)); - cmbRulesLevel.setPreferredSize(new java.awt.Dimension(150, 20)); - cmbRulesLevel.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cmbRulesLevelActionPerformed(evt); - } - }); + cmbRulesLevel.setMinimumSize(new Dimension(150, 20)); + cmbRulesLevel.setPreferredSize(new Dimension(150, 20)); + cmbRulesLevel.addActionListener(this::cmbRulesLevelActionPerformed); jLabel5.setText("Era:"); cmbEra.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Age of War/Star League", "Succession Wars", "Clan Invasion", "Dark Ages", "All Eras (non-canon)" })); cmbEra.setSelectedIndex(1); - cmbEra.setMinimumSize(new java.awt.Dimension(150, 20)); - cmbEra.setPreferredSize(new java.awt.Dimension(150, 20)); - cmbEra.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cmbEraActionPerformed(evt); - } - }); + cmbEra.setMinimumSize(new Dimension(150, 20)); + cmbEra.setPreferredSize(new Dimension(150, 20)); + cmbEra.addActionListener(this::cmbEraActionPerformed); jLabel3.setText("Tech Base:"); cmbTechBase.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Inner Sphere", "Clan", "Mixed Tech" })); - cmbTechBase.setMinimumSize(new java.awt.Dimension(150, 20)); - cmbTechBase.setPreferredSize(new java.awt.Dimension(150, 20)); - cmbTechBase.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cmbTechBaseActionPerformed(evt); - } - }); + cmbTechBase.setMinimumSize(new Dimension(150, 20)); + cmbTechBase.setPreferredSize(new Dimension(150, 20)); + cmbTechBase.addActionListener(this::cmbTechBaseActionPerformed); lblEraYears.setText("2443~2800"); chkYearRestrict.setText("Restrict Availability by Year"); - chkYearRestrict.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkYearRestrictActionPerformed(evt); - } - }); + chkYearRestrict.addActionListener(this::chkYearRestrictActionPerformed); - jLabel81.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); + jLabel81.setHorizontalAlignment(SwingConstants.RIGHT); jLabel81.setText("Source:"); - txtSource.setMinimumSize(new java.awt.Dimension(150, 20)); - txtSource.setPreferredSize(new java.awt.Dimension(150, 20)); + txtSource.setMinimumSize(new Dimension(150, 20)); + txtSource.setPreferredSize(new Dimension(150, 20)); lblProdYear.setText("Prod Year/Era:"); txtProdYear.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtProdYear.setDisabledTextColor(new java.awt.Color(0, 0, 0)); - txtProdYear.setMaximumSize(new java.awt.Dimension(60, 20)); - txtProdYear.setMinimumSize(new java.awt.Dimension(60, 20)); - txtProdYear.setPreferredSize(new java.awt.Dimension(60, 20)); + txtProdYear.setMaximumSize(new Dimension(60, 20)); + txtProdYear.setMinimumSize(new Dimension(60, 20)); + txtProdYear.setPreferredSize(new Dimension(60, 20)); cmbProductionEra.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Age of War", "Star League", "Early Succession War", "LSW - LosTech", "LSW - Renaissance", "Clan Invasion", "Civil War", "Jihad", "Early Republic", "Late Republic", "Dark Ages", "ilClan" })); - cmbProductionEra.setMaximumSize(new java.awt.Dimension(90, 20)); - cmbProductionEra.setMinimumSize(new java.awt.Dimension(90, 20)); - cmbProductionEra.setPreferredSize(new java.awt.Dimension(90, 20)); - cmbProductionEra.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cmbProductionEraActionPerformed(evt); - } - }); + cmbProductionEra.setMaximumSize(new Dimension(90, 20)); + cmbProductionEra.setMinimumSize(new Dimension(90, 20)); + cmbProductionEra.setPreferredSize(new Dimension(90, 20)); + cmbProductionEra.addActionListener(this::cmbProductionEraActionPerformed); javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(pnlBasicInfo); pnlBasicInfo.setLayout(jPanel5Layout); @@ -1881,41 +1712,25 @@ public void mousePressed( MouseEvent e ) { pnlChassis.setNextFocusableComponent(spnCruiseMP); cmbMotiveType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Hovercraft", "Naval (Displacement)", "Naval (Hydrofoil)", "Naval (Submarine)", "Tracked", "VTOL", "Wheeled", "WiGE", "Hovercraft (Super Heavy)", "Displacement (Super Heavy)" })); - cmbMotiveType.setMinimumSize(new java.awt.Dimension(150, 20)); - cmbMotiveType.setPreferredSize(new java.awt.Dimension(150, 20)); - cmbMotiveType.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cmbMotiveTypeActionPerformed(evt); - } - }); + cmbMotiveType.setMinimumSize(new Dimension(150, 20)); + cmbMotiveType.setPreferredSize(new Dimension(150, 20)); + cmbMotiveType.addActionListener(this::cmbMotiveTypeActionPerformed); jLabel7.setText("Motive Type:"); jLabel8.setText("Tonnage:"); chkOmniVee.setText("OmniVehicle"); - chkOmniVee.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkOmniVeeActionPerformed(evt); - } - }); + chkOmniVee.addActionListener(this::chkOmniVeeActionPerformed); chkTrailer.setText("Trailer"); chkTrailer.setEnabled(false); - chkTrailer.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkTrailerActionPerformed(evt); - } - }); + chkTrailer.addActionListener(this::chkTrailerActionPerformed); spnTonnage.setModel(new javax.swing.SpinnerNumberModel(10, 1, null, 1)); - spnTonnage.setMinimumSize(new java.awt.Dimension(45, 20)); - spnTonnage.setPreferredSize(new java.awt.Dimension(45, 20)); - spnTonnage.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnTonnageStateChanged(evt); - } - }); + spnTonnage.setMinimumSize(new Dimension(45, 20)); + spnTonnage.setPreferredSize(new Dimension(45, 20)); + spnTonnage.addChangeListener(this::spnTonnageStateChanged); spnTonnage.addFocusListener(new java.awt.event.FocusAdapter() { public void focusGained(java.awt.event.FocusEvent evt) { spnTonnageFocusGained(evt); @@ -1932,24 +1747,16 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { jLabel9.setText("Engine:"); cmbEngineType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "I.C.E.", "Fusion", "Light Fusion", "XL Fusion", "Compact Fusion" })); - cmbEngineType.setMinimumSize(new java.awt.Dimension(150, 20)); - cmbEngineType.setPreferredSize(new java.awt.Dimension(150, 20)); - cmbEngineType.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cmbEngineTypeActionPerformed(evt); - } - }); + cmbEngineType.setMinimumSize(new Dimension(150, 20)); + cmbEngineType.setPreferredSize(new Dimension(150, 20)); + cmbEngineType.addActionListener(this::cmbEngineTypeActionPerformed); jLabel32.setText("Turret:"); cmbTurret.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "No Turret", "Single Turret", "Dual Turret", "Sponson Turrets", "Chin Turret", "Mast Turret" })); - cmbTurret.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cmbTurretActionPerformed(evt); - } - }); + cmbTurret.addActionListener(this::cmbTurretActionPerformed); - lblVeeClass.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); + lblVeeClass.setHorizontalAlignment(SwingConstants.LEFT); lblVeeClass.setText("Assault Vee"); lblVeeLimits.setText("500t Max"); @@ -1957,14 +1764,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jLabel91.setText("Heat Sinks:"); spnHeatSinks.setModel(new javax.swing.SpinnerNumberModel(10, 1, null, 1)); - spnHeatSinks.setMinimumSize(new java.awt.Dimension(45, 20)); + spnHeatSinks.setMinimumSize(new Dimension(45, 20)); spnHeatSinks.setNextFocusableComponent(spnCruiseMP); - spnHeatSinks.setPreferredSize(new java.awt.Dimension(45, 20)); - spnHeatSinks.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnHeatSinksStateChanged(evt); - } - }); + spnHeatSinks.setPreferredSize(new Dimension(45, 20)); + spnHeatSinks.addChangeListener(this::spnHeatSinksStateChanged); spnHeatSinks.addFocusListener(new java.awt.event.FocusAdapter() { public void focusGained(java.awt.event.FocusEvent evt) { spnHeatSinksFocusGained(evt); @@ -1980,11 +1783,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { spnTurretTonnage.setModel(new javax.swing.SpinnerNumberModel(0.0d, 0.0d, 50.0d, 0.5d)); spnTurretTonnage.setEnabled(false); - spnTurretTonnage.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnTurretTonnageStateChanged(evt); - } - }); + spnTurretTonnage.addChangeListener(this::spnTurretTonnageStateChanged); javax.swing.GroupLayout pnlChassisLayout = new javax.swing.GroupLayout(pnlChassis); pnlChassis.setLayout(pnlChassisLayout); @@ -2076,13 +1875,9 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { jLabel10.setText("Cruise MP:"); spnCruiseMP.setModel(new javax.swing.SpinnerNumberModel(1, 0, null, 1)); - spnCruiseMP.setMinimumSize(new java.awt.Dimension(45, 20)); - spnCruiseMP.setPreferredSize(new java.awt.Dimension(45, 20)); - spnCruiseMP.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnCruiseMPStateChanged(evt); - } - }); + spnCruiseMP.setMinimumSize(new Dimension(45, 20)); + spnCruiseMP.setPreferredSize(new Dimension(45, 20)); + spnCruiseMP.addChangeListener(this::spnCruiseMPStateChanged); spnCruiseMP.addInputMethodListener(new java.awt.event.InputMethodListener() { public void caretPositionChanged(java.awt.event.InputMethodEvent evt) { } @@ -2098,9 +1893,9 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { jLabel13.setText("Jump MP:"); spnJumpMP.setEnabled(false); - spnJumpMP.setMinimumSize(new java.awt.Dimension(45, 20)); + spnJumpMP.setMinimumSize(new Dimension(45, 20)); spnJumpMP.setNextFocusableComponent(chkFlotationHull); - spnJumpMP.setPreferredSize(new java.awt.Dimension(45, 20)); + spnJumpMP.setPreferredSize(new Dimension(45, 20)); javax.swing.GroupLayout pnlMovementLayout = new javax.swing.GroupLayout(pnlMovement); pnlMovement.setLayout(pnlMovementLayout); @@ -2156,74 +1951,54 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { chkFlotationHull.setText("Flotation Hull"); chkFlotationHull.setEnabled(false); - chkFlotationHull.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkFlotationHullActionPerformed(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + chkFlotationHull.addActionListener(this::chkFlotationHullActionPerformed); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlChassisMods.add(chkFlotationHull, gridBagConstraints); lblMoveSummary.setText("W/R: 12/20"); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints = new GridBagConstraints(); + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0); pnlMovement.add(lblMoveSummary, gridBagConstraints); chkLimitedAmph.setText("Limited Amphibious"); chkLimitedAmph.setEnabled(false); - chkLimitedAmph.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkLimitedAmphActionPerformed(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + chkLimitedAmph.addActionListener(this::chkLimitedAmphActionPerformed); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlChassisMods.add(chkLimitedAmph, gridBagConstraints); chkFullAmph.setText("Fully Amphibious"); chkFullAmph.setEnabled(false); - chkFullAmph.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkFullAmphActionPerformed(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + chkFullAmph.addActionListener(this::chkFullAmphActionPerformed); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlChassisMods.add(chkFullAmph, gridBagConstraints); chkDuneBuggy.setText("Dune Buggy"); chkDuneBuggy.setEnabled(false); - chkDuneBuggy.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkDuneBuggyActionPerformed(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + chkDuneBuggy.addActionListener(this::chkDuneBuggyActionPerformed); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlChassisMods.add(chkDuneBuggy, gridBagConstraints); chkEnviroSealing.setText("Enviro (Vacuum) Sealing"); chkEnviroSealing.setEnabled(false); chkEnviroSealing.setNextFocusableComponent(chkArmoredMotive); - chkEnviroSealing.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkEnviroSealingActionPerformed(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + chkEnviroSealing.addActionListener(this::chkEnviroSealingActionPerformed); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlChassisMods.add(chkEnviroSealing, gridBagConstraints); pnlExperimental.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Experimental Equipment")); @@ -2237,38 +2012,22 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkEscapePod.setText("Combat Vehicle Escape Pod"); chkEscapePod.setEnabled(false); chkEscapePod.setNextFocusableComponent(chkFractional); - chkEscapePod.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkEscapePodActionPerformed(evt); - } - }); + chkEscapePod.addActionListener(this::chkEscapePodActionPerformed); chkMinesweeper.setText("Minesweeper"); chkMinesweeper.setEnabled(false); chkJetBooster.setText("VTOL Jet Booster"); chkJetBooster.setEnabled(false); - chkJetBooster.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkJetBoosterActionPerformed(evt); - } - }); + chkJetBooster.addActionListener(this::chkJetBoosterActionPerformed); chkSupercharger.setText("Supercharger"); chkSupercharger.setEnabled(false); - chkSupercharger.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkSuperchargerActionPerformed(evt); - } - }); + chkSupercharger.addActionListener(this::chkSuperchargerActionPerformed); chkSponsonTurret.setText("Sponson Turret"); chkSponsonTurret.setEnabled(false); chkSponsonTurret.setNextFocusableComponent(chkFractional); - chkSponsonTurret.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkSponsonTurretActionPerformed(evt); - } - }); + chkSponsonTurret.addActionListener(this::chkSponsonTurretActionPerformed); javax.swing.GroupLayout pnlExperimentalLayout = new javax.swing.GroupLayout(pnlExperimental); pnlExperimental.setLayout(pnlExperimentalLayout); @@ -2310,192 +2069,188 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { chkFractional.setText("Use Fractional Accounting"); chkFractional.setEnabled(false); chkFractional.setNextFocusableComponent(txtVehicleName); - chkFractional.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkFractionalActionPerformed(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + chkFractional.addActionListener(this::chkFractionalActionPerformed); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; jPanel11.add(chkFractional, gridBagConstraints); pnlSummary.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Summary")); pnlSummary.setLayout(new java.awt.GridBagLayout()); jLabel12.setText("Item"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel12, gridBagConstraints); jLabel14.setText("Tonnage"); - pnlSummary.add(jLabel14, new java.awt.GridBagConstraints()); + pnlSummary.add(jLabel14, new GridBagConstraints()); jLabel15.setText("Space"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2); pnlSummary.add(jLabel15, gridBagConstraints); jLabel16.setText("Availability"); - pnlSummary.add(jLabel16, new java.awt.GridBagConstraints()); + pnlSummary.add(jLabel16, new GridBagConstraints()); jLabel17.setText("Internal Structure:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel17, gridBagConstraints); txtSumIntTons.setEditable(false); txtSumIntTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumIntTons.setText("000.00"); - txtSumIntTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumIntTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumIntTons.setMinimumSize(new Dimension(50, 20)); + txtSumIntTons.setPreferredSize(new Dimension(50, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumIntTons, gridBagConstraints); txtSumIntAV.setEditable(false); txtSumIntAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumIntAV.setText("X/X-X-X"); - txtSumIntAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumIntAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumIntAV.setMinimumSize(new Dimension(65, 20)); + txtSumIntAV.setPreferredSize(new Dimension(65, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumIntAV, gridBagConstraints); jLabel18.setText("Engine:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel18, gridBagConstraints); txtSumEngTons.setEditable(false); txtSumEngTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumEngTons.setText("000.00"); - txtSumEngTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumEngTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumEngTons.setMinimumSize(new Dimension(50, 20)); + txtSumEngTons.setPreferredSize(new Dimension(50, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumEngTons, gridBagConstraints); txtSumEngAV.setEditable(false); txtSumEngAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumEngAV.setText("X/X-X-X"); - txtSumEngAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumEngAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumEngAV.setMinimumSize(new Dimension(65, 20)); + txtSumEngAV.setPreferredSize(new Dimension(65, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumEngAV, gridBagConstraints); jLabel19.setText("Lift/Dive/Rotor:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel19, gridBagConstraints); txtSumLifTons.setEditable(false); txtSumLifTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumLifTons.setText("000.00"); - txtSumLifTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumLifTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumLifTons.setMinimumSize(new Dimension(50, 20)); + txtSumLifTons.setPreferredSize(new Dimension(50, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 3; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumLifTons, gridBagConstraints); txtSumLifAV.setEditable(false); txtSumLifAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumLifAV.setText("X/X-X-X"); - txtSumLifAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumLifAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumLifAV.setMinimumSize(new Dimension(65, 20)); + txtSumLifAV.setPreferredSize(new Dimension(65, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 3; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumLifAV, gridBagConstraints); txtSumEngSpace.setEditable(false); txtSumEngSpace.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumEngSpace.setText("00"); - txtSumEngSpace.setMinimumSize(new java.awt.Dimension(40, 20)); - txtSumEngSpace.setPreferredSize(new java.awt.Dimension(40, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumEngSpace.setMinimumSize(new Dimension(40, 20)); + txtSumEngSpace.setPreferredSize(new Dimension(40, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 2; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2); pnlSummary.add(txtSumEngSpace, gridBagConstraints); jLabel20.setText("Controls:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel20, gridBagConstraints); txtSumConTons.setEditable(false); txtSumConTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumConTons.setText("000.00"); - txtSumConTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumConTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumConTons.setMinimumSize(new Dimension(50, 20)); + txtSumConTons.setPreferredSize(new Dimension(50, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 4; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumConTons, gridBagConstraints); txtSumConAV.setEditable(false); txtSumConAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumConAV.setText("X/X-X-X"); - txtSumConAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumConAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumConAV.setMinimumSize(new Dimension(65, 20)); + txtSumConAV.setPreferredSize(new Dimension(65, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 4; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumConAV, gridBagConstraints); jLabel21.setText("Jump Jets:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 5; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel21, gridBagConstraints); txtSumJJTons.setEditable(false); txtSumJJTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumJJTons.setText("000.00"); - txtSumJJTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumJJTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumJJTons.setMinimumSize(new Dimension(50, 20)); + txtSumJJTons.setPreferredSize(new Dimension(50, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 5; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumJJTons, gridBagConstraints); txtSumJJSpace.setEditable(false); txtSumJJSpace.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumJJSpace.setText("00"); - txtSumJJSpace.setMinimumSize(new java.awt.Dimension(40, 20)); - txtSumJJSpace.setPreferredSize(new java.awt.Dimension(40, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumJJSpace.setMinimumSize(new Dimension(40, 20)); + txtSumJJSpace.setPreferredSize(new Dimension(40, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 5; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2); @@ -2504,69 +2259,69 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumJJAV.setEditable(false); txtSumJJAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumJJAV.setText("X/X-X-X"); - txtSumJJAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumJJAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumJJAV.setMinimumSize(new Dimension(65, 20)); + txtSumJJAV.setPreferredSize(new Dimension(65, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 5; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumJJAV, gridBagConstraints); jLabel22.setText("Heat Sinks:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 6; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel22, gridBagConstraints); txtSumHSTons.setEditable(false); txtSumHSTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumHSTons.setText("000.00"); - txtSumHSTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumHSTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumHSTons.setMinimumSize(new Dimension(50, 20)); + txtSumHSTons.setPreferredSize(new Dimension(50, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 6; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumHSTons, gridBagConstraints); txtSumHSAV.setEditable(false); txtSumHSAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumHSAV.setText("X/X-X-X"); - txtSumHSAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumHSAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumHSAV.setMinimumSize(new Dimension(65, 20)); + txtSumHSAV.setPreferredSize(new Dimension(65, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 6; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumHSAV, gridBagConstraints); jLabel23.setText("Armor:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 7; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel23, gridBagConstraints); txtSumArmTons.setEditable(false); txtSumArmTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumArmTons.setText("000.00"); - txtSumArmTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumArmTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumArmTons.setMinimumSize(new Dimension(50, 20)); + txtSumArmTons.setPreferredSize(new Dimension(50, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 7; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumArmTons, gridBagConstraints); txtSumArmSpace.setEditable(false); txtSumArmSpace.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumArmSpace.setText("00"); - txtSumArmSpace.setMinimumSize(new java.awt.Dimension(40, 20)); - txtSumArmSpace.setPreferredSize(new java.awt.Dimension(40, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumArmSpace.setMinimumSize(new Dimension(40, 20)); + txtSumArmSpace.setPreferredSize(new Dimension(40, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 7; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2); @@ -2575,132 +2330,132 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtSumArmAV.setEditable(false); txtSumArmAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumArmAV.setText("X/X-X-X"); - txtSumArmAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumArmAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumArmAV.setMinimumSize(new Dimension(65, 20)); + txtSumArmAV.setPreferredSize(new Dimension(65, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 7; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumArmAV, gridBagConstraints); jLabel24.setText("Turret:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 8; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel24, gridBagConstraints); txtSumTurTons.setEditable(false); txtSumTurTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumTurTons.setText("000.00"); - txtSumTurTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumTurTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumTurTons.setMinimumSize(new Dimension(50, 20)); + txtSumTurTons.setPreferredSize(new Dimension(50, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 8; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumTurTons, gridBagConstraints); txtSumTurAV.setEditable(false); txtSumTurAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumTurAV.setText("X/X-X-X"); - txtSumTurAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumTurAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumTurAV.setMinimumSize(new Dimension(65, 20)); + txtSumTurAV.setPreferredSize(new Dimension(65, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 8; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumTurAV, gridBagConstraints); jLabel25.setText("Rear Turret:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 9; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel25, gridBagConstraints); txtSumRTuTons.setEditable(false); txtSumRTuTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumRTuTons.setText("000.00"); - txtSumRTuTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumRTuTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumRTuTons.setMinimumSize(new Dimension(50, 20)); + txtSumRTuTons.setPreferredSize(new Dimension(50, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 9; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumRTuTons, gridBagConstraints); txtSumRTuAV.setEditable(false); txtSumRTuAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumRTuAV.setText("X/X-X-X"); - txtSumRTuAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumRTuAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumRTuAV.setMinimumSize(new Dimension(65, 20)); + txtSumRTuAV.setPreferredSize(new Dimension(65, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 9; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumRTuAV, gridBagConstraints); jLabel26.setText("Sponsons:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 10; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel26, gridBagConstraints); txtSumSpnTons.setEditable(false); txtSumSpnTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumSpnTons.setText("000.00"); - txtSumSpnTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumSpnTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumSpnTons.setMinimumSize(new Dimension(50, 20)); + txtSumSpnTons.setPreferredSize(new Dimension(50, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 10; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumSpnTons, gridBagConstraints); txtSumSpnAV.setEditable(false); txtSumSpnAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumSpnAV.setText("X/X-X-X"); - txtSumSpnAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumSpnAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumSpnAV.setMinimumSize(new Dimension(65, 20)); + txtSumSpnAV.setPreferredSize(new Dimension(65, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 10; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumSpnAV, gridBagConstraints); jLabel27.setText("Power Amplifiers:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 11; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel27, gridBagConstraints); txtSumPATons.setEditable(false); txtSumPATons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumPATons.setText("000.00"); - txtSumPATons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtSumPATons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumPATons.setMinimumSize(new Dimension(50, 20)); + txtSumPATons.setPreferredSize(new Dimension(50, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 11; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlSummary.add(txtSumPATons, gridBagConstraints); txtSumPAAV.setEditable(false); txtSumPAAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtSumPAAV.setText("X/X-X-X"); - txtSumPAAV.setMinimumSize(new java.awt.Dimension(65, 20)); - txtSumPAAV.setPreferredSize(new java.awt.Dimension(65, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtSumPAAV.setMinimumSize(new Dimension(65, 20)); + txtSumPAAV.setPreferredSize(new Dimension(65, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 11; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumPAAV, gridBagConstraints); pnlInformation.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Information")); @@ -2800,65 +2555,49 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { btnLockChassis.setText("Lock Chassis"); btnLockChassis.setEnabled(false); - btnLockChassis.setMaximumSize(new java.awt.Dimension(200, 23)); - btnLockChassis.setMinimumSize(new java.awt.Dimension(105, 23)); - btnLockChassis.setPreferredSize(new java.awt.Dimension(120, 23)); - btnLockChassis.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnLockChassisActionPerformed(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + btnLockChassis.setMaximumSize(new Dimension(200, 23)); + btnLockChassis.setMinimumSize(new Dimension(105, 23)); + btnLockChassis.setPreferredSize(new Dimension(120, 23)); + btnLockChassis.addActionListener(this::btnLockChassisActionPerformed); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; pnlOmniInfo.add(btnLockChassis, gridBagConstraints); btnAddVariant.setText("Add Variant"); btnAddVariant.setEnabled(false); - btnAddVariant.setMaximumSize(new java.awt.Dimension(200, 23)); - btnAddVariant.setMinimumSize(new java.awt.Dimension(80, 23)); - btnAddVariant.setPreferredSize(new java.awt.Dimension(120, 23)); - btnAddVariant.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnAddVariantActionPerformed(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + btnAddVariant.setMaximumSize(new Dimension(200, 23)); + btnAddVariant.setMinimumSize(new Dimension(80, 23)); + btnAddVariant.setPreferredSize(new Dimension(120, 23)); + btnAddVariant.addActionListener(this::btnAddVariantActionPerformed); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; pnlOmniInfo.add(btnAddVariant, gridBagConstraints); btnDeleteVariant.setText("Delete Variant"); btnDeleteVariant.setEnabled(false); - btnDeleteVariant.setMaximumSize(new java.awt.Dimension(200, 23)); - btnDeleteVariant.setMinimumSize(new java.awt.Dimension(80, 23)); - btnDeleteVariant.setPreferredSize(new java.awt.Dimension(120, 23)); - btnDeleteVariant.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnDeleteVariantActionPerformed(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + btnDeleteVariant.setMaximumSize(new Dimension(200, 23)); + btnDeleteVariant.setMinimumSize(new Dimension(80, 23)); + btnDeleteVariant.setPreferredSize(new Dimension(120, 23)); + btnDeleteVariant.addActionListener(this::btnDeleteVariantActionPerformed); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; pnlOmniInfo.add(btnDeleteVariant, gridBagConstraints); btnRenameVariant.setText("Rename Variant"); btnRenameVariant.setEnabled(false); - btnRenameVariant.setMinimumSize(new java.awt.Dimension(80, 23)); - btnRenameVariant.setPreferredSize(new java.awt.Dimension(120, 23)); - btnRenameVariant.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnRenameVariantActionPerformed(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + btnRenameVariant.setMinimumSize(new Dimension(80, 23)); + btnRenameVariant.setPreferredSize(new Dimension(120, 23)); + btnRenameVariant.addActionListener(this::btnRenameVariantActionPerformed); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; pnlOmniInfo.add(btnRenameVariant, gridBagConstraints); javax.swing.GroupLayout pnlBasicSetupLayout = new javax.swing.GroupLayout(pnlBasicSetup); @@ -2915,34 +2654,30 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pnlRightArmor.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Right")); pnlRightArmor.setLayout(new java.awt.GridBagLayout()); - lblRightIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + lblRightIntPts.setHorizontalAlignment(SwingConstants.CENTER); lblRightIntPts.setText("00"); lblRightIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblRightIntPts.setMaximumSize(new java.awt.Dimension(45, 20)); - lblRightIntPts.setMinimumSize(new java.awt.Dimension(45, 20)); - lblRightIntPts.setPreferredSize(new java.awt.Dimension(45, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + lblRightIntPts.setMaximumSize(new Dimension(45, 20)); + lblRightIntPts.setMinimumSize(new Dimension(45, 20)); + lblRightIntPts.setPreferredSize(new Dimension(45, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; pnlRightArmor.add(lblRightIntPts, gridBagConstraints); jLabel40.setText("Internal"); - pnlRightArmor.add(jLabel40, new java.awt.GridBagConstraints()); + pnlRightArmor.add(jLabel40, new GridBagConstraints()); jLabel46.setText("Armor"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; pnlRightArmor.add(jLabel46, gridBagConstraints); - spnRightArmor.setMinimumSize(new java.awt.Dimension(45, 20)); - spnRightArmor.setPreferredSize(new java.awt.Dimension(45, 20)); - spnRightArmor.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnRightArmorStateChanged(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + spnRightArmor.setMinimumSize(new Dimension(45, 20)); + spnRightArmor.setPreferredSize(new Dimension(45, 20)); + spnRightArmor.addChangeListener(this::spnRightArmorStateChanged); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; pnlRightArmor.add(spnRightArmor, gridBagConstraints); @@ -2950,34 +2685,30 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { pnlFrontArmor.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Front")); pnlFrontArmor.setLayout(new java.awt.GridBagLayout()); - lblFrontIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + lblFrontIntPts.setHorizontalAlignment(SwingConstants.CENTER); lblFrontIntPts.setText("00"); lblFrontIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblFrontIntPts.setMaximumSize(new java.awt.Dimension(45, 20)); - lblFrontIntPts.setMinimumSize(new java.awt.Dimension(45, 20)); - lblFrontIntPts.setPreferredSize(new java.awt.Dimension(45, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + lblFrontIntPts.setMaximumSize(new Dimension(45, 20)); + lblFrontIntPts.setMinimumSize(new Dimension(45, 20)); + lblFrontIntPts.setPreferredSize(new Dimension(45, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; pnlFrontArmor.add(lblFrontIntPts, gridBagConstraints); jLabel45.setText("Internal"); - pnlFrontArmor.add(jLabel45, new java.awt.GridBagConstraints()); + pnlFrontArmor.add(jLabel45, new GridBagConstraints()); jLabel47.setText("Armor"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; pnlFrontArmor.add(jLabel47, gridBagConstraints); - spnFrontArmor.setMinimumSize(new java.awt.Dimension(45, 20)); - spnFrontArmor.setPreferredSize(new java.awt.Dimension(45, 20)); - spnFrontArmor.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnFrontArmorStateChanged(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + spnFrontArmor.setMinimumSize(new Dimension(45, 20)); + spnFrontArmor.setPreferredSize(new Dimension(45, 20)); + spnFrontArmor.addChangeListener(this::spnFrontArmorStateChanged); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; pnlFrontArmor.add(spnFrontArmor, gridBagConstraints); @@ -2985,34 +2716,30 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { pnlLeftArmor.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Left")); pnlLeftArmor.setLayout(new java.awt.GridBagLayout()); - lblLeftIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + lblLeftIntPts.setHorizontalAlignment(SwingConstants.CENTER); lblLeftIntPts.setText("00"); lblLeftIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblLeftIntPts.setMaximumSize(new java.awt.Dimension(45, 20)); - lblLeftIntPts.setMinimumSize(new java.awt.Dimension(45, 20)); - lblLeftIntPts.setPreferredSize(new java.awt.Dimension(45, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + lblLeftIntPts.setMaximumSize(new Dimension(45, 20)); + lblLeftIntPts.setMinimumSize(new Dimension(45, 20)); + lblLeftIntPts.setPreferredSize(new Dimension(45, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; pnlLeftArmor.add(lblLeftIntPts, gridBagConstraints); jLabel41.setText("Internal"); - pnlLeftArmor.add(jLabel41, new java.awt.GridBagConstraints()); + pnlLeftArmor.add(jLabel41, new GridBagConstraints()); jLabel48.setText("Armor"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; pnlLeftArmor.add(jLabel48, gridBagConstraints); - spnLeftArmor.setMinimumSize(new java.awt.Dimension(45, 20)); - spnLeftArmor.setPreferredSize(new java.awt.Dimension(45, 20)); - spnLeftArmor.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnLeftArmorStateChanged(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + spnLeftArmor.setMinimumSize(new Dimension(45, 20)); + spnLeftArmor.setPreferredSize(new Dimension(45, 20)); + spnLeftArmor.addChangeListener(this::spnLeftArmorStateChanged); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; pnlLeftArmor.add(spnLeftArmor, gridBagConstraints); @@ -3020,34 +2747,30 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { pnlRearArmor.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Rear")); pnlRearArmor.setLayout(new java.awt.GridBagLayout()); - lblRearIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + lblRearIntPts.setHorizontalAlignment(SwingConstants.CENTER); lblRearIntPts.setText("00"); lblRearIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblRearIntPts.setMaximumSize(new java.awt.Dimension(45, 20)); - lblRearIntPts.setMinimumSize(new java.awt.Dimension(45, 20)); - lblRearIntPts.setPreferredSize(new java.awt.Dimension(45, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + lblRearIntPts.setMaximumSize(new Dimension(45, 20)); + lblRearIntPts.setMinimumSize(new Dimension(45, 20)); + lblRearIntPts.setPreferredSize(new Dimension(45, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; pnlRearArmor.add(lblRearIntPts, gridBagConstraints); jLabel44.setText("Internal"); - pnlRearArmor.add(jLabel44, new java.awt.GridBagConstraints()); + pnlRearArmor.add(jLabel44, new GridBagConstraints()); jLabel49.setText("Armor"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; pnlRearArmor.add(jLabel49, gridBagConstraints); - spnRearArmor.setMinimumSize(new java.awt.Dimension(45, 20)); - spnRearArmor.setPreferredSize(new java.awt.Dimension(45, 20)); - spnRearArmor.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnRearArmorStateChanged(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + spnRearArmor.setMinimumSize(new Dimension(45, 20)); + spnRearArmor.setPreferredSize(new Dimension(45, 20)); + spnRearArmor.addChangeListener(this::spnRearArmorStateChanged); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; pnlRearArmor.add(spnRearArmor, gridBagConstraints); @@ -3055,34 +2778,30 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { pnlTurretArmor.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Turret")); pnlTurretArmor.setLayout(new java.awt.GridBagLayout()); - lblTurretIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + lblTurretIntPts.setHorizontalAlignment(SwingConstants.CENTER); lblTurretIntPts.setText("00"); lblTurretIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblTurretIntPts.setMaximumSize(new java.awt.Dimension(45, 20)); - lblTurretIntPts.setMinimumSize(new java.awt.Dimension(45, 20)); - lblTurretIntPts.setPreferredSize(new java.awt.Dimension(45, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + lblTurretIntPts.setMaximumSize(new Dimension(45, 20)); + lblTurretIntPts.setMinimumSize(new Dimension(45, 20)); + lblTurretIntPts.setPreferredSize(new Dimension(45, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; pnlTurretArmor.add(lblTurretIntPts, gridBagConstraints); jLabel42.setText("Internal"); - pnlTurretArmor.add(jLabel42, new java.awt.GridBagConstraints()); + pnlTurretArmor.add(jLabel42, new GridBagConstraints()); jLabel50.setText("Armor"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; pnlTurretArmor.add(jLabel50, gridBagConstraints); - spnTurretArmor.setMinimumSize(new java.awt.Dimension(45, 20)); - spnTurretArmor.setPreferredSize(new java.awt.Dimension(45, 20)); - spnTurretArmor.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnTurretArmorStateChanged(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + spnTurretArmor.setMinimumSize(new Dimension(45, 20)); + spnTurretArmor.setPreferredSize(new Dimension(45, 20)); + spnTurretArmor.addChangeListener(this::spnTurretArmorStateChanged); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; pnlTurretArmor.add(spnTurretArmor, gridBagConstraints); @@ -3091,34 +2810,30 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { pnlRearTurretArmor.setEnabled(false); pnlRearTurretArmor.setLayout(new java.awt.GridBagLayout()); - lblRearTurretIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + lblRearTurretIntPts.setHorizontalAlignment(SwingConstants.CENTER); lblRearTurretIntPts.setText("00"); lblRearTurretIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblRearTurretIntPts.setMaximumSize(new java.awt.Dimension(45, 20)); - lblRearTurretIntPts.setMinimumSize(new java.awt.Dimension(45, 20)); - lblRearTurretIntPts.setPreferredSize(new java.awt.Dimension(45, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + lblRearTurretIntPts.setMaximumSize(new Dimension(45, 20)); + lblRearTurretIntPts.setMinimumSize(new Dimension(45, 20)); + lblRearTurretIntPts.setPreferredSize(new Dimension(45, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; pnlRearTurretArmor.add(lblRearTurretIntPts, gridBagConstraints); jLabel43.setText("Internal"); - pnlRearTurretArmor.add(jLabel43, new java.awt.GridBagConstraints()); + pnlRearTurretArmor.add(jLabel43, new GridBagConstraints()); jLabel51.setText("Armor"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; pnlRearTurretArmor.add(jLabel51, gridBagConstraints); - spnRearTurretArmor.setMinimumSize(new java.awt.Dimension(45, 20)); - spnRearTurretArmor.setPreferredSize(new java.awt.Dimension(45, 20)); - spnRearTurretArmor.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnRearTurretArmorStateChanged(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + spnRearTurretArmor.setMinimumSize(new Dimension(45, 20)); + spnRearTurretArmor.setPreferredSize(new Dimension(45, 20)); + spnRearTurretArmor.addChangeListener(this::spnRearTurretArmorStateChanged); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; pnlRearTurretArmor.add(spnRearTurretArmor, gridBagConstraints); @@ -3127,34 +2842,30 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { pnlRotorArmor.setEnabled(false); pnlRotorArmor.setLayout(new java.awt.GridBagLayout()); - lblRotorIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + lblRotorIntPts.setHorizontalAlignment(SwingConstants.CENTER); lblRotorIntPts.setText("00"); lblRotorIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblRotorIntPts.setMaximumSize(new java.awt.Dimension(45, 20)); - lblRotorIntPts.setMinimumSize(new java.awt.Dimension(45, 20)); - lblRotorIntPts.setPreferredSize(new java.awt.Dimension(45, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + lblRotorIntPts.setMaximumSize(new Dimension(45, 20)); + lblRotorIntPts.setMinimumSize(new Dimension(45, 20)); + lblRotorIntPts.setPreferredSize(new Dimension(45, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; pnlRotorArmor.add(lblRotorIntPts, gridBagConstraints); jLabel92.setText("Internal"); - pnlRotorArmor.add(jLabel92, new java.awt.GridBagConstraints()); + pnlRotorArmor.add(jLabel92, new GridBagConstraints()); jLabel93.setText("Armor"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; pnlRotorArmor.add(jLabel93, gridBagConstraints); - spnRotorArmor.setMinimumSize(new java.awt.Dimension(45, 20)); - spnRotorArmor.setPreferredSize(new java.awt.Dimension(45, 20)); - spnRotorArmor.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - spnRotorArmorStateChanged(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + spnRotorArmor.setMinimumSize(new Dimension(45, 20)); + spnRotorArmor.setPreferredSize(new Dimension(45, 20)); + spnRotorArmor.addChangeListener(this::spnRotorArmorStateChanged); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; pnlRotorArmor.add(spnRotorArmor, gridBagConstraints); @@ -3208,39 +2919,22 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { jLabel52.setText("Armor Type:"); cmbArmorType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Standard", "Industrial", "Commercial", "Ferro-Fibrous", "Light Ferro-Fibrous", "Heavy Ferro-Fibrous", "Vehicular Stealth" })); - cmbArmorType.setMinimumSize(new java.awt.Dimension(150, 20)); - cmbArmorType.setPreferredSize(new java.awt.Dimension(150, 20)); - cmbArmorType.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cmbArmorTypeActionPerformed(evt); - } - }); + cmbArmorType.setMinimumSize(new Dimension(150, 20)); + cmbArmorType.setPreferredSize(new Dimension(150, 20)); + cmbArmorType.addActionListener(this::cmbArmorTypeActionPerformed); chkBalanceLRArmor.setSelected(true); chkBalanceLRArmor.setText("Balance Left/Right Armor"); - chkBalanceFRArmor.setText("Balance Front/Rear Armor"); btnSetArmorTons.setText("Set Armor Tonnage"); - btnSetArmorTons.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnSetArmorTonsActionPerformed(evt); - } - }); + btnSetArmorTons.addActionListener(this::btnSetArmorTonsActionPerformed); btnUseRemaining.setText("Use Remaining Tonnage"); - btnUseRemaining.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnUseRemainingActionPerformed(evt); - } - }); + btnUseRemaining.addActionListener(this::btnUseRemainingActionPerformed); btnMaximize.setText("Maximize Armor"); - btnMaximize.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnMaximizeActionPerformed(evt); - } - }); + btnMaximize.addActionListener(this::btnMaximizeActionPerformed); javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(pnlArmorType); pnlArmorType.setLayout(jPanel7Layout); @@ -3293,30 +2987,30 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jPanel8.setLayout(new java.awt.GridBagLayout()); jLabel34.setText("Tons"); - jPanel8.add(jLabel34, new java.awt.GridBagConstraints()); + jPanel8.add(jLabel34, new GridBagConstraints()); jLabel36.setText("Space"); - jPanel8.add(jLabel36, new java.awt.GridBagConstraints()); + jPanel8.add(jLabel36, new GridBagConstraints()); lblArmorTotals.setText("999 of 999 Armor Points"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); jPanel8.add(lblArmorTotals, gridBagConstraints); lblArmorCoverage.setText("100.00% Coverage"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST; + gridBagConstraints.anchor = GridBagConstraints.SOUTHEAST; gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); jPanel8.add(lblArmorCoverage, gridBagConstraints); txtArmorTons.setEditable(false); txtArmorTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtArmorTons.setText("000.00"); - txtArmorTons.setMinimumSize(new java.awt.Dimension(50, 20)); - txtArmorTons.setPreferredSize(new java.awt.Dimension(50, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtArmorTons.setMinimumSize(new Dimension(50, 20)); + txtArmorTons.setPreferredSize(new Dimension(50, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; jPanel8.add(txtArmorTons, gridBagConstraints); @@ -3324,28 +3018,28 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtArmorSpace.setEditable(false); txtArmorSpace.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtArmorSpace.setText("00"); - txtArmorSpace.setMinimumSize(new java.awt.Dimension(40, 20)); - txtArmorSpace.setPreferredSize(new java.awt.Dimension(40, 20)); - gridBagConstraints = new java.awt.GridBagConstraints(); + txtArmorSpace.setMinimumSize(new Dimension(40, 20)); + txtArmorSpace.setPreferredSize(new Dimension(40, 20)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; jPanel8.add(txtArmorSpace, gridBagConstraints); lblArmorTonsWasted.setText("0.00 Tons Wasted"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.gridwidth = 3; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 0); jPanel8.add(lblArmorTonsWasted, gridBagConstraints); lblArmorLeftInLot.setText("99 Points Left In This 1/2 Ton Lot"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.gridwidth = 3; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 0); jPanel8.add(lblArmorLeftInLot, gridBagConstraints); @@ -3379,19 +3073,19 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { tbpMainTabPane.addTab("Armor", jPanel2); - tbpWeaponChooser.setTabPlacement(javax.swing.JTabbedPane.RIGHT); - tbpWeaponChooser.setMaximumSize(new java.awt.Dimension(300, 300)); - tbpWeaponChooser.setMinimumSize(new java.awt.Dimension(300, 300)); + tbpWeaponChooser.setTabPlacement(JTabbedPane.RIGHT); + tbpWeaponChooser.setMaximumSize(new Dimension(300, 300)); + tbpWeaponChooser.setMinimumSize(new Dimension(300, 300)); - jSeparator5.setOrientation(javax.swing.SwingConstants.VERTICAL); + jSeparator5.setOrientation(SwingConstants.VERTICAL); jSeparator5.setAlignmentX(0.0F); jSeparator5.setAlignmentY(0.0F); jScrollPane8.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); jScrollPane8.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane8.setMaximumSize(new java.awt.Dimension(300, 300)); - jScrollPane8.setMinimumSize(new java.awt.Dimension(300, 300)); - jScrollPane8.setPreferredSize(new java.awt.Dimension(300, 300)); + jScrollPane8.setMaximumSize(new Dimension(300, 300)); + jScrollPane8.setMinimumSize(new Dimension(300, 300)); + jScrollPane8.setPreferredSize(new Dimension(300, 300)); lstChooseBallistic.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; @@ -3399,15 +3093,11 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseBallistic.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseBallistic.setMaximumSize(new java.awt.Dimension(300, 300)); - lstChooseBallistic.setMinimumSize(new java.awt.Dimension(300, 300)); - lstChooseBallistic.setPreferredSize(new java.awt.Dimension(300, 300)); + lstChooseBallistic.setMaximumSize(new Dimension(300, 300)); + lstChooseBallistic.setMinimumSize(new Dimension(300, 300)); + lstChooseBallistic.setPreferredSize(new Dimension(300, 300)); lstChooseBallistic.setVisibleRowCount(16); - lstChooseBallistic.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseBallisticValueChanged(evt); - } - }); + lstChooseBallistic.addListSelectionListener(this::lstChooseBallisticValueChanged); MouseListener mlBallistic = new MouseAdapter() { public void mouseClicked( MouseEvent e ) { if ( e.getClickCount() == 2 && e.getButton() == 1 ) { @@ -3419,7 +3109,7 @@ public void mouseClicked( MouseEvent e ) { lstChooseBallistic.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); jScrollPane8.setViewportView(lstChooseBallistic); - jSeparator6.setOrientation(javax.swing.SwingConstants.VERTICAL); + jSeparator6.setOrientation(SwingConstants.VERTICAL); jSeparator6.setAlignmentX(0.0F); jSeparator6.setAlignmentY(0.0F); @@ -3444,16 +3134,16 @@ public void mouseClicked( MouseEvent e ) { pnlEnergy.setLayout(new javax.swing.BoxLayout(pnlEnergy, javax.swing.BoxLayout.Y_AXIS)); - jSeparator7.setOrientation(javax.swing.SwingConstants.VERTICAL); + jSeparator7.setOrientation(SwingConstants.VERTICAL); jSeparator7.setAlignmentX(0.0F); jSeparator7.setAlignmentY(0.0F); pnlEnergy.add(jSeparator7); jScrollPane9.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); jScrollPane9.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane9.setMaximumSize(new java.awt.Dimension(300, 300)); - jScrollPane9.setMinimumSize(new java.awt.Dimension(300, 300)); - jScrollPane9.setPreferredSize(new java.awt.Dimension(300, 300)); + jScrollPane9.setMaximumSize(new Dimension(300, 300)); + jScrollPane9.setMinimumSize(new Dimension(300, 300)); + jScrollPane9.setPreferredSize(new Dimension(300, 300)); lstChooseEnergy.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; @@ -3461,15 +3151,11 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseEnergy.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseEnergy.setMaximumSize(new java.awt.Dimension(300, 300)); - lstChooseEnergy.setMinimumSize(new java.awt.Dimension(300, 300)); - lstChooseEnergy.setPreferredSize(new java.awt.Dimension(300, 300)); + lstChooseEnergy.setMaximumSize(new Dimension(300, 300)); + lstChooseEnergy.setMinimumSize(new Dimension(300, 300)); + lstChooseEnergy.setPreferredSize(new Dimension(300, 300)); lstChooseEnergy.setVisibleRowCount(16); - lstChooseEnergy.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseEnergyValueChanged(evt); - } - }); + lstChooseEnergy.addListSelectionListener(this::lstChooseEnergyValueChanged); MouseListener mlEnergy = new MouseAdapter() { public void mouseClicked( MouseEvent e ) { if ( e.getClickCount() == 2 && e.getButton() == 1 ) { @@ -3483,7 +3169,7 @@ public void mouseClicked( MouseEvent e ) { pnlEnergy.add(jScrollPane9); - jSeparator8.setOrientation(javax.swing.SwingConstants.VERTICAL); + jSeparator8.setOrientation(SwingConstants.VERTICAL); jSeparator8.setAlignmentX(0.0F); jSeparator8.setAlignmentY(0.0F); pnlEnergy.add(jSeparator8); @@ -3492,16 +3178,16 @@ public void mouseClicked( MouseEvent e ) { pnlMissile.setLayout(new javax.swing.BoxLayout(pnlMissile, javax.swing.BoxLayout.Y_AXIS)); - jSeparator9.setOrientation(javax.swing.SwingConstants.VERTICAL); + jSeparator9.setOrientation(SwingConstants.VERTICAL); jSeparator9.setAlignmentX(0.0F); jSeparator9.setAlignmentY(0.0F); pnlMissile.add(jSeparator9); jScrollPane19.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); jScrollPane19.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane19.setMaximumSize(new java.awt.Dimension(300, 300)); - jScrollPane19.setMinimumSize(new java.awt.Dimension(300, 300)); - jScrollPane19.setPreferredSize(new java.awt.Dimension(300, 300)); + jScrollPane19.setMaximumSize(new Dimension(300, 300)); + jScrollPane19.setMinimumSize(new Dimension(300, 300)); + jScrollPane19.setPreferredSize(new Dimension(300, 300)); lstChooseMissile.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; @@ -3509,15 +3195,11 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseMissile.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseMissile.setMaximumSize(new java.awt.Dimension(300, 300)); - lstChooseMissile.setMinimumSize(new java.awt.Dimension(300, 300)); - lstChooseMissile.setPreferredSize(new java.awt.Dimension(300, 300)); + lstChooseMissile.setMaximumSize(new Dimension(300, 300)); + lstChooseMissile.setMinimumSize(new Dimension(300, 300)); + lstChooseMissile.setPreferredSize(new Dimension(300, 300)); lstChooseMissile.setVisibleRowCount(16); - lstChooseMissile.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseMissileValueChanged(evt); - } - }); + lstChooseMissile.addListSelectionListener(this::lstChooseMissileValueChanged); MouseListener mlMissile = new MouseAdapter() { public void mouseClicked( MouseEvent e ) { if ( e.getClickCount() == 2 && e.getButton() == 1 ) { @@ -3531,7 +3213,7 @@ public void mouseClicked( MouseEvent e ) { pnlMissile.add(jScrollPane19); - jSeparator10.setOrientation(javax.swing.SwingConstants.VERTICAL); + jSeparator10.setOrientation(SwingConstants.VERTICAL); jSeparator10.setAlignmentX(0.0F); jSeparator10.setAlignmentY(0.0F); pnlMissile.add(jSeparator10); @@ -3540,16 +3222,16 @@ public void mouseClicked( MouseEvent e ) { pnlPhysical.setLayout(new javax.swing.BoxLayout(pnlPhysical, javax.swing.BoxLayout.Y_AXIS)); - jSeparator11.setOrientation(javax.swing.SwingConstants.VERTICAL); + jSeparator11.setOrientation(SwingConstants.VERTICAL); jSeparator11.setAlignmentX(0.0F); jSeparator11.setAlignmentY(0.0F); pnlPhysical.add(jSeparator11); jScrollPane20.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); jScrollPane20.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane20.setMaximumSize(new java.awt.Dimension(300, 300)); - jScrollPane20.setMinimumSize(new java.awt.Dimension(300, 300)); - jScrollPane20.setPreferredSize(new java.awt.Dimension(300, 300)); + jScrollPane20.setMaximumSize(new Dimension(300, 300)); + jScrollPane20.setMinimumSize(new Dimension(300, 300)); + jScrollPane20.setPreferredSize(new Dimension(300, 300)); lstChoosePhysical.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; @@ -3557,15 +3239,11 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChoosePhysical.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChoosePhysical.setMaximumSize(new java.awt.Dimension(300, 300)); - lstChoosePhysical.setMinimumSize(new java.awt.Dimension(300, 300)); - lstChoosePhysical.setPreferredSize(new java.awt.Dimension(300, 300)); + lstChoosePhysical.setMaximumSize(new Dimension(300, 300)); + lstChoosePhysical.setMinimumSize(new Dimension(300, 300)); + lstChoosePhysical.setPreferredSize(new Dimension(300, 300)); lstChoosePhysical.setVisibleRowCount(16); - lstChoosePhysical.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChoosePhysicalValueChanged(evt); - } - }); + lstChoosePhysical.addListSelectionListener(this::lstChoosePhysicalValueChanged); MouseListener mlPhysical = new MouseAdapter() { public void mouseClicked( MouseEvent e ) { if ( e.getClickCount() == 2 && e.getButton() == 1 ) { @@ -3579,7 +3257,7 @@ public void mouseClicked( MouseEvent e ) { pnlPhysical.add(jScrollPane20); - jSeparator12.setOrientation(javax.swing.SwingConstants.VERTICAL); + jSeparator12.setOrientation(SwingConstants.VERTICAL); jSeparator12.setAlignmentX(0.0F); jSeparator12.setAlignmentY(0.0F); pnlPhysical.add(jSeparator12); @@ -3588,16 +3266,16 @@ public void mouseClicked( MouseEvent e ) { pnlEquipmentChooser.setLayout(new javax.swing.BoxLayout(pnlEquipmentChooser, javax.swing.BoxLayout.Y_AXIS)); - jSeparator13.setOrientation(javax.swing.SwingConstants.VERTICAL); + jSeparator13.setOrientation(SwingConstants.VERTICAL); jSeparator13.setAlignmentX(0.0F); jSeparator13.setAlignmentY(0.0F); pnlEquipmentChooser.add(jSeparator13); jScrollPane21.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); jScrollPane21.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane21.setMaximumSize(new java.awt.Dimension(300, 300)); - jScrollPane21.setMinimumSize(new java.awt.Dimension(300, 300)); - jScrollPane21.setPreferredSize(new java.awt.Dimension(300, 300)); + jScrollPane21.setMaximumSize(new Dimension(300, 300)); + jScrollPane21.setMinimumSize(new Dimension(300, 300)); + jScrollPane21.setPreferredSize(new Dimension(300, 300)); lstChooseEquipment.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; @@ -3605,15 +3283,11 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseEquipment.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseEquipment.setMaximumSize(new java.awt.Dimension(300, 300)); - lstChooseEquipment.setMinimumSize(new java.awt.Dimension(300, 300)); - lstChooseEquipment.setPreferredSize(new java.awt.Dimension(300, 300)); + lstChooseEquipment.setMaximumSize(new Dimension(300, 300)); + lstChooseEquipment.setMinimumSize(new Dimension(300, 300)); + lstChooseEquipment.setPreferredSize(new Dimension(300, 300)); lstChooseEquipment.setVisibleRowCount(16); - lstChooseEquipment.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseEquipmentValueChanged(evt); - } - }); + lstChooseEquipment.addListSelectionListener(this::lstChooseEquipmentValueChanged); MouseListener mlEquipment = new MouseAdapter() { public void mouseClicked( MouseEvent e ) { if ( e.getClickCount() == 2 && e.getButton() == 1 ) { @@ -3627,7 +3301,7 @@ public void mouseClicked( MouseEvent e ) { pnlEquipmentChooser.add(jScrollPane21); - jSeparator14.setOrientation(javax.swing.SwingConstants.VERTICAL); + jSeparator14.setOrientation(SwingConstants.VERTICAL); jSeparator14.setAlignmentX(0.0F); jSeparator14.setAlignmentY(0.0F); pnlEquipmentChooser.add(jSeparator14); @@ -3636,16 +3310,16 @@ public void mouseClicked( MouseEvent e ) { pnlArtillery.setLayout(new javax.swing.BoxLayout(pnlArtillery, javax.swing.BoxLayout.Y_AXIS)); - jSeparator18.setOrientation(javax.swing.SwingConstants.VERTICAL); + jSeparator18.setOrientation(SwingConstants.VERTICAL); jSeparator18.setAlignmentX(0.0F); jSeparator18.setAlignmentY(0.0F); pnlArtillery.add(jSeparator18); jScrollPane24.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); jScrollPane24.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane24.setMaximumSize(new java.awt.Dimension(300, 300)); - jScrollPane24.setMinimumSize(new java.awt.Dimension(300, 300)); - jScrollPane24.setPreferredSize(new java.awt.Dimension(300, 300)); + jScrollPane24.setMaximumSize(new Dimension(300, 300)); + jScrollPane24.setMinimumSize(new Dimension(300, 300)); + jScrollPane24.setPreferredSize(new Dimension(300, 300)); lstChooseArtillery.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; @@ -3653,15 +3327,11 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseArtillery.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseArtillery.setMaximumSize(new java.awt.Dimension(300, 300)); - lstChooseArtillery.setMinimumSize(new java.awt.Dimension(300, 300)); - lstChooseArtillery.setPreferredSize(new java.awt.Dimension(300, 300)); + lstChooseArtillery.setMaximumSize(new Dimension(300, 300)); + lstChooseArtillery.setMinimumSize(new Dimension(300, 300)); + lstChooseArtillery.setPreferredSize(new Dimension(300, 300)); lstChooseArtillery.setVisibleRowCount(16); - lstChooseArtillery.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseArtilleryValueChanged(evt); - } - }); + lstChooseArtillery.addListSelectionListener(this::lstChooseArtilleryValueChanged); MouseListener mlArtillery = new MouseAdapter() { public void mouseClicked( MouseEvent e ) { if ( e.getClickCount() == 2 && e.getButton() == 1 ) { @@ -3675,7 +3345,7 @@ public void mouseClicked( MouseEvent e ) { pnlArtillery.add(jScrollPane24); - jSeparator19.setOrientation(javax.swing.SwingConstants.VERTICAL); + jSeparator19.setOrientation(SwingConstants.VERTICAL); jSeparator19.setAlignmentX(0.0F); jSeparator19.setAlignmentY(0.0F); pnlArtillery.add(jSeparator19); @@ -3684,16 +3354,16 @@ public void mouseClicked( MouseEvent e ) { pnlAmmunition.setLayout(new javax.swing.BoxLayout(pnlAmmunition, javax.swing.BoxLayout.Y_AXIS)); - jSeparator15.setOrientation(javax.swing.SwingConstants.VERTICAL); + jSeparator15.setOrientation(SwingConstants.VERTICAL); jSeparator15.setAlignmentX(0.0F); jSeparator15.setAlignmentY(0.0F); pnlAmmunition.add(jSeparator15); jScrollPane22.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); jScrollPane22.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane22.setMaximumSize(new java.awt.Dimension(300, 300)); - jScrollPane22.setMinimumSize(new java.awt.Dimension(300, 300)); - jScrollPane22.setPreferredSize(new java.awt.Dimension(300, 300)); + jScrollPane22.setMaximumSize(new Dimension(300, 300)); + jScrollPane22.setMinimumSize(new Dimension(300, 300)); + jScrollPane22.setPreferredSize(new Dimension(300, 300)); lstChooseAmmunition.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; @@ -3701,15 +3371,11 @@ public void mouseClicked( MouseEvent e ) { public Object getElementAt(int i) { return strings[i]; } }); lstChooseAmmunition.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseAmmunition.setMaximumSize(new java.awt.Dimension(300, 300)); - lstChooseAmmunition.setMinimumSize(new java.awt.Dimension(300, 300)); - lstChooseAmmunition.setPreferredSize(new java.awt.Dimension(300, 300)); + lstChooseAmmunition.setMaximumSize(new Dimension(300, 300)); + lstChooseAmmunition.setMinimumSize(new Dimension(300, 300)); + lstChooseAmmunition.setPreferredSize(new Dimension(300, 300)); lstChooseAmmunition.setVisibleRowCount(16); - lstChooseAmmunition.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseAmmunitionValueChanged(evt); - } - }); + lstChooseAmmunition.addListSelectionListener(this::lstChooseAmmunitionValueChanged); MouseListener mlAmmo = new MouseAdapter() { public void mouseClicked( MouseEvent e ) { if ( e.getClickCount() == 2 && e.getButton() == 1 ) { @@ -3723,7 +3389,7 @@ public void mouseClicked( MouseEvent e ) { pnlAmmunition.add(jScrollPane22); - jSeparator16.setOrientation(javax.swing.SwingConstants.VERTICAL); + jSeparator16.setOrientation(SwingConstants.VERTICAL); jSeparator16.setAlignmentX(0.0F); jSeparator16.setAlignmentY(0.0F); pnlAmmunition.add(jSeparator16); @@ -3734,83 +3400,63 @@ public void mouseClicked( MouseEvent e ) { pnlSpecials.setLayout(new java.awt.GridBagLayout()); jLabel37.setText("Missile Guidance:"); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints = new GridBagConstraints(); + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 0); pnlSpecials.add(jLabel37, gridBagConstraints); chkUseTC.setText("Targeting Computer"); chkUseTC.setEnabled(false); - chkUseTC.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkUseTCActionPerformed(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + chkUseTC.addActionListener(this::chkUseTCActionPerformed); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(2, 2, 0, 0); pnlSpecials.add(chkUseTC, gridBagConstraints); chkFCSAIV.setText("Use Artemis IV"); - chkFCSAIV.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkFCSAIVActionPerformed(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + chkFCSAIV.addActionListener(this::chkFCSAIVActionPerformed); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); pnlSpecials.add(chkFCSAIV, gridBagConstraints); chkFCSAV.setText("Use Artemis V"); chkFCSAV.setEnabled(false); - chkFCSAV.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkFCSAVActionPerformed(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + chkFCSAV.addActionListener(this::chkFCSAVActionPerformed); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); pnlSpecials.add(chkFCSAV, gridBagConstraints); chkFCSApollo.setText("Use MRM Apollo"); chkFCSApollo.setEnabled(false); - chkFCSApollo.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkFCSApolloActionPerformed(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + chkFCSApollo.addActionListener(this::chkFCSApolloActionPerformed); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); pnlSpecials.add(chkFCSApollo, gridBagConstraints); chkCASE.setText("Use CASE"); - chkCASE.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - chkCASEActionPerformed(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + chkCASE.addActionListener(this::chkCASEActionPerformed); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 5; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(2, 2, 0, 0); pnlSpecials.add(chkCASE, gridBagConstraints); pnlSelected.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Selected Equipment")); - pnlSelected.setMaximumSize(new java.awt.Dimension(212, 286)); - pnlSelected.setMinimumSize(new java.awt.Dimension(212, 286)); + pnlSelected.setMaximumSize(new Dimension(212, 286)); + pnlSelected.setMinimumSize(new Dimension(212, 286)); pnlSelected.setLayout(new javax.swing.BoxLayout(pnlSelected, javax.swing.BoxLayout.LINE_AXIS)); jScrollPane23.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); @@ -3818,15 +3464,11 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { lstSelectedEquipment.setModel( new javax.swing.DefaultListModel() ); - lstSelectedEquipment.setMaximumSize(new java.awt.Dimension(180, 225)); - lstSelectedEquipment.setMinimumSize(new java.awt.Dimension(180, 225)); + lstSelectedEquipment.setMaximumSize(new Dimension(180, 225)); + lstSelectedEquipment.setMinimumSize(new Dimension(180, 225)); lstSelectedEquipment.setPreferredSize(null); lstSelectedEquipment.setVisibleRowCount(16); - lstSelectedEquipment.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstSelectedEquipmentValueChanged(evt); - } - }); + lstSelectedEquipment.addListSelectionListener(this::lstSelectedEquipmentValueChanged); lstSelectedEquipment.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(java.awt.event.KeyEvent evt) { lstSelectedEquipmentKeyPressed(evt); @@ -3862,281 +3504,281 @@ public void mousePressed( MouseEvent e ) { pnlEquipInfo.setLayout(new java.awt.GridBagLayout()); jLabel38.setText("Availability(AoW/SL)"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 3); pnlEquipInfo.add(jLabel38, gridBagConstraints); jLabel39.setText("Availability (SW)"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 3); pnlEquipInfo.add(jLabel39, gridBagConstraints); jLabel53.setText("Availability (CI)"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 5; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 3); pnlEquipInfo.add(jLabel53, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 3; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoAVSL, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 4; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoAVSW, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 5; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoAVCI, gridBagConstraints); jLabel54.setText("Introduction"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 3; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(jLabel54, gridBagConstraints); jLabel55.setText("Extinction"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 4; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(jLabel55, gridBagConstraints); jLabel56.setText("Reintroduction"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 5; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(jLabel56, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 3; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoIntro, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 4; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoExtinct, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 5; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoReintro, gridBagConstraints); jLabel57.setText("Name"); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints = new GridBagConstraints(); + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 3); pnlEquipInfo.add(jLabel57, gridBagConstraints); jLabel58.setText("Type"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); pnlEquipInfo.add(jLabel58, gridBagConstraints); jLabel59.setText("Heat"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); pnlEquipInfo.add(jLabel59, gridBagConstraints); jLabel60.setText("Damage"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); pnlEquipInfo.add(jLabel60, gridBagConstraints); jLabel61.setText("Range"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); pnlEquipInfo.add(jLabel61, gridBagConstraints); lblInfoName.setText(" "); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 3); pnlEquipInfo.add(lblInfoName, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoType, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoHeat, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoDamage, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoRange, gridBagConstraints); jSeparator17.setBorder(javax.swing.BorderFactory.createEtchedBorder()); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; - gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(4, 0, 4, 0); pnlEquipInfo.add(jSeparator17, gridBagConstraints); jLabel62.setText("Ammo"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); pnlEquipInfo.add(jLabel62, gridBagConstraints); jLabel63.setText("Tonnage"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 6; gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); pnlEquipInfo.add(jLabel63, gridBagConstraints); jLabel64.setText("Crits"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 7; gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); pnlEquipInfo.add(jLabel64, gridBagConstraints); jLabel65.setText("Specials"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 8; gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 0); pnlEquipInfo.add(jLabel65, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoAmmo, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 6; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoTonnage, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 7; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoCrits, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 8; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 0); pnlEquipInfo.add(lblInfoSpecials, gridBagConstraints); jSeparator20.setBorder(javax.swing.BorderFactory.createEtchedBorder()); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 7; - gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(4, 0, 4, 0); pnlEquipInfo.add(jSeparator20, gridBagConstraints); jLabel66.setText("Cost"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 4; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(jLabel66, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 7; gridBagConstraints.gridy = 4; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 0); pnlEquipInfo.add(lblInfoCost, gridBagConstraints); jLabel67.setText("BV"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 5; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(jLabel67, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 7; gridBagConstraints.gridy = 5; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 0); pnlEquipInfo.add(lblInfoBV, gridBagConstraints); jLabel68.setText("Mounting Restrictions"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 8; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 4, 3); pnlEquipInfo.add(jLabel68, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 8; gridBagConstraints.gridwidth = 7; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 4, 0); pnlEquipInfo.add(lblInfoMountRestrict, gridBagConstraints); jLabel69.setText("Rules Level"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 3; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(jLabel69, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 7; gridBagConstraints.gridy = 3; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 0); pnlEquipInfo.add(lblInfoRulesLevel, gridBagConstraints); jLabel6.setText("Availability (DA)"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 6; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 3); pnlEquipInfo.add(jLabel6, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 6; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); @@ -4146,41 +3788,29 @@ public void mousePressed( MouseEvent e ) { pnlControls.setLayout(new java.awt.GridBagLayout()); btnRemoveEquip.setText("<<"); - btnRemoveEquip.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnRemoveEquipActionPerformed(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + btnRemoveEquip.addActionListener(this::btnRemoveEquipActionPerformed); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 8); pnlControls.add(btnRemoveEquip, gridBagConstraints); btnClearEquip.setText("Clear"); - btnClearEquip.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnClearEquipActionPerformed(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + btnClearEquip.addActionListener(this::btnClearEquipActionPerformed); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 0); pnlControls.add(btnClearEquip, gridBagConstraints); btnAddEquip.setText(">>"); - btnAddEquip.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnAddEquipActionPerformed(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + btnAddEquip.addActionListener(this::btnAddEquipActionPerformed); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); pnlControls.add(btnAddEquip, gridBagConstraints); cmbNumEquips.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15" })); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(4, 8, 0, 0); @@ -4201,11 +3831,11 @@ public void mouseClicked(java.awt.event.MouseEvent evt) { }); jScrollPane1.setViewportView(cmbLocation); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.gridwidth = 3; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(4, 0, 4, 0); pnlControls.add(jScrollPane1, gridBagConstraints); @@ -4249,95 +3879,75 @@ public void mouseClicked(java.awt.event.MouseEvent evt) { pnlImage.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Fluff Image", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 0, 11))); // NOI18N pnlImage.setLayout(new java.awt.GridBagLayout()); - lblFluffImage.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + lblFluffImage.setHorizontalAlignment(SwingConstants.CENTER); lblFluffImage.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblFluffImage.setMaximumSize(new java.awt.Dimension(325, 350)); - lblFluffImage.setMinimumSize(new java.awt.Dimension(325, 350)); - lblFluffImage.setPreferredSize(new java.awt.Dimension(325, 350)); - gridBagConstraints = new java.awt.GridBagConstraints(); + lblFluffImage.setMaximumSize(new Dimension(325, 350)); + lblFluffImage.setMinimumSize(new Dimension(325, 350)); + lblFluffImage.setPreferredSize(new Dimension(325, 350)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlImage.add(lblFluffImage, gridBagConstraints); btnLoadImage.setText("Load Image"); - btnLoadImage.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnLoadImageActionPerformed(evt); - } - }); + btnLoadImage.addActionListener(this::btnLoadImageActionPerformed); jPanel1.add(btnLoadImage); btnClearImage.setText("Clear Image"); - btnClearImage.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnClearImageActionPerformed(evt); - } - }); + btnClearImage.addActionListener(this::btnClearImageActionPerformed); jPanel1.add(btnClearImage); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + gridBagConstraints = new GridBagConstraints(); + gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 4, 4); pnlImage.add(jPanel1, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.gridheight = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; pnlFluff.add(pnlImage, gridBagConstraints); pnlExport.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Export", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 0, 11))); // NOI18N pnlExport.setLayout(new java.awt.GridBagLayout()); btnExportTXT.setText("to TXT"); - btnExportTXT.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnExportTXTActionPerformed(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + btnExportTXT.addActionListener(this::btnExportTXTActionPerformed); + gridBagConstraints = new GridBagConstraints(); + gridBagConstraints.anchor = GridBagConstraints.WEST; pnlExport.add(btnExportTXT, gridBagConstraints); btnExportHTML.setText("to HTML"); - btnExportHTML.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnExportHTMLActionPerformed(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); + btnExportHTML.addActionListener(this::btnExportHTMLActionPerformed); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 4); pnlExport.add(btnExportHTML, gridBagConstraints); btnExportMTF.setText("to MegaMek"); - btnExportMTF.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnExportMTFActionPerformed(evt); - } - }); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; + btnExportMTF.addActionListener(this::btnExportMTFActionPerformed); + gridBagConstraints = new GridBagConstraints(); + gridBagConstraints.anchor = GridBagConstraints.EAST; pnlExport.add(btnExportMTF, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; + gridBagConstraints.anchor = GridBagConstraints.NORTH; pnlFluff.add(pnlExport, gridBagConstraints); - tbpFluffEditors.setTabPlacement(javax.swing.JTabbedPane.LEFT); - tbpFluffEditors.setMaximumSize(new java.awt.Dimension(420, 455)); - tbpFluffEditors.setMinimumSize(new java.awt.Dimension(420, 455)); + tbpFluffEditors.setTabPlacement(JTabbedPane.RIGHT); + tbpFluffEditors.setMaximumSize(new Dimension(420, 455)); + tbpFluffEditors.setMinimumSize(new Dimension(420, 455)); - pnlOverview.setMaximumSize(new java.awt.Dimension(427, 485)); - pnlOverview.setMinimumSize(new java.awt.Dimension(427, 485)); + pnlOverview.setMaximumSize(new Dimension(427, 485)); + pnlOverview.setMinimumSize(new Dimension(427, 485)); pnlOverview.setLayout(new javax.swing.BoxLayout(pnlOverview, javax.swing.BoxLayout.Y_AXIS)); tbpFluffEditors.addTab("Overview", pnlOverview); - pnlCapabilities.setMaximumSize(new java.awt.Dimension(427, 485)); - pnlCapabilities.setMinimumSize(new java.awt.Dimension(427, 485)); + pnlCapabilities.setMaximumSize(new Dimension(427, 485)); + pnlCapabilities.setMinimumSize(new Dimension(427, 485)); pnlCapabilities.setLayout(new javax.swing.BoxLayout(pnlCapabilities, javax.swing.BoxLayout.Y_AXIS)); tbpFluffEditors.addTab("Capabilities", pnlCapabilities); @@ -4360,108 +3970,108 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jLabel82.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N jLabel82.setText("Manufacturer Information"); - jLabel82.setMaximumSize(new java.awt.Dimension(175, 15)); - jLabel82.setMinimumSize(new java.awt.Dimension(175, 15)); - jLabel82.setPreferredSize(new java.awt.Dimension(175, 15)); - gridBagConstraints = new java.awt.GridBagConstraints(); + jLabel82.setMaximumSize(new Dimension(175, 15)); + jLabel82.setMinimumSize(new Dimension(175, 15)); + jLabel82.setPreferredSize(new Dimension(175, 15)); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.gridwidth = 2; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(5, 10, 0, 0); pnlManufacturers.add(jLabel82, gridBagConstraints); jLabel83.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - jLabel83.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); + jLabel83.setHorizontalAlignment(SwingConstants.RIGHT); jLabel83.setText("Manufacturing Company:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(10, 10, 0, 0); pnlManufacturers.add(jLabel83, gridBagConstraints); jLabel84.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - jLabel84.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); + jLabel84.setHorizontalAlignment(SwingConstants.RIGHT); jLabel84.setText("Location:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 76; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); pnlManufacturers.add(jLabel84, gridBagConstraints); jLabel85.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - jLabel85.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); + jLabel85.setHorizontalAlignment(SwingConstants.RIGHT); jLabel85.setText("Engine Manufacturer:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 17; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); pnlManufacturers.add(jLabel85, gridBagConstraints); jLabel86.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - jLabel86.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); + jLabel86.setHorizontalAlignment(SwingConstants.RIGHT); jLabel86.setText("Armor Model:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 5; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 56; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); pnlManufacturers.add(jLabel86, gridBagConstraints); jLabel87.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - jLabel87.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); + jLabel87.setHorizontalAlignment(SwingConstants.RIGHT); jLabel87.setText("Chassis Model:"); jLabel87.setEnabled(false); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 47; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); pnlManufacturers.add(jLabel87, gridBagConstraints); jLabel88.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - jLabel88.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); + jLabel88.setHorizontalAlignment(SwingConstants.RIGHT); jLabel88.setText("Communications System:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 7; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); pnlManufacturers.add(jLabel88, gridBagConstraints); jLabel89.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - jLabel89.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); + jLabel89.setHorizontalAlignment(SwingConstants.RIGHT); jLabel89.setText("Targeting and Tracking:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 8; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 7; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); pnlManufacturers.add(jLabel89, gridBagConstraints); txtManufacturer.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(10, 2, 0, 11); pnlManufacturers.add(txtManufacturer, gridBagConstraints); MouseListener mlManufacturer = new MouseAdapter() { @@ -4479,12 +4089,12 @@ public void mousePressed( MouseEvent e ) { txtManufacturer.addMouseListener( mlManufacturer ); txtEngineManufacturer.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 4; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 11); pnlManufacturers.add(txtEngineManufacturer, gridBagConstraints); MouseListener mlEngineManufacturer = new MouseAdapter() { @@ -4502,12 +4112,12 @@ public void mousePressed( MouseEvent e ) { txtEngineManufacturer.addMouseListener( mlEngineManufacturer ); txtArmorModel.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 5; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 11); pnlManufacturers.add(txtArmorModel, gridBagConstraints); MouseListener mlArmorModel = new MouseAdapter() { @@ -4526,12 +4136,12 @@ public void mousePressed( MouseEvent e ) { txtChassisModel.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N txtChassisModel.setEnabled(false); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 3; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 11); pnlManufacturers.add(txtChassisModel, gridBagConstraints); MouseListener mlChassisModel = new MouseAdapter() { @@ -4549,12 +4159,12 @@ public void mousePressed( MouseEvent e ) { txtChassisModel.addMouseListener( mlChassisModel ); txtCommSystem.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 7; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 11); pnlManufacturers.add(txtCommSystem, gridBagConstraints); MouseListener mlCommSystem = new MouseAdapter() { @@ -4572,12 +4182,12 @@ public void mousePressed( MouseEvent e ) { txtCommSystem.addMouseListener( mlCommSystem ); txtTNTSystem.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 8; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 11); pnlManufacturers.add(txtTNTSystem, gridBagConstraints); MouseListener mlTNTSystem = new MouseAdapter() { @@ -4596,18 +4206,18 @@ public void mousePressed( MouseEvent e ) { pnlWeaponsManufacturers.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Weapons Manufacturers", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 0, 11))); // NOI18N pnlWeaponsManufacturers.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - pnlWeaponsManufacturers.setMinimumSize(new java.awt.Dimension(315, 260)); + pnlWeaponsManufacturers.setMinimumSize(new Dimension(315, 260)); pnlWeaponsManufacturers.setLayout(new java.awt.GridBagLayout()); chkIndividualWeapons.setText("Assign manufacturers individually"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 10, 4, 0); pnlWeaponsManufacturers.add(chkIndividualWeapons, gridBagConstraints); - scpWeaponManufacturers.setPreferredSize(new java.awt.Dimension(452, 392)); + scpWeaponManufacturers.setPreferredSize(new Dimension(452, 392)); tblWeaponManufacturers.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { @@ -4630,26 +4240,26 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { }); scpWeaponManufacturers.setViewportView(tblWeaponManufacturers); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.ipadx = 280; gridBagConstraints.ipady = 180; pnlWeaponsManufacturers.add(scpWeaponManufacturers, gridBagConstraints); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 9; gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(2, 10, 2, 10); pnlManufacturers.add(pnlWeaponsManufacturers, gridBagConstraints); txtManufacturerLocation.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 2; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 11); pnlManufacturers.add(txtManufacturerLocation, gridBagConstraints); MouseListener mlManufacturerLocation = new MouseAdapter() { @@ -4667,24 +4277,24 @@ public void mousePressed( MouseEvent e ) { txtManufacturerLocation.addMouseListener( mlManufacturerLocation ); jLabel90.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N - jLabel90.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); + jLabel90.setHorizontalAlignment(SwingConstants.RIGHT); jLabel90.setText("Jump Jet Model:"); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 6; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 44; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); pnlManufacturers.add(jLabel90, gridBagConstraints); txtJJModel.setEnabled(false); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 6; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.ipadx = 184; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 11); pnlManufacturers.add(txtJJModel, gridBagConstraints); MouseListener mlJJModel = new MouseAdapter() { @@ -4705,9 +4315,9 @@ public void mousePressed( MouseEvent e ) { lblBattleMechQuirks.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N lblBattleMechQuirks.setText("Quirks"); - lblBattleMechQuirks.setMaximumSize(new java.awt.Dimension(175, 15)); - lblBattleMechQuirks.setMinimumSize(new java.awt.Dimension(175, 15)); - lblBattleMechQuirks.setPreferredSize(new java.awt.Dimension(175, 15)); + lblBattleMechQuirks.setMaximumSize(new Dimension(175, 15)); + lblBattleMechQuirks.setMinimumSize(new Dimension(175, 15)); + lblBattleMechQuirks.setPreferredSize(new Dimension(175, 15)); tblQuirks.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { @@ -4740,11 +4350,7 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { scpQuirkTable.setViewportView(tblQuirks); btnAddQuirk.setText("Add Quirk"); - btnAddQuirk.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - btnAddQuirkActionPerformed(evt); - } - }); + btnAddQuirk.addActionListener(this::btnAddQuirkActionPerformed); javax.swing.GroupLayout pnlQuirksLayout = new javax.swing.GroupLayout(pnlQuirks); pnlQuirks.setLayout(pnlQuirksLayout); @@ -4773,11 +4379,11 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { tbpFluffEditors.addTab("Quirks", pnlQuirks); - gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; gridBagConstraints.gridheight = 3; - gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHEAST; + gridBagConstraints.anchor = GridBagConstraints.NORTHEAST; gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 6); pnlFluff.add(tbpFluffEditors, gridBagConstraints); @@ -4836,39 +4442,39 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jLabel79.setText("Special Abilities:"); pnlBFStats.add(jLabel79, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 110, -1, -1)); - lblBFMV.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + lblBFMV.setHorizontalAlignment(SwingConstants.CENTER); lblBFMV.setText("0"); pnlBFStats.add(lblBFMV, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 50, 30, -1)); - lblBFWt.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + lblBFWt.setHorizontalAlignment(SwingConstants.CENTER); lblBFWt.setText("1"); pnlBFStats.add(lblBFWt, new org.netbeans.lib.awtextra.AbsoluteConstraints(250, 50, 30, -1)); - lblBFOV.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + lblBFOV.setHorizontalAlignment(SwingConstants.CENTER); lblBFOV.setText("0"); pnlBFStats.add(lblBFOV, new org.netbeans.lib.awtextra.AbsoluteConstraints(290, 50, 30, -1)); - lblBFExtreme.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + lblBFExtreme.setHorizontalAlignment(SwingConstants.CENTER); lblBFExtreme.setText("0"); pnlBFStats.add(lblBFExtreme, new org.netbeans.lib.awtextra.AbsoluteConstraints(210, 50, 30, -1)); - lblBFShort.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + lblBFShort.setHorizontalAlignment(SwingConstants.CENTER); lblBFShort.setText("0"); pnlBFStats.add(lblBFShort, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 50, 30, -1)); - lblBFMedium.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + lblBFMedium.setHorizontalAlignment(SwingConstants.CENTER); lblBFMedium.setText("0"); pnlBFStats.add(lblBFMedium, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 50, 30, -1)); - lblBFLong.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + lblBFLong.setHorizontalAlignment(SwingConstants.CENTER); lblBFLong.setText("0"); pnlBFStats.add(lblBFLong, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 50, 30, -1)); - lblBFArmor.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + lblBFArmor.setHorizontalAlignment(SwingConstants.CENTER); lblBFArmor.setText("0"); pnlBFStats.add(lblBFArmor, new org.netbeans.lib.awtextra.AbsoluteConstraints(410, 30, 30, -1)); - lblBFStructure.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + lblBFStructure.setHorizontalAlignment(SwingConstants.CENTER); lblBFStructure.setText("0"); pnlBFStats.add(lblBFStructure, new org.netbeans.lib.awtextra.AbsoluteConstraints(410, 60, 30, -1)); @@ -4914,55 +4520,31 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { tbpMainTabPane.addTab("BattleForce", jPanel9); mnuFile.setText("File"); - mnuFile.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuFileActionPerformed(evt); - } - }); + mnuFile.addActionListener(this::mnuFileActionPerformed); mnuNewMech.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.ALT_MASK)); mnuNewMech.setText("New"); - mnuNewMech.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuNewMechActionPerformed(evt); - } - }); + mnuNewMech.addActionListener(this::mnuNewMechActionPerformed); mnuFile.add(mnuNewMech); mnuLoad.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.ALT_MASK)); mnuLoad.setText("Load"); - mnuLoad.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuLoadActionPerformed(evt); - } - }); + mnuLoad.addActionListener(this::mnuLoadActionPerformed); mnuFile.add(mnuLoad); mnuOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_MASK)); mnuOpen.setText("Open"); - mnuOpen.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuOpenActionPerformed(evt); - } - }); + mnuOpen.addActionListener(this::mnuOpenActionPerformed); mnuFile.add(mnuOpen); mnuImport.setText("Import..."); mnuImportHMP.setText("from Heavy Metal Pro (HMP)"); - mnuImportHMP.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuImportHMPActionPerformed(evt); - } - }); + mnuImportHMP.addActionListener(this::mnuImportHMPActionPerformed); mnuImport.add(mnuImportHMP); mnuBatchHMP.setText("Batch Import HMP Files"); - mnuBatchHMP.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuBatchHMPActionPerformed(evt); - } - }); + mnuBatchHMP.addActionListener(this::mnuBatchHMPActionPerformed); mnuImport.add(mnuBatchHMP); mnuFile.add(mnuImport); @@ -4970,62 +4552,34 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_MASK)); mnuSave.setText("Save"); - mnuSave.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuSaveActionPerformed(evt); - } - }); + mnuSave.addActionListener(this::mnuSaveActionPerformed); mnuFile.add(mnuSave); mnuSaveAs.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK)); mnuSaveAs.setText("Save As..."); - mnuSaveAs.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuSaveAsActionPerformed(evt); - } - }); + mnuSaveAs.addActionListener(this::mnuSaveAsActionPerformed); mnuFile.add(mnuSaveAs); mnuExport.setText("Export As..."); mnuExportHTML.setText("to HTML (Web)"); - mnuExportHTML.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuExportHTMLActionPerformed(evt); - } - }); + mnuExportHTML.addActionListener(this::mnuExportHTMLActionPerformed); mnuExport.add(mnuExportHTML); mnuExportMTF.setText("to MTF (MegaMek)"); - mnuExportMTF.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuExportMTFActionPerformed(evt); - } - }); + mnuExportMTF.addActionListener(this::mnuExportMTFActionPerformed); mnuExport.add(mnuExportMTF); mnuExportTXT.setText("to TXT (Text)"); - mnuExportTXT.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuExportTXTActionPerformed(evt); - } - }); + mnuExportTXT.addActionListener(this::mnuExportTXTActionPerformed); mnuExport.add(mnuExportTXT); mnuExportClipboard.setText("to Clipboard (Text)"); - mnuExportClipboard.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuExportClipboardActionPerformed(evt); - } - }); + mnuExportClipboard.addActionListener(this::mnuExportClipboardActionPerformed); mnuExport.add(mnuExportClipboard); mnuCreateTCGMech.setText("to TCG Format (Card)"); - mnuCreateTCGMech.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuCreateTCGMechActionPerformed(evt); - } - }); + mnuCreateTCGMech.addActionListener(this::mnuCreateTCGMechActionPerformed); mnuExport.add(mnuCreateTCGMech); mnuFile.add(mnuExport); @@ -5036,21 +4590,13 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuPrintPreview.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK)); mnuPrintPreview.setText("Print Preview"); - mnuPrintPreview.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuPrintPreviewActionPerformed(evt); - } - }); + mnuPrintPreview.addActionListener(this::mnuPrintPreviewActionPerformed); mnuFile.add(mnuPrintPreview); mnuFile.add(jSeparator24); mnuExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.ALT_MASK)); mnuExit.setText("Exit"); - mnuExit.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuExitActionPerformed(evt); - } - }); + mnuExit.addActionListener(this::mnuExitActionPerformed); mnuFile.add(mnuExit); jMenuBar1.add(mnuFile); @@ -5059,90 +4605,50 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuSummary.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.ALT_MASK)); mnuSummary.setText("Show Summary"); - mnuSummary.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuSummaryActionPerformed(evt); - } - }); + mnuSummary.addActionListener(this::mnuSummaryActionPerformed); mnuClearFluff.add(mnuSummary); mnuCostBVBreakdown.setText("Cost/BV Breakdown"); - mnuCostBVBreakdown.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuCostBVBreakdownActionPerformed(evt); - } - }); + mnuCostBVBreakdown.addActionListener(this::mnuCostBVBreakdownActionPerformed); mnuClearFluff.add(mnuCostBVBreakdown); mnuTextTRO.setText("Show Text TRO Format"); - mnuTextTRO.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuTextTROActionPerformed(evt); - } - }); + mnuTextTRO.addActionListener(this::mnuTextTROActionPerformed); mnuClearFluff.add(mnuTextTRO); mnuClearFluff.add(jSeparator26); mnuBFB.setText("Load Force Balancer"); - mnuBFB.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuBFBActionPerformed(evt); - } - }); + mnuBFB.addActionListener(this::mnuBFBActionPerformed); mnuClearFluff.add(mnuBFB); mnuClearFluff.add(jSeparator27); mnuOptions.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_MASK)); mnuOptions.setText("Preferences"); - mnuOptions.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuOptionsActionPerformed(evt); - } - }); + mnuOptions.addActionListener(this::mnuOptionsActionPerformed); mnuClearFluff.add(mnuOptions); mnuViewToolbar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.ALT_MASK)); mnuViewToolbar.setSelected(true); mnuViewToolbar.setText("View Toolbar"); - mnuViewToolbar.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuViewToolbarActionPerformed(evt); - } - }); + mnuViewToolbar.addActionListener(this::mnuViewToolbarActionPerformed); mnuClearFluff.add(mnuViewToolbar); mnuClearUserData.setText("Clear User Data"); - mnuClearUserData.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuClearUserDataActionPerformed(evt); - } - }); + mnuClearUserData.addActionListener(this::mnuClearUserDataActionPerformed); mnuClearFluff.add(mnuClearUserData); mnuClearFluff.add(jSeparator30); mnuUnlock.setText("Unlock Chassis"); mnuUnlock.setEnabled(false); - mnuUnlock.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuUnlockActionPerformed(evt); - } - }); + mnuUnlock.addActionListener(this::mnuUnlockActionPerformed); mnuClearFluff.add(mnuUnlock); jMenuItem1.setText("Clear All Fluff"); - jMenuItem1.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - jMenuItem1ActionPerformed(evt); - } - }); + jMenuItem1.addActionListener(this::jMenuItem1ActionPerformed); mnuClearFluff.add(jMenuItem1); mnuReloadEquipment.setText("Reload Equipment"); - mnuReloadEquipment.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuReloadEquipmentActionPerformed(evt); - } - }); + mnuReloadEquipment.addActionListener(this::mnuReloadEquipmentActionPerformed); mnuClearFluff.add(mnuReloadEquipment); jMenuBar1.add(mnuClearFluff); @@ -5150,19 +4656,11 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { mnuHelp.setText("Help"); mnuCredits.setText("Credits"); - mnuCredits.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuCreditsActionPerformed(evt); - } - }); + mnuCredits.addActionListener(this::mnuCreditsActionPerformed); mnuHelp.add(mnuCredits); mnuAboutSSW.setText("About SAW"); - mnuAboutSSW.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - mnuAboutSSWActionPerformed(evt); - } - }); + mnuAboutSSW.addActionListener(this::mnuAboutSSWActionPerformed); mnuHelp.add(mnuAboutSSW); jMenuBar1.add(mnuHelp); @@ -5441,13 +4939,13 @@ private void BuildEngineSelector() { // get the engine states and, for each that matches our criteria, add it // to the selector list ifState[] check = CurVee.GetEngine().GetStates(); - for( int i = 0; i < check.length; i++ ) { - if( CommonTools.IsAllowed( check[i].GetAvailability(), CurVee ) ) { - if ( (check[i] instanceof states.stEngineNone) ) { - if ( chkTrailer.isSelected() ) - list.add( BuildLookupName( check[i] ) ); + for (states.ifState ifState : check) { + if (CommonTools.IsAllowed(ifState.GetAvailability(), CurVee)) { + if ((ifState instanceof states.stEngineNone)) { + if (chkTrailer.isSelected()) + list.add(BuildLookupName(ifState)); } else - list.add( BuildLookupName( check[i] ) ); + list.add(BuildLookupName(ifState)); } } @@ -6985,11 +6483,7 @@ public Object getValueAt( int row, int col ) { } @Override public boolean isCellEditable( int row, int col ) { - if( col == 0 ) { - return false; - } else { - return true; - } + return col != 0; } @Override public void setValueAt( Object value, int row, int col ) { @@ -7001,22 +6495,18 @@ public void setValueAt( Object value, int row, int col ) { // fireTableCellUpdated( row, col ); //} else { ArrayList v = CurVee.GetLoadout().GetEquipment(); - for( int i = 0; i < v.size(); i++ ) { - if( FileCommon.LookupStripArc( ((abPlaceable) v.get( i )).LookupName() ).equals( FileCommon.LookupStripArc( a.LookupName() ) ) ) { - ((abPlaceable) v.get( i )).SetManufacturer( (String) value ); - } + for (Object o : v) { + if (FileCommon.LookupStripArc(((abPlaceable) o).LookupName()).equals(FileCommon.LookupStripArc(a.LookupName()))) { + ((abPlaceable) o).SetManufacturer((String) value); } + } fireTableDataChanged(); //} } } ); tblWeaponManufacturers.getInputMap( javax.swing.JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put( javax.swing.KeyStroke.getKeyStroke( java.awt.event.KeyEvent.VK_TAB, 0, false ), "selectNextRow" ); - if( cmbEra.getSelectedIndex() == AvailableCode.ERA_ALL ) { - chkYearRestrict.setEnabled( false ); - } else { - chkYearRestrict.setEnabled( true ); - } + chkYearRestrict.setEnabled(cmbEra.getSelectedIndex() != AvailableCode.ERA_ALL); CurVee.SetChanged( false ); setTitle( saw.Constants.AppDescription + " " + saw.Constants.GetVersion() ); } @@ -7033,11 +6523,7 @@ private void CheckOmni() { // now let's ensure that all the omni controls are enabled or disabled // as appropriate if( chkOmniVee.isEnabled() ) { - if( chkOmniVee.isSelected() ) { - btnLockChassis.setEnabled( true ); - } else { - btnLockChassis.setEnabled( false ); - } + btnLockChassis.setEnabled(chkOmniVee.isSelected()); } else { btnLockChassis.setEnabled( false ); } @@ -7085,11 +6571,7 @@ private void RefreshEquipment() { // fix the targeting computer display if( CommonTools.IsAllowed( CurVee.GetTC().GetAvailability(), CurVee ) ) { chkUseTC.setEnabled( true ); - if( CurVee.UsingTC() ) { - chkUseTC.setSelected( true ); - } else { - chkUseTC.setSelected( false ); - } + chkUseTC.setSelected(CurVee.UsingTC()); } else { chkUseTC.setSelected( false ); chkUseTC.setEnabled( false ); @@ -7102,16 +6584,8 @@ private void RefreshEquipment() { //chkBSPFD.setEnabled( false ); //chkBSPFD.setSelected( false ); } - if( CommonTools.IsAllowed( CurVee.GetLoadout().GetSupercharger().GetAvailability(), CurVee ) && !CurVee.IsVTOL() ) { - chkSupercharger.setEnabled( true ); - } else { - chkSupercharger.setEnabled( false ); - } - if( CurVee.IsVTOL() && CommonTools.IsAllowed( CurVee.GetLoadout().GetVTOLBooster().GetAvailability(), CurVee ) && !CurVee.IsOmni()) { - chkJetBooster.setEnabled( true ); - } else { - chkJetBooster.setEnabled( false ); - } + chkSupercharger.setEnabled(CommonTools.IsAllowed(CurVee.GetLoadout().GetSupercharger().GetAvailability(), CurVee) && !CurVee.IsVTOL()); + chkJetBooster.setEnabled(CurVee.IsVTOL() && CommonTools.IsAllowed(CurVee.GetLoadout().GetVTOLBooster().GetAvailability(), CurVee) && !CurVee.IsOmni()); // now set all the equipment if needed if( ! chkFCSAIV.isEnabled() ) { try { @@ -7121,11 +6595,7 @@ private void RefreshEquipment() { } chkFCSAIV.setSelected( false ); } else { - if( CurVee.UsingArtemisIV() ) { - chkFCSAIV.setSelected( true ); - } else { - chkFCSAIV.setSelected( false ); - } + chkFCSAIV.setSelected(CurVee.UsingArtemisIV()); } if( ! chkFCSAV.isEnabled() ) { try { @@ -7135,11 +6605,7 @@ private void RefreshEquipment() { } chkFCSAV.setSelected( false ); } else { - if( CurVee.UsingArtemisV() ) { - chkFCSAV.setSelected( true ); - } else { - chkFCSAV.setSelected( false ); - } + chkFCSAV.setSelected(CurVee.UsingArtemisV()); } if( ! chkFCSApollo.isEnabled() ) { try { @@ -7149,11 +6615,7 @@ private void RefreshEquipment() { } chkFCSApollo.setSelected( false ); } else { - if( CurVee.UsingApollo() ) { - chkFCSApollo.setSelected( true ); - } else { - chkFCSApollo.setSelected( false ); - } + chkFCSApollo.setSelected(CurVee.UsingApollo()); } if( ! chkSupercharger.isEnabled() ) { try { @@ -7162,11 +6624,7 @@ private void RefreshEquipment() { Media.Messager( this, e.getMessage() ); } } else { - if( CurVee.GetLoadout().HasSupercharger() ) { - chkSupercharger.setSelected( true ); - } else { - chkSupercharger.setSelected( false ); - } + chkSupercharger.setSelected(CurVee.GetLoadout().HasSupercharger()); } chkJetBooster.setSelected(CurVee.GetLoadout().HasVTOLBooster()); @@ -9689,10 +9147,7 @@ private void cmbLocationMouseClicked(java.awt.event.MouseEvent evt) { } private void chkSponsonTurretActionPerformed(java.awt.event.ActionEvent evt) { - if (chkSponsonTurret.isSelected()) - CurVee.setHasSponsonTurret(true); - else - CurVee.setHasSponsonTurret(false); + CurVee.setHasSponsonTurret(chkSponsonTurret.isSelected()); RefreshSelectedEquipment(); BuildLocationSelector(); RefreshSummary(); @@ -9800,33 +9255,11 @@ private void FixJJSpinnerModel() { spnJumpMP.setModel( new javax.swing.SpinnerNumberModel( current, min, max, 1) ); } - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JButton btnAddEquip; - private javax.swing.JButton btnAddQuirk; - private javax.swing.JButton btnAddToForceList; private javax.swing.JButton btnAddVariant; - private javax.swing.JButton btnChatInfo; - private javax.swing.JButton btnClearEquip; - private javax.swing.JButton btnClearImage; private javax.swing.JButton btnDeleteVariant; - private javax.swing.JButton btnExportClipboardIcon; - private javax.swing.JButton btnExportHTML; - private javax.swing.JButton btnExportHTMLIcon; - private javax.swing.JButton btnExportMTF; - private javax.swing.JButton btnExportMTFIcon; - private javax.swing.JButton btnExportTXT; - private javax.swing.JButton btnExportTextIcon; - private javax.swing.JButton btnForceList; - private javax.swing.JButton btnLoadImage; private javax.swing.JButton btnLockChassis; private javax.swing.JButton btnMaximize; - private javax.swing.JButton btnNewVee; - private javax.swing.JButton btnOpen; - private javax.swing.JButton btnOptions; - private javax.swing.JButton btnPrint; - private javax.swing.JButton btnRemoveEquip; private javax.swing.JButton btnRenameVariant; - private javax.swing.JButton btnSave; private javax.swing.JButton btnSetArmorTons; private javax.swing.JButton btnUseRemaining; private javax.swing.JCheckBox chkArmoredMotive; @@ -9864,150 +9297,7 @@ private void FixJJSpinnerModel() { private javax.swing.JComboBox cmbRulesLevel; private javax.swing.JComboBox cmbTechBase; private javax.swing.JComboBox cmbTurret; - private javax.swing.JLabel jLabel1; - private javax.swing.JLabel jLabel10; - private javax.swing.JLabel jLabel11; - private javax.swing.JLabel jLabel12; - private javax.swing.JLabel jLabel13; - private javax.swing.JLabel jLabel14; - private javax.swing.JLabel jLabel15; - private javax.swing.JLabel jLabel16; - private javax.swing.JLabel jLabel17; - private javax.swing.JLabel jLabel18; - private javax.swing.JLabel jLabel19; - private javax.swing.JLabel jLabel2; - private javax.swing.JLabel jLabel20; - private javax.swing.JLabel jLabel21; - private javax.swing.JLabel jLabel22; - private javax.swing.JLabel jLabel23; - private javax.swing.JLabel jLabel24; - private javax.swing.JLabel jLabel25; - private javax.swing.JLabel jLabel26; - private javax.swing.JLabel jLabel27; - private javax.swing.JLabel jLabel28; - private javax.swing.JLabel jLabel29; - private javax.swing.JLabel jLabel3; - private javax.swing.JLabel jLabel30; - private javax.swing.JLabel jLabel31; - private javax.swing.JLabel jLabel32; - private javax.swing.JLabel jLabel33; - private javax.swing.JLabel jLabel34; - private javax.swing.JLabel jLabel35; - private javax.swing.JLabel jLabel36; - private javax.swing.JLabel jLabel37; - private javax.swing.JLabel jLabel38; - private javax.swing.JLabel jLabel39; - private javax.swing.JLabel jLabel4; - private javax.swing.JLabel jLabel40; - private javax.swing.JLabel jLabel41; - private javax.swing.JLabel jLabel42; - private javax.swing.JLabel jLabel43; - private javax.swing.JLabel jLabel44; - private javax.swing.JLabel jLabel45; - private javax.swing.JLabel jLabel46; - private javax.swing.JLabel jLabel47; - private javax.swing.JLabel jLabel48; - private javax.swing.JLabel jLabel49; - private javax.swing.JLabel jLabel5; - private javax.swing.JLabel jLabel50; - private javax.swing.JLabel jLabel51; - private javax.swing.JLabel jLabel52; - private javax.swing.JLabel jLabel53; - private javax.swing.JLabel jLabel54; - private javax.swing.JLabel jLabel55; - private javax.swing.JLabel jLabel56; - private javax.swing.JLabel jLabel57; - private javax.swing.JLabel jLabel58; - private javax.swing.JLabel jLabel59; - private javax.swing.JLabel jLabel6; - private javax.swing.JLabel jLabel60; - private javax.swing.JLabel jLabel61; - private javax.swing.JLabel jLabel62; - private javax.swing.JLabel jLabel63; - private javax.swing.JLabel jLabel64; - private javax.swing.JLabel jLabel65; - private javax.swing.JLabel jLabel66; - private javax.swing.JLabel jLabel67; - private javax.swing.JLabel jLabel68; - private javax.swing.JLabel jLabel69; - private javax.swing.JLabel jLabel7; - private javax.swing.JLabel jLabel70; - private javax.swing.JLabel jLabel71; - private javax.swing.JLabel jLabel72; - private javax.swing.JLabel jLabel73; - private javax.swing.JLabel jLabel74; - private javax.swing.JLabel jLabel75; - private javax.swing.JLabel jLabel76; - private javax.swing.JLabel jLabel77; - private javax.swing.JLabel jLabel78; - private javax.swing.JLabel jLabel79; - private javax.swing.JLabel jLabel8; - private javax.swing.JLabel jLabel80; - private javax.swing.JLabel jLabel81; - private javax.swing.JLabel jLabel82; - private javax.swing.JLabel jLabel83; - private javax.swing.JLabel jLabel84; - private javax.swing.JLabel jLabel85; - private javax.swing.JLabel jLabel86; - private javax.swing.JLabel jLabel87; - private javax.swing.JLabel jLabel88; - private javax.swing.JLabel jLabel89; - private javax.swing.JLabel jLabel9; - private javax.swing.JLabel jLabel90; - private javax.swing.JLabel jLabel91; - private javax.swing.JLabel jLabel92; - private javax.swing.JLabel jLabel93; - private javax.swing.JMenuBar jMenuBar1; - private javax.swing.JMenuItem jMenuItem1; - private javax.swing.JPanel jPanel1; - private javax.swing.JPanel jPanel10; - private javax.swing.JPanel jPanel11; - private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; - private javax.swing.JPanel jPanel4; - private javax.swing.JPanel pnlBasicInfo; - private javax.swing.JPanel jPanel6; - private javax.swing.JPanel pnlArmorType; - private javax.swing.JPanel jPanel8; - private javax.swing.JPanel jPanel9; - private javax.swing.JScrollPane jScrollPane1; - private javax.swing.JScrollPane jScrollPane14; - private javax.swing.JScrollPane jScrollPane19; - private javax.swing.JScrollPane jScrollPane20; - private javax.swing.JScrollPane jScrollPane21; - private javax.swing.JScrollPane jScrollPane22; - private javax.swing.JScrollPane jScrollPane23; - private javax.swing.JScrollPane jScrollPane24; - private javax.swing.JScrollPane jScrollPane8; - private javax.swing.JScrollPane jScrollPane9; - private javax.swing.JToolBar.Separator jSeparator1; - private javax.swing.JSeparator jSeparator10; - private javax.swing.JSeparator jSeparator11; - private javax.swing.JSeparator jSeparator12; - private javax.swing.JSeparator jSeparator13; - private javax.swing.JSeparator jSeparator14; - private javax.swing.JSeparator jSeparator15; - private javax.swing.JSeparator jSeparator16; - private javax.swing.JSeparator jSeparator17; - private javax.swing.JSeparator jSeparator18; - private javax.swing.JSeparator jSeparator19; - private javax.swing.JToolBar.Separator jSeparator2; - private javax.swing.JSeparator jSeparator20; - private javax.swing.JToolBar.Separator jSeparator21; - private javax.swing.JSeparator jSeparator22; - private javax.swing.JSeparator jSeparator23; - private javax.swing.JSeparator jSeparator24; - private javax.swing.JToolBar.Separator jSeparator25; - private javax.swing.JSeparator jSeparator26; - private javax.swing.JSeparator jSeparator27; - private javax.swing.JToolBar.Separator jSeparator3; - private javax.swing.JSeparator jSeparator30; - private javax.swing.JToolBar.Separator jSeparator4; - private javax.swing.JSeparator jSeparator5; - private javax.swing.JSeparator jSeparator6; - private javax.swing.JSeparator jSeparator7; - private javax.swing.JSeparator jSeparator8; - private javax.swing.JSeparator jSeparator9; private javax.swing.JTextArea jTextAreaBFConversion; private javax.swing.JLabel lblArmorCoverage; private javax.swing.JLabel lblArmorLeftInLot; @@ -10025,7 +9315,6 @@ private void FixJJSpinnerModel() { private javax.swing.JLabel lblBFStructure; private javax.swing.JLabel lblBFWt; private javax.swing.JLabel lblBaseEngineRating; - private javax.swing.JLabel lblBattleMechQuirks; private javax.swing.JLabel lblEraYears; private javax.swing.JLabel lblFinalEngineRating; private javax.swing.JLabel lblFlankMP; @@ -10055,12 +9344,10 @@ private void FixJJSpinnerModel() { private javax.swing.JLabel lblLeftIntPts; private javax.swing.JLabel lblMinEngineTons; private javax.swing.JLabel lblNumCrew; - private javax.swing.JLabel lblProdYear; private javax.swing.JLabel lblRearIntPts; private javax.swing.JLabel lblRearTurretIntPts; private javax.swing.JLabel lblRightIntPts; private javax.swing.JLabel lblRotorIntPts; - private javax.swing.JLabel lblSelectVariant; private javax.swing.JLabel lblMoveSummary; private javax.swing.JLabel lblSupensionFacter; private javax.swing.JLabel lblTurretIntPts; @@ -10074,80 +9361,19 @@ private void FixJJSpinnerModel() { private javax.swing.JList lstChooseMissile; private javax.swing.JList lstChoosePhysical; private javax.swing.JList lstSelectedEquipment; - private javax.swing.JMenuItem mnuAboutSSW; - private javax.swing.JMenuItem mnuBFB; - private javax.swing.JMenuItem mnuBatchHMP; - private javax.swing.JMenu mnuClearFluff; - private javax.swing.JMenuItem mnuClearUserData; - private javax.swing.JMenuItem mnuCostBVBreakdown; - private javax.swing.JMenuItem mnuCreateTCGMech; - private javax.swing.JMenuItem mnuCredits; - private javax.swing.JMenuItem mnuExit; - private javax.swing.JMenu mnuExport; - private javax.swing.JMenuItem mnuExportClipboard; - private javax.swing.JMenuItem mnuExportHTML; - private javax.swing.JMenuItem mnuExportMTF; - private javax.swing.JMenuItem mnuExportTXT; - private javax.swing.JMenu mnuFile; - private javax.swing.JMenu mnuHelp; - private javax.swing.JMenu mnuImport; - private javax.swing.JMenuItem mnuImportHMP; - private javax.swing.JMenuItem mnuLoad; - private javax.swing.JMenuItem mnuNewMech; - private javax.swing.JMenuItem mnuOpen; - private javax.swing.JMenuItem mnuOptions; - private javax.swing.JMenu mnuPrint; - private javax.swing.JMenuItem mnuPrintPreview; - private javax.swing.JMenuItem mnuReloadEquipment; - private javax.swing.JMenuItem mnuSave; - private javax.swing.JMenuItem mnuSaveAs; - private javax.swing.JMenuItem mnuSummary; - private javax.swing.JMenuItem mnuTextTRO; private javax.swing.JMenuItem mnuUnlock; private javax.swing.JCheckBoxMenuItem mnuViewToolbar; private javax.swing.JPanel pnlAdditionalFluff; - private javax.swing.JPanel pnlAmmunition; - private javax.swing.JPanel pnlArtillery; - private javax.swing.JPanel pnlBFStats; - private javax.swing.JPanel pnlBallistic; private javax.swing.JPanel pnlBasicSetup; private javax.swing.JPanel pnlCapabilities; - private javax.swing.JPanel pnlChassis; - private javax.swing.JPanel pnlChassisMods; - private javax.swing.JPanel pnlControls; private javax.swing.JPanel pnlDeployment; - private javax.swing.JPanel pnlEnergy; - private javax.swing.JPanel pnlEquipInfo; - private javax.swing.JPanel pnlEquipmentChooser; - private javax.swing.JPanel pnlExperimental; - private javax.swing.JPanel pnlExport; - private javax.swing.JPanel pnlFluff; - private javax.swing.JPanel pnlFrontArmor; private javax.swing.JPanel pnlHistory; - private javax.swing.JPanel pnlImage; - private javax.swing.JPanel pnlInfoPane; - private javax.swing.JPanel pnlInformation; - private javax.swing.JPanel pnlLeftArmor; - private javax.swing.JPanel pnlManufacturers; - private javax.swing.JPanel pnlMissile; - private javax.swing.JPanel pnlMovement; private javax.swing.JPanel pnlNotables; - private javax.swing.JPanel pnlOmniInfo; private javax.swing.JPanel pnlOverview; - private javax.swing.JPanel pnlPhysical; - private javax.swing.JPanel pnlQuirks; - private javax.swing.JPanel pnlRearArmor; private javax.swing.JPanel pnlRearTurretArmor; - private javax.swing.JPanel pnlRightArmor; private javax.swing.JPanel pnlRotorArmor; - private javax.swing.JPanel pnlSelected; - private javax.swing.JPanel pnlSpecials; - private javax.swing.JPanel pnlSummary; private javax.swing.JPanel pnlTurretArmor; private javax.swing.JPanel pnlVariants; - private javax.swing.JPanel pnlWeaponsManufacturers; - private javax.swing.JScrollPane scpQuirkTable; - private javax.swing.JScrollPane scpWeaponManufacturers; private javax.swing.JSpinner spnCruiseMP; private javax.swing.JSpinner spnFrontArmor; private javax.swing.JSpinner spnHeatSinks; @@ -10160,11 +9386,9 @@ private void FixJJSpinnerModel() { private javax.swing.JSpinner spnTonnage; private javax.swing.JSpinner spnTurretArmor; private javax.swing.JSpinner spnTurretTonnage; - private javax.swing.JTable tblQuirks; private javax.swing.JTable tblWeaponManufacturers; - private javax.swing.JTabbedPane tbpFluffEditors; - private javax.swing.JTabbedPane tbpMainTabPane; - private javax.swing.JTabbedPane tbpWeaponChooser; + private JTabbedPane tbpMainTabPane; + private JTabbedPane tbpWeaponChooser; private javax.swing.JToolBar tlbIconBar; private javax.swing.JTextField txtArmorModel; private javax.swing.JTextField txtArmorSpace; @@ -10196,7 +9420,6 @@ private void FixJJSpinnerModel() { private javax.swing.JTextField txtSumIntAV; private javax.swing.JTextField txtSumIntTons; private javax.swing.JTextField txtSumJJAV; - private javax.swing.JTextField txtSumJJSpace; private javax.swing.JTextField txtSumJJTons; private javax.swing.JTextField txtSumLifAV; private javax.swing.JTextField txtSumLifTons; From d5db89dafb3787e6ed46279206c0cd66bb065559 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 12 Feb 2023 15:44:50 -0700 Subject: [PATCH 091/199] Add Another Hoist Added another entry for Lift Hoist called CV Lift Hoist that is only for CV and allows 4. --- Data/Equipment/equipment.json | 93 +++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/Data/Equipment/equipment.json b/Data/Equipment/equipment.json index 1eabe33b..0d709c59 100644 --- a/Data/Equipment/equipment.json +++ b/Data/Equipment/equipment.json @@ -4098,6 +4098,99 @@ "CL_ReIntroDate": 0, "RulesLevelBM": 1, "RulesLevelIM": 1, + "RulesLevelCV": -1, + "RulesLevelAF": -1, + "RulesLevelCF": -1, + "TechBase": 2, + "IS_IntroFaction": "PS", + "IS_ReIntroFaction": "--", + "IS_RandDFaction": "--", + "IS_PrototypeFaction": "--", + "CL_IntroFaction": "PS", + "CL_ReIntroFaction": "--", + "CL_RandDFaction": "--", + "CL_PrototypeFaction": "--", + "IS_WentExtinct": false, + "IS_ReIntroduced": false, + "IS_IsPrototype": false, + "CL_WentExtinct": false, + "CL_ReIntroduced": false, + "CL_IsPrototype": false, + "PBMAllowed": true, + "PIMAllowed": true, + "PrimitiveOnly": false, + "SuperHeavyCompatible": true, + "SuperHeavyOnly": false + }, + "BattleForceAbilities": [ + "-" + ] + },"CV Lift Hoist": { + "ActualName": "CV Lift Hoist", + "CritName": "Lift Hoist", + "Type": "IE", + "LookupName": "Lift Hoist", + "MegaMekName": "LiftHoist", + "BookReference": "Tech Manual", + "ChatName": "LftHst", + "Specials": "-", + "Crits": 3, + "CVSpace": 1, + "LotSize": 0, + "AmmoIndex": 0, + "ShtRange": 0, + "MedRange": 0, + "LngRange": 0, + "Heat": 0, + "MaxAllowed": 4, + "Tonnage": 3.0, + "Cost": 50000.0, + "OffBV": 0.0, + "DefBV": 0.0, + "MinTons": 0.0, + "MaxTons": 0.0, + "VariableIncrement": 0.0, + "TonsPerCrit": 0.0, + "CostPerTon": 0.0, + "HasAmmo": false, + "alloc_head": false, + "alloc_ct": false, + "alloc_torsos": true, + "alloc_arms": true, + "alloc_legs": false, + "alloc_front": true, + "alloc_sides": true, + "alloc_rear": true, + "alloc_turret": true, + "alloc_body": false, + "CanSplit": false, + "CanMountRear": true, + "Explosive": false, + "VariableSize": false, + "RequiresQuad": false, + "Availability": { + "IS_SL": "A", + "IS_SW": "A", + "IS_CI": "A", + "IS_DA": "A", + "IS_TechRating": "A", + "CL_SL": "X", + "CL_SW": "A", + "CL_CI": "A", + "CL_DA": "A", + "CL_TechRating": "A", + "IS_RandDStartDate": 0, + "IS_PrototypeDate": 0, + "IS_IntroDate": 1950, + "IS_ExtinctDate": 0, + "IS_ReIntroDate": 0, + "CL_RandDStartDate": 0, + "CL_PrototypeDate": 0, + "CL_IntroDate": 1950, + "CL_ExtinctDate": 0, + "CL_ReIntroDate": 0, + "RulesLevelBM": -1, + "RulesLevelIM": -1, "RulesLevelCV": 1, "RulesLevelAF": -1, "RulesLevelCF": -1, From 9acf3ba2a7e8aabbcbaf243171ee3f88bddc0e15 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 12 Feb 2023 21:24:08 -0700 Subject: [PATCH 092/199] Add LiftHoist item and expand the equipment to use an interface that can have methods that are accessible. --- saw/src/main/java/saw/gui/frmVee.java | 8 +- saw/src/main/java/saw/gui/frmVeeWide.java | 8 +- .../main/java/common/EquipmentFactory.java | 3 + .../src/main/java/components/Equipment.java | 2 +- .../src/main/java/components/LiftHoist.java | 202 ++++++++++++++++++ .../src/main/java/components/ifEquipment.java | 43 ++++ 6 files changed, 257 insertions(+), 9 deletions(-) create mode 100644 sswlib/src/main/java/components/LiftHoist.java create mode 100644 sswlib/src/main/java/components/ifEquipment.java diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index a8fbddcd..38098b5a 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -6363,10 +6363,10 @@ private void btnAddEquipActionPerformed(java.awt.event.ActionEvent evt) { if( a != null ) { try { CurVee.GetLoadout().CheckExclusions( a ); - if( a instanceof Equipment ) { - if ( ! ((Equipment) a).Validate( CurVee ) ) { - if( ((Equipment) a).MaxAllowed() > 0 ) { - throw new Exception( "Only " + ((Equipment) a).MaxAllowed() + " " + a.CritName() + "(s) may be mounted on one Vehicle." ); + if( a instanceof ifEquipment ) { + if ( ! ((ifEquipment) a).Validate( CurVee ) ) { + if( ((ifEquipment) a).MaxAllowed() > 0 ) { + throw new Exception( "Only " + ((ifEquipment) a).MaxAllowed() + " " + a.CritName() + "(s) may be mounted on one Vehicle." ); } } } diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 7f16b73d..6267fa8c 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -7937,10 +7937,10 @@ private void btnAddEquipActionPerformed(java.awt.event.ActionEvent evt) { if (a != null) { try { CurVee.GetLoadout().CheckExclusions(a); - if (a instanceof Equipment) { - if (!((Equipment) a).Validate(CurVee)) { - if (((Equipment) a).MaxAllowed() > 0) { - throw new Exception("Only " + ((Equipment) a).MaxAllowed() + " " + a.CritName() + "(s) may be mounted on one Vehicle."); + if (a instanceof ifEquipment) { + if (!((ifEquipment) a).Validate(CurVee)) { + if (((ifEquipment) a).MaxAllowed() > 0) { + throw new Exception("Only " + ((ifEquipment) a).MaxAllowed() + " " + a.CritName() + "(s) may be mounted on one Vehicle."); } } } diff --git a/sswlib/src/main/java/common/EquipmentFactory.java b/sswlib/src/main/java/common/EquipmentFactory.java index f777ea7f..7e2cf48b 100644 --- a/sswlib/src/main/java/common/EquipmentFactory.java +++ b/sswlib/src/main/java/common/EquipmentFactory.java @@ -122,6 +122,7 @@ public EquipmentFactory( ArrayList rweapons, ArrayList pweapons, ArrayList equip Equipment.add( new ModularArmor() ); Equipment.add( new EquipmentProtoSuccWarsDoubleHeatSink()); Equipment.add( new EquipmentProtoStarLeagueDoubleHeatSink()); + Equipment.add( new LiftHoist(m)); BuildPhysicals( m ); if (( m.GetUnitType() == AvailableCode.UNIT_BATTLEMECH ) && ( m instanceof Mech) ) { PhysicalWeapons.add( new Talons( (Mech) m ) ); @@ -141,6 +142,8 @@ public abPlaceable GetCopy( abPlaceable p, ifUnit m ) { retval = new ExtendedFuelTank( (Mech) m ); } else if( p instanceof DroneOperatingSystem ) { retval = new DroneOperatingSystem( (Mech) m ); + } else if (p instanceof LiftHoist) { + retval = new LiftHoist(m); } else if( p instanceof Equipment ) { retval = ((Equipment) p).Clone(); } else if( p instanceof ModularArmor ) { diff --git a/sswlib/src/main/java/components/Equipment.java b/sswlib/src/main/java/components/Equipment.java index a8bdacad..c8949e4e 100644 --- a/sswlib/src/main/java/components/Equipment.java +++ b/sswlib/src/main/java/components/Equipment.java @@ -32,7 +32,7 @@ import java.util.ArrayList; -public class Equipment extends abPlaceable { +public class Equipment extends abPlaceable implements ifEquipment { private String ActualName, CritName, Type, diff --git a/sswlib/src/main/java/components/LiftHoist.java b/sswlib/src/main/java/components/LiftHoist.java new file mode 100644 index 00000000..9a0bcfd4 --- /dev/null +++ b/sswlib/src/main/java/components/LiftHoist.java @@ -0,0 +1,202 @@ +/* +Copyright (c) 2008~2009, Justin R. Bengtson (poopshotgun@yahoo.com) +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Justin R. Bengtson nor the names of contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +package components; + +import java.util.ArrayList; + +/** + * + * @author gblouin + */ +public class LiftHoist extends abPlaceable implements ifEquipment { + private ifUnit Owner; + private final static AvailableCode AC = new AvailableCode( AvailableCode.TECH_BOTH ); + public LiftHoist(ifUnit l) + { + AC.SetISCodes( 'A', 'A', 'A', 'A', 'A' ); + AC.SetISDates( 0, 0, false, 1950, 0, 0, false, false ); + AC.SetISFactions( "", "", "", "" ); + AC.SetCLCodes( 'A', 'X', 'A', 'A', 'A' ); + AC.SetCLDates( 0, 0, false, 1950, 0, 0, false, false ); + AC.SetCLFactions( "", "", "", "" ); + AC.SetPBMAllowed( true ); + AC.SetPIMAllowed( true ); + AC.SetPrimitiveOnly(false); + AC.SetSuperHeavyCompatible(true); + AC.SetSuperHeavyOnly(false); + AC.SetRulesLevels( AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED ); + Owner = l; + } + + public String ActualName() { + return "Lift Hoist"; + } + + public String CritName() { + return "Lift Hoist"; + } + + @Override + public boolean IsVariableSize() { + return false; + } + + @Override + public boolean HasAmmo() { + return false; + } + + @Override + public int GetAmmoIndex() { + return 0; + } + + public String LookupName() { + return CritName(); + } + + public String ChatName() { + return "LftHst"; + } + + public String MegaMekName( boolean UseRear ) { + return CritName(); + } + + public String BookReference() { + return "Tech Manual"; + } + + @Override + public int NumCrits() { + return 3; + } + + public int NumCVSpaces() { + return 1; + } + + @Override + public double GetTonnage() { + return 3.0; + } + + @Override + public double GetCost() { + return 5000; + } + + public double GetOffensiveBV() { + return 0.0; + } + + @Override + public double GetCurOffensiveBV(boolean UseRear, boolean UseTC, boolean UseAES) { + return 0; + } + + @Override + public double GetCurOffensiveBV(boolean UseRear, boolean UseTC, boolean UseAES, boolean UseRobotic) { + return 0.0; + } + + public double GetDefensiveBV() { + return 0.0; + } + + @Override + public AvailableCode GetAvailability() { + AvailableCode retval = AC.Clone(); + return retval; + } + + @Override + public boolean CoreComponent() { + return true; + } + + @Override + public String toString() { + return CritName(); + } + + @Override + public int MaxAllowed() { + if (Owner instanceof CombatVehicle) { + return 4; + } + return 2; + } + + @Override + public void Validate(Mech m) throws Exception { + if( MaxAllowed() > 0 ) { + ArrayList currentEquipment = m.GetLoadout().GetEquipment(); + for (int i = 0, c = 0; i < currentEquipment.size(); ++i) { + abPlaceable currentItem = (abPlaceable) currentEquipment.get(i); + if (currentItem.LookupName().equals(LookupName())) { + ++c; + if (c == MaxAllowed()) { + throw new Exception("Only " + MaxAllowed() + " " + CritName() + "(s) may be mounted on one 'Mech."); + } + } + } + } + } + + @Override + public boolean Validate(CombatVehicle v) { + if( MaxAllowed() > 0 ) { + ArrayList currentEquipment = v.GetLoadout().GetEquipment(); + for( int i = 0, c = 0; i < currentEquipment.size(); ++i ) { + abPlaceable currentItem = (abPlaceable) currentEquipment.get( i ); + if( currentItem.LookupName().equals( LookupName() ) ) { + ++c; + if( c == MaxAllowed() ) { + return false; + } + } + } + return true; + } else { + return true; + } + } + + @Override + public boolean CanAllocCVBody() { + if (Owner instanceof CombatVehicle){ + if (((CombatVehicle) Owner).IsVTOL()) { + return true; + } + } + return false; + } + +} diff --git a/sswlib/src/main/java/components/ifEquipment.java b/sswlib/src/main/java/components/ifEquipment.java new file mode 100644 index 00000000..d9df690a --- /dev/null +++ b/sswlib/src/main/java/components/ifEquipment.java @@ -0,0 +1,43 @@ +/* +Copyright (c) 2008~2009, Justin R. Bengtson (poopshotgun@yahoo.com) +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Justin R. Bengtson nor the names of contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +package components; + +public interface ifEquipment { + // an abstract class for weapons of all types. This provides a basic + // functionality for most weapon types and can be overriden if needed. + public String LookupName(); + public String CritName(); + public boolean IsVariableSize(); + public boolean HasAmmo(); + public int GetAmmoIndex(); + public int MaxAllowed(); + + public void Validate( Mech m ) throws Exception; + public boolean Validate( CombatVehicle v ); +} From 65a19e05ba7922030d3fb6ec0875ec8e7648fafb Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Mon, 13 Feb 2023 11:52:40 -0700 Subject: [PATCH 093/199] Add Body Check And remove the CV Lift Hoist from equipment as we are not using the class instead. --- Data/Equipment/equipment.json | 93 ------------------- .../src/main/java/components/LiftHoist.java | 24 ++--- .../src/main/java/components/ifEquipment.java | 6 +- 3 files changed, 16 insertions(+), 107 deletions(-) diff --git a/Data/Equipment/equipment.json b/Data/Equipment/equipment.json index 0d709c59..8f69ba49 100644 --- a/Data/Equipment/equipment.json +++ b/Data/Equipment/equipment.json @@ -4125,99 +4125,6 @@ "BattleForceAbilities": [ "-" ] - },"CV Lift Hoist": { - "ActualName": "CV Lift Hoist", - "CritName": "Lift Hoist", - "Type": "IE", - "LookupName": "Lift Hoist", - "MegaMekName": "LiftHoist", - "BookReference": "Tech Manual", - "ChatName": "LftHst", - "Specials": "-", - "Crits": 3, - "CVSpace": 1, - "LotSize": 0, - "AmmoIndex": 0, - "ShtRange": 0, - "MedRange": 0, - "LngRange": 0, - "Heat": 0, - "MaxAllowed": 4, - "Tonnage": 3.0, - "Cost": 50000.0, - "OffBV": 0.0, - "DefBV": 0.0, - "MinTons": 0.0, - "MaxTons": 0.0, - "VariableIncrement": 0.0, - "TonsPerCrit": 0.0, - "CostPerTon": 0.0, - "HasAmmo": false, - "alloc_head": false, - "alloc_ct": false, - "alloc_torsos": true, - "alloc_arms": true, - "alloc_legs": false, - "alloc_front": true, - "alloc_sides": true, - "alloc_rear": true, - "alloc_turret": true, - "alloc_body": false, - "CanSplit": false, - "CanMountRear": true, - "Explosive": false, - "VariableSize": false, - "RequiresQuad": false, - "Availability": { - "IS_SL": "A", - "IS_SW": "A", - "IS_CI": "A", - "IS_DA": "A", - "IS_TechRating": "A", - "CL_SL": "X", - "CL_SW": "A", - "CL_CI": "A", - "CL_DA": "A", - "CL_TechRating": "A", - "IS_RandDStartDate": 0, - "IS_PrototypeDate": 0, - "IS_IntroDate": 1950, - "IS_ExtinctDate": 0, - "IS_ReIntroDate": 0, - "CL_RandDStartDate": 0, - "CL_PrototypeDate": 0, - "CL_IntroDate": 1950, - "CL_ExtinctDate": 0, - "CL_ReIntroDate": 0, - "RulesLevelBM": -1, - "RulesLevelIM": -1, - "RulesLevelCV": 1, - "RulesLevelAF": -1, - "RulesLevelCF": -1, - "TechBase": 2, - "IS_IntroFaction": "PS", - "IS_ReIntroFaction": "--", - "IS_RandDFaction": "--", - "IS_PrototypeFaction": "--", - "CL_IntroFaction": "PS", - "CL_ReIntroFaction": "--", - "CL_RandDFaction": "--", - "CL_PrototypeFaction": "--", - "IS_WentExtinct": false, - "IS_ReIntroduced": false, - "IS_IsPrototype": false, - "CL_WentExtinct": false, - "CL_ReIntroduced": false, - "CL_IsPrototype": false, - "PBMAllowed": true, - "PIMAllowed": true, - "PrimitiveOnly": false, - "SuperHeavyCompatible": true, - "SuperHeavyOnly": false - }, - "BattleForceAbilities": [ - "-" - ] }, "Nail Gun": { "ActualName": "Nail Gun", diff --git a/sswlib/src/main/java/components/LiftHoist.java b/sswlib/src/main/java/components/LiftHoist.java index 9a0bcfd4..4f2ae16a 100644 --- a/sswlib/src/main/java/components/LiftHoist.java +++ b/sswlib/src/main/java/components/LiftHoist.java @@ -172,21 +172,21 @@ public void Validate(Mech m) throws Exception { @Override public boolean Validate(CombatVehicle v) { - if( MaxAllowed() > 0 ) { - ArrayList currentEquipment = v.GetLoadout().GetEquipment(); - for( int i = 0, c = 0; i < currentEquipment.size(); ++i ) { - abPlaceable currentItem = (abPlaceable) currentEquipment.get( i ); - if( currentItem.LookupName().equals( LookupName() ) ) { - ++c; - if( c == MaxAllowed() ) { - return false; - } + if (MaxAllowed() == 0) { + return true; + } + + int count = 0; + for(Object item : v.GetLoadout().GetEquipment()) { + abPlaceable currentItem = (abPlaceable) item; + if( currentItem.LookupName().equals( LookupName() ) ) { + ++count; + if( count == MaxAllowed() ) { + return false; } } - return true; - } else { - return true; } + return true; } @Override diff --git a/sswlib/src/main/java/components/ifEquipment.java b/sswlib/src/main/java/components/ifEquipment.java index d9df690a..f52af301 100644 --- a/sswlib/src/main/java/components/ifEquipment.java +++ b/sswlib/src/main/java/components/ifEquipment.java @@ -29,8 +29,8 @@ package components; public interface ifEquipment { - // an abstract class for weapons of all types. This provides a basic - // functionality for most weapon types and can be overriden if needed. + // an abstract class for equipment of all types. This provides a basic + // functionality for most equipment types and can be overridden if needed. public String LookupName(); public String CritName(); public boolean IsVariableSize(); @@ -40,4 +40,6 @@ public interface ifEquipment { public void Validate( Mech m ) throws Exception; public boolean Validate( CombatVehicle v ); + + public boolean CanAllocCVBody(); } From 27bc17a806b9b6a0bd3185cfe81d7d174b9b524d Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Mon, 13 Feb 2023 12:42:57 -0700 Subject: [PATCH 094/199] SSW Handles Hoist Too --- ssw/src/main/java/ssw/gui/frmMain.java | 4 ++-- ssw/src/main/java/ssw/gui/frmMainWide.java | 4 ++-- .../src/main/java/components/LiftHoist.java | 22 ++++++++++--------- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/ssw/src/main/java/ssw/gui/frmMain.java b/ssw/src/main/java/ssw/gui/frmMain.java index 2913876e..55df1b68 100644 --- a/ssw/src/main/java/ssw/gui/frmMain.java +++ b/ssw/src/main/java/ssw/gui/frmMain.java @@ -12311,8 +12311,8 @@ private void btnAddEquipActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F if( a != null ) { try { CurMech.GetLoadout().CheckExclusions( a ); - if( a instanceof Equipment ) { - ((Equipment)a).Validate( CurMech ); + if( a instanceof ifEquipment ) { + ((ifEquipment)a).Validate( CurMech ); } } catch( Exception e ) { Media.Messager( e.getMessage() ); diff --git a/ssw/src/main/java/ssw/gui/frmMainWide.java b/ssw/src/main/java/ssw/gui/frmMainWide.java index ed75be3a..49cb1512 100644 --- a/ssw/src/main/java/ssw/gui/frmMainWide.java +++ b/ssw/src/main/java/ssw/gui/frmMainWide.java @@ -12267,8 +12267,8 @@ private void btnAddEquipActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F if( a != null ) { try { CurMech.GetLoadout().CheckExclusions( a ); - if( a instanceof Equipment ) { - ((Equipment) a).Validate(CurMech); + if( a instanceof ifEquipment ) { + ((ifEquipment) a).Validate(CurMech); } } catch( Exception e ) { Media.Messager( e.getMessage() ); diff --git a/sswlib/src/main/java/components/LiftHoist.java b/sswlib/src/main/java/components/LiftHoist.java index 4f2ae16a..448f0c26 100644 --- a/sswlib/src/main/java/components/LiftHoist.java +++ b/sswlib/src/main/java/components/LiftHoist.java @@ -138,7 +138,7 @@ public AvailableCode GetAvailability() { @Override public boolean CoreComponent() { - return true; + return false; } @Override @@ -156,15 +156,17 @@ public int MaxAllowed() { @Override public void Validate(Mech m) throws Exception { - if( MaxAllowed() > 0 ) { - ArrayList currentEquipment = m.GetLoadout().GetEquipment(); - for (int i = 0, c = 0; i < currentEquipment.size(); ++i) { - abPlaceable currentItem = (abPlaceable) currentEquipment.get(i); - if (currentItem.LookupName().equals(LookupName())) { - ++c; - if (c == MaxAllowed()) { - throw new Exception("Only " + MaxAllowed() + " " + CritName() + "(s) may be mounted on one 'Mech."); - } + if (MaxAllowed() == 0) { + return; + } + + int count = 0; + for (Object item : m.GetLoadout().GetEquipment()) { + abPlaceable currentItem = (abPlaceable) item; + if (currentItem.LookupName().equals(LookupName())) { + ++count; + if (count == MaxAllowed()) { + throw new Exception("Only " + MaxAllowed() + " " + CritName() + "(s) may be mounted on one 'Mech."); } } } From 0e40834feb2073f83dabedf59c214605b462449e Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Mon, 13 Feb 2023 12:43:09 -0700 Subject: [PATCH 095/199] Remove Hoist From the json as we are now handling it in code. --- Data/Equipment/equipment.json | 94 ----------------------------------- 1 file changed, 94 deletions(-) diff --git a/Data/Equipment/equipment.json b/Data/Equipment/equipment.json index 8f69ba49..27681625 100644 --- a/Data/Equipment/equipment.json +++ b/Data/Equipment/equipment.json @@ -4032,100 +4032,6 @@ "-" ] }, - "Lift Hoist": { - "ActualName": "Lift Hoist", - "CritName": "Lift Hoist", - "Type": "IE", - "LookupName": "Lift Hoist", - "MegaMekName": "LiftHoist", - "BookReference": "Tech Manual", - "ChatName": "LftHst", - "Specials": "-", - "Crits": 3, - "CVSpace": 1, - "LotSize": 0, - "AmmoIndex": 0, - "ShtRange": 0, - "MedRange": 0, - "LngRange": 0, - "Heat": 0, - "MaxAllowed": 2, - "Tonnage": 3.0, - "Cost": 50000.0, - "OffBV": 0.0, - "DefBV": 0.0, - "MinTons": 0.0, - "MaxTons": 0.0, - "VariableIncrement": 0.0, - "TonsPerCrit": 0.0, - "CostPerTon": 0.0, - "HasAmmo": false, - "alloc_head": false, - "alloc_ct": false, - "alloc_torsos": true, - "alloc_arms": true, - "alloc_legs": false, - "alloc_front": true, - "alloc_sides": true, - "alloc_rear": true, - "alloc_turret": true, - "alloc_body": false, - "CanSplit": false, - "CanMountRear": true, - "Explosive": false, - "VariableSize": false, - "RequiresQuad": false, - "Availability": { - "IS_SL": "A", - "IS_SW": "A", - "IS_CI": "A", - "IS_DA": "A", - "IS_TechRating": "A", - "CL_SL": "X", - "CL_SW": "A", - "CL_CI": "A", - "CL_DA": "A", - "CL_TechRating": "A", - "IS_RandDStartDate": 0, - "IS_PrototypeDate": 0, - "IS_IntroDate": 1950, - "IS_ExtinctDate": 0, - "IS_ReIntroDate": 0, - "CL_RandDStartDate": 0, - "CL_PrototypeDate": 0, - "CL_IntroDate": 1950, - "CL_ExtinctDate": 0, - "CL_ReIntroDate": 0, - "RulesLevelBM": 1, - "RulesLevelIM": 1, - "RulesLevelCV": -1, - "RulesLevelAF": -1, - "RulesLevelCF": -1, - "TechBase": 2, - "IS_IntroFaction": "PS", - "IS_ReIntroFaction": "--", - "IS_RandDFaction": "--", - "IS_PrototypeFaction": "--", - "CL_IntroFaction": "PS", - "CL_ReIntroFaction": "--", - "CL_RandDFaction": "--", - "CL_PrototypeFaction": "--", - "IS_WentExtinct": false, - "IS_ReIntroduced": false, - "IS_IsPrototype": false, - "CL_WentExtinct": false, - "CL_ReIntroduced": false, - "CL_IsPrototype": false, - "PBMAllowed": true, - "PIMAllowed": true, - "PrimitiveOnly": false, - "SuperHeavyCompatible": true, - "SuperHeavyOnly": false - }, - "BattleForceAbilities": [ - "-" - ] - }, "Nail Gun": { "ActualName": "Nail Gun", "CritName": "Nail Gun", From e2f23299deaeb870882a7c4b0eedcb9539556e00 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Wed, 15 Feb 2023 20:43:01 -0700 Subject: [PATCH 096/199] Fix Loading --- sswlib/src/main/java/components/LiftHoist.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sswlib/src/main/java/components/LiftHoist.java b/sswlib/src/main/java/components/LiftHoist.java index 448f0c26..01b11bda 100644 --- a/sswlib/src/main/java/components/LiftHoist.java +++ b/sswlib/src/main/java/components/LiftHoist.java @@ -34,7 +34,7 @@ * * @author gblouin */ -public class LiftHoist extends abPlaceable implements ifEquipment { +public class LiftHoist extends Equipment implements ifEquipment { private ifUnit Owner; private final static AvailableCode AC = new AvailableCode( AvailableCode.TECH_BOTH ); public LiftHoist(ifUnit l) From 9f2104b16d40dd1040901300a1357cac37f4487d Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Thu, 16 Feb 2023 21:25:01 -0700 Subject: [PATCH 097/199] Set Mountable Rear --- sswlib/src/main/java/components/LiftHoist.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sswlib/src/main/java/components/LiftHoist.java b/sswlib/src/main/java/components/LiftHoist.java index 01b11bda..78d25ee4 100644 --- a/sswlib/src/main/java/components/LiftHoist.java +++ b/sswlib/src/main/java/components/LiftHoist.java @@ -52,6 +52,8 @@ public LiftHoist(ifUnit l) AC.SetSuperHeavyOnly(false); AC.SetRulesLevels( AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_TOURNAMENT, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED ); Owner = l; + + SetMountableRear(true); } public String ActualName() { @@ -201,4 +203,9 @@ public boolean CanAllocCVBody() { return false; } + @Override + public String GetEquipmentType() { + return "equipment"; + } + } From e1a75c131b13d0e796af00a13ea928d3ca67c49b Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Thu, 16 Feb 2023 21:43:10 -0700 Subject: [PATCH 098/199] Allow classes to set the equipment type. --- sswlib/src/main/java/components/Equipment.java | 4 ++++ sswlib/src/main/java/components/ifEquipment.java | 1 + 2 files changed, 5 insertions(+) diff --git a/sswlib/src/main/java/components/Equipment.java b/sswlib/src/main/java/components/Equipment.java index c8949e4e..6be5e1c1 100644 --- a/sswlib/src/main/java/components/Equipment.java +++ b/sswlib/src/main/java/components/Equipment.java @@ -590,6 +590,10 @@ public AvailableCode GetAvailability() { return retval; } + @Override + public String GetEquipmentType() { + return "equipment"; + } @Override public String toString() { return CritName(); diff --git a/sswlib/src/main/java/components/ifEquipment.java b/sswlib/src/main/java/components/ifEquipment.java index f52af301..72874f10 100644 --- a/sswlib/src/main/java/components/ifEquipment.java +++ b/sswlib/src/main/java/components/ifEquipment.java @@ -42,4 +42,5 @@ public interface ifEquipment { public boolean Validate( CombatVehicle v ); public boolean CanAllocCVBody(); + public String GetEquipmentType(); } From fef6d7aa36c39e113af5df24360e79faa993297f Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Fri, 17 Feb 2023 14:59:42 -0700 Subject: [PATCH 099/199] Add Rear Handling --- .../src/main/java/components/LiftHoist.java | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/sswlib/src/main/java/components/LiftHoist.java b/sswlib/src/main/java/components/LiftHoist.java index 78d25ee4..d33a8601 100644 --- a/sswlib/src/main/java/components/LiftHoist.java +++ b/sswlib/src/main/java/components/LiftHoist.java @@ -28,14 +28,13 @@ package components; -import java.util.ArrayList; - /** * * @author gblouin */ public class LiftHoist extends Equipment implements ifEquipment { - private ifUnit Owner; + private final ifUnit Owner; + private transient boolean Rear = false; private final static AvailableCode AC = new AvailableCode( AvailableCode.TECH_BOTH ); public LiftHoist(ifUnit l) { @@ -56,12 +55,16 @@ public LiftHoist(ifUnit l) SetMountableRear(true); } + public String RearName() { + return Rear ? "(R) " : ""; + } + public String ActualName() { return "Lift Hoist"; } public String CritName() { - return "Lift Hoist"; + return RearName() + "Lift Hoist"; } @Override @@ -134,8 +137,7 @@ public double GetDefensiveBV() { @Override public AvailableCode GetAvailability() { - AvailableCode retval = AC.Clone(); - return retval; + return AC.Clone(); } @Override @@ -196,9 +198,7 @@ public boolean Validate(CombatVehicle v) { @Override public boolean CanAllocCVBody() { if (Owner instanceof CombatVehicle){ - if (((CombatVehicle) Owner).IsVTOL()) { - return true; - } + return ((CombatVehicle) Owner).IsVTOL(); } return false; } @@ -208,4 +208,12 @@ public String GetEquipmentType() { return "equipment"; } + @Override + public void MountRear( boolean rear ) { + Rear = rear; + } + @Override + public boolean IsMountedRear() { + return Rear; + } } From 4a43c04854fb404fc4651c1b2ee12ea3502663c3 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Fri, 17 Feb 2023 15:21:19 -0700 Subject: [PATCH 100/199] Re Add the Variable --- saw/src/main/java/saw/gui/frmVeeWide.java | 1 + 1 file changed, 1 insertion(+) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 42927645..d5cafe94 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -8880,6 +8880,7 @@ private void FixJJSpinnerModel() { private javax.swing.JSpinner spnTonnage; private javax.swing.JSpinner spnTurretArmor; private javax.swing.JSpinner spnTurretTonnage; + private javax.swing.JTable tblQuirks; private javax.swing.JTable tblWeaponManufacturers; private javax.swing.JTabbedPane tbpMainTabPane; private javax.swing.JTabbedPane tbpWeaponChooser; From b4aef13578b7f345e087d7690c740d4185962e1b Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 19 Feb 2023 15:59:38 -0700 Subject: [PATCH 101/199] Check for the array size before trying to grab an object out of it. --- saw/src/main/java/saw/gui/frmVee.java | 3 +++ saw/src/main/java/saw/gui/frmVeeWide.java | 3 +++ 2 files changed, 6 insertions(+) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 38098b5a..695dbb15 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -6986,6 +6986,9 @@ public String getColumnName( int col ) { public int getRowCount() { return CurVee.GetLoadout().GetEquipment().size(); } public int getColumnCount() { return 2; } public Object getValueAt( int row, int col ) { + if (CurVee.GetLoadout().GetEquipment().size() < row) { + return null; + } Object o = CurVee.GetLoadout().GetEquipment().get( row ); if( col == 1 ) { return ((abPlaceable) o).GetManufacturer(); diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 6267fa8c..a6d9e710 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -6276,6 +6276,9 @@ public String getColumnName( int col ) { public int getRowCount() { return CurVee.GetLoadout().GetEquipment().size(); } public int getColumnCount() { return 2; } public Object getValueAt( int row, int col ) { + if (CurVee.GetLoadout().GetEquipment().size() < row) { + return null; + } Object o = CurVee.GetLoadout().GetEquipment().get( row ); if( col == 1 ) { return ((abPlaceable) o).GetManufacturer(); From 6b08a64539fd95bee213b4d4962b589c1f25d374 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 19 Feb 2023 16:30:18 -0700 Subject: [PATCH 102/199] Check for the array size before trying to grab an object out of it. --- saw/src/main/java/saw/gui/frmVee.java | 5 ++--- saw/src/main/java/saw/gui/frmVeeWide.java | 1 + 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 6716bbe8..cded440f 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -6474,9 +6474,8 @@ public String getColumnName( int col ) { public int getRowCount() { return CurVee.GetLoadout().GetEquipment().size(); } public int getColumnCount() { return 2; } public Object getValueAt( int row, int col ) { - if (CurVee.GetLoadout().GetEquipment().size() < row) { - return null; - } + if (CurVee.GetLoadout().GetEquipment().isEmpty()) { return null; } + if (CurVee.GetLoadout().GetEquipment().size() <= row) { return null; } Object o = CurVee.GetLoadout().GetEquipment().get( row ); if( col == 1 ) { return ((abPlaceable) o).GetManufacturer(); diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index d39bced8..7fb6ef58 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -5308,6 +5308,7 @@ public String getColumnName( int col ) { public int getColumnCount() { return 2; } public Object getValueAt( int row, int col ) { if (CurVee.GetLoadout().GetEquipment().isEmpty()) { return null; } + if (CurVee.GetLoadout().GetEquipment().size() <= row) { return null; } Object o = CurVee.GetLoadout().GetEquipment().get( row ); if( col == 1 ) { return ((abPlaceable) o).GetManufacturer(); From d386813c0b79af0e28be994aa4e1f21e35f62256 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 19 Feb 2023 17:40:24 -0700 Subject: [PATCH 103/199] Remove the extra lines. --- saw/src/main/java/saw/gui/frmVeeWide.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 7fb6ef58..44738e86 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -5304,7 +5304,7 @@ public String getColumnName( int col ) { return "Item Name"; } } - public int getRowCount() { return CurVee.GetLoadout().GetEquipment().size() + 5; } + public int getRowCount() { return CurVee.GetLoadout().GetEquipment().size(); } public int getColumnCount() { return 2; } public Object getValueAt( int row, int col ) { if (CurVee.GetLoadout().GetEquipment().isEmpty()) { return null; } From 30fbf3faebdf6bb85cac6e27b145c44c5da2f992 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Wed, 22 Feb 2023 21:56:05 -0700 Subject: [PATCH 104/199] Fix Quirk Table --- saw/src/main/java/saw/gui/frmVeeWide.java | 141 +++++++++------------- 1 file changed, 58 insertions(+), 83 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index d5cafe94..0214c0ae 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -139,7 +139,7 @@ public void focusGained(FocusEvent e) { } } }; - + /** Creates new form frmMain2 */ public frmVeeWide() { CurVee = new CombatVehicle( ); @@ -195,7 +195,7 @@ public frmVeeWide() { System.err.println( e.getMessage() ); e.printStackTrace(); } - + Overview.SetEditorSize( 310, 380 ); Capabilities.SetEditorSize( 310, 380 ); Deployment.SetEditorSize( 310, 380 ); @@ -213,7 +213,7 @@ public frmVeeWide() { quirks = CurVee.GetQuirks(); pack(); - + mnuDetails.addActionListener(evt -> { GetInfoOn(); ShowInfoOn(CurItem); @@ -270,7 +270,7 @@ public frmVeeWide() { mnuCaseless.setVisible( false ); mnuVGLArc.setVisible( false ); mnuVGLAmmo.setVisible( false ); - + // set the program options cmbRulesLevel.setSelectedItem( Prefs.get( "NewCV_RulesLevel", "Tournament Legal" ) ); cmbEra.setSelectedItem( Prefs.get( "NewCV_Era", "Age of War/Star League" ) ); @@ -308,8 +308,8 @@ public frmVeeWide() { mnuFluff.add( mnuFluffCut ); mnuFluff.add( mnuFluffCopy ); mnuFluff.add( mnuFluffPaste ); - - + + tblWeaponManufacturers.setModel( new javax.swing.table.AbstractTableModel() { @Override public String getColumnName( int col ) { @@ -352,7 +352,7 @@ public void setValueAt( Object value, int row, int col ) { } } } ); - + tblWeaponManufacturers.getInputMap( javax.swing.JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put( javax.swing.KeyStroke.getKeyStroke( java.awt.event.KeyEvent.VK_TAB, 0, false ), "selectNextRow" ); if( Prefs.getBoolean( "LoadLastMech", false ) ) { LoadVehicleFromFile(Prefs.get("LastOpenCVDirectory", "") + Prefs.get("LastOpenCVFile", "") ); } @@ -372,7 +372,7 @@ private void GetInfoOn() { ItemInfo.setVisible( true ); } } - + private void SetAmmoLotSize() { if( CurItem instanceof Ammunition ) { dlgAmmoLotSize ammo = new dlgAmmoLotSize( this, true, (Ammunition) CurItem ); @@ -382,7 +382,7 @@ private void SetAmmoLotSize() { RefreshSummary(); RefreshInfoPane(); } - + private void PPCCapacitor() { // if the current item can support a capacitor, adds one on if( CurItem instanceof RangedWeapon ) { @@ -445,7 +445,7 @@ private void LaserInsulator() { RefreshInfoPane(); RefreshSelectedEquipment(); } - + private void PulseModule() { // if the current item can support a Pulse Module, adds one on if( CurItem instanceof RangedWeapon ) { @@ -480,7 +480,7 @@ private void PulseModule() { private void DumperMount() { if ( CurItem instanceof Equipment ) { - + } } @@ -609,7 +609,7 @@ public void SetVariableSize() { } } } - + private void setViewToolbar(boolean Visible) { tlbIconBar.setVisible(Visible); Prefs.putBoolean("ViewToolbar", Visible); @@ -755,7 +755,7 @@ public void RefreshInfoPane() { txtInfoTonnage.setForeground( Color.BLACK ); txtInfoFreeTons.setForeground( Color.BLACK ); } - + if ( CurVee.GetAvailableSlots() < 0 ) { txtInfoFreeCrits.setForeground(Color.red); } else { @@ -772,7 +772,7 @@ public void RefreshInfoPane() { } txtInfoBattleValue.setText( "BV: " + String.format( "%1$,d", CurVee.GetCurrentBV() ) ); txtInfoCost.setText( "Cost: " + String.format( "%1$,.0f", Math.floor( CurVee.GetTotalCost() + 0.5f ) ) ); - + javax.swing.table.AbstractTableModel m = (javax.swing.table.AbstractTableModel) tblWeaponManufacturers.getModel(); m.fireTableDataChanged(); } @@ -911,6 +911,7 @@ private void ResetAmmo() { private void initComponents() { GridBagConstraints gridBagConstraints; + tblQuirks = new JTable(); JPanel pnlInfoPane = new JPanel(); txtInfoTonnage = new javax.swing.JTextField(); txtInfoFreeTons = new javax.swing.JTextField(); @@ -1237,7 +1238,6 @@ private void initComponents() { JPanel pnlQuirks = new JPanel(); JLabel lblBattleMechQuirks = new JLabel(); JScrollPane scpQuirkTable = new JScrollPane(); - JTable tblQuirks = new JTable(); JButton btnAddQuirk = new JButton(); JPanel pnlBFStats = new JPanel(); JLabel jLabel70 = new JLabel(); @@ -3754,32 +3754,7 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { lblBattleMechQuirks.setFont(new java.awt.Font("Arial", Font.BOLD, 12)); // NOI18N lblBattleMechQuirks.setText("Quirks"); - tblQuirks.setModel(new javax.swing.table.DefaultTableModel( - new Object [][] { - {null, null}, - {null, null}, - {null, null}, - {null, null} - }, - new String [] { - "Quirk", "Cost" - } - ) { - Class[] types = new Class [] { - java.lang.String.class, java.lang.Integer.class - }; - boolean[] canEdit = new boolean [] { - false, false - }; - - public Class getColumnClass(int columnIndex) { - return types [columnIndex]; - } - - public boolean isCellEditable(int rowIndex, int columnIndex) { - return canEdit [columnIndex]; - } - }); + tblQuirks.setModel(new tbQuirks(new ArrayList<Quirk>())); tblQuirks.setColumnSelectionAllowed(true); tblQuirks.getTableHeader().setReorderingAllowed(false); scpQuirkTable.setViewportView(tblQuirks); @@ -4256,7 +4231,7 @@ private void RefreshSummary() { private void RecalcArmorPlacement() { if ( Load ) return; - + double tonnage = CurVee.GetArmor().GetTonnage(); ArmorTons.SetArmorTonnage( tonnage ); try { @@ -4273,10 +4248,10 @@ private void RecalcArmorPlacement() { RefreshSummary(); RefreshInfoPane(); } - + private void RecalcArmorLocations() { pnlRotorArmor.setVisible(false); - + if ( cmbTurret.getSelectedItem().toString().equals("No Turret") ) { spnTurretArmor.setValue(0); spnRearTurretArmor.setValue(0); @@ -4290,7 +4265,7 @@ private void RecalcArmorLocations() { pnlTurretArmor.setVisible(true); pnlRearTurretArmor.setVisible(true); } - if ( CurVee.IsVTOL() ) + if ( CurVee.IsVTOL() ) pnlRotorArmor.setVisible(true); else spnRotorArmor.setValue(0); @@ -4351,7 +4326,7 @@ private void SolidifyVehicle() { private void BuildLocationSelector() { int curSelection = Math.max(cmbLocation.getSelectedIndex(), 0); - + ArrayList locs = new ArrayList(); locs.add("Front"); locs.add("Left"); @@ -4364,13 +4339,13 @@ private void BuildLocationSelector() { locs.add("Body"); if ( CurVee.isHasTurret1() ) locs.add("Turret"); - if ( CurVee.isHasTurret2() ) + if ( CurVee.isHasTurret2() ) locs.add("Rear Turret"); - + cmbLocation.setModel(new DefaultComboBoxModel(locs.toArray())); cmbLocation.setSelectedIndex(curSelection); } - + private void BuildArmorSelector() { // builds the armor selection box ArrayList list = new ArrayList(); @@ -4392,7 +4367,7 @@ private void BuildArmorSelector() { // now set the armor chooser cmbArmorType.setModel( new javax.swing.DefaultComboBoxModel( temp ) ); - + cmbArmorType.setSelectedItem(CurVee.GetArmor().ActualName()); } @@ -4446,7 +4421,7 @@ private void FixArmorSpinners() { // fixes the armor spinners to match the new tonnage / motive type CVArmor a = CurVee.GetArmor(); a.SetMaxArmor(CurVee.GetArmorableLocationCount()); - + spnFrontArmor.setModel( new javax.swing.SpinnerNumberModel( a.GetLocationArmor( LocationIndex.CV_LOC_FRONT ), 0, a.GetLocationMax(LocationIndex.CV_LOC_FRONT), 1) ); spnLeftArmor.setModel( new javax.swing.SpinnerNumberModel( a.GetLocationArmor( LocationIndex.CV_LOC_LEFT ), 0, a.GetLocationMax(LocationIndex.CV_LOC_LEFT), 1) ); spnRightArmor.setModel( new javax.swing.SpinnerNumberModel( a.GetLocationArmor( LocationIndex.CV_LOC_RIGHT ), 0, a.GetLocationMax(LocationIndex.CV_LOC_RIGHT), 1) ); @@ -4460,7 +4435,7 @@ private void FixArmorSpinners() { ((JSpinner.DefaultEditor)spnCruiseMP.getEditor()).getTextField().addFocusListener(spinners); ((JSpinner.DefaultEditor)spnJumpMP.getEditor()).getTextField().addFocusListener(spinners); ((JSpinner.DefaultEditor)spnHeatSinks.getEditor()).getTextField().addFocusListener(spinners); - + //Setup Spinner focus ((JSpinner.DefaultEditor)spnFrontArmor.getEditor()).getTextField().addFocusListener(spinners); ((JSpinner.DefaultEditor)spnLeftArmor.getEditor()).getTextField().addFocusListener(spinners); @@ -4490,10 +4465,10 @@ public String BuildLookupName( ifState s ) { public void FixTonnageSpinner( int MinTonnage, int MaximumTonnage ) { int CurVal = Integer.parseInt(spnTonnage.getValue().toString()); - + if ( CurVal < MinTonnage ) CurVal = MinTonnage; - + if ( CurVal > MaximumTonnage ) CurVal = MaximumTonnage; @@ -4506,7 +4481,7 @@ public void CheckTonnage( boolean RulesChange ) { if( CurVee.GetTonnage() < 1 ) { spnTonnage.setValue(1); } - + if ( CurVee.GetTonnage() > CurVee.GetMaxTonnage() ) { spnTonnage.setValue(CurVee.GetMaxTonnage()); } @@ -4607,7 +4582,7 @@ private void BuildChassisSelector() { chkEnviroSealing.setEnabled(false); } } - + private void BuildExpEquipmentSelector() { JCheckBox[] ExpEquipmentCheckboxes = { chkArmoredMotive, chkSupercharger, @@ -4888,7 +4863,7 @@ private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) { setCursor( NormalCursor ); return; } - + //Since we are saving to a new file update the stored prefs try { Prefs.put("LastOpenCVDirectory", savevee.getCanonicalPath().replace(savevee.getName(), "")); @@ -5186,12 +5161,12 @@ private void RecalcEngine() { private void GetNewVee() { boolean Omni = CurVee.IsOmni(); - + CurVee = new CombatVehicle(); spnTonnage.setModel(new SpinnerNumberModel(CurVee.GetTonnage(), 1, CurVee.GetMaxTonnage(), 1)); spnCruiseMP.setModel(new SpinnerNumberModel(CurVee.getCruiseMP(), 1, CurVee.getMaxCruiseMP(), 1)); spnHeatSinks.setModel(new SpinnerNumberModel(CurVee.GetHeatSinks().GetNumHS(), 0, 50, 1)); - + cmbMotiveType.setSelectedIndex( 0 ); chkYearRestrict.setSelected( false ); txtProdYear.setText( "" ); @@ -5240,7 +5215,7 @@ private void GetNewVee() { CurVee.SetYear( 0, false ); break; } - + cmbTechBase.setSelectedItem( Prefs.get( "NewVee_Techbase", "Inner Sphere" ) ); switch( cmbTechBase.getSelectedIndex() ) { case AvailableCode.TECH_INNER_SPHERE: @@ -5472,7 +5447,7 @@ private void SetWeaponChoosers() { lstSelectedEquipment.setListData( Equipment[SELECTED] ); lstChooseArtillery.setListData( Equipment[ARTILLERY] ); lstSelectedEquipment.repaint(); - + ResetAmmo(); } @@ -5480,7 +5455,7 @@ private void UnlockGUIFromOmni() { // this should be used anytime a new mech is made or when unlocking // an Omni. isLocked = false; - + chkOmniVee.setSelected( false ); chkOmniVee.setEnabled( true ); mnuUnlock.setEnabled( false ); @@ -5697,7 +5672,7 @@ private void RecalcEquipment() { clan = true; } } - + private void FixHeatSinkSpinnerModel() { // mainly provided for Omnis. if( CurVee.IsOmni() ) { @@ -5743,7 +5718,7 @@ private void RefreshOmniChoices() { // equipment it has loaded. CheckEquipment(); } - + private void CheckEquipment() { // consolidating some code here. chkFCSAIV.setSelected( CurVee.UsingArtemisIV() ); @@ -5754,11 +5729,11 @@ private void CheckEquipment() { chkSupercharger.setSelected( CurVee.GetBaseLoadout().HasSupercharger() ); chkCASE.setSelected( CurVee.GetLoadout().HasCase() ); } - + private void LockGUIForOmni() { // this locks most of the GUI controls. Used mainly by OmniVehichles. isLocked = true; - + chkOmniVee.setSelected( true ); chkOmniVee.setEnabled( false ); mnuUnlock.setEnabled( true ); @@ -5949,7 +5924,7 @@ public void LoadVehicleIntoGUI() { // Put it in the gui. UnlockGUIFromOmni(); - + chkYearRestrict.setSelected( CurVee.IsYearRestricted() ); txtProdYear.setText( "" + CurVee.GetYear() ); cmbEra.setEnabled( true ); @@ -5983,21 +5958,21 @@ public void LoadVehicleIntoGUI() { cmbTechBase.setEnabled( false ); txtProdYear.setEnabled( false ); } - + //Set all the inputs txtVehicleName.setText( CurVee.GetName() ); txtModel.setText( CurVee.GetModel() ); cmbTechBase.setSelectedIndex( CurVee.GetLoadout().GetTechBase() ); cmbMotiveType.setSelectedItem( CurVee.GetMotiveLookupName() ); spnTonnage.setModel( new javax.swing.SpinnerNumberModel(CurVee.GetTonnage(), 1, CurVee.GetMaxTonnage(), 1) ); - spnCruiseMP.setModel( new javax.swing.SpinnerNumberModel(CurVee.getCruiseMP(), 1, CurVee.getMaxCruiseMP(), 1) ); + spnCruiseMP.setModel( new javax.swing.SpinnerNumberModel(CurVee.getCruiseMP(), 1, CurVee.getMaxCruiseMP(), 1) ); if ( CurVee.isHasTurret1() ) cmbTurret.setSelectedItem("Single Turret"); if ( CurVee.isHasTurret2() ) cmbTurret.setSelectedItem("Dual Turret"); FixArmorSpinners(); // now that we're done with the special stuff... Load = false; - + if( CurVee.IsOmni() ) { if ( CurVee.isHasTurret1() ) spnTurretTonnage.setModel( new SpinnerNumberModel(CurVee.GetBaseLoadout().GetTurret().GetMaxTonnage(), 0, 99.0, 0.5) ); @@ -6351,7 +6326,7 @@ public void QuickSave() { mnuSaveActionPerformed(null); } } - + private void mnuExitActionPerformed(java.awt.event.ActionEvent evt) { if (CurVee.HasChanged()) { int choice = javax.swing.JOptionPane.showConfirmDialog(this, @@ -6377,7 +6352,7 @@ private void CloseProgram() { System.exit(0); } - + private void mnuSummaryActionPerformed(java.awt.event.ActionEvent evt) { SolidifyVehicle(); dlgSummaryInfo Summary = new dlgSummaryInfo(this, true, CurVee); @@ -6614,8 +6589,8 @@ private void btnAddQuirkActionPerformed(java.awt.event.ActionEvent evt) { } dlgQuirks qmanage = new dlgQuirks(this, true, CurVee, filtered, quirks); qmanage.setLocationRelativeTo(this); qmanage.setVisible(true); - tblQuirks.setModel(new tbQuirks(quirks)); CurVee.SetQuirks(quirks); + RefreshQuirks(); } private void RefreshQuirks() { @@ -7130,7 +7105,7 @@ private void chkFCSAIVActionPerformed(java.awt.event.ActionEvent evt) { } // now refresh the information panes RefreshSummary(); - RefreshInfoPane(); + RefreshInfoPane(); } private void chkUseTCActionPerformed(java.awt.event.ActionEvent evt) { @@ -7222,7 +7197,7 @@ private void btnMaximizeActionPerformed(java.awt.event.ActionEvent evt) { // this simply maximizes the mech's armor CVArmor a = CurVee.GetArmor(); a.Maximize(); - + // if we fix the spinner models, they should refresh the screen FixArmorSpinners(); @@ -7752,7 +7727,7 @@ private void btnLockChassisActionPerformed(java.awt.event.ActionEvent evt) { // currently testing right now. SaveOmniFluffInfo(); String VariantName = ""; - + // 2020-11-13 Omnis can't have Hardened Armor, but we wrote this generic // in case later other armor types come along if (!CurVee.GetArmor().AllowOmni()){ @@ -8047,10 +8022,10 @@ private void cmbEngineTypeActionPerformed(java.awt.event.ActionEvent evt) { } RecalcEngine(); FixMPSpinner(); - + //When the engine changes we need to re-check the Heat Sinks CurVee.ResetHeatSinks(); - + // only nuclear-powered mechs may use jump jets if (CurVee.GetEngine().IsNuclear()) { /* @@ -8189,7 +8164,7 @@ private void chkOmniVeeActionPerformed(java.awt.event.ActionEvent evt) { private void cmbMotiveTypeActionPerformed(java.awt.event.ActionEvent evt) { if ( Load ) return; boolean wasVtol = CurVee.IsVTOL(); - + switch (cmbMotiveType.getSelectedIndex()) { case 0: //Hovercraft CurVee.SetHover(); @@ -8667,7 +8642,7 @@ private void mnuReloadEquipmentActionPerformed(java.awt.event.ActionEvent evt) { } SetWeaponChoosers(); } - + private PagePrinter SetupPrinter() { PagePrinter printer = new PagePrinter(); Media media = new Media(); @@ -8678,10 +8653,10 @@ private PagePrinter SetupPrinter() { sheet.setPrintMech(true); sheet.setUnitImage(media.GetImage(CurVee.GetSSWImage())); printer.Append(BFBPrinter.Letter.toPage(), sheet); - + return printer; } - + private void FixMPSpinner() { // This fixes the walking MP spinner if the mech's tonnage changes. int MaxWalk = CurVee.getMaxCruiseMP(); @@ -8880,7 +8855,6 @@ private void FixJJSpinnerModel() { private javax.swing.JSpinner spnTonnage; private javax.swing.JSpinner spnTurretArmor; private javax.swing.JSpinner spnTurretTonnage; - private javax.swing.JTable tblQuirks; private javax.swing.JTable tblWeaponManufacturers; private javax.swing.JTabbedPane tbpMainTabPane; private javax.swing.JTabbedPane tbpWeaponChooser; @@ -8929,6 +8903,7 @@ private void FixJJSpinnerModel() { private javax.swing.JTextField txtTNTSystem; private javax.swing.JTextField txtTurretInfo; private javax.swing.JTextField txtVehicleName; + private javax.swing.JTable tblQuirks; // End of variables declaration//GEN-END:variables public void lostOwnership(Clipboard clipboard, Transferable contents) { From b97682a969a83dddf4c2440737d977e048fd078d Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Wed, 22 Feb 2023 22:00:12 -0700 Subject: [PATCH 105/199] Add to Non Wide --- saw/src/main/java/saw/gui/frmVee.java | 28 +++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 5745b02d..83cd7d80 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -37,9 +37,11 @@ import battleforce.BattleForceStats; import common.*; import components.*; +import dialog.dlgQuirks; import dialog.frmForce; import filehandlers.*; import gui.TextPane; +import list.view.tbQuirks; import saw.filehandlers.HTMLWriter; import states.ifState; import visitors.VArmorSetPatchworkLocation; @@ -88,6 +90,7 @@ public final class frmVee extends javax.swing.JFrame implements java.awt.datatra private final ImageTracker imageTracker = new ImageTracker(); public dlgOpen dOpen = new dlgOpen(this, true); public frmForce dForce = new frmForce(this, imageTracker); + public ArrayList<Quirk> quirks = new ArrayList<Quirk>(); TextPane Overview = new TextPane(); TextPane Capabilities = new TextPane(); @@ -207,6 +210,7 @@ public frmVee() { pnlAdditionalFluff.add( Additional ); pnlVariants.add( Variants ); pnlNotables.add( Notables ); + quirks = CurVee.GetQuirks(); pack(); @@ -1294,7 +1298,7 @@ private void initComponents() { JPanel pnlQuirks = new JPanel(); JLabel lblBattleMechQuirks = new JLabel(); JScrollPane scpQuirkTable = new JScrollPane(); - JTable tblQuirks = new JTable(); + tblQuirks = new JTable(); JButton btnAddQuirk = new JButton(); JPanel jPanel9 = new JPanel(); JPanel pnlBFStats = new JPanel(); @@ -7245,15 +7249,21 @@ private void btnExportMTFActionPerformed(java.awt.event.ActionEvent evt) { } private void btnAddQuirkActionPerformed(java.awt.event.ActionEvent evt) { - /* - dlgQuirks qmanage = new dlgQuirks(this, true, data, quirks); - qmanage.setLocationRelativeTo(this); - qmanage.setVisible(true); - tblQuirks.setModel(new tbQuirks(quirks)); - * - */ + ArrayList<Quirk> filtered = new ArrayList<Quirk>(); + for (Quirk item : data.GetQuirks()) { + if (item.isCombatvehicle()) { + filtered.add(item); + } + } + dlgQuirks qmanage = new dlgQuirks(this, true, CurVee, filtered, quirks); + qmanage.setLocationRelativeTo(this); qmanage.setVisible(true); + CurVee.SetQuirks(quirks); + RefreshQuirks(); } + private void RefreshQuirks() { + tblQuirks.setModel(new tbQuirks(CurVee.GetQuirks())); + } private void cmbTurretActionPerformed(java.awt.event.ActionEvent evt) { if( Load ) { return; } //TODO add logic to CombatVehicle to handle the turret @@ -8269,6 +8279,7 @@ public void LoadVehicleIntoGUI() { media.blankLogo(lblFluffImage); media.setLogo(lblFluffImage, media.DetermineMatchingImage(CurVee.GetName(), CurVee.GetModel(), CurVee.GetSSWImage())); + quirks = CurVee.GetQuirks(); Overview.SetText( CurVee.getOverview() ); Capabilities.SetText( CurVee.getCapabilities() ); History.SetText( CurVee.getHistory() ); @@ -9361,6 +9372,7 @@ private void FixJJSpinnerModel() { private javax.swing.JTextField txtTNTSystem; private javax.swing.JTextField txtTurretInfo; private javax.swing.JTextField txtVehicleName; + private javax.swing.JTable tblQuirks; // End of variables declaration//GEN-END:variables public void lostOwnership(Clipboard clipboard, Transferable contents) { From c09661bb43e6da7d242a3417095c8dd56cbfb419 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Thu, 23 Feb 2023 20:56:39 -0700 Subject: [PATCH 106/199] Clear quirks on new, some ui updates for the small screen version. --- saw/src/main/java/saw/Main.java | 2 +- saw/src/main/java/saw/gui/frmVee.java | 13 ++++++++----- saw/src/main/java/saw/gui/frmVeeWide.java | 4 +++- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/saw/src/main/java/saw/Main.java b/saw/src/main/java/saw/Main.java index e850fd9f..a230df7f 100644 --- a/saw/src/main/java/saw/Main.java +++ b/saw/src/main/java/saw/Main.java @@ -123,7 +123,7 @@ public void run() { break; default: MainFrame = new frmVee(); - MainFrame.setSize( 825, 625 ); + MainFrame.setSize( 850, 650 ); break; } diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 83cd7d80..85f77194 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -651,9 +651,9 @@ private void setViewToolbar(boolean Visible) Prefs.putBoolean("ViewToolbar", Visible); //mnuViewToolbar.setState(Visible); if (Visible) { - if (this.getHeight() != 600) { this.setSize(750, 600); } + if (this.getHeight() != 600) { this.setSize(750, 625); } } else { - if (this.getHeight() != 575) { this.setSize(750, 575); } + if (this.getHeight() != 575) { this.setSize(750, 600); } } } private void ConfigureUtilsMenu( java.awt.Component c ) { @@ -4353,7 +4353,7 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { tblQuirks.getTableHeader().setReorderingAllowed(false); scpQuirkTable.setViewportView(tblQuirks); - btnAddQuirk.setText("Add Quirk"); + btnAddQuirk.setText("Manage Quirk"); btnAddQuirk.addActionListener(this::btnAddQuirkActionPerformed); javax.swing.GroupLayout pnlQuirksLayout = new javax.swing.GroupLayout(pnlQuirks); @@ -4687,7 +4687,7 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { .addGroup(layout.createSequentialGroup() .addComponent(tlbIconBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(tbpMainTabPane, javax.swing.GroupLayout.PREFERRED_SIZE, 498, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(tbpMainTabPane, javax.swing.GroupLayout.PREFERRED_SIZE, 510, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 21, Short.MAX_VALUE) .addComponent(pnlInfoPane, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)) ); @@ -6353,6 +6353,7 @@ private void RecalcEngine() { private void GetNewVee() { boolean Omni = CurVee.IsOmni(); + quirks = new ArrayList<Quirk>(); CurVee = new CombatVehicle(); spnTonnage.setModel(new SpinnerNumberModel(CurVee.GetTonnage(), 1, CurVee.GetMaxTonnage(), 1)); spnCruiseMP.setModel(new SpinnerNumberModel(CurVee.getCruiseMP(), 1, CurVee.getMaxCruiseMP(), 1)); @@ -6447,6 +6448,7 @@ private void GetNewVee() { SetWeaponChoosers(); ResetAmmo(); + quirks = CurVee.GetQuirks(); Overview.StartNewDocument(); Capabilities.StartNewDocument(); History.StartNewDocument(); @@ -8279,7 +8281,8 @@ public void LoadVehicleIntoGUI() { media.blankLogo(lblFluffImage); media.setLogo(lblFluffImage, media.DetermineMatchingImage(CurVee.GetName(), CurVee.GetModel(), CurVee.GetSSWImage())); - quirks = CurVee.GetQuirks(); + RefreshQuirks(); + Overview.SetText( CurVee.getOverview() ); Capabilities.SetText( CurVee.getCapabilities() ); History.SetText( CurVee.getHistory() ); diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 0214c0ae..5bec68b4 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -5162,6 +5162,7 @@ private void RecalcEngine() { private void GetNewVee() { boolean Omni = CurVee.IsOmni(); + quirks = new ArrayList<Quirk>(); CurVee = new CombatVehicle(); spnTonnage.setModel(new SpinnerNumberModel(CurVee.GetTonnage(), 1, CurVee.GetMaxTonnage(), 1)); spnCruiseMP.setModel(new SpinnerNumberModel(CurVee.getCruiseMP(), 1, CurVee.getMaxCruiseMP(), 1)); @@ -5254,6 +5255,8 @@ private void GetNewVee() { SetWeaponChoosers(); ResetAmmo(); + RefreshQuirks(); + Overview.StartNewDocument(); Capabilities.StartNewDocument(); History.StartNewDocument(); @@ -5271,7 +5274,6 @@ private void GetNewVee() { txtTNTSystem.setText( "" ); txtSource.setText( "" ); lblFluffImage.setIcon( null ); - RefreshQuirks(); //Reset Manufacturers tblWeaponManufacturers.setModel( new javax.swing.table.AbstractTableModel() { From 1fa5f7051cc622b273f3fbf1edcef5c735e97aba Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Fri, 24 Feb 2023 19:35:45 -0700 Subject: [PATCH 107/199] Clear quirks on new --- saw/src/main/java/saw/gui/frmVee.java | 3 ++- saw/src/main/java/saw/gui/frmVeeWide.java | 2 +- sswlib/src/main/java/components/CombatVehicle.java | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 85f77194..1595f4cf 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -6448,7 +6448,8 @@ private void GetNewVee() { SetWeaponChoosers(); ResetAmmo(); - quirks = CurVee.GetQuirks(); + tblQuirks.setModel(new tbQuirks(new ArrayList<Quirk>())); + Overview.StartNewDocument(); Capabilities.StartNewDocument(); History.StartNewDocument(); diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 5bec68b4..d6256fde 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -5255,7 +5255,7 @@ private void GetNewVee() { SetWeaponChoosers(); ResetAmmo(); - RefreshQuirks(); + tblQuirks.setModel(new tbQuirks(new ArrayList<Quirk>())); Overview.StartNewDocument(); Capabilities.StartNewDocument(); diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index 8cf4727a..0aefbab2 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -176,6 +176,8 @@ public CombatVehicle() { CurLoadout.GetHeatSinks().SetSingle(); MainLoadout = CurLoadout; + Quirks = new ArrayList<Quirk>(); + BuildLookupTable(); setTonnage(10); } From 8f82fb9730f800c2f2dbc6bbb843d859d86e3d23 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Fri, 24 Feb 2023 20:59:38 -0700 Subject: [PATCH 108/199] Add focus adapter to the armor spinners --- ssw/src/main/java/ssw/gui/frmMainWide.java | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/ssw/src/main/java/ssw/gui/frmMainWide.java b/ssw/src/main/java/ssw/gui/frmMainWide.java index 0aeb7de2..f187e9ff 100644 --- a/ssw/src/main/java/ssw/gui/frmMainWide.java +++ b/ssw/src/main/java/ssw/gui/frmMainWide.java @@ -49,6 +49,7 @@ import visitors.ifVisitor; import javax.swing.*; +import javax.swing.text.JTextComponent; import java.awt.*; import java.awt.datatransfer.DataFlavor; import java.awt.event.*; @@ -58,6 +59,19 @@ import java.util.prefs.Preferences; public class frmMainWide extends javax.swing.JFrame implements java.awt.datatransfer.ClipboardOwner, common.DesignForm, ifMechForm { + FocusAdapter spinners = new FocusAdapter() { + @Override + public void focusGained(FocusEvent e) { + if ( e.getSource() instanceof JTextComponent) { + final JTextComponent textComponent = ((JTextComponent)e.getSource()); + SwingUtilities.invokeLater(new Runnable() { + public void run() { + textComponent.selectAll(); + } + }); + } + } + }; String[] Selections = { "", "", "", "", "", "", "", "" }; Mech CurMech; @@ -2411,6 +2425,19 @@ private void FixArmorSpinners() { spnCTRArmor.setModel( new javax.swing.SpinnerNumberModel( a.GetLocationArmor( LocationIndex.MECH_LOC_CTR ), 0, a.GetLocationMax( LocationIndex.MECH_LOC_CT ), 1) ); spnLTRArmor.setModel( new javax.swing.SpinnerNumberModel( a.GetLocationArmor( LocationIndex.MECH_LOC_LTR ), 0, a.GetLocationMax( LocationIndex.MECH_LOC_LT ), 1) ); spnRTRArmor.setModel( new javax.swing.SpinnerNumberModel( a.GetLocationArmor( LocationIndex.MECH_LOC_RTR ), 0, a.GetLocationMax( LocationIndex.MECH_LOC_RT ), 1) ); + + //Setup Spinner focus + ((JSpinner.DefaultEditor)spnHDArmor.getEditor()).getTextField().addFocusListener(spinners); + ((JSpinner.DefaultEditor)spnCTArmor.getEditor()).getTextField().addFocusListener(spinners); + ((JSpinner.DefaultEditor)spnCTRArmor.getEditor()).getTextField().addFocusListener(spinners); + ((JSpinner.DefaultEditor)spnRTArmor.getEditor()).getTextField().addFocusListener(spinners); + ((JSpinner.DefaultEditor)spnRTRArmor.getEditor()).getTextField().addFocusListener(spinners); + ((JSpinner.DefaultEditor)spnLTArmor.getEditor()).getTextField().addFocusListener(spinners); + ((JSpinner.DefaultEditor)spnLTRArmor.getEditor()).getTextField().addFocusListener(spinners); + ((JSpinner.DefaultEditor)spnRAArmor.getEditor()).getTextField().addFocusListener(spinners); + ((JSpinner.DefaultEditor)spnRLArmor.getEditor()).getTextField().addFocusListener(spinners); + ((JSpinner.DefaultEditor)spnLAArmor.getEditor()).getTextField().addFocusListener(spinners); + ((JSpinner.DefaultEditor)spnLLArmor.getEditor()).getTextField().addFocusListener(spinners); } private void SaveSelections() { From a61dfb9fb78438e215302d61d9cfe204bae73238 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Fri, 24 Feb 2023 21:46:09 -0700 Subject: [PATCH 109/199] Add focus adapter to other spinners --- ssw/src/main/java/ssw/gui/frmMainWide.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ssw/src/main/java/ssw/gui/frmMainWide.java b/ssw/src/main/java/ssw/gui/frmMainWide.java index f187e9ff..584f2db8 100644 --- a/ssw/src/main/java/ssw/gui/frmMainWide.java +++ b/ssw/src/main/java/ssw/gui/frmMainWide.java @@ -72,7 +72,6 @@ public void run() { } } }; - String[] Selections = { "", "", "", "", "", "", "", "" }; Mech CurMech; VSetArmorTonnage ArmorTons; @@ -691,6 +690,7 @@ private void FixWalkMPSpinner() { // reset the spinner model and we're done. spnWalkMP.setModel( new javax.swing.SpinnerNumberModel( CurWalk, 1, MaxWalk, 1) ); + ((JSpinner.DefaultEditor)spnWalkMP.getEditor()).getTextField().addFocusListener(spinners); } private void BuildChassisSelector() { @@ -885,6 +885,7 @@ private void FixJJSpinnerModel() { } spnJumpMP.setModel( new javax.swing.SpinnerNumberModel( current, min, max, 1) ); + ((JSpinner.DefaultEditor)spnJumpMP.getEditor()).getTextField().addFocusListener(spinners); } private void FixHeatSinkSpinnerModel() { @@ -896,6 +897,8 @@ private void FixHeatSinkSpinnerModel() { spnNumberOfHS.setModel( new javax.swing.SpinnerNumberModel( CurMech.GetHeatSinks().GetNumHS(), CurMech.GetEngine().FreeHeatSinks(), 65, 1) ); } + + ((JSpinner.DefaultEditor)spnNumberOfHS.getEditor()).getTextField().addFocusListener(spinners); } private void FixJumpBoosterSpinnerModel() { @@ -1730,6 +1733,8 @@ private void RecalcEngine() { CurMech.GetHeatSinks().ReCalculate(); spnNumberOfHS.setModel( new javax.swing.SpinnerNumberModel( CurMech.GetHeatSinks().GetNumHS(), CurMech.GetEngine().FreeHeatSinks(), 65, 1) ); + + ((JSpinner.DefaultEditor)spnNumberOfHS.getEditor()).getTextField().addFocusListener(spinners); } // see if we should enable the Power Amplifier display @@ -2425,7 +2430,7 @@ private void FixArmorSpinners() { spnCTRArmor.setModel( new javax.swing.SpinnerNumberModel( a.GetLocationArmor( LocationIndex.MECH_LOC_CTR ), 0, a.GetLocationMax( LocationIndex.MECH_LOC_CT ), 1) ); spnLTRArmor.setModel( new javax.swing.SpinnerNumberModel( a.GetLocationArmor( LocationIndex.MECH_LOC_LTR ), 0, a.GetLocationMax( LocationIndex.MECH_LOC_LT ), 1) ); spnRTRArmor.setModel( new javax.swing.SpinnerNumberModel( a.GetLocationArmor( LocationIndex.MECH_LOC_RTR ), 0, a.GetLocationMax( LocationIndex.MECH_LOC_RT ), 1) ); - + //Setup Spinner focus ((JSpinner.DefaultEditor)spnHDArmor.getEditor()).getTextField().addFocusListener(spinners); ((JSpinner.DefaultEditor)spnCTArmor.getEditor()).getTextField().addFocusListener(spinners); From f3c8ab3556a6f8e6cdd60ede2532359eac30cfd8 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 25 Feb 2023 09:27:48 -0700 Subject: [PATCH 110/199] Fix CVWrite Quirks The method name got changed in another branch and so this didn't show up as an issue before. --- sswlib/src/main/java/filehandlers/CVWriter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sswlib/src/main/java/filehandlers/CVWriter.java b/sswlib/src/main/java/filehandlers/CVWriter.java index c3bb707a..853765c3 100644 --- a/sswlib/src/main/java/filehandlers/CVWriter.java +++ b/sswlib/src/main/java/filehandlers/CVWriter.java @@ -304,7 +304,7 @@ public void WriteXML( BufferedWriter FR ) throws IOException { "\" conventionalfigher=\"" + Boolean.toString(quirk.isConventionalfighter()) + "\" dropship=\"" + Boolean.toString(quirk.isDropship()) + "\" jumpship=\"" + Boolean.toString(quirk.isDropship()) + "\" warship=\"" + Boolean.toString(quirk.isWarship()) + "\" spacestation=\"" + Boolean.toString(quirk.isSpacestation()) + "\" protomech=\"" + Boolean.toString(quirk.isProtomech()) - + "\" isvariable=\"" + Boolean.toString(quirk.isIsvariable()) + "\">"); + + "\" isvariable=\"" + Boolean.toString(quirk.isVariable()) + "\">"); FR.newLine(); FR.write(tab + tab + tab + tab + "<Name>" + FileCommon.EncodeFluff(quirk.getName()) + "</Name>"); FR.newLine(); From ec13e7886702c92cb5b98a945ec1a7de1b2411f2 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 25 Feb 2023 10:02:58 -0700 Subject: [PATCH 111/199] Fix Quirk problem too --- sswlib/src/main/java/filehandlers/CVWriter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sswlib/src/main/java/filehandlers/CVWriter.java b/sswlib/src/main/java/filehandlers/CVWriter.java index c3bb707a..853765c3 100644 --- a/sswlib/src/main/java/filehandlers/CVWriter.java +++ b/sswlib/src/main/java/filehandlers/CVWriter.java @@ -304,7 +304,7 @@ public void WriteXML( BufferedWriter FR ) throws IOException { "\" conventionalfigher=\"" + Boolean.toString(quirk.isConventionalfighter()) + "\" dropship=\"" + Boolean.toString(quirk.isDropship()) + "\" jumpship=\"" + Boolean.toString(quirk.isDropship()) + "\" warship=\"" + Boolean.toString(quirk.isWarship()) + "\" spacestation=\"" + Boolean.toString(quirk.isSpacestation()) + "\" protomech=\"" + Boolean.toString(quirk.isProtomech()) - + "\" isvariable=\"" + Boolean.toString(quirk.isIsvariable()) + "\">"); + + "\" isvariable=\"" + Boolean.toString(quirk.isVariable()) + "\">"); FR.newLine(); FR.write(tab + tab + tab + tab + "<Name>" + FileCommon.EncodeFluff(quirk.getName()) + "</Name>"); FR.newLine(); From 83b2e89390f19839fd24d86b15e172ae3033d84a Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 25 Feb 2023 10:03:57 -0700 Subject: [PATCH 112/199] Cleanup Turret and Rotor display Handle Chin Turret displaying Turret armor option. Improve VTOL Rotor handling. --- saw/src/main/java/saw/gui/frmVeeWide.java | 35 +++++++++++++---------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index f781b828..8b2ffb9b 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -2720,7 +2720,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { pnlRearTurretArmor.add(spnRearTurretArmor, gridBagConstraints); pnlRotorArmor.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Rotor")); - pnlRotorArmor.setEnabled(false); pnlRotorArmor.setLayout(new java.awt.GridBagLayout()); lblRotorIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); @@ -4250,25 +4249,31 @@ private void RecalcArmorPlacement() { } private void RecalcArmorLocations() { - pnlRotorArmor.setVisible(false); - if ( cmbTurret.getSelectedItem().toString().equals("No Turret") ) { - spnTurretArmor.setValue(0); - spnRearTurretArmor.setValue(0); - pnlTurretArmor.setVisible(false); - pnlRearTurretArmor.setVisible(false); - } else if ( cmbTurret.getSelectedItem().toString().equals("Single Turret") ) { - pnlTurretArmor.setVisible(true); - spnRearTurretArmor.setValue(0); - pnlRearTurretArmor.setVisible(false); + spnTurretArmor.setValue(0); + spnRearTurretArmor.setValue(0); + pnlTurretArmor.setVisible(false); + pnlRearTurretArmor.setVisible(false); + } else if ( cmbTurret.getSelectedItem().toString().equals("Single Turret")) { + pnlTurretArmor.setVisible(true); + spnRearTurretArmor.setValue(0); + pnlRearTurretArmor.setVisible(false); + } else if (cmbTurret.getSelectedItem().toString().equals("Chin Turret")) { + pnlTurretArmor.setVisible(true); + spnRearTurretArmor.setValue(0); + pnlRearTurretArmor.setVisible(false); } else if ( cmbTurret.getSelectedItem().toString().equals("Dual Turret") ) { - pnlTurretArmor.setVisible(true); - pnlRearTurretArmor.setVisible(true); + pnlTurretArmor.setVisible(true); + pnlRearTurretArmor.setVisible(true); } - if ( CurVee.IsVTOL() ) + if ( CurVee.IsVTOL() ) { pnlRotorArmor.setVisible(true); - else + //spnRotorArmor.setEnabled(true); + } else { + pnlRotorArmor.setVisible(false); + //spnRotorArmor.setEnabled(false); spnRotorArmor.setValue(0); + } } private void SolidifyVehicle() { From 737707e8c374f2283d0f7659bd4ed73bedf9f5f5 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 25 Feb 2023 12:08:56 -0700 Subject: [PATCH 113/199] Add Rear Turret Weight And also moved all the text setting into the constructors to try to reduce overall code length. --- saw/src/main/java/saw/gui/frmVeeWide.java | 692 +++++++--------------- 1 file changed, 229 insertions(+), 463 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 8b2ffb9b..b2f8d8a0 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -938,237 +938,238 @@ private void initComponents() { JToolBar.Separator jSeparator4 = new JToolBar.Separator(); JButton btnOptions = new JButton(); JToolBar.Separator jSeparator21 = new JToolBar.Separator(); - JLabel lblSelectVariant = new JLabel(); + JLabel lblSelectVariant = new JLabel("Selected Variant: "); cmbOmniVariant = new javax.swing.JComboBox(); tbpMainTabPane = new javax.swing.JTabbedPane(); pnlBasicSetup = new javax.swing.JPanel(); JPanel jPanel5 = new JPanel(); - JLabel jLabel1 = new JLabel(); + JLabel jLabel1 = new JLabel("Vehicle Name:"); txtVehicleName = new javax.swing.JTextField(); - JLabel jLabel4 = new JLabel(); + JLabel jLabel4 = new JLabel("Model:"); txtModel = new javax.swing.JTextField(); - JLabel jLabel2 = new JLabel(); + JLabel jLabel2 = new JLabel("Rules Level:"); cmbRulesLevel = new javax.swing.JComboBox(); - JLabel jLabel5 = new JLabel(); + JLabel jLabel5 = new JLabel("Era:"); cmbEra = new javax.swing.JComboBox(); - JLabel jLabel3 = new JLabel(); + JLabel jLabel3 = new JLabel("Tech Base:"); cmbTechBase = new javax.swing.JComboBox(); - lblEraYears = new javax.swing.JLabel(); - chkYearRestrict = new javax.swing.JCheckBox(); - JLabel jLabel81 = new JLabel(); + lblEraYears = new javax.swing.JLabel("2443~2800"); + chkYearRestrict = new javax.swing.JCheckBox("Restrict Availability by Year"); + JLabel jLabel81 = new JLabel("Source:"); txtSource = new javax.swing.JTextField(); - JLabel lblProdYear = new JLabel(); + JLabel lblProdYear = new JLabel("Prod Year/Era:"); txtProdYear = new javax.swing.JTextField(); cmbProductionEra = new javax.swing.JComboBox(); JPanel pnlChassis = new JPanel(); cmbMotiveType = new javax.swing.JComboBox(); - JLabel jLabel7 = new JLabel(); - JLabel jLabel8 = new JLabel(); - chkOmniVee = new javax.swing.JCheckBox(); - chkTrailer = new javax.swing.JCheckBox(); + JLabel jLabel7 = new JLabel("Motive Type:"); + JLabel jLabel8 = new JLabel("Tonnage:"); + chkOmniVee = new javax.swing.JCheckBox("OmniVehicle"); + chkTrailer = new javax.swing.JCheckBox("Trailer"); spnTonnage = new javax.swing.JSpinner(); - JLabel jLabel9 = new JLabel(); + JLabel jLabel9 = new JLabel("Engine:"); cmbEngineType = new javax.swing.JComboBox(); - JLabel jLabel32 = new JLabel(); + JLabel jLabel32 = new JLabel("Turret:"); cmbTurret = new javax.swing.JComboBox(); - lblVeeClass = new javax.swing.JLabel(); - lblVeeLimits = new javax.swing.JLabel(); - JLabel jLabel91 = new JLabel(); + lblVeeClass = new javax.swing.JLabel("Assault Vee"); + lblVeeLimits = new javax.swing.JLabel("500t Max"); + JLabel jLabel91 = new JLabel("Heat Sinks:"); spnHeatSinks = new javax.swing.JSpinner(); spnTurretTonnage = new javax.swing.JSpinner(); + spnRearTurretTonnage = new javax.swing.JSpinner(); JPanel pnlMovement = new JPanel(); - JLabel jLabel10 = new JLabel(); + JLabel jLabel10 = new JLabel("Cruise MP:"); spnCruiseMP = new javax.swing.JSpinner(); - JLabel jLabel11 = new JLabel(); - lblFlankMP = new javax.swing.JLabel(); - JLabel jLabel13 = new JLabel(); + JLabel jLabel11 = new JLabel("Flank MP:"); + lblFlankMP = new javax.swing.JLabel("2"); + JLabel jLabel13 = new JLabel("Jump MP:"); spnJumpMP = new javax.swing.JSpinner(); JPanel pnlChassisMods = new JPanel(); - chkFlotationHull = new javax.swing.JCheckBox(); - chkLimitedAmph = new javax.swing.JCheckBox(); - chkFullAmph = new javax.swing.JCheckBox(); - chkDuneBuggy = new javax.swing.JCheckBox(); - chkEnviroSealing = new javax.swing.JCheckBox(); + chkFlotationHull = new javax.swing.JCheckBox("Flotation Hull"); + chkLimitedAmph = new javax.swing.JCheckBox("Limited Amphibious"); + chkFullAmph = new javax.swing.JCheckBox("Fully Amphibious"); + chkDuneBuggy = new javax.swing.JCheckBox("Dune Buggy"); + chkEnviroSealing = new javax.swing.JCheckBox("Enviro (Vacuum) Sealing"); JPanel pnlExperimental = new JPanel(); - chkArmoredMotive = new javax.swing.JCheckBox(); - chkCommandConsole = new javax.swing.JCheckBox(); - chkEscapePod = new javax.swing.JCheckBox(); - chkMinesweeper = new javax.swing.JCheckBox(); - chkJetBooster = new javax.swing.JCheckBox(); - chkSupercharger = new javax.swing.JCheckBox(); - chkSponsonTurret = new javax.swing.JCheckBox(); + chkArmoredMotive = new javax.swing.JCheckBox("Armored Motive System"); + chkCommandConsole = new javax.swing.JCheckBox("Command Console"); + chkEscapePod = new javax.swing.JCheckBox("Combat Vehicle Escape Pod"); + chkMinesweeper = new javax.swing.JCheckBox("Minesweeper"); + chkJetBooster = new javax.swing.JCheckBox("VTOL Jet Booster"); + chkSupercharger = new javax.swing.JCheckBox("Supercharger"); + chkSponsonTurret = new javax.swing.JCheckBox("Sponson Turret"); JPanel jPanel11 = new JPanel(); - chkFractional = new javax.swing.JCheckBox(); + chkFractional = new javax.swing.JCheckBox("Use Fractional Accounting"); JPanel pnlSummary = new JPanel(); - JLabel jLabel12 = new JLabel(); - JLabel jLabel14 = new JLabel(); - JLabel jLabel15 = new JLabel(); - JLabel jLabel16 = new JLabel(); - JLabel jLabel17 = new JLabel(); + JLabel jLabel12 = new JLabel("Item"); + JLabel jLabel14 = new JLabel("Tonnage"); + JLabel jLabel15 = new JLabel("Space"); + JLabel jLabel16 = new JLabel("Availability"); + JLabel jLabel17 = new JLabel("Internal Structure:"); txtSumIntTons = new javax.swing.JTextField(); txtSumIntAV = new javax.swing.JTextField(); - JLabel jLabel18 = new JLabel(); + JLabel jLabel18 = new JLabel("Engine:"); txtSumEngTons = new javax.swing.JTextField(); txtSumEngAV = new javax.swing.JTextField(); - JLabel jLabel19 = new JLabel(); + JLabel jLabel19 = new JLabel("Lift/Dive/Rotor:"); txtSumLifTons = new javax.swing.JTextField(); txtSumLifAV = new javax.swing.JTextField(); txtSumEngSpace = new javax.swing.JTextField(); - JLabel jLabel20 = new JLabel(); + JLabel jLabel20 = new JLabel("Controls:"); txtSumConTons = new javax.swing.JTextField(); txtSumConAV = new javax.swing.JTextField(); - JLabel jLabel21 = new JLabel(); + JLabel jLabel21 = new JLabel("Jump Jets:"); txtSumJJTons = new javax.swing.JTextField(); JTextField txtSumJJSpace = new JTextField(); txtSumJJAV = new javax.swing.JTextField(); - JLabel jLabel22 = new JLabel(); + JLabel jLabel22 = new JLabel("Heat Sinks:"); txtSumHSTons = new javax.swing.JTextField(); txtSumHSAV = new javax.swing.JTextField(); - JLabel jLabel23 = new JLabel(); + JLabel jLabel23 = new JLabel("Armor:"); txtSumArmTons = new javax.swing.JTextField(); txtSumArmSpace = new javax.swing.JTextField(); txtSumArmAV = new javax.swing.JTextField(); - JLabel jLabel24 = new JLabel(); + JLabel jLabel24 = new JLabel("Turret:"); txtSumTurTons = new javax.swing.JTextField(); txtSumTurAV = new javax.swing.JTextField(); - JLabel jLabel25 = new JLabel(); + JLabel jLabel25 = new JLabel("Rear Turret:"); txtSumRTuTons = new javax.swing.JTextField(); txtSumRTuAV = new javax.swing.JTextField(); - JLabel jLabel26 = new JLabel(); + JLabel jLabel26 = new JLabel("Sponsons:"); txtSumSpnTons = new javax.swing.JTextField(); txtSumSpnAV = new javax.swing.JTextField(); - JLabel jLabel27 = new JLabel(); + JLabel jLabel27 = new JLabel("Power Amplifiers:"); txtSumPATons = new javax.swing.JTextField(); txtSumPAAV = new javax.swing.JTextField(); JPanel pnlInformation = new JPanel(); - JLabel titleSuspension = new JLabel(); - lblSupensionFacter = new javax.swing.JLabel(); - JLabel titleMinEngTon = new JLabel(); - lblMinEngineTons = new javax.swing.JLabel(); - JLabel titleBaseEngRate = new JLabel(); - lblBaseEngineRating = new javax.swing.JLabel(); - JLabel titleFinalEngRate = new JLabel(); - lblFinalEngineRating = new javax.swing.JLabel(); - JLabel titleFreeHeatSinks = new JLabel(); - lblFreeHeatSinks = new javax.swing.JLabel(); - JLabel titleCrew = new JLabel(); - lblNumCrew = new javax.swing.JLabel(); + JLabel titleSuspension = new JLabel("Suspension Factor:"); + lblSupensionFacter = new javax.swing.JLabel("000"); + JLabel titleMinEngTon = new JLabel("Minimum Engine Tonnage:"); + lblMinEngineTons = new javax.swing.JLabel("10"); + JLabel titleBaseEngRate = new JLabel("Base Engine Rating:"); + lblBaseEngineRating = new javax.swing.JLabel("000"); + JLabel titleFinalEngRate = new JLabel("Final Engine Rating:"); + lblFinalEngineRating = new javax.swing.JLabel("000"); + JLabel titleFreeHeatSinks = new JLabel("Free Heat Sinks:"); + lblFreeHeatSinks = new javax.swing.JLabel("000"); + JLabel titleCrew = new JLabel("Crew:"); + lblNumCrew = new javax.swing.JLabel("00"); JPanel pnlOmniInfo = new JPanel(); - btnLockChassis = new javax.swing.JButton(); - btnAddVariant = new javax.swing.JButton(); - btnDeleteVariant = new javax.swing.JButton(); - btnRenameVariant = new javax.swing.JButton(); + btnLockChassis = new javax.swing.JButton("Lock Chassis"); + btnAddVariant = new javax.swing.JButton("Add Variant"); + btnDeleteVariant = new javax.swing.JButton("Delete Variant"); + btnRenameVariant = new javax.swing.JButton("Rename Variant"); JPanel jPanel6 = new JPanel(); JPanel pnlRightArmor = new JPanel(); - lblRightIntPts = new javax.swing.JLabel(); - JLabel jLabel40 = new JLabel(); - JLabel jLabel46 = new JLabel(); + lblRightIntPts = new javax.swing.JLabel("00"); + JLabel jLabel40 = new JLabel("Internal"); + JLabel jLabel46 = new JLabel("Armor"); spnRightArmor = new javax.swing.JSpinner(); JPanel pnlFrontArmor = new JPanel(); - lblFrontIntPts = new javax.swing.JLabel(); - JLabel jLabel45 = new JLabel(); - JLabel jLabel47 = new JLabel(); + lblFrontIntPts = new javax.swing.JLabel("00"); + JLabel jLabel45 = new JLabel("Internal"); + JLabel jLabel47 = new JLabel("Armor"); spnFrontArmor = new javax.swing.JSpinner(); JPanel pnlLeftArmor = new JPanel(); - lblLeftIntPts = new javax.swing.JLabel(); - JLabel jLabel41 = new JLabel(); - JLabel jLabel48 = new JLabel(); + lblLeftIntPts = new javax.swing.JLabel("00"); + JLabel jLabel41 = new JLabel("Internal"); + JLabel jLabel48 = new JLabel("Armor"); spnLeftArmor = new javax.swing.JSpinner(); JPanel pnlRearArmor = new JPanel(); - lblRearIntPts = new javax.swing.JLabel(); - JLabel jLabel44 = new JLabel(); - JLabel jLabel49 = new JLabel(); + lblRearIntPts = new javax.swing.JLabel("00"); + JLabel jLabel44 = new JLabel("Internal"); + JLabel jLabel49 = new JLabel("Armor"); spnRearArmor = new javax.swing.JSpinner(); pnlTurretArmor = new javax.swing.JPanel(); - lblTurretIntPts = new javax.swing.JLabel(); - JLabel jLabel42 = new JLabel(); - JLabel jLabel50 = new JLabel(); + lblTurretIntPts = new javax.swing.JLabel("00"); + JLabel jLabel42 = new JLabel("Internal"); + JLabel jLabel50 = new JLabel("Armor"); spnTurretArmor = new javax.swing.JSpinner(); pnlRearTurretArmor = new javax.swing.JPanel(); - lblRearTurretIntPts = new javax.swing.JLabel(); - JLabel jLabel43 = new JLabel(); - JLabel jLabel51 = new JLabel(); + lblRearTurretIntPts = new javax.swing.JLabel("00"); + JLabel jLabel43 = new JLabel("Internal"); + JLabel jLabel51 = new JLabel("Armor"); spnRearTurretArmor = new javax.swing.JSpinner(); pnlRotorArmor = new javax.swing.JPanel(); - lblRotorIntPts = new javax.swing.JLabel(); - JLabel jLabel92 = new JLabel(); - JLabel jLabel93 = new JLabel(); + lblRotorIntPts = new javax.swing.JLabel("00"); + JLabel jLabel92 = new JLabel("Internal"); + JLabel jLabel93 = new JLabel("Armor"); spnRotorArmor = new javax.swing.JSpinner(); JPanel jPanel7 = new JPanel(); - JLabel jLabel52 = new JLabel(); + JLabel jLabel52 = new JLabel("Armor Type:"); cmbArmorType = new javax.swing.JComboBox(); - chkBalanceLRArmor = new javax.swing.JCheckBox(); - chkBalanceFRArmor = new javax.swing.JCheckBox(); - btnSetArmorTons = new javax.swing.JButton(); - btnUseRemaining = new javax.swing.JButton(); - btnMaximize = new javax.swing.JButton(); + chkBalanceLRArmor = new javax.swing.JCheckBox("Balance Left/Right Armor"); + chkBalanceFRArmor = new javax.swing.JCheckBox("Balance Front/Rear Armor"); + btnSetArmorTons = new javax.swing.JButton("Set Armor Tonnage"); + btnUseRemaining = new javax.swing.JButton("Use Remaining Tonnage"); + btnMaximize = new javax.swing.JButton("Maximize Armor"); JPanel jPanel8 = new JPanel(); - JLabel jLabel34 = new JLabel(); - JLabel jLabel36 = new JLabel(); - lblArmorTotals = new javax.swing.JLabel(); - lblArmorCoverage = new javax.swing.JLabel(); - txtArmorTons = new javax.swing.JTextField(); - txtArmorSpace = new javax.swing.JTextField(); - lblArmorTonsWasted = new javax.swing.JLabel(); - lblArmorLeftInLot = new javax.swing.JLabel(); + JLabel jLabel34 = new JLabel("Tons"); + JLabel jLabel36 = new JLabel("Space"); + lblArmorTotals = new javax.swing.JLabel("999 of 999 Armor Points"); + lblArmorCoverage = new javax.swing.JLabel("100.00% Coverage"); + txtArmorTons = new javax.swing.JTextField("000.00"); + txtArmorSpace = new javax.swing.JTextField("00"); + lblArmorTonsWasted = new javax.swing.JLabel("0.00 Tons Wasted"); + lblArmorLeftInLot = new javax.swing.JLabel("99 Points Left In This 1/2 Ton Lot"); JPanel pnlEquipment = new JPanel(); pnlEquipInfo = new javax.swing.JPanel(); - JLabel lblAvailability = new JLabel(); - JLabel lblSW = new JLabel(); - JLabel lblCI = new JLabel(); + JLabel lblAvailability = new JLabel("Avail. (AoW/SL)"); + JLabel lblSW = new JLabel("Avail. (SW)"); + JLabel lblCI = new JLabel("Avail. (CI)"); lblInfoAVSL = new javax.swing.JLabel(); lblInfoAVSW = new javax.swing.JLabel(); lblInfoAVCI = new javax.swing.JLabel(); - JLabel lblIntro = new JLabel(); - JLabel lblExtinct = new JLabel(); - JLabel lblReintro = new JLabel(); + JLabel lblIntro = new JLabel("Introduction"); + JLabel lblExtinct = new JLabel("Extinction"); + JLabel lblReintro = new JLabel("Reintroduction"); lblInfoIntro = new javax.swing.JLabel(); lblInfoExtinct = new javax.swing.JLabel(); lblInfoReintro = new javax.swing.JLabel(); - JLabel lblName = new JLabel(); - JLabel lblType = new JLabel(); - JLabel jLabel59 = new JLabel(); - JLabel jLabel60 = new JLabel(); - JLabel jLabel61 = new JLabel(); + JLabel lblName = new JLabel(" "); + JLabel lblType = new JLabel("Type"); + JLabel jLabel59 = new JLabel("Heat"); + JLabel jLabel60 = new JLabel("Damage"); + JLabel jLabel61 = new JLabel("Range"); JLabel lblInfoName = new JLabel(); lblInfoType = new javax.swing.JLabel(); lblInfoHeat = new javax.swing.JLabel(); lblInfoDamage = new javax.swing.JLabel(); lblInfoRange = new javax.swing.JLabel(); JSeparator jSeparator17 = new JSeparator(); - JLabel jLabel62 = new JLabel(); - JLabel jLabel63 = new JLabel(); - JLabel jLabel64 = new JLabel(); - JLabel jLabel65 = new JLabel(); + JLabel jLabel62 = new JLabel("Ammo"); + JLabel jLabel63 = new JLabel("Tonnage"); + JLabel jLabel64 = new JLabel("Crits"); + JLabel jLabel65 = new JLabel("Specials"); lblInfoAmmo = new javax.swing.JLabel(); lblInfoTonnage = new javax.swing.JLabel(); lblInfoCrits = new javax.swing.JLabel(); lblInfoSpecials = new javax.swing.JLabel(); JSeparator jSeparator20 = new JSeparator(); - JLabel jLabel66 = new JLabel(); + JLabel jLabel66 = new JLabel("Cost"); lblInfoCost = new javax.swing.JLabel(); - JLabel jLabel67 = new JLabel(); + JLabel jLabel67 = new JLabel("BV"); lblInfoBV = new javax.swing.JLabel(); - JLabel jLabel68 = new JLabel(); - JLabel lblMMName = new JLabel(); + JLabel jLabel68 = new JLabel("Mounting Restrictions"); + JLabel lblMMName = new JLabel("MM Name"); lblMMNameInfo = new javax.swing.JLabel(); lblInfoMountRestrict = new javax.swing.JLabel(); - JLabel jLabel69 = new JLabel(); + JLabel jLabel69 = new JLabel("Rules Level"); lblInfoRulesLevel = new javax.swing.JLabel(); - JLabel jLabel6 = new JLabel(); + JLabel jLabel6 = new JLabel("Avail. (DA)"); lblInfoAVDA = new javax.swing.JLabel(); JPanel pnlSpecials = new JPanel(); - JLabel jLabel37 = new JLabel(); - chkUseTC = new javax.swing.JCheckBox(); - chkFCSAIV = new javax.swing.JCheckBox(); - chkFCSAV = new javax.swing.JCheckBox(); - chkFCSApollo = new javax.swing.JCheckBox(); - chkCASE = new javax.swing.JCheckBox(); + JLabel jLabel37 = new JLabel("Missile Guidance:"); + chkUseTC = new javax.swing.JCheckBox("Targeting Computer"); + chkFCSAIV = new javax.swing.JCheckBox("Use Artemis IV"); + chkFCSAV = new javax.swing.JCheckBox("Use Artemis V"); + chkFCSApollo = new javax.swing.JCheckBox("Use MRM Apollo"); + chkCASE = new javax.swing.JCheckBox("Use CASE"); JPanel pnlControls = new JPanel(); - JButton btnRemoveEquip = new JButton(); - JButton btnClearEquip = new JButton(); + JButton btnRemoveEquip = new JButton("<<"); + JButton btnClearEquip = new JButton("Clear"); // Variables declaration - do not modify//GEN-BEGIN:variables - JButton btnAddEquip = new JButton(); + JButton btnAddEquip = new JButton(">>"); cmbNumEquips = new javax.swing.JComboBox(); JScrollPane scrLocations = new JScrollPane(); cmbLocation = new javax.swing.JList(); @@ -1201,9 +1202,9 @@ private void initComponents() { lstChooseAmmunition = new javax.swing.JList(); JPanel pnlFluff = new JPanel(); JPanel pnlExport = new JPanel(); - JButton btnExportTXT = new JButton(); - JButton btnExportHTML = new JButton(); - JButton btnExportMTF = new JButton(); + JButton btnExportTXT = new JButton("to TXT"); + JButton btnExportHTML = new JButton("to HTML"); + JButton btnExportMTF = new JButton("to MegaMek"); JTabbedPane tbpFluffEditors = new JTabbedPane(); pnlOverview = new javax.swing.JPanel(); pnlCapabilities = new javax.swing.JPanel(); @@ -1236,79 +1237,79 @@ private void initComponents() { JLabel jLabel90 = new JLabel(); txtJJModel = new javax.swing.JTextField(); JPanel pnlQuirks = new JPanel(); - JLabel lblBattleMechQuirks = new JLabel(); + JLabel lblBattleMechQuirks = new JLabel("Quirks"); JScrollPane scpQuirkTable = new JScrollPane(); - JButton btnAddQuirk = new JButton(); + JButton btnAddQuirk = new JButton("Manage Quirks"); JPanel pnlBFStats = new JPanel(); - JLabel jLabel70 = new JLabel(); - JLabel jLabel71 = new JLabel(); - JLabel jLabel72 = new JLabel(); - JLabel jLabel73 = new JLabel(); - JLabel jLabel74 = new JLabel(); - JLabel jLabel75 = new JLabel(); - JLabel jLabel76 = new JLabel(); - JLabel jLabel77 = new JLabel(); - JLabel jLabel78 = new JLabel(); - JLabel jLabel79 = new JLabel(); - lblBFMV = new javax.swing.JLabel(); - lblBFWt = new javax.swing.JLabel(); - lblBFOV = new javax.swing.JLabel(); - lblBFExtreme = new javax.swing.JLabel(); - lblBFShort = new javax.swing.JLabel(); - lblBFMedium = new javax.swing.JLabel(); - lblBFLong = new javax.swing.JLabel(); - lblBFArmor = new javax.swing.JLabel(); - lblBFStructure = new javax.swing.JLabel(); - lblBFSA = new javax.swing.JLabel(); - JLabel jLabel80 = new JLabel(); - lblBFPoints = new javax.swing.JLabel(); + JLabel jLabel70 = new JLabel("MV"); + JLabel jLabel71 = new JLabel("S (+0)"); + JLabel jLabel72 = new JLabel("M (+2)"); + JLabel jLabel73 = new JLabel("L (+4)"); + JLabel jLabel74 = new JLabel("E (+6)"); + JLabel jLabel75 = new JLabel("Wt."); + JLabel jLabel76 = new JLabel("OV"); + JLabel jLabel77 = new JLabel("Armor:"); + JLabel jLabel78 = new JLabel("Structure:"); + JLabel jLabel79 = new JLabel("Special Abilities:"); + lblBFMV = new javax.swing.JLabel("0"); + lblBFWt = new javax.swing.JLabel("1"); + lblBFOV = new javax.swing.JLabel("0"); + lblBFExtreme = new javax.swing.JLabel("0"); + lblBFShort = new javax.swing.JLabel("0"); + lblBFMedium = new javax.swing.JLabel("0"); + lblBFLong = new javax.swing.JLabel("0"); + lblBFArmor = new javax.swing.JLabel("0"); + lblBFStructure = new javax.swing.JLabel("0"); + lblBFSA = new javax.swing.JLabel("Placeholder"); + JLabel jLabel80 = new JLabel("Points:"); + lblBFPoints = new javax.swing.JLabel("0"); JPanel pnlConversionSteps = new JPanel(); JScrollPane scpBFConversion = new JScrollPane(); jTextAreaBFConversion = new javax.swing.JTextArea(); JPanel pnlImage = new JPanel(); lblFluffImage = new javax.swing.JLabel(); JPanel pnlImageButtons = new JPanel(); - JButton btnLoadImage = new JButton(); - JButton btnClearImage = new JButton(); + JButton btnLoadImage = new JButton("Load Image"); + JButton btnClearImage = new JButton("Clear Image"); JMenuBar jMenuBar1 = new JMenuBar(); - JMenu mnuFile = new JMenu(); - JMenuItem mnuNewMech = new JMenuItem(); - JMenuItem mnuLoad = new JMenuItem(); - JMenuItem mnuOpen = new JMenuItem(); - JMenu mnuImport = new JMenu(); - JMenuItem mnuImportHMP = new JMenuItem(); - JMenuItem mnuBatchHMP = new JMenuItem(); + JMenu mnuFile = new JMenu("File"); + JMenuItem mnuNewMech = new JMenuItem("New"); + JMenuItem mnuLoad = new JMenuItem("Load"); + JMenuItem mnuOpen = new JMenuItem("Open"); + JMenu mnuImport = new JMenu("Import..."); + JMenuItem mnuImportHMP = new JMenuItem("from Heavy Metal Pro (HMP)"); + JMenuItem mnuBatchHMP = new JMenuItem("Batch Import HMP Files"); JSeparator jSeparator22 = new JSeparator(); - JMenuItem mnuSave = new JMenuItem(); - JMenuItem mnuSaveAs = new JMenuItem(); - JMenu mnuExport = new JMenu(); - JMenuItem mnuExportHTML = new JMenuItem(); - JMenuItem mnuExportMTF = new JMenuItem(); - JMenuItem mnuExportTXT = new JMenuItem(); - JMenuItem mnuExportClipboard = new JMenuItem(); - JMenuItem mnuCreateTCGMech = new JMenuItem(); + JMenuItem mnuSave = new JMenuItem("Save"); + JMenuItem mnuSaveAs = new JMenuItem("Save As..."); + JMenu mnuExport = new JMenu("Export As..."); + JMenuItem mnuExportHTML = new JMenuItem("to HTML (Web)"); + JMenuItem mnuExportMTF = new JMenuItem("to MTF (MegaMek)"); + JMenuItem mnuExportTXT = new JMenuItem("to TXT (Text)"); + JMenuItem mnuExportClipboard = new JMenuItem("to Clipboard (Text)"); + JMenuItem mnuCreateTCGMech = new JMenuItem("to TCG Format (Card)"); JSeparator jSeparator23 = new JSeparator(); - JMenu mnuPrint = new JMenu(); - JMenuItem mnuPrintPreview = new JMenuItem(); + JMenu mnuPrint = new JMenu("Print"); + JMenuItem mnuPrintPreview = new JMenuItem("Print Preview"); JSeparator jSeparator24 = new JSeparator(); - JMenuItem mnuExit = new JMenuItem(); - JMenu mnuClearFluff = new JMenu(); - JMenuItem mnuSummary = new JMenuItem(); - JMenuItem mnuCostBVBreakdown = new JMenuItem(); - JMenuItem mnuTextTRO = new JMenuItem(); + JMenuItem mnuExit = new JMenuItem("Exit"); + JMenu mnuClearFluff = new JMenu("Tools"); + JMenuItem mnuSummary = new JMenuItem("Show Summary"); + JMenuItem mnuCostBVBreakdown = new JMenuItem("Cost/BV Breakdown"); + JMenuItem mnuTextTRO = new JMenuItem("Show Text TRO Format"); JSeparator jSeparator26 = new JSeparator(); - JMenuItem mnuBFB = new JMenuItem(); + JMenuItem mnuBFB = new JMenuItem("Load Force Balancer"); JSeparator jSeparator27 = new JSeparator(); - JMenuItem mnuOptions = new JMenuItem(); - mnuViewToolbar = new javax.swing.JCheckBoxMenuItem(); - JMenuItem mnuClearUserData = new JMenuItem(); + JMenuItem mnuOptions = new JMenuItem("Preferences"); + mnuViewToolbar = new javax.swing.JCheckBoxMenuItem("View Toolbar"); + JMenuItem mnuClearUserData = new JMenuItem("Clear User Data"); JSeparator jSeparator30 = new JSeparator(); - mnuUnlock = new javax.swing.JMenuItem(); - JMenuItem jMenuItem1 = new JMenuItem(); - JMenuItem mnuReloadEquipment = new JMenuItem(); - JMenu mnuHelp = new JMenu(); - JMenuItem mnuCredits = new JMenuItem(); - JMenuItem mnuAboutSSW = new JMenuItem(); + mnuUnlock = new javax.swing.JMenuItem("Unlock Chassis"); + JMenuItem jMenuItem1 = new JMenuItem("Clear All Fluff"); + JMenuItem mnuReloadEquipment = new JMenuItem("Reload Equipment"); + JMenu mnuHelp = new JMenu("Help"); + JMenuItem mnuCredits = new JMenuItem("Credits"); + JMenuItem mnuAboutSSW = new JMenuItem("About SAW"); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setMaximumSize(new Dimension(1600, 900)); @@ -1468,7 +1469,6 @@ public void windowClosed(java.awt.event.WindowEvent evt) { tlbIconBar.add(btnOptions); tlbIconBar.add(jSeparator21); - lblSelectVariant.setText("Selected Variant: "); lblSelectVariant.setEnabled(false); tlbIconBar.add(lblSelectVariant); @@ -1481,52 +1481,36 @@ public void windowClosed(java.awt.event.WindowEvent evt) { jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Basic Information")); - jLabel1.setText("Vehicle Name:"); - txtVehicleName.setMinimumSize(new Dimension(150, 20)); txtVehicleName.setPreferredSize(new Dimension(150, 20)); - jLabel4.setText("Model:"); - txtModel.setMinimumSize(new Dimension(150, 20)); txtModel.setPreferredSize(new Dimension(150, 20)); - jLabel2.setText("Rules Level:"); - cmbRulesLevel.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Introductory", "Tournament Legal", "Advanced", "Experimental" })); cmbRulesLevel.setSelectedIndex(1); cmbRulesLevel.setMinimumSize(new Dimension(150, 20)); cmbRulesLevel.setPreferredSize(new Dimension(150, 20)); cmbRulesLevel.addActionListener(this::cmbRulesLevelActionPerformed); - jLabel5.setText("Era:"); - cmbEra.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Age of War/Star League", "Succession Wars", "Clan Invasion", "Dark Ages", "All Eras (non-canon)" })); cmbEra.setSelectedIndex(1); cmbEra.setMinimumSize(new Dimension(150, 20)); cmbEra.setPreferredSize(new Dimension(150, 20)); cmbEra.addActionListener(this::cmbEraActionPerformed); - jLabel3.setText("Tech Base:"); - cmbTechBase.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Inner Sphere", "Clan", "Mixed Tech" })); cmbTechBase.setMinimumSize(new Dimension(150, 20)); cmbTechBase.setPreferredSize(new Dimension(150, 20)); cmbTechBase.addActionListener(this::cmbTechBaseActionPerformed); - lblEraYears.setText("2443~2800"); - - chkYearRestrict.setText("Restrict Availability by Year"); chkYearRestrict.addActionListener(this::chkYearRestrictActionPerformed); jLabel81.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); - jLabel81.setText("Source:"); txtSource.setMinimumSize(new Dimension(150, 20)); txtSource.setPreferredSize(new Dimension(150, 20)); - lblProdYear.setText("Prod Year/Era:"); - txtProdYear.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtProdYear.setDisabledTextColor(new java.awt.Color(0, 0, 0)); txtProdYear.setMaximumSize(new Dimension(60, 20)); @@ -1663,14 +1647,8 @@ public void mousePressed( MouseEvent e ) { cmbMotiveType.setPreferredSize(new Dimension(150, 20)); cmbMotiveType.addActionListener(this::cmbMotiveTypeActionPerformed); - jLabel7.setText("Motive Type:"); - - jLabel8.setText("Tonnage:"); - - chkOmniVee.setText("OmniVehicle"); chkOmniVee.addActionListener(this::chkOmniVeeActionPerformed); - chkTrailer.setText("Trailer"); chkTrailer.setEnabled(false); chkTrailer.addActionListener(this::chkTrailerActionPerformed); @@ -1691,24 +1669,15 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { } }); - jLabel9.setText("Engine:"); - cmbEngineType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "I.C.E.", "Fusion", "Light Fusion", "XL Fusion", "Compact Fusion" })); cmbEngineType.setMinimumSize(new Dimension(150, 20)); cmbEngineType.setPreferredSize(new Dimension(150, 20)); cmbEngineType.addActionListener(this::cmbEngineTypeActionPerformed); - jLabel32.setText("Turret:"); - cmbTurret.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "No Turret", "Single Turret", "Dual Turret", "Sponson Turrets", "Chin Turret", "Mast Turret" })); cmbTurret.addActionListener(this::cmbTurretActionPerformed); lblVeeClass.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); - lblVeeClass.setText("Assault Vee"); - - lblVeeLimits.setText("500t Max"); - - jLabel91.setText("Heat Sinks:"); spnHeatSinks.setModel(new javax.swing.SpinnerNumberModel(10, 1, null, 1)); spnHeatSinks.setMinimumSize(new Dimension(45, 20)); @@ -1731,6 +1700,10 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { spnTurretTonnage.setEnabled(false); spnTurretTonnage.addChangeListener(this::spnTurretTonnageStateChanged); + spnRearTurretTonnage.setModel(new javax.swing.SpinnerNumberModel(0.0d, 0.0d, 50.0d, 0.5d)); + spnRearTurretTonnage.setEnabled(false); + spnRearTurretTonnage.addChangeListener(this::spnRearTurretTonnageStateChanged); + GroupLayout pnlChassisLayout = new GroupLayout(pnlChassis); pnlChassis.setLayout(pnlChassisLayout); pnlChassisLayout.setHorizontalGroup( @@ -1755,6 +1728,12 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addComponent(cmbTurret, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(spnTurretTonnage)) + .addGroup(pnlChassisLayout.createSequentialGroup() + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addComponent(spnRearTurretTonnage)) .addGroup(pnlChassisLayout.createSequentialGroup() .addComponent(jLabel9) .addGap(2, 2, 2) @@ -1807,6 +1786,9 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addComponent(cmbTurret, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(spnTurretTonnage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addGroup(pnlChassisLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(spnRearTurretTonnage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addGroup(pnlChassisLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlChassisLayout.createSequentialGroup() .addGap(3, 3, 3) @@ -1817,8 +1799,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { pnlMovement.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Movement")); - jLabel10.setText("Cruise MP:"); - spnCruiseMP.setModel(new javax.swing.SpinnerNumberModel(1, 1, null, 1)); spnCruiseMP.setMinimumSize(new Dimension(45, 20)); spnCruiseMP.setPreferredSize(new Dimension(45, 20)); @@ -1831,12 +1811,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { } }); - jLabel11.setText("Flank MP:"); - - lblFlankMP.setText("2"); - - jLabel13.setText("Jump MP:"); - spnJumpMP.setEnabled(false); spnJumpMP.setMinimumSize(new Dimension(45, 20)); spnJumpMP.setPreferredSize(new Dimension(45, 20)); @@ -1889,7 +1863,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { pnlChassisMods.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Chassis Modifications")); pnlChassisMods.setLayout(new java.awt.GridBagLayout()); - chkFlotationHull.setText("Flotation Hull"); chkFlotationHull.setEnabled(false); chkFlotationHull.addActionListener(this::chkFlotationHullActionPerformed); gridBagConstraints = new GridBagConstraints(); @@ -1898,7 +1871,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.anchor = GridBagConstraints.WEST; pnlChassisMods.add(chkFlotationHull, gridBagConstraints); - chkLimitedAmph.setText("Limited Amphibious"); chkLimitedAmph.setEnabled(false); chkLimitedAmph.addActionListener(this::chkLimitedAmphActionPerformed); gridBagConstraints = new GridBagConstraints(); @@ -1907,7 +1879,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.anchor = GridBagConstraints.WEST; pnlChassisMods.add(chkLimitedAmph, gridBagConstraints); - chkFullAmph.setText("Fully Amphibious"); chkFullAmph.setEnabled(false); chkFullAmph.addActionListener(this::chkFullAmphActionPerformed); gridBagConstraints = new GridBagConstraints(); @@ -1916,7 +1887,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.anchor = GridBagConstraints.WEST; pnlChassisMods.add(chkFullAmph, gridBagConstraints); - chkDuneBuggy.setText("Dune Buggy"); chkDuneBuggy.setEnabled(false); chkDuneBuggy.addActionListener(this::chkDuneBuggyActionPerformed); gridBagConstraints = new GridBagConstraints(); @@ -1925,7 +1895,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.anchor = GridBagConstraints.WEST; pnlChassisMods.add(chkDuneBuggy, gridBagConstraints); - chkEnviroSealing.setText("Enviro (Vacuum) Sealing"); chkEnviroSealing.setEnabled(false); chkEnviroSealing.addActionListener(this::chkEnviroSealingActionPerformed); gridBagConstraints = new GridBagConstraints(); @@ -1936,27 +1905,14 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { pnlExperimental.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Experimental Equipment")); - chkArmoredMotive.setText("Armored Motive System"); chkArmoredMotive.setEnabled(false); - - chkCommandConsole.setText("Command Console"); chkCommandConsole.setEnabled(false); - - chkEscapePod.setText("Combat Vehicle Escape Pod"); chkEscapePod.setEnabled(false); - - chkMinesweeper.setText("Minesweeper"); chkMinesweeper.setEnabled(false); - - chkJetBooster.setText("VTOL Jet Booster"); chkJetBooster.setEnabled(false); chkJetBooster.addActionListener(this::chkJetBoosterActionPerformed); - - chkSupercharger.setText("Supercharger"); chkSupercharger.setEnabled(false); chkSupercharger.addActionListener(this::chkSuperchargerActionPerformed); - - chkSponsonTurret.setText("Sponson Turret"); chkSponsonTurret.setEnabled(false); chkSponsonTurret.addActionListener(this::chkSponsonTurretActionPerformed); @@ -1997,7 +1953,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { jPanel11.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Construction Options")); jPanel11.setLayout(new java.awt.GridBagLayout()); - chkFractional.setText("Use Fractional Accounting"); chkFractional.setEnabled(false); chkFractional.addActionListener(this::chkFractionalActionPerformed); gridBagConstraints = new GridBagConstraints(); @@ -2009,23 +1964,14 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { pnlSummary.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Summary")); pnlSummary.setLayout(new java.awt.GridBagLayout()); - jLabel12.setText("Item"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); pnlSummary.add(jLabel12, gridBagConstraints); - - jLabel14.setText("Tonnage"); pnlSummary.add(jLabel14, new GridBagConstraints()); - - jLabel15.setText("Space"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2); pnlSummary.add(jLabel15, gridBagConstraints); - - jLabel16.setText("Availability"); pnlSummary.add(jLabel16, new GridBagConstraints()); - - jLabel17.setText("Internal Structure:"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; @@ -2055,7 +2001,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumIntAV, gridBagConstraints); - jLabel18.setText("Engine:"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; @@ -2085,7 +2030,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumEngAV, gridBagConstraints); - jLabel19.setText("Lift/Dive/Rotor:"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; @@ -2126,7 +2070,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2); pnlSummary.add(txtSumEngSpace, gridBagConstraints); - jLabel20.setText("Controls:"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; @@ -2156,7 +2099,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumConAV, gridBagConstraints); - jLabel21.setText("Jump Jets:"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 5; @@ -2197,7 +2139,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumJJAV, gridBagConstraints); - jLabel22.setText("Heat Sinks:"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 6; @@ -2227,7 +2168,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumHSAV, gridBagConstraints); - jLabel23.setText("Armor:"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 7; @@ -2268,7 +2208,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumArmAV, gridBagConstraints); - jLabel24.setText("Turret:"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 8; @@ -2298,7 +2237,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumTurAV, gridBagConstraints); - jLabel25.setText("Rear Turret:"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 9; @@ -2328,7 +2266,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumRTuAV, gridBagConstraints); - jLabel26.setText("Sponsons:"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 10; @@ -2358,7 +2295,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.anchor = GridBagConstraints.WEST; pnlSummary.add(txtSumSpnAV, gridBagConstraints); - jLabel27.setText("Power Amplifiers:"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 11; @@ -2390,30 +2326,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { pnlInformation.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Information")); - titleSuspension.setText("Suspension Factor:"); - - lblSupensionFacter.setText("000"); - - titleMinEngTon.setText("Minimum Engine Tonnage:"); - - lblMinEngineTons.setText("10"); - - titleBaseEngRate.setText("Base Engine Rating:"); - - lblBaseEngineRating.setText("000"); - - titleFinalEngRate.setText("Final Engine Rating:"); - - lblFinalEngineRating.setText("000"); - - titleFreeHeatSinks.setText("Free Heat Sinks:"); - - lblFreeHeatSinks.setText("000"); - - titleCrew.setText("Crew:"); - - lblNumCrew.setText("00"); - GroupLayout pnlInformationLayout = new GroupLayout(pnlInformation); pnlInformation.setLayout(pnlInformationLayout); pnlInformationLayout.setHorizontalGroup( @@ -2483,7 +2395,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { pnlOmniInfo.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Omni Configuration")); pnlOmniInfo.setLayout(new java.awt.GridBagLayout()); - btnLockChassis.setText("Lock Chassis"); btnLockChassis.setEnabled(false); btnLockChassis.setMaximumSize(new Dimension(200, 23)); btnLockChassis.setMinimumSize(new Dimension(105, 23)); @@ -2495,7 +2406,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; pnlOmniInfo.add(btnLockChassis, gridBagConstraints); - btnAddVariant.setText("Add Variant"); btnAddVariant.setEnabled(false); btnAddVariant.setMaximumSize(new Dimension(200, 23)); btnAddVariant.setMinimumSize(new Dimension(80, 23)); @@ -2507,7 +2417,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; pnlOmniInfo.add(btnAddVariant, gridBagConstraints); - btnDeleteVariant.setText("Delete Variant"); btnDeleteVariant.setEnabled(false); btnDeleteVariant.setMaximumSize(new Dimension(200, 23)); btnDeleteVariant.setMinimumSize(new Dimension(80, 23)); @@ -2519,7 +2428,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; pnlOmniInfo.add(btnDeleteVariant, gridBagConstraints); - btnRenameVariant.setText("Rename Variant"); btnRenameVariant.setEnabled(false); btnRenameVariant.setMinimumSize(new Dimension(80, 23)); btnRenameVariant.setPreferredSize(new Dimension(120, 23)); @@ -2536,7 +2444,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { pnlRightArmor.setLayout(new java.awt.GridBagLayout()); lblRightIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblRightIntPts.setText("00"); lblRightIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); lblRightIntPts.setMaximumSize(new Dimension(45, 20)); lblRightIntPts.setMinimumSize(new Dimension(45, 20)); @@ -2546,10 +2453,8 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.gridy = 1; pnlRightArmor.add(lblRightIntPts, gridBagConstraints); - jLabel40.setText("Internal"); pnlRightArmor.add(jLabel40, new GridBagConstraints()); - jLabel46.setText("Armor"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; @@ -2567,7 +2472,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { pnlFrontArmor.setLayout(new java.awt.GridBagLayout()); lblFrontIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblFrontIntPts.setText("00"); lblFrontIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); lblFrontIntPts.setMaximumSize(new Dimension(45, 20)); lblFrontIntPts.setMinimumSize(new Dimension(45, 20)); @@ -2577,10 +2481,8 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.gridy = 1; pnlFrontArmor.add(lblFrontIntPts, gridBagConstraints); - jLabel45.setText("Internal"); pnlFrontArmor.add(jLabel45, new GridBagConstraints()); - jLabel47.setText("Armor"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; @@ -2598,7 +2500,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { pnlLeftArmor.setLayout(new java.awt.GridBagLayout()); lblLeftIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblLeftIntPts.setText("00"); lblLeftIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); lblLeftIntPts.setMaximumSize(new Dimension(45, 20)); lblLeftIntPts.setMinimumSize(new Dimension(45, 20)); @@ -2608,10 +2509,8 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.gridy = 1; pnlLeftArmor.add(lblLeftIntPts, gridBagConstraints); - jLabel41.setText("Internal"); pnlLeftArmor.add(jLabel41, new GridBagConstraints()); - jLabel48.setText("Armor"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; @@ -2629,7 +2528,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { pnlRearArmor.setLayout(new java.awt.GridBagLayout()); lblRearIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblRearIntPts.setText("00"); lblRearIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); lblRearIntPts.setMaximumSize(new Dimension(45, 20)); lblRearIntPts.setMinimumSize(new Dimension(45, 20)); @@ -2639,10 +2537,8 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.gridy = 1; pnlRearArmor.add(lblRearIntPts, gridBagConstraints); - jLabel44.setText("Internal"); pnlRearArmor.add(jLabel44, new GridBagConstraints()); - jLabel49.setText("Armor"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; @@ -2660,7 +2556,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { pnlTurretArmor.setLayout(new java.awt.GridBagLayout()); lblTurretIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblTurretIntPts.setText("00"); lblTurretIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); lblTurretIntPts.setMaximumSize(new Dimension(45, 20)); lblTurretIntPts.setMinimumSize(new Dimension(45, 20)); @@ -2670,10 +2565,8 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.gridy = 1; pnlTurretArmor.add(lblTurretIntPts, gridBagConstraints); - jLabel42.setText("Internal"); pnlTurretArmor.add(jLabel42, new GridBagConstraints()); - jLabel50.setText("Armor"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; @@ -2688,11 +2581,9 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { pnlTurretArmor.add(spnTurretArmor, gridBagConstraints); pnlRearTurretArmor.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "R Turret")); - pnlRearTurretArmor.setEnabled(false); pnlRearTurretArmor.setLayout(new java.awt.GridBagLayout()); lblRearTurretIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblRearTurretIntPts.setText("00"); lblRearTurretIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); lblRearTurretIntPts.setMaximumSize(new Dimension(45, 20)); lblRearTurretIntPts.setMinimumSize(new Dimension(45, 20)); @@ -2702,10 +2593,8 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.gridy = 1; pnlRearTurretArmor.add(lblRearTurretIntPts, gridBagConstraints); - jLabel43.setText("Internal"); pnlRearTurretArmor.add(jLabel43, new GridBagConstraints()); - jLabel51.setText("Armor"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; @@ -2723,7 +2612,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { pnlRotorArmor.setLayout(new java.awt.GridBagLayout()); lblRotorIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblRotorIntPts.setText("00"); lblRotorIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); lblRotorIntPts.setMaximumSize(new Dimension(45, 20)); lblRotorIntPts.setMinimumSize(new Dimension(45, 20)); @@ -2733,10 +2621,8 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.gridy = 1; pnlRotorArmor.add(lblRotorIntPts, gridBagConstraints); - jLabel92.setText("Internal"); pnlRotorArmor.add(jLabel92, new GridBagConstraints()); - jLabel93.setText("Armor"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; @@ -2796,25 +2682,13 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Armor Type")); - jLabel52.setText("Armor Type:"); - cmbArmorType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Standard", "Industrial", "Commercial", "Ferro-Fibrous", "Light Ferro-Fibrous", "Heavy Ferro-Fibrous", "Vehicular Stealth" })); cmbArmorType.setMinimumSize(new Dimension(150, 20)); cmbArmorType.setPreferredSize(new Dimension(150, 20)); cmbArmorType.addActionListener(this::cmbArmorTypeActionPerformed); - chkBalanceLRArmor.setSelected(true); - chkBalanceLRArmor.setText("Balance Left/Right Armor"); - - chkBalanceFRArmor.setText("Balance Front/Rear Armor"); - - btnSetArmorTons.setText("Set Armor Tonnage"); btnSetArmorTons.addActionListener(this::btnSetArmorTonsActionPerformed); - - btnUseRemaining.setText("Use Remaining Tonnage"); btnUseRemaining.addActionListener(this::btnUseRemainingActionPerformed); - - btnMaximize.setText("Maximize Armor"); btnMaximize.addActionListener(this::btnMaximizeActionPerformed); GroupLayout jPanel7Layout = new GroupLayout(jPanel7); @@ -2866,19 +2740,13 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { jPanel8.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Armor Information")); jPanel8.setLayout(new java.awt.GridBagLayout()); - - jLabel34.setText("Tons"); jPanel8.add(jLabel34, new GridBagConstraints()); - - jLabel36.setText("Space"); jPanel8.add(jLabel36, new GridBagConstraints()); - lblArmorTotals.setText("999 of 999 Armor Points"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); jPanel8.add(lblArmorTotals, gridBagConstraints); - lblArmorCoverage.setText("100.00% Coverage"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 1; @@ -2888,7 +2756,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { txtArmorTons.setEditable(false); txtArmorTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtArmorTons.setText("000.00"); txtArmorTons.setMinimumSize(new Dimension(50, 20)); txtArmorTons.setPreferredSize(new Dimension(50, 20)); gridBagConstraints = new GridBagConstraints(); @@ -2898,7 +2765,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { txtArmorSpace.setEditable(false); txtArmorSpace.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtArmorSpace.setText("00"); txtArmorSpace.setMinimumSize(new Dimension(40, 20)); txtArmorSpace.setPreferredSize(new Dimension(40, 20)); gridBagConstraints = new GridBagConstraints(); @@ -2906,7 +2772,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.gridy = 1; jPanel8.add(txtArmorSpace, gridBagConstraints); - lblArmorTonsWasted.setText("0.00 Tons Wasted"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; @@ -2915,7 +2780,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 0); jPanel8.add(lblArmorTonsWasted, gridBagConstraints); - lblArmorLeftInLot.setText("99 Points Left In This 1/2 Ton Lot"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; @@ -2987,7 +2851,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { pnlEquipInfo.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Information")); pnlEquipInfo.setLayout(new java.awt.GridBagLayout()); - lblAvailability.setText("Avail. (AoW/SL)"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; @@ -2995,7 +2858,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 3); pnlEquipInfo.add(lblAvailability, gridBagConstraints); - lblSW.setText("Avail. (SW)"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; @@ -3003,7 +2865,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 3); pnlEquipInfo.add(lblSW, gridBagConstraints); - lblCI.setText("Avail. (CI)"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 5; @@ -3029,7 +2890,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoAVCI, gridBagConstraints); - lblIntro.setText("Introduction"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 3; @@ -3038,7 +2898,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblIntro, gridBagConstraints); - lblExtinct.setText("Extinction"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 4; @@ -3047,7 +2906,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblExtinct, gridBagConstraints); - lblReintro.setText("Reintroduction"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 5; @@ -3077,28 +2935,23 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(lblInfoReintro, gridBagConstraints); - lblName.setText(" "); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 3); pnlEquipInfo.add(lblName, gridBagConstraints); - lblType.setText("Type"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); pnlEquipInfo.add(lblType, gridBagConstraints); - jLabel59.setText("Heat"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); pnlEquipInfo.add(jLabel59, gridBagConstraints); - jLabel60.setText("Damage"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); pnlEquipInfo.add(jLabel60, gridBagConstraints); - jLabel61.setText("Range"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); pnlEquipInfo.add(jLabel61, gridBagConstraints); @@ -3136,28 +2989,24 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.insets = new java.awt.Insets(4, 0, 4, 0); pnlEquipInfo.add(jSeparator17, gridBagConstraints); - jLabel62.setText("Ammo"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); pnlEquipInfo.add(jLabel62, gridBagConstraints); - jLabel63.setText("Tonnage"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 6; gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); pnlEquipInfo.add(jLabel63, gridBagConstraints); - jLabel64.setText("Crits"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 7; gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); pnlEquipInfo.add(jLabel64, gridBagConstraints); - jLabel65.setText("Specials"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 8; gridBagConstraints.gridy = 0; @@ -3197,7 +3046,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.insets = new java.awt.Insets(4, 0, 4, 0); pnlEquipInfo.add(jSeparator20, gridBagConstraints); - jLabel66.setText("Cost"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 4; @@ -3205,6 +3053,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.anchor = GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); pnlEquipInfo.add(jLabel66, gridBagConstraints); + gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 7; gridBagConstraints.gridy = 4; @@ -3213,7 +3062,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 0); pnlEquipInfo.add(lblInfoCost, gridBagConstraints); - jLabel67.setText("BV"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 5; @@ -3230,7 +3078,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 0); pnlEquipInfo.add(lblInfoBV, gridBagConstraints); - jLabel68.setText("Mounting Restrictions"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 8; @@ -3247,7 +3094,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.insets = new java.awt.Insets(0, 3, 4, 0); pnlEquipInfo.add(lblInfoMountRestrict, gridBagConstraints); - lblMMName.setText("MM Name"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 9; @@ -3264,7 +3110,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.insets = new java.awt.Insets(0, 3, 4, 0); pnlEquipInfo.add(lblMMNameInfo, gridBagConstraints); - jLabel69.setText("Rules Level"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 3; @@ -3281,7 +3126,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 0); pnlEquipInfo.add(lblInfoRulesLevel, gridBagConstraints); - jLabel6.setText("Avail. (DA)"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 6; @@ -3298,14 +3142,12 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { pnlSpecials.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Specials")); pnlSpecials.setLayout(new java.awt.GridBagLayout()); - jLabel37.setText("Missile Guidance:"); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 0); pnlSpecials.add(jLabel37, gridBagConstraints); - chkUseTC.setText("Targeting Computer"); chkUseTC.setEnabled(false); chkUseTC.addActionListener(this::chkUseTCActionPerformed); gridBagConstraints = new GridBagConstraints(); @@ -3315,7 +3157,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.insets = new java.awt.Insets(2, 2, 0, 0); pnlSpecials.add(chkUseTC, gridBagConstraints); - chkFCSAIV.setText("Use Artemis IV"); chkFCSAIV.addActionListener(this::chkFCSAIVActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; @@ -3324,7 +3165,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); pnlSpecials.add(chkFCSAIV, gridBagConstraints); - chkFCSAV.setText("Use Artemis V"); chkFCSAV.setEnabled(false); chkFCSAV.addActionListener(this::chkFCSAVActionPerformed); gridBagConstraints = new GridBagConstraints(); @@ -3334,7 +3174,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); pnlSpecials.add(chkFCSAV, gridBagConstraints); - chkFCSApollo.setText("Use MRM Apollo"); chkFCSApollo.setEnabled(false); chkFCSApollo.addActionListener(this::chkFCSApolloActionPerformed); gridBagConstraints = new GridBagConstraints(); @@ -3344,7 +3183,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); pnlSpecials.add(chkFCSApollo, gridBagConstraints); - chkCASE.setText("Use CASE"); chkCASE.addActionListener(this::chkCASEActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; @@ -3356,13 +3194,11 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { pnlControls.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Controls")); pnlControls.setLayout(new java.awt.GridBagLayout()); - btnRemoveEquip.setText("<<"); btnRemoveEquip.addActionListener(this::btnRemoveEquipActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 8); pnlControls.add(btnRemoveEquip, gridBagConstraints); - btnClearEquip.setText("Clear"); btnClearEquip.addActionListener(this::btnClearEquipActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; @@ -3370,7 +3206,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 0); pnlControls.add(btnClearEquip, gridBagConstraints); - btnAddEquip.setText(">>"); btnAddEquip.addActionListener(this::btnAddEquipActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 2; @@ -3647,19 +3482,16 @@ public void mouseClicked( MouseEvent e ) { pnlExport.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Export", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", Font.PLAIN, 11))); // NOI18N pnlExport.setLayout(new java.awt.GridBagLayout()); - btnExportTXT.setText("to TXT"); btnExportTXT.addActionListener(this::btnExportTXTActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.anchor = GridBagConstraints.WEST; pnlExport.add(btnExportTXT, gridBagConstraints); - btnExportHTML.setText("to HTML"); btnExportHTML.addActionListener(this::btnExportHTMLActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 4); pnlExport.add(btnExportHTML, gridBagConstraints); - btnExportMTF.setText("to MegaMek"); btnExportMTF.addActionListener(this::btnExportMTFActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.anchor = GridBagConstraints.EAST; @@ -3751,14 +3583,12 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { //tbpFluffEditors.addTab("Manufacturers", pnlManufacturers); lblBattleMechQuirks.setFont(new java.awt.Font("Arial", Font.BOLD, 12)); // NOI18N - lblBattleMechQuirks.setText("Quirks"); tblQuirks.setModel(new tbQuirks(new ArrayList<Quirk>())); tblQuirks.setColumnSelectionAllowed(true); tblQuirks.getTableHeader().setReorderingAllowed(false); scpQuirkTable.setViewportView(tblQuirks); - btnAddQuirk.setText("Manage Quirks"); btnAddQuirk.addActionListener(this::btnAddQuirkActionPerformed); GroupLayout pnlQuirksLayout = new GroupLayout(pnlQuirks); @@ -3791,81 +3621,37 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { pnlBFStats.setBorder(javax.swing.BorderFactory.createTitledBorder("BattleForce Stats")); pnlBFStats.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); - jLabel70.setText("MV"); pnlBFStats.add(jLabel70, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 30, -1, -1)); - - jLabel71.setText("S (+0)"); pnlBFStats.add(jLabel71, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 30, -1, -1)); - - jLabel72.setText("M (+2)"); pnlBFStats.add(jLabel72, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 30, -1, -1)); - - jLabel73.setText("L (+4)"); pnlBFStats.add(jLabel73, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 30, -1, -1)); - - jLabel74.setText("E (+6)"); pnlBFStats.add(jLabel74, new org.netbeans.lib.awtextra.AbsoluteConstraints(210, 30, -1, -1)); - - jLabel75.setText("Wt."); pnlBFStats.add(jLabel75, new org.netbeans.lib.awtextra.AbsoluteConstraints(260, 30, -1, -1)); - - jLabel76.setText("OV"); pnlBFStats.add(jLabel76, new org.netbeans.lib.awtextra.AbsoluteConstraints(300, 30, -1, -1)); - - jLabel77.setText("Armor:"); pnlBFStats.add(jLabel77, new org.netbeans.lib.awtextra.AbsoluteConstraints(280, 110, -1, -1)); - - jLabel78.setText("Structure:"); pnlBFStats.add(jLabel78, new org.netbeans.lib.awtextra.AbsoluteConstraints(280, 140, -1, -1)); - - jLabel79.setText("Special Abilities:"); pnlBFStats.add(jLabel79, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 110, -1, -1)); - lblBFMV.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblBFMV.setText("0"); pnlBFStats.add(lblBFMV, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 50, 30, -1)); - lblBFWt.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblBFWt.setText("1"); pnlBFStats.add(lblBFWt, new org.netbeans.lib.awtextra.AbsoluteConstraints(250, 50, 30, -1)); - lblBFOV.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblBFOV.setText("0"); pnlBFStats.add(lblBFOV, new org.netbeans.lib.awtextra.AbsoluteConstraints(290, 50, 30, -1)); - lblBFExtreme.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblBFExtreme.setText("0"); pnlBFStats.add(lblBFExtreme, new org.netbeans.lib.awtextra.AbsoluteConstraints(210, 50, 30, -1)); - lblBFShort.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblBFShort.setText("0"); pnlBFStats.add(lblBFShort, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 50, 30, -1)); - lblBFMedium.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblBFMedium.setText("0"); pnlBFStats.add(lblBFMedium, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 50, 30, -1)); - lblBFLong.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblBFLong.setText("0"); pnlBFStats.add(lblBFLong, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 50, 30, -1)); - lblBFArmor.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblBFArmor.setText("0"); pnlBFStats.add(lblBFArmor, new org.netbeans.lib.awtextra.AbsoluteConstraints(410, 30, 30, -1)); - lblBFStructure.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblBFStructure.setText("0"); pnlBFStats.add(lblBFStructure, new org.netbeans.lib.awtextra.AbsoluteConstraints(410, 60, 30, -1)); - - lblBFSA.setText("Placeholder"); pnlBFStats.add(lblBFSA, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 130, 430, 20)); - - jLabel80.setText("Points:"); pnlBFStats.add(jLabel80, new org.netbeans.lib.awtextra.AbsoluteConstraints(460, 30, -1, -1)); - - lblBFPoints.setText("0"); pnlBFStats.add(lblBFPoints, new org.netbeans.lib.awtextra.AbsoluteConstraints(510, 30, -1, -1)); - pnlConversionSteps.setBorder(javax.swing.BorderFactory.createTitledBorder("Conversion Steps")); jTextAreaBFConversion.setColumns(60); @@ -3896,11 +3682,9 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { pnlImageButtons.setLayout(new java.awt.GridBagLayout()); - btnLoadImage.setText("Load Image"); btnLoadImage.addActionListener(this::btnLoadImageActionPerformed); pnlImageButtons.add(btnLoadImage, new GridBagConstraints()); - btnClearImage.setText("Clear Image"); btnClearImage.addActionListener(this::btnClearImageActionPerformed); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; @@ -3959,31 +3743,23 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { //pnlBF.add(pnlExport); tbpMainTabPane.addTab("BattleForce", pnlBF); - mnuFile.setText("File"); mnuFile.addActionListener(this::mnuFileActionPerformed); mnuNewMech.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.ALT_MASK)); - mnuNewMech.setText("New"); mnuNewMech.addActionListener(this::mnuNewMechActionPerformed); mnuFile.add(mnuNewMech); mnuLoad.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.ALT_MASK)); - mnuLoad.setText("Load"); mnuLoad.addActionListener(this::mnuLoadActionPerformed); mnuFile.add(mnuLoad); mnuOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_MASK)); - mnuOpen.setText("Open"); mnuOpen.addActionListener(this::mnuOpenActionPerformed); mnuFile.add(mnuOpen); - mnuImport.setText("Import..."); - - mnuImportHMP.setText("from Heavy Metal Pro (HMP)"); mnuImportHMP.addActionListener(this::mnuImportHMPActionPerformed); mnuImport.add(mnuImportHMP); - mnuBatchHMP.setText("Batch Import HMP Files"); mnuBatchHMP.addActionListener(this::mnuBatchHMPActionPerformed); mnuImport.add(mnuBatchHMP); @@ -3991,115 +3767,86 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { mnuFile.add(jSeparator22); mnuSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_MASK)); - mnuSave.setText("Save"); mnuSave.addActionListener(this::mnuSaveActionPerformed); mnuFile.add(mnuSave); mnuSaveAs.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK)); - mnuSaveAs.setText("Save As..."); mnuSaveAs.addActionListener(this::mnuSaveAsActionPerformed); mnuFile.add(mnuSaveAs); - mnuExport.setText("Export As..."); - - mnuExportHTML.setText("to HTML (Web)"); mnuExportHTML.addActionListener(this::mnuExportHTMLActionPerformed); mnuExport.add(mnuExportHTML); - mnuExportMTF.setText("to MTF (MegaMek)"); mnuExportMTF.addActionListener(this::mnuExportMTFActionPerformed); mnuExport.add(mnuExportMTF); - mnuExportTXT.setText("to TXT (Text)"); mnuExportTXT.addActionListener(this::mnuExportTXTActionPerformed); mnuExport.add(mnuExportTXT); - mnuExportClipboard.setText("to Clipboard (Text)"); mnuExportClipboard.addActionListener(this::mnuExportClipboardActionPerformed); mnuExport.add(mnuExportClipboard); - mnuCreateTCGMech.setText("to TCG Format (Card)"); mnuCreateTCGMech.addActionListener(this::mnuCreateTCGMechActionPerformed); mnuExport.add(mnuCreateTCGMech); mnuFile.add(mnuExport); mnuFile.add(jSeparator23); - - mnuPrint.setText("Print"); mnuFile.add(mnuPrint); mnuPrintPreview.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK)); - mnuPrintPreview.setText("Print Preview"); mnuPrintPreview.addActionListener(this::mnuPrintPreviewActionPerformed); mnuFile.add(mnuPrintPreview); mnuFile.add(jSeparator24); mnuExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.ALT_MASK)); - mnuExit.setText("Exit"); mnuExit.addActionListener(this::mnuExitActionPerformed); mnuFile.add(mnuExit); jMenuBar1.add(mnuFile); - mnuClearFluff.setText("Tools"); - mnuSummary.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.ALT_MASK)); - mnuSummary.setText("Show Summary"); mnuSummary.addActionListener(this::mnuSummaryActionPerformed); mnuClearFluff.add(mnuSummary); - mnuCostBVBreakdown.setText("Cost/BV Breakdown"); mnuCostBVBreakdown.addActionListener(this::mnuCostBVBreakdownActionPerformed); mnuClearFluff.add(mnuCostBVBreakdown); - mnuTextTRO.setText("Show Text TRO Format"); mnuTextTRO.addActionListener(this::mnuTextTROActionPerformed); mnuClearFluff.add(mnuTextTRO); mnuClearFluff.add(jSeparator26); - mnuBFB.setText("Load Force Balancer"); mnuBFB.addActionListener(this::mnuBFBActionPerformed); mnuClearFluff.add(mnuBFB); mnuClearFluff.add(jSeparator27); mnuOptions.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_MASK)); - mnuOptions.setText("Preferences"); mnuOptions.addActionListener(this::mnuOptionsActionPerformed); mnuClearFluff.add(mnuOptions); mnuViewToolbar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.ALT_MASK)); mnuViewToolbar.setSelected(true); - mnuViewToolbar.setText("View Toolbar"); mnuViewToolbar.addActionListener(this::mnuViewToolbarActionPerformed); mnuClearFluff.add(mnuViewToolbar); - mnuClearUserData.setText("Clear User Data"); mnuClearUserData.addActionListener(this::mnuClearUserDataActionPerformed); mnuClearFluff.add(mnuClearUserData); mnuClearFluff.add(jSeparator30); - mnuUnlock.setText("Unlock Chassis"); mnuUnlock.setEnabled(false); mnuUnlock.addActionListener(this::mnuUnlockActionPerformed); mnuClearFluff.add(mnuUnlock); - jMenuItem1.setText("Clear All Fluff"); jMenuItem1.addActionListener(this::jMenuItem1ActionPerformed); mnuClearFluff.add(jMenuItem1); - mnuReloadEquipment.setText("Reload Equipment"); mnuReloadEquipment.addActionListener(this::mnuReloadEquipmentActionPerformed); mnuClearFluff.add(mnuReloadEquipment); jMenuBar1.add(mnuClearFluff); - mnuHelp.setText("Help"); - - mnuCredits.setText("Credits"); mnuCredits.addActionListener(this::mnuCreditsActionPerformed); mnuHelp.add(mnuCredits); - mnuAboutSSW.setText("About SAW"); mnuAboutSSW.addActionListener(this::mnuAboutSSWActionPerformed); mnuHelp.add(mnuAboutSSW); @@ -4254,24 +4001,27 @@ private void RecalcArmorLocations() { spnRearTurretArmor.setValue(0); pnlTurretArmor.setVisible(false); pnlRearTurretArmor.setVisible(false); + spnTurretTonnage.setValue(0); + spnTurretTonnage.setEnabled(false); } else if ( cmbTurret.getSelectedItem().toString().equals("Single Turret")) { pnlTurretArmor.setVisible(true); spnRearTurretArmor.setValue(0); pnlRearTurretArmor.setVisible(false); + spnTurretTonnage.setEnabled(true); } else if (cmbTurret.getSelectedItem().toString().equals("Chin Turret")) { pnlTurretArmor.setVisible(true); spnRearTurretArmor.setValue(0); pnlRearTurretArmor.setVisible(false); + spnTurretTonnage.setEnabled(true); } else if ( cmbTurret.getSelectedItem().toString().equals("Dual Turret") ) { pnlTurretArmor.setVisible(true); pnlRearTurretArmor.setVisible(true); + spnTurretTonnage.setEnabled(true); } if ( CurVee.IsVTOL() ) { pnlRotorArmor.setVisible(true); - //spnRotorArmor.setEnabled(true); } else { pnlRotorArmor.setVisible(false); - //spnRotorArmor.setEnabled(false); spnRotorArmor.setValue(0); } } @@ -7937,6 +7687,20 @@ private void spnTurretTonnageStateChanged(javax.swing.event.ChangeEvent evt) { RefreshInfoPane(); } + private void spnRearTurretTonnageStateChanged(javax.swing.event.ChangeEvent evt) { + double Tons = 0; + try { + Tons = Double.parseDouble(spnRearTurretTonnage.getValue().toString()); + CurVee.GetLoadout().GetRearTurret().SetTonnage(Tons); + } catch (Exception e) { + Media.Messager(e.getMessage()); + return; + } + + RefreshSummary(); + RefreshInfoPane(); + } + private void spnHeatSinksInputMethodTextChanged(java.awt.event.InputMethodEvent evt) { } @@ -8003,6 +7767,7 @@ private void cmbTurretActionPerformed(java.awt.event.ActionEvent evt) { CurVee.setHasTurret1(false); CurVee.setHasTurret2(false); spnTurretTonnage.setEnabled(false); + spnTurretTonnage.setValue(0); } BuildLocationSelector(); @@ -8869,6 +8634,7 @@ private void FixJJSpinnerModel() { private javax.swing.JSpinner spnTonnage; private javax.swing.JSpinner spnTurretArmor; private javax.swing.JSpinner spnTurretTonnage; + private javax.swing.JSpinner spnRearTurretTonnage; private javax.swing.JTable tblWeaponManufacturers; private javax.swing.JTabbedPane tbpMainTabPane; private javax.swing.JTabbedPane tbpWeaponChooser; From 68cbaf1a71a3942e5125f7d3241eae80788073e0 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 25 Feb 2023 20:48:12 -0700 Subject: [PATCH 114/199] Cleanup UI Code --- saw/src/main/java/saw/gui/frmVeeWide.java | 771 ++++------------------ sswlib/src/main/java/common/Utils.java | 13 + 2 files changed, 159 insertions(+), 625 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index b2f8d8a0..fb29ea5a 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -50,10 +50,10 @@ import visitors.ifVisitor; import javax.swing.*; +import javax.swing.event.ChangeListener; import javax.swing.text.JTextComponent; import java.awt.*; import java.awt.datatransfer.Clipboard; -import java.awt.datatransfer.ClipboardOwner; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.event.*; @@ -1001,46 +1001,46 @@ private void initComponents() { JPanel jPanel11 = new JPanel(); chkFractional = new javax.swing.JCheckBox("Use Fractional Accounting"); JPanel pnlSummary = new JPanel(); - JLabel jLabel12 = new JLabel("Item"); - JLabel jLabel14 = new JLabel("Tonnage"); + JLabel lblSummaryItem = new JLabel("Item"); + JLabel lblSummaryTonnage = new JLabel("Tonnage"); JLabel jLabel15 = new JLabel("Space"); JLabel jLabel16 = new JLabel("Availability"); JLabel jLabel17 = new JLabel("Internal Structure:"); - txtSumIntTons = new javax.swing.JTextField(); - txtSumIntAV = new javax.swing.JTextField(); + txtSumIntTons = new javax.swing.JTextField("000.00"); + txtSumIntAV = new javax.swing.JTextField("X/X-X-X"); JLabel jLabel18 = new JLabel("Engine:"); - txtSumEngTons = new javax.swing.JTextField(); - txtSumEngAV = new javax.swing.JTextField(); + txtSumEngTons = new javax.swing.JTextField("000.00"); + txtSumEngAV = new javax.swing.JTextField("X/X-X-X"); JLabel jLabel19 = new JLabel("Lift/Dive/Rotor:"); - txtSumLifTons = new javax.swing.JTextField(); - txtSumLifAV = new javax.swing.JTextField(); - txtSumEngSpace = new javax.swing.JTextField(); + txtSumLifTons = new javax.swing.JTextField("000.00"); + txtSumLifAV = new javax.swing.JTextField("X/X-X-X"); + txtSumEngSpace = new javax.swing.JTextField("00"); JLabel jLabel20 = new JLabel("Controls:"); - txtSumConTons = new javax.swing.JTextField(); - txtSumConAV = new javax.swing.JTextField(); + txtSumConTons = new javax.swing.JTextField("000.00"); + txtSumConAV = new javax.swing.JTextField("X/X-X-X"); JLabel jLabel21 = new JLabel("Jump Jets:"); - txtSumJJTons = new javax.swing.JTextField(); - JTextField txtSumJJSpace = new JTextField(); - txtSumJJAV = new javax.swing.JTextField(); + txtSumJJTons = new javax.swing.JTextField("000.00"); + JTextField txtSumJJSpace = new JTextField("00"); + txtSumJJAV = new javax.swing.JTextField("X/X-X-X"); JLabel jLabel22 = new JLabel("Heat Sinks:"); - txtSumHSTons = new javax.swing.JTextField(); - txtSumHSAV = new javax.swing.JTextField(); + txtSumHSTons = new javax.swing.JTextField("000.00"); + txtSumHSAV = new javax.swing.JTextField("X/X-X-X"); JLabel jLabel23 = new JLabel("Armor:"); - txtSumArmTons = new javax.swing.JTextField(); - txtSumArmSpace = new javax.swing.JTextField(); - txtSumArmAV = new javax.swing.JTextField(); + txtSumArmTons = new javax.swing.JTextField("000.00"); + txtSumArmSpace = new javax.swing.JTextField("00"); + txtSumArmAV = new javax.swing.JTextField("X/X-X-X"); JLabel jLabel24 = new JLabel("Turret:"); - txtSumTurTons = new javax.swing.JTextField(); - txtSumTurAV = new javax.swing.JTextField(); + txtSumTurTons = new javax.swing.JTextField("000.00"); + txtSumTurAV = new javax.swing.JTextField("X/X-X-X"); JLabel jLabel25 = new JLabel("Rear Turret:"); - txtSumRTuTons = new javax.swing.JTextField(); - txtSumRTuAV = new javax.swing.JTextField(); + txtSumRTuTons = new javax.swing.JTextField("000.00"); + txtSumRTuAV = new javax.swing.JTextField("X/X-X-X"); JLabel jLabel26 = new JLabel("Sponsons:"); - txtSumSpnTons = new javax.swing.JTextField(); - txtSumSpnAV = new javax.swing.JTextField(); + txtSumSpnTons = new javax.swing.JTextField("000.00"); + txtSumSpnAV = new javax.swing.JTextField("X/X-X-X"); JLabel jLabel27 = new JLabel("Power Amplifiers:"); - txtSumPATons = new javax.swing.JTextField(); - txtSumPAAV = new javax.swing.JTextField(); + txtSumPATons = new javax.swing.JTextField("000.00"); + txtSumPAAV = new javax.swing.JTextField("X/X-X-X"); JPanel pnlInformation = new JPanel(); JLabel titleSuspension = new JLabel("Suspension Factor:"); lblSupensionFacter = new javax.swing.JLabel("000"); @@ -1059,7 +1059,7 @@ private void initComponents() { btnAddVariant = new javax.swing.JButton("Add Variant"); btnDeleteVariant = new javax.swing.JButton("Delete Variant"); btnRenameVariant = new javax.swing.JButton("Rename Variant"); - JPanel jPanel6 = new JPanel(); + JPanel pnlArmorLocations = new JPanel(); JPanel pnlRightArmor = new JPanel(); lblRightIntPts = new javax.swing.JLabel("00"); JLabel jLabel40 = new JLabel("Internal"); @@ -1865,43 +1865,20 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { chkFlotationHull.setEnabled(false); chkFlotationHull.addActionListener(this::chkFlotationHullActionPerformed); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 0; - gridBagConstraints.anchor = GridBagConstraints.WEST; - pnlChassisMods.add(chkFlotationHull, gridBagConstraints); - chkLimitedAmph.setEnabled(false); chkLimitedAmph.addActionListener(this::chkLimitedAmphActionPerformed); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = GridBagConstraints.WEST; - pnlChassisMods.add(chkLimitedAmph, gridBagConstraints); - chkFullAmph.setEnabled(false); chkFullAmph.addActionListener(this::chkFullAmphActionPerformed); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 2; - gridBagConstraints.anchor = GridBagConstraints.WEST; - pnlChassisMods.add(chkFullAmph, gridBagConstraints); - chkDuneBuggy.setEnabled(false); chkDuneBuggy.addActionListener(this::chkDuneBuggyActionPerformed); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 3; - gridBagConstraints.anchor = GridBagConstraints.WEST; - pnlChassisMods.add(chkDuneBuggy, gridBagConstraints); - chkEnviroSealing.setEnabled(false); chkEnviroSealing.addActionListener(this::chkEnviroSealingActionPerformed); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 4; - gridBagConstraints.anchor = GridBagConstraints.WEST; - pnlChassisMods.add(chkEnviroSealing, gridBagConstraints); + + pnlChassisMods.add(chkFlotationHull, Utils.gridBag(0, 0)); + pnlChassisMods.add(chkLimitedAmph, Utils.gridBag(0, 1)); + pnlChassisMods.add(chkFullAmph, Utils.gridBag(0, 2)); + pnlChassisMods.add(chkDuneBuggy, Utils.gridBag(0, 3)); + pnlChassisMods.add(chkEnviroSealing, Utils.gridBag(0, 4)); pnlExperimental.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Experimental Equipment")); @@ -1955,374 +1932,148 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { chkFractional.setEnabled(false); chkFractional.addActionListener(this::chkFractionalActionPerformed); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 0; - gridBagConstraints.anchor = GridBagConstraints.WEST; - jPanel11.add(chkFractional, gridBagConstraints); + jPanel11.add(chkFractional, Utils.gridBag(0, 0)); pnlSummary.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Summary")); pnlSummary.setLayout(new java.awt.GridBagLayout()); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); - pnlSummary.add(jLabel12, gridBagConstraints); - pnlSummary.add(jLabel14, new GridBagConstraints()); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2); - pnlSummary.add(jLabel15, gridBagConstraints); + pnlSummary.add(lblSummaryItem, new GridBagConstraints()); + pnlSummary.add(lblSummaryTonnage, new GridBagConstraints()); + pnlSummary.add(jLabel15, new GridBagConstraints()); pnlSummary.add(jLabel16, new GridBagConstraints()); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = GridBagConstraints.EAST; - gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); - pnlSummary.add(jLabel17, gridBagConstraints); + + jLabel17.setHorizontalAlignment(SwingConstants.RIGHT); + pnlSummary.add(jLabel17, Utils.gridBag(0, 1)); txtSumIntTons.setEditable(false); - txtSumIntTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumIntTons.setText("000.00"); - txtSumIntTons.setMinimumSize(new Dimension(50, 20)); - txtSumIntTons.setPreferredSize(new Dimension(50, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = GridBagConstraints.EAST; - pnlSummary.add(txtSumIntTons, gridBagConstraints); + txtSumIntTons.setHorizontalAlignment(SwingConstants.CENTER); + pnlSummary.add(txtSumIntTons, Utils.gridBag(1, 1)); txtSumIntAV.setEditable(false); - txtSumIntAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumIntAV.setText("X/X-X-X"); - txtSumIntAV.setMinimumSize(new Dimension(65, 20)); - txtSumIntAV.setPreferredSize(new Dimension(65, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 3; - gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = GridBagConstraints.WEST; - pnlSummary.add(txtSumIntAV, gridBagConstraints); + txtSumIntAV.setHorizontalAlignment(SwingConstants.CENTER); + pnlSummary.add(txtSumIntAV, Utils.gridBag(3, 1)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 2; - gridBagConstraints.anchor = GridBagConstraints.EAST; - gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); - pnlSummary.add(jLabel18, gridBagConstraints); + jLabel18.setHorizontalAlignment(SwingConstants.RIGHT); + pnlSummary.add(jLabel18, Utils.gridBag(0, 2)); txtSumEngTons.setEditable(false); - txtSumEngTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumEngTons.setText("000.00"); - txtSumEngTons.setMinimumSize(new Dimension(50, 20)); - txtSumEngTons.setPreferredSize(new Dimension(50, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 2; - gridBagConstraints.anchor = GridBagConstraints.EAST; - pnlSummary.add(txtSumEngTons, gridBagConstraints); + txtSumEngTons.setHorizontalAlignment(SwingConstants.CENTER); + pnlSummary.add(txtSumEngTons, Utils.gridBag(1, 2)); txtSumEngAV.setEditable(false); - txtSumEngAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumEngAV.setText("X/X-X-X"); - txtSumEngAV.setMinimumSize(new Dimension(65, 20)); - txtSumEngAV.setPreferredSize(new Dimension(65, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 3; - gridBagConstraints.gridy = 2; - gridBagConstraints.anchor = GridBagConstraints.WEST; - pnlSummary.add(txtSumEngAV, gridBagConstraints); + txtSumEngAV.setHorizontalAlignment(SwingConstants.CENTER); + pnlSummary.add(txtSumEngAV, Utils.gridBag(3, 2)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 3; - gridBagConstraints.anchor = GridBagConstraints.EAST; - gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); - pnlSummary.add(jLabel19, gridBagConstraints); + jLabel19.setHorizontalAlignment(SwingConstants.RIGHT); + pnlSummary.add(jLabel19, Utils.gridBag(0, 3)); txtSumLifTons.setEditable(false); txtSumLifTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumLifTons.setText("000.00"); - txtSumLifTons.setMinimumSize(new Dimension(50, 20)); - txtSumLifTons.setPreferredSize(new Dimension(50, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 3; - gridBagConstraints.anchor = GridBagConstraints.EAST; - pnlSummary.add(txtSumLifTons, gridBagConstraints); + pnlSummary.add(txtSumLifTons, Utils.gridBag(1, 3)); txtSumLifAV.setEditable(false); txtSumLifAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumLifAV.setText("X/X-X-X"); - txtSumLifAV.setMinimumSize(new Dimension(65, 20)); - txtSumLifAV.setPreferredSize(new Dimension(65, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 3; - gridBagConstraints.gridy = 3; - gridBagConstraints.anchor = GridBagConstraints.WEST; - pnlSummary.add(txtSumLifAV, gridBagConstraints); + pnlSummary.add(txtSumLifAV, Utils.gridBag(3, 3)); txtSumEngSpace.setEditable(false); txtSumEngSpace.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumEngSpace.setText("00"); - txtSumEngSpace.setMinimumSize(new Dimension(40, 20)); - txtSumEngSpace.setPreferredSize(new Dimension(40, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 2; - gridBagConstraints.gridy = 2; - gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2); - pnlSummary.add(txtSumEngSpace, gridBagConstraints); + pnlSummary.add(txtSumEngSpace, Utils.gridBag(2, 2, new Insets(0, 2, 0, 2))); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 4; - gridBagConstraints.anchor = GridBagConstraints.EAST; - gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); - pnlSummary.add(jLabel20, gridBagConstraints); + jLabel20.setHorizontalAlignment(SwingConstants.RIGHT); + pnlSummary.add(jLabel20, Utils.gridBag(0, 4)); txtSumConTons.setEditable(false); txtSumConTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumConTons.setText("000.00"); - txtSumConTons.setMinimumSize(new Dimension(50, 20)); - txtSumConTons.setPreferredSize(new Dimension(50, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 4; - gridBagConstraints.anchor = GridBagConstraints.EAST; - pnlSummary.add(txtSumConTons, gridBagConstraints); + pnlSummary.add(txtSumConTons, Utils.gridBag(1, 4)); txtSumConAV.setEditable(false); txtSumConAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumConAV.setText("X/X-X-X"); - txtSumConAV.setMinimumSize(new Dimension(65, 20)); - txtSumConAV.setPreferredSize(new Dimension(65, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 3; - gridBagConstraints.gridy = 4; - gridBagConstraints.anchor = GridBagConstraints.WEST; - pnlSummary.add(txtSumConAV, gridBagConstraints); + pnlSummary.add(txtSumConAV, Utils.gridBag(3, 4)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 5; - gridBagConstraints.anchor = GridBagConstraints.EAST; - gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); - pnlSummary.add(jLabel21, gridBagConstraints); + jLabel21.setHorizontalAlignment(SwingConstants.RIGHT); + pnlSummary.add(jLabel21, Utils.gridBag(0, 5)); txtSumJJTons.setEditable(false); txtSumJJTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumJJTons.setText("000.00"); - txtSumJJTons.setMinimumSize(new Dimension(50, 20)); - txtSumJJTons.setPreferredSize(new Dimension(50, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 5; - gridBagConstraints.anchor = GridBagConstraints.EAST; - pnlSummary.add(txtSumJJTons, gridBagConstraints); + pnlSummary.add(txtSumJJTons, Utils.gridBag(1, 5)); txtSumJJSpace.setEditable(false); txtSumJJSpace.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumJJSpace.setText("00"); - txtSumJJSpace.setMinimumSize(new Dimension(40, 20)); - txtSumJJSpace.setPreferredSize(new Dimension(40, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 2; - gridBagConstraints.gridy = 5; - gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2); - pnlSummary.add(txtSumJJSpace, gridBagConstraints); + pnlSummary.add(txtSumJJSpace, Utils.gridBag(2, 5, new Insets(0, 2, 0, 2))); txtSumJJAV.setEditable(false); txtSumJJAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumJJAV.setText("X/X-X-X"); - txtSumJJAV.setMinimumSize(new Dimension(65, 20)); - txtSumJJAV.setPreferredSize(new Dimension(65, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 3; - gridBagConstraints.gridy = 5; - gridBagConstraints.anchor = GridBagConstraints.WEST; - pnlSummary.add(txtSumJJAV, gridBagConstraints); + pnlSummary.add(txtSumJJAV, Utils.gridBag(3, 5)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 6; - gridBagConstraints.anchor = GridBagConstraints.EAST; - gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); - pnlSummary.add(jLabel22, gridBagConstraints); + jLabel22.setHorizontalAlignment(SwingConstants.RIGHT); + pnlSummary.add(jLabel22, Utils.gridBag(0, 6)); txtSumHSTons.setEditable(false); txtSumHSTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumHSTons.setText("000.00"); - txtSumHSTons.setMinimumSize(new Dimension(50, 20)); - txtSumHSTons.setPreferredSize(new Dimension(50, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 6; - gridBagConstraints.anchor = GridBagConstraints.EAST; - pnlSummary.add(txtSumHSTons, gridBagConstraints); + pnlSummary.add(txtSumHSTons, Utils.gridBag(1, 6)); txtSumHSAV.setEditable(false); txtSumHSAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumHSAV.setText("X/X-X-X"); - txtSumHSAV.setMinimumSize(new Dimension(65, 20)); - txtSumHSAV.setPreferredSize(new Dimension(65, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 3; - gridBagConstraints.gridy = 6; - gridBagConstraints.anchor = GridBagConstraints.WEST; - pnlSummary.add(txtSumHSAV, gridBagConstraints); + pnlSummary.add(txtSumHSAV, Utils.gridBag(3, 6)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 7; - gridBagConstraints.anchor = GridBagConstraints.EAST; - gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); - pnlSummary.add(jLabel23, gridBagConstraints); + jLabel23.setHorizontalAlignment(SwingConstants.RIGHT); + pnlSummary.add(jLabel23, Utils.gridBag(0, 7)); txtSumArmTons.setEditable(false); txtSumArmTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumArmTons.setText("000.00"); - txtSumArmTons.setMinimumSize(new Dimension(50, 20)); - txtSumArmTons.setPreferredSize(new Dimension(50, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 7; - gridBagConstraints.anchor = GridBagConstraints.EAST; - pnlSummary.add(txtSumArmTons, gridBagConstraints); + pnlSummary.add(txtSumArmTons, Utils.gridBag(1, 7)); txtSumArmSpace.setEditable(false); txtSumArmSpace.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumArmSpace.setText("00"); - txtSumArmSpace.setMinimumSize(new Dimension(40, 20)); - txtSumArmSpace.setPreferredSize(new Dimension(40, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 2; - gridBagConstraints.gridy = 7; - gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2); - pnlSummary.add(txtSumArmSpace, gridBagConstraints); + pnlSummary.add(txtSumArmSpace, Utils.gridBag(2, 7, new Insets(0, 2, 0, 2))); txtSumArmAV.setEditable(false); txtSumArmAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumArmAV.setText("X/X-X-X"); - txtSumArmAV.setMinimumSize(new Dimension(65, 20)); - txtSumArmAV.setPreferredSize(new Dimension(65, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 3; - gridBagConstraints.gridy = 7; - gridBagConstraints.anchor = GridBagConstraints.WEST; - pnlSummary.add(txtSumArmAV, gridBagConstraints); + pnlSummary.add(txtSumArmAV, Utils.gridBag(3, 7)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 8; - gridBagConstraints.anchor = GridBagConstraints.EAST; - gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); - pnlSummary.add(jLabel24, gridBagConstraints); + jLabel24.setHorizontalAlignment(SwingConstants.RIGHT); + pnlSummary.add(jLabel24, Utils.gridBag(0, 8)); txtSumTurTons.setEditable(false); txtSumTurTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumTurTons.setText("000.00"); - txtSumTurTons.setMinimumSize(new Dimension(50, 20)); - txtSumTurTons.setPreferredSize(new Dimension(50, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 8; - gridBagConstraints.anchor = GridBagConstraints.EAST; - pnlSummary.add(txtSumTurTons, gridBagConstraints); + pnlSummary.add(txtSumTurTons, Utils.gridBag(1, 8)); txtSumTurAV.setEditable(false); txtSumTurAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumTurAV.setText("X/X-X-X"); - txtSumTurAV.setMinimumSize(new Dimension(65, 20)); - txtSumTurAV.setPreferredSize(new Dimension(65, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 3; - gridBagConstraints.gridy = 8; - gridBagConstraints.anchor = GridBagConstraints.WEST; - pnlSummary.add(txtSumTurAV, gridBagConstraints); + pnlSummary.add(txtSumTurAV, Utils.gridBag(3, 8)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 9; - gridBagConstraints.anchor = GridBagConstraints.EAST; - gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); - pnlSummary.add(jLabel25, gridBagConstraints); + jLabel25.setHorizontalAlignment(SwingConstants.RIGHT); + pnlSummary.add(jLabel25, Utils.gridBag(0, 9)); txtSumRTuTons.setEditable(false); txtSumRTuTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumRTuTons.setText("000.00"); - txtSumRTuTons.setMinimumSize(new Dimension(50, 20)); - txtSumRTuTons.setPreferredSize(new Dimension(50, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 9; - gridBagConstraints.anchor = GridBagConstraints.EAST; - pnlSummary.add(txtSumRTuTons, gridBagConstraints); + pnlSummary.add(txtSumRTuTons, Utils.gridBag(1, 9)); txtSumRTuAV.setEditable(false); txtSumRTuAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumRTuAV.setText("X/X-X-X"); - txtSumRTuAV.setMinimumSize(new Dimension(65, 20)); - txtSumRTuAV.setPreferredSize(new Dimension(65, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 3; - gridBagConstraints.gridy = 9; - gridBagConstraints.anchor = GridBagConstraints.WEST; - pnlSummary.add(txtSumRTuAV, gridBagConstraints); + pnlSummary.add(txtSumRTuAV, Utils.gridBag(3, 9)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 10; - gridBagConstraints.anchor = GridBagConstraints.EAST; - gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); - pnlSummary.add(jLabel26, gridBagConstraints); + jLabel26.setHorizontalAlignment(SwingConstants.RIGHT); + pnlSummary.add(jLabel26, Utils.gridBag(0, 10)); txtSumSpnTons.setEditable(false); txtSumSpnTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumSpnTons.setText("000.00"); - txtSumSpnTons.setMinimumSize(new Dimension(50, 20)); - txtSumSpnTons.setPreferredSize(new Dimension(50, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 10; - gridBagConstraints.anchor = GridBagConstraints.EAST; - pnlSummary.add(txtSumSpnTons, gridBagConstraints); + pnlSummary.add(txtSumSpnTons, Utils.gridBag(1, 10)); txtSumSpnAV.setEditable(false); txtSumSpnAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumSpnAV.setText("X/X-X-X"); - txtSumSpnAV.setMinimumSize(new Dimension(65, 20)); - txtSumSpnAV.setPreferredSize(new Dimension(65, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 3; - gridBagConstraints.gridy = 10; - gridBagConstraints.anchor = GridBagConstraints.WEST; - pnlSummary.add(txtSumSpnAV, gridBagConstraints); + pnlSummary.add(txtSumSpnAV, Utils.gridBag(3, 10)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 11; - gridBagConstraints.anchor = GridBagConstraints.EAST; - gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 2); - pnlSummary.add(jLabel27, gridBagConstraints); + jLabel27.setHorizontalAlignment(SwingConstants.RIGHT); + pnlSummary.add(jLabel27, Utils.gridBag(0, 11)); txtSumPATons.setEditable(false); txtSumPATons.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumPATons.setText("000.00"); - txtSumPATons.setMinimumSize(new Dimension(50, 20)); - txtSumPATons.setPreferredSize(new Dimension(50, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 11; - gridBagConstraints.anchor = GridBagConstraints.EAST; - pnlSummary.add(txtSumPATons, gridBagConstraints); + pnlSummary.add(txtSumPATons, Utils.gridBag(1, 11)); txtSumPAAV.setEditable(false); txtSumPAAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtSumPAAV.setText("X/X-X-X"); - txtSumPAAV.setMinimumSize(new Dimension(65, 20)); - txtSumPAAV.setPreferredSize(new Dimension(65, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 3; - gridBagConstraints.gridy = 11; - gridBagConstraints.anchor = GridBagConstraints.WEST; - pnlSummary.add(txtSumPAAV, gridBagConstraints); + pnlSummary.add(txtSumPAAV, Utils.gridBag(3, 11)); pnlInformation.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Information")); @@ -2394,250 +2145,22 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { pnlOmniInfo.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Omni Configuration")); pnlOmniInfo.setLayout(new java.awt.GridBagLayout()); - - btnLockChassis.setEnabled(false); - btnLockChassis.setMaximumSize(new Dimension(200, 23)); - btnLockChassis.setMinimumSize(new Dimension(105, 23)); - btnLockChassis.setPreferredSize(new Dimension(120, 23)); - btnLockChassis.addActionListener(this::btnLockChassisActionPerformed); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 0; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - pnlOmniInfo.add(btnLockChassis, gridBagConstraints); - - btnAddVariant.setEnabled(false); - btnAddVariant.setMaximumSize(new Dimension(200, 23)); - btnAddVariant.setMinimumSize(new Dimension(80, 23)); - btnAddVariant.setPreferredSize(new Dimension(120, 23)); - btnAddVariant.addActionListener(this::btnAddVariantActionPerformed); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - pnlOmniInfo.add(btnAddVariant, gridBagConstraints); - - btnDeleteVariant.setEnabled(false); - btnDeleteVariant.setMaximumSize(new Dimension(200, 23)); - btnDeleteVariant.setMinimumSize(new Dimension(80, 23)); - btnDeleteVariant.setPreferredSize(new Dimension(120, 23)); - btnDeleteVariant.addActionListener(this::btnDeleteVariantActionPerformed); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 0; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - pnlOmniInfo.add(btnDeleteVariant, gridBagConstraints); - - btnRenameVariant.setEnabled(false); - btnRenameVariant.setMinimumSize(new Dimension(80, 23)); - btnRenameVariant.setPreferredSize(new Dimension(120, 23)); - btnRenameVariant.addActionListener(this::btnRenameVariantActionPerformed); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 1; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - pnlOmniInfo.add(btnRenameVariant, gridBagConstraints); - - jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Armor Locations")); - - pnlRightArmor.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Right")); - pnlRightArmor.setLayout(new java.awt.GridBagLayout()); - - lblRightIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblRightIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblRightIntPts.setMaximumSize(new Dimension(45, 20)); - lblRightIntPts.setMinimumSize(new Dimension(45, 20)); - lblRightIntPts.setPreferredSize(new Dimension(45, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - pnlRightArmor.add(lblRightIntPts, gridBagConstraints); - - pnlRightArmor.add(jLabel40, new GridBagConstraints()); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 2; - pnlRightArmor.add(jLabel46, gridBagConstraints); - - spnRightArmor.setMinimumSize(new Dimension(45, 20)); - spnRightArmor.setPreferredSize(new Dimension(45, 20)); - spnRightArmor.addChangeListener(this::spnRightArmorStateChanged); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 3; - pnlRightArmor.add(spnRightArmor, gridBagConstraints); - - pnlFrontArmor.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Front")); - pnlFrontArmor.setLayout(new java.awt.GridBagLayout()); - - lblFrontIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblFrontIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblFrontIntPts.setMaximumSize(new Dimension(45, 20)); - lblFrontIntPts.setMinimumSize(new Dimension(45, 20)); - lblFrontIntPts.setPreferredSize(new Dimension(45, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - pnlFrontArmor.add(lblFrontIntPts, gridBagConstraints); - - pnlFrontArmor.add(jLabel45, new GridBagConstraints()); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 2; - pnlFrontArmor.add(jLabel47, gridBagConstraints); - - spnFrontArmor.setMinimumSize(new Dimension(45, 20)); - spnFrontArmor.setPreferredSize(new Dimension(45, 20)); - spnFrontArmor.addChangeListener(this::spnFrontArmorStateChanged); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 3; - pnlFrontArmor.add(spnFrontArmor, gridBagConstraints); - - pnlLeftArmor.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Left")); - pnlLeftArmor.setLayout(new java.awt.GridBagLayout()); - - lblLeftIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblLeftIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblLeftIntPts.setMaximumSize(new Dimension(45, 20)); - lblLeftIntPts.setMinimumSize(new Dimension(45, 20)); - lblLeftIntPts.setPreferredSize(new Dimension(45, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - pnlLeftArmor.add(lblLeftIntPts, gridBagConstraints); - - pnlLeftArmor.add(jLabel41, new GridBagConstraints()); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 2; - pnlLeftArmor.add(jLabel48, gridBagConstraints); - - spnLeftArmor.setMinimumSize(new Dimension(45, 20)); - spnLeftArmor.setPreferredSize(new Dimension(45, 20)); - spnLeftArmor.addChangeListener(this::spnLeftArmorStateChanged); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 3; - pnlLeftArmor.add(spnLeftArmor, gridBagConstraints); - - pnlRearArmor.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Rear")); - pnlRearArmor.setLayout(new java.awt.GridBagLayout()); - - lblRearIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblRearIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblRearIntPts.setMaximumSize(new Dimension(45, 20)); - lblRearIntPts.setMinimumSize(new Dimension(45, 20)); - lblRearIntPts.setPreferredSize(new Dimension(45, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - pnlRearArmor.add(lblRearIntPts, gridBagConstraints); - - pnlRearArmor.add(jLabel44, new GridBagConstraints()); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 2; - pnlRearArmor.add(jLabel49, gridBagConstraints); - - spnRearArmor.setMinimumSize(new Dimension(45, 20)); - spnRearArmor.setPreferredSize(new Dimension(45, 20)); - spnRearArmor.addChangeListener(this::spnRearArmorStateChanged); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 3; - pnlRearArmor.add(spnRearArmor, gridBagConstraints); - - pnlTurretArmor.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Turret")); - pnlTurretArmor.setLayout(new java.awt.GridBagLayout()); - - lblTurretIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblTurretIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblTurretIntPts.setMaximumSize(new Dimension(45, 20)); - lblTurretIntPts.setMinimumSize(new Dimension(45, 20)); - lblTurretIntPts.setPreferredSize(new Dimension(45, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - pnlTurretArmor.add(lblTurretIntPts, gridBagConstraints); - - pnlTurretArmor.add(jLabel42, new GridBagConstraints()); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 2; - pnlTurretArmor.add(jLabel50, gridBagConstraints); - - spnTurretArmor.setMinimumSize(new Dimension(45, 20)); - spnTurretArmor.setPreferredSize(new Dimension(45, 20)); - spnTurretArmor.addChangeListener(this::spnTurretArmorStateChanged); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 3; - pnlTurretArmor.add(spnTurretArmor, gridBagConstraints); - - pnlRearTurretArmor.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "R Turret")); - pnlRearTurretArmor.setLayout(new java.awt.GridBagLayout()); - - lblRearTurretIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblRearTurretIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblRearTurretIntPts.setMaximumSize(new Dimension(45, 20)); - lblRearTurretIntPts.setMinimumSize(new Dimension(45, 20)); - lblRearTurretIntPts.setPreferredSize(new Dimension(45, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - pnlRearTurretArmor.add(lblRearTurretIntPts, gridBagConstraints); - - pnlRearTurretArmor.add(jLabel43, new GridBagConstraints()); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 2; - pnlRearTurretArmor.add(jLabel51, gridBagConstraints); - - spnRearTurretArmor.setMinimumSize(new Dimension(45, 20)); - spnRearTurretArmor.setPreferredSize(new Dimension(45, 20)); - spnRearTurretArmor.addChangeListener(this::spnRearTurretArmorStateChanged); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 3; - pnlRearTurretArmor.add(spnRearTurretArmor, gridBagConstraints); - - pnlRotorArmor.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Rotor")); - pnlRotorArmor.setLayout(new java.awt.GridBagLayout()); - - lblRotorIntPts.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblRotorIntPts.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); - lblRotorIntPts.setMaximumSize(new Dimension(45, 20)); - lblRotorIntPts.setMinimumSize(new Dimension(45, 20)); - lblRotorIntPts.setPreferredSize(new Dimension(45, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - pnlRotorArmor.add(lblRotorIntPts, gridBagConstraints); - - pnlRotorArmor.add(jLabel92, new GridBagConstraints()); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 2; - pnlRotorArmor.add(jLabel93, gridBagConstraints); - - spnRotorArmor.setMinimumSize(new Dimension(45, 20)); - spnRotorArmor.setPreferredSize(new Dimension(45, 20)); - spnRotorArmor.addChangeListener(this::spnRotorArmorStateChanged); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 3; - pnlRotorArmor.add(spnRotorArmor, gridBagConstraints); - - GroupLayout jPanel6Layout = new GroupLayout(jPanel6); - jPanel6.setLayout(jPanel6Layout); + pnlOmniInfo.add(OmniButton(btnLockChassis, this::btnLockChassisActionPerformed), Utils.gridBag(0, 0)); + pnlOmniInfo.add(OmniButton(btnAddVariant, this::btnAddVariantActionPerformed), Utils.gridBag(0, 1)); + pnlOmniInfo.add(OmniButton(btnDeleteVariant, this::btnDeleteVariantActionPerformed), Utils.gridBag(1, 0)); + pnlOmniInfo.add(OmniButton(btnRenameVariant, this::btnRenameVariantActionPerformed), Utils.gridBag(1, 1)); + + pnlArmorLocations.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Armor Locations")); + pnlRightArmor = ArmorLocation("Right", lblRightIntPts, spnRightArmor, this::spnRightArmorStateChanged); + pnlFrontArmor = ArmorLocation("Front", lblFrontIntPts, spnFrontArmor, this::spnFrontArmorStateChanged); + pnlLeftArmor = ArmorLocation("Left", lblLeftIntPts, spnLeftArmor, this::spnLeftArmorStateChanged); + pnlRearArmor = ArmorLocation("Rear", lblRearIntPts, spnRearArmor, this::spnRearArmorStateChanged); + pnlTurretArmor = ArmorLocation("Turret", lblTurretIntPts, spnTurretArmor, this::spnTurretArmorStateChanged); + pnlRearTurretArmor = ArmorLocation("R Turret", lblRearTurretIntPts, spnRearTurretArmor, this::spnRearTurretArmorStateChanged); + pnlRotorArmor = ArmorLocation("Rotor", lblRotorIntPts, spnRotorArmor, this::spnRotorArmorStateChanged); + + GroupLayout jPanel6Layout = new GroupLayout(pnlArmorLocations); + pnlArmorLocations.setLayout(jPanel6Layout); jPanel6Layout.setHorizontalGroup( jPanel6Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel6Layout.createSequentialGroup() @@ -2740,53 +2263,29 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { jPanel8.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Armor Information")); jPanel8.setLayout(new java.awt.GridBagLayout()); - jPanel8.add(jLabel34, new GridBagConstraints()); - jPanel8.add(jLabel36, new GridBagConstraints()); + jLabel34.setHorizontalAlignment(SwingConstants.CENTER); + jPanel8.add(jLabel34, Utils.gridBag(0, 0)); + jLabel36.setHorizontalAlignment(SwingConstants.CENTER); + jPanel8.add(jLabel36, Utils.gridBag(1, 0)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); - jPanel8.add(lblArmorTotals, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 2; - gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = GridBagConstraints.SOUTHEAST; - gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); - jPanel8.add(lblArmorCoverage, gridBagConstraints); + lblArmorTotals.setHorizontalAlignment(SwingConstants.RIGHT); + jPanel8.add(lblArmorTotals, Utils.gridBag(2, 0)); + lblArmorCoverage.setHorizontalAlignment(SwingConstants.RIGHT); + jPanel8.add(lblArmorCoverage, Utils.gridBag(2, 1)); txtArmorTons.setEditable(false); txtArmorTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtArmorTons.setMinimumSize(new Dimension(50, 20)); txtArmorTons.setPreferredSize(new Dimension(50, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - jPanel8.add(txtArmorTons, gridBagConstraints); + jPanel8.add(txtArmorTons, Utils.gridBag(0, 1)); txtArmorSpace.setEditable(false); - txtArmorSpace.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtArmorSpace.setMinimumSize(new Dimension(40, 20)); + txtArmorSpace.setHorizontalAlignment(javax.swing.JTextField.RIGHT); txtArmorSpace.setPreferredSize(new Dimension(40, 20)); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 1; - jPanel8.add(txtArmorSpace, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 2; - gridBagConstraints.gridwidth = 3; - gridBagConstraints.anchor = GridBagConstraints.EAST; - gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 0); - jPanel8.add(lblArmorTonsWasted, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 3; - gridBagConstraints.gridwidth = 3; - gridBagConstraints.anchor = GridBagConstraints.EAST; - gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 0); - jPanel8.add(lblArmorLeftInLot, gridBagConstraints); + jPanel8.add(txtArmorSpace, Utils.gridBag(1, 1, new Insets(0, 2, 0, 0))); + lblArmorTonsWasted.setHorizontalAlignment(SwingConstants.RIGHT); + jPanel8.add(lblArmorTonsWasted, Utils.gridBag(0, 2, 3, GridBagConstraints.EAST, new Insets(4, 0, 0, 0))); + lblArmorLeftInLot.setHorizontalAlignment(SwingConstants.RIGHT); + jPanel8.add(lblArmorLeftInLot, Utils.gridBag(0, 3, 3, GridBagConstraints.EAST, new Insets(4, 0, 0, 0))); GroupLayout pnlBasicSetupLayout = new GroupLayout(pnlBasicSetup); pnlBasicSetup.setLayout(pnlBasicSetupLayout); @@ -2808,7 +2307,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addComponent(pnlOmniInfo, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(pnlInformation, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jPanel6, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(pnlArmorLocations, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addGroup(pnlBasicSetupLayout.createParallelGroup(GroupLayout.Alignment.LEADING, false) .addComponent(jPanel7, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) @@ -2842,7 +2341,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addComponent(pnlMovement, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlChassisMods, GroupLayout.PREFERRED_SIZE, 142, GroupLayout.PREFERRED_SIZE)) - .addComponent(jPanel6, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) + .addComponent(pnlArmorLocations, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); @@ -3873,6 +3372,28 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { pack(); } + private JButton OmniButton(JButton button, ActionListener listener) { + button.setEnabled(false); + button.setPreferredSize(new Dimension(120, 23)); + button.addActionListener(listener); + return button; + } + private JPanel ArmorLocation(String title, JLabel label, JSpinner spinner, ChangeListener listener) { + JPanel pnl = new JPanel(); + pnl.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), title)); + pnl.setLayout(new java.awt.GridBagLayout()); + label.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + label.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); + label.setPreferredSize(new Dimension(45, 20)); + pnl.add(label, Utils.gridBag(0, 1)); + pnl.add(new JLabel("Internal"), new GridBagConstraints()); + pnl.add(new JLabel("Armor"), Utils.gridBag(0, 2)); + spinner.setPreferredSize(new Dimension(45, 20)); + spinner.addChangeListener(listener); + pnl.add(spinner, Utils.gridBag(0, 3)); + return pnl; + } + private JPanel DataEntry(String label, JTextField input, MouseListener listener) { JPanel entry = new JPanel(); entry.setLayout(new BoxLayout(entry, BoxLayout.X_AXIS)); diff --git a/sswlib/src/main/java/common/Utils.java b/sswlib/src/main/java/common/Utils.java index 69a8178d..2052b1d0 100644 --- a/sswlib/src/main/java/common/Utils.java +++ b/sswlib/src/main/java/common/Utils.java @@ -1,5 +1,6 @@ package common; +import java.awt.*; import java.io.File; import javax.swing.ImageIcon; @@ -36,4 +37,16 @@ public static ImageIcon createImageIcon(String path) { return null; } } + + public static GridBagConstraints gridBag(int x, int y) { + return new GridBagConstraints(x, y, 1, 1, 1.0, 1.0, GridBagConstraints.WEST, 1, new Insets(0, 0, 0, 0), 0, 0); + } + + public static GridBagConstraints gridBag(int x, int y, Insets inset) { + return new GridBagConstraints(x, y, 1, 1, 1.0, 1.0, GridBagConstraints.WEST, 1, inset, 0, 0); + } + + public static GridBagConstraints gridBag(int x, int y, int width, int anchor, Insets inset) { + return new GridBagConstraints(x, y, width, 1, 1.0, 1.0, anchor, 1, inset, 0, 0); + } } From 6192db0c2704af7364b8f22d6770618d8a1fc742 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 25 Feb 2023 22:44:37 -0700 Subject: [PATCH 115/199] Move Turret Tonnage around --- saw/src/main/java/saw/gui/frmVeeWide.java | 52 +++++++++++------------ 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index fb29ea5a..2eda9caa 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -1699,10 +1699,14 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { spnTurretTonnage.setModel(new javax.swing.SpinnerNumberModel(0.0d, 0.0d, 50.0d, 0.5d)); spnTurretTonnage.setEnabled(false); spnTurretTonnage.addChangeListener(this::spnTurretTonnageStateChanged); + ((JSpinner.DefaultEditor)spnTurretTonnage.getEditor()).getTextField().addFocusListener(spinners); spnRearTurretTonnage.setModel(new javax.swing.SpinnerNumberModel(0.0d, 0.0d, 50.0d, 0.5d)); - spnRearTurretTonnage.setEnabled(false); + spnRearTurretTonnage.setVisible(false); spnRearTurretTonnage.addChangeListener(this::spnRearTurretTonnageStateChanged); + ((JSpinner.DefaultEditor)spnRearTurretTonnage.getEditor()).getTextField().addFocusListener(spinners); + + JLabel lblTurretTonnage = new JLabel("Turret Tonnage: "); GroupLayout pnlChassisLayout = new GroupLayout(pnlChassis); pnlChassis.setLayout(pnlChassisLayout); @@ -1726,14 +1730,13 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addComponent(jLabel32) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(cmbTurret, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spnTurretTonnage)) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)) .addGroup(pnlChassisLayout.createSequentialGroup() - .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) - .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addComponent(lblTurretTonnage) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addComponent(spnTurretTonnage) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spnRearTurretTonnage)) + .addComponent(spnRearTurretTonnage)) .addGroup(pnlChassisLayout.createSequentialGroup() .addComponent(jLabel9) .addGap(2, 2, 2) @@ -1783,12 +1786,13 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addGroup(pnlChassisLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(jLabel32) - .addComponent(cmbTurret, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addComponent(spnTurretTonnage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) - .addGroup(pnlChassisLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) - .addComponent(spnRearTurretTonnage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addComponent(cmbTurret, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(pnlChassisLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(lblTurretTonnage) + .addComponent(spnTurretTonnage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(spnRearTurretTonnage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(pnlChassisLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlChassisLayout.createSequentialGroup() .addGap(3, 3, 3) @@ -3173,22 +3177,14 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { ); pnlImage.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Fluff Image", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", Font.PLAIN, 11))); // NOI18N - - lblFluffImage.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - lblFluffImage.setMaximumSize(new Dimension(375, 260)); - lblFluffImage.setMinimumSize(new Dimension(375, 260)); - lblFluffImage.setPreferredSize(new Dimension(350, 350)); - + pnlImage.setPreferredSize(new Dimension(400, 450)); pnlImageButtons.setLayout(new java.awt.GridBagLayout()); btnLoadImage.addActionListener(this::btnLoadImageActionPerformed); pnlImageButtons.add(btnLoadImage, new GridBagConstraints()); btnClearImage.addActionListener(this::btnClearImageActionPerformed); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 0; - pnlImageButtons.add(btnClearImage, gridBagConstraints); + pnlImageButtons.add(btnClearImage, Utils.gridBag(1, 0)); GroupLayout pnlImageLayout = new GroupLayout(pnlImage); pnlImage.setLayout(pnlImageLayout); @@ -3340,17 +3336,14 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { mnuReloadEquipment.addActionListener(this::mnuReloadEquipmentActionPerformed); mnuClearFluff.add(mnuReloadEquipment); - jMenuBar1.add(mnuClearFluff); mnuCredits.addActionListener(this::mnuCreditsActionPerformed); mnuHelp.add(mnuCredits); - mnuAboutSSW.addActionListener(this::mnuAboutSSWActionPerformed); mnuHelp.add(mnuAboutSSW); jMenuBar1.add(mnuHelp); - setJMenuBar(jMenuBar1); GroupLayout layout = new GroupLayout(getContentPane()); @@ -7275,20 +7268,25 @@ private void cmbTurretActionPerformed(java.awt.event.ActionEvent evt) { String Turret = cmbTurret.getSelectedItem().toString(); if (Turret.equals("Single Turret") || Turret.equals("Chin Turret")) { CurVee.setHasTurret1(true); - if (chkOmniVee.isSelected() && !isLocked) { + if (!isLocked) { spnTurretTonnage.setEnabled(true); } + spnRearTurretTonnage.setVisible(false); + spnRearTurretTonnage.setValue(0); } else if (Turret.equals("Dual Turret")) { CurVee.setHasTurret1(true); CurVee.setHasTurret2(true); - if (chkOmniVee.isSelected() && !isLocked) { + if (!isLocked) { spnTurretTonnage.setEnabled(true); + spnRearTurretTonnage.setVisible(true); } } else { CurVee.setHasTurret1(false); CurVee.setHasTurret2(false); spnTurretTonnage.setEnabled(false); spnTurretTonnage.setValue(0); + spnRearTurretTonnage.setVisible(false); + spnRearTurretTonnage.setValue(0); } BuildLocationSelector(); From f9627b3cb963bb4ab3089cdf5107422aba03d7bc Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 26 Feb 2023 08:01:13 -0700 Subject: [PATCH 116/199] Use Enable vs Visible --- saw/src/main/java/saw/gui/frmVeeWide.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 2eda9caa..6c46c518 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -1702,7 +1702,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { ((JSpinner.DefaultEditor)spnTurretTonnage.getEditor()).getTextField().addFocusListener(spinners); spnRearTurretTonnage.setModel(new javax.swing.SpinnerNumberModel(0.0d, 0.0d, 50.0d, 0.5d)); - spnRearTurretTonnage.setVisible(false); + spnRearTurretTonnage.setEnabled(false); spnRearTurretTonnage.addChangeListener(this::spnRearTurretTonnageStateChanged); ((JSpinner.DefaultEditor)spnRearTurretTonnage.getEditor()).getTextField().addFocusListener(spinners); @@ -7271,21 +7271,21 @@ private void cmbTurretActionPerformed(java.awt.event.ActionEvent evt) { if (!isLocked) { spnTurretTonnage.setEnabled(true); } - spnRearTurretTonnage.setVisible(false); + spnRearTurretTonnage.setEnabled(false); spnRearTurretTonnage.setValue(0); } else if (Turret.equals("Dual Turret")) { CurVee.setHasTurret1(true); CurVee.setHasTurret2(true); if (!isLocked) { spnTurretTonnage.setEnabled(true); - spnRearTurretTonnage.setVisible(true); + spnRearTurretTonnage.setEnabled(true); } } else { CurVee.setHasTurret1(false); CurVee.setHasTurret2(false); spnTurretTonnage.setEnabled(false); spnTurretTonnage.setValue(0); - spnRearTurretTonnage.setVisible(false); + spnRearTurretTonnage.setEnabled(false); spnRearTurretTonnage.setValue(0); } From b9eba36697ee1de243835fb5cb4a5a3055a629f1 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 26 Feb 2023 10:07:01 -0700 Subject: [PATCH 117/199] Reducing Code Simplifying as much code as possible to make it easier to modify. --- saw/src/main/java/saw/gui/frmVeeWide.java | 809 +++++----------------- sswlib/src/main/java/common/Utils.java | 12 +- 2 files changed, 192 insertions(+), 629 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 6c46c518..af5d8c8b 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -51,6 +51,7 @@ import javax.swing.*; import javax.swing.event.ChangeListener; +import javax.swing.event.ListSelectionListener; import javax.swing.text.JTextComponent; import java.awt.*; import java.awt.datatransfer.Clipboard; @@ -1114,52 +1115,28 @@ private void initComponents() { lblArmorLeftInLot = new javax.swing.JLabel("99 Points Left In This 1/2 Ton Lot"); JPanel pnlEquipment = new JPanel(); pnlEquipInfo = new javax.swing.JPanel(); - JLabel lblAvailability = new JLabel("Avail. (AoW/SL)"); - JLabel lblSW = new JLabel("Avail. (SW)"); - JLabel lblCI = new JLabel("Avail. (CI)"); lblInfoAVSL = new javax.swing.JLabel(); lblInfoAVSW = new javax.swing.JLabel(); lblInfoAVCI = new javax.swing.JLabel(); - JLabel lblIntro = new JLabel("Introduction"); - JLabel lblExtinct = new JLabel("Extinction"); - JLabel lblReintro = new JLabel("Reintroduction"); lblInfoIntro = new javax.swing.JLabel(); lblInfoExtinct = new javax.swing.JLabel(); lblInfoReintro = new javax.swing.JLabel(); - JLabel lblName = new JLabel(" "); - JLabel lblType = new JLabel("Type"); - JLabel jLabel59 = new JLabel("Heat"); - JLabel jLabel60 = new JLabel("Damage"); - JLabel jLabel61 = new JLabel("Range"); JLabel lblInfoName = new JLabel(); lblInfoType = new javax.swing.JLabel(); lblInfoHeat = new javax.swing.JLabel(); lblInfoDamage = new javax.swing.JLabel(); lblInfoRange = new javax.swing.JLabel(); - JSeparator jSeparator17 = new JSeparator(); - JLabel jLabel62 = new JLabel("Ammo"); - JLabel jLabel63 = new JLabel("Tonnage"); - JLabel jLabel64 = new JLabel("Crits"); - JLabel jLabel65 = new JLabel("Specials"); lblInfoAmmo = new javax.swing.JLabel(); lblInfoTonnage = new javax.swing.JLabel(); lblInfoCrits = new javax.swing.JLabel(); lblInfoSpecials = new javax.swing.JLabel(); - JSeparator jSeparator20 = new JSeparator(); - JLabel jLabel66 = new JLabel("Cost"); lblInfoCost = new javax.swing.JLabel(); - JLabel jLabel67 = new JLabel("BV"); lblInfoBV = new javax.swing.JLabel(); - JLabel jLabel68 = new JLabel("Mounting Restrictions"); - JLabel lblMMName = new JLabel("MM Name"); lblMMNameInfo = new javax.swing.JLabel(); lblInfoMountRestrict = new javax.swing.JLabel(); - JLabel jLabel69 = new JLabel("Rules Level"); lblInfoRulesLevel = new javax.swing.JLabel(); - JLabel jLabel6 = new JLabel("Avail. (DA)"); lblInfoAVDA = new javax.swing.JLabel(); JPanel pnlSpecials = new JPanel(); - JLabel jLabel37 = new JLabel("Missile Guidance:"); chkUseTC = new javax.swing.JCheckBox("Targeting Computer"); chkFCSAIV = new javax.swing.JCheckBox("Use Artemis IV"); chkFCSAV = new javax.swing.JCheckBox("Use Artemis V"); @@ -1170,35 +1147,19 @@ private void initComponents() { JButton btnClearEquip = new JButton("Clear"); // Variables declaration - do not modify//GEN-BEGIN:variables JButton btnAddEquip = new JButton(">>"); - cmbNumEquips = new javax.swing.JComboBox(); + cmbNumEquips = new javax.swing.JComboBox(new String[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15" }); JScrollPane scrLocations = new JScrollPane(); cmbLocation = new javax.swing.JList(); JPanel pnlSelected = new JPanel(); JScrollPane scrSelectedEquip = new JScrollPane(); lstSelectedEquipment = new javax.swing.JList(); tbpWeaponChooser = new javax.swing.JTabbedPane(); - JPanel pnlBallistic = new JPanel(); - JScrollPane scrPhysical = new JScrollPane(); lstChooseBallistic = new javax.swing.JList(); - JPanel pnlEnergy = new JPanel(); - JSeparator jSeparator7 = new JSeparator(); - JScrollPane scrMissile = new JScrollPane(); lstChooseEnergy = new javax.swing.JList(); - JSeparator jSeparator8 = new JSeparator(); - JPanel pnlMissile = new JPanel(); - JScrollPane scrEquipment = new JScrollPane(); lstChooseMissile = new javax.swing.JList(); - JPanel pnlPhysical = new JPanel(); - JScrollPane scrEnergy = new JScrollPane(); lstChoosePhysical = new javax.swing.JList(); - JPanel pnlEquipmentChooser = new JPanel(); - JScrollPane scrBallistic = new JScrollPane(); lstChooseEquipment = new javax.swing.JList(); - JPanel pnlArtillery = new JPanel(); - JScrollPane scrArtillery = new JScrollPane(); lstChooseArtillery = new javax.swing.JList(); - JPanel pnlAmmunition = new JPanel(); - JScrollPane scrAmmo = new JScrollPane(); lstChooseAmmunition = new javax.swing.JList(); JPanel pnlFluff = new JPanel(); JPanel pnlExport = new JPanel(); @@ -1215,13 +1176,6 @@ private void initComponents() { pnlAdditionalFluff = new javax.swing.JPanel(); JPanel pnlManufacturers = new JPanel(); JLabel lblManuInfo = new JLabel(); - JLabel jLabel83 = new JLabel(); - JLabel jLabel84 = new JLabel(); - JLabel jLabel85 = new JLabel(); - JLabel jLabel86 = new JLabel(); - JLabel jLabel87 = new JLabel(); - JLabel jLabel88 = new JLabel(); - JLabel jLabel89 = new JLabel(); txtManufacturer = new javax.swing.JTextField(); txtEngineManufacturer = new javax.swing.JTextField(); txtArmorModel = new javax.swing.JTextField(); @@ -1231,10 +1185,8 @@ private void initComponents() { JPanel pnlWeaponsManufacturers = new JPanel(); chkIndividualWeapons = new javax.swing.JCheckBox(); JScrollPane scpWeaponManufacturers = new JScrollPane(); - JScrollPane scpManufacturers = new JScrollPane(); tblWeaponManufacturers = new javax.swing.JTable(); txtManufacturerLocation = new javax.swing.JTextField(); - JLabel jLabel90 = new JLabel(); txtJJModel = new javax.swing.JTextField(); JPanel pnlQuirks = new JPanel(); JLabel lblBattleMechQuirks = new JLabel("Quirks"); @@ -2351,377 +2303,86 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { tbpMainTabPane.addTab("Basic Setup and Armor", pnlBasicSetup); + //region Equipment Tab / Highlighted Equipment Information pnlEquipInfo.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Information")); pnlEquipInfo.setLayout(new java.awt.GridBagLayout()); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 3; - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 3); - pnlEquipInfo.add(lblAvailability, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 4; - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 3); - pnlEquipInfo.add(lblSW, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 5; - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 3); - pnlEquipInfo.add(lblCI, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 3; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(lblInfoAVSL, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 4; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(lblInfoAVSW, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 5; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(lblInfoAVCI, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 2; - gridBagConstraints.gridy = 3; - gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = GridBagConstraints.EAST; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(lblIntro, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 2; - gridBagConstraints.gridy = 4; - gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = GridBagConstraints.EAST; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(lblExtinct, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 2; - gridBagConstraints.gridy = 5; - gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = GridBagConstraints.EAST; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(lblReintro, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 4; - gridBagConstraints.gridy = 3; - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(lblInfoIntro, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 4; - gridBagConstraints.gridy = 4; - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(lblInfoExtinct, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 4; - gridBagConstraints.gridy = 5; - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(lblInfoReintro, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 3); - pnlEquipInfo.add(lblName, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); - pnlEquipInfo.add(lblType, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); - pnlEquipInfo.add(jLabel59, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); - pnlEquipInfo.add(jLabel60, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); - pnlEquipInfo.add(jLabel61, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 1; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(lblInfoType, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 2; - gridBagConstraints.gridy = 1; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(lblInfoHeat, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 3; - gridBagConstraints.gridy = 1; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(lblInfoDamage, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 4; - gridBagConstraints.gridy = 1; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(lblInfoRange, gridBagConstraints); - - jSeparator17.setBorder(javax.swing.BorderFactory.createEtchedBorder()); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 2; - gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.insets = new java.awt.Insets(4, 0, 4, 0); - pnlEquipInfo.add(jSeparator17, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 5; - gridBagConstraints.gridy = 0; - gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); - pnlEquipInfo.add(jLabel62, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 6; - gridBagConstraints.gridy = 0; - gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); - pnlEquipInfo.add(jLabel63, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 7; - gridBagConstraints.gridy = 0; - gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 3); - pnlEquipInfo.add(jLabel64, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 8; - gridBagConstraints.gridy = 0; - gridBagConstraints.insets = new java.awt.Insets(4, 3, 0, 0); - pnlEquipInfo.add(jLabel65, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 5; - gridBagConstraints.gridy = 1; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(lblInfoAmmo, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 6; - gridBagConstraints.gridy = 1; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(lblInfoTonnage, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 7; - gridBagConstraints.gridy = 1; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(lblInfoCrits, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 8; - gridBagConstraints.gridy = 1; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 0); - pnlEquipInfo.add(lblInfoSpecials, gridBagConstraints); - - jSeparator20.setBorder(javax.swing.BorderFactory.createEtchedBorder()); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 7; - gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.insets = new java.awt.Insets(4, 0, 4, 0); - pnlEquipInfo.add(jSeparator20, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 5; - gridBagConstraints.gridy = 4; - gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = GridBagConstraints.EAST; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(jLabel66, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 7; - gridBagConstraints.gridy = 4; - gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 0); - pnlEquipInfo.add(lblInfoCost, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 5; - gridBagConstraints.gridy = 5; - gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = GridBagConstraints.EAST; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(jLabel67, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 7; - gridBagConstraints.gridy = 5; - gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 0); - pnlEquipInfo.add(lblInfoBV, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 8; - gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(0, 0, 4, 3); - pnlEquipInfo.add(jLabel68, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 2; - gridBagConstraints.gridy = 8; - gridBagConstraints.gridwidth = 7; - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 4, 0); - pnlEquipInfo.add(lblInfoMountRestrict, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 9; - gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(0, 0, 4, 3); - pnlEquipInfo.add(lblMMName, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 2; - gridBagConstraints.gridy = 9; - gridBagConstraints.gridwidth = 7; - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 4, 0); - pnlEquipInfo.add(lblMMNameInfo, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 5; - gridBagConstraints.gridy = 3; - gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = GridBagConstraints.EAST; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(jLabel69, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 7; - gridBagConstraints.gridy = 3; - gridBagConstraints.gridwidth = 2; - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 0); - pnlEquipInfo.add(lblInfoRulesLevel, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 6; - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 3); - pnlEquipInfo.add(jLabel6, gridBagConstraints); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 6; - gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); - pnlEquipInfo.add(lblInfoAVDA, gridBagConstraints); - - pnlSpecials.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Specials")); - pnlSpecials.setLayout(new java.awt.GridBagLayout()); - - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 0); - pnlSpecials.add(jLabel37, gridBagConstraints); - - chkUseTC.setEnabled(false); - chkUseTC.addActionListener(this::chkUseTCActionPerformed); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 4; - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(2, 2, 0, 0); - pnlSpecials.add(chkUseTC, gridBagConstraints); - + pnlEquipInfo.add(new JLabel("Avail. (AoW/SL)"), Utils.gridBag(0, 3, new Insets(0, 0, 0, 3))); + pnlEquipInfo.add(new JLabel("Avail. (SW)"), Utils.gridBag(0, 4, new Insets(0, 0, 0, 3))); + pnlEquipInfo.add(new JLabel("Avail. (CI)"), Utils.gridBag(0, 5, new Insets(0, 0, 0, 3))); + pnlEquipInfo.add(lblInfoAVSL, Utils.gridBag(1, 3, new Insets(0, 3, 0, 3))); + pnlEquipInfo.add(lblInfoAVSW, Utils.gridBag(1, 4, new Insets(0, 3, 0, 3))); + pnlEquipInfo.add(lblInfoAVCI, Utils.gridBag(1, 5, new Insets(0, 3, 0, 3))); + pnlEquipInfo.add(new JLabel("Introduction"), Utils.gridBag(2, 3, 2, GridBagConstraints.EAST, new Insets(0, 3, 0, 3))); + pnlEquipInfo.add(new JLabel("Extinction"), Utils.gridBag(2, 4, 2, GridBagConstraints.EAST, new Insets(0, 3, 0, 3))); + pnlEquipInfo.add(new JLabel("Reintroduction"), Utils.gridBag(2, 5, 2, GridBagConstraints.EAST, new Insets(0, 3, 0, 3))); + pnlEquipInfo.add(lblInfoIntro, Utils.gridBag(4, 3, new Insets(0, 3, 0, 3))); + pnlEquipInfo.add(lblInfoExtinct, Utils.gridBag(4, 4, new Insets(0, 3, 0, 3))); + pnlEquipInfo.add(lblInfoReintro, Utils.gridBag(4, 5, new Insets(0, 3, 0, 3))); + pnlEquipInfo.add(new JLabel(" "), Utils.gridBag(0, 0, new Insets(4, 0, 0, 3))); + pnlEquipInfo.add(new JLabel("Type"), Utils.gridBag(1, 0, new Insets(4, 3, 0, 3))); + pnlEquipInfo.add(new JLabel("Heat"), Utils.gridBag(2, 0, new Insets(4, 3, 0, 3))); + pnlEquipInfo.add(new JLabel("Damage"), Utils.gridBag(3, 0, new Insets(4, 3, 0, 3))); + pnlEquipInfo.add(new JLabel("Range"), Utils.gridBag(4, 0, new Insets(4, 3, 0, 3))); + pnlEquipInfo.add(new JLabel("Ammo"), Utils.gridBag(5, 0, new Insets(4, 3, 0, 3))); + pnlEquipInfo.add(new JLabel("Tonnage"), Utils.gridBag(6, 0, new Insets(4, 3, 0, 3))); + pnlEquipInfo.add(new JLabel("Crits"), Utils.gridBag(7, 0, new Insets(4, 3, 0, 3))); + pnlEquipInfo.add(new JLabel("Specials"), Utils.gridBag(8, 0, new Insets(4, 3, 0, 0))); + pnlEquipInfo.add(lblInfoType, Utils.gridBag(1, 1, new Insets(0, 3, 0, 3))); + pnlEquipInfo.add(lblInfoHeat, Utils.gridBag(2, 1, new Insets(0, 3, 0, 3))); + pnlEquipInfo.add(lblInfoDamage, Utils.gridBag(3, 1, new Insets(0, 3, 0, 3))); + pnlEquipInfo.add(lblInfoRange, Utils.gridBag(4, 1, new Insets(0, 3, 0, 3))); + pnlEquipInfo.add(Utils.etchedSeperator(), Utils.gridBag(0, 2, GridBagConstraints.REMAINDER, GridBagConstraints.WEST, new Insets(4, 0, 4, 0))); + pnlEquipInfo.add(lblInfoAmmo, Utils.gridBag(5, 1, new Insets(0, 3, 0, 3))); + pnlEquipInfo.add(lblInfoTonnage, Utils.gridBag(6, 1, new Insets(0, 3, 0, 3))); + pnlEquipInfo.add(lblInfoCrits, Utils.gridBag(7, 1, new Insets(0, 3, 0, 3))); + pnlEquipInfo.add(lblInfoSpecials, Utils.gridBag(8, 1, new Insets(0, 3, 0, 0))); + pnlEquipInfo.add(Utils.etchedSeperator(), Utils.gridBag(0, 7, GridBagConstraints.REMAINDER, GridBagConstraints.WEST, new Insets(4, 0, 4, 0))); + pnlEquipInfo.add(new JLabel("Cost"), Utils.gridBag(5, 4, 2, GridBagConstraints.EAST, new Insets(0, 3, 0, 3))); + pnlEquipInfo.add(lblInfoCost, Utils.gridBag(7, 4, 2, GridBagConstraints.WEST, new Insets(0, 3, 0, 0))); + pnlEquipInfo.add(new JLabel("BV"), Utils.gridBag(5, 5, 2, GridBagConstraints.WEST, new Insets(0, 3, 0, 3))); + pnlEquipInfo.add(lblInfoBV, Utils.gridBag(7, 5, 2, GridBagConstraints.WEST, new Insets(0, 3, 0, 0))); + pnlEquipInfo.add(new JLabel("Mounting Restrictions"), Utils.gridBag(0, 8, 2, GridBagConstraints.WEST, new Insets(0, 0, 4, 3))); + pnlEquipInfo.add(lblInfoMountRestrict, Utils.gridBag(2, 8, 7, GridBagConstraints.WEST, new Insets(0, 3, 4, 0))); + pnlEquipInfo.add(new JLabel("MM Name"), Utils.gridBag(0, 9, 2, GridBagConstraints.WEST, new Insets(0, 0, 4, 3))); + pnlEquipInfo.add(lblMMNameInfo, Utils.gridBag(2, 9, 7, GridBagConstraints.WEST, new Insets(0, 3, 4, 0))); + pnlEquipInfo.add(new JLabel("Rules Level"), Utils.gridBag(5, 3, 2, GridBagConstraints.EAST, new Insets(0, 3, 0, 3))); + pnlEquipInfo.add(lblInfoRulesLevel, Utils.gridBag(7, 3, 2, GridBagConstraints.WEST, new Insets(0, 3, 0, 0))); + pnlEquipInfo.add(new JLabel("Avail. (DA)"), Utils.gridBag(0, 6, new Insets(0, 0, 0, 3))); + pnlEquipInfo.add(lblInfoAVDA, Utils.gridBag(1, 6, new Insets(0, 3, 0, 3))); + //endregion + + //region Equipment Tab / Specials Panel chkFCSAIV.addActionListener(this::chkFCSAIVActionPerformed); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); - pnlSpecials.add(chkFCSAIV, gridBagConstraints); - chkFCSAV.setEnabled(false); chkFCSAV.addActionListener(this::chkFCSAVActionPerformed); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 2; - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); - pnlSpecials.add(chkFCSAV, gridBagConstraints); - chkFCSApollo.setEnabled(false); chkFCSApollo.addActionListener(this::chkFCSApolloActionPerformed); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 3; - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); - pnlSpecials.add(chkFCSApollo, gridBagConstraints); - + chkUseTC.setEnabled(false); + chkUseTC.addActionListener(this::chkUseTCActionPerformed); chkCASE.addActionListener(this::chkCASEActionPerformed); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 5; - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(2, 2, 0, 0); - pnlSpecials.add(chkCASE, gridBagConstraints); - - pnlControls.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Controls")); - pnlControls.setLayout(new java.awt.GridBagLayout()); + pnlSpecials.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Specials")); + pnlSpecials.setLayout(new java.awt.GridBagLayout()); + pnlSpecials.add(new JLabel("Missile Guidance:"), Utils.gridBag(0, 0)); + pnlSpecials.add(chkFCSAIV, Utils.gridBag(0, 1)); + pnlSpecials.add(chkFCSAV, Utils.gridBag(0, 2)); + pnlSpecials.add(chkFCSApollo, Utils.gridBag(0, 3)); + pnlSpecials.add(chkUseTC, Utils.gridBag(0, 4)); + pnlSpecials.add(chkCASE, Utils.gridBag(0, 5)); + //endregion + + //region Equipment Tab / Controls Panel btnRemoveEquip.addActionListener(this::btnRemoveEquipActionPerformed); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 8); - pnlControls.add(btnRemoveEquip, gridBagConstraints); - btnClearEquip.addActionListener(this::btnClearEquipActionPerformed); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 0); - pnlControls.add(btnClearEquip, gridBagConstraints); - btnAddEquip.addActionListener(this::btnAddEquipActionPerformed); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 2; - gridBagConstraints.gridy = 0; - gridBagConstraints.insets = new java.awt.Insets(0, 8, 0, 0); - pnlControls.add(btnAddEquip, gridBagConstraints); - cmbNumEquips.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15" })); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 2; - gridBagConstraints.gridy = 1; - gridBagConstraints.insets = new java.awt.Insets(4, 8, 0, 0); - pnlControls.add(cmbNumEquips, gridBagConstraints); + pnlControls.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Controls")); + pnlControls.setLayout(new java.awt.GridBagLayout()); + pnlControls.setPreferredSize(new Dimension(135, 200)); + pnlControls.add(btnRemoveEquip, Utils.gridBag(0, 0)); + pnlControls.add(btnClearEquip, Utils.gridBag(0, 1)); + pnlControls.add(btnAddEquip, Utils.gridBag(1, 0)); + pnlControls.add(cmbNumEquips, Utils.gridBag(1, 1)); cmbLocation.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Front", "Left", "Right", "Rear", "Body", "Turret", "Rear Turret" }; @@ -2738,19 +2399,15 @@ public void mouseClicked(java.awt.event.MouseEvent evt) { }); scrLocations.setViewportView(cmbLocation); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 2; - gridBagConstraints.gridwidth = 3; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.insets = new java.awt.Insets(4, 0, 4, 0); - pnlControls.add(scrLocations, gridBagConstraints); + pnlControls.add(scrLocations, Utils.gridBag(0, 2, 2, 1)); pnlSelected.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Selected Equipment")); pnlSelected.setMaximumSize(new Dimension(250, 1000)); pnlSelected.setMinimumSize(new Dimension(150, 250)); pnlSelected.setLayout(new BoxLayout(pnlSelected, BoxLayout.LINE_AXIS)); + //endregion + //region Equipment Tab / Selected Equipment Panel lstSelectedEquipment.setModel( new javax.swing.DefaultListModel()); lstSelectedEquipment.addListSelectionListener(this::lstSelectedEquipmentValueChanged); lstSelectedEquipment.addKeyListener(new java.awt.event.KeyAdapter() { @@ -2783,176 +2440,34 @@ public void mousePressed( MouseEvent e ) { scrSelectedEquip.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); scrSelectedEquip.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); scrSelectedEquip.setViewportView(lstSelectedEquipment); - pnlSelected.add(scrSelectedEquip); + //endregion - tbpWeaponChooser.setTabPlacement(javax.swing.JTabbedPane.RIGHT); - tbpWeaponChooser.setMinimumSize(new Dimension(150, 250)); - tbpWeaponChooser.setMaximumSize(new Dimension(350, 1000)); - - lstChooseBallistic.setModel(new javax.swing.AbstractListModel() { + //region Equipment Tab / Weapons and Equipment Lists + AbstractListModel placeholder = new javax.swing.AbstractListModel() { String[] strings = { "Placeholder" }; public int getSize() { return strings.length; } public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseBallistic.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseBallistic.addListSelectionListener(this::lstChooseBallisticValueChanged); - MouseListener mlBallistic = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } }; - lstChooseBallistic.addMouseListener( mlBallistic ); - lstChooseBallistic.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); - scrBallistic.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); - scrBallistic.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); - scrBallistic.setViewportView(lstChooseBallistic); - pnlBallistic.setLayout(new BoxLayout(pnlBallistic, BoxLayout.Y_AXIS)); - pnlBallistic.add(scrBallistic); - - lstChooseEnergy.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseEnergy.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseEnergy.addListSelectionListener(this::lstChooseEnergyValueChanged); - MouseListener mlEnergy = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } - }; - lstChooseEnergy.addMouseListener( mlEnergy ); - lstChooseEnergy.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); - scrEnergy.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); - scrEnergy.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); - scrEnergy.setViewportView(lstChooseEnergy); - - pnlEnergy.setLayout(new BoxLayout(pnlEnergy, BoxLayout.Y_AXIS)); - pnlEnergy.add(scrEnergy); - - lstChooseMissile.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseMissile.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseMissile.addListSelectionListener(this::lstChooseMissileValueChanged); - MouseListener mlMissile = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } - }; - lstChooseMissile.addMouseListener( mlMissile ); - lstChooseMissile.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); - scrMissile.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); - scrMissile.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); - scrMissile.setViewportView(lstChooseMissile); - pnlMissile.setLayout(new BoxLayout(pnlMissile, BoxLayout.Y_AXIS)); - pnlMissile.add(scrMissile); - - lstChoosePhysical.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChoosePhysical.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChoosePhysical.addListSelectionListener(this::lstChoosePhysicalValueChanged); - MouseListener mlPhysical = new MouseAdapter() { + MouseListener mlAddEquip = new MouseAdapter() { public void mouseClicked( MouseEvent e ) { if ( e.getClickCount() == 2 && e.getButton() == 1 ) { btnAddEquipActionPerformed( null ); } } }; - lstChoosePhysical.addMouseListener( mlPhysical ); - lstChoosePhysical.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); - scrPhysical.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); - scrPhysical.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); - scrPhysical.setViewportView(lstChoosePhysical); - pnlPhysical.setLayout(new BoxLayout(pnlPhysical, BoxLayout.Y_AXIS)); - pnlPhysical.add(scrPhysical); - - lstChooseEquipment.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseEquipment.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseEquipment.addListSelectionListener(this::lstChooseEquipmentValueChanged); - MouseListener mlEquipment = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } - }; - lstChooseEquipment.addMouseListener( mlEquipment ); - lstChooseEquipment.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); - scrEquipment.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); - scrEquipment.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); - scrEquipment.setViewportView(lstChooseEquipment); - pnlEquipmentChooser.setLayout(new BoxLayout(pnlEquipmentChooser, BoxLayout.Y_AXIS)); - pnlEquipmentChooser.add(scrEquipment); - - lstChooseArtillery.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseArtillery.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseArtillery.addListSelectionListener(this::lstChooseArtilleryValueChanged); - MouseListener mlArtillery = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } - }; - lstChooseArtillery.addMouseListener( mlArtillery ); - lstChooseArtillery.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); - scrArtillery.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); - scrArtillery.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); - scrArtillery.setViewportView(lstChooseArtillery); - pnlArtillery.setLayout(new BoxLayout(pnlArtillery, BoxLayout.Y_AXIS)); - pnlArtillery.add(scrArtillery); - - lstChooseAmmunition.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseAmmunition.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseAmmunition.addListSelectionListener(this::lstChooseAmmunitionValueChanged); - MouseListener mlAmmo = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } - }; - lstChooseAmmunition.addMouseListener( mlAmmo ); - lstChooseAmmunition.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); - scrAmmo.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); - scrAmmo.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); - scrAmmo.setViewportView(lstChooseAmmunition); - pnlAmmunition.setLayout(new BoxLayout(pnlAmmunition, BoxLayout.Y_AXIS)); - pnlAmmunition.add(scrAmmo); - - tbpWeaponChooser.addTab("Ballistic", pnlBallistic); - tbpWeaponChooser.addTab("Energy", pnlEnergy); - tbpWeaponChooser.addTab("Missile", pnlMissile); - tbpWeaponChooser.addTab("Physical", pnlPhysical); - tbpWeaponChooser.addTab("Equipment", pnlEquipmentChooser); - tbpWeaponChooser.addTab("Artillery", pnlArtillery); - tbpWeaponChooser.addTab("Ammunition", pnlAmmunition); + + tbpWeaponChooser.setTabPlacement(javax.swing.JTabbedPane.RIGHT); + tbpWeaponChooser.setMinimumSize(new Dimension(150, 250)); + tbpWeaponChooser.setMaximumSize(new Dimension(350, 1000)); + tbpWeaponChooser.addTab("Ballistic", EquipmentLocation(lstChooseBallistic, this::lstChooseBallisticValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Energy", EquipmentLocation(lstChooseEnergy, this::lstChooseEnergyValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Missile", EquipmentLocation(lstChooseMissile, this::lstChooseMissileValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Physical", EquipmentLocation(lstChoosePhysical, this::lstChoosePhysicalValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Equipment", EquipmentLocation(lstChooseEquipment, this::lstChooseEquipmentValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Artillery", EquipmentLocation(lstChooseArtillery, this::lstChooseArtilleryValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Ammunition", EquipmentLocation(lstChooseAmmunition, this::lstChooseAmmunitionValueChanged, mlAddEquip, placeholder)); GroupLayout pnlEquipmentLayout = new GroupLayout(pnlEquipment); pnlEquipment.setLayout(pnlEquipmentLayout); @@ -2981,7 +2496,9 @@ public void mouseClicked( MouseEvent e ) { ); tbpMainTabPane.addTab("Equipment", pnlEquipment); + //endregion + //region Battleforce Tab / Export Panel (hidden) pnlExport.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Export", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", Font.PLAIN, 11))); // NOI18N pnlExport.setLayout(new java.awt.GridBagLayout()); @@ -2999,7 +2516,9 @@ public void mouseClicked( MouseEvent e ) { gridBagConstraints = new GridBagConstraints(); gridBagConstraints.anchor = GridBagConstraints.EAST; pnlExport.add(btnExportMTF, gridBagConstraints); + //endregion + //region Fluff Tab / Fluff Editors tbpFluffEditors.setTabPlacement(JTabbedPane.RIGHT); tbpFluffEditors.setMaximumSize(new Dimension(1000, 1000)); tbpFluffEditors.setMinimumSize(new Dimension(420, 455)); @@ -3037,7 +2556,9 @@ public void mousePressed( MouseEvent e ) { } } }; + //endregion + //region Fluff Tab / Manufacturers lblManuInfo.setFont(new java.awt.Font("Arial", Font.BOLD, 12)); // NOI18N lblManuInfo.setText("Manufacturer Information"); @@ -3084,7 +2605,9 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { pnlManufacturers.add(pnlWeaponsManufacturers); //tbpFluffEditors.addTab("Manufacturers", pnlManufacturers); + //endregion + //region Fluff Tab / Quirks Editor lblBattleMechQuirks.setFont(new java.awt.Font("Arial", Font.BOLD, 12)); // NOI18N tblQuirks.setModel(new tbQuirks(new ArrayList<Quirk>())); @@ -3120,10 +2643,70 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { ); tbpFluffEditors.addTab("Quirks", pnlQuirks); + //endregion + //region Fluff Tab / Fluff Image + pnlImage.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Fluff Image", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", Font.PLAIN, 11))); // NOI18N + pnlImage.setPreferredSize(new Dimension(400, 450)); + pnlImageButtons.setLayout(new java.awt.GridBagLayout()); + + btnLoadImage.addActionListener(this::btnLoadImageActionPerformed); + pnlImageButtons.add(btnLoadImage, new GridBagConstraints()); + + btnClearImage.addActionListener(this::btnClearImageActionPerformed); + pnlImageButtons.add(btnClearImage, Utils.gridBag(1, 0)); + + GroupLayout pnlImageLayout = new GroupLayout(pnlImage); + pnlImage.setLayout(pnlImageLayout); + pnlImageLayout.setHorizontalGroup( + pnlImageLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(pnlImageButtons, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(lblFluffImage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + ); + pnlImageLayout.setVerticalGroup( + pnlImageLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(pnlImageLayout.createSequentialGroup() + .addComponent(pnlImageButtons, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addComponent(lblFluffImage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + //endregion + + //region Fluff Tab / Layout + GroupLayout pnlFluffLayout = new GroupLayout(pnlFluff); + pnlFluff.setLayout(pnlFluffLayout); + pnlFluffLayout.setHorizontalGroup( + pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(pnlFluffLayout.createSequentialGroup() + .addContainerGap() + .addComponent(pnlManufacturers, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + + .addComponent(tbpFluffEditors, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addComponent(pnlImage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + + .addContainerGap()) + ); + pnlFluffLayout.setVerticalGroup( + pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING, true) + .addGroup(pnlFluffLayout.createSequentialGroup() + .addContainerGap() + .addGroup(pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING, true) + .addComponent(pnlManufacturers, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(tbpFluffEditors, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE) + .addComponent(pnlImage, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap()) + ); + + tbpMainTabPane.addTab("Fluff", pnlFluff); + //endregion + + //region Battleforce Tab / Battleforce Stats pnlBFStats.setBorder(javax.swing.BorderFactory.createTitledBorder("BattleForce Stats")); pnlBFStats.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); - pnlBFStats.add(jLabel70, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 30, -1, -1)); pnlBFStats.add(jLabel71, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 30, -1, -1)); pnlBFStats.add(jLabel72, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 30, -1, -1)); @@ -3155,6 +2738,9 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { pnlBFStats.add(lblBFSA, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 130, 430, 20)); pnlBFStats.add(jLabel80, new org.netbeans.lib.awtextra.AbsoluteConstraints(460, 30, -1, -1)); pnlBFStats.add(lblBFPoints, new org.netbeans.lib.awtextra.AbsoluteConstraints(510, 30, -1, -1)); + //endregion + + //region Battleforce Tab / Conversion Steps pnlConversionSteps.setBorder(javax.swing.BorderFactory.createTitledBorder("Conversion Steps")); jTextAreaBFConversion.setColumns(60); @@ -3175,69 +2761,18 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { jPanel10Layout.createParallelGroup(GroupLayout.Alignment.LEADING, true) .addComponent(scpBFConversion) ); + //endregion - pnlImage.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Fluff Image", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", Font.PLAIN, 11))); // NOI18N - pnlImage.setPreferredSize(new Dimension(400, 450)); - pnlImageButtons.setLayout(new java.awt.GridBagLayout()); - - btnLoadImage.addActionListener(this::btnLoadImageActionPerformed); - pnlImageButtons.add(btnLoadImage, new GridBagConstraints()); - - btnClearImage.addActionListener(this::btnClearImageActionPerformed); - pnlImageButtons.add(btnClearImage, Utils.gridBag(1, 0)); - - GroupLayout pnlImageLayout = new GroupLayout(pnlImage); - pnlImage.setLayout(pnlImageLayout); - pnlImageLayout.setHorizontalGroup( - pnlImageLayout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addComponent(pnlImageButtons, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addComponent(lblFluffImage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - ); - pnlImageLayout.setVerticalGroup( - pnlImageLayout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(pnlImageLayout.createSequentialGroup() - .addComponent(pnlImageButtons, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) - .addComponent(lblFluffImage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - ); - - GroupLayout pnlFluffLayout = new GroupLayout(pnlFluff); - pnlFluff.setLayout(pnlFluffLayout); - pnlFluffLayout.setHorizontalGroup( - pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(pnlFluffLayout.createSequentialGroup() - .addContainerGap() - .addComponent(pnlManufacturers, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) - - .addComponent(tbpFluffEditors, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) - .addComponent(pnlImage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) - - .addContainerGap()) - ); - pnlFluffLayout.setVerticalGroup( - pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING, true) - .addGroup(pnlFluffLayout.createSequentialGroup() - .addContainerGap() - .addGroup(pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING, true) - .addComponent(pnlManufacturers, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(tbpFluffEditors, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE) - .addComponent(pnlImage, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addContainerGap()) - ); - - tbpMainTabPane.addTab("Fluff", pnlFluff); - + //region Battleforce Tab / Layout JPanel pnlBF = new JPanel(); pnlBF.setLayout(new BoxLayout(pnlBF, BoxLayout.X_AXIS)); pnlBF.add(pnlBFStats); pnlBF.add(pnlConversionSteps); //pnlBF.add(pnlExport); tbpMainTabPane.addTab("BattleForce", pnlBF); + //endregion + //region Menus mnuFile.addActionListener(this::mnuFileActionPerformed); mnuNewMech.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.ALT_MASK)); @@ -3361,6 +2896,7 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { .addComponent(tbpMainTabPane) .addComponent(pnlInfoPane, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)) ); + //endregion pack(); } @@ -3371,6 +2907,7 @@ private JButton OmniButton(JButton button, ActionListener listener) { button.addActionListener(listener); return button; } + private JPanel ArmorLocation(String title, JLabel label, JSpinner spinner, ChangeListener listener) { JPanel pnl = new JPanel(); pnl.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), title)); @@ -3387,6 +2924,22 @@ private JPanel ArmorLocation(String title, JLabel label, JSpinner spinner, Chang return pnl; } + private JPanel EquipmentLocation(JList list, ListSelectionListener selection, MouseListener listener, AbstractListModel display) { + JPanel panel = new JPanel(); + list.setModel(display); + list.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); + list.addListSelectionListener(selection); + list.addMouseListener( listener ); + list.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); + JScrollPane pane = new JScrollPane(); + pane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); + pane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); + pane.setViewportView(list); + panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); + panel.add(pane); + return panel; + } + private JPanel DataEntry(String label, JTextField input, MouseListener listener) { JPanel entry = new JPanel(); entry.setLayout(new BoxLayout(entry, BoxLayout.X_AXIS)); diff --git a/sswlib/src/main/java/common/Utils.java b/sswlib/src/main/java/common/Utils.java index 2052b1d0..d4ee56e0 100644 --- a/sswlib/src/main/java/common/Utils.java +++ b/sswlib/src/main/java/common/Utils.java @@ -2,7 +2,7 @@ import java.awt.*; import java.io.File; -import javax.swing.ImageIcon; +import javax.swing.*; /* Utils.java is used by FileChooserDemo2.java. */ public class Utils { @@ -46,7 +46,17 @@ public static GridBagConstraints gridBag(int x, int y, Insets inset) { return new GridBagConstraints(x, y, 1, 1, 1.0, 1.0, GridBagConstraints.WEST, 1, inset, 0, 0); } + public static GridBagConstraints gridBag(int x, int y, int width, int height) { + return new GridBagConstraints(x, y, width, height, 1.0, 1.0, GridBagConstraints.WEST, 1, new Insets(0, 0, 0, 0), 0, 0); + } + public static GridBagConstraints gridBag(int x, int y, int width, int anchor, Insets inset) { return new GridBagConstraints(x, y, width, 1, 1.0, 1.0, anchor, 1, inset, 0, 0); } + + public static JSeparator etchedSeperator() { + JSeparator sep = new JSeparator(); + sep.setBorder(BorderFactory.createEtchedBorder()); + return sep; + } } From e2332cdbedbf5b0c9cc90d32deca43ae689798b4 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 26 Feb 2023 15:45:46 -0700 Subject: [PATCH 118/199] More Cleanup Simplify Menu generation --- saw/src/main/java/saw/gui/frmVeeWide.java | 527 ++++++---------------- sswlib/src/main/java/common/Utils.java | 46 +- 2 files changed, 174 insertions(+), 399 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index af5d8c8b..214a049b 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -921,24 +921,6 @@ private void initComponents() { txtInfoBattleValue = new javax.swing.JTextField(); txtInfoCost = new javax.swing.JTextField(); tlbIconBar = new javax.swing.JToolBar(); - JButton btnNewVee = new JButton(); - JButton btnOpen = new JButton(); - JButton btnSave = new JButton(); - JToolBar.Separator jSeparator1 = new JToolBar.Separator(); - JButton btnPrint = new JButton(); - JToolBar.Separator jSeparator2 = new JToolBar.Separator(); - JButton btnExportClipboardIcon = new JButton(); - JButton btnExportHTMLIcon = new JButton(); - JButton btnExportTextIcon = new JButton(); - JButton btnExportMTFIcon = new JButton(); - JButton btnChatInfo = new JButton(); - JToolBar.Separator jSeparator3 = new JToolBar.Separator(); - JToolBar.Separator jSeparator25 = new JToolBar.Separator(); - JButton btnAddToForceList = new JButton(); - JButton btnForceList = new JButton(); - JToolBar.Separator jSeparator4 = new JToolBar.Separator(); - JButton btnOptions = new JButton(); - JToolBar.Separator jSeparator21 = new JToolBar.Separator(); JLabel lblSelectVariant = new JLabel("Selected Variant: "); cmbOmniVariant = new javax.swing.JComboBox(); tbpMainTabPane = new javax.swing.JTabbedPane(); @@ -1002,46 +984,31 @@ private void initComponents() { JPanel jPanel11 = new JPanel(); chkFractional = new javax.swing.JCheckBox("Use Fractional Accounting"); JPanel pnlSummary = new JPanel(); - JLabel lblSummaryItem = new JLabel("Item"); - JLabel lblSummaryTonnage = new JLabel("Tonnage"); - JLabel jLabel15 = new JLabel("Space"); - JLabel jLabel16 = new JLabel("Availability"); - JLabel jLabel17 = new JLabel("Internal Structure:"); - txtSumIntTons = new javax.swing.JTextField("000.00"); - txtSumIntAV = new javax.swing.JTextField("X/X-X-X"); - JLabel jLabel18 = new JLabel("Engine:"); - txtSumEngTons = new javax.swing.JTextField("000.00"); - txtSumEngAV = new javax.swing.JTextField("X/X-X-X"); - JLabel jLabel19 = new JLabel("Lift/Dive/Rotor:"); - txtSumLifTons = new javax.swing.JTextField("000.00"); - txtSumLifAV = new javax.swing.JTextField("X/X-X-X"); - txtSumEngSpace = new javax.swing.JTextField("00"); - JLabel jLabel20 = new JLabel("Controls:"); - txtSumConTons = new javax.swing.JTextField("000.00"); - txtSumConAV = new javax.swing.JTextField("X/X-X-X"); - JLabel jLabel21 = new JLabel("Jump Jets:"); - txtSumJJTons = new javax.swing.JTextField("000.00"); - JTextField txtSumJJSpace = new JTextField("00"); - txtSumJJAV = new javax.swing.JTextField("X/X-X-X"); - JLabel jLabel22 = new JLabel("Heat Sinks:"); - txtSumHSTons = new javax.swing.JTextField("000.00"); - txtSumHSAV = new javax.swing.JTextField("X/X-X-X"); - JLabel jLabel23 = new JLabel("Armor:"); - txtSumArmTons = new javax.swing.JTextField("000.00"); - txtSumArmSpace = new javax.swing.JTextField("00"); - txtSumArmAV = new javax.swing.JTextField("X/X-X-X"); - JLabel jLabel24 = new JLabel("Turret:"); - txtSumTurTons = new javax.swing.JTextField("000.00"); - txtSumTurAV = new javax.swing.JTextField("X/X-X-X"); - JLabel jLabel25 = new JLabel("Rear Turret:"); - txtSumRTuTons = new javax.swing.JTextField("000.00"); - txtSumRTuAV = new javax.swing.JTextField("X/X-X-X"); - JLabel jLabel26 = new JLabel("Sponsons:"); - txtSumSpnTons = new javax.swing.JTextField("000.00"); - txtSumSpnAV = new javax.swing.JTextField("X/X-X-X"); - JLabel jLabel27 = new JLabel("Power Amplifiers:"); - txtSumPATons = new javax.swing.JTextField("000.00"); - txtSumPAAV = new javax.swing.JTextField("X/X-X-X"); + txtSumIntTons = Utils.summaryField("000.00");; + txtSumIntAV = Utils.summaryField("X/X-X-X"); + txtSumEngTons = Utils.summaryField("000.00"); + txtSumEngAV = Utils.summaryField("X/X-X-X"); + txtSumLifTons = Utils.summaryField("000.00"); + txtSumLifAV = Utils.summaryField("X/X-X-X"); + txtSumEngSpace = Utils.summaryField("00"); + txtSumConTons = Utils.summaryField("000.00"); + txtSumConAV = Utils.summaryField("X/X-X-X"); + txtSumJJTons = Utils.summaryField("000.00"); + JTextField txtSumJJSpace = Utils.summaryField("00"); + txtSumJJAV = Utils.summaryField("X/X-X-X"); + txtSumHSTons = Utils.summaryField("000.00"); + txtSumHSAV = Utils.summaryField("X/X-X-X"); + txtSumArmTons = Utils.summaryField("000.00"); + txtSumArmSpace = Utils.summaryField("00"); + txtSumArmAV = Utils.summaryField("X/X-X-X"); + txtSumTurTons = Utils.summaryField("000.00"); + txtSumTurAV = Utils.summaryField("X/X-X-X"); + txtSumRTuTons = Utils.summaryField("000.00"); + txtSumRTuAV = Utils.summaryField("X/X-X-X"); + txtSumSpnTons = Utils.summaryField("000.00"); + txtSumSpnAV = Utils.summaryField("X/X-X-X"); + txtSumPATons = Utils.summaryField("000.00"); + txtSumPAAV = Utils.summaryField("X/X-X-X"); JPanel pnlInformation = new JPanel(); JLabel titleSuspension = new JLabel("Suspension Factor:"); lblSupensionFacter = new javax.swing.JLabel("000"); @@ -1063,38 +1030,24 @@ private void initComponents() { JPanel pnlArmorLocations = new JPanel(); JPanel pnlRightArmor = new JPanel(); lblRightIntPts = new javax.swing.JLabel("00"); - JLabel jLabel40 = new JLabel("Internal"); - JLabel jLabel46 = new JLabel("Armor"); spnRightArmor = new javax.swing.JSpinner(); JPanel pnlFrontArmor = new JPanel(); lblFrontIntPts = new javax.swing.JLabel("00"); - JLabel jLabel45 = new JLabel("Internal"); - JLabel jLabel47 = new JLabel("Armor"); spnFrontArmor = new javax.swing.JSpinner(); JPanel pnlLeftArmor = new JPanel(); lblLeftIntPts = new javax.swing.JLabel("00"); - JLabel jLabel41 = new JLabel("Internal"); - JLabel jLabel48 = new JLabel("Armor"); spnLeftArmor = new javax.swing.JSpinner(); JPanel pnlRearArmor = new JPanel(); lblRearIntPts = new javax.swing.JLabel("00"); - JLabel jLabel44 = new JLabel("Internal"); - JLabel jLabel49 = new JLabel("Armor"); spnRearArmor = new javax.swing.JSpinner(); pnlTurretArmor = new javax.swing.JPanel(); lblTurretIntPts = new javax.swing.JLabel("00"); - JLabel jLabel42 = new JLabel("Internal"); - JLabel jLabel50 = new JLabel("Armor"); spnTurretArmor = new javax.swing.JSpinner(); pnlRearTurretArmor = new javax.swing.JPanel(); lblRearTurretIntPts = new javax.swing.JLabel("00"); - JLabel jLabel43 = new JLabel("Internal"); - JLabel jLabel51 = new JLabel("Armor"); spnRearTurretArmor = new javax.swing.JSpinner(); pnlRotorArmor = new javax.swing.JPanel(); lblRotorIntPts = new javax.swing.JLabel("00"); - JLabel jLabel92 = new JLabel("Internal"); - JLabel jLabel93 = new JLabel("Armor"); spnRotorArmor = new javax.swing.JSpinner(); JPanel jPanel7 = new JPanel(); JLabel jLabel52 = new JLabel("Armor Type:"); @@ -1145,7 +1098,6 @@ private void initComponents() { JPanel pnlControls = new JPanel(); JButton btnRemoveEquip = new JButton("<<"); JButton btnClearEquip = new JButton("Clear"); - // Variables declaration - do not modify//GEN-BEGIN:variables JButton btnAddEquip = new JButton(">>"); cmbNumEquips = new javax.swing.JComboBox(new String[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15" }); JScrollPane scrLocations = new JScrollPane(); @@ -1225,43 +1177,13 @@ private void initComponents() { JButton btnClearImage = new JButton("Clear Image"); JMenuBar jMenuBar1 = new JMenuBar(); JMenu mnuFile = new JMenu("File"); - JMenuItem mnuNewMech = new JMenuItem("New"); - JMenuItem mnuLoad = new JMenuItem("Load"); - JMenuItem mnuOpen = new JMenuItem("Open"); JMenu mnuImport = new JMenu("Import..."); - JMenuItem mnuImportHMP = new JMenuItem("from Heavy Metal Pro (HMP)"); - JMenuItem mnuBatchHMP = new JMenuItem("Batch Import HMP Files"); - JSeparator jSeparator22 = new JSeparator(); - JMenuItem mnuSave = new JMenuItem("Save"); JMenuItem mnuSaveAs = new JMenuItem("Save As..."); JMenu mnuExport = new JMenu("Export As..."); - JMenuItem mnuExportHTML = new JMenuItem("to HTML (Web)"); - JMenuItem mnuExportMTF = new JMenuItem("to MTF (MegaMek)"); - JMenuItem mnuExportTXT = new JMenuItem("to TXT (Text)"); - JMenuItem mnuExportClipboard = new JMenuItem("to Clipboard (Text)"); - JMenuItem mnuCreateTCGMech = new JMenuItem("to TCG Format (Card)"); - JSeparator jSeparator23 = new JSeparator(); - JMenu mnuPrint = new JMenu("Print"); - JMenuItem mnuPrintPreview = new JMenuItem("Print Preview"); - JSeparator jSeparator24 = new JSeparator(); - JMenuItem mnuExit = new JMenuItem("Exit"); JMenu mnuClearFluff = new JMenu("Tools"); - JMenuItem mnuSummary = new JMenuItem("Show Summary"); - JMenuItem mnuCostBVBreakdown = new JMenuItem("Cost/BV Breakdown"); - JMenuItem mnuTextTRO = new JMenuItem("Show Text TRO Format"); - JSeparator jSeparator26 = new JSeparator(); - JMenuItem mnuBFB = new JMenuItem("Load Force Balancer"); - JSeparator jSeparator27 = new JSeparator(); - JMenuItem mnuOptions = new JMenuItem("Preferences"); mnuViewToolbar = new javax.swing.JCheckBoxMenuItem("View Toolbar"); - JMenuItem mnuClearUserData = new JMenuItem("Clear User Data"); - JSeparator jSeparator30 = new JSeparator(); mnuUnlock = new javax.swing.JMenuItem("Unlock Chassis"); - JMenuItem jMenuItem1 = new JMenuItem("Clear All Fluff"); - JMenuItem mnuReloadEquipment = new JMenuItem("Reload Equipment"); JMenu mnuHelp = new JMenu("Help"); - JMenuItem mnuCredits = new JMenuItem("Credits"); - JMenuItem mnuAboutSSW = new JMenuItem("About SAW"); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setMaximumSize(new Dimension(1600, 900)); @@ -1273,6 +1195,7 @@ public void windowClosed(java.awt.event.WindowEvent evt) { } }); + //region Status Bar txtInfoTonnage.setEditable(false); txtInfoTonnage.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtInfoTonnage.setText("Tonnage: 000.00"); @@ -1320,107 +1243,28 @@ public void windowClosed(java.awt.event.WindowEvent evt) { txtInfoCost.setMinimumSize(new Dimension(165, 20)); txtInfoCost.setPreferredSize(new Dimension(165, 20)); pnlInfoPane.add(txtInfoCost); + //endregion + //region Icon Bar tlbIconBar.setFloatable(false); tlbIconBar.setRollover(true); - - btnNewVee.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/document--plus.png"))); // NOI18N - btnNewVee.setFocusable(false); - btnNewVee.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnNewVee.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnNewVee.addActionListener(this::btnNewVeeActionPerformed); - tlbIconBar.add(btnNewVee); - - btnOpen.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/folder-open-document.png"))); // NOI18N - btnOpen.setFocusable(false); - btnOpen.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnOpen.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnOpen.addActionListener(this::btnOpenActionPerformed); - tlbIconBar.add(btnOpen); - - btnSave.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/disk-black.png"))); // NOI18N - btnSave.setFocusable(false); - btnSave.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnSave.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnSave.addActionListener(this::btnSaveActionPerformed); - tlbIconBar.add(btnSave); - tlbIconBar.add(jSeparator1); - - btnPrint.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/printer.png"))); // NOI18N - btnPrint.setFocusable(false); - btnPrint.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnPrint.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnPrint.addActionListener(this::btnPrintActionPerformed); - tlbIconBar.add(btnPrint); - tlbIconBar.add(jSeparator2); - - btnExportClipboardIcon.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/document-clipboard.png"))); // NOI18N - btnExportClipboardIcon.setToolTipText("Export Text to Clipboard"); - btnExportClipboardIcon.setFocusable(false); - btnExportClipboardIcon.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnExportClipboardIcon.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnExportClipboardIcon.addActionListener(this::btnExportClipboardIconActionPerformed); - tlbIconBar.add(btnExportClipboardIcon); - - btnExportHTMLIcon.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/document-image.png"))); // NOI18N - btnExportHTMLIcon.setToolTipText("Export HTML"); - btnExportHTMLIcon.setFocusable(false); - btnExportHTMLIcon.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnExportHTMLIcon.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnExportHTMLIcon.addActionListener(this::btnExportHTMLIconActionPerformed); - tlbIconBar.add(btnExportHTMLIcon); - - btnExportTextIcon.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/document-text.png"))); // NOI18N - btnExportTextIcon.setToolTipText("Export Text"); - btnExportTextIcon.setFocusable(false); - btnExportTextIcon.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnExportTextIcon.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnExportTextIcon.addActionListener(this::btnExportTextIconActionPerformed); - tlbIconBar.add(btnExportTextIcon); - - btnExportMTFIcon.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/document--arrow.png"))); // NOI18N - btnExportMTFIcon.setToolTipText("Export MTF"); - btnExportMTFIcon.setFocusable(false); - btnExportMTFIcon.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnExportMTFIcon.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnExportMTFIcon.addActionListener(this::btnExportMTFIconActionPerformed); - tlbIconBar.add(btnExportMTFIcon); - - btnChatInfo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/balloon.png"))); // NOI18N - btnChatInfo.setToolTipText("Copy Chat Line"); - btnChatInfo.setFocusable(false); - btnChatInfo.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnChatInfo.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnChatInfo.addActionListener(this::btnChatInfoActionPerformed); - tlbIconBar.add(btnChatInfo); - tlbIconBar.add(jSeparator3); - tlbIconBar.add(jSeparator25); - - btnAddToForceList.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/clipboard--plus.png"))); // NOI18N - btnAddToForceList.setToolTipText("Add to Force List"); - btnAddToForceList.setFocusable(false); - btnAddToForceList.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnAddToForceList.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnAddToForceList.addActionListener(this::btnAddToForceListActionPerformed); - tlbIconBar.add(btnAddToForceList); - - btnForceList.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/clipboard.png"))); // NOI18N - btnForceList.setToolTipText("Force List"); - btnForceList.setFocusable(false); - btnForceList.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnForceList.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnForceList.addActionListener(this::btnForceListActionPerformed); - tlbIconBar.add(btnForceList); - tlbIconBar.add(jSeparator4); - - btnOptions.setIcon(new javax.swing.ImageIcon(getClass().getResource("/saw/images/gear.png"))); // NOI18N - btnOptions.setFocusable(false); - btnOptions.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - btnOptions.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - btnOptions.addActionListener(this::btnOptionsActionPerformed); - tlbIconBar.add(btnOptions); - tlbIconBar.add(jSeparator21); - + tlbIconBar.add(Utils.imageButton("New Unit", this::btnNewVeeActionPerformed, new javax.swing.ImageIcon(getClass().getResource("/saw/images/document--plus.png")))); + tlbIconBar.add(Utils.imageButton("Open Unit", this::btnOpenActionPerformed, new javax.swing.ImageIcon(getClass().getResource("/saw/images/folder-open-document.png")))); + tlbIconBar.add(Utils.imageButton("Save Unit", this::btnSaveActionPerformed, new javax.swing.ImageIcon(getClass().getResource("/saw/images/disk-black.png")))); + tlbIconBar.add(Utils.vertSeparator()); + tlbIconBar.add(Utils.imageButton("Print", this::btnPrintActionPerformed, new javax.swing.ImageIcon(getClass().getResource("/saw/images/printer.png")))); + tlbIconBar.add(Utils.vertSeparator()); + tlbIconBar.add(Utils.imageButton("Export Text to Clipboard", this::btnExportClipboardIconActionPerformed, new javax.swing.ImageIcon(getClass().getResource("/saw/images/document-clipboard.png")))); + tlbIconBar.add(Utils.imageButton("Export HTML", this::btnExportHTMLIconActionPerformed, new javax.swing.ImageIcon(getClass().getResource("/saw/images/document-image.png")))); + tlbIconBar.add(Utils.imageButton("Export Text", this::btnExportTextIconActionPerformed, new javax.swing.ImageIcon(getClass().getResource("/saw/images/document-text.png")))); + tlbIconBar.add(Utils.imageButton("Export MTF", this::btnExportMTFIconActionPerformed, new javax.swing.ImageIcon(getClass().getResource("/saw/images/document--arrow.png")))); + tlbIconBar.add(Utils.imageButton("Copy Chat Line", this::btnChatInfoActionPerformed, new javax.swing.ImageIcon(getClass().getResource("/saw/images/balloon.png")))); + tlbIconBar.add(Utils.vertSeparator()); + tlbIconBar.add(Utils.imageButton("Add to Force List", this::btnAddToForceListActionPerformed, new javax.swing.ImageIcon(getClass().getResource("/saw/images/clipboard--plus.png")))); + tlbIconBar.add(Utils.imageButton("Force List", this::btnForceListActionPerformed, new javax.swing.ImageIcon(getClass().getResource("/saw/images/clipboard.png")))); + tlbIconBar.add(Utils.vertSeparator()); + tlbIconBar.add(Utils.imageButton("Preferences", this::btnOptionsActionPerformed, new javax.swing.ImageIcon(getClass().getResource("/saw/images/gear.png")))); + tlbIconBar.add(Utils.vertSeparator()); lblSelectVariant.setEnabled(false); tlbIconBar.add(lblSelectVariant); @@ -1430,7 +1274,9 @@ public void windowClosed(java.awt.event.WindowEvent evt) { cmbOmniVariant.setPreferredSize(new Dimension(150, 20)); cmbOmniVariant.addActionListener(this::cmbOmniVariantActionPerformed); tlbIconBar.add(cmbOmniVariant); + //endregion + //region Basic Setup Tab / Basic Information Panel jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Basic Information")); txtVehicleName.setMinimumSize(new Dimension(150, 20)); @@ -1591,7 +1437,9 @@ public void mousePressed( MouseEvent e ) { } }; txtProdYear.addMouseListener( mlProdYear ); + //endregion + //region Basic Setup Tab / Chassis Panel pnlChassis.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Chassis")); cmbMotiveType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Hovercraft", "Naval (Displacement)", "Naval (Hydrofoil)", "Naval (Submarine)", "Tracked", "VTOL", "Wheeled", "WiGE", "Hovercraft (Super Heavy)", "Displacement (Super Heavy)" })); @@ -1752,7 +1600,9 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addComponent(spnHeatSinks, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); + //endregion + //region Basic Setup Tab / Movement Panel pnlMovement.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Movement")); spnCruiseMP.setModel(new javax.swing.SpinnerNumberModel(1, 1, null, 1)); @@ -1815,7 +1665,9 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addComponent(spnJumpMP, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); + //endregion + //region Basic Setup Tab / Chassis Modifications Panel pnlChassisMods.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Chassis Modifications")); pnlChassisMods.setLayout(new java.awt.GridBagLayout()); @@ -1835,7 +1687,9 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { pnlChassisMods.add(chkFullAmph, Utils.gridBag(0, 2)); pnlChassisMods.add(chkDuneBuggy, Utils.gridBag(0, 3)); pnlChassisMods.add(chkEnviroSealing, Utils.gridBag(0, 4)); + //endregion + //region Basic Setup Tab / Experimental Equipment Panel pnlExperimental.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Experimental Equipment")); chkArmoredMotive.setEnabled(false); @@ -1882,155 +1736,64 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addComponent(chkSponsonTurret) .addContainerGap()) ); + //endregion + //region Basic Setup Tab / Construction Options Panel jPanel11.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Construction Options")); jPanel11.setLayout(new java.awt.GridBagLayout()); chkFractional.setEnabled(false); chkFractional.addActionListener(this::chkFractionalActionPerformed); jPanel11.add(chkFractional, Utils.gridBag(0, 0)); + //endregion + //region Basic Setup Tab / Summary Panel pnlSummary.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Summary")); pnlSummary.setLayout(new java.awt.GridBagLayout()); - pnlSummary.add(lblSummaryItem, new GridBagConstraints()); - pnlSummary.add(lblSummaryTonnage, new GridBagConstraints()); - pnlSummary.add(jLabel15, new GridBagConstraints()); - pnlSummary.add(jLabel16, new GridBagConstraints()); - - jLabel17.setHorizontalAlignment(SwingConstants.RIGHT); - pnlSummary.add(jLabel17, Utils.gridBag(0, 1)); - - txtSumIntTons.setEditable(false); - txtSumIntTons.setHorizontalAlignment(SwingConstants.CENTER); + pnlSummary.add(Utils.alignedLabel("Item", SwingConstants.CENTER), Utils.gridBag(0, 0)); + pnlSummary.add(Utils.alignedLabel("Tonnage", SwingConstants.CENTER), Utils.gridBag(1, 0)); + pnlSummary.add(Utils.alignedLabel("Space", SwingConstants.CENTER), Utils.gridBag(2, 0)); + pnlSummary.add(Utils.alignedLabel("Availability", SwingConstants.CENTER), Utils.gridBag(3, 0)); + pnlSummary.add(Utils.alignedLabel("Internal Structure:", SwingConstants.RIGHT), Utils.gridBag(0, 1)); pnlSummary.add(txtSumIntTons, Utils.gridBag(1, 1)); - - txtSumIntAV.setEditable(false); - txtSumIntAV.setHorizontalAlignment(SwingConstants.CENTER); pnlSummary.add(txtSumIntAV, Utils.gridBag(3, 1)); - - jLabel18.setHorizontalAlignment(SwingConstants.RIGHT); - pnlSummary.add(jLabel18, Utils.gridBag(0, 2)); - - txtSumEngTons.setEditable(false); - txtSumEngTons.setHorizontalAlignment(SwingConstants.CENTER); + pnlSummary.add(Utils.alignedLabel("Engine:", SwingConstants.RIGHT), Utils.gridBag(0, 2)); pnlSummary.add(txtSumEngTons, Utils.gridBag(1, 2)); - - txtSumEngAV.setEditable(false); - txtSumEngAV.setHorizontalAlignment(SwingConstants.CENTER); pnlSummary.add(txtSumEngAV, Utils.gridBag(3, 2)); - - jLabel19.setHorizontalAlignment(SwingConstants.RIGHT); - pnlSummary.add(jLabel19, Utils.gridBag(0, 3)); - - txtSumLifTons.setEditable(false); - txtSumLifTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); + pnlSummary.add(Utils.alignedLabel("Lift/Dive/Rotor:", SwingConstants.RIGHT), Utils.gridBag(0, 3)); pnlSummary.add(txtSumLifTons, Utils.gridBag(1, 3)); - - txtSumLifAV.setEditable(false); - txtSumLifAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); pnlSummary.add(txtSumLifAV, Utils.gridBag(3, 3)); - - txtSumEngSpace.setEditable(false); - txtSumEngSpace.setHorizontalAlignment(javax.swing.JTextField.CENTER); pnlSummary.add(txtSumEngSpace, Utils.gridBag(2, 2, new Insets(0, 2, 0, 2))); - - jLabel20.setHorizontalAlignment(SwingConstants.RIGHT); - pnlSummary.add(jLabel20, Utils.gridBag(0, 4)); - - txtSumConTons.setEditable(false); - txtSumConTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); + pnlSummary.add(Utils.alignedLabel("Controls:", SwingConstants.RIGHT), Utils.gridBag(0, 4)); pnlSummary.add(txtSumConTons, Utils.gridBag(1, 4)); - - txtSumConAV.setEditable(false); - txtSumConAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); pnlSummary.add(txtSumConAV, Utils.gridBag(3, 4)); - - jLabel21.setHorizontalAlignment(SwingConstants.RIGHT); - pnlSummary.add(jLabel21, Utils.gridBag(0, 5)); - - txtSumJJTons.setEditable(false); - txtSumJJTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); + pnlSummary.add(Utils.alignedLabel("Jump Jets:", SwingConstants.RIGHT), Utils.gridBag(0, 5)); pnlSummary.add(txtSumJJTons, Utils.gridBag(1, 5)); - - txtSumJJSpace.setEditable(false); - txtSumJJSpace.setHorizontalAlignment(javax.swing.JTextField.CENTER); pnlSummary.add(txtSumJJSpace, Utils.gridBag(2, 5, new Insets(0, 2, 0, 2))); - - txtSumJJAV.setEditable(false); - txtSumJJAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); pnlSummary.add(txtSumJJAV, Utils.gridBag(3, 5)); - - jLabel22.setHorizontalAlignment(SwingConstants.RIGHT); - pnlSummary.add(jLabel22, Utils.gridBag(0, 6)); - - txtSumHSTons.setEditable(false); - txtSumHSTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); + pnlSummary.add(Utils.alignedLabel("Heat Sinks:", SwingConstants.RIGHT), Utils.gridBag(0, 6)); pnlSummary.add(txtSumHSTons, Utils.gridBag(1, 6)); - - txtSumHSAV.setEditable(false); - txtSumHSAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); pnlSummary.add(txtSumHSAV, Utils.gridBag(3, 6)); - - jLabel23.setHorizontalAlignment(SwingConstants.RIGHT); - pnlSummary.add(jLabel23, Utils.gridBag(0, 7)); - - txtSumArmTons.setEditable(false); - txtSumArmTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); + pnlSummary.add(Utils.alignedLabel("Armor:", SwingConstants.RIGHT), Utils.gridBag(0, 7)); pnlSummary.add(txtSumArmTons, Utils.gridBag(1, 7)); - - txtSumArmSpace.setEditable(false); - txtSumArmSpace.setHorizontalAlignment(javax.swing.JTextField.CENTER); pnlSummary.add(txtSumArmSpace, Utils.gridBag(2, 7, new Insets(0, 2, 0, 2))); - - txtSumArmAV.setEditable(false); - txtSumArmAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); pnlSummary.add(txtSumArmAV, Utils.gridBag(3, 7)); - - jLabel24.setHorizontalAlignment(SwingConstants.RIGHT); - pnlSummary.add(jLabel24, Utils.gridBag(0, 8)); - - txtSumTurTons.setEditable(false); - txtSumTurTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); + pnlSummary.add(Utils.alignedLabel("Turret:", SwingConstants.RIGHT), Utils.gridBag(0, 8)); pnlSummary.add(txtSumTurTons, Utils.gridBag(1, 8)); - - txtSumTurAV.setEditable(false); - txtSumTurAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); pnlSummary.add(txtSumTurAV, Utils.gridBag(3, 8)); - - jLabel25.setHorizontalAlignment(SwingConstants.RIGHT); - pnlSummary.add(jLabel25, Utils.gridBag(0, 9)); - - txtSumRTuTons.setEditable(false); - txtSumRTuTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); + pnlSummary.add(Utils.alignedLabel("Rear Turret:", SwingConstants.RIGHT), Utils.gridBag(0, 9)); pnlSummary.add(txtSumRTuTons, Utils.gridBag(1, 9)); - - txtSumRTuAV.setEditable(false); - txtSumRTuAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); pnlSummary.add(txtSumRTuAV, Utils.gridBag(3, 9)); - - jLabel26.setHorizontalAlignment(SwingConstants.RIGHT); - pnlSummary.add(jLabel26, Utils.gridBag(0, 10)); - - txtSumSpnTons.setEditable(false); - txtSumSpnTons.setHorizontalAlignment(javax.swing.JTextField.CENTER); + pnlSummary.add(Utils.alignedLabel("Sponsons:", SwingConstants.RIGHT), Utils.gridBag(0, 10)); pnlSummary.add(txtSumSpnTons, Utils.gridBag(1, 10)); - - txtSumSpnAV.setEditable(false); - txtSumSpnAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); pnlSummary.add(txtSumSpnAV, Utils.gridBag(3, 10)); - - jLabel27.setHorizontalAlignment(SwingConstants.RIGHT); - pnlSummary.add(jLabel27, Utils.gridBag(0, 11)); - - txtSumPATons.setEditable(false); - txtSumPATons.setHorizontalAlignment(javax.swing.JTextField.CENTER); + pnlSummary.add(Utils.alignedLabel("Power Amplifiers:", SwingConstants.RIGHT), Utils.gridBag(0, 11)); pnlSummary.add(txtSumPATons, Utils.gridBag(1, 11)); - - txtSumPAAV.setEditable(false); - txtSumPAAV.setHorizontalAlignment(javax.swing.JTextField.CENTER); pnlSummary.add(txtSumPAAV, Utils.gridBag(3, 11)); + //endregion + //region Basic Setup Tab / Information Panel pnlInformation.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Information")); GroupLayout pnlInformationLayout = new GroupLayout(pnlInformation); @@ -2098,14 +1861,18 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addComponent(titleFreeHeatSinks) .addComponent(lblFreeHeatSinks))) ); + //endregion + //region Basic Setup Tab / Omni Configuration Panel pnlOmniInfo.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Omni Configuration")); pnlOmniInfo.setLayout(new java.awt.GridBagLayout()); pnlOmniInfo.add(OmniButton(btnLockChassis, this::btnLockChassisActionPerformed), Utils.gridBag(0, 0)); pnlOmniInfo.add(OmniButton(btnAddVariant, this::btnAddVariantActionPerformed), Utils.gridBag(0, 1)); pnlOmniInfo.add(OmniButton(btnDeleteVariant, this::btnDeleteVariantActionPerformed), Utils.gridBag(1, 0)); pnlOmniInfo.add(OmniButton(btnRenameVariant, this::btnRenameVariantActionPerformed), Utils.gridBag(1, 1)); + //endregion + //region Basic Setup Tab / Armor Locations Panel pnlArmorLocations.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Armor Locations")); pnlRightArmor = ArmorLocation("Right", lblRightIntPts, spnRightArmor, this::spnRightArmorStateChanged); pnlFrontArmor = ArmorLocation("Front", lblFrontIntPts, spnFrontArmor, this::spnFrontArmorStateChanged); @@ -2158,7 +1925,9 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addComponent(pnlRearArmor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addContainerGap()) ); + //endregion + //region Basic Setup Tab / Armor Type Panel jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Armor Type")); cmbArmorType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Standard", "Industrial", "Commercial", "Ferro-Fibrous", "Light Ferro-Fibrous", "Heavy Ferro-Fibrous", "Vehicular Stealth" })); @@ -2216,7 +1985,9 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addGap(0, 0, 0) .addComponent(btnMaximize)) ); + //endregion + //region Basic Setup Tab / Armor Information Panel jPanel8.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Armor Information")); jPanel8.setLayout(new java.awt.GridBagLayout()); jLabel34.setHorizontalAlignment(SwingConstants.CENTER); @@ -2242,7 +2013,9 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { jPanel8.add(lblArmorTonsWasted, Utils.gridBag(0, 2, 3, GridBagConstraints.EAST, new Insets(4, 0, 0, 0))); lblArmorLeftInLot.setHorizontalAlignment(SwingConstants.RIGHT); jPanel8.add(lblArmorLeftInLot, Utils.gridBag(0, 3, 3, GridBagConstraints.EAST, new Insets(4, 0, 0, 0))); + //endregion + //region Basic Setup Tab / Layout GroupLayout pnlBasicSetupLayout = new GroupLayout(pnlBasicSetup); pnlBasicSetup.setLayout(pnlBasicSetupLayout); pnlBasicSetupLayout.setHorizontalGroup( @@ -2302,6 +2075,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { ); tbpMainTabPane.addTab("Basic Setup and Armor", pnlBasicSetup); + //endregion //region Equipment Tab / Highlighted Equipment Information pnlEquipInfo.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Information")); @@ -2331,12 +2105,12 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { pnlEquipInfo.add(lblInfoHeat, Utils.gridBag(2, 1, new Insets(0, 3, 0, 3))); pnlEquipInfo.add(lblInfoDamage, Utils.gridBag(3, 1, new Insets(0, 3, 0, 3))); pnlEquipInfo.add(lblInfoRange, Utils.gridBag(4, 1, new Insets(0, 3, 0, 3))); - pnlEquipInfo.add(Utils.etchedSeperator(), Utils.gridBag(0, 2, GridBagConstraints.REMAINDER, GridBagConstraints.WEST, new Insets(4, 0, 4, 0))); + pnlEquipInfo.add(Utils.etchedSeparator(), Utils.gridBag(0, 2, GridBagConstraints.REMAINDER, GridBagConstraints.WEST, new Insets(4, 0, 4, 0))); pnlEquipInfo.add(lblInfoAmmo, Utils.gridBag(5, 1, new Insets(0, 3, 0, 3))); pnlEquipInfo.add(lblInfoTonnage, Utils.gridBag(6, 1, new Insets(0, 3, 0, 3))); pnlEquipInfo.add(lblInfoCrits, Utils.gridBag(7, 1, new Insets(0, 3, 0, 3))); pnlEquipInfo.add(lblInfoSpecials, Utils.gridBag(8, 1, new Insets(0, 3, 0, 0))); - pnlEquipInfo.add(Utils.etchedSeperator(), Utils.gridBag(0, 7, GridBagConstraints.REMAINDER, GridBagConstraints.WEST, new Insets(4, 0, 4, 0))); + pnlEquipInfo.add(Utils.etchedSeparator(), Utils.gridBag(0, 7, GridBagConstraints.REMAINDER, GridBagConstraints.WEST, new Insets(4, 0, 4, 0))); pnlEquipInfo.add(new JLabel("Cost"), Utils.gridBag(5, 4, 2, GridBagConstraints.EAST, new Insets(0, 3, 0, 3))); pnlEquipInfo.add(lblInfoCost, Utils.gridBag(7, 4, 2, GridBagConstraints.WEST, new Insets(0, 3, 0, 0))); pnlEquipInfo.add(new JLabel("BV"), Utils.gridBag(5, 5, 2, GridBagConstraints.WEST, new Insets(0, 3, 0, 3))); @@ -2773,114 +2547,71 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { //endregion //region Menus - mnuFile.addActionListener(this::mnuFileActionPerformed); - - mnuNewMech.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.ALT_MASK)); - mnuNewMech.addActionListener(this::mnuNewMechActionPerformed); - mnuFile.add(mnuNewMech); - mnuLoad.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.ALT_MASK)); - mnuLoad.addActionListener(this::mnuLoadActionPerformed); - mnuFile.add(mnuLoad); - - mnuOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_MASK)); - mnuOpen.addActionListener(this::mnuOpenActionPerformed); - mnuFile.add(mnuOpen); - - mnuImportHMP.addActionListener(this::mnuImportHMPActionPerformed); - mnuImport.add(mnuImportHMP); - - mnuBatchHMP.addActionListener(this::mnuBatchHMPActionPerformed); - mnuImport.add(mnuBatchHMP); + //region File + mnuFile.addActionListener(this::mnuFileActionPerformed); + mnuFile.add(Utils.menuItem("New", this::mnuNewMechActionPerformed, KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.ALT_MASK))); + mnuFile.add(Utils.menuItem("Load", this::mnuLoadActionPerformed, KeyStroke.getKeyStroke(KeyEvent.VK_L, InputEvent.ALT_MASK))); + mnuFile.add(Utils.menuItem("Open", this::mnuOpenActionPerformed, KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.ALT_MASK))); + mnuImport.add(Utils.menuItem("from Heavy Metal Pro (HMP)", this::mnuImportHMPActionPerformed)); + mnuImport.add(Utils.menuItem("Batch Import HMP Files", this::mnuBatchHMPActionPerformed)); mnuFile.add(mnuImport); - mnuFile.add(jSeparator22); - - mnuSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_MASK)); - mnuSave.addActionListener(this::mnuSaveActionPerformed); - mnuFile.add(mnuSave); + mnuFile.add(Utils.etchedSeparator()); + mnuFile.add(Utils.menuItem("Save", this::mnuSaveActionPerformed, KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.ALT_MASK))); - mnuSaveAs.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK)); + mnuSaveAs.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.ALT_MASK | InputEvent.CTRL_MASK)); mnuSaveAs.addActionListener(this::mnuSaveAsActionPerformed); mnuFile.add(mnuSaveAs); - mnuExportHTML.addActionListener(this::mnuExportHTMLActionPerformed); - mnuExport.add(mnuExportHTML); - - mnuExportMTF.addActionListener(this::mnuExportMTFActionPerformed); - mnuExport.add(mnuExportMTF); - - mnuExportTXT.addActionListener(this::mnuExportTXTActionPerformed); - mnuExport.add(mnuExportTXT); - - mnuExportClipboard.addActionListener(this::mnuExportClipboardActionPerformed); - mnuExport.add(mnuExportClipboard); - - mnuCreateTCGMech.addActionListener(this::mnuCreateTCGMechActionPerformed); - mnuExport.add(mnuCreateTCGMech); - + mnuExport.add(Utils.menuItem("to HTML (Web)", this::mnuExportHTMLActionPerformed)); + mnuExport.add(Utils.menuItem("to MTF (MegaMek)", this::mnuExportMTFActionPerformed)); + mnuExport.add(Utils.menuItem("to TXT (Text)", this::mnuExportTXTActionPerformed)); + mnuExport.add(Utils.menuItem("to Clipboard (Text)", this::mnuExportClipboardActionPerformed)); + mnuExport.add(Utils.menuItem("to TCG Format (Card)", this::mnuCreateTCGMechActionPerformed)); mnuFile.add(mnuExport); - mnuFile.add(jSeparator23); - mnuFile.add(mnuPrint); - - mnuPrintPreview.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK)); - mnuPrintPreview.addActionListener(this::mnuPrintPreviewActionPerformed); - mnuFile.add(mnuPrintPreview); - mnuFile.add(jSeparator24); - - mnuExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.ALT_MASK)); - mnuExit.addActionListener(this::mnuExitActionPerformed); - mnuFile.add(mnuExit); - + mnuFile.add(Utils.etchedSeparator()); + mnuFile.add(Utils.menuItem("Print Preview", this::mnuPrintPreviewActionPerformed, KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK))); + mnuFile.add(Utils.etchedSeparator()); + mnuFile.add(Utils.menuItem("Exit", this::mnuExitActionPerformed, KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.ALT_MASK))); jMenuBar1.add(mnuFile); + //endregion - mnuSummary.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.ALT_MASK)); - mnuSummary.addActionListener(this::mnuSummaryActionPerformed); - mnuClearFluff.add(mnuSummary); - - mnuCostBVBreakdown.addActionListener(this::mnuCostBVBreakdownActionPerformed); - mnuClearFluff.add(mnuCostBVBreakdown); - - mnuTextTRO.addActionListener(this::mnuTextTROActionPerformed); - mnuClearFluff.add(mnuTextTRO); - mnuClearFluff.add(jSeparator26); - - mnuBFB.addActionListener(this::mnuBFBActionPerformed); - mnuClearFluff.add(mnuBFB); - mnuClearFluff.add(jSeparator27); - - mnuOptions.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_MASK)); - mnuOptions.addActionListener(this::mnuOptionsActionPerformed); - mnuClearFluff.add(mnuOptions); + //region Tools + mnuClearFluff.add(Utils.menuItem("Show Summary", this::mnuSummaryActionPerformed)); + mnuClearFluff.add(Utils.menuItem("Cost/BV Breakdown", this::mnuCostBVBreakdownActionPerformed)); + mnuClearFluff.add(Utils.menuItem("Show Text TRO Format", this::mnuTextTROActionPerformed)); + mnuClearFluff.add(Utils.etchedSeparator()); + mnuClearFluff.add(Utils.menuItem("Load Force Balancer", this::mnuBFBActionPerformed)); + mnuClearFluff.add(Utils.etchedSeparator()); + mnuClearFluff.add(Utils.menuItem("Preferences", this::mnuOptionsActionPerformed, KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_MASK))); mnuViewToolbar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.ALT_MASK)); mnuViewToolbar.setSelected(true); mnuViewToolbar.addActionListener(this::mnuViewToolbarActionPerformed); mnuClearFluff.add(mnuViewToolbar); - mnuClearUserData.addActionListener(this::mnuClearUserDataActionPerformed); - mnuClearFluff.add(mnuClearUserData); - mnuClearFluff.add(jSeparator30); + mnuClearFluff.add(Utils.menuItem("Clear User Data", this::mnuClearUserDataActionPerformed)); + mnuClearFluff.add(Utils.etchedSeparator()); mnuUnlock.setEnabled(false); mnuUnlock.addActionListener(this::mnuUnlockActionPerformed); mnuClearFluff.add(mnuUnlock); - - jMenuItem1.addActionListener(this::jMenuItem1ActionPerformed); - mnuClearFluff.add(jMenuItem1); - - mnuReloadEquipment.addActionListener(this::mnuReloadEquipmentActionPerformed); - mnuClearFluff.add(mnuReloadEquipment); + mnuClearFluff.add(Utils.menuItem("Clear All Fluff", this::jMenuItem1ActionPerformed)); + mnuClearFluff.add(Utils.menuItem("Reload Equipment", this::mnuReloadEquipmentActionPerformed)); jMenuBar1.add(mnuClearFluff); + //endregion - mnuCredits.addActionListener(this::mnuCreditsActionPerformed); - mnuHelp.add(mnuCredits); - mnuAboutSSW.addActionListener(this::mnuAboutSSWActionPerformed); - mnuHelp.add(mnuAboutSSW); - + //region About + mnuHelp.add(Utils.menuItem("Credits", this::mnuCreditsActionPerformed)); + mnuHelp.add(Utils.menuItem("About SAW", this::mnuAboutSSWActionPerformed)); jMenuBar1.add(mnuHelp); + //endregion + setJMenuBar(jMenuBar1); + //endregion + //region Form Layout GroupLayout layout = new GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( diff --git a/sswlib/src/main/java/common/Utils.java b/sswlib/src/main/java/common/Utils.java index d4ee56e0..1cc1b86b 100644 --- a/sswlib/src/main/java/common/Utils.java +++ b/sswlib/src/main/java/common/Utils.java @@ -1,6 +1,7 @@ package common; import java.awt.*; +import java.awt.event.ActionListener; import java.io.File; import javax.swing.*; @@ -54,9 +55,52 @@ public static GridBagConstraints gridBag(int x, int y, int width, int anchor, In return new GridBagConstraints(x, y, width, 1, 1.0, 1.0, anchor, 1, inset, 0, 0); } - public static JSeparator etchedSeperator() { + /* Returns a separator with etched border */ + public static JSeparator etchedSeparator() { JSeparator sep = new JSeparator(); sep.setBorder(BorderFactory.createEtchedBorder()); return sep; } + + public static JSeparator vertSeparator() { + JSeparator bar = new JSeparator(); + bar.setOrientation(SwingConstants.VERTICAL); + return bar; + } + + public static JButton imageButton(String toolTip, ActionListener listener, ImageIcon icon) { + JButton button = new JButton(); + button.setIcon(icon); + button.setToolTipText(toolTip); + button.setFocusable(false); + button.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + button.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + button.addActionListener(listener); + return button; + } + + public static JLabel alignedLabel(String label, int alignment) { + JLabel lbl = new JLabel(label); + lbl.setHorizontalAlignment(alignment); + return lbl; + } + + public static JTextField summaryField(String label) { + JTextField txt = new JTextField(label); + txt.setEditable(false); + txt.setHorizontalAlignment(SwingConstants.CENTER); + return txt; + } + + public static JMenuItem menuItem(String label, ActionListener listener) { + JMenuItem item = new JMenuItem(label); + item.addActionListener(listener); + return item; + } + + public static JMenuItem menuItem(String label, ActionListener listener, KeyStroke keys) { + JMenuItem item = menuItem(label, listener); + item.setAccelerator(keys); + return item; + } } From 024dcfbef271f432b53ad3ce159d413a90a8e8c2 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 26 Feb 2023 16:08:26 -0700 Subject: [PATCH 119/199] Load Turret Tonnage Into the UI --- saw/src/main/java/saw/gui/frmVeeWide.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 214a049b..1b1f058a 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -4528,16 +4528,24 @@ public void LoadVehicleIntoGUI() { cmbMotiveType.setSelectedItem( CurVee.GetMotiveLookupName() ); spnTonnage.setModel( new javax.swing.SpinnerNumberModel(CurVee.GetTonnage(), 1, CurVee.GetMaxTonnage(), 1) ); spnCruiseMP.setModel( new javax.swing.SpinnerNumberModel(CurVee.getCruiseMP(), 1, CurVee.getMaxCruiseMP(), 1) ); - if ( CurVee.isHasTurret1() ) cmbTurret.setSelectedItem("Single Turret"); - if ( CurVee.isHasTurret2() ) cmbTurret.setSelectedItem("Dual Turret"); + if ( CurVee.isHasTurret1() ) { + cmbTurret.setSelectedItem("Single Turret"); + spnTurretTonnage.setEnabled(true); + spnTurretTonnage.setValue(CurVee.GetLoadout().GetTurret().GetTonnage()); + } + if ( CurVee.isHasTurret2() ) { + cmbTurret.setSelectedItem("Dual Turret"); + spnRearTurretTonnage.setEnabled(true); + spnRearTurretTonnage.setValue(CurVee.GetLoadout().GetRearTurret().GetTonnage()); + } FixArmorSpinners(); // now that we're done with the special stuff... Load = false; if( CurVee.IsOmni() ) { - if ( CurVee.isHasTurret1() ) - spnTurretTonnage.setModel( new SpinnerNumberModel(CurVee.GetBaseLoadout().GetTurret().GetMaxTonnage(), 0, 99.0, 0.5) ); +// if ( CurVee.isHasTurret1() ) +// spnTurretTonnage.setModel( new SpinnerNumberModel(CurVee.GetBaseLoadout().GetTurret().GetMaxTonnage(), 0, 99.0, 0.5) ); LockGUIForOmni(); RefreshOmniVariants(); RefreshOmniChoices(); From c21332d699680d5506ec85279e814314f1719f0f Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 26 Feb 2023 17:05:21 -0700 Subject: [PATCH 120/199] More RearTurret Tonnage Handling --- saw/src/main/java/saw/gui/frmVeeWide.java | 27 ++++++++++++----------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 1b1f058a..50e15ac9 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -2294,8 +2294,7 @@ public void mouseClicked( MouseEvent e ) { //region Fluff Tab / Fluff Editors tbpFluffEditors.setTabPlacement(JTabbedPane.RIGHT); - tbpFluffEditors.setMaximumSize(new Dimension(1000, 1000)); - tbpFluffEditors.setMinimumSize(new Dimension(420, 455)); + tbpFluffEditors.setPreferredSize(new Dimension(400, 455)); pnlOverview.setLayout(new BoxLayout(pnlOverview, BoxLayout.Y_AXIS)); tbpFluffEditors.addTab("Overview", pnlOverview); @@ -2421,9 +2420,11 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { //region Fluff Tab / Fluff Image pnlImage.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Fluff Image", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", Font.PLAIN, 11))); // NOI18N - pnlImage.setPreferredSize(new Dimension(400, 450)); + pnlImage.setPreferredSize(new Dimension(350, 450)); pnlImageButtons.setLayout(new java.awt.GridBagLayout()); + lblFluffImage.setPreferredSize(new Dimension(300, 350)); + btnLoadImage.addActionListener(this::btnLoadImageActionPerformed); pnlImageButtons.add(btnLoadImage, new GridBagConstraints()); @@ -2451,17 +2452,15 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { GroupLayout pnlFluffLayout = new GroupLayout(pnlFluff); pnlFluff.setLayout(pnlFluffLayout); pnlFluffLayout.setHorizontalGroup( - pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING, true) .addGroup(pnlFluffLayout.createSequentialGroup() .addContainerGap() .addComponent(pnlManufacturers, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) - .addComponent(tbpFluffEditors, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) - .addComponent(pnlImage, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(pnlImage, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) - .addContainerGap()) ); pnlFluffLayout.setVerticalGroup( @@ -2470,7 +2469,7 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { .addContainerGap() .addGroup(pnlFluffLayout.createParallelGroup(GroupLayout.Alignment.LEADING, true) .addComponent(pnlManufacturers, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(tbpFluffEditors, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE) + .addComponent(tbpFluffEditors, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(pnlImage, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap()) ); @@ -3056,8 +3055,9 @@ private void LoadSelections() { private void BuildTurretSelector() { ArrayList list = new ArrayList(); - if ( !CurVee.IsOmni()) + if ( !CurVee.IsOmni()) { cmbTurret.setEnabled(true); + } list.add("No Turret"); if ( CurVee.CanUseTurret() ) { @@ -3735,6 +3735,7 @@ private void GetNewVee() { cmbTechBase.setEnabled( true ); cmbTurret.setSelectedIndex(0); spnTurretTonnage.setModel(new SpinnerNumberModel(0.0, 0.0, 50.0, 0.5)); + spnRearTurretTonnage.setModel(new SpinnerNumberModel(0.0, 0.0, 50.0, 0.5)); txtProdYear.setEnabled( true ); cmbRulesLevel.setSelectedItem( Prefs.get( "NewVee_RulesLevel", "Tournament Legal" ) ); @@ -4026,6 +4027,7 @@ private void UnlockGUIFromOmni() { cmbEngineType.setEnabled( true ); cmbTurret.setEnabled( true ); spnTurretTonnage.setEnabled( true ); + spnRearTurretTonnage.setEnabled(true); spnFrontArmor.setEnabled( true ); spnLeftArmor.setEnabled( true ); spnRightArmor.setEnabled( true ); @@ -4304,6 +4306,7 @@ private void LockGUIForOmni() { cmbEngineType.setEnabled( false ); cmbTurret.setEnabled( false ); spnTurretTonnage.setEnabled( false ); + spnRearTurretTonnage.setEnabled(false); spnFrontArmor.setEnabled( false ); spnLeftArmor.setEnabled( false ); spnRightArmor.setEnabled( false ); @@ -4530,12 +4533,12 @@ public void LoadVehicleIntoGUI() { spnCruiseMP.setModel( new javax.swing.SpinnerNumberModel(CurVee.getCruiseMP(), 1, CurVee.getMaxCruiseMP(), 1) ); if ( CurVee.isHasTurret1() ) { cmbTurret.setSelectedItem("Single Turret"); - spnTurretTonnage.setEnabled(true); + spnTurretTonnage.setEnabled(!isLocked); spnTurretTonnage.setValue(CurVee.GetLoadout().GetTurret().GetTonnage()); } if ( CurVee.isHasTurret2() ) { cmbTurret.setSelectedItem("Dual Turret"); - spnRearTurretTonnage.setEnabled(true); + spnRearTurretTonnage.setEnabled(!isLocked); spnRearTurretTonnage.setValue(CurVee.GetLoadout().GetRearTurret().GetTonnage()); } FixArmorSpinners(); @@ -4544,8 +4547,6 @@ public void LoadVehicleIntoGUI() { Load = false; if( CurVee.IsOmni() ) { -// if ( CurVee.isHasTurret1() ) -// spnTurretTonnage.setModel( new SpinnerNumberModel(CurVee.GetBaseLoadout().GetTurret().GetMaxTonnage(), 0, 99.0, 0.5) ); LockGUIForOmni(); RefreshOmniVariants(); RefreshOmniChoices(); From e490efeb211185e6b7d1e8577485e7a3a523cea4 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 26 Feb 2023 18:33:04 -0700 Subject: [PATCH 121/199] Turret Tonnage for Omni Only --- saw/src/main/java/saw/gui/frmVeeWide.java | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 50e15ac9..1e643e44 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -2798,22 +2798,17 @@ private void RecalcArmorLocations() { spnRearTurretArmor.setValue(0); pnlTurretArmor.setVisible(false); pnlRearTurretArmor.setVisible(false); - spnTurretTonnage.setValue(0); - spnTurretTonnage.setEnabled(false); } else if ( cmbTurret.getSelectedItem().toString().equals("Single Turret")) { pnlTurretArmor.setVisible(true); spnRearTurretArmor.setValue(0); pnlRearTurretArmor.setVisible(false); - spnTurretTonnage.setEnabled(true); } else if (cmbTurret.getSelectedItem().toString().equals("Chin Turret")) { pnlTurretArmor.setVisible(true); spnRearTurretArmor.setValue(0); pnlRearTurretArmor.setVisible(false); - spnTurretTonnage.setEnabled(true); } else if ( cmbTurret.getSelectedItem().toString().equals("Dual Turret") ) { pnlTurretArmor.setVisible(true); pnlRearTurretArmor.setVisible(true); - spnTurretTonnage.setEnabled(true); } if ( CurVee.IsVTOL() ) { pnlRotorArmor.setVisible(true); @@ -3803,6 +3798,7 @@ private void GetNewVee() { BuildChassisSelector(); BuildEngineSelector(); BuildArmorSelector(); + BuildTurretSelector(); BuildExpEquipmentSelector(); CheckOmni(); FixMPSpinner(); @@ -4533,12 +4529,12 @@ public void LoadVehicleIntoGUI() { spnCruiseMP.setModel( new javax.swing.SpinnerNumberModel(CurVee.getCruiseMP(), 1, CurVee.getMaxCruiseMP(), 1) ); if ( CurVee.isHasTurret1() ) { cmbTurret.setSelectedItem("Single Turret"); - spnTurretTonnage.setEnabled(!isLocked); + spnTurretTonnage.setEnabled(CurVee.isOmni() && !isLocked); spnTurretTonnage.setValue(CurVee.GetLoadout().GetTurret().GetTonnage()); } if ( CurVee.isHasTurret2() ) { cmbTurret.setSelectedItem("Dual Turret"); - spnRearTurretTonnage.setEnabled(!isLocked); + spnRearTurretTonnage.setEnabled(CurVee.isOmni() && !isLocked); spnRearTurretTonnage.setValue(CurVee.GetLoadout().GetRearTurret().GetTonnage()); } FixArmorSpinners(); @@ -6561,18 +6557,14 @@ private void cmbTurretActionPerformed(java.awt.event.ActionEvent evt) { String Turret = cmbTurret.getSelectedItem().toString(); if (Turret.equals("Single Turret") || Turret.equals("Chin Turret")) { CurVee.setHasTurret1(true); - if (!isLocked) { - spnTurretTonnage.setEnabled(true); - } + spnTurretTonnage.setEnabled(CurVee.isOmni() && !isLocked); spnRearTurretTonnage.setEnabled(false); spnRearTurretTonnage.setValue(0); } else if (Turret.equals("Dual Turret")) { CurVee.setHasTurret1(true); CurVee.setHasTurret2(true); - if (!isLocked) { - spnTurretTonnage.setEnabled(true); - spnRearTurretTonnage.setEnabled(true); - } + spnTurretTonnage.setEnabled(CurVee.isOmni() && !isLocked); + spnRearTurretTonnage.setEnabled(CurVee.isOmni() && !isLocked); } else { CurVee.setHasTurret1(false); CurVee.setHasTurret2(false); From 5bfc4cc4457992398c96723e57b8f297463bd633 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 26 Feb 2023 19:03:08 -0700 Subject: [PATCH 122/199] Omni Selected but Not Locked Show the tonnage spinners --- saw/src/main/java/saw/gui/frmVeeWide.java | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 1e643e44..81f53912 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -4529,12 +4529,12 @@ public void LoadVehicleIntoGUI() { spnCruiseMP.setModel( new javax.swing.SpinnerNumberModel(CurVee.getCruiseMP(), 1, CurVee.getMaxCruiseMP(), 1) ); if ( CurVee.isHasTurret1() ) { cmbTurret.setSelectedItem("Single Turret"); - spnTurretTonnage.setEnabled(CurVee.isOmni() && !isLocked); + spnTurretTonnage.setEnabled(chkOmniVee.isSelected() && !isLocked); spnTurretTonnage.setValue(CurVee.GetLoadout().GetTurret().GetTonnage()); } if ( CurVee.isHasTurret2() ) { cmbTurret.setSelectedItem("Dual Turret"); - spnRearTurretTonnage.setEnabled(CurVee.isOmni() && !isLocked); + spnRearTurretTonnage.setEnabled(chkOmniVee.isSelected() && !isLocked); spnRearTurretTonnage.setValue(CurVee.GetLoadout().GetRearTurret().GetTonnage()); } FixArmorSpinners(); @@ -6557,14 +6557,14 @@ private void cmbTurretActionPerformed(java.awt.event.ActionEvent evt) { String Turret = cmbTurret.getSelectedItem().toString(); if (Turret.equals("Single Turret") || Turret.equals("Chin Turret")) { CurVee.setHasTurret1(true); - spnTurretTonnage.setEnabled(CurVee.isOmni() && !isLocked); + spnTurretTonnage.setEnabled(chkOmniVee.isSelected() && !isLocked); spnRearTurretTonnage.setEnabled(false); spnRearTurretTonnage.setValue(0); } else if (Turret.equals("Dual Turret")) { CurVee.setHasTurret1(true); CurVee.setHasTurret2(true); - spnTurretTonnage.setEnabled(CurVee.isOmni() && !isLocked); - spnRearTurretTonnage.setEnabled(CurVee.isOmni() && !isLocked); + spnTurretTonnage.setEnabled(chkOmniVee.isSelected() && !isLocked); + spnRearTurretTonnage.setEnabled(chkOmniVee.isSelected() && !isLocked); } else { CurVee.setHasTurret1(false); CurVee.setHasTurret2(false); @@ -6736,11 +6736,7 @@ private void chkTrailerActionPerformed(java.awt.event.ActionEvent evt) { } private void chkOmniVeeActionPerformed(java.awt.event.ActionEvent evt) { - if (chkOmniVee.isSelected()) { - btnLockChassis.setEnabled(true); - } else { - btnLockChassis.setEnabled(false); - } + btnLockChassis.setEnabled(chkOmniVee.isSelected()); cmbTurretActionPerformed(evt); } From 66f2091ddb03cca4e94e76d85eb6f0bb52018f44 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 26 Feb 2023 19:26:10 -0700 Subject: [PATCH 123/199] Only Set Tonnage if Omni --- saw/src/main/java/saw/gui/frmVeeWide.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 81f53912..4e25d545 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -4529,13 +4529,17 @@ public void LoadVehicleIntoGUI() { spnCruiseMP.setModel( new javax.swing.SpinnerNumberModel(CurVee.getCruiseMP(), 1, CurVee.getMaxCruiseMP(), 1) ); if ( CurVee.isHasTurret1() ) { cmbTurret.setSelectedItem("Single Turret"); - spnTurretTonnage.setEnabled(chkOmniVee.isSelected() && !isLocked); - spnTurretTonnage.setValue(CurVee.GetLoadout().GetTurret().GetTonnage()); + if (chkOmniVee.isSelected() && !isLocked) { + spnTurretTonnage.setEnabled(true); + spnTurretTonnage.setValue(CurVee.GetLoadout().GetTurret().GetTonnage()); + } } if ( CurVee.isHasTurret2() ) { cmbTurret.setSelectedItem("Dual Turret"); - spnRearTurretTonnage.setEnabled(chkOmniVee.isSelected() && !isLocked); - spnRearTurretTonnage.setValue(CurVee.GetLoadout().GetRearTurret().GetTonnage()); + if (chkOmniVee.isSelected() && !isLocked) { + spnRearTurretTonnage.setEnabled(true); + spnRearTurretTonnage.setValue(CurVee.GetLoadout().GetRearTurret().GetTonnage()); + } } FixArmorSpinners(); From 7d4b55e0ef78f29bdf383e17f0e7467afc08f907 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 26 Feb 2023 19:36:23 -0700 Subject: [PATCH 124/199] More Omni Specificity Set enabled for omni only when not locked...but always load the tonnage --- saw/src/main/java/saw/gui/frmVeeWide.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 4e25d545..2b2bd1be 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -4529,15 +4529,15 @@ public void LoadVehicleIntoGUI() { spnCruiseMP.setModel( new javax.swing.SpinnerNumberModel(CurVee.getCruiseMP(), 1, CurVee.getMaxCruiseMP(), 1) ); if ( CurVee.isHasTurret1() ) { cmbTurret.setSelectedItem("Single Turret"); - if (chkOmniVee.isSelected() && !isLocked) { - spnTurretTonnage.setEnabled(true); + if (chkOmniVee.isSelected()) { + spnTurretTonnage.setEnabled(!isLocked); spnTurretTonnage.setValue(CurVee.GetLoadout().GetTurret().GetTonnage()); } } if ( CurVee.isHasTurret2() ) { cmbTurret.setSelectedItem("Dual Turret"); - if (chkOmniVee.isSelected() && !isLocked) { - spnRearTurretTonnage.setEnabled(true); + if (chkOmniVee.isSelected()) { + spnRearTurretTonnage.setEnabled(!isLocked); spnRearTurretTonnage.setValue(CurVee.GetLoadout().GetRearTurret().GetTonnage()); } } From b46d0857295a63d98daa3f9df9bbdf2729a86e9f Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 26 Feb 2023 19:51:31 -0700 Subject: [PATCH 125/199] Push Turret Check AFTER Omni Check On the Load into GUI --- saw/src/main/java/saw/gui/frmVeeWide.java | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 2b2bd1be..97eadb14 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -4041,8 +4041,6 @@ private void UnlockGUIFromOmni() { chkFCSAIV.setEnabled( true ); chkFCSAV.setEnabled( true ); chkFCSApollo.setEnabled( true ); - chkOmniVee.setSelected( false ); - chkOmniVee.setEnabled( true ); btnLockChassis.setEnabled( true ); spnCruiseMP.setEnabled( true ); chkYearRestrict.setEnabled( true ); @@ -4527,6 +4525,17 @@ public void LoadVehicleIntoGUI() { cmbMotiveType.setSelectedItem( CurVee.GetMotiveLookupName() ); spnTonnage.setModel( new javax.swing.SpinnerNumberModel(CurVee.GetTonnage(), 1, CurVee.GetMaxTonnage(), 1) ); spnCruiseMP.setModel( new javax.swing.SpinnerNumberModel(CurVee.getCruiseMP(), 1, CurVee.getMaxCruiseMP(), 1) ); + FixArmorSpinners(); + + // now that we're done with the special stuff... + Load = false; + + if( CurVee.IsOmni() ) { + LockGUIForOmni(); + RefreshOmniVariants(); + RefreshOmniChoices(); + } + if ( CurVee.isHasTurret1() ) { cmbTurret.setSelectedItem("Single Turret"); if (chkOmniVee.isSelected()) { @@ -4541,16 +4550,6 @@ public void LoadVehicleIntoGUI() { spnRearTurretTonnage.setValue(CurVee.GetLoadout().GetRearTurret().GetTonnage()); } } - FixArmorSpinners(); - - // now that we're done with the special stuff... - Load = false; - - if( CurVee.IsOmni() ) { - LockGUIForOmni(); - RefreshOmniVariants(); - RefreshOmniChoices(); - } FixTonnageSpinner( CurVee.GetMinTonnage(), CurVee.GetMaxTonnage() ); BuildChassisSelector(); From 2415ab5960a1f943add3a59c67ddb28476c95360 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 26 Feb 2023 20:03:40 -0700 Subject: [PATCH 126/199] Clear Tonnage So that new loads don't have it --- saw/src/main/java/saw/gui/frmVeeWide.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 97eadb14..4b7bd23b 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -4536,6 +4536,8 @@ public void LoadVehicleIntoGUI() { RefreshOmniChoices(); } + spnTurretTonnage.setValue(0); + spnRearTurretTonnage.setValue(0); if ( CurVee.isHasTurret1() ) { cmbTurret.setSelectedItem("Single Turret"); if (chkOmniVee.isSelected()) { From 513d5cbb21d87d2d736b75ec474d441c7071c49b Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 26 Feb 2023 21:23:11 -0700 Subject: [PATCH 127/199] Create Component And take first pass at getting the data setup. --- saw/src/main/java/saw/gui/frmVeeWide.java | 18 ++- .../java/components/ArmoredMotiveSystem.java | 105 ++++++++++++++++++ .../src/main/java/components/CVLoadout.java | 26 ++++- .../src/main/java/components/ifCVLoadout.java | 3 + 4 files changed, 149 insertions(+), 3 deletions(-) create mode 100644 sswlib/src/main/java/components/ArmoredMotiveSystem.java diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 0bd5b2ec..953cee6d 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -1938,6 +1938,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { chkArmoredMotive.setText("Armored Motive System"); chkArmoredMotive.setEnabled(false); + chkArmoredMotive.addActionListener(this::chkArmoredMotiveActionPerformed); chkCommandConsole.setText("Command Console"); chkCommandConsole.setEnabled(false); @@ -5378,7 +5379,7 @@ private void RefreshEquipment() { setCheckbox(chkSupercharger, ( CommonTools.IsAllowed( CurVee.GetLoadout().GetSupercharger().GetAvailability(), CurVee ) && !CurVee.IsVTOL() ), CurVee.GetLoadout().HasSupercharger()); setCheckbox(chkJetBooster, ( CommonTools.IsAllowed( CurVee.GetLoadout().GetVTOLBooster().GetAvailability(), CurVee ) && CurVee.IsVTOL() && !CurVee.IsOmni() ), CurVee.GetLoadout().HasVTOLBooster()); - + setCheckbox(chkArmoredMotive, ( CommonTools.IsAllowed( CurVee.GetLoadout().GetArmoredMotiveSystem().GetAvailability(), CurVee ) && !CurVee.IsVTOL() ), CurVee.GetLoadout().HasArmoredMotiveSystem()); if( ! chkUseTC.isEnabled() ) { CurVee.UseTC( false, false ); } if( CurVee.GetRulesLevel() >= AvailableCode.RULES_EXPERIMENTAL ) { @@ -7816,7 +7817,20 @@ private void chkJetBoosterActionPerformed(java.awt.event.ActionEvent evt) { RefreshSummary(); RefreshInfoPane(); } - + private void chkArmoredMotiveActionPerformed(ActionEvent evt) { + if (CurVee.GetLoadout().HasArmoredMotiveSystem() == chkArmoredMotive.isSelected()) { + return; + } + try { + CurVee.GetLoadout().SetArmoredMotiveSystem(chkArmoredMotive.isSelected()); + } catch( Exception e ) { + Media.Messager( this, e.getMessage() ); + chkArmoredMotive.setSelected( false ); + } + RefreshSelectedEquipment(); + RefreshSummary(); + RefreshInfoPane(); + } private void chkSuperchargerActionPerformed(java.awt.event.ActionEvent evt) { if( CurVee.GetLoadout().HasSupercharger() == chkSupercharger.isSelected() ) { return; diff --git a/sswlib/src/main/java/components/ArmoredMotiveSystem.java b/sswlib/src/main/java/components/ArmoredMotiveSystem.java new file mode 100644 index 00000000..c7d6ac1a --- /dev/null +++ b/sswlib/src/main/java/components/ArmoredMotiveSystem.java @@ -0,0 +1,105 @@ +package components; + +public class ArmoredMotiveSystem extends abPlaceable { + private ifCVLoadout Owner; + private AvailableCode AC = new AvailableCode( AvailableCode.TECH_INNER_SPHERE ); + private boolean IsClan = false; + public ArmoredMotiveSystem(ifCVLoadout l) { + AC.SetISCodes('E', 'X', 'X', 'F', 'E'); + AC.SetISDates( 3069, 3071, true, 0, 0, 0, false, false ); + AC.SetISFactions( "FWL", "FWL", "FWL", "" ); + AC.SetCLCodes( 'F', 'X', 'X', 'F', 'E' ); + AC.SetCLDates( 3054, 3057, true, 0, 0, 0, false, false ); + AC.SetCLFactions( "CHH", "CHH", "", "" ); + AC.SetPBMAllowed( false ); + AC.SetPIMAllowed( false ); + AC.SetRulesLevels( AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_EXPERIMENTAL, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED ); + + Owner = l; + } + @Override + public String ActualName() { + return "Armored Motive System"; + } + + @Override + public String LookupName() { + return "Armored Motive System"; + } + + @Override + public String CritName() { + return "Armored Motive System"; + } + + @Override + public String ChatName() { + return "ArmMotSys"; + } + + @Override + public String MegaMekName(boolean UseRear) { + return (IsClan ? "CL" : "IS") + "ArmoredMotiveSystem"; + } + + @Override + public String BookReference() { + return "Tactical Operations"; + } + + @Override + public int NumCrits() { + return 0; + } + + @Override + public int NumCVSpaces() { + return 0; + } + + @Override + public double GetTonnage() { + return Owner.GetOwner().GetTonnage() * (IsClan ? .10 : .15); + } + + @Override + public double GetCost() { + return 100000 * GetTonnage(); + } + + @Override + public double GetOffensiveBV() { + return 0; + } + + @Override + public double GetCurOffensiveBV(boolean UseRear, boolean UseTC, boolean UseAES) { + return 0; + } + + @Override + public double GetCurOffensiveBV(boolean UseRear, boolean UseTC, boolean UseAES, boolean UseRobotic) { + return 0; + } + + @Override + public double GetDefensiveBV() { + return 0; + } + + @Override + public AvailableCode GetAvailability() { + return AC; + } + + public void SetClan(boolean b ) { + IsClan = b; + } + + public boolean IsClan() { return IsClan; } + + @Override + public boolean CoreComponent() { + return true; + } +} diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index ae46d75e..a295739e 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -46,6 +46,7 @@ public class CVLoadout implements ifCVLoadout, ifLoadout { private TargetingComputer CurTC = new TargetingComputer( this, false ); private Supercharger SCharger = new Supercharger( this ); private VTOLBooster VBooster = new VTOLBooster(this); + private ArmoredMotiveSystem AMotiveS = new ArmoredMotiveSystem(this); private String Name = Constants.BASELOADOUT_NAME, Source = ""; private ArrayList<abPlaceable> Queue = new ArrayList<abPlaceable>(), @@ -73,7 +74,8 @@ public class CVLoadout implements ifCVLoadout, ifLoadout { UsingSupercharger = false, YearSpecified = false, YearRestricted = false, - UsingVTOLBooster = false; + UsingVTOLBooster = false, + UsingArmoredMotiveSystem = false; private Turret Turret1 = new Turret(this, false), Turret2 = new Turret(this, false); private SponsonTurret SponsonTurretLeft = new SponsonTurret(this, false), @@ -1149,6 +1151,28 @@ public VTOLBooster GetVTOLBooster() { return VBooster; } + public boolean HasArmoredMotiveSystem() { + return UsingArmoredMotiveSystem; + } + + public void SetArmoredMotiveSystem(boolean b) { + if (!b) { + Remove(AMotiveS); + return; + } + + try { + AddToBody(AMotiveS); + } catch (Exception ex) { + System.err.println(ex.getMessage()); + } + Owner.setChanged(true); + } + + public ArmoredMotiveSystem GetArmoredMotiveSystem() { + return AMotiveS; + } + public CVPowerAmplifier GetPowerAmplifier() { return PowerAmplifier; } diff --git a/sswlib/src/main/java/components/ifCVLoadout.java b/sswlib/src/main/java/components/ifCVLoadout.java index fc592e74..dd3b6239 100644 --- a/sswlib/src/main/java/components/ifCVLoadout.java +++ b/sswlib/src/main/java/components/ifCVLoadout.java @@ -162,6 +162,9 @@ public interface ifCVLoadout { public double GetSponsonTurretCost(); public void ResetHeatSinks(); public int NumCVAmmoSpaces(); + public boolean HasArmoredMotiveSystem(); + public void SetArmoredMotiveSystem(boolean b); + public ArmoredMotiveSystem GetArmoredMotiveSystem(); /* public void AddMechModifier( MechModifier m ); public void RemoveMechMod( MechModifier m ); From 7f5677121f062ecada45ee79ec14c7754b56eb4a Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 26 Feb 2023 21:41:00 -0700 Subject: [PATCH 128/199] Quick Fixes Tonnage calc, add BV --- sswlib/src/main/java/components/ArmoredMotiveSystem.java | 8 +++++--- sswlib/src/main/java/components/CVLoadout.java | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/sswlib/src/main/java/components/ArmoredMotiveSystem.java b/sswlib/src/main/java/components/ArmoredMotiveSystem.java index c7d6ac1a..bccff953 100644 --- a/sswlib/src/main/java/components/ArmoredMotiveSystem.java +++ b/sswlib/src/main/java/components/ArmoredMotiveSystem.java @@ -1,5 +1,7 @@ package components; +import common.CommonTools; + public class ArmoredMotiveSystem extends abPlaceable { private ifCVLoadout Owner; private AvailableCode AC = new AvailableCode( AvailableCode.TECH_INNER_SPHERE ); @@ -7,7 +9,7 @@ public class ArmoredMotiveSystem extends abPlaceable { public ArmoredMotiveSystem(ifCVLoadout l) { AC.SetISCodes('E', 'X', 'X', 'F', 'E'); AC.SetISDates( 3069, 3071, true, 0, 0, 0, false, false ); - AC.SetISFactions( "FWL", "FWL", "FWL", "" ); + AC.SetISFactions( "FWL", "FWL", "", "" ); AC.SetCLCodes( 'F', 'X', 'X', 'F', 'E' ); AC.SetCLDates( 3054, 3057, true, 0, 0, 0, false, false ); AC.SetCLFactions( "CHH", "CHH", "", "" ); @@ -59,7 +61,7 @@ public int NumCVSpaces() { @Override public double GetTonnage() { - return Owner.GetOwner().GetTonnage() * (IsClan ? .10 : .15); + return CommonTools.RoundHalfUp(Owner.GetOwner().GetTonnage() * (IsClan ? .01 : .015)); } @Override @@ -84,7 +86,7 @@ public double GetCurOffensiveBV(boolean UseRear, boolean UseTC, boolean UseAES, @Override public double GetDefensiveBV() { - return 0; + return 0.1; } @Override diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index a295739e..a1fdef98 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -1152,7 +1152,7 @@ public VTOLBooster GetVTOLBooster() { } public boolean HasArmoredMotiveSystem() { - return UsingArmoredMotiveSystem; + return IsAllocated( AMotiveS ); } public void SetArmoredMotiveSystem(boolean b) { From 19318a3ad9aa958ed4569ef22c2319aa500f896e Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Mon, 27 Feb 2023 21:12:43 -0700 Subject: [PATCH 129/199] Fix tonnage, add modifier --- sswlib/src/main/java/components/ArmoredMotiveSystem.java | 2 +- sswlib/src/main/java/components/CombatVehicle.java | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/sswlib/src/main/java/components/ArmoredMotiveSystem.java b/sswlib/src/main/java/components/ArmoredMotiveSystem.java index bccff953..ace0d81a 100644 --- a/sswlib/src/main/java/components/ArmoredMotiveSystem.java +++ b/sswlib/src/main/java/components/ArmoredMotiveSystem.java @@ -61,7 +61,7 @@ public int NumCVSpaces() { @Override public double GetTonnage() { - return CommonTools.RoundHalfUp(Owner.GetOwner().GetTonnage() * (IsClan ? .01 : .015)); + return CommonTools.RoundHalfUp(Owner.GetOwner().GetTonnage() * (IsClan ? .1 : .15)); } @Override diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index 0aefbab2..5d2a856b 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -2000,6 +2000,7 @@ public double GetChassisModifier() { if ( UsingFullAmphibious ) retval += 0.2; if ( UsingDuneBuggy ) retval += 0.1; if ( UsingEnvironmentalSealing ) retval += 0.1; + if ( GetLoadout().HasArmoredMotiveSystem() ) retval += 0.1; return retval; } @@ -2028,6 +2029,7 @@ public String GetChassisModifierString() { if ( UsingFullAmphibious ) b.append(", Full Amphibious"); if ( UsingDuneBuggy ) b.append(", Dune Buggy"); if ( UsingEnvironmentalSealing && !(CurConfig instanceof stCVSubmarine) ) b.append(", Environmental Sealing"); + if ( GetLoadout().HasArmoredMotiveSystem() ) b.append(", Armored Motive System"); if ( b.length() > 0 ) return "(" + b.toString().substring(2) + ")"; return ""; } From 80f9d9b33abe061b71aef223cb43249cb205486d Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Tue, 28 Feb 2023 21:31:46 -0700 Subject: [PATCH 130/199] Set AvailableCode to Tech Both instead of just Inner Sphere. --- sswlib/src/main/java/components/ArmoredMotiveSystem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sswlib/src/main/java/components/ArmoredMotiveSystem.java b/sswlib/src/main/java/components/ArmoredMotiveSystem.java index ace0d81a..a68ed48a 100644 --- a/sswlib/src/main/java/components/ArmoredMotiveSystem.java +++ b/sswlib/src/main/java/components/ArmoredMotiveSystem.java @@ -4,7 +4,7 @@ public class ArmoredMotiveSystem extends abPlaceable { private ifCVLoadout Owner; - private AvailableCode AC = new AvailableCode( AvailableCode.TECH_INNER_SPHERE ); + private AvailableCode AC = new AvailableCode( AvailableCode.TECH_BOTH ); private boolean IsClan = false; public ArmoredMotiveSystem(ifCVLoadout l) { AC.SetISCodes('E', 'X', 'X', 'F', 'E'); From 2154f35800ba6a22db246046288f824f2e224d8d Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Tue, 28 Feb 2023 21:46:36 -0700 Subject: [PATCH 131/199] Add ability to set as Clan and have Mixed tech select which it will be. --- saw/src/main/java/saw/gui/frmVeeWide.java | 20 ++++++++++++++----- .../src/main/java/components/CVLoadout.java | 3 ++- .../src/main/java/components/ifCVLoadout.java | 2 +- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 953cee6d..88cdcd83 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -4585,11 +4585,8 @@ private void BuildChassisSelector() { } private void BuildExpEquipmentSelector() { - JCheckBox[] ExpEquipmentCheckboxes = { chkArmoredMotive, - chkSupercharger, - chkCommandConsole, + JCheckBox[] ExpEquipmentCheckboxes = { chkCommandConsole, chkMinesweeper, - chkJetBooster, chkEscapePod, chkSponsonTurret }; if (cmbRulesLevel.getSelectedIndex() > 1) { @@ -7822,7 +7819,20 @@ private void chkArmoredMotiveActionPerformed(ActionEvent evt) { return; } try { - CurVee.GetLoadout().SetArmoredMotiveSystem(chkArmoredMotive.isSelected()); + switch (CurVee.GetTechBase()) { + case AvailableCode.TECH_INNER_SPHERE: + CurVee.GetLoadout().SetArmoredMotiveSystem(chkArmoredMotive.isSelected(), false); + break; + case AvailableCode.TECH_CLAN: + CurVee.GetLoadout().SetArmoredMotiveSystem(chkArmoredMotive.isSelected(), true); + break; + case AvailableCode.TECH_BOTH: + dlgTechBaseChooser tech = new dlgTechBaseChooser(this, true); + tech.setLocationRelativeTo(this); + tech.setVisible(true); + CurVee.GetLoadout().SetArmoredMotiveSystem(chkArmoredMotive.isSelected(), tech.IsClan()); + break; + } } catch( Exception e ) { Media.Messager( this, e.getMessage() ); chkArmoredMotive.setSelected( false ); diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index a1fdef98..836e67de 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -1155,7 +1155,7 @@ public boolean HasArmoredMotiveSystem() { return IsAllocated( AMotiveS ); } - public void SetArmoredMotiveSystem(boolean b) { + public void SetArmoredMotiveSystem(boolean b, boolean isClan) { if (!b) { Remove(AMotiveS); return; @@ -1163,6 +1163,7 @@ public void SetArmoredMotiveSystem(boolean b) { try { AddToBody(AMotiveS); + AMotiveS.SetClan(isClan); } catch (Exception ex) { System.err.println(ex.getMessage()); } diff --git a/sswlib/src/main/java/components/ifCVLoadout.java b/sswlib/src/main/java/components/ifCVLoadout.java index dd3b6239..7becdef5 100644 --- a/sswlib/src/main/java/components/ifCVLoadout.java +++ b/sswlib/src/main/java/components/ifCVLoadout.java @@ -163,7 +163,7 @@ public interface ifCVLoadout { public void ResetHeatSinks(); public int NumCVAmmoSpaces(); public boolean HasArmoredMotiveSystem(); - public void SetArmoredMotiveSystem(boolean b); + public void SetArmoredMotiveSystem(boolean b, boolean isClan); public ArmoredMotiveSystem GetArmoredMotiveSystem(); /* public void AddMechModifier( MechModifier m ); From b51386ad60a0bc5e72d55cafb43a90459d98984a Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Wed, 1 Mar 2023 13:24:27 -0700 Subject: [PATCH 132/199] Removed As this is added in the CombatVehicle modifier method --- sswlib/src/main/java/components/ArmoredMotiveSystem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sswlib/src/main/java/components/ArmoredMotiveSystem.java b/sswlib/src/main/java/components/ArmoredMotiveSystem.java index a68ed48a..a318fb74 100644 --- a/sswlib/src/main/java/components/ArmoredMotiveSystem.java +++ b/sswlib/src/main/java/components/ArmoredMotiveSystem.java @@ -86,7 +86,7 @@ public double GetCurOffensiveBV(boolean UseRear, boolean UseTC, boolean UseAES, @Override public double GetDefensiveBV() { - return 0.1; + return 0; } @Override From f2fd1e1672c4af6f4a4a449e7d5418857dfcd675 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Wed, 1 Mar 2023 13:25:58 -0700 Subject: [PATCH 133/199] Correct Alloc Checks Side and Rear were swapped. --- sswlib/src/main/java/components/Equipment.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sswlib/src/main/java/components/Equipment.java b/sswlib/src/main/java/components/Equipment.java index 6be5e1c1..b60c0cfd 100644 --- a/sswlib/src/main/java/components/Equipment.java +++ b/sswlib/src/main/java/components/Equipment.java @@ -414,12 +414,12 @@ public boolean CanAllocCVFront() { @Override public boolean CanAllocCVRear() { - return alloc_sides; + return alloc_rear; } @Override public boolean CanAllocCVSide() { - return alloc_rear; + return alloc_sides; } @Override From 943c29539743057d0243e70e21e94e61f23f7c84 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Wed, 1 Mar 2023 13:58:19 -0700 Subject: [PATCH 134/199] Add Body check --- sswlib/src/main/java/components/Equipment.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sswlib/src/main/java/components/Equipment.java b/sswlib/src/main/java/components/Equipment.java index b60c0cfd..84a64666 100644 --- a/sswlib/src/main/java/components/Equipment.java +++ b/sswlib/src/main/java/components/Equipment.java @@ -427,6 +427,9 @@ public boolean CanAllocCVTurret() { return alloc_turret; } + @Override + public boolean CanAllocCVBody() { return alloc_body; } + public int GetTechBase() { return AC.GetTechBase(); } From 3d0029d5d701f08c1f5e3a3f1512650be67f5e45 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Wed, 1 Mar 2023 17:09:27 -0700 Subject: [PATCH 135/199] Update to Handle Rear Facing Updated the Validate method to handle items that have (R) added to them when checking for max allocations. --- Data/Equipment/equipment.json | 94 +++++++++++++++++++ saw/src/main/java/saw/gui/frmVee.java | 6 +- saw/src/main/java/saw/gui/frmVeeWide.java | 6 +- .../src/main/java/components/CVLoadout.java | 2 +- .../src/main/java/components/Equipment.java | 39 +++----- .../src/main/java/components/LiftHoist.java | 13 +-- .../src/main/java/components/ifEquipment.java | 2 +- 7 files changed, 116 insertions(+), 46 deletions(-) diff --git a/Data/Equipment/equipment.json b/Data/Equipment/equipment.json index 27681625..c995b243 100644 --- a/Data/Equipment/equipment.json +++ b/Data/Equipment/equipment.json @@ -6764,6 +6764,100 @@ "-" ] }, + "Combat Vehicle Escape Pod": { + "ActualName": "Combat Vehicle Escape Pod", + "CritName": "Combat Vehicle Escape Pod ", + "Type": "E", + "LookupName": "Combat Vehicle Escape Pod", + "MegaMekName": "ISCombatVehicleEscapePod", + "BookReference": "TO:AU&E", + "ChatName": "CVEP", + "Specials": "-", + "Crits": 1, + "CVSpace": 1, + "LotSize": 0, + "AmmoIndex": 0, + "ShtRange": 0, + "MedRange": 0, + "LngRange": 0, + "Heat": 0, + "MaxAllowed": 1, + "Tonnage": 4.0, + "Cost": 10000.0, + "OffBV": 0.0, + "DefBV": 0.0, + "MinTons": 0.0, + "MaxTons": 0.0, + "VariableIncrement": 0.0, + "TonsPerCrit": 0.0, + "CostPerTon": 0.0, + "HasAmmo": false, + "alloc_head": false, + "alloc_ct": false, + "alloc_torsos": false, + "alloc_arms": false, + "alloc_legs": false, + "alloc_front": false, + "alloc_sides": false, + "alloc_rear": true, + "alloc_turret": false, + "alloc_body": false, + "CanSplit": false, + "CanMountRear": false, + "Explosive": false, + "VariableSize": false, + "RequiresQuad": false, + "Availability": { + "IS_SL": "X", + "IS_SW": "X", + "IS_CI": "E", + "IS_DA": "E", + "IS_TechRating": "D", + "CL_SL": "X", + "CL_SW": "X", + "CL_CI": "X", + "CL_DA": "X", + "CL_TechRating": "X", + "IS_RandDStartDate": 3032, + "IS_PrototypeDate": 3038, + "IS_IntroDate": 3079, + "IS_ExtinctDate": 0, + "IS_ReIntroDate": 0, + "CL_RandDStartDate": 0, + "CL_PrototypeDate": 0, + "CL_IntroDate": 0, + "CL_ExtinctDate": 0, + "CL_ReIntroDate": 0, + "RulesLevelBM": -1, + "RulesLevelIM": -1, + "RulesLevelCV": 3, + "RulesLevelAF": -1, + "RulesLevelCF": -1, + "TechBase": 0, + "IS_IntroFaction": "LC", + "IS_ReIntroFaction": "--", + "IS_RandDFaction": "FC", + "IS_PrototypeFaction": "FC", + "CL_IntroFaction": "--", + "CL_ReIntroFaction": "--", + "CL_RandDFaction": "--", + "CL_PrototypeFaction": "--", + "IS_WentExtinct": false, + "IS_ReIntroduced": false, + "IS_IsPrototype": false, + "CL_WentExtinct": false, + "CL_ReIntroduced": false, + "CL_IsPrototype": false, + "PBMAllowed": false, + "PIMAllowed": false, + "PrimitiveOnly": false, + "SuperHeavyCompatible": true, + "SuperHeavyOnly": false + }, + "BattleForceAbilities": [ + "ES" + ] + }, "Paramedic Equipment": { "ActualName": "Paramedic Equipment", "CritName": "Paramedic", diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 76747477..fe2cbf44 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -5862,11 +5862,7 @@ private void btnAddEquipActionPerformed(java.awt.event.ActionEvent evt) { try { CurVee.GetLoadout().CheckExclusions( a ); if( a instanceof ifEquipment ) { - if ( ! ((ifEquipment) a).Validate( CurVee ) ) { - if( ((ifEquipment) a).MaxAllowed() > 0 ) { - throw new Exception( "Only " + ((ifEquipment) a).MaxAllowed() + " " + a.CritName() + "(s) may be mounted on one Vehicle." ); - } - } + ((ifEquipment) a).Validate( CurVee ); } } catch( Exception e ) { Media.Messager( e.getMessage() ); diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 4b7bd23b..fe0a3be6 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -5430,11 +5430,7 @@ private void btnAddEquipActionPerformed(java.awt.event.ActionEvent evt) { try { CurVee.GetLoadout().CheckExclusions(a); if (a instanceof ifEquipment) { - if (!((ifEquipment) a).Validate(CurVee)) { - if (((ifEquipment) a).MaxAllowed() > 0) { - throw new Exception("Only " + ((ifEquipment) a).MaxAllowed() + " " + a.CritName() + "(s) may be mounted on one Vehicle."); - } - } + ((ifEquipment) a).Validate(CurVee); } } catch (Exception e) { Media.Messager(e.getMessage()); diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index ae46d75e..4d739a5d 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -568,7 +568,7 @@ public abPlaceable[] GetItems(int Loc) { case LocationIndex.CV_LOC_REAR: return RearItems.toArray(new abPlaceable[RearItems.size()]); case LocationIndex.CV_LOC_RIGHT: - return RearItems.toArray(new abPlaceable[RightItems.size()]); + return RightItems.toArray(new abPlaceable[RightItems.size()]); case LocationIndex.CV_LOC_TURRET1: return Turret1Items.toArray(new abPlaceable[Turret1Items.size()]); case LocationIndex.CV_LOC_TURRET2: diff --git a/sswlib/src/main/java/components/Equipment.java b/sswlib/src/main/java/components/Equipment.java index 84a64666..7642f3a9 100644 --- a/sswlib/src/main/java/components/Equipment.java +++ b/sswlib/src/main/java/components/Equipment.java @@ -227,20 +227,19 @@ public void SetBookReference( String b ) { BookReference = b; } + //NOTE: Do NOT use a Rear reference here as this field is used on the Validate method public String ActualName() { return ActualName; } + private String RearName() { return Rear ? "(R) " : ""; } + public String CritName() { String retval = CritName; if( VariableSize ) { retval += " (" + Tonnage + " tons)"; } - if( Rear ) { - return "(R) " + retval; - } else { - return retval; - } + return RearName() + retval; } @Override @@ -253,11 +252,7 @@ public String PrintName() { } public String LookupName() { - if( Rear ) { - return "(R) " + LookupName; - } else { - return LookupName; - } + return RearName() + LookupName; } public String ChatName() { @@ -265,11 +260,7 @@ public String ChatName() { } public String MegaMekName( boolean UseRear ) { - if( Rear ) { - return MegaMekName + " (R)"; - } else { - return MegaMekName; - } + return (MegaMekName + " " + RearName()).trim(); } public String BookReference() { @@ -484,6 +475,7 @@ public boolean RequiresPowerAmps() { return RequiresPowerAmps; } + @Override public int MaxAllowed() { return MaxAllowed; } @@ -533,10 +525,10 @@ public void Validate( Mech m ) throws Exception { ArrayList currentEquipment = m.GetLoadout().GetEquipment(); for (int i = 0, c = 0; i < currentEquipment.size(); ++i) { abPlaceable currentItem = (abPlaceable) currentEquipment.get(i); - if (currentItem.LookupName().equals(LookupName)) { + if (currentItem.ActualName().equals(ActualName)) { ++c; if (c == MaxAllowed) { - throw new Exception("Only " + MaxAllowed + " " + CritName + "(s) may be mounted on one 'Mech."); + throw new Exception("Only " + MaxAllowed + " " + CritName + "(s) may be mounted."); } } } @@ -546,24 +538,19 @@ public void Validate( Mech m ) throws Exception { } } - public boolean Validate( CombatVehicle v ) - { + @Override + public void Validate( CombatVehicle v ) throws Exception { if( MaxAllowed > 0 ) { ArrayList currentEquipment = v.GetLoadout().GetEquipment(); for( int i = 0, c = 0; i < currentEquipment.size(); ++i ) { abPlaceable currentItem = (abPlaceable) currentEquipment.get( i ); - if( currentItem.LookupName().equals( LookupName ) ) { + if( currentItem.ActualName().equals( ActualName ) ) { ++c; if( c == MaxAllowed ) { - return false; + throw new Exception("Only " + MaxAllowed + " " + CritName + "(s) may be mounted."); } } } - return true; - } else if( RequiresQuad ) { - return false; - } else { - return true; } } diff --git a/sswlib/src/main/java/components/LiftHoist.java b/sswlib/src/main/java/components/LiftHoist.java index d33a8601..ee3456bc 100644 --- a/sswlib/src/main/java/components/LiftHoist.java +++ b/sswlib/src/main/java/components/LiftHoist.java @@ -55,9 +55,7 @@ public LiftHoist(ifUnit l) SetMountableRear(true); } - public String RearName() { - return Rear ? "(R) " : ""; - } + public String RearName() { return Rear ? "(R) " : ""; } public String ActualName() { return "Lift Hoist"; @@ -177,22 +175,21 @@ public void Validate(Mech m) throws Exception { } @Override - public boolean Validate(CombatVehicle v) { + public void Validate(CombatVehicle v) throws Exception { if (MaxAllowed() == 0) { - return true; + return; } int count = 0; for(Object item : v.GetLoadout().GetEquipment()) { abPlaceable currentItem = (abPlaceable) item; - if( currentItem.LookupName().equals( LookupName() ) ) { + if( currentItem.ActualName().equals( ActualName() ) ) { ++count; if( count == MaxAllowed() ) { - return false; + throw new Exception("Only " + MaxAllowed() + " " + CritName() + "(s) may be mounted."); } } } - return true; } @Override diff --git a/sswlib/src/main/java/components/ifEquipment.java b/sswlib/src/main/java/components/ifEquipment.java index 72874f10..2a733cac 100644 --- a/sswlib/src/main/java/components/ifEquipment.java +++ b/sswlib/src/main/java/components/ifEquipment.java @@ -39,7 +39,7 @@ public interface ifEquipment { public int MaxAllowed(); public void Validate( Mech m ) throws Exception; - public boolean Validate( CombatVehicle v ); + public void Validate( CombatVehicle v ) throws Exception; public boolean CanAllocCVBody(); public String GetEquipmentType(); From 548e84987df9d8f0ae690e60937002cf742d2f06 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Wed, 1 Mar 2023 17:30:09 -0700 Subject: [PATCH 136/199] PE and OS per Maelwys --- Data/Equipment/equipment.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Data/Equipment/equipment.json b/Data/Equipment/equipment.json index c995b243..bbee961d 100644 --- a/Data/Equipment/equipment.json +++ b/Data/Equipment/equipment.json @@ -6767,12 +6767,12 @@ "Combat Vehicle Escape Pod": { "ActualName": "Combat Vehicle Escape Pod", "CritName": "Combat Vehicle Escape Pod ", - "Type": "E", + "Type": "PE", "LookupName": "Combat Vehicle Escape Pod", "MegaMekName": "ISCombatVehicleEscapePod", "BookReference": "TO:AU&E", "ChatName": "CVEP", - "Specials": "-", + "Specials": "OS", "Crits": 1, "CVSpace": 1, "LotSize": 0, From 104b62986ac2278c419ae93687ffbc0e7db0f99a Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Thu, 2 Mar 2023 18:05:54 -0700 Subject: [PATCH 137/199] Add ability to set as Clan and have Mixed tech select which it will be. --- saw/src/main/java/saw/gui/frmVeeWide.java | 1 + sswlib/src/main/java/common/EquipmentFactory.java | 3 +++ sswlib/src/main/java/components/ArmoredMotiveSystem.java | 8 +++++++- sswlib/src/main/java/components/AvailableCode.java | 8 ++++---- sswlib/src/main/java/components/CVLoadout.java | 2 ++ sswlib/src/main/java/components/ifCVLoadout.java | 1 + sswlib/src/main/java/filehandlers/CVReader.java | 2 ++ 7 files changed, 20 insertions(+), 5 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 88cdcd83..564cd714 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -6001,6 +6001,7 @@ public void LoadVehicleIntoGUI() { chkUseTC.setSelected( CurVee.UsingTC() ); chkCASE.setSelected( CurVee.GetLoadout().HasCase() ); chkEnviroSealing.setSelected( CurVee.HasEnvironmentalSealing() ); + chkArmoredMotive.setSelected(CurVee.GetLoadout().HasArmoredMotiveSystem()); //chkCommandConsole.setSelected( CurVee.HasCommandConsole() ); RefreshSummary(); RefreshInfoPane(); diff --git a/sswlib/src/main/java/common/EquipmentFactory.java b/sswlib/src/main/java/common/EquipmentFactory.java index 7e2cf48b..0a713bff 100644 --- a/sswlib/src/main/java/common/EquipmentFactory.java +++ b/sswlib/src/main/java/common/EquipmentFactory.java @@ -131,6 +131,7 @@ public EquipmentFactory( ArrayList rweapons, ArrayList pweapons, ArrayList equip } if ( m instanceof CombatVehicle ) { Equipment.add( new Hitch() ); + Equipment.add( new ArmoredMotiveSystem(((CombatVehicle) m).GetLoadout())); } BuildMGArrays(); } @@ -144,6 +145,8 @@ public abPlaceable GetCopy( abPlaceable p, ifUnit m ) { retval = new DroneOperatingSystem( (Mech) m ); } else if (p instanceof LiftHoist) { retval = new LiftHoist(m); + } else if (p instanceof ArmoredMotiveSystem) { + retval = new ArmoredMotiveSystem(((CombatVehicle)m).GetLoadout()); } else if( p instanceof Equipment ) { retval = ((Equipment) p).Clone(); } else if( p instanceof ModularArmor ) { diff --git a/sswlib/src/main/java/components/ArmoredMotiveSystem.java b/sswlib/src/main/java/components/ArmoredMotiveSystem.java index a68ed48a..bdc3e1f3 100644 --- a/sswlib/src/main/java/components/ArmoredMotiveSystem.java +++ b/sswlib/src/main/java/components/ArmoredMotiveSystem.java @@ -1,8 +1,9 @@ package components; import common.CommonTools; +import common.EquipmentFactory; -public class ArmoredMotiveSystem extends abPlaceable { +public class ArmoredMotiveSystem extends Equipment { private ifCVLoadout Owner; private AvailableCode AC = new AvailableCode( AvailableCode.TECH_BOTH ); private boolean IsClan = false; @@ -104,4 +105,9 @@ public void SetClan(boolean b ) { public boolean CoreComponent() { return true; } + + @Override + public String GetEquipmentType() { + return "Armmored Motive System"; + } } diff --git a/sswlib/src/main/java/components/AvailableCode.java b/sswlib/src/main/java/components/AvailableCode.java index 3ade4852..9fa0653f 100644 --- a/sswlib/src/main/java/components/AvailableCode.java +++ b/sswlib/src/main/java/components/AvailableCode.java @@ -128,10 +128,10 @@ public void SetCodes( char istech, char isSL, char isSW, char isCI, char isDA, c IS_SW = isSW; IS_CI = isCI; IS_DA = isDA; - CL_TechRating = istech; - CL_SL = isSL; - CL_SW = isSW; - CL_CI = isCI; + CL_TechRating = cltech; + CL_SL = clSL; + CL_SW = clSW; + CL_CI = clCI; CL_DA = clDA; } diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index 836e67de..07e8b764 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -1155,6 +1155,8 @@ public boolean HasArmoredMotiveSystem() { return IsAllocated( AMotiveS ); } + public boolean IsArmoredMotiveSystemClan() { return AMotiveS.IsClan(); } + public void SetArmoredMotiveSystem(boolean b, boolean isClan) { if (!b) { Remove(AMotiveS); diff --git a/sswlib/src/main/java/components/ifCVLoadout.java b/sswlib/src/main/java/components/ifCVLoadout.java index 7becdef5..75187e68 100644 --- a/sswlib/src/main/java/components/ifCVLoadout.java +++ b/sswlib/src/main/java/components/ifCVLoadout.java @@ -163,6 +163,7 @@ public interface ifCVLoadout { public void ResetHeatSinks(); public int NumCVAmmoSpaces(); public boolean HasArmoredMotiveSystem(); + public boolean IsArmoredMotiveSystemClan(); public void SetArmoredMotiveSystem(boolean b, boolean isClan); public ArmoredMotiveSystem GetArmoredMotiveSystem(); /* diff --git a/sswlib/src/main/java/filehandlers/CVReader.java b/sswlib/src/main/java/filehandlers/CVReader.java index 8f6aedaa..38bf1d49 100644 --- a/sswlib/src/main/java/filehandlers/CVReader.java +++ b/sswlib/src/main/java/filehandlers/CVReader.java @@ -555,6 +555,8 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) m.GetLoadout().SetSupercharger( true ); } else if( eType.equals( "VTOL Jet Booster" ) ) { m.GetLoadout().SetVTOLBooster( true ); + } else if ( eType.equals("Armored Motive System")) { + m.GetLoadout().SetArmoredMotiveSystem(true, m.GetLoadout().IsArmoredMotiveSystemClan()); } } else { abPlaceable p = GetEquipmentByName( eName, eType, m ); From 7c440fefb633f322f97ff690d0b9c52aa273385e Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Thu, 2 Mar 2023 20:18:58 -0700 Subject: [PATCH 138/199] Clear up form --- saw/src/main/java/saw/gui/frmVeeWide.java | 1 + 1 file changed, 1 insertion(+) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 564cd714..a81af4f2 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -1940,6 +1940,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { chkArmoredMotive.setEnabled(false); chkArmoredMotive.addActionListener(this::chkArmoredMotiveActionPerformed); + chkCommandConsole.setText("Command Console"); chkCommandConsole.setEnabled(false); From 5dd6da9c0de6a561ff07f9809176b9cc83e57397 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Thu, 2 Mar 2023 20:21:15 -0700 Subject: [PATCH 139/199] Move it around --- saw/src/main/java/saw/gui/frmVeeWide.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index a81af4f2..cd27f2e1 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -1940,13 +1940,12 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { chkArmoredMotive.setEnabled(false); chkArmoredMotive.addActionListener(this::chkArmoredMotiveActionPerformed); - - chkCommandConsole.setText("Command Console"); - chkCommandConsole.setEnabled(false); - chkEscapePod.setText("Combat Vehicle Escape Pod"); chkEscapePod.setEnabled(false); + chkCommandConsole.setText("Command Console"); + chkCommandConsole.setEnabled(false); + chkMinesweeper.setText("Minesweeper"); chkMinesweeper.setEnabled(false); From 69bbe7c9d9ae8ea06625bde902f8601d52fcf3b5 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 4 Mar 2023 11:37:45 -0700 Subject: [PATCH 140/199] Adding Techbase to the output And the loading, and fixing armored motive system checkbox too --- saw/src/main/java/saw/gui/frmVeeWide.java | 20 ++++++- sswlib/src/main/java/common/CommonTools.java | 11 ++++ .../java/components/ArmoredMotiveSystem.java | 13 ++--- sswlib/src/main/java/components/CASE.java | 17 +++--- .../src/main/java/components/CVLoadout.java | 58 ++++--------------- .../src/main/java/components/Equipment.java | 25 +++++++- .../main/java/components/Supercharger.java | 10 +++- .../src/main/java/components/VTOLBooster.java | 7 ++- .../src/main/java/components/ifEquipment.java | 3 + .../src/main/java/filehandlers/CVReader.java | 19 +++--- .../src/main/java/filehandlers/CVWriter.java | 11 ++-- 11 files changed, 108 insertions(+), 86 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index b51731f5..0d8ed1a3 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -1128,6 +1128,7 @@ private void initComponents() { pnlAdditionalFluff = new javax.swing.JPanel(); JPanel pnlManufacturers = new JPanel(); JLabel lblManuInfo = new JLabel(); + txtLog = new javax.swing.JTextArea(); txtManufacturer = new javax.swing.JTextField(); txtEngineManufacturer = new javax.swing.JTextField(); txtArmorModel = new javax.swing.JTextField(); @@ -2250,6 +2251,12 @@ public void mouseClicked( MouseEvent e ) { tbpWeaponChooser.addTab("Artillery", EquipmentLocation(lstChooseArtillery, this::lstChooseArtilleryValueChanged, mlAddEquip, placeholder)); tbpWeaponChooser.addTab("Ammunition", EquipmentLocation(lstChooseAmmunition, this::lstChooseAmmunitionValueChanged, mlAddEquip, placeholder)); + //region Log Output + JPanel pnlLog = new JPanel(); + pnlLog.setLayout(new BoxLayout(pnlLog, BoxLayout.Y_AXIS)); + //pnlLog.add(txtLog); //Uncomment this when you want to see entries in the Log + //endregion + GroupLayout pnlEquipmentLayout = new GroupLayout(pnlEquipment); pnlEquipment.setLayout(pnlEquipmentLayout); pnlEquipmentLayout.setHorizontalGroup( @@ -2260,7 +2267,9 @@ public void mouseClicked( MouseEvent e ) { .addComponent(pnlControls, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(pnlSpecials, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)) .addComponent(pnlSelected, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE) - .addComponent(pnlEquipInfo, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)) + .addGroup(pnlEquipmentLayout.createParallelGroup(GroupLayout.Alignment.LEADING, true) + .addComponent(pnlEquipInfo, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(pnlLog, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE))) ); pnlEquipmentLayout.setVerticalGroup( pnlEquipmentLayout.createParallelGroup(GroupLayout.Alignment.LEADING) @@ -2273,7 +2282,8 @@ public void mouseClicked( MouseEvent e ) { .addComponent(pnlSpecials, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) .addGroup(pnlEquipmentLayout.createSequentialGroup() - .addComponent(pnlEquipInfo, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)) + .addComponent(pnlEquipInfo, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(pnlLog, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE)) ); tbpMainTabPane.addTab("Equipment", pnlEquipment); @@ -3969,6 +3979,10 @@ private void RefreshEquipment() { } } + private void Log(String message) { + txtLog.append(message + "\n"); + } + private void setCheckbox(JCheckBox element, Boolean isEnabled, Boolean isSelected) { element.setEnabled(isEnabled); element.setSelected(false); @@ -4576,7 +4590,6 @@ public void LoadVehicleIntoGUI() { chkUseTC.setSelected( CurVee.UsingTC() ); chkCASE.setSelected( CurVee.GetLoadout().HasCase() ); chkEnviroSealing.setSelected( CurVee.HasEnvironmentalSealing() ); - chkArmoredMotive.setSelected(CurVee.GetLoadout().HasArmoredMotiveSystem()); //chkCommandConsole.setSelected( CurVee.HasCommandConsole() ); RefreshSummary(); RefreshInfoPane(); @@ -7483,6 +7496,7 @@ private void FixJJSpinnerModel() { private javax.swing.JTextField txtInfoFreeTons; private javax.swing.JTextField txtInfoTonnage; private javax.swing.JTextField txtJJModel; + private javax.swing.JTextArea txtLog; private javax.swing.JTextField txtManufacturer; private javax.swing.JTextField txtManufacturerLocation; private javax.swing.JTextField txtModel; diff --git a/sswlib/src/main/java/common/CommonTools.java b/sswlib/src/main/java/common/CommonTools.java index 7cbeb69b..f7d63129 100644 --- a/sswlib/src/main/java/common/CommonTools.java +++ b/sswlib/src/main/java/common/CommonTools.java @@ -135,6 +135,17 @@ public static String GetTechbaseString( int tech ) { } } + public static int GetTechbaseValue( String tech ) { + switch( tech ) { + case "Clan": + return AvailableCode.TECH_CLAN; + case "Mixed": + return AvailableCode.TECH_BOTH; + default: + return AvailableCode.TECH_INNER_SPHERE; + } + } + public static String GetAggregateReportBV( abPlaceable p ) { // since an item may have both offensive and defensive BV, this gives us // an aggregate battle value string for reporting diff --git a/sswlib/src/main/java/components/ArmoredMotiveSystem.java b/sswlib/src/main/java/components/ArmoredMotiveSystem.java index b07d14f5..48679266 100644 --- a/sswlib/src/main/java/components/ArmoredMotiveSystem.java +++ b/sswlib/src/main/java/components/ArmoredMotiveSystem.java @@ -6,7 +6,6 @@ public class ArmoredMotiveSystem extends Equipment { private ifCVLoadout Owner; private AvailableCode AC = new AvailableCode( AvailableCode.TECH_BOTH ); - private boolean IsClan = false; public ArmoredMotiveSystem(ifCVLoadout l) { AC.SetISCodes('E', 'X', 'X', 'F', 'E'); AC.SetISDates( 3069, 3071, true, 0, 0, 0, false, false ); @@ -42,7 +41,7 @@ public String ChatName() { @Override public String MegaMekName(boolean UseRear) { - return (IsClan ? "CL" : "IS") + "ArmoredMotiveSystem"; + return (IsClan() ? "CL" : "IS") + "ArmoredMotiveSystem"; } @Override @@ -62,7 +61,7 @@ public int NumCVSpaces() { @Override public double GetTonnage() { - return CommonTools.RoundHalfUp(Owner.GetOwner().GetTonnage() * (IsClan ? .1 : .15)); + return CommonTools.RoundHalfUp(Owner.GetOwner().GetTonnage() * (IsClan() ? .1 : .15)); } @Override @@ -95,11 +94,9 @@ public AvailableCode GetAvailability() { return AC; } - public void SetClan(boolean b ) { - IsClan = b; - } + public void SetClan(boolean b ) { super.SetCurrentTech(AvailableCode.TECH_CLAN); } - public boolean IsClan() { return IsClan; } + public boolean IsClan() { return (super.GetCurrentTech() == AvailableCode.TECH_CLAN); } @Override public boolean CoreComponent() { @@ -108,6 +105,6 @@ public boolean CoreComponent() { @Override public String GetEquipmentType() { - return "Armmored Motive System"; + return "Armored Motive System"; } } diff --git a/sswlib/src/main/java/components/CASE.java b/sswlib/src/main/java/components/CASE.java index ba459103..6c1f57cf 100644 --- a/sswlib/src/main/java/components/CASE.java +++ b/sswlib/src/main/java/components/CASE.java @@ -28,10 +28,9 @@ package components; -public class CASE extends abPlaceable { +public class CASE extends Equipment { // A simple class for Inner Sphere CASE. private AvailableCode AC = new AvailableCode( AvailableCode.TECH_INNER_SPHERE ); - private boolean IsClan = false; public CASE() { AC.SetISCodes( 'E', 'C', 'F', 'D', 'C' ); @@ -86,12 +85,12 @@ public int NumCrits() { @Override public int NumCVSpaces() { - if ( IsClan ) return 0; + if ( IsClan() ) return 0; return 1; } public double GetTonnage() { - if ( IsClan ) return 0; + if ( IsClan() ) return 0; return 0.5; } @@ -136,9 +135,13 @@ public String toString() { return "CASE"; } - public void SetClan(boolean b ) { - IsClan = b; + public void SetClan(boolean b ) { super.SetCurrentTech(AvailableCode.TECH_CLAN); } + + public boolean IsClan() { return (super.GetCurrentTech() == AvailableCode.TECH_CLAN); } + + @Override + public String GetEquipmentType() { + return "CASE"; } - public boolean IsClan() { return IsClan; } } diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index beec89a6..f23c23ef 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -741,48 +741,16 @@ public void AutoAllocate(EquipmentCollection e) { public boolean IsAllocated(abPlaceable p) { // checks to see if the specified item is allocated in the loadout - if( FrontItems.contains(p)) { - // found it. - return true; - } - if( LeftItems.contains(p) ) { - // found it. - return true; - } - if( RightItems.contains(p) ) { - // found it. - return true; - } - if( BodyItems.contains(p) ) { - // found it. - return true; - } - if( RearItems.contains(p) ) { - // found it. - return true; - } - if( Turret1Items.contains(p) ) { - // found it. - return true; - } - if( Turret2Items.contains(p) ) { - // found it. - return true; - } - if( SponsonTurretLeftItems.contains(p) ) { - // found it. - return true; - } - if( SponsonTurretRightItems.contains(p) ) { - // found it. - return true; - } - if( RotorItems.contains(p) ) { - // found it. - return true; - } - - // couldn't find it + if( FrontItems.contains(p)) { return true; } + if( LeftItems.contains(p) ) { return true; } + if( RightItems.contains(p) ) { return true; } + if( BodyItems.contains(p) ) { return true; } + if( RearItems.contains(p) ) { return true; } + if( Turret1Items.contains(p) ) { return true; } + if( Turret2Items.contains(p) ) { return true; } + if( SponsonTurretLeftItems.contains(p) ) { return true; } + if( SponsonTurretRightItems.contains(p) ) { return true; } + if( RotorItems.contains(p) ) { return true; } return false; } @@ -1151,9 +1119,7 @@ public VTOLBooster GetVTOLBooster() { return VBooster; } - public boolean HasArmoredMotiveSystem() { - return IsAllocated( AMotiveS ); - } + public boolean HasArmoredMotiveSystem() { return IsAllocated( AMotiveS ); } public boolean IsArmoredMotiveSystemClan() { return AMotiveS.IsClan(); } @@ -1164,8 +1130,8 @@ public void SetArmoredMotiveSystem(boolean b, boolean isClan) { } try { - AddToBody(AMotiveS); AMotiveS.SetClan(isClan); + AddToBody(AMotiveS); } catch (Exception ex) { System.err.println(ex.getMessage()); } diff --git a/sswlib/src/main/java/components/Equipment.java b/sswlib/src/main/java/components/Equipment.java index 7642f3a9..2a862c25 100644 --- a/sswlib/src/main/java/components/Equipment.java +++ b/sswlib/src/main/java/components/Equipment.java @@ -29,7 +29,6 @@ package components; import com.google.gson.annotations.SerializedName; - import java.util.ArrayList; public class Equipment extends abPlaceable implements ifEquipment { @@ -51,7 +50,8 @@ public class Equipment extends abPlaceable implements ifEquipment { LngRange = 0, Heat = 0, MaxAllowed = 0, - MaxAllowedPerLocation = 0; + MaxAllowedPerLocation = 0, + CurrentTechBase = AvailableCode.TECH_INNER_SPHERE; private double Tonnage = 0.0, Cost = 0.0, OffBV = 0.0, @@ -104,6 +104,8 @@ public Equipment( Equipment e ) { LookupName = e.LookupName; Type = e.Type; AC = e.AC.Clone(); + CurrentTechBase = AC.GetTechBase(); + if (CurrentTechBase == AvailableCode.TECH_BOTH) { CurrentTechBase = AvailableCode.TECH_INNER_SPHERE; } MegaMekName = e.MegaMekName; Crits = e.Crits; CVSpace = e.CVSpace; @@ -584,8 +586,27 @@ public AvailableCode GetAvailability() { public String GetEquipmentType() { return "equipment"; } + + @Override + public void SetCurrentTech(int techbase) { CurrentTechBase = techbase; } + + @Override + public int GetCurrentTech() { return CurrentTechBase; } + @Override public String toString() { return CritName(); } + + @Override + public boolean equals(Object obj) { + if (!(obj instanceof Equipment)) + return false; + + if (((Equipment) obj).ActualName() == ActualName()) { + return true; + } + + return false; + } } diff --git a/sswlib/src/main/java/components/Supercharger.java b/sswlib/src/main/java/components/Supercharger.java index 44245dba..d8f14c74 100644 --- a/sswlib/src/main/java/components/Supercharger.java +++ b/sswlib/src/main/java/components/Supercharger.java @@ -28,7 +28,7 @@ package components; -public class Supercharger extends abPlaceable { +public class Supercharger extends Equipment { private ifLoadout Owner; private AvailableCode AC = new AvailableCode( AvailableCode.TECH_BOTH ); @@ -145,6 +145,14 @@ public boolean CoreComponent() { return true; } + public void SetClan(boolean b ) { super.SetCurrentTech(AvailableCode.TECH_CLAN); } + + public boolean IsClan() { return (super.GetCurrentTech() == AvailableCode.TECH_CLAN); } + @Override + public String GetEquipmentType() { + return "Supercharger"; + } + @Override public AvailableCode GetAvailability() { AvailableCode retval = AC.Clone(); diff --git a/sswlib/src/main/java/components/VTOLBooster.java b/sswlib/src/main/java/components/VTOLBooster.java index 5a5b5ef7..741c9d37 100644 --- a/sswlib/src/main/java/components/VTOLBooster.java +++ b/sswlib/src/main/java/components/VTOLBooster.java @@ -28,7 +28,7 @@ package components; -public class VTOLBooster extends abPlaceable { +public class VTOLBooster extends Equipment { private ifLoadout Owner; private AvailableCode AC = new AvailableCode( AvailableCode.TECH_BOTH ); @@ -162,4 +162,9 @@ public AvailableCode GetAvailability() { public boolean CanAllocCVSide() { return false; } @Override public boolean CanAllocCVTurret() { return false; } + + @Override + public String GetEquipmentType() { + return "VTOL Jet Booster"; + } } diff --git a/sswlib/src/main/java/components/ifEquipment.java b/sswlib/src/main/java/components/ifEquipment.java index 2a733cac..1f989321 100644 --- a/sswlib/src/main/java/components/ifEquipment.java +++ b/sswlib/src/main/java/components/ifEquipment.java @@ -43,4 +43,7 @@ public interface ifEquipment { public boolean CanAllocCVBody(); public String GetEquipmentType(); + + public void SetCurrentTech(int techbase); + public int GetCurrentTech(); } diff --git a/sswlib/src/main/java/filehandlers/CVReader.java b/sswlib/src/main/java/filehandlers/CVReader.java index 38bf1d49..576d5305 100644 --- a/sswlib/src/main/java/filehandlers/CVReader.java +++ b/sswlib/src/main/java/filehandlers/CVReader.java @@ -502,6 +502,7 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) String eMan = ""; String eType = ""; String eName = ""; + String techbase = CommonTools.GetTechbaseString(m.GetTechbase()); int VGLArc = 0; int VGLAmmo = 0; double vtons = 0.0; @@ -514,6 +515,8 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) eName = nl.item( j ).getTextContent(); } else if( nl.item( j ).getNodeName().equals( "type" ) ) { eType = nl.item( j ).getTextContent(); + } else if( nl.item( j ).getNodeName().equals( "techbase" ) ) { + techbase = nl.item( j ).getTextContent(); } else if( nl.item( j ).getNodeName().equals( "location" ) ) { l = DecodeLocation( nl.item( j ) ); if (l.Location == LocationIndex.CV_LOC_SPONSON_LEFT|| l.Location == LocationIndex.CV_LOC_SPONSON_RIGHT) { @@ -536,17 +539,9 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) || eType.equals( "VTOL Jet Booster")) { if( eType.equals( "TargetingComputer") ) { if( SaveFileVersion == 0 ) { - if( m.GetTechbase() == AvailableCode.TECH_CLAN ) { - m.UseTC( true, true ); - } else { - m.UseTC( true, false ); - } + m.UseTC( true, ( m.GetTechbase() == AvailableCode.TECH_CLAN ) ); } else { - if( eName.contains( "(CL)" ) ) { - m.UseTC( true, true ); - } else { - m.UseTC( true, false ); - } + m.UseTC( true, eName.contains( "(CL)" ) ); } ltc = l; } else if( eType.equals( "CASE" ) ) { @@ -556,7 +551,8 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) } else if( eType.equals( "VTOL Jet Booster" ) ) { m.GetLoadout().SetVTOLBooster( true ); } else if ( eType.equals("Armored Motive System")) { - m.GetLoadout().SetArmoredMotiveSystem(true, m.GetLoadout().IsArmoredMotiveSystemClan()); + m.GetLoadout().SetArmoredMotiveSystem(true, techbase == CommonTools.GetTechbaseString(AvailableCode.TECH_CLAN) + || (m.GetTechBase() == AvailableCode.TECH_CLAN)); } } else { abPlaceable p = GetEquipmentByName( eName, eType, m ); @@ -569,6 +565,7 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) ((Equipment) p).SetMaxTons(m.GetTonnage()); ((Equipment) p).SetTonnage( vtons ); } + ((Equipment) p).SetCurrentTech(CommonTools.GetTechbaseValue(techbase)); } if( ( p instanceof Ammunition ) && lotsize > 0 ) { ((Ammunition) p).SetLotSize( lotsize ); diff --git a/sswlib/src/main/java/filehandlers/CVWriter.java b/sswlib/src/main/java/filehandlers/CVWriter.java index 853765c3..0349b490 100644 --- a/sswlib/src/main/java/filehandlers/CVWriter.java +++ b/sswlib/src/main/java/filehandlers/CVWriter.java @@ -431,6 +431,9 @@ private String GetEquipmentLines( String prefix ) { retval += prefix + tab + "<name manufacturer=\"" + FileCommon.EncodeFluff( p.GetManufacturer() ) + "\">" + FileCommon.EncodeFluff( p.LookupName() ) + "</name>" + NL; retval += prefix + tab + "<type>" + GetEquipmentType( p ) + "</type>" + NL; retval += prefix + tab + "<location>" + FileCommon.EncodeLocation(CurUnit.GetLoadout().Find(p), false, CurUnit) + "</location>" + NL; + if (CurUnit.GetTechbase() != ((Equipment)p).GetCurrentTech()) { + retval += prefix + tab + "<techbase>" + CommonTools.GetTechbaseString(((Equipment)p).GetCurrentTech()) + "</techbase>" + NL; + } if( p instanceof VehicularGrenadeLauncher ) { retval += prefix + tab + "<vglarc>" + ((VehicularGrenadeLauncher) p).GetCurrentArc() + "</vglarc>" + NL; retval += prefix + tab + "<vglammo>" + ((VehicularGrenadeLauncher) p).GetAmmoType() + "</vglammo>" + NL; @@ -491,17 +494,11 @@ private String GetEquipmentType( abPlaceable p ) { } else if( p instanceof PhysicalWeapon ) { return "physical"; } else if( p instanceof Equipment ) { - return "equipment"; + return ((Equipment)p).GetEquipmentType(); } else if( p instanceof Ammunition ) { return "ammunition"; } else if( p instanceof TargetingComputer ) { return "TargetingComputer"; - } else if ( p instanceof CASE ) { - return "CASE"; - } else if ( p instanceof Supercharger ) { - return "Supercharger"; - } else if ( p instanceof VTOLBooster ) { - return "VTOL Jet Booster"; } else { return "miscellaneous"; } From e87f6cc6d4579817c339c0d08ba8238c662ba8f5 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 4 Mar 2023 13:06:19 -0700 Subject: [PATCH 141/199] Add Max C/F --- saw/src/main/java/saw/gui/frmVeeWide.java | 63 +++++++++++------------ 1 file changed, 29 insertions(+), 34 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index fe0a3be6..f51651ef 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -763,6 +763,12 @@ public void RefreshInfoPane() { txtInfoFreeCrits.setForeground(Color.black); } + // fill in the movement summary + String temp = "Max C/F: "; + temp += CurVee.GetAdjustedCruiseMP( false, true ) + "/"; + temp += CurVee.GetAdjustedFlankMP( false, true ); + lblMoveSummary.setText( temp ); + // fill in the info if( CurVee.UsingFractionalAccounting() ) { txtInfoTonnage.setText( "Tons: " + CommonTools.RoundFractionalTons( CurVee.GetCurrentTons() ) ); @@ -967,6 +973,7 @@ private void initComponents() { lblFlankMP = new javax.swing.JLabel("2"); JLabel jLabel13 = new JLabel("Jump MP:"); spnJumpMP = new javax.swing.JSpinner(); + lblMoveSummary = new javax.swing.JLabel("Max C/F: 12/20"); JPanel pnlChassisMods = new JPanel(); chkFlotationHull = new javax.swing.JCheckBox("Flotation Hull"); chkLimitedAmph = new javax.swing.JCheckBox("Limited Amphibious"); @@ -1604,9 +1611,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { //region Basic Setup Tab / Movement Panel pnlMovement.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Movement")); - spnCruiseMP.setModel(new javax.swing.SpinnerNumberModel(1, 1, null, 1)); - spnCruiseMP.setMinimumSize(new Dimension(45, 20)); spnCruiseMP.setPreferredSize(new Dimension(45, 20)); spnCruiseMP.addChangeListener(this::spnCruiseMPStateChanged); spnCruiseMP.addInputMethodListener(new java.awt.event.InputMethodListener() { @@ -1618,52 +1623,48 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { }); spnJumpMP.setEnabled(false); - spnJumpMP.setMinimumSize(new Dimension(45, 20)); spnJumpMP.setPreferredSize(new Dimension(45, 20)); + lblMoveSummary.setHorizontalAlignment(SwingConstants.RIGHT); + GroupLayout pnlMovementLayout = new GroupLayout(pnlMovement); pnlMovement.setLayout(pnlMovementLayout); pnlMovementLayout.setHorizontalGroup( pnlMovementLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlMovementLayout.createSequentialGroup() - .addGap(29, 29, 29) + .addGap(29) .addGroup(pnlMovementLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlMovementLayout.createSequentialGroup() .addComponent(jLabel10) - .addGap(2, 2, 2) + .addGap(5) .addComponent(spnCruiseMP, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGroup(pnlMovementLayout.createSequentialGroup() - .addGap(5, 5, 5) - .addGroup(pnlMovementLayout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(pnlMovementLayout.createSequentialGroup() - .addComponent(jLabel11) - .addGap(18, 18, 18) - .addComponent(lblFlankMP)) - .addGroup(pnlMovementLayout.createSequentialGroup() - .addComponent(jLabel13) - .addGap(2, 2, 2) - .addComponent(spnJumpMP, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))))) - .addContainerGap(129, Short.MAX_VALUE)) + .addComponent(jLabel11) + .addGap(18) + .addComponent(lblFlankMP) + .addGap(20) + .addComponent(lblMoveSummary)) + .addGroup(pnlMovementLayout.createSequentialGroup() + .addComponent(jLabel13) + .addGap(10) + .addComponent(spnJumpMP, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))) ); pnlMovementLayout.setVerticalGroup( pnlMovementLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlMovementLayout.createSequentialGroup() .addGroup(pnlMovementLayout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(pnlMovementLayout.createSequentialGroup() - .addGap(3, 3, 3) - .addComponent(jLabel10)) + .addComponent(jLabel10) .addComponent(spnCruiseMP, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addGap(2, 2, 2) + .addGap(5) .addGroup(pnlMovementLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(jLabel11) - .addComponent(lblFlankMP)) - .addGap(2, 2, 2) + .addComponent(lblFlankMP) + .addComponent(lblMoveSummary)) + .addGap(8) .addGroup(pnlMovementLayout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(pnlMovementLayout.createSequentialGroup() - .addGap(3, 3, 3) - .addComponent(jLabel13)) + .addComponent(jLabel13) .addComponent(spnJumpMP, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGap(5)) ); //endregion @@ -2687,14 +2688,7 @@ private JPanel DataEntry(String label, JTextField input, MouseListener listener) return entry; } - private GridBagConstraints placeItem(int x, int y, int top, int left, int bottom, int right) { - GridBagConstraints gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = x; - gridBagConstraints.gridy = y; - gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; - gridBagConstraints.insets = new java.awt.Insets(top, left, bottom, right); - return gridBagConstraints; - } + private void RefreshSummary() { // refreshes the display completely using info from the mech. txtSumEngTons.setText( "" + CurVee.GetEngineTonnage() ); @@ -7368,6 +7362,7 @@ private void FixJJSpinnerModel() { private javax.swing.JLabel lblEraYears; private javax.swing.JLabel lblFinalEngineRating; private javax.swing.JLabel lblFlankMP; + private javax.swing.JLabel lblMoveSummary; private javax.swing.JLabel lblFluffImage; private javax.swing.JLabel lblFreeHeatSinks; private javax.swing.JLabel lblFrontIntPts; From fcd04b601ef62c325ffc95532bda0e86832bb5e0 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 4 Mar 2023 13:11:00 -0700 Subject: [PATCH 142/199] Move Tech check to Equipment area So that we do not have errors --- sswlib/src/main/java/filehandlers/CVWriter.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sswlib/src/main/java/filehandlers/CVWriter.java b/sswlib/src/main/java/filehandlers/CVWriter.java index 0349b490..355c5b81 100644 --- a/sswlib/src/main/java/filehandlers/CVWriter.java +++ b/sswlib/src/main/java/filehandlers/CVWriter.java @@ -431,14 +431,14 @@ private String GetEquipmentLines( String prefix ) { retval += prefix + tab + "<name manufacturer=\"" + FileCommon.EncodeFluff( p.GetManufacturer() ) + "\">" + FileCommon.EncodeFluff( p.LookupName() ) + "</name>" + NL; retval += prefix + tab + "<type>" + GetEquipmentType( p ) + "</type>" + NL; retval += prefix + tab + "<location>" + FileCommon.EncodeLocation(CurUnit.GetLoadout().Find(p), false, CurUnit) + "</location>" + NL; - if (CurUnit.GetTechbase() != ((Equipment)p).GetCurrentTech()) { - retval += prefix + tab + "<techbase>" + CommonTools.GetTechbaseString(((Equipment)p).GetCurrentTech()) + "</techbase>" + NL; - } if( p instanceof VehicularGrenadeLauncher ) { retval += prefix + tab + "<vglarc>" + ((VehicularGrenadeLauncher) p).GetCurrentArc() + "</vglarc>" + NL; retval += prefix + tab + "<vglammo>" + ((VehicularGrenadeLauncher) p).GetAmmoType() + "</vglammo>" + NL; } if( p instanceof Equipment ) { + if (CurUnit.GetTechbase() != ((Equipment)p).GetCurrentTech()) { + retval += prefix + tab + "<techbase>" + CommonTools.GetTechbaseString(((Equipment)p).GetCurrentTech()) + "</techbase>" + NL; + } if( ((Equipment) p).IsVariableSize() ) { retval += prefix + tab + "<tons>" + ((Equipment)p).GetTonnage(false) + "</tons>" + NL; } From acbb47933ddc761751026b699101c860a72c3e84 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 4 Mar 2023 14:16:48 -0700 Subject: [PATCH 143/199] Cleanup Clan Setting + Checkboxes --- saw/src/main/java/saw/gui/frmVeeWide.java | 21 +-- .../java/components/ArmoredMotiveSystem.java | 2 +- sswlib/src/main/java/components/CASE.java | 4 +- .../src/main/java/components/CVLoadout.java | 125 +++++++----------- .../main/java/components/Supercharger.java | 2 +- .../src/main/java/components/VTOLBooster.java | 5 +- 6 files changed, 61 insertions(+), 98 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 0d8ed1a3..195b20b7 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -3929,26 +3929,27 @@ private void RefreshEquipment() { // refreshes the equipment selectors //fix the CASE control CASE Case = new CASE(); - setCheckbox(chkCASE, ( CommonTools.IsAllowed( Case.GetAvailability(), CurVee) || CurVee.GetTechBase() == AvailableCode.TECH_CLAN ), CurVee.GetLoadout().HasCase()); + setCheckbox(chkCASE, ( CommonTools.IsAllowed( Case.GetAvailability(), CurVee) || CurVee.GetTechBase() == AvailableCode.TECH_CLAN ), CurVee.GetLoadout().HasCase(), CurVee.isOmni()); // fix Artemis IV controls ifMissileGuidance ArtCheck = new ArtemisIVFCS( null ); - setCheckbox(chkFCSAIV, ( CommonTools.IsAllowed( ArtCheck.GetAvailability(), CurVee ) ), CurVee.UsingArtemisIV()); + setCheckbox(chkFCSAIV, ( CommonTools.IsAllowed( ArtCheck.GetAvailability(), CurVee ) ), CurVee.UsingArtemisIV(), CurVee.isOmni()); // fix Artemis V controls ArtCheck = new ArtemisVFCS( null ); - setCheckbox(chkFCSAV, ( CommonTools.IsAllowed( ArtCheck.GetAvailability(), CurVee ) ), CurVee.UsingArtemisV()); + setCheckbox(chkFCSAV, ( CommonTools.IsAllowed( ArtCheck.GetAvailability(), CurVee ) ), CurVee.UsingArtemisV(), CurVee.isOmni()); // fix ApolloFCS controls ArtCheck = new ApolloFCS( null ); - setCheckbox(chkFCSApollo, ( CommonTools.IsAllowed( ArtCheck.GetAvailability(), CurVee ) ), CurVee.UsingApollo()); + setCheckbox(chkFCSApollo, ( CommonTools.IsAllowed( ArtCheck.GetAvailability(), CurVee ) ), CurVee.UsingApollo(), CurVee.isOmni()); // fix the targeting computer display - setCheckbox(chkUseTC, ( CommonTools.IsAllowed( CurVee.GetTC().GetAvailability(), CurVee ) ), CurVee.UsingTC()); + setCheckbox(chkUseTC, ( CommonTools.IsAllowed( CurVee.GetTC().GetAvailability(), CurVee ) ), CurVee.UsingTC(), CurVee.isOmni()); + + setCheckbox(chkSupercharger, ( CommonTools.IsAllowed( CurVee.GetLoadout().GetSupercharger().GetAvailability(), CurVee ) && !CurVee.IsVTOL() ), CurVee.GetLoadout().HasSupercharger(), CurVee.isOmni()); + setCheckbox(chkJetBooster, ( CommonTools.IsAllowed( CurVee.GetLoadout().GetVTOLBooster().GetAvailability(), CurVee ) && CurVee.IsVTOL() && !CurVee.IsOmni() ), CurVee.GetLoadout().HasVTOLBooster(), CurVee.isOmni()); + setCheckbox(chkArmoredMotive, ( CommonTools.IsAllowed( CurVee.GetLoadout().GetArmoredMotiveSystem().GetAvailability(), CurVee ) && !CurVee.IsVTOL() ), CurVee.GetLoadout().HasArmoredMotiveSystem(), CurVee.isOmni()); - setCheckbox(chkSupercharger, ( CommonTools.IsAllowed( CurVee.GetLoadout().GetSupercharger().GetAvailability(), CurVee ) && !CurVee.IsVTOL() ), CurVee.GetLoadout().HasSupercharger()); - setCheckbox(chkJetBooster, ( CommonTools.IsAllowed( CurVee.GetLoadout().GetVTOLBooster().GetAvailability(), CurVee ) && CurVee.IsVTOL() && !CurVee.IsOmni() ), CurVee.GetLoadout().HasVTOLBooster()); - setCheckbox(chkArmoredMotive, ( CommonTools.IsAllowed( CurVee.GetLoadout().GetArmoredMotiveSystem().GetAvailability(), CurVee ) && !CurVee.IsVTOL() ), CurVee.GetLoadout().HasArmoredMotiveSystem()); if( ! chkUseTC.isEnabled() ) { CurVee.UseTC( false, false ); } if( CurVee.GetRulesLevel() >= AvailableCode.RULES_EXPERIMENTAL ) { @@ -3983,10 +3984,10 @@ private void Log(String message) { txtLog.append(message + "\n"); } - private void setCheckbox(JCheckBox element, Boolean isEnabled, Boolean isSelected) { + private void setCheckbox(JCheckBox element, Boolean isEnabled, Boolean isSelected, Boolean allowSelection) { element.setEnabled(isEnabled); element.setSelected(false); - if (isEnabled) { + if (isEnabled || allowSelection) { element.setSelected(isSelected); } } diff --git a/sswlib/src/main/java/components/ArmoredMotiveSystem.java b/sswlib/src/main/java/components/ArmoredMotiveSystem.java index 48679266..dd176f29 100644 --- a/sswlib/src/main/java/components/ArmoredMotiveSystem.java +++ b/sswlib/src/main/java/components/ArmoredMotiveSystem.java @@ -94,7 +94,7 @@ public AvailableCode GetAvailability() { return AC; } - public void SetClan(boolean b ) { super.SetCurrentTech(AvailableCode.TECH_CLAN); } + public void SetClan(boolean b ) { super.SetCurrentTech(b ? AvailableCode.TECH_CLAN : AvailableCode.TECH_INNER_SPHERE); } public boolean IsClan() { return (super.GetCurrentTech() == AvailableCode.TECH_CLAN); } diff --git a/sswlib/src/main/java/components/CASE.java b/sswlib/src/main/java/components/CASE.java index 6c1f57cf..c297fc71 100644 --- a/sswlib/src/main/java/components/CASE.java +++ b/sswlib/src/main/java/components/CASE.java @@ -134,8 +134,8 @@ public AvailableCode GetAvailability() { public String toString() { return "CASE"; } - - public void SetClan(boolean b ) { super.SetCurrentTech(AvailableCode.TECH_CLAN); } + + public void SetClan(boolean b ) { super.SetCurrentTech(b ? AvailableCode.TECH_CLAN : AvailableCode.TECH_INNER_SPHERE); } public boolean IsClan() { return (super.GetCurrentTech() == AvailableCode.TECH_CLAN); } diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index f23c23ef..dfa7ed25 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -406,8 +406,7 @@ public void AddTo(abPlaceable p, int Loc) throws Exception { RefreshHeatSinks(); } - private boolean HasHitch(ArrayList<abPlaceable> items) - { + private boolean HasHitch(ArrayList<abPlaceable> items) { for( int i = 0; i < items.size(); ++i ) { abPlaceable currentItem = (abPlaceable) items.get( i ); if (currentItem instanceof Hitch) @@ -415,6 +414,7 @@ private boolean HasHitch(ArrayList<abPlaceable> items) } return false; } + public void RefreshHeatSinks() { if (GetHeatSinks().GetNumHS() != GetTotalHeat()) GetHeatSinks().SetNumHS(GetTotalHeat()); @@ -561,60 +561,42 @@ public ArrayList<abPlaceable> GetSponsonTurretRightItems() { public abPlaceable[] GetItems(int Loc) { switch(Loc) { - case LocationIndex.CV_LOC_BODY: - return BodyItems.toArray(new abPlaceable[BodyItems.size()]); - case LocationIndex.CV_LOC_FRONT: - return FrontItems.toArray(new abPlaceable[FrontItems.size()]); - case LocationIndex.CV_LOC_LEFT: - return LeftItems.toArray(new abPlaceable[LeftItems.size()]); - case LocationIndex.CV_LOC_REAR: - return RearItems.toArray(new abPlaceable[RearItems.size()]); - case LocationIndex.CV_LOC_RIGHT: - return RightItems.toArray(new abPlaceable[RightItems.size()]); - case LocationIndex.CV_LOC_TURRET1: - return Turret1Items.toArray(new abPlaceable[Turret1Items.size()]); - case LocationIndex.CV_LOC_TURRET2: - return Turret2Items.toArray(new abPlaceable[Turret2Items.size()]); - case LocationIndex.CV_LOC_SPONSON_LEFT: - return SponsonTurretLeftItems.toArray(new abPlaceable[SponsonTurretLeftItems.size()]); - case LocationIndex.CV_LOC_SPONSON_RIGHT: - return SponsonTurretRightItems.toArray(new abPlaceable[SponsonTurretRightItems.size()]); + case LocationIndex.CV_LOC_BODY: return BodyItems.toArray(new abPlaceable[BodyItems.size()]); + case LocationIndex.CV_LOC_FRONT: return FrontItems.toArray(new abPlaceable[FrontItems.size()]); + case LocationIndex.CV_LOC_LEFT: return LeftItems.toArray(new abPlaceable[LeftItems.size()]); + case LocationIndex.CV_LOC_REAR: return RearItems.toArray(new abPlaceable[RearItems.size()]); + case LocationIndex.CV_LOC_RIGHT: return RightItems.toArray(new abPlaceable[RightItems.size()]); + case LocationIndex.CV_LOC_TURRET1: return Turret1Items.toArray(new abPlaceable[Turret1Items.size()]); + case LocationIndex.CV_LOC_TURRET2: return Turret2Items.toArray(new abPlaceable[Turret2Items.size()]); + case LocationIndex.CV_LOC_SPONSON_LEFT: return SponsonTurretLeftItems.toArray(new abPlaceable[SponsonTurretLeftItems.size()]); + case LocationIndex.CV_LOC_SPONSON_RIGHT: return SponsonTurretRightItems.toArray(new abPlaceable[SponsonTurretRightItems.size()]); } return null; } public int Find(abPlaceable p) { - if ( FrontItems.contains(p) ) - return LocationIndex.CV_LOC_FRONT; - if ( LeftItems.contains(p) ) - return LocationIndex.CV_LOC_LEFT; - if ( RightItems.contains(p) ) - return LocationIndex.CV_LOC_RIGHT; - if ( RearItems.contains(p) ) - return LocationIndex.CV_LOC_REAR; - if ( Turret1Items.contains(p) ) - return LocationIndex.CV_LOC_TURRET1; - if ( Turret2Items.contains(p) ) - return LocationIndex.CV_LOC_TURRET2; - if ( SponsonTurretLeftItems.contains(p) ) - return LocationIndex.CV_LOC_SPONSON_LEFT; - if ( SponsonTurretRightItems.contains(p) ) - return LocationIndex.CV_LOC_SPONSON_RIGHT; - if ( BodyItems.contains(p) ) - return LocationIndex.CV_LOC_BODY; + if ( FrontItems.contains(p) ) return LocationIndex.CV_LOC_FRONT; + if ( LeftItems.contains(p) ) return LocationIndex.CV_LOC_LEFT; + if ( RightItems.contains(p) ) return LocationIndex.CV_LOC_RIGHT; + if ( BodyItems.contains(p) ) return LocationIndex.CV_LOC_BODY; + if ( RearItems.contains(p) ) return LocationIndex.CV_LOC_REAR; + if ( Turret1Items.contains(p) ) return LocationIndex.CV_LOC_TURRET1; + if ( Turret2Items.contains(p) ) return LocationIndex.CV_LOC_TURRET2; + if ( SponsonTurretLeftItems.contains(p) ) return LocationIndex.CV_LOC_SPONSON_LEFT; + if ( SponsonTurretRightItems.contains(p) ) return LocationIndex.CV_LOC_SPONSON_RIGHT; return 11; } public LocationIndex FindIndex(abPlaceable p) { - if ( FrontItems.contains(p)) return new LocationIndex(0, LocationIndex.CV_LOC_FRONT, p.NumCVSpaces()); - if ( LeftItems.contains(p)) return new LocationIndex(0, LocationIndex.CV_LOC_LEFT, p.NumCVSpaces()); - if ( RightItems.contains(p)) return new LocationIndex(0, LocationIndex.CV_LOC_RIGHT, p.NumCVSpaces()); - if ( BodyItems.contains(p)) return new LocationIndex(0, LocationIndex.CV_LOC_BODY, p.NumCVSpaces()); - if ( Turret1Items.contains(p)) return new LocationIndex(0, LocationIndex.CV_LOC_TURRET1, p.NumCVSpaces()); - if ( RearItems.contains(p)) return new LocationIndex(0, LocationIndex.CV_LOC_REAR, p.NumCVSpaces()); - if ( Turret2Items.contains(p)) return new LocationIndex(0, LocationIndex.CV_LOC_TURRET2, p.NumCVSpaces()); - if ( SponsonTurretLeftItems.contains(p)) return new LocationIndex(0, LocationIndex.CV_LOC_SPONSON_LEFT, p.NumCVSpaces()); - if ( SponsonTurretRightItems.contains(p)) return new LocationIndex(0, LocationIndex.CV_LOC_SPONSON_RIGHT, p.NumCVSpaces()); + if ( FrontItems.contains(p)) return new LocationIndex(0, LocationIndex.CV_LOC_FRONT, p.NumCVSpaces()); + if ( LeftItems.contains(p)) return new LocationIndex(0, LocationIndex.CV_LOC_LEFT, p.NumCVSpaces()); + if ( RightItems.contains(p)) return new LocationIndex(0, LocationIndex.CV_LOC_RIGHT, p.NumCVSpaces()); + if ( BodyItems.contains(p)) return new LocationIndex(0, LocationIndex.CV_LOC_BODY, p.NumCVSpaces()); + if ( Turret1Items.contains(p)) return new LocationIndex(0, LocationIndex.CV_LOC_TURRET1, p.NumCVSpaces()); + if ( RearItems.contains(p)) return new LocationIndex(0, LocationIndex.CV_LOC_REAR, p.NumCVSpaces()); + if ( Turret2Items.contains(p)) return new LocationIndex(0, LocationIndex.CV_LOC_TURRET2, p.NumCVSpaces()); + if ( SponsonTurretLeftItems.contains(p)) return new LocationIndex(0, LocationIndex.CV_LOC_SPONSON_LEFT, p.NumCVSpaces()); + if ( SponsonTurretRightItems.contains(p)) return new LocationIndex(0, LocationIndex.CV_LOC_SPONSON_RIGHT, p.NumCVSpaces()); return null; } @@ -686,41 +668,21 @@ public boolean UnallocateAll(abPlaceable p, boolean override) { } public void Remove(abPlaceable p) { - // removes the item completely from the loadout. - // first, unallocate it. UnallocateAll( p, true ); - // Now remove it from the queue - //RemoveFromQueue( p ); - - // check to see if this is a core component - //if( ! p.CoreComponent() ) { - // remove it to the non core list - if( NonCore.contains( p ) ) - NonCore.remove( p ); - if( Equipment.contains( p ) ) - Equipment.remove( p ); - if( TCList.contains( p ) ) - TCList.remove( p ); - if ( FrontItems.contains( p ) ) - FrontItems.remove( p ); - if ( LeftItems.contains(p)) - LeftItems.remove(p); - if ( RightItems.contains(p)) - RightItems.remove(p); - if ( BodyItems.contains(p)) - BodyItems.remove(p); - if ( RearItems.contains(p)) - RearItems.remove(p); - if ( Turret1Items.contains(p)) - Turret1Items.remove(p); - if ( Turret2Items.contains(p)) - Turret2Items.remove(p); - if ( SponsonTurretLeftItems.contains(p)) - SponsonTurretLeftItems.remove(p); - if ( SponsonTurretRightItems.contains(p)) - SponsonTurretRightItems.remove(p); - //} + // remove it to the non core list + if( NonCore.contains( p ) ) NonCore.remove( p ); + if( Equipment.contains( p ) ) Equipment.remove( p ); + if( TCList.contains( p ) ) TCList.remove( p ); + if ( FrontItems.contains( p ) ) FrontItems.remove( p ); + if ( LeftItems.contains(p)) LeftItems.remove(p); + if ( RightItems.contains(p)) RightItems.remove(p); + if ( BodyItems.contains(p)) BodyItems.remove(p); + if ( RearItems.contains(p)) RearItems.remove(p); + if ( Turret1Items.contains(p)) Turret1Items.remove(p); + if ( Turret2Items.contains(p)) Turret2Items.remove(p); + if ( SponsonTurretLeftItems.contains(p)) SponsonTurretLeftItems.remove(p); + if ( SponsonTurretRightItems.contains(p)) SponsonTurretRightItems.remove(p); GetHeatSinks().SetNumHS(GetTotalHeat()); Owner.SetChanged( true ); @@ -841,6 +803,9 @@ public ifCVLoadout Clone() { if (HasVTOLBooster()) { clone.SetVTOLBooster( VBooster ); } + if (HasArmoredMotiveSystem()) { + clone.SetArmoredMotiveSystem(true, IsArmoredMotiveSystemClan()); + } if( Owner.IsOmni() ) { clone.SetBaseLoadout( this ); } diff --git a/sswlib/src/main/java/components/Supercharger.java b/sswlib/src/main/java/components/Supercharger.java index d8f14c74..4c5a9b72 100644 --- a/sswlib/src/main/java/components/Supercharger.java +++ b/sswlib/src/main/java/components/Supercharger.java @@ -145,7 +145,7 @@ public boolean CoreComponent() { return true; } - public void SetClan(boolean b ) { super.SetCurrentTech(AvailableCode.TECH_CLAN); } + public void SetClan(boolean b ) { super.SetCurrentTech(b ? AvailableCode.TECH_CLAN : AvailableCode.TECH_INNER_SPHERE); } public boolean IsClan() { return (super.GetCurrentTech() == AvailableCode.TECH_CLAN); } @Override diff --git a/sswlib/src/main/java/components/VTOLBooster.java b/sswlib/src/main/java/components/VTOLBooster.java index 741c9d37..d76c0814 100644 --- a/sswlib/src/main/java/components/VTOLBooster.java +++ b/sswlib/src/main/java/components/VTOLBooster.java @@ -56,10 +56,7 @@ public String LookupName() { return "VTOL Jet Booster"; } - public String ChatName() { - // ammo isn't included in the chat - return "VTOL Jet Booster"; - } + public String ChatName() { return "JtBstr"; } public String MegaMekName( boolean UseRear ) { if( Owner.GetTechBase() >= AvailableCode.TECH_CLAN ) { From b5c21587b807aac79f565c4ba1ef653a756d94db Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 4 Mar 2023 14:37:37 -0700 Subject: [PATCH 144/199] Improve MM Name So that is has CL and IS as expected --- sswlib/src/main/java/components/CASE.java | 4 +--- sswlib/src/main/java/components/VTOLBooster.java | 6 +----- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/sswlib/src/main/java/components/CASE.java b/sswlib/src/main/java/components/CASE.java index c297fc71..3945f6b2 100644 --- a/sswlib/src/main/java/components/CASE.java +++ b/sswlib/src/main/java/components/CASE.java @@ -71,9 +71,7 @@ public String ChatName() { return "CASE"; } - public String MegaMekName( boolean UseRear ) { - return "ISCASE"; - } + public String MegaMekName( boolean UseRear ) { return (IsClan() ? "CL" : "IS") + "CASE"; } public String BookReference() { return "Tech Manual"; diff --git a/sswlib/src/main/java/components/VTOLBooster.java b/sswlib/src/main/java/components/VTOLBooster.java index d76c0814..536e9fa7 100644 --- a/sswlib/src/main/java/components/VTOLBooster.java +++ b/sswlib/src/main/java/components/VTOLBooster.java @@ -59,11 +59,7 @@ public String LookupName() { public String ChatName() { return "JtBstr"; } public String MegaMekName( boolean UseRear ) { - if( Owner.GetTechBase() >= AvailableCode.TECH_CLAN ) { - return "CLVTOLJetBooster"; - } else { - return "ISVTOLJetBooster"; - } + return (Owner.GetTechBase() >= AvailableCode.TECH_CLAN ? "CL" : "IS") + "VTOLJetBooster"; } public String BookReference() { From 2418275f841e2ffe8b95366e39b2f5e064fd988f Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 4 Mar 2023 15:08:58 -0700 Subject: [PATCH 145/199] Remote Sensor Dispenser in Body There are RS that show them in the body of a vehicle. --- Data/Equipment/equipment.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Data/Equipment/equipment.json b/Data/Equipment/equipment.json index bbee961d..5e48b2f3 100644 --- a/Data/Equipment/equipment.json +++ b/Data/Equipment/equipment.json @@ -4257,7 +4257,7 @@ "alloc_sides": true, "alloc_rear": true, "alloc_turret": true, - "alloc_body": false, + "alloc_body": true, "CanSplit": false, "CanMountRear": true, "Explosive": false, From 11c31da5b00c914553841f083cf90bea6ceac57d Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 4 Mar 2023 18:02:21 -0700 Subject: [PATCH 146/199] Include motive type in Chat output --- sswlib/src/main/java/components/CombatVehicle.java | 1 + 1 file changed, 1 insertion(+) diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index f25d1cf7..9b4cdb13 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -1750,6 +1750,7 @@ public String GetFullName() { public String GetChatInfo() { String info = GetFullName() + " "; info += GetTonnage() + "t, "; + info += GetMotiveLookupName() + ", "; // MP info += getCruiseMP(); if( getCruiseMP() != GetAdjustedCruiseMP( false, true ) ) { From a60e98777b0b36cd0b7cb0564c0e876375b59251 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 4 Mar 2023 18:33:23 -0700 Subject: [PATCH 147/199] Remove comma between tonnage and motive type --- sswlib/src/main/java/components/CombatVehicle.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index 9b4cdb13..3fe53b32 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -1749,7 +1749,7 @@ public String GetFullName() { public String GetChatInfo() { String info = GetFullName() + " "; - info += GetTonnage() + "t, "; + info += GetTonnage() + "t "; info += GetMotiveLookupName() + ", "; // MP info += getCruiseMP(); From 2b8835b4b83219a552d2f33add539d60a8a7ce09 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 4 Mar 2023 19:44:30 -0700 Subject: [PATCH 148/199] Use RefreshSummary to update the HeatSinks after insulator, capacitor, or pulse module added or removed. --- saw/src/main/java/saw/gui/frmVeeWide.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index fe0a3be6..3aed7d1d 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -411,6 +411,7 @@ private void PPCCapacitor() { } } } + RefreshSummary(); RefreshInfoPane(); RefreshSelectedEquipment(); } @@ -443,6 +444,7 @@ private void LaserInsulator() { } } } + RefreshSummary(); RefreshInfoPane(); RefreshSelectedEquipment(); } @@ -475,6 +477,7 @@ private void PulseModule() { } } } + RefreshSummary(); RefreshInfoPane(); RefreshSelectedEquipment(); } From 7ab94d4713bbcd263ca4d0066e2111efc9d5fc73 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sat, 4 Mar 2023 21:24:36 -0700 Subject: [PATCH 149/199] When cockpit changes check if it can be armored and remove if it cannot. --- ssw/src/main/java/ssw/Main.java | 2 +- ssw/src/main/java/ssw/gui/frmMain.java | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ssw/src/main/java/ssw/Main.java b/ssw/src/main/java/ssw/Main.java index 8b96019c..9b33ade4 100644 --- a/ssw/src/main/java/ssw/Main.java +++ b/ssw/src/main/java/ssw/Main.java @@ -119,7 +119,7 @@ public void run() { switch( screensize ) { case SSWConstants.SCREEN_SIZE_WIDE_1280: MainFrame = new frmMainWide(); - MainFrame.setSize( 1240, 610 ); + MainFrame.setSize( 1350, 650 ); break; default: MainFrame = new frmMain(); diff --git a/ssw/src/main/java/ssw/gui/frmMain.java b/ssw/src/main/java/ssw/gui/frmMain.java index 60bc2f7e..474234ac 100644 --- a/ssw/src/main/java/ssw/gui/frmMain.java +++ b/ssw/src/main/java/ssw/gui/frmMain.java @@ -1556,6 +1556,10 @@ private void RecalcCockpit() { try { CurMech.Visit( v ); + + if (!CurMech.GetCockpit().CanArmor()) + CurMech.GetCockpit().ArmorComponent(false); + } catch( Exception e ) { v = (ifVisitor) CurMech.Lookup( OldVal ); try { From 90f8db674ce27dc47d2e479cd6a97d1f9a2c4cf1 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 5 Mar 2023 11:54:39 -0700 Subject: [PATCH 150/199] When cockpit changes check if it can be armored and remove if it cannot. --- ssw/src/main/java/ssw/gui/frmMainWide.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ssw/src/main/java/ssw/gui/frmMainWide.java b/ssw/src/main/java/ssw/gui/frmMainWide.java index bb873cd2..16840c6f 100644 --- a/ssw/src/main/java/ssw/gui/frmMainWide.java +++ b/ssw/src/main/java/ssw/gui/frmMainWide.java @@ -1550,6 +1550,10 @@ private void RecalcCockpit() { ifVisitor v = (ifVisitor) CurMech.Lookup( LookupVal ); try { CurMech.Visit( v ); + + if (!CurMech.GetCockpit().CanArmor()) + CurMech.GetCockpit().ArmorComponent(false); + } catch( Exception e ) { v = (ifVisitor) CurMech.Lookup( OldVal ); try { From 9190e93e3c513d5c16c4ae1f89ebe2c8da84f4a0 Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 5 Mar 2023 16:48:50 -0700 Subject: [PATCH 151/199] Updated Dates and Factions --- sswlib/src/main/java/states/stCockpitInterface.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sswlib/src/main/java/states/stCockpitInterface.java b/sswlib/src/main/java/states/stCockpitInterface.java index 4e1618a9..834092ca 100644 --- a/sswlib/src/main/java/states/stCockpitInterface.java +++ b/sswlib/src/main/java/states/stCockpitInterface.java @@ -42,12 +42,12 @@ public class stCockpitInterface implements ifCockpit, ifState { public stCockpitInterface() { AC.SetISCodes( 'E', 'X', 'X', 'F', 'X' ); - AC.SetISDates( 0, 0, false, 3074, 0, 0, false, false ); - AC.SetISFactions( "", "", "WB", "" ); + AC.SetISDates( 3068, 3074, false, 3078, 0, 0, false, false ); + AC.SetISFactions( "WB", "WB", "WB", "" ); AC.SetSuperHeavyCompatible(false); AC.SetCLCodes( 'F', 'X', 'X', 'F', 'F' ); - AC.SetCLDates( 0, 0, false, 3083, 0, 0, false, false ); - AC.SetCLFactions( "", "", "TH", "" ); + AC.SetCLDates( 3082, 3083, false, 3083, 0, 0, false, false ); + AC.SetCLFactions( "CHH", "CHH", "CHH", "" ); AC.SetRulesLevels( AvailableCode.RULES_EXPERIMENTAL, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED, AvailableCode.RULES_UNALLOWED ); } From c43be1d61c8fc064ddf7c56031fe9963ef57917d Mon Sep 17 00:00:00 2001 From: George Blouin <GBlouin@us.ci.org> Date: Sun, 5 Mar 2023 20:43:03 -0700 Subject: [PATCH 152/199] Use GetNewVee on Load and Open As that appears to clear out something with turrets. --- saw/src/main/java/saw/gui/frmVee.java | 2 ++ saw/src/main/java/saw/gui/frmVeeWide.java | 2 ++ 2 files changed, 4 insertions(+) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index fe2cbf44..f3e6590e 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -8092,6 +8092,7 @@ private void mnuLoadActionPerformed(java.awt.event.ActionEvent evt) { return; } } + GetNewVee(); // Get the mech we're loading CombatVehicle m = LoadVehicle(); if (m == null) { @@ -9392,6 +9393,7 @@ public void setUnit(ArrayList v) { } public void setVee( CombatVehicle v ) { + GetNewVee(); CurVee = v; LoadVehicleIntoGUI(); } diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 9f70e870..6beaf62c 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -4397,6 +4397,7 @@ private void mnuLoadActionPerformed(java.awt.event.ActionEvent evt) { return; } } + GetNewVee(); // Get the mech we're loading CombatVehicle m = LoadVehicle(); if (m == null) { @@ -7540,6 +7541,7 @@ public void setUnit(ArrayList v) { } public void setVee( CombatVehicle v ) { + GetNewVee(); CurVee = v; LoadVehicleIntoGUI(); } From de8dc7d7ecbe8611eeb7687801646a076b88f1f6 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sat, 11 Nov 2023 02:04:54 -0800 Subject: [PATCH 153/199] Add eclipse stuff to .gitignore --- .gitignore | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.gitignore b/.gitignore index a23cba54..e03e26ed 100644 --- a/.gitignore +++ b/.gitignore @@ -69,6 +69,13 @@ fabric.properties # .idea/misc.xml # *.ipr +# Eclipse +/.metadata/ +.classpath +.project +.settings/ +/*/bin + ### Gradle ### .gradle From 1dc90537ce4776f45af9ba13555791ce8bc14735 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Mon, 13 Nov 2023 06:12:37 -0800 Subject: [PATCH 154/199] Fix regression from 69bbe7c9 that broke multiples of same equipment --- sswlib/src/main/java/components/Equipment.java | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/sswlib/src/main/java/components/Equipment.java b/sswlib/src/main/java/components/Equipment.java index 2a862c25..244b4c52 100644 --- a/sswlib/src/main/java/components/Equipment.java +++ b/sswlib/src/main/java/components/Equipment.java @@ -597,16 +597,4 @@ public String GetEquipmentType() { public String toString() { return CritName(); } - - @Override - public boolean equals(Object obj) { - if (!(obj instanceof Equipment)) - return false; - - if (((Equipment) obj).ActualName() == ActualName()) { - return true; - } - - return false; - } } From 3a9dc409f7bc6595a4aa16dd5c14b3c90fd4a114 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Mon, 13 Nov 2023 21:10:19 -0800 Subject: [PATCH 155/199] Use equipment chooser panel from wide CV GUI in all other CV/mech GUIs This also fixes non-wide CV GUI equipment chooser scrolling regression from e8dd5de, remove superfluous seperators Note: frmVeeWide.form with frmVeeWide.java (wide CV GUI) is already out-of-sync and can't handle the custom methods like EquipmentLocation --- saw/src/main/java/saw/gui/frmVee.java | 368 ++----------------- saw/src/main/java/saw/gui/frmVeeWide.java | 6 +- ssw/src/main/java/ssw/gui/frmMain.java | 408 ++------------------- ssw/src/main/java/ssw/gui/frmMainWide.java | 408 ++------------------- 4 files changed, 95 insertions(+), 1095 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index f3e6590e..8a7f9cb4 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -50,6 +50,7 @@ import visitors.ifVisitor; import javax.swing.*; +import javax.swing.event.ListSelectionListener; import javax.swing.text.JTextComponent; import java.awt.*; import java.awt.datatransfer.Clipboard; @@ -1158,41 +1159,13 @@ private void initComponents() { lblArmorLeftInLot = new javax.swing.JLabel(); jPanel3 = new javax.swing.JPanel(); tbpWeaponChooser = new JTabbedPane(); - JPanel pnlBallistic = new JPanel(); - JSeparator jSeparator5 = new JSeparator(); - JScrollPane jScrollPane8 = new JScrollPane(); lstChooseBallistic = new javax.swing.JList(); - JSeparator jSeparator6 = new JSeparator(); - JPanel pnlEnergy = new JPanel(); - JSeparator jSeparator7 = new JSeparator(); - JScrollPane jScrollPane9 = new JScrollPane(); lstChooseEnergy = new javax.swing.JList(); - JSeparator jSeparator8 = new JSeparator(); - JPanel pnlMissile = new JPanel(); - JSeparator jSeparator9 = new JSeparator(); - JScrollPane jScrollPane19 = new JScrollPane(); lstChooseMissile = new javax.swing.JList(); - JSeparator jSeparator10 = new JSeparator(); - JPanel pnlPhysical = new JPanel(); - JSeparator jSeparator11 = new JSeparator(); - JScrollPane jScrollPane20 = new JScrollPane(); lstChoosePhysical = new javax.swing.JList(); - JSeparator jSeparator12 = new JSeparator(); - JPanel pnlEquipmentChooser = new JPanel(); - JSeparator jSeparator13 = new JSeparator(); - JScrollPane jScrollPane21 = new JScrollPane(); lstChooseEquipment = new javax.swing.JList(); - JSeparator jSeparator14 = new JSeparator(); - JPanel pnlArtillery = new JPanel(); - JSeparator jSeparator18 = new JSeparator(); - JScrollPane jScrollPane24 = new JScrollPane(); lstChooseArtillery = new javax.swing.JList(); - JSeparator jSeparator19 = new JSeparator(); - JPanel pnlAmmunition = new JPanel(); - JSeparator jSeparator15 = new JSeparator(); - JScrollPane jScrollPane22 = new JScrollPane(); lstChooseAmmunition = new javax.swing.JList(); - JSeparator jSeparator16 = new JSeparator(); JPanel pnlSpecials = new JPanel(); JLabel jLabel37 = new JLabel(); chkUseTC = new javax.swing.JCheckBox(); @@ -3077,328 +3050,31 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { tbpMainTabPane.addTab("Armor", jPanel2); - tbpWeaponChooser.setTabPlacement(JTabbedPane.RIGHT); - tbpWeaponChooser.setMaximumSize(new Dimension(300, 300)); - tbpWeaponChooser.setMinimumSize(new Dimension(300, 300)); - - jSeparator5.setOrientation(SwingConstants.VERTICAL); - jSeparator5.setAlignmentX(0.0F); - jSeparator5.setAlignmentY(0.0F); - - jScrollPane8.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane8.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane8.setMaximumSize(new Dimension(300, 300)); - jScrollPane8.setMinimumSize(new Dimension(300, 300)); - jScrollPane8.setPreferredSize(new Dimension(300, 300)); - - lstChooseBallistic.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseBallistic.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseBallistic.setMaximumSize(new Dimension(300, 300)); - lstChooseBallistic.setMinimumSize(new Dimension(300, 300)); - lstChooseBallistic.setPreferredSize(new Dimension(300, 300)); - lstChooseBallistic.setVisibleRowCount(16); - lstChooseBallistic.addListSelectionListener(this::lstChooseBallisticValueChanged); - MouseListener mlBallistic = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } - }; - lstChooseBallistic.addMouseListener( mlBallistic ); - lstChooseBallistic.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); - jScrollPane8.setViewportView(lstChooseBallistic); - - jSeparator6.setOrientation(SwingConstants.VERTICAL); - jSeparator6.setAlignmentX(0.0F); - jSeparator6.setAlignmentY(0.0F); - - javax.swing.GroupLayout pnlBallisticLayout = new javax.swing.GroupLayout(pnlBallistic); - pnlBallistic.setLayout(pnlBallisticLayout); - pnlBallisticLayout.setHorizontalGroup( - pnlBallisticLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(pnlBallisticLayout.createSequentialGroup() - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)) - ); - pnlBallisticLayout.setVerticalGroup( - pnlBallisticLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(pnlBallisticLayout.createSequentialGroup() - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)) - ); - - tbpWeaponChooser.addTab("Ballistic", pnlBallistic); - - pnlEnergy.setLayout(new javax.swing.BoxLayout(pnlEnergy, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator7.setOrientation(SwingConstants.VERTICAL); - jSeparator7.setAlignmentX(0.0F); - jSeparator7.setAlignmentY(0.0F); - pnlEnergy.add(jSeparator7); - - jScrollPane9.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane9.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane9.setMaximumSize(new Dimension(300, 300)); - jScrollPane9.setMinimumSize(new Dimension(300, 300)); - jScrollPane9.setPreferredSize(new Dimension(300, 300)); - - lstChooseEnergy.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseEnergy.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseEnergy.setMaximumSize(new Dimension(300, 300)); - lstChooseEnergy.setMinimumSize(new Dimension(300, 300)); - lstChooseEnergy.setPreferredSize(new Dimension(300, 300)); - lstChooseEnergy.setVisibleRowCount(16); - lstChooseEnergy.addListSelectionListener(this::lstChooseEnergyValueChanged); - MouseListener mlEnergy = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } - }; - lstChooseEnergy.addMouseListener( mlEnergy ); - lstChooseEnergy.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); - jScrollPane9.setViewportView(lstChooseEnergy); - - pnlEnergy.add(jScrollPane9); - - jSeparator8.setOrientation(SwingConstants.VERTICAL); - jSeparator8.setAlignmentX(0.0F); - jSeparator8.setAlignmentY(0.0F); - pnlEnergy.add(jSeparator8); - - tbpWeaponChooser.addTab("Energy", pnlEnergy); - - pnlMissile.setLayout(new javax.swing.BoxLayout(pnlMissile, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator9.setOrientation(SwingConstants.VERTICAL); - jSeparator9.setAlignmentX(0.0F); - jSeparator9.setAlignmentY(0.0F); - pnlMissile.add(jSeparator9); - - jScrollPane19.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane19.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane19.setMaximumSize(new Dimension(300, 300)); - jScrollPane19.setMinimumSize(new Dimension(300, 300)); - jScrollPane19.setPreferredSize(new Dimension(300, 300)); - - lstChooseMissile.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseMissile.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseMissile.setMaximumSize(new Dimension(300, 300)); - lstChooseMissile.setMinimumSize(new Dimension(300, 300)); - lstChooseMissile.setPreferredSize(new Dimension(300, 300)); - lstChooseMissile.setVisibleRowCount(16); - lstChooseMissile.addListSelectionListener(this::lstChooseMissileValueChanged); - MouseListener mlMissile = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } - }; - lstChooseMissile.addMouseListener( mlMissile ); - lstChooseMissile.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); - jScrollPane19.setViewportView(lstChooseMissile); - - pnlMissile.add(jScrollPane19); - - jSeparator10.setOrientation(SwingConstants.VERTICAL); - jSeparator10.setAlignmentX(0.0F); - jSeparator10.setAlignmentY(0.0F); - pnlMissile.add(jSeparator10); - - tbpWeaponChooser.addTab("Missile", pnlMissile); - - pnlPhysical.setLayout(new javax.swing.BoxLayout(pnlPhysical, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator11.setOrientation(SwingConstants.VERTICAL); - jSeparator11.setAlignmentX(0.0F); - jSeparator11.setAlignmentY(0.0F); - pnlPhysical.add(jSeparator11); - - jScrollPane20.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane20.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane20.setMaximumSize(new Dimension(300, 300)); - jScrollPane20.setMinimumSize(new Dimension(300, 300)); - jScrollPane20.setPreferredSize(new Dimension(300, 300)); - - lstChoosePhysical.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChoosePhysical.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChoosePhysical.setMaximumSize(new Dimension(300, 300)); - lstChoosePhysical.setMinimumSize(new Dimension(300, 300)); - lstChoosePhysical.setPreferredSize(new Dimension(300, 300)); - lstChoosePhysical.setVisibleRowCount(16); - lstChoosePhysical.addListSelectionListener(this::lstChoosePhysicalValueChanged); - MouseListener mlPhysical = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } - }; - lstChoosePhysical.addMouseListener( mlPhysical ); - lstChoosePhysical.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); - jScrollPane20.setViewportView(lstChoosePhysical); - - pnlPhysical.add(jScrollPane20); - - jSeparator12.setOrientation(SwingConstants.VERTICAL); - jSeparator12.setAlignmentX(0.0F); - jSeparator12.setAlignmentY(0.0F); - pnlPhysical.add(jSeparator12); - - tbpWeaponChooser.addTab("Physical", pnlPhysical); - - pnlEquipmentChooser.setLayout(new javax.swing.BoxLayout(pnlEquipmentChooser, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator13.setOrientation(SwingConstants.VERTICAL); - jSeparator13.setAlignmentX(0.0F); - jSeparator13.setAlignmentY(0.0F); - pnlEquipmentChooser.add(jSeparator13); - - jScrollPane21.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane21.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane21.setMaximumSize(new Dimension(300, 300)); - jScrollPane21.setMinimumSize(new Dimension(300, 300)); - jScrollPane21.setPreferredSize(new Dimension(300, 300)); - - lstChooseEquipment.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseEquipment.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseEquipment.setMaximumSize(new Dimension(300, 300)); - lstChooseEquipment.setMinimumSize(new Dimension(300, 300)); - lstChooseEquipment.setPreferredSize(new Dimension(300, 300)); - lstChooseEquipment.setVisibleRowCount(16); - lstChooseEquipment.addListSelectionListener(this::lstChooseEquipmentValueChanged); - MouseListener mlEquipment = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } - }; - lstChooseEquipment.addMouseListener( mlEquipment ); - lstChooseEquipment.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); - jScrollPane21.setViewportView(lstChooseEquipment); - - pnlEquipmentChooser.add(jScrollPane21); - - jSeparator14.setOrientation(SwingConstants.VERTICAL); - jSeparator14.setAlignmentX(0.0F); - jSeparator14.setAlignmentY(0.0F); - pnlEquipmentChooser.add(jSeparator14); - - tbpWeaponChooser.addTab("Equipment", pnlEquipmentChooser); - - pnlArtillery.setLayout(new javax.swing.BoxLayout(pnlArtillery, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator18.setOrientation(SwingConstants.VERTICAL); - jSeparator18.setAlignmentX(0.0F); - jSeparator18.setAlignmentY(0.0F); - pnlArtillery.add(jSeparator18); - - jScrollPane24.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane24.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane24.setMaximumSize(new Dimension(300, 300)); - jScrollPane24.setMinimumSize(new Dimension(300, 300)); - jScrollPane24.setPreferredSize(new Dimension(300, 300)); - - lstChooseArtillery.setModel(new javax.swing.AbstractListModel() { + //region Equipment Tab / Weapons and Equipment Lists + AbstractListModel placeholder = new AbstractListModel() { String[] strings = { "Placeholder" }; public int getSize() { return strings.length; } public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseArtillery.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseArtillery.setMaximumSize(new Dimension(300, 300)); - lstChooseArtillery.setMinimumSize(new Dimension(300, 300)); - lstChooseArtillery.setPreferredSize(new Dimension(300, 300)); - lstChooseArtillery.setVisibleRowCount(16); - lstChooseArtillery.addListSelectionListener(this::lstChooseArtilleryValueChanged); - MouseListener mlArtillery = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } }; - lstChooseArtillery.addMouseListener( mlArtillery ); - lstChooseArtillery.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); - jScrollPane24.setViewportView(lstChooseArtillery); - - pnlArtillery.add(jScrollPane24); - - jSeparator19.setOrientation(SwingConstants.VERTICAL); - jSeparator19.setAlignmentX(0.0F); - jSeparator19.setAlignmentY(0.0F); - pnlArtillery.add(jSeparator19); - - tbpWeaponChooser.addTab("Artillery", pnlArtillery); - pnlAmmunition.setLayout(new javax.swing.BoxLayout(pnlAmmunition, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator15.setOrientation(SwingConstants.VERTICAL); - jSeparator15.setAlignmentX(0.0F); - jSeparator15.setAlignmentY(0.0F); - pnlAmmunition.add(jSeparator15); - - jScrollPane22.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane22.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane22.setMaximumSize(new Dimension(300, 300)); - jScrollPane22.setMinimumSize(new Dimension(300, 300)); - jScrollPane22.setPreferredSize(new Dimension(300, 300)); - - lstChooseAmmunition.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseAmmunition.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseAmmunition.setMaximumSize(new Dimension(300, 300)); - lstChooseAmmunition.setMinimumSize(new Dimension(300, 300)); - lstChooseAmmunition.setPreferredSize(new Dimension(300, 300)); - lstChooseAmmunition.setVisibleRowCount(16); - lstChooseAmmunition.addListSelectionListener(this::lstChooseAmmunitionValueChanged); - MouseListener mlAmmo = new MouseAdapter() { + MouseListener mlAddEquip = new MouseAdapter() { public void mouseClicked( MouseEvent e ) { if ( e.getClickCount() == 2 && e.getButton() == 1 ) { btnAddEquipActionPerformed( null ); } } }; - lstChooseAmmunition.addMouseListener( mlAmmo ); - lstChooseAmmunition.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); - jScrollPane22.setViewportView(lstChooseAmmunition); - pnlAmmunition.add(jScrollPane22); - - jSeparator16.setOrientation(SwingConstants.VERTICAL); - jSeparator16.setAlignmentX(0.0F); - jSeparator16.setAlignmentY(0.0F); - pnlAmmunition.add(jSeparator16); - - tbpWeaponChooser.addTab("Ammunition", pnlAmmunition); + tbpWeaponChooser.setTabPlacement(JTabbedPane.RIGHT); + tbpWeaponChooser.setMaximumSize(new Dimension(300, 300)); + tbpWeaponChooser.setMinimumSize(new Dimension(300, 300)); + tbpWeaponChooser.addTab("Ballistic", EquipmentLocation(lstChooseBallistic, this::lstChooseBallisticValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Energy", EquipmentLocation(lstChooseEnergy, this::lstChooseEnergyValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Missile", EquipmentLocation(lstChooseMissile, this::lstChooseMissileValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Physical", EquipmentLocation(lstChoosePhysical, this::lstChoosePhysicalValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Equipment", EquipmentLocation(lstChooseEquipment, this::lstChooseEquipmentValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Artillery", EquipmentLocation(lstChooseArtillery, this::lstChooseArtilleryValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Ammunition", EquipmentLocation(lstChooseAmmunition, this::lstChooseAmmunitionValueChanged, mlAddEquip, placeholder)); pnlSpecials.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Specials")); pnlSpecials.setLayout(new java.awt.GridBagLayout()); @@ -4695,6 +4371,22 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { pack(); }// </editor-fold>//GEN-END:initComponents + private JPanel EquipmentLocation(JList list, ListSelectionListener selection, MouseListener listener, AbstractListModel display) { + JPanel panel = new JPanel(); + list.setModel(display); + list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + list.addListSelectionListener(selection); + list.addMouseListener( listener ); + list.setCellRenderer( new EquipmentListRenderer( this ) ); + JScrollPane pane = new JScrollPane(); + pane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); + pane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); + pane.setViewportView(list); + panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); + panel.add(pane); + return panel; + } + private void RefreshSummary() { // refreshes the display completely using info from the mech. txtSumEngTons.setText( "" + CurVee.GetEngineTonnage() ); diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 6beaf62c..b6575287 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -2230,7 +2230,7 @@ public void mousePressed( MouseEvent e ) { //endregion //region Equipment Tab / Weapons and Equipment Lists - AbstractListModel placeholder = new javax.swing.AbstractListModel() { + AbstractListModel placeholder = new AbstractListModel() { String[] strings = { "Placeholder" }; public int getSize() { return strings.length; } public Object getElementAt(int i) { return strings[i]; } @@ -2678,10 +2678,10 @@ private JPanel ArmorLocation(String title, JLabel label, JSpinner spinner, Chang private JPanel EquipmentLocation(JList list, ListSelectionListener selection, MouseListener listener, AbstractListModel display) { JPanel panel = new JPanel(); list.setModel(display); - list.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); + list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); list.addListSelectionListener(selection); list.addMouseListener( listener ); - list.setCellRenderer( new saw.gui.EquipmentListRenderer( this ) ); + list.setCellRenderer( new EquipmentListRenderer( this ) ); JScrollPane pane = new JScrollPane(); pane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); pane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); diff --git a/ssw/src/main/java/ssw/gui/frmMain.java b/ssw/src/main/java/ssw/gui/frmMain.java index 474234ac..b9fd2c73 100644 --- a/ssw/src/main/java/ssw/gui/frmMain.java +++ b/ssw/src/main/java/ssw/gui/frmMain.java @@ -49,6 +49,7 @@ import visitors.ifVisitor; import javax.swing.*; +import javax.swing.event.ListSelectionListener; import javax.swing.text.JTextComponent; import java.awt.*; import java.awt.datatransfer.DataFlavor; @@ -4982,41 +4983,13 @@ private void initComponents() { lblPWRLLoc = new javax.swing.JLabel(); pnlEquipment = new javax.swing.JPanel(); tbpWeaponChooser = new javax.swing.JTabbedPane(); - pnlBallistic = new javax.swing.JPanel(); - jSeparator3 = new javax.swing.JSeparator(); - jScrollPane8 = new javax.swing.JScrollPane(); lstChooseBallistic = new javax.swing.JList(); - jSeparator4 = new javax.swing.JSeparator(); - pnlEnergy = new javax.swing.JPanel(); - jSeparator2 = new javax.swing.JSeparator(); - jScrollPane9 = new javax.swing.JScrollPane(); lstChooseEnergy = new javax.swing.JList(); - jSeparator1 = new javax.swing.JSeparator(); - pnlMissile = new javax.swing.JPanel(); - jSeparator5 = new javax.swing.JSeparator(); - jScrollPane19 = new javax.swing.JScrollPane(); lstChooseMissile = new javax.swing.JList(); - jSeparator6 = new javax.swing.JSeparator(); - pnlPhysical = new javax.swing.JPanel(); - jSeparator8 = new javax.swing.JSeparator(); - jScrollPane20 = new javax.swing.JScrollPane(); lstChoosePhysical = new javax.swing.JList(); - jSeparator7 = new javax.swing.JSeparator(); - pnlEquipmentChooser = new javax.swing.JPanel(); - jSeparator10 = new javax.swing.JSeparator(); - jScrollPane21 = new javax.swing.JScrollPane(); lstChooseEquipment = new javax.swing.JList(); - jSeparator9 = new javax.swing.JSeparator(); - pnlArtillery = new javax.swing.JPanel(); - jSeparator18 = new javax.swing.JSeparator(); - jScrollPane24 = new javax.swing.JScrollPane(); lstChooseArtillery = new javax.swing.JList(); - jSeparator19 = new javax.swing.JSeparator(); - pnlAmmunition = new javax.swing.JPanel(); - jSeparator11 = new javax.swing.JSeparator(); - jScrollPane22 = new javax.swing.JScrollPane(); lstChooseAmmunition = new javax.swing.JList(); - jSeparator12 = new javax.swing.JSeparator(); pnlSpecials = new javax.swing.JPanel(); jLabel16 = new javax.swing.JLabel(); chkUseTC = new javax.swing.JCheckBox(); @@ -7629,339 +7602,32 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pnlEquipment.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); - tbpWeaponChooser.setTabPlacement(javax.swing.JTabbedPane.RIGHT); - tbpWeaponChooser.setMaximumSize(new java.awt.Dimension(300, 300)); - tbpWeaponChooser.setMinimumSize(new java.awt.Dimension(300, 300)); - tbpWeaponChooser.setPreferredSize(new java.awt.Dimension(300, 300)); - - pnlBallistic.setLayout(new javax.swing.BoxLayout(pnlBallistic, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator3.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator3.setAlignmentX(0.0F); - jSeparator3.setAlignmentY(0.0F); - pnlBallistic.add(jSeparator3); - - jScrollPane8.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane8.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane8.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane8.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane8.setPreferredSize(new java.awt.Dimension(200, 260)); - - lstChooseBallistic.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseBallistic.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseBallistic.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseBallistic.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseBallistic.setVisibleRowCount(16); - lstChooseBallistic.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseBallisticValueChanged(evt); - } - }); - MouseListener mlBallistic = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } - }; - lstChooseBallistic.addMouseListener( mlBallistic ); - lstChooseBallistic.setCellRenderer( new ssw.gui.EquipmentListRenderer( this ) ); - jScrollPane8.setViewportView(lstChooseBallistic); - - pnlBallistic.add(jScrollPane8); - - jSeparator4.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator4.setAlignmentX(0.0F); - jSeparator4.setAlignmentY(0.0F); - pnlBallistic.add(jSeparator4); - - tbpWeaponChooser.addTab("Ballistic", pnlBallistic); - - pnlEnergy.setLayout(new javax.swing.BoxLayout(pnlEnergy, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator2.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator2.setAlignmentX(0.0F); - jSeparator2.setAlignmentY(0.0F); - pnlEnergy.add(jSeparator2); - - jScrollPane9.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane9.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane9.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane9.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane9.setPreferredSize(new java.awt.Dimension(200, 260)); - - lstChooseEnergy.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseEnergy.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseEnergy.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseEnergy.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseEnergy.setVisibleRowCount(16); - lstChooseEnergy.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseEnergyValueChanged(evt); - } - }); - MouseListener mlEnergy = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } - }; - lstChooseEnergy.addMouseListener( mlEnergy ); - lstChooseEnergy.setCellRenderer( new ssw.gui.EquipmentListRenderer( this ) ); - jScrollPane9.setViewportView(lstChooseEnergy); - - pnlEnergy.add(jScrollPane9); - - jSeparator1.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator1.setAlignmentX(0.0F); - jSeparator1.setAlignmentY(0.0F); - pnlEnergy.add(jSeparator1); - - tbpWeaponChooser.addTab("Energy", pnlEnergy); - - pnlMissile.setLayout(new javax.swing.BoxLayout(pnlMissile, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator5.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator5.setAlignmentX(0.0F); - jSeparator5.setAlignmentY(0.0F); - pnlMissile.add(jSeparator5); - - jScrollPane19.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane19.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane19.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane19.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane19.setPreferredSize(new java.awt.Dimension(200, 260)); - - lstChooseMissile.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseMissile.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseMissile.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseMissile.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseMissile.setVisibleRowCount(16); - lstChooseMissile.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseMissileValueChanged(evt); - } - }); - MouseListener mlMissile = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } - }; - lstChooseMissile.addMouseListener( mlMissile ); - lstChooseMissile.setCellRenderer( new ssw.gui.EquipmentListRenderer( this ) ); - jScrollPane19.setViewportView(lstChooseMissile); - - pnlMissile.add(jScrollPane19); - - jSeparator6.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator6.setAlignmentX(0.0F); - jSeparator6.setAlignmentY(0.0F); - pnlMissile.add(jSeparator6); - - tbpWeaponChooser.addTab("Missile", pnlMissile); - - pnlPhysical.setLayout(new javax.swing.BoxLayout(pnlPhysical, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator8.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator8.setAlignmentX(0.0F); - jSeparator8.setAlignmentY(0.0F); - pnlPhysical.add(jSeparator8); - - jScrollPane20.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane20.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane20.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane20.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane20.setPreferredSize(new java.awt.Dimension(200, 260)); - - lstChoosePhysical.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChoosePhysical.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChoosePhysical.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChoosePhysical.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChoosePhysical.setVisibleRowCount(16); - lstChoosePhysical.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChoosePhysicalValueChanged(evt); - } - }); - MouseListener mlPhysical = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } - }; - lstChoosePhysical.addMouseListener( mlPhysical ); - lstChoosePhysical.setCellRenderer( new ssw.gui.EquipmentListRenderer( this ) ); - jScrollPane20.setViewportView(lstChoosePhysical); - - pnlPhysical.add(jScrollPane20); - - jSeparator7.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator7.setAlignmentX(0.0F); - jSeparator7.setAlignmentY(0.0F); - pnlPhysical.add(jSeparator7); - - tbpWeaponChooser.addTab("Physical", pnlPhysical); - - pnlEquipmentChooser.setLayout(new javax.swing.BoxLayout(pnlEquipmentChooser, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator10.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator10.setAlignmentX(0.0F); - jSeparator10.setAlignmentY(0.0F); - pnlEquipmentChooser.add(jSeparator10); - - jScrollPane21.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane21.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane21.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane21.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane21.setPreferredSize(new java.awt.Dimension(200, 260)); - - lstChooseEquipment.setModel(new javax.swing.AbstractListModel() { + //region Equipment Tab / Weapons and Equipment Lists + AbstractListModel placeholder = new AbstractListModel() { String[] strings = { "Placeholder" }; public int getSize() { return strings.length; } public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseEquipment.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseEquipment.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseEquipment.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseEquipment.setVisibleRowCount(16); - lstChooseEquipment.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseEquipmentValueChanged(evt); - } - }); - MouseListener mlEquipment = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } }; - lstChooseEquipment.addMouseListener( mlEquipment ); - lstChooseEquipment.setCellRenderer( new ssw.gui.EquipmentListRenderer( this ) ); - jScrollPane21.setViewportView(lstChooseEquipment); - - pnlEquipmentChooser.add(jScrollPane21); - - jSeparator9.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator9.setAlignmentX(0.0F); - jSeparator9.setAlignmentY(0.0F); - pnlEquipmentChooser.add(jSeparator9); - - tbpWeaponChooser.addTab("Equipment", pnlEquipmentChooser); - pnlArtillery.setLayout(new javax.swing.BoxLayout(pnlArtillery, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator18.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator18.setAlignmentX(0.0F); - jSeparator18.setAlignmentY(0.0F); - pnlArtillery.add(jSeparator18); - - jScrollPane24.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane24.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane24.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane24.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane24.setPreferredSize(new java.awt.Dimension(200, 260)); - - lstChooseArtillery.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseArtillery.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseArtillery.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseArtillery.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseArtillery.setVisibleRowCount(16); - lstChooseArtillery.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseArtilleryValueChanged(evt); - } - }); - MouseListener mlArtillery = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } - }; - lstChooseArtillery.addMouseListener( mlArtillery ); - lstChooseArtillery.setCellRenderer( new ssw.gui.EquipmentListRenderer( this ) ); - jScrollPane24.setViewportView(lstChooseArtillery); - - pnlArtillery.add(jScrollPane24); - - jSeparator19.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator19.setAlignmentX(0.0F); - jSeparator19.setAlignmentY(0.0F); - pnlArtillery.add(jSeparator19); - - tbpWeaponChooser.addTab("Artillery", pnlArtillery); - - pnlAmmunition.setLayout(new javax.swing.BoxLayout(pnlAmmunition, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator11.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator11.setAlignmentX(0.0F); - jSeparator11.setAlignmentY(0.0F); - pnlAmmunition.add(jSeparator11); - - jScrollPane22.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane22.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane22.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane22.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane22.setPreferredSize(new java.awt.Dimension(200, 260)); - - lstChooseAmmunition.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseAmmunition.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseAmmunition.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseAmmunition.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseAmmunition.setVisibleRowCount(16); - lstChooseAmmunition.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseAmmunitionValueChanged(evt); - } - }); - MouseListener mlAmmo = new MouseAdapter() { + MouseListener mlAddEquip = new MouseAdapter() { public void mouseClicked( MouseEvent e ) { if ( e.getClickCount() == 2 && e.getButton() == 1 ) { btnAddEquipActionPerformed( null ); } } }; - lstChooseAmmunition.addMouseListener( mlAmmo ); - lstChooseAmmunition.setCellRenderer( new ssw.gui.EquipmentListRenderer( this ) ); - jScrollPane22.setViewportView(lstChooseAmmunition); - pnlAmmunition.add(jScrollPane22); - - jSeparator12.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator12.setAlignmentX(0.0F); - jSeparator12.setAlignmentY(0.0F); - pnlAmmunition.add(jSeparator12); - - tbpWeaponChooser.addTab("Ammunition", pnlAmmunition); + tbpWeaponChooser.setTabPlacement(javax.swing.JTabbedPane.RIGHT); + tbpWeaponChooser.setMaximumSize(new java.awt.Dimension(300, 300)); + tbpWeaponChooser.setMinimumSize(new java.awt.Dimension(300, 300)); + tbpWeaponChooser.setPreferredSize(new java.awt.Dimension(300, 300)); + tbpWeaponChooser.addTab("Ballistic", EquipmentLocation(lstChooseBallistic, this::lstChooseBallisticValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Energy", EquipmentLocation(lstChooseEnergy, this::lstChooseEnergyValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Missile", EquipmentLocation(lstChooseMissile, this::lstChooseMissileValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Physical", EquipmentLocation(lstChoosePhysical, this::lstChoosePhysicalValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Equipment", EquipmentLocation(lstChooseEquipment, this::lstChooseEquipmentValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Artillery", EquipmentLocation(lstChooseArtillery, this::lstChooseArtilleryValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Ammunition", EquipmentLocation(lstChooseAmmunition, this::lstChooseAmmunitionValueChanged, mlAddEquip, placeholder)); pnlEquipment.add(tbpWeaponChooser, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 20, -1, -1)); @@ -10659,6 +10325,22 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pack(); }// </editor-fold>//GEN-END:initComponents + private JPanel EquipmentLocation(JList list, ListSelectionListener selection, MouseListener listener, AbstractListModel display) { + JPanel panel = new JPanel(); + list.setModel(display); + list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + list.addListSelectionListener(selection); + list.addMouseListener( listener ); + list.setCellRenderer( new EquipmentListRenderer( this ) ); + JScrollPane pane = new JScrollPane(); + pane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); + pane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); + pane.setViewportView(list); + panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); + panel.add(pane); + return panel; + } + private void mnuExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuExitActionPerformed if( CurMech.HasChanged() ) { int choice = javax.swing.JOptionPane.showConfirmDialog( this, @@ -15186,26 +14868,12 @@ private void setViewToolbar(boolean Visible) private javax.swing.JScrollPane jScrollPane16; private javax.swing.JScrollPane jScrollPane17; private javax.swing.JScrollPane jScrollPane18; - private javax.swing.JScrollPane jScrollPane19; - private javax.swing.JScrollPane jScrollPane20; - private javax.swing.JScrollPane jScrollPane21; - private javax.swing.JScrollPane jScrollPane22; private javax.swing.JScrollPane jScrollPane23; - private javax.swing.JScrollPane jScrollPane24; - private javax.swing.JScrollPane jScrollPane8; - private javax.swing.JScrollPane jScrollPane9; - private javax.swing.JSeparator jSeparator1; - private javax.swing.JSeparator jSeparator10; - private javax.swing.JSeparator jSeparator11; - private javax.swing.JSeparator jSeparator12; private javax.swing.JSeparator jSeparator13; private javax.swing.JSeparator jSeparator14; private javax.swing.JSeparator jSeparator15; private javax.swing.JSeparator jSeparator16; private javax.swing.JSeparator jSeparator17; - private javax.swing.JSeparator jSeparator18; - private javax.swing.JSeparator jSeparator19; - private javax.swing.JSeparator jSeparator2; private javax.swing.JSeparator jSeparator20; private javax.swing.JToolBar.Separator jSeparator21; private javax.swing.JToolBar.Separator jSeparator22; @@ -15216,14 +14884,7 @@ private void setViewToolbar(boolean Visible) private javax.swing.JSeparator jSeparator27; private javax.swing.JSeparator jSeparator28; private javax.swing.JSeparator jSeparator29; - private javax.swing.JSeparator jSeparator3; private javax.swing.JSeparator jSeparator30; - private javax.swing.JSeparator jSeparator4; - private javax.swing.JSeparator jSeparator5; - private javax.swing.JSeparator jSeparator6; - private javax.swing.JSeparator jSeparator7; - private javax.swing.JSeparator jSeparator8; - private javax.swing.JSeparator jSeparator9; private javax.swing.JTextArea jTextAreaBFConversion; private javax.swing.JLabel lblAVInLot; private javax.swing.JLabel lblArmorCoverage; @@ -15401,13 +15062,10 @@ private void setViewToolbar(boolean Visible) private javax.swing.JCheckBoxMenuItem mnuViewToolbar; private javax.swing.JPanel onlLoadoutControls; private javax.swing.JPanel pnlAdditionalFluff; - private javax.swing.JPanel pnlAmmunition; private javax.swing.JPanel pnlArmor; private javax.swing.JPanel pnlArmorInfo; private javax.swing.JPanel pnlArmorSetup; - private javax.swing.JPanel pnlArtillery; private javax.swing.JPanel pnlBFStats; - private javax.swing.JPanel pnlBallistic; private javax.swing.JPanel pnlBasicInformation; private javax.swing.JPanel pnlBasicSetup; private javax.swing.JPanel pnlBasicSummary; @@ -15422,10 +15080,8 @@ private void setViewToolbar(boolean Visible) private javax.swing.JPanel pnlCriticals; private javax.swing.JPanel pnlDamageChart; private javax.swing.JPanel pnlDeployment; - private javax.swing.JPanel pnlEnergy; private javax.swing.JPanel pnlEquipInfo; private javax.swing.JPanel pnlEquipment; - private javax.swing.JPanel pnlEquipmentChooser; private javax.swing.JPanel pnlEquipmentToPlace; private javax.swing.JPanel pnlExport; private javax.swing.JPanel pnlFluff; @@ -15444,13 +15100,11 @@ private void setViewToolbar(boolean Visible) private javax.swing.JPanel pnlLTCrits; private javax.swing.JPanel pnlLTRArmorBox; private javax.swing.JPanel pnlManufacturers; - private javax.swing.JPanel pnlMissile; private javax.swing.JPanel pnlMovement; private javax.swing.JPanel pnlNotables; private javax.swing.JPanel pnlOmniInfo; private javax.swing.JPanel pnlOverview; private javax.swing.JPanel pnlPatchworkChoosers; - private javax.swing.JPanel pnlPhysical; private javax.swing.JPanel pnlQuirks; private javax.swing.JPanel pnlRAArmorBox; private javax.swing.JPanel pnlRACrits; diff --git a/ssw/src/main/java/ssw/gui/frmMainWide.java b/ssw/src/main/java/ssw/gui/frmMainWide.java index 16840c6f..de7b4565 100644 --- a/ssw/src/main/java/ssw/gui/frmMainWide.java +++ b/ssw/src/main/java/ssw/gui/frmMainWide.java @@ -49,6 +49,7 @@ import visitors.ifVisitor; import javax.swing.*; +import javax.swing.event.ListSelectionListener; import javax.swing.text.JTextComponent; import java.awt.*; import java.awt.datatransfer.DataFlavor; @@ -4915,41 +4916,13 @@ private void initComponents() { lblPWRLLoc = new javax.swing.JLabel(); pnlEquipment = new javax.swing.JPanel(); tbpWeaponChooser = new javax.swing.JTabbedPane(); - pnlBallistic = new javax.swing.JPanel(); - jSeparator3 = new javax.swing.JSeparator(); - jScrollPane8 = new javax.swing.JScrollPane(); lstChooseBallistic = new javax.swing.JList(); - jSeparator4 = new javax.swing.JSeparator(); - pnlEnergy = new javax.swing.JPanel(); - jSeparator2 = new javax.swing.JSeparator(); - jScrollPane9 = new javax.swing.JScrollPane(); lstChooseEnergy = new javax.swing.JList(); - jSeparator1 = new javax.swing.JSeparator(); - pnlMissile = new javax.swing.JPanel(); - jSeparator5 = new javax.swing.JSeparator(); - jScrollPane19 = new javax.swing.JScrollPane(); lstChooseMissile = new javax.swing.JList(); - jSeparator6 = new javax.swing.JSeparator(); - pnlPhysical = new javax.swing.JPanel(); - jSeparator8 = new javax.swing.JSeparator(); - jScrollPane20 = new javax.swing.JScrollPane(); lstChoosePhysical = new javax.swing.JList(); - jSeparator7 = new javax.swing.JSeparator(); - pnlEquipmentChooser = new javax.swing.JPanel(); - jSeparator10 = new javax.swing.JSeparator(); - jScrollPane21 = new javax.swing.JScrollPane(); lstChooseEquipment = new javax.swing.JList(); - jSeparator9 = new javax.swing.JSeparator(); - pnlArtillery = new javax.swing.JPanel(); - jSeparator18 = new javax.swing.JSeparator(); - jScrollPane24 = new javax.swing.JScrollPane(); lstChooseArtillery = new javax.swing.JList(); - jSeparator19 = new javax.swing.JSeparator(); - pnlAmmunition = new javax.swing.JPanel(); - jSeparator11 = new javax.swing.JSeparator(); - jScrollPane22 = new javax.swing.JScrollPane(); lstChooseAmmunition = new javax.swing.JList(); - jSeparator12 = new javax.swing.JSeparator(); pnlSpecials = new javax.swing.JPanel(); jLabel16 = new javax.swing.JLabel(); chkUseTC = new javax.swing.JCheckBox(); @@ -7534,339 +7507,32 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pnlEquipment.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); - tbpWeaponChooser.setTabPlacement(javax.swing.JTabbedPane.RIGHT); - tbpWeaponChooser.setMaximumSize(new java.awt.Dimension(300, 300)); - tbpWeaponChooser.setMinimumSize(new java.awt.Dimension(300, 300)); - tbpWeaponChooser.setPreferredSize(new java.awt.Dimension(300, 300)); - - pnlBallistic.setLayout(new javax.swing.BoxLayout(pnlBallistic, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator3.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator3.setAlignmentX(0.0F); - jSeparator3.setAlignmentY(0.0F); - pnlBallistic.add(jSeparator3); - - jScrollPane8.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane8.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane8.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane8.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane8.setPreferredSize(new java.awt.Dimension(200, 260)); - - lstChooseBallistic.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseBallistic.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseBallistic.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseBallistic.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseBallistic.setVisibleRowCount(16); - lstChooseBallistic.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseBallisticValueChanged(evt); - } - }); - MouseListener mlBallistic = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } - }; - lstChooseBallistic.addMouseListener( mlBallistic ); - lstChooseBallistic.setCellRenderer( new ssw.gui.EquipmentListRenderer( this ) ); - jScrollPane8.setViewportView(lstChooseBallistic); - - pnlBallistic.add(jScrollPane8); - - jSeparator4.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator4.setAlignmentX(0.0F); - jSeparator4.setAlignmentY(0.0F); - pnlBallistic.add(jSeparator4); - - tbpWeaponChooser.addTab("Ballistic", pnlBallistic); - - pnlEnergy.setLayout(new javax.swing.BoxLayout(pnlEnergy, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator2.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator2.setAlignmentX(0.0F); - jSeparator2.setAlignmentY(0.0F); - pnlEnergy.add(jSeparator2); - - jScrollPane9.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane9.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane9.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane9.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane9.setPreferredSize(new java.awt.Dimension(200, 260)); - - lstChooseEnergy.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseEnergy.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseEnergy.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseEnergy.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseEnergy.setVisibleRowCount(16); - lstChooseEnergy.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseEnergyValueChanged(evt); - } - }); - MouseListener mlEnergy = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } - }; - lstChooseEnergy.addMouseListener( mlEnergy ); - lstChooseEnergy.setCellRenderer( new ssw.gui.EquipmentListRenderer( this ) ); - jScrollPane9.setViewportView(lstChooseEnergy); - - pnlEnergy.add(jScrollPane9); - - jSeparator1.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator1.setAlignmentX(0.0F); - jSeparator1.setAlignmentY(0.0F); - pnlEnergy.add(jSeparator1); - - tbpWeaponChooser.addTab("Energy", pnlEnergy); - - pnlMissile.setLayout(new javax.swing.BoxLayout(pnlMissile, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator5.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator5.setAlignmentX(0.0F); - jSeparator5.setAlignmentY(0.0F); - pnlMissile.add(jSeparator5); - - jScrollPane19.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane19.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane19.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane19.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane19.setPreferredSize(new java.awt.Dimension(200, 260)); - - lstChooseMissile.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseMissile.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseMissile.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseMissile.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseMissile.setVisibleRowCount(16); - lstChooseMissile.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseMissileValueChanged(evt); - } - }); - MouseListener mlMissile = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } - }; - lstChooseMissile.addMouseListener( mlMissile ); - lstChooseMissile.setCellRenderer( new ssw.gui.EquipmentListRenderer( this ) ); - jScrollPane19.setViewportView(lstChooseMissile); - - pnlMissile.add(jScrollPane19); - - jSeparator6.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator6.setAlignmentX(0.0F); - jSeparator6.setAlignmentY(0.0F); - pnlMissile.add(jSeparator6); - - tbpWeaponChooser.addTab("Missile", pnlMissile); - - pnlPhysical.setLayout(new javax.swing.BoxLayout(pnlPhysical, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator8.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator8.setAlignmentX(0.0F); - jSeparator8.setAlignmentY(0.0F); - pnlPhysical.add(jSeparator8); - - jScrollPane20.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane20.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane20.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane20.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane20.setPreferredSize(new java.awt.Dimension(200, 260)); - - lstChoosePhysical.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChoosePhysical.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChoosePhysical.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChoosePhysical.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChoosePhysical.setVisibleRowCount(16); - lstChoosePhysical.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChoosePhysicalValueChanged(evt); - } - }); - MouseListener mlPhysical = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } - }; - lstChoosePhysical.addMouseListener( mlPhysical ); - lstChoosePhysical.setCellRenderer( new ssw.gui.EquipmentListRenderer( this ) ); - jScrollPane20.setViewportView(lstChoosePhysical); - - pnlPhysical.add(jScrollPane20); - - jSeparator7.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator7.setAlignmentX(0.0F); - jSeparator7.setAlignmentY(0.0F); - pnlPhysical.add(jSeparator7); - - tbpWeaponChooser.addTab("Physical", pnlPhysical); - - pnlEquipmentChooser.setLayout(new javax.swing.BoxLayout(pnlEquipmentChooser, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator10.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator10.setAlignmentX(0.0F); - jSeparator10.setAlignmentY(0.0F); - pnlEquipmentChooser.add(jSeparator10); - - jScrollPane21.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane21.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane21.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane21.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane21.setPreferredSize(new java.awt.Dimension(200, 260)); - - lstChooseEquipment.setModel(new javax.swing.AbstractListModel() { + //region Equipment Tab / Weapons and Equipment Lists + AbstractListModel placeholder = new AbstractListModel() { String[] strings = { "Placeholder" }; public int getSize() { return strings.length; } public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseEquipment.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseEquipment.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseEquipment.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseEquipment.setVisibleRowCount(16); - lstChooseEquipment.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseEquipmentValueChanged(evt); - } - }); - MouseListener mlEquipment = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } }; - lstChooseEquipment.addMouseListener( mlEquipment ); - lstChooseEquipment.setCellRenderer( new ssw.gui.EquipmentListRenderer( this ) ); - jScrollPane21.setViewportView(lstChooseEquipment); - - pnlEquipmentChooser.add(jScrollPane21); - - jSeparator9.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator9.setAlignmentX(0.0F); - jSeparator9.setAlignmentY(0.0F); - pnlEquipmentChooser.add(jSeparator9); - - tbpWeaponChooser.addTab("Equipment", pnlEquipmentChooser); - pnlArtillery.setLayout(new javax.swing.BoxLayout(pnlArtillery, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator18.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator18.setAlignmentX(0.0F); - jSeparator18.setAlignmentY(0.0F); - pnlArtillery.add(jSeparator18); - - jScrollPane24.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane24.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane24.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane24.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane24.setPreferredSize(new java.awt.Dimension(200, 260)); - - lstChooseArtillery.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseArtillery.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseArtillery.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseArtillery.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseArtillery.setVisibleRowCount(16); - lstChooseArtillery.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseArtilleryValueChanged(evt); - } - }); - MouseListener mlArtillery = new MouseAdapter() { - public void mouseClicked( MouseEvent e ) { - if ( e.getClickCount() == 2 && e.getButton() == 1 ) { - btnAddEquipActionPerformed( null ); - } - } - }; - lstChooseArtillery.addMouseListener( mlArtillery ); - lstChooseArtillery.setCellRenderer( new ssw.gui.EquipmentListRenderer( this ) ); - jScrollPane24.setViewportView(lstChooseArtillery); - - pnlArtillery.add(jScrollPane24); - - jSeparator19.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator19.setAlignmentX(0.0F); - jSeparator19.setAlignmentY(0.0F); - pnlArtillery.add(jSeparator19); - - tbpWeaponChooser.addTab("Artillery", pnlArtillery); - - pnlAmmunition.setLayout(new javax.swing.BoxLayout(pnlAmmunition, javax.swing.BoxLayout.Y_AXIS)); - - jSeparator11.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator11.setAlignmentX(0.0F); - jSeparator11.setAlignmentY(0.0F); - pnlAmmunition.add(jSeparator11); - - jScrollPane22.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane22.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); - jScrollPane22.setMaximumSize(new java.awt.Dimension(200, 260)); - jScrollPane22.setMinimumSize(new java.awt.Dimension(200, 260)); - jScrollPane22.setPreferredSize(new java.awt.Dimension(200, 260)); - - lstChooseAmmunition.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Placeholder" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - lstChooseAmmunition.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - lstChooseAmmunition.setMaximumSize(new java.awt.Dimension(180, 10000)); - lstChooseAmmunition.setMinimumSize(new java.awt.Dimension(180, 100)); - lstChooseAmmunition.setVisibleRowCount(16); - lstChooseAmmunition.addListSelectionListener(new javax.swing.event.ListSelectionListener() { - public void valueChanged(javax.swing.event.ListSelectionEvent evt) { - lstChooseAmmunitionValueChanged(evt); - } - }); - MouseListener mlAmmo = new MouseAdapter() { + MouseListener mlAddEquip = new MouseAdapter() { public void mouseClicked( MouseEvent e ) { if ( e.getClickCount() == 2 && e.getButton() == 1 ) { btnAddEquipActionPerformed( null ); } } }; - lstChooseAmmunition.addMouseListener( mlAmmo ); - lstChooseAmmunition.setCellRenderer( new ssw.gui.EquipmentListRenderer( this ) ); - jScrollPane22.setViewportView(lstChooseAmmunition); - pnlAmmunition.add(jScrollPane22); - - jSeparator12.setOrientation(javax.swing.SwingConstants.VERTICAL); - jSeparator12.setAlignmentX(0.0F); - jSeparator12.setAlignmentY(0.0F); - pnlAmmunition.add(jSeparator12); - - tbpWeaponChooser.addTab("Ammunition", pnlAmmunition); + tbpWeaponChooser.setTabPlacement(javax.swing.JTabbedPane.RIGHT); + tbpWeaponChooser.setMaximumSize(new java.awt.Dimension(300, 300)); + tbpWeaponChooser.setMinimumSize(new java.awt.Dimension(300, 300)); + tbpWeaponChooser.setPreferredSize(new java.awt.Dimension(300, 300)); + tbpWeaponChooser.addTab("Ballistic", EquipmentLocation(lstChooseBallistic, this::lstChooseBallisticValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Energy", EquipmentLocation(lstChooseEnergy, this::lstChooseEnergyValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Missile", EquipmentLocation(lstChooseMissile, this::lstChooseMissileValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Physical", EquipmentLocation(lstChoosePhysical, this::lstChoosePhysicalValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Equipment", EquipmentLocation(lstChooseEquipment, this::lstChooseEquipmentValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Artillery", EquipmentLocation(lstChooseArtillery, this::lstChooseArtilleryValueChanged, mlAddEquip, placeholder)); + tbpWeaponChooser.addTab("Ammunition", EquipmentLocation(lstChooseAmmunition, this::lstChooseAmmunitionValueChanged, mlAddEquip, placeholder)); pnlEquipment.add(tbpWeaponChooser, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 10, -1, -1)); @@ -10489,6 +10155,22 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pack(); }// </editor-fold>//GEN-END:initComponents + private JPanel EquipmentLocation(JList list, ListSelectionListener selection, MouseListener listener, AbstractListModel display) { + JPanel panel = new JPanel(); + list.setModel(display); + list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + list.addListSelectionListener(selection); + list.addMouseListener( listener ); + list.setCellRenderer( new EquipmentListRenderer( this ) ); + JScrollPane pane = new JScrollPane(); + pane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); + pane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); + pane.setViewportView(list); + panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); + panel.add(pane); + return panel; + } + private void mnuExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuExitActionPerformed if( CurMech.HasChanged() ) { int choice = javax.swing.JOptionPane.showConfirmDialog( this, @@ -15016,25 +14698,11 @@ private void setViewToolbar(boolean Visible) private javax.swing.JScrollPane jScrollPane16; private javax.swing.JScrollPane jScrollPane17; private javax.swing.JScrollPane jScrollPane18; - private javax.swing.JScrollPane jScrollPane19; - private javax.swing.JScrollPane jScrollPane20; - private javax.swing.JScrollPane jScrollPane21; - private javax.swing.JScrollPane jScrollPane22; - private javax.swing.JScrollPane jScrollPane24; - private javax.swing.JScrollPane jScrollPane8; - private javax.swing.JScrollPane jScrollPane9; - private javax.swing.JSeparator jSeparator1; - private javax.swing.JSeparator jSeparator10; - private javax.swing.JSeparator jSeparator11; - private javax.swing.JSeparator jSeparator12; private javax.swing.JSeparator jSeparator13; private javax.swing.JSeparator jSeparator14; private javax.swing.JSeparator jSeparator15; private javax.swing.JSeparator jSeparator16; private javax.swing.JSeparator jSeparator17; - private javax.swing.JSeparator jSeparator18; - private javax.swing.JSeparator jSeparator19; - private javax.swing.JSeparator jSeparator2; private javax.swing.JSeparator jSeparator20; private javax.swing.JToolBar.Separator jSeparator21; private javax.swing.JToolBar.Separator jSeparator22; @@ -15045,14 +14713,7 @@ private void setViewToolbar(boolean Visible) private javax.swing.JSeparator jSeparator27; private javax.swing.JSeparator jSeparator28; private javax.swing.JSeparator jSeparator29; - private javax.swing.JSeparator jSeparator3; private javax.swing.JSeparator jSeparator30; - private javax.swing.JSeparator jSeparator4; - private javax.swing.JSeparator jSeparator5; - private javax.swing.JSeparator jSeparator6; - private javax.swing.JSeparator jSeparator7; - private javax.swing.JSeparator jSeparator8; - private javax.swing.JSeparator jSeparator9; private javax.swing.JTextArea jTextAreaBFConversion; private javax.swing.JLabel lblAVInLot; private javax.swing.JLabel lblArmorCoverage; @@ -15228,13 +14889,10 @@ private void setViewToolbar(boolean Visible) private javax.swing.JMenuItem mnuUnlock; private javax.swing.JCheckBoxMenuItem mnuViewToolbar; private javax.swing.JPanel pnlAdditionalFluff; - private javax.swing.JPanel pnlAmmunition; private javax.swing.JPanel pnlArmor; private javax.swing.JPanel pnlArmorInfo; private javax.swing.JPanel pnlArmorSetup; - private javax.swing.JPanel pnlArtillery; private javax.swing.JPanel pnlBFStats; - private javax.swing.JPanel pnlBallistic; private javax.swing.JPanel pnlBasicInformation; private javax.swing.JPanel pnlBasicSetup; private javax.swing.JPanel pnlBasicSummary; @@ -15247,10 +14905,8 @@ private void setViewToolbar(boolean Visible) private javax.swing.JPanel pnlControls; private javax.swing.JPanel pnlDamageChart; private javax.swing.JPanel pnlDeployment; - private javax.swing.JPanel pnlEnergy; private javax.swing.JPanel pnlEquipInfo; private javax.swing.JPanel pnlEquipment; - private javax.swing.JPanel pnlEquipmentChooser; private javax.swing.JPanel pnlEquipmentToPlace; private javax.swing.JPanel pnlExport; private javax.swing.JPanel pnlFluff; @@ -15269,13 +14925,11 @@ private void setViewToolbar(boolean Visible) private javax.swing.JPanel pnlLTCrits; private javax.swing.JPanel pnlLTRArmorBox; private javax.swing.JPanel pnlManufacturers; - private javax.swing.JPanel pnlMissile; private javax.swing.JPanel pnlMovement; private javax.swing.JPanel pnlNotables; private javax.swing.JPanel pnlOmniInfo; private javax.swing.JPanel pnlOverview; private javax.swing.JPanel pnlPatchworkChoosers; - private javax.swing.JPanel pnlPhysical; private javax.swing.JPanel pnlQuirks; private javax.swing.JPanel pnlRAArmorBox; private javax.swing.JPanel pnlRACrits; From fc42626a8f861add8a588a9b13f420b51185f565 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sat, 2 Dec 2023 14:45:08 -0800 Subject: [PATCH 156/199] Fix wide CV GUI using SSW prefs instead of SAW prefs --- saw/src/main/java/saw/gui/frmVeeWide.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index b6575287..6321ef0e 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -146,7 +146,7 @@ public frmVeeWide() { CurVee = new CombatVehicle( ); initComponents(); - Prefs = Preferences.userRoot().node( Constants.SSWPrefs ); + Prefs = Preferences.userRoot().node( Constants.SAWPrefs ); ArmorTons = new VSetArmorTonnage( Prefs ); cmbMotiveTypeActionPerformed(null); spnTonnageStateChanged(null); From c2ad7d14fe50a3a231ec713054e6ffbb8c4ca998 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sat, 2 Dec 2023 13:40:59 -0800 Subject: [PATCH 157/199] Sync SAW dlgPrefs.form with dlgPrefs.java --- saw/src/main/java/saw/gui/dlgPrefs.form | 18 ++++++++++++++++-- saw/src/main/java/saw/gui/dlgPrefs.java | 2 +- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/saw/src/main/java/saw/gui/dlgPrefs.form b/saw/src/main/java/saw/gui/dlgPrefs.form index fa547927..3e0190d6 100644 --- a/saw/src/main/java/saw/gui/dlgPrefs.form +++ b/saw/src/main/java/saw/gui/dlgPrefs.form @@ -16,6 +16,7 @@ </Properties> <SyntheticProperties> <SyntheticProperty name="formSizePolicy" type="int" value="1"/> + <SyntheticProperty name="generateCenter" type="boolean" value="false"/> </SyntheticProperties> <AuxValues> <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/> @@ -1224,7 +1225,7 @@ </Component> <Component class="javax.swing.JCheckBox" name="chkLoadLastMech"> <Properties> - <Property name="text" type="java.lang.String" value="Load last 'Mech on startup"/> + <Property name="text" type="java.lang.String" value="Load last Vee on startup"/> </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> @@ -1380,13 +1381,26 @@ </Constraint> </Constraints> </Component> + <Component class="javax.swing.JRadioButton" name="rdoLargescreen"> + <Properties> + <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor"> + <ComponentRef name="btgScreenSize"/> + </Property> + <Property name="text" type="java.lang.String" value="Large Screen (1600 wide)"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="0" gridY="2" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> <Component class="javax.swing.JLabel" name="lblScreenSizeNotice"> <Properties> <Property name="text" type="java.lang.String" value="Change requires restart of SSW."/> </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="0" gridY="2" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/> + <GridBagConstraints gridX="0" gridY="3" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/> </Constraint> </Constraints> </Component> diff --git a/saw/src/main/java/saw/gui/dlgPrefs.java b/saw/src/main/java/saw/gui/dlgPrefs.java index 7f1408de..d635abf0 100644 --- a/saw/src/main/java/saw/gui/dlgPrefs.java +++ b/saw/src/main/java/saw/gui/dlgPrefs.java @@ -1731,9 +1731,9 @@ private void btnDefaultImagePathActionPerformed(java.awt.event.ActionEvent evt) private javax.swing.JRadioButton rdoArmorTorsoPriority; private javax.swing.JRadioButton rdoExportSortIn; private javax.swing.JRadioButton rdoExportSortOut; + private javax.swing.JRadioButton rdoLargescreen; private javax.swing.JRadioButton rdoNormalSize; private javax.swing.JRadioButton rdoWidescreen; - private javax.swing.JRadioButton rdoLargescreen; private javax.swing.JTextField txtAmmoExportName; private javax.swing.JTextField txtAmmoPrintName; private javax.swing.JTextField txtCTRArmor; From 091835df891968eae92cf59845428cf1670707fa Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sat, 2 Dec 2023 11:39:43 -0800 Subject: [PATCH 158/199] Allow loading units with unknown equipment, fix a backcompat check --- sswlib/src/main/java/filehandlers/CVReader.java | 8 +++++--- sswlib/src/main/java/filehandlers/MechReader.java | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/sswlib/src/main/java/filehandlers/CVReader.java b/sswlib/src/main/java/filehandlers/CVReader.java index 576d5305..3f0892db 100644 --- a/sswlib/src/main/java/filehandlers/CVReader.java +++ b/sswlib/src/main/java/filehandlers/CVReader.java @@ -557,7 +557,8 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) } else { abPlaceable p = GetEquipmentByName( eName, eType, m ); if( p == null ) { - throw new Exception( "Could not find " + eName + " as a piece of equipment.\nThe CombatVehicle cannot be loaded." ); + Messages += "Could not find " + eName + " as a piece of equipment.\n"; + continue; } p.SetManufacturer( eMan ); if( p instanceof Equipment ) { @@ -1024,7 +1025,8 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) } else { abPlaceable p = GetEquipmentByName( eName, eType, m ); if( p == null ) { - throw new Exception( "Could not find " + eName + " as a piece of equipment.\nThe CombatVehicle cannot be loaded." ); + Messages += "Could not find " + eName + " as a piece of equipment.\n"; + continue; } p.SetManufacturer( eMan ); if( p instanceof Equipment ) { @@ -1211,7 +1213,7 @@ private abPlaceable GetEquipmentByName( String name, String type, CombatVehicle name = FileCommon.LookupStripArc( name ); } } - if( ! name.contains( "(CL)" ) |! name.contains( "(IS)" ) ) { + if( ! name.contains( "(CL)" ) && ! name.contains( "(IS)" ) ) { // old style save file or an item that can be used by both techbases // we'll need to check. if( m.GetTechbase() == AvailableCode.TECH_CLAN ) { diff --git a/sswlib/src/main/java/filehandlers/MechReader.java b/sswlib/src/main/java/filehandlers/MechReader.java index 44c15459..b696f241 100644 --- a/sswlib/src/main/java/filehandlers/MechReader.java +++ b/sswlib/src/main/java/filehandlers/MechReader.java @@ -820,7 +820,8 @@ private Mech BuildMech( Mech m, Document d, DataFactory f ) throws Exception { if (eName.equals("Drone Operating System")) {m.AddDroneOS();} if( p == null ) { - throw new Exception( "Could not find " + eName + " as a piece of equipment.\nThe Mech cannot be loaded." ); + Messages += "Could not find " + eName + " as a piece of equipment.\n"; + continue; } p.SetManufacturer( eMan ); if( p instanceof Equipment ) { @@ -1585,7 +1586,8 @@ private Mech BuildMech( Mech m, Document d, DataFactory f ) throws Exception { } abPlaceable p = GetEquipmentByName( eName, eType, m ); if( p == null ) { - throw new Exception( "Could not find " + eName + " as a piece of equipment.\nThe Mech cannot be loaded." ); + Messages += "Could not find " + eName + " as a piece of equipment.\n"; + continue; } p.SetManufacturer( eMan ); if( p instanceof Equipment ) { @@ -1856,7 +1858,7 @@ private abPlaceable GetEquipmentByName( String name, String type, Mech m ) { name = FileCommon.LookupStripArc( name ); } } - if( ! name.contains( "(CL)" ) |! name.contains( "(IS)" ) ) { + if( ! name.contains( "(CL)" ) && ! name.contains( "(IS)" ) ) { // old style save file or an item that can be used by both techbases // we'll need to check. if( m.GetTechbase() == AvailableCode.TECH_CLAN ) { From 5e5357fc9101e70487f3e983ebf4fab74c7663e6 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sat, 2 Dec 2023 23:53:11 -0800 Subject: [PATCH 159/199] Allow loading units with equipment in invalid locations --- .../src/main/java/filehandlers/CVReader.java | 36 ++- .../main/java/filehandlers/MechReader.java | 270 +++++++++--------- 2 files changed, 163 insertions(+), 143 deletions(-) diff --git a/sswlib/src/main/java/filehandlers/CVReader.java b/sswlib/src/main/java/filehandlers/CVReader.java index 3f0892db..fb4c3d4d 100644 --- a/sswlib/src/main/java/filehandlers/CVReader.java +++ b/sswlib/src/main/java/filehandlers/CVReader.java @@ -575,7 +575,12 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) ((VehicularGrenadeLauncher) p).SetArc( VGLArc ); ((VehicularGrenadeLauncher) p).SetAmmoType( VGLAmmo ); } - m.GetLoadout().AddTo(p, l.Location); + try { + m.GetLoadout().AddTo(p, l.Location); + } catch (Exception e) { + Messages += e.toString(); + continue; + } } } else if( n.item( i ).getNodeName().equals( "armored_locations" ) ) { NodeList nl = n.item( i ).getChildNodes(); @@ -1028,20 +1033,25 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) Messages += "Could not find " + eName + " as a piece of equipment.\n"; continue; } - p.SetManufacturer( eMan ); - if( p instanceof Equipment ) { - if( ((Equipment) p).IsVariableSize() ) { - ((Equipment) p).SetTonnage( vtons ); + try { + p.SetManufacturer( eMan ); + if( p instanceof Equipment ) { + if( ((Equipment) p).IsVariableSize() ) { + ((Equipment) p).SetTonnage( vtons ); + } } + if( ( p instanceof Ammunition ) && lotsize > 0 ) { + ((Ammunition) p).SetLotSize( lotsize ); + } + if( p instanceof VehicularGrenadeLauncher ) { + ((VehicularGrenadeLauncher) p).SetArc( VGLArc ); + ((VehicularGrenadeLauncher) p).SetAmmoType( VGLAmmo ); + } + m.GetLoadout().AddTo(p, l.Location); + } catch( Exception e ) { + Messages += e.toString(); + continue; } - if( ( p instanceof Ammunition ) && lotsize > 0 ) { - ((Ammunition) p).SetLotSize( lotsize ); - } - if( p instanceof VehicularGrenadeLauncher ) { - ((VehicularGrenadeLauncher) p).SetArc( VGLArc ); - ((VehicularGrenadeLauncher) p).SetAmmoType( VGLAmmo ); - } - m.GetLoadout().AddTo(p, l.Location); } } else if( n.item( i ).getNodeName().equals( "armored_locations" ) ) { NodeList nl = n.item( i ).getChildNodes(); diff --git a/sswlib/src/main/java/filehandlers/MechReader.java b/sswlib/src/main/java/filehandlers/MechReader.java index b696f241..ef3158b0 100644 --- a/sswlib/src/main/java/filehandlers/MechReader.java +++ b/sswlib/src/main/java/filehandlers/MechReader.java @@ -823,84 +823,89 @@ private Mech BuildMech( Mech m, Document d, DataFactory f ) throws Exception { Messages += "Could not find " + eName + " as a piece of equipment.\n"; continue; } - p.SetManufacturer( eMan ); - if( p instanceof Equipment ) { - if( ((Equipment) p).IsVariableSize() ) { - ((Equipment) p).SetTonnage( vtons ); - } - } - if( ( p instanceof Ammunition ) && lotsize > 0 ) { - ((Ammunition) p).SetLotSize( lotsize ); - } - if( p.CanSplit() ) { - if( splitLoc.size() > 0 ) { - m.GetLoadout().AddToQueue( p ); - // have to do a hack here because we're using non-standard - // allocation methods. - m.GetLoadout().RemoveFromQueue( p ); - for( int j = 0; j < splitLoc.size(); j++ ) { - LocationIndex li = (LocationIndex) splitLoc.get( j ); - m.GetLoadout().AddTo( m.GetLoadout().GetCrits( li.Location ), p, li.Index, li.Number ); + try { + p.SetManufacturer( eMan ); + if( p instanceof Equipment ) { + if( ((Equipment) p).IsVariableSize() ) { + ((Equipment) p).SetTonnage( vtons ); } - } else { - m.GetLoadout().AddToQueue( p ); - m.GetLoadout().AddTo( p, l.Location, l.Index ); } - } else { - if( p instanceof Talons ) { - p.Place( m.GetLoadout() ); - } else { - m.GetLoadout().AddToQueue( p ); - m.GetLoadout().AddTo( p, l.Location, l.Index ); + if( ( p instanceof Ammunition ) && lotsize > 0 ) { + ((Ammunition) p).SetLotSize( lotsize ); } - if( turreted ) { - if( l.Location == LocationIndex.MECH_LOC_HD ) { - if( ( p instanceof RangedWeapon ) || ( p instanceof MGArray ) ) { - if( ! m.GetLoadout().HasHDTurret() ) { - throw new Exception( "A weapon was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); - } - if( p instanceof MGArray ) { - ((MGArray) p).AddToTurret( m.GetLoadout().GetHDTurret() ); - } else { - ((RangedWeapon) p).AddToTurret( m.GetLoadout().GetHDTurret() ); - } - } else { - throw new Exception( "An item that is not a weapon was specified as turreted\nbut only weapons can be turreted.\nThe 'Mech cannot be loaded." ); + if( p.CanSplit() ) { + if( splitLoc.size() > 0 ) { + m.GetLoadout().AddToQueue( p ); + // have to do a hack here because we're using non-standard + // allocation methods. + m.GetLoadout().RemoveFromQueue( p ); + for( int j = 0; j < splitLoc.size(); j++ ) { + LocationIndex li = (LocationIndex) splitLoc.get( j ); + m.GetLoadout().AddTo( m.GetLoadout().GetCrits( li.Location ), p, li.Index, li.Number ); } - } else if( l.Location == LocationIndex.MECH_LOC_LT ) { - if( ( p instanceof RangedWeapon ) || ( p instanceof MGArray ) ) { - if( ! m.GetLoadout().HasLTTurret() ) { - throw new Exception( "A weapon was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); - } - if( p instanceof MGArray ) { - ((MGArray) p).AddToTurret( m.GetLoadout().GetLTTurret() ); + } else { + m.GetLoadout().AddToQueue( p ); + m.GetLoadout().AddTo( p, l.Location, l.Index ); + } + } else { + if( p instanceof Talons ) { + p.Place( m.GetLoadout() ); + } else { + m.GetLoadout().AddToQueue( p ); + m.GetLoadout().AddTo( p, l.Location, l.Index ); + } + if( turreted ) { + if( l.Location == LocationIndex.MECH_LOC_HD ) { + if( ( p instanceof RangedWeapon ) || ( p instanceof MGArray ) ) { + if( ! m.GetLoadout().HasHDTurret() ) { + throw new Exception( "A weapon was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); + } + if( p instanceof MGArray ) { + ((MGArray) p).AddToTurret( m.GetLoadout().GetHDTurret() ); + } else { + ((RangedWeapon) p).AddToTurret( m.GetLoadout().GetHDTurret() ); + } } else { - ((RangedWeapon) p).AddToTurret( m.GetLoadout().GetLTTurret() ); + throw new Exception( "An item that is not a weapon was specified as turreted\nbut only weapons can be turreted.\nThe 'Mech cannot be loaded." ); } - } else { - throw new Exception( "An item that is not a weapon was specified as turreted\nbut only weapons can be turreted.\nThe 'Mech cannot be loaded." ); - } - } else if( l.Location == LocationIndex.MECH_LOC_RT ) { - if( ( p instanceof RangedWeapon ) || ( p instanceof MGArray ) ) { - if( ! m.GetLoadout().HasRTTurret() ) { - throw new Exception( "A weapon was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); + } else if( l.Location == LocationIndex.MECH_LOC_LT ) { + if( ( p instanceof RangedWeapon ) || ( p instanceof MGArray ) ) { + if( ! m.GetLoadout().HasLTTurret() ) { + throw new Exception( "A weapon was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); + } + if( p instanceof MGArray ) { + ((MGArray) p).AddToTurret( m.GetLoadout().GetLTTurret() ); + } else { + ((RangedWeapon) p).AddToTurret( m.GetLoadout().GetLTTurret() ); + } + } else { + throw new Exception( "An item that is not a weapon was specified as turreted\nbut only weapons can be turreted.\nThe 'Mech cannot be loaded." ); } - if( p instanceof MGArray ) { - ((MGArray) p).AddToTurret( m.GetLoadout().GetRTTurret() ); + } else if( l.Location == LocationIndex.MECH_LOC_RT ) { + if( ( p instanceof RangedWeapon ) || ( p instanceof MGArray ) ) { + if( ! m.GetLoadout().HasRTTurret() ) { + throw new Exception( "A weapon was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); + } + if( p instanceof MGArray ) { + ((MGArray) p).AddToTurret( m.GetLoadout().GetRTTurret() ); + } else { + ((RangedWeapon) p).AddToTurret( m.GetLoadout().GetRTTurret() ); + } } else { - ((RangedWeapon) p).AddToTurret( m.GetLoadout().GetRTTurret() ); + throw new Exception( "An item that is not a weapon was specified as turreted\nbut only weapons can be turreted.\nThe 'Mech cannot be loaded." ); } } else { - throw new Exception( "An item that is not a weapon was specified as turreted\nbut only weapons can be turreted.\nThe 'Mech cannot be loaded." ); + throw new Exception( "A weapon was specified as turreted, but it is\nnot in a location that can have a turret.\nThe 'Mech cannot be loaded." ); } - } else { - throw new Exception( "A weapon was specified as turreted, but it is\nnot in a location that can have a turret.\nThe 'Mech cannot be loaded." ); } } - } - if( p instanceof VehicularGrenadeLauncher ) { - ((VehicularGrenadeLauncher) p).SetArc( VGLArc ); - ((VehicularGrenadeLauncher) p).SetAmmoType( VGLAmmo ); + if( p instanceof VehicularGrenadeLauncher ) { + ((VehicularGrenadeLauncher) p).SetArc( VGLArc ); + ((VehicularGrenadeLauncher) p).SetAmmoType( VGLAmmo ); + } + } catch( Exception e ) { + Messages += e.toString(); + continue; } } } else if( n.item( i ).getNodeName().equals( "armored_locations" ) ) { @@ -1589,84 +1594,89 @@ private Mech BuildMech( Mech m, Document d, DataFactory f ) throws Exception { Messages += "Could not find " + eName + " as a piece of equipment.\n"; continue; } - p.SetManufacturer( eMan ); - if( p instanceof Equipment ) { - if( ((Equipment) p).IsVariableSize() ) { - ((Equipment) p).SetTonnage( vtons ); - } - } - if( ( p instanceof Ammunition ) && lotsize > 0 ) { - ((Ammunition) p).SetLotSize( lotsize ); - } - if( p.CanSplit() ) { - if( splitLoc.size() > 0 ) { - m.GetLoadout().AddToQueue( p ); - // have to do a hack here because we're using non-standard - // allocation methods. - m.GetLoadout().RemoveFromQueue( p ); - for( int j = 0; j < splitLoc.size(); j++ ) { - LocationIndex li = (LocationIndex) splitLoc.get( j ); - m.GetLoadout().AddTo( m.GetLoadout().GetCrits( li.Location ), p, li.Index, li.Number ); + try { + p.SetManufacturer( eMan ); + if( p instanceof Equipment ) { + if( ((Equipment) p).IsVariableSize() ) { + ((Equipment) p).SetTonnage( vtons ); } - } else { - m.GetLoadout().AddToQueue( p ); - m.GetLoadout().AddTo( p, l.Location, l.Index ); } - } else { - if( p instanceof Talons ) { - if( ! p.Place( m.GetLoadout() ) ) { - throw new Exception( "Talons cannot be added to the 'Mech because there is no available space." ); + if( ( p instanceof Ammunition ) && lotsize > 0 ) { + ((Ammunition) p).SetLotSize( lotsize ); + } + if( p.CanSplit() ) { + if( splitLoc.size() > 0 ) { + m.GetLoadout().AddToQueue( p ); + // have to do a hack here because we're using non-standard + // allocation methods. + m.GetLoadout().RemoveFromQueue( p ); + for( int j = 0; j < splitLoc.size(); j++ ) { + LocationIndex li = (LocationIndex) splitLoc.get( j ); + m.GetLoadout().AddTo( m.GetLoadout().GetCrits( li.Location ), p, li.Index, li.Number ); + } + } else { + m.GetLoadout().AddToQueue( p ); + m.GetLoadout().AddTo( p, l.Location, l.Index ); } } else { - m.GetLoadout().AddToQueue( p ); - m.GetLoadout().AddTo( p, l.Location, l.Index ); - } - if( turreted ) { - if( l.Location == LocationIndex.MECH_LOC_HD ) { - if( ( p instanceof RangedWeapon ) || ( p instanceof MGArray ) ) { - if( ! m.GetLoadout().HasHDTurret() ) { - throw new Exception( "A weapon was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); - } - if( p instanceof MGArray ) { - ((MGArray) p).AddToTurret( m.GetLoadout().GetHDTurret() ); - } else { - ((RangedWeapon) p).AddToTurret( m.GetLoadout().GetHDTurret() ); - } - } else { - throw new Exception( "An item that is not a weapon was specified as turreted\nbut only weapons can be turreted.\nThe 'Mech cannot be loaded." ); + if( p instanceof Talons ) { + if( ! p.Place( m.GetLoadout() ) ) { + throw new Exception( "Talons cannot be added to the 'Mech because there is no available space." ); } - } else if( l.Location == LocationIndex.MECH_LOC_LT ) { - if( ( p instanceof RangedWeapon ) || ( p instanceof MGArray ) ) { - if( ! m.GetLoadout().HasLTTurret() ) { - throw new Exception( "A weapon was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); - } - if( p instanceof MGArray ) { - ((MGArray) p).AddToTurret( m.GetLoadout().GetLTTurret() ); + } else { + m.GetLoadout().AddToQueue( p ); + m.GetLoadout().AddTo( p, l.Location, l.Index ); + } + if( turreted ) { + if( l.Location == LocationIndex.MECH_LOC_HD ) { + if( ( p instanceof RangedWeapon ) || ( p instanceof MGArray ) ) { + if( ! m.GetLoadout().HasHDTurret() ) { + throw new Exception( "A weapon was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); + } + if( p instanceof MGArray ) { + ((MGArray) p).AddToTurret( m.GetLoadout().GetHDTurret() ); + } else { + ((RangedWeapon) p).AddToTurret( m.GetLoadout().GetHDTurret() ); + } } else { - ((RangedWeapon) p).AddToTurret( m.GetLoadout().GetLTTurret() ); + throw new Exception( "An item that is not a weapon was specified as turreted\nbut only weapons can be turreted.\nThe 'Mech cannot be loaded." ); } - } else { - throw new Exception( "An item that is not a weapon was specified as turreted\nbut only weapons can be turreted.\nThe 'Mech cannot be loaded." ); - } - } else if( l.Location == LocationIndex.MECH_LOC_RT ) { - if( ( p instanceof RangedWeapon ) || ( p instanceof MGArray ) ) { - if( ! m.GetLoadout().HasRTTurret() ) { - throw new Exception( "A weapon was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); + } else if( l.Location == LocationIndex.MECH_LOC_LT ) { + if( ( p instanceof RangedWeapon ) || ( p instanceof MGArray ) ) { + if( ! m.GetLoadout().HasLTTurret() ) { + throw new Exception( "A weapon was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); + } + if( p instanceof MGArray ) { + ((MGArray) p).AddToTurret( m.GetLoadout().GetLTTurret() ); + } else { + ((RangedWeapon) p).AddToTurret( m.GetLoadout().GetLTTurret() ); + } + } else { + throw new Exception( "An item that is not a weapon was specified as turreted\nbut only weapons can be turreted.\nThe 'Mech cannot be loaded." ); } - if( p instanceof MGArray ) { - ((MGArray) p).AddToTurret( m.GetLoadout().GetRTTurret() ); + } else if( l.Location == LocationIndex.MECH_LOC_RT ) { + if( ( p instanceof RangedWeapon ) || ( p instanceof MGArray ) ) { + if( ! m.GetLoadout().HasRTTurret() ) { + throw new Exception( "A weapon was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); + } + if( p instanceof MGArray ) { + ((MGArray) p).AddToTurret( m.GetLoadout().GetRTTurret() ); + } else { + ((RangedWeapon) p).AddToTurret( m.GetLoadout().GetRTTurret() ); + } } else { - ((RangedWeapon) p).AddToTurret( m.GetLoadout().GetRTTurret() ); + throw new Exception( "An item that is not a weapon was specified as turreted\nbut only weapons can be turreted.\nThe 'Mech cannot be loaded." ); } - } else { - throw new Exception( "An item that is not a weapon was specified as turreted\nbut only weapons can be turreted.\nThe 'Mech cannot be loaded." ); } } } - } - if( p instanceof VehicularGrenadeLauncher ) { - ((VehicularGrenadeLauncher) p).SetArc( VGLArc ); - ((VehicularGrenadeLauncher) p).SetAmmoType( VGLAmmo ); + if( p instanceof VehicularGrenadeLauncher ) { + ((VehicularGrenadeLauncher) p).SetArc( VGLArc ); + ((VehicularGrenadeLauncher) p).SetAmmoType( VGLAmmo ); + } + } catch( Exception e ) { + Messages += e.toString(); + continue; } } } else if( n.item( i ).getNodeName().equals( "armored_locations" ) ) { From 137657f823aa5cb1634aab24052fe8e97b8626da Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sat, 2 Dec 2023 13:01:17 -0800 Subject: [PATCH 160/199] Unit saving no longer wipes file on error, handle unexpected RuntimeException --- sswlib/src/main/java/filehandlers/CVWriter.java | 15 ++++++++++++--- sswlib/src/main/java/filehandlers/MechWriter.java | 15 ++++++++++++--- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/sswlib/src/main/java/filehandlers/CVWriter.java b/sswlib/src/main/java/filehandlers/CVWriter.java index 355c5b81..661c05ad 100644 --- a/sswlib/src/main/java/filehandlers/CVWriter.java +++ b/sswlib/src/main/java/filehandlers/CVWriter.java @@ -32,6 +32,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; +import java.io.StringWriter; import java.util.ArrayList; import common.*; import battleforce.BattleForceStats; @@ -51,16 +52,24 @@ public CVWriter( CombatVehicle v ) { } public void WriteXML( String filename ) throws IOException { - //BufferedWriter FR = new BufferedWriter( new FileWriter( filename ) ); - BufferedWriter FR = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( filename ), "UTF-8" ) ); + StringWriter stringWriter = new StringWriter(); + BufferedWriter FR = new BufferedWriter( stringWriter ); // beginning of an XML file: FR.write( "<?xml version=\"1.0\" encoding =\"UTF-8\"?>" ); FR.newLine(); - WriteXML(FR); + try { + WriteXML(FR); + } catch ( RuntimeException e ) { + throw new IOException( e ); + } FR.close(); + + try( OutputStreamWriter writer = new OutputStreamWriter( new FileOutputStream( filename ), "UTF-8" ) ) { + writer.write(stringWriter.toString()); + } } public void WriteXML( BufferedWriter FR ) throws IOException { diff --git a/sswlib/src/main/java/filehandlers/MechWriter.java b/sswlib/src/main/java/filehandlers/MechWriter.java index 3bc95562..4ae1d70d 100644 --- a/sswlib/src/main/java/filehandlers/MechWriter.java +++ b/sswlib/src/main/java/filehandlers/MechWriter.java @@ -32,6 +32,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; +import java.io.StringWriter; import java.util.ArrayList; import common.*; import battleforce.BattleForceStats; @@ -51,16 +52,24 @@ public MechWriter( Mech m ) { } public void WriteXML( String filename ) throws IOException { - //BufferedWriter FR = new BufferedWriter( new FileWriter( filename ) ); - BufferedWriter FR = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( filename ), "UTF-8" ) ); + StringWriter stringWriter = new StringWriter(); + BufferedWriter FR = new BufferedWriter( stringWriter ); // beginning of an XML file: FR.write( "<?xml version=\"1.0\" encoding =\"UTF-8\"?>" ); FR.newLine(); - WriteXML(FR); + try { + WriteXML(FR); + } catch ( RuntimeException e ) { + throw new IOException( e ); + } FR.close(); + + try( OutputStreamWriter writer = new OutputStreamWriter( new FileOutputStream( filename ), "UTF-8" ) ) { + writer.write(stringWriter.toString()); + } } public void WriteXML( BufferedWriter FR ) throws IOException { From ffc0d62e32f29e194cb8f79eed55e9b634adb345 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Fri, 10 Nov 2023 05:34:16 -0800 Subject: [PATCH 161/199] Remove "Structure" from chassis CritName for consistency --- sswlib/src/main/java/states/stChassisISCOBP.java | 2 +- sswlib/src/main/java/states/stChassisISCOQD.java | 2 +- sswlib/src/main/java/states/stChassisPBMBP.java | 2 +- sswlib/src/main/java/states/stChassisPBMQD.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sswlib/src/main/java/states/stChassisISCOBP.java b/sswlib/src/main/java/states/stChassisISCOBP.java index 8e08afeb..ef6a31c4 100644 --- a/sswlib/src/main/java/states/stChassisISCOBP.java +++ b/sswlib/src/main/java/states/stChassisISCOBP.java @@ -76,7 +76,7 @@ public String ActualName() { } public String CritName() { - return "Composite Structure"; + return "Composite"; } public String LookupName() { diff --git a/sswlib/src/main/java/states/stChassisISCOQD.java b/sswlib/src/main/java/states/stChassisISCOQD.java index df1f6390..45820f4a 100644 --- a/sswlib/src/main/java/states/stChassisISCOQD.java +++ b/sswlib/src/main/java/states/stChassisISCOQD.java @@ -76,7 +76,7 @@ public String ActualName() { } public String CritName() { - return "Composite Structure"; + return "Composite"; } public String LookupName() { diff --git a/sswlib/src/main/java/states/stChassisPBMBP.java b/sswlib/src/main/java/states/stChassisPBMBP.java index d7e18cf2..4b6ab53b 100644 --- a/sswlib/src/main/java/states/stChassisPBMBP.java +++ b/sswlib/src/main/java/states/stChassisPBMBP.java @@ -79,7 +79,7 @@ public String ActualName() { } public String CritName() { - return "Primitive Structure"; + return "Primitive"; } public String LookupName() { diff --git a/sswlib/src/main/java/states/stChassisPBMQD.java b/sswlib/src/main/java/states/stChassisPBMQD.java index 36a74fc4..07e63acf 100644 --- a/sswlib/src/main/java/states/stChassisPBMQD.java +++ b/sswlib/src/main/java/states/stChassisPBMQD.java @@ -79,7 +79,7 @@ public String ActualName() { } public String CritName() { - return "Primitive Structure"; + return "Primitive"; } public String LookupName() { From 1006ca8d9c177649c4ea4457a893f69ce8819e62 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Fri, 24 Nov 2023 02:30:30 -0800 Subject: [PATCH 162/199] Fix "All Eras" doubling CV armor cost --- sswlib/src/main/java/components/CVArmor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sswlib/src/main/java/components/CVArmor.java b/sswlib/src/main/java/components/CVArmor.java index 2cb4cf45..c519046a 100644 --- a/sswlib/src/main/java/components/CVArmor.java +++ b/sswlib/src/main/java/components/CVArmor.java @@ -1001,7 +1001,7 @@ public ifState[] GetStates() { @Override public double GetCost() { - if( Owner.GetYear() < 2450 ) { + if( Owner.YearWasSpecified() && Owner.GetYear() < 2450 ) { return GetTonnage() * Config.GetCostMult() * 2.0; } else { return GetTonnage() * Config.GetCostMult(); From 050f15b37caa0918f789647d56736f9d79e32169 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sat, 2 Dec 2023 16:40:16 -0800 Subject: [PATCH 163/199] Read "Unknown"/"None" manufacturer/model as empty string This also fixes jump jet model being "None" on a loaded mech after adding jump jets --- saw/src/main/java/saw/gui/frmVee.java | 20 ++++++------ saw/src/main/java/saw/gui/frmVeeWide.java | 20 ++++++------ ssw/src/main/java/ssw/gui/frmMain.java | 20 ++++++------ ssw/src/main/java/ssw/gui/frmMainWide.java | 18 +++++------ sswlib/src/main/java/common/CommonTools.java | 9 ++++++ .../src/main/java/filehandlers/CVReader.java | 32 ++++++------------- .../main/java/filehandlers/MechReader.java | 32 ++++++------------- 7 files changed, 68 insertions(+), 83 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 8a7f9cb4..e1a2e8d6 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -341,7 +341,7 @@ public String getColumnName( int col ) { public Object getValueAt( int row, int col ) { Object o = CurVee.GetLoadout().GetEquipment().get( row ); if( col == 1 ) { - return ((abPlaceable) o).GetManufacturer(); + return CommonTools.UnknownToEmpty( ((abPlaceable) o).GetManufacturer() ); } else { return ((abPlaceable) o).CritName(); } @@ -6179,7 +6179,7 @@ public Object getValueAt( int row, int col ) { if (CurVee.GetLoadout().GetEquipment().size() <= row) { return null; } Object o = CurVee.GetLoadout().GetEquipment().get( row ); if( col == 1 ) { - return ((abPlaceable) o).GetManufacturer(); + return CommonTools.UnknownToEmpty( ((abPlaceable) o).GetManufacturer() ); } else { return ((abPlaceable) o).CritName(); } @@ -7988,20 +7988,20 @@ public void LoadVehicleIntoGUI() { Variants.SetText( CurVee.getVariants() ); Notables.SetText( CurVee.getNotables() ); Additional.SetText( CurVee.GetAdditional() ); - txtManufacturer.setText( CurVee.GetCompany() ); - txtManufacturerLocation.setText( CurVee.GetLocation() ); - txtEngineManufacturer.setText( CurVee.GetEngineManufacturer() ); - txtArmorModel.setText( CurVee.GetArmorModel() ); - txtChassisModel.setText( CurVee.GetChassisModel() ); + txtManufacturer.setText( CommonTools.UnknownToEmpty( CurVee.GetCompany() ) ); + txtManufacturerLocation.setText( CommonTools.UnknownToEmpty( CurVee.GetLocation() ) ); + txtEngineManufacturer.setText( CommonTools.UnknownToEmpty( CurVee.GetEngineManufacturer() ) ); + txtArmorModel.setText( CommonTools.UnknownToEmpty( CurVee.GetArmorModel() ) ); + txtChassisModel.setText( CommonTools.UnknownToEmpty( CurVee.GetChassisModel() ) ); if( CurVee.GetJumpJets().GetNumJJ() > 0 ) { txtJJModel.setEnabled( true ); } txtSource.setText( CurVee.getSource() ); // omnimechs may have jump jets in one loadout and not another. - txtJJModel.setText( CurVee.GetJJModel() ); - txtCommSystem.setText( CurVee.GetCommSystem() ); - txtTNTSystem.setText( CurVee.GetTandTSystem() ); + txtJJModel.setText( CommonTools.UnknownToEmpty( CurVee.GetJJModel() ) ); + txtCommSystem.setText( CommonTools.UnknownToEmpty( CurVee.GetCommSystem() ) ); + txtTNTSystem.setText( CommonTools.UnknownToEmpty( CurVee.GetTandTSystem() ) ); setTitle( saw.Constants.AppName + " " + saw.Constants.GetVersion() + " - " + CurVee.GetName() + " " + CurVee.GetModel() ); CurVee.SetChanged(false); diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 6321ef0e..cad7632a 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -325,7 +325,7 @@ public String getColumnName( int col ) { public Object getValueAt( int row, int col ) { Object o = CurVee.GetLoadout().GetEquipment().get( row ); if( col == 1 ) { - return ((abPlaceable) o).GetManufacturer(); + return CommonTools.UnknownToEmpty( ((abPlaceable) o).GetManufacturer() ); } else { return ((abPlaceable) o).CritName(); } @@ -3860,7 +3860,7 @@ public Object getValueAt( int row, int col ) { if (CurVee.GetLoadout().GetEquipment().size() <= row) { return null; } Object o = CurVee.GetLoadout().GetEquipment().get( row ); if( col == 1 ) { - return ((abPlaceable) o).GetManufacturer(); + return CommonTools.UnknownToEmpty( ((abPlaceable) o).GetManufacturer() ); } else { return ((abPlaceable) o).CritName(); } @@ -4609,20 +4609,20 @@ public void LoadVehicleIntoGUI() { Variants.SetText( CurVee.getVariants() ); Notables.SetText( CurVee.getNotables() ); Additional.SetText( CurVee.GetAdditional() ); - txtManufacturer.setText( CurVee.GetCompany() ); - txtManufacturerLocation.setText( CurVee.GetLocation() ); - txtEngineManufacturer.setText( CurVee.GetEngineManufacturer() ); - txtArmorModel.setText( CurVee.GetArmorModel() ); - txtChassisModel.setText( CurVee.GetChassisModel() ); + txtManufacturer.setText( CommonTools.UnknownToEmpty( CurVee.GetCompany() ) ); + txtManufacturerLocation.setText( CommonTools.UnknownToEmpty( CurVee.GetLocation() ) ); + txtEngineManufacturer.setText( CommonTools.UnknownToEmpty( CurVee.GetEngineManufacturer() ) ); + txtArmorModel.setText( CommonTools.UnknownToEmpty( CurVee.GetArmorModel() ) ); + txtChassisModel.setText( CommonTools.UnknownToEmpty( CurVee.GetChassisModel() ) ); if( CurVee.GetJumpJets().GetNumJJ() > 0 ) { txtJJModel.setEnabled( true ); } txtSource.setText( CurVee.getSource() ); // omnimechs may have jump jets in one loadout and not another. - txtJJModel.setText( CurVee.GetJJModel() ); - txtCommSystem.setText( CurVee.GetCommSystem() ); - txtTNTSystem.setText( CurVee.GetTandTSystem() ); + txtJJModel.setText( CommonTools.UnknownToEmpty( CurVee.GetJJModel() ) ); + txtCommSystem.setText( CommonTools.UnknownToEmpty( CurVee.GetCommSystem() ) ); + txtTNTSystem.setText( CommonTools.UnknownToEmpty( CurVee.GetTandTSystem() ) ); setTitle( saw.Constants.AppName + " " + saw.Constants.GetVersion() + " - " + CurVee.GetName() + " " + CurVee.GetModel() ); CurVee.SetChanged(false); diff --git a/ssw/src/main/java/ssw/gui/frmMain.java b/ssw/src/main/java/ssw/gui/frmMain.java index b9fd2c73..e3f1668b 100644 --- a/ssw/src/main/java/ssw/gui/frmMain.java +++ b/ssw/src/main/java/ssw/gui/frmMain.java @@ -481,7 +481,7 @@ public String getColumnName( int col ) { public Object getValueAt( int row, int col ) { Object o = CurMech.GetLoadout().GetEquipment().get( row ); if( col == 1 ) { - return ((abPlaceable) o).GetManufacturer(); + return CommonTools.UnknownToEmpty( ((abPlaceable) o).GetManufacturer() ); } else { return ((abPlaceable) o).CritName(); } @@ -2781,7 +2781,7 @@ public String getColumnName( int col ) { public Object getValueAt( int row, int col ) { Object o = CurMech.GetLoadout().GetEquipment().get( row ); if( col == 1 ) { - return ((abPlaceable) o).GetManufacturer(); + return CommonTools.UnknownToEmpty( ((abPlaceable) o).GetManufacturer() ); } else { return ((abPlaceable) o).CritName(); } @@ -13384,20 +13384,20 @@ public void LoadMechIntoGUI() { Additional.SetText( CurMech.GetAdditional() ); quirks = CurMech.GetQuirks(); tblQuirks.setModel( new tbQuirks(quirks) ); - txtManufacturer.setText( CurMech.GetCompany() ); - txtManufacturerLocation.setText( CurMech.GetLocation() ); - txtEngineManufacturer.setText( CurMech.GetEngineManufacturer() ); - txtArmorModel.setText( CurMech.GetArmorModel() ); - txtChassisModel.setText( CurMech.GetChassisModel() ); + txtManufacturer.setText( CommonTools.UnknownToEmpty( CurMech.GetCompany() ) ); + txtManufacturerLocation.setText( CommonTools.UnknownToEmpty( CurMech.GetLocation() ) ); + txtEngineManufacturer.setText( CommonTools.UnknownToEmpty( CurMech.GetEngineManufacturer() ) ); + txtArmorModel.setText( CommonTools.UnknownToEmpty( CurMech.GetArmorModel() ) ); + txtChassisModel.setText( CommonTools.UnknownToEmpty( CurMech.GetChassisModel() ) ); if( CurMech.GetJumpJets().GetNumJJ() > 0 ) { txtJJModel.setEnabled( true ); } txtSource.setText( CurMech.GetSource() ); // omnimechs may have jump jets in one loadout and not another. - txtJJModel.setText( CurMech.GetJJModel() ); - txtCommSystem.setText( CurMech.GetCommSystem() ); - txtTNTSystem.setText( CurMech.GetTandTSystem() ); + txtJJModel.setText( CommonTools.UnknownToEmpty( CurMech.GetJJModel() ) ); + txtCommSystem.setText( CommonTools.UnknownToEmpty( CurMech.GetCommSystem() ) ); + txtTNTSystem.setText( CommonTools.UnknownToEmpty( CurMech.GetTandTSystem() ) ); // see if we should enable the Power Amplifier display if( CurMech.GetEngine().IsNuclear() ) { diff --git a/ssw/src/main/java/ssw/gui/frmMainWide.java b/ssw/src/main/java/ssw/gui/frmMainWide.java index de7b4565..84935795 100644 --- a/ssw/src/main/java/ssw/gui/frmMainWide.java +++ b/ssw/src/main/java/ssw/gui/frmMainWide.java @@ -474,7 +474,7 @@ public String getColumnName( int col ) { public Object getValueAt( int row, int col ) { Object o = CurMech.GetLoadout().GetEquipment().get( row ); if( col == 1 ) { - return ((abPlaceable) o).GetManufacturer(); + return CommonTools.UnknownToEmpty( ((abPlaceable) o).GetManufacturer() ); } else { return ((abPlaceable) o).CritName(); } @@ -10707,20 +10707,20 @@ public void LoadMechIntoGUI() { Additional.SetText( CurMech.GetAdditional() ); quirks = CurMech.GetQuirks(); tblQuirks.setModel(new tbQuirks(quirks)); - txtManufacturer.setText( CurMech.GetCompany() ); - txtManufacturerLocation.setText( CurMech.GetLocation() ); - txtEngineManufacturer.setText( CurMech.GetEngineManufacturer() ); - txtArmorModel.setText( CurMech.GetArmorModel() ); - txtChassisModel.setText( CurMech.GetChassisModel() ); + txtManufacturer.setText( CommonTools.UnknownToEmpty( CurMech.GetCompany() ) ); + txtManufacturerLocation.setText( CommonTools.UnknownToEmpty( CurMech.GetLocation() ) ); + txtEngineManufacturer.setText( CommonTools.UnknownToEmpty( CurMech.GetEngineManufacturer() ) ); + txtArmorModel.setText( CommonTools.UnknownToEmpty( CurMech.GetArmorModel() ) ); + txtChassisModel.setText( CommonTools.UnknownToEmpty( CurMech.GetChassisModel() ) ); if( CurMech.GetJumpJets().GetNumJJ() > 0 ) { txtJJModel.setEnabled( true ); } txtSource.setText( CurMech.GetSource() ); // omnimechs may have jump jets in one loadout and not another. - txtJJModel.setText( CurMech.GetJJModel() ); - txtCommSystem.setText( CurMech.GetCommSystem() ); - txtTNTSystem.setText( CurMech.GetTandTSystem() ); + txtJJModel.setText( CommonTools.UnknownToEmpty( CurMech.GetJJModel() ) ); + txtCommSystem.setText( CommonTools.UnknownToEmpty( CurMech.GetCommSystem() ) ); + txtTNTSystem.setText( CommonTools.UnknownToEmpty( CurMech.GetTandTSystem() ) ); // see if we should enable the Power Amplifier display if( CurMech.GetEngine().IsNuclear() ) { diff --git a/sswlib/src/main/java/common/CommonTools.java b/sswlib/src/main/java/common/CommonTools.java index f7d63129..fa58ed46 100644 --- a/sswlib/src/main/java/common/CommonTools.java +++ b/sswlib/src/main/java/common/CommonTools.java @@ -864,4 +864,13 @@ public static String shortenPath( String path, int maxlength ) { } return newPath; } + + public static String UnknownToEmpty( String str ) { + if( str == null || str.isEmpty() + || str.equalsIgnoreCase( "Unknown" ) + || str.equalsIgnoreCase( "None" ) ) { + return ""; + } + return str; + } } diff --git a/sswlib/src/main/java/filehandlers/CVReader.java b/sswlib/src/main/java/filehandlers/CVReader.java index fb4c3d4d..b88126cb 100644 --- a/sswlib/src/main/java/filehandlers/CVReader.java +++ b/sswlib/src/main/java/filehandlers/CVReader.java @@ -319,8 +319,8 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) } else if( n.item( 0 ).getTextContent().equals( AvailableCode.TechBaseSTR[AvailableCode.TECH_BOTH] ) ) { m.SetMixed(); } - m.SetCompany( FileCommon.DecodeFluff( map.getNamedItem( "manufacturer" ).getTextContent() ) ); - m.SetLocation( FileCommon.DecodeFluff( map.getNamedItem( "location" ).getTextContent() ) ); + m.SetCompany( FileCommon.DecodeFluff( CommonTools.UnknownToEmpty( map.getNamedItem( "manufacturer" ).getTextContent() ) ) ); + m.SetLocation( FileCommon.DecodeFluff( CommonTools.UnknownToEmpty( map.getNamedItem( "location" ).getTextContent() ) ) ); n = d.getElementsByTagName( "year" ); map = n.item( 0 ).getAttributes(); m.SetYear( Integer.parseInt( n.item( 0 ).getTextContent() ), true ); @@ -370,7 +370,7 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) m.Visit( v ); } } - m.SetChassisModel( FileCommon.DecodeFluff( map.getNamedItem( "manufacturer" ).getTextContent() ) ); + m.SetChassisModel( FileCommon.DecodeFluff( CommonTools.UnknownToEmpty( map.getNamedItem( "manufacturer" ).getTextContent() ) ) ); n = d.getElementsByTagName( "engine" ); map = n.item( 0 ).getAttributes(); @@ -393,7 +393,7 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) m.Visit( v ); } //m.SetEngineRating( Integer.parseInt( map.getNamedItem( "rating" ).getTextContent() ) ); - m.SetEngineManufacturer( FileCommon.DecodeFluff( map.getNamedItem( "manufacturer" ).getTextContent() ) ); + m.SetEngineManufacturer( FileCommon.DecodeFluff( CommonTools.UnknownToEmpty( map.getNamedItem( "manufacturer" ).getTextContent() ) ) ); // base loadout // get the actuators first since that will complete the structural components @@ -511,7 +511,7 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) for( int j = 0; j < nl.getLength(); j++ ) { if( nl.item( j ).getNodeName().equals( "name" ) ) { map = nl.item( j ).getAttributes(); - eMan = map.getNamedItem( "manufacturer" ).getTextContent(); + eMan = CommonTools.UnknownToEmpty( map.getNamedItem( "manufacturer" ).getTextContent() ); eName = nl.item( j ).getTextContent(); } else if( nl.item( j ).getNodeName().equals( "type" ) ) { eType = nl.item( j ).getTextContent(); @@ -631,7 +631,7 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) String pwtype = ""; int pwtech = 0; boolean oldfile = false, clanarmor = false; - m.SetArmorModel( FileCommon.DecodeFluff( map.getNamedItem( "manufacturer" ).getTextContent() ) ); + m.SetArmorModel( FileCommon.DecodeFluff( CommonTools.UnknownToEmpty( map.getNamedItem( "manufacturer" ).getTextContent() ) ) ); if( map.getNamedItem( "techbase" ) == null ) { // old style save file, set the armor based on the 'CombatVehicle's techbase if( m.GetBaseTechbase() == AvailableCode.TECH_CLAN ) { @@ -984,7 +984,7 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) for( int j = 0; j < nl.getLength(); j++ ) { if( nl.item( j ).getNodeName().equals( "name" ) ) { map = nl.item( j ).getAttributes(); - eMan = map.getNamedItem( "manufacturer" ).getTextContent(); + eMan = CommonTools.UnknownToEmpty( map.getNamedItem( "manufacturer" ).getTextContent() ); eName = nl.item( j ).getTextContent(); } else if( nl.item( j ).getNodeName().equals( "type" ) ) { eType = nl.item( j ).getTextContent(); @@ -1166,23 +1166,11 @@ else if (items.item(w).getNodeName().equals("Description")) { m.SetQuirks(quirks); } n = d.getElementsByTagName( "jumpjet_model" ); - if( n.item( 0 ).getTextContent() == null ) { - m.SetJJModel( "" ); - } else { - m.SetJJModel( FileCommon.DecodeFluff( n.item( 0 ).getTextContent() ) ); - } + m.SetJJModel( FileCommon.DecodeFluff( CommonTools.UnknownToEmpty( n.item( 0 ).getTextContent() ) ) ); n = d.getElementsByTagName( "commsystem" ); - if( n.item( 0 ).getTextContent() == null ) { - m.SetCommSystem( "" ); - } else { - m.SetCommSystem( FileCommon.DecodeFluff( n.item( 0 ).getTextContent() ) ); - } + m.SetCommSystem( FileCommon.DecodeFluff( CommonTools.UnknownToEmpty( n.item( 0 ).getTextContent() ) ) ); n = d.getElementsByTagName( "tandtsystem" ); - if( n.item( 0 ).getTextContent() == null ) { - m.SetTandTSystem( "" ); - } else { - m.SetTandTSystem( FileCommon.DecodeFluff( n.item( 0 ).getTextContent() ) ); - } + m.SetTandTSystem( FileCommon.DecodeFluff( CommonTools.UnknownToEmpty( n.item( 0 ).getTextContent() ) ) ); // all done, return the CombatVehicle m.SetChanged( false ); diff --git a/sswlib/src/main/java/filehandlers/MechReader.java b/sswlib/src/main/java/filehandlers/MechReader.java index ef3158b0..c88afaa3 100644 --- a/sswlib/src/main/java/filehandlers/MechReader.java +++ b/sswlib/src/main/java/filehandlers/MechReader.java @@ -420,8 +420,8 @@ private Mech BuildMech( Mech m, Document d, DataFactory f ) throws Exception { } else if( n.item( 0 ).getTextContent().equals( AvailableCode.TechBaseSTR[AvailableCode.TECH_BOTH] ) ) { m.SetMixed(); } - m.SetCompany( FileCommon.DecodeFluff( map.getNamedItem( "manufacturer" ).getTextContent() ) ); - m.SetLocation( FileCommon.DecodeFluff( map.getNamedItem( "location" ).getTextContent() ) ); + m.SetCompany( FileCommon.DecodeFluff( CommonTools.UnknownToEmpty( map.getNamedItem( "manufacturer" ).getTextContent() ) ) ); + m.SetLocation( FileCommon.DecodeFluff( CommonTools.UnknownToEmpty( map.getNamedItem( "location" ).getTextContent() ) ) ); n = d.getElementsByTagName( "year" ); map = n.item( 0 ).getAttributes(); m.SetYear( Integer.parseInt( n.item( 0 ).getTextContent() ), true ); @@ -479,7 +479,7 @@ private Mech BuildMech( Mech m, Document d, DataFactory f ) throws Exception { m.Visit( v ); } m.SetEngineRating( Integer.parseInt( map.getNamedItem( "rating" ).getTextContent() ) ); - m.SetEngineManufacturer( FileCommon.DecodeFluff( map.getNamedItem( "manufacturer" ).getTextContent() ) ); + m.SetEngineManufacturer( FileCommon.DecodeFluff( CommonTools.UnknownToEmpty( map.getNamedItem( "manufacturer" ).getTextContent() ) ) ); n = d.getElementsByTagName( "cockpit" ); v = m.Lookup( n.item( 0 ).getTextContent() ); @@ -557,7 +557,7 @@ private Mech BuildMech( Mech m, Document d, DataFactory f ) throws Exception { m.Visit( v ); } } - m.SetChassisModel( FileCommon.DecodeFluff( map.getNamedItem( "manufacturer" ).getTextContent() ) ); + m.SetChassisModel( FileCommon.DecodeFluff( CommonTools.UnknownToEmpty( map.getNamedItem( "manufacturer" ).getTextContent() ) ) ); // base loadout // get the actuators first since that will complete the structural components @@ -730,7 +730,7 @@ private Mech BuildMech( Mech m, Document d, DataFactory f ) throws Exception { for( int j = 0; j < nl.getLength(); j++ ) { if( nl.item( j ).getNodeName().equals( "name" ) ) { map = nl.item( j ).getAttributes(); - eMan = map.getNamedItem( "manufacturer" ).getTextContent(); + eMan = CommonTools.UnknownToEmpty( map.getNamedItem( "manufacturer" ).getTextContent() ); eName = nl.item( j ).getTextContent(); } else if( nl.item( j ).getNodeName().equals( "type" ) ) { eType = nl.item( j ).getTextContent(); @@ -1043,7 +1043,7 @@ private Mech BuildMech( Mech m, Document d, DataFactory f ) throws Exception { String pwtype = ""; int pwtech = 0; boolean oldfile = false, clanarmor = false; - m.SetArmorModel( FileCommon.DecodeFluff( map.getNamedItem( "manufacturer" ).getTextContent() ) ); + m.SetArmorModel( FileCommon.DecodeFluff( CommonTools.UnknownToEmpty( map.getNamedItem( "manufacturer" ).getTextContent() ) ) ); if( map.getNamedItem( "techbase" ) == null ) { // old style save file, set the armor based on the 'Mech's techbase if( m.GetBaseTechbase() == AvailableCode.TECH_CLAN ) { @@ -1504,7 +1504,7 @@ private Mech BuildMech( Mech m, Document d, DataFactory f ) throws Exception { for( int j = 0; j < nl.getLength(); j++ ) { if( nl.item( j ).getNodeName().equals( "name" ) ) { map = nl.item( j ).getAttributes(); - eMan = map.getNamedItem( "manufacturer" ).getTextContent(); + eMan = CommonTools.UnknownToEmpty( map.getNamedItem( "manufacturer" ).getTextContent() ); eName = nl.item( j ).getTextContent(); } else if( nl.item( j ).getNodeName().equals( "type" ) ) { eType = nl.item( j ).getTextContent(); @@ -1811,23 +1811,11 @@ else if (items.item(w).getNodeName().equals("Description")) { m.SetQuirks(quirks); } n = d.getElementsByTagName( "jumpjet_model" ); - if( n.item( 0 ).getTextContent() == null ) { - m.SetJJModel( "" ); - } else { - m.SetJJModel( FileCommon.DecodeFluff( n.item( 0 ).getTextContent() ) ); - } + m.SetJJModel( FileCommon.DecodeFluff( CommonTools.UnknownToEmpty( n.item( 0 ).getTextContent() ) ) ); n = d.getElementsByTagName( "commsystem" ); - if( n.item( 0 ).getTextContent() == null ) { - m.SetCommSystem( "" ); - } else { - m.SetCommSystem( FileCommon.DecodeFluff( n.item( 0 ).getTextContent() ) ); - } + m.SetCommSystem( FileCommon.DecodeFluff( CommonTools.UnknownToEmpty( n.item( 0 ).getTextContent() ) ) ); n = d.getElementsByTagName( "tandtsystem" ); - if( n.item( 0 ).getTextContent() == null ) { - m.SetTandTSystem( "" ); - } else { - m.SetTandTSystem( FileCommon.DecodeFluff( n.item( 0 ).getTextContent() ) ); - } + m.SetTandTSystem( FileCommon.DecodeFluff( CommonTools.UnknownToEmpty( n.item( 0 ).getTextContent() ) ) ); // all done, return the mech m.SetChanged( false ); From cfa74a404a8a2d6b0781fc7a040ed8b2cc092513 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sat, 2 Dec 2023 16:54:53 -0800 Subject: [PATCH 164/199] TRO: Avoid "Unknown" prefix, omit manufacturer/factory section if empty (ala MML), more jump jet info --- .../java/components/CVJumpJetFactory.java | 4 ++ .../main/java/filehandlers/CVTXTWriter.java | 32 ++++++++++++---- .../src/main/java/filehandlers/TXTWriter.java | 38 +++++++++++++------ 3 files changed, 55 insertions(+), 19 deletions(-) diff --git a/sswlib/src/main/java/components/CVJumpJetFactory.java b/sswlib/src/main/java/components/CVJumpJetFactory.java index c7eb5d7a..c7c1181a 100644 --- a/sswlib/src/main/java/components/CVJumpJetFactory.java +++ b/sswlib/src/main/java/components/CVJumpJetFactory.java @@ -94,6 +94,10 @@ public boolean IsUMU() { return CurConfig.IsUMU(); } + public boolean IsProto() { + return CurConfig.IsProto(); + } + public int GetNumJJ() { return NumJJ; } diff --git a/sswlib/src/main/java/filehandlers/CVTXTWriter.java b/sswlib/src/main/java/filehandlers/CVTXTWriter.java index 1c57088c..9da74f70 100644 --- a/sswlib/src/main/java/filehandlers/CVTXTWriter.java +++ b/sswlib/src/main/java/filehandlers/CVTXTWriter.java @@ -58,6 +58,7 @@ public CVTXTWriter() { } public CVTXTWriter( ArrayList<Force> forces ) { + this(); this.forces = forces; } @@ -143,8 +144,8 @@ public String GetTextExport() { retval += "Construction Options: Fractional Accounting" + NL + NL; } - //retval += "Chassis: " + CurVee.GetChassisModel() + " " + CurVee.GetIntStruc().CritName() + NL; - retval += "Power Plant: " + CurVee.GetEngineManufacturer() + " " + CurVee.GetEngine().GetRating() + " " + CurVee.GetEngine() + NL; + //retval += "Chassis: " + ( IsUnknown( CurVee.GetChassisModel() ) ? "" : CurVee.GetChassisModel() + " " ) + " " + CurVee.GetIntStruc().CritName() + NL; + retval += "Power Plant: " + ( IsUnknown( CurVee.GetEngineManufacturer() ) ? "" : CurVee.GetEngineManufacturer() + " " ) + " " + CurVee.GetEngine().GetRating() + " " + CurVee.GetEngine() + NL; //retval += "Cruise Speed: " + CommonTools.FormatSpeed( CurVee.GetAdjustedCruiseMP(false, true) * 10.8 ) + " km/h" + NL; //retval += "Flanking Speed: " + CommonTools.FormatSpeed( CurVee.GetAdjustedFlankMP(false, true) * 10.8 ) + " km/h" + NL; if( CurVee.GetAdjustedCruiseMP( false, true ) != CurVee.getCruiseMP() ) { @@ -158,15 +159,23 @@ public String GetTextExport() { retval += "Maximum Speed: " + CommonTools.FormatSpeed( CurVee.getFlankMP() * 10.8 ) + " km/h" + NL; } if ( CurVee.GetJumpJets().GetNumJJ() > 0 ) { - retval += "Jump Jets: " + CurVee.GetJJModel() + NL; + String jjModel = CurVee.GetJJModel(); + jjModel = ( IsUnknown( jjModel ) ? "" : jjModel + " " ) + GetJumpJetTypeLine(); + retval += "Jump Jets: " + jjModel + NL; retval += " Jump Capacity: " + GetJumpJetDistanceLine() + NL; } - retval += "Armor: " + CurVee.GetArmorModel() + " " + CurVee.GetArmor().CritName() + NL; + String armorModel = CurVee.GetArmorModel(); + retval += "Armor: " + ( IsUnknown( armorModel ) ? "" : armorModel + " " ) + " " + CurVee.GetArmor().CritName() + NL; retval += "Armament:" + NL; retval += GetArmament(); - retval += "Manufacturer: " + CurVee.GetCompany() + NL; - retval += " Primary Factory: " + CurVee.GetLocation() + NL; - retval += BuildComputerBlock() + NL + NL; + if ( ! IsUnknown( CurVee.GetCompany() ) ) { + retval += "Manufacturer: " + CurVee.GetCompany() + NL; + if ( ! IsUnknown( CurVee.GetLocation() ) ) { + retval += " Primary Factory: " + CurVee.GetLocation() + NL; + } + } + retval += BuildComputerBlock(); + retval += NL; // retval += "================================================================================" + NL; if( ! CurVee.getOverview().equals( "" ) ) { retval += "Overview:" + NL; @@ -782,7 +791,7 @@ private String BuildComputerBlock() { retval += NL; */ // start targeting and tracking system line - retval += "Targeting and Tracking System: " + CurVee.GetTandTSystem(); + retval += "Targeting and Tracking System: " + CurVee.GetTandTSystem() + NL; /* if( ! ( BAP instanceof EmptyItem ) ) { if( CurVee.UsingTC() ) { retval += NL + " w/ " + BAP.GetManufacturer() + " " + BAP.GetCritName() + NL + " and " + CurVee.GetTC().GetCritName(); @@ -941,6 +950,9 @@ private String GetJumpJetTypeLine() { } } } + if( CurVee.GetJumpJets().IsProto() ) { + retval += " (Prototype)"; + } return retval; } @@ -1113,4 +1125,8 @@ public String CSVFormat( String data ) { else return data + ","; } + + private boolean IsUnknown( String str ) { + return str.isEmpty() || str.equalsIgnoreCase( "Unknown" ) || str.equalsIgnoreCase( "None" ); + } } diff --git a/sswlib/src/main/java/filehandlers/TXTWriter.java b/sswlib/src/main/java/filehandlers/TXTWriter.java index 0f9db93d..e6d047ed 100644 --- a/sswlib/src/main/java/filehandlers/TXTWriter.java +++ b/sswlib/src/main/java/filehandlers/TXTWriter.java @@ -34,14 +34,12 @@ import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; -import java.util.Enumeration; import java.util.ArrayList; import battleforce.BattleForceStats; import battleforce.BattleForceTools; import components.*; import java.io.FileOutputStream; import java.io.OutputStreamWriter; -import java.util.ArrayList; import java.util.Iterator; import list.*; import utilities.CostBVBreakdown; @@ -60,6 +58,7 @@ public TXTWriter() { } public TXTWriter( ArrayList<Force> forces ) { + this(); this.forces = forces; } @@ -170,8 +169,8 @@ public String GetTextExport() { retval += "Construction Options: Fractional Accounting" + NL + NL; } - retval += "Chassis: " + CurMech.GetChassisModel() + " " + CurMech.GetIntStruc().CritName() + NL; - retval += "Power Plant: " + CurMech.GetEngineManufacturer() + " " + CurMech.GetEngine().GetRating() + " " + CurMech.GetEngine() + NL; + retval += "Chassis: " + ( IsUnknown( CurMech.GetChassisModel() ) ? "" : CurMech.GetChassisModel() + " " ) + CurMech.GetIntStruc().CritName() + NL; + retval += "Power Plant: " + ( IsUnknown( CurMech.GetEngineManufacturer() ) ? "" : CurMech.GetEngineManufacturer() + " " ) + CurMech.GetEngine().GetRating() + " " + CurMech.GetEngine() + NL; if( CurMech.GetAdjustedWalkingMP( false, true ) != CurMech.GetWalkingMP() ) { retval += "Walking Speed: " + CommonTools.FormatSpeed( CurMech.GetWalkingMP() * 10.8 ) + " km/h (" + CommonTools.FormatSpeed( CurMech.GetAdjustedWalkingMP( false, true ) * 10.8 ) + " km/h)" + NL; } else { @@ -182,18 +181,28 @@ public String GetTextExport() { } else { retval += "Maximum Speed: " + CommonTools.FormatSpeed( CurMech.GetRunningMP() * 10.8 ) + " km/h" + NL; } - retval += "Jump Jets: " + CurMech.GetJJModel() + NL; + String jjModel = CurMech.GetJJModel(); + if ( CurMech.GetJumpJets().GetNumJJ() > 0 ) { + jjModel = ( IsUnknown( jjModel ) ? "" : jjModel + " " ) + GetJumpJetTypeLine(); + } + retval += "Jump Jets: " + jjModel + NL; retval += " Jump Capacity: " + GetJumpJetDistanceLine() + NL; + String armorModel = CurMech.GetArmorModel(); if( CurMech.HasCTCase()|| CurMech.HasLTCase() || CurMech.HasRTCase() ) { - retval += "Armor: " + CurMech.GetArmorModel() + " " + CurMech.GetArmor().CritName() + " w/ CASE" + NL; + retval += "Armor: " + ( IsUnknown( armorModel ) ? "" : armorModel + " " ) + CurMech.GetArmor().CritName() + " w/ CASE" + NL; } else { - retval += "Armor: " + CurMech.GetArmorModel() + " " + CurMech.GetArmor().CritName() + NL; + retval += "Armor: " + ( IsUnknown( armorModel ) ? "" : armorModel + " " ) + CurMech.GetArmor().CritName() + NL; } retval += "Armament:" + NL; retval += GetArmament(); - retval += "Manufacturer: " + CurMech.GetCompany() + NL; - retval += " Primary Factory: " + CurMech.GetLocation() + NL; - retval += BuildComputerBlock() + NL + NL; + if( ! IsUnknown( CurMech.GetCompany() ) ) { + retval += "Manufacturer: " + CurMech.GetCompany() + NL; + if( ! IsUnknown( CurMech.GetLocation() ) ) { + retval += " Primary Factory: " + CurMech.GetLocation() + NL; + } + } + retval += BuildComputerBlock(); + retval += NL; // retval += "================================================================================" + NL; if( ! CurMech.GetOverview().equals( "" ) ) { retval += "Overview:" + NL; @@ -1058,7 +1067,7 @@ private String BuildComputerBlock() { retval += NL; */ // start targeting and tracking system line - retval += "Targeting and Tracking System: " + CurMech.GetTandTSystem(); + retval += "Targeting and Tracking System: " + CurMech.GetTandTSystem() + NL; /* if( ! ( BAP instanceof EmptyItem ) ) { if( CurMech.UsingTC() ) { retval += NL + " w/ " + BAP.GetManufacturer() + " " + BAP.GetCritName() + NL + " and " + CurMech.GetTC().GetCritName(); @@ -1251,6 +1260,9 @@ private String GetJumpJetTypeLine() { } } } + if( CurMech.GetJumpJets().IsProto() ) { + retval += " (Prototype)"; + } return retval; } @@ -1431,4 +1443,8 @@ public String CSVFormat( String data ) { else return data + ","; } + + private boolean IsUnknown( String str ) { + return str.isEmpty() || str.equalsIgnoreCase( "Unknown" ) || str.equalsIgnoreCase( "None" ); + } } From 1c8c18f906e957f01bc4f542296b7b54940762f9 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sat, 2 Dec 2023 22:47:31 -0800 Subject: [PATCH 165/199] Disallow vehicular grenade launcher in CV body --- .../src/main/java/components/VehicularGrenadeLauncher.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sswlib/src/main/java/components/VehicularGrenadeLauncher.java b/sswlib/src/main/java/components/VehicularGrenadeLauncher.java index 57d228d1..03a5f1d6 100644 --- a/sswlib/src/main/java/components/VehicularGrenadeLauncher.java +++ b/sswlib/src/main/java/components/VehicularGrenadeLauncher.java @@ -157,6 +157,11 @@ public boolean CanAllocLegs() { return false; } + @Override + public boolean CanAllocCVBody() { + return false; + } + public int NumCrits() { return 1; } From e1f59200423e05c47f8b14fb9d0e5ebf4cd74efb Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sun, 3 Dec 2023 01:20:09 -0800 Subject: [PATCH 166/199] Fix armored components and coolant pods to work properly in era-specific rules Specifically it used to only work properly in experimental rules. Following was fixed to now work in era-specific rules: - cost/BV now calculated for coolant pods and armored components - armored components are now saved to file --- sswlib/src/main/java/components/Mech.java | 2 +- sswlib/src/main/java/filehandlers/CVWriter.java | 2 +- sswlib/src/main/java/filehandlers/MechWriter.java | 4 ++-- sswlib/src/main/java/utilities/CVCostBVBreakdown.java | 2 +- sswlib/src/main/java/utilities/CostBVBreakdown.java | 6 +++--- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/sswlib/src/main/java/components/Mech.java b/sswlib/src/main/java/components/Mech.java index 3a835b9e..08ae52b6 100644 --- a/sswlib/src/main/java/components/Mech.java +++ b/sswlib/src/main/java/components/Mech.java @@ -2995,7 +2995,7 @@ public double GetHeatAdjustedWeaponBV() { double wheat = GetBVWeaponHeat(); - if( GetRulesLevel() == AvailableCode.RULES_EXPERIMENTAL ) { + if( GetRulesLevel() >= AvailableCode.RULES_EXPERIMENTAL ) { // check for coolant pods int NumHS = GetHeatSinks().GetNumHS(), MaxHSBonus = NumHS * 2, NumPods = 0; for( int i = 0; i < v.size(); i++ ) { diff --git a/sswlib/src/main/java/filehandlers/CVWriter.java b/sswlib/src/main/java/filehandlers/CVWriter.java index 661c05ad..1c20f9c6 100644 --- a/sswlib/src/main/java/filehandlers/CVWriter.java +++ b/sswlib/src/main/java/filehandlers/CVWriter.java @@ -275,7 +275,7 @@ public void WriteXML( BufferedWriter FR ) throws IOException { FR.newLine(); } FR.write( GetEquipmentLines( tab + tab ) ); - if( CurUnit.GetRulesLevel() == AvailableCode.RULES_EXPERIMENTAL ) { + if( CurUnit.GetRulesLevel() >= AvailableCode.RULES_EXPERIMENTAL ) { // check for armored components FR.write( GetArmoredLocations( tab + tab ) ); } diff --git a/sswlib/src/main/java/filehandlers/MechWriter.java b/sswlib/src/main/java/filehandlers/MechWriter.java index 4ae1d70d..64630272 100644 --- a/sswlib/src/main/java/filehandlers/MechWriter.java +++ b/sswlib/src/main/java/filehandlers/MechWriter.java @@ -394,7 +394,7 @@ public void WriteXML( BufferedWriter FR ) throws IOException { FR.newLine(); } FR.write( GetEquipmentLines( tab + tab ) ); - if( CurMech.GetRulesLevel() == AvailableCode.RULES_EXPERIMENTAL ) { + if( CurMech.GetRulesLevel() >= AvailableCode.RULES_EXPERIMENTAL ) { // check for armored components FR.write( GetArmoredLocations( tab + tab ) ); } @@ -478,7 +478,7 @@ public void WriteXML( BufferedWriter FR ) throws IOException { FR.newLine(); } FR.write( GetEquipmentLines( tab + tab ) ); - if( CurMech.GetRulesLevel() == AvailableCode.RULES_EXPERIMENTAL ) { + if( CurMech.GetRulesLevel() >= AvailableCode.RULES_EXPERIMENTAL ) { // check for armored components FR.write( GetArmoredLocations( tab + tab ) ); } diff --git a/sswlib/src/main/java/utilities/CVCostBVBreakdown.java b/sswlib/src/main/java/utilities/CVCostBVBreakdown.java index c65a266a..2dcd11d5 100644 --- a/sswlib/src/main/java/utilities/CVCostBVBreakdown.java +++ b/sswlib/src/main/java/utilities/CVCostBVBreakdown.java @@ -81,7 +81,7 @@ public String Render() { retval += String.format( "Total Cost %1$,13.0f", CurUnit.GetTotalCost() ) + NL; retval += NL + NL; retval += "Defensive BV Calculation Breakdown" + NL; - if( CurUnit.GetRulesLevel() == AvailableCode.RULES_EXPERIMENTAL ) { + if( CurUnit.GetRulesLevel() >= AvailableCode.RULES_EXPERIMENTAL ) { retval += "(Note: BV Calculations include defensive BV for armored components.)" + NL; } retval += "________________________________________________________________________________" + NL; diff --git a/sswlib/src/main/java/utilities/CostBVBreakdown.java b/sswlib/src/main/java/utilities/CostBVBreakdown.java index eb5fe2b5..c0076ce0 100644 --- a/sswlib/src/main/java/utilities/CostBVBreakdown.java +++ b/sswlib/src/main/java/utilities/CostBVBreakdown.java @@ -142,7 +142,7 @@ public String Render() { retval += String.format( "Total Cost %1$,13.0f", CurMech.GetTotalCost() ) + NL; retval += NL + NL; retval += "Defensive BV Calculation Breakdown" + NL; - if( CurMech.GetRulesLevel() == AvailableCode.RULES_EXPERIMENTAL ) { + if( CurMech.GetRulesLevel() >= AvailableCode.RULES_EXPERIMENTAL ) { retval += "(Note: BV Calculations include defensive BV for armored components.)" + NL; } retval += "________________________________________________________________________________" + NL; @@ -570,7 +570,7 @@ public String PrintOffensiveFactorCalculations() { private boolean HasBonusFromCP() { ArrayList v = CurMech.GetLoadout().GetNonCore(); abPlaceable a; - if( CurMech.GetRulesLevel() == AvailableCode.RULES_EXPERIMENTAL ) { + if( CurMech.GetRulesLevel() >= AvailableCode.RULES_EXPERIMENTAL ) { // check for coolant pods for( int i = 0; i < v.size(); i++ ) { a = (abPlaceable) v.get( i ); @@ -590,7 +590,7 @@ private int GetBonusFromCP() { ArrayList v = CurMech.GetLoadout().GetNonCore(); abPlaceable a; - if( CurMech.GetRulesLevel() == AvailableCode.RULES_EXPERIMENTAL ) { + if( CurMech.GetRulesLevel() >= AvailableCode.RULES_EXPERIMENTAL ) { // check for coolant pods for( int i = 0; i < v.size(); i++ ) { a = (abPlaceable) v.get( i ); From 56a166ad34bc1da1c9b6853ad605e48d143086b0 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sun, 3 Dec 2023 01:38:24 -0800 Subject: [PATCH 167/199] Fix minor whitespace issue in equipment.json --- Data/Equipment/equipment.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Data/Equipment/equipment.json b/Data/Equipment/equipment.json index 5e48b2f3..c2944291 100644 --- a/Data/Equipment/equipment.json +++ b/Data/Equipment/equipment.json @@ -6766,7 +6766,7 @@ }, "Combat Vehicle Escape Pod": { "ActualName": "Combat Vehicle Escape Pod", - "CritName": "Combat Vehicle Escape Pod ", + "CritName": "Combat Vehicle Escape Pod", "Type": "PE", "LookupName": "Combat Vehicle Escape Pod", "MegaMekName": "ISCombatVehicleEscapePod", From ebed150b8704604873d866102cd36aa922adb769 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Mon, 4 Dec 2023 09:23:34 -0800 Subject: [PATCH 168/199] Quirk fixes and updates Specifics: - Fix narrow/low profile quirk cost from 2 to 3 - see https://bg.battletech.com/wp-content/uploads/2023/07/Campaign-Operations-2023-07-26-v4.0.pdf - Also fill out its description - Separate out quad version of directional torso mount quirk - Change variable quirk cost from 0 to 1 so user can manually come up with cost by selecting it multiple times --- Data/Equipment/quirks.json | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/Data/Equipment/quirks.json b/Data/Equipment/quirks.json index a214c695..41b1cf3e 100644 --- a/Data/Equipment/quirks.json +++ b/Data/Equipment/quirks.json @@ -1,7 +1,7 @@ { "Accurate Weapon": { "name": "Accurate Weapon", - "cost": 0, + "cost": 1, "description": "Being of exceptional design, a weapon or bay is more accurate than normal, and receives a –1 Target Number modifier. The cost is 1 point per 5 points (or fraction thereof) of maximum damage the weapon or bay can inflict in a single Damage Value grouping. More than one weapon or bay on a unit can receive this positive quirk, but the cost for each must be paid. If the “weapon” deals 0 damage (such as TAG), the cost is 2 points.", "positive": true, "battlemech": true, @@ -19,7 +19,7 @@ }, "Anti-Aircraft Targeting": { "name": "Anti-Aircraft Targeting", - "cost": 0, + "cost": 1, "description": "Some 'Mechs, like the Rifleman, have an advanced targeting system that can accurately target airborne units. This includes 'Mechs performing a combat drop (see p. 20, SO), but not jumping 'Mechs. All attacks against such units while airborne (not grounded) receive a –2 Target Number modifier. The cost is 1 point per 7 points (or fraction thereof ) of maximum damage that all the weapons mounted on the 'Mech can inflict (excluding physical attack weapons). This bonus is only available when the 'Mech itself is on the ground.", "positive": true, "battlemech": true, @@ -182,7 +182,7 @@ "Directional Torso Mount": { "name": "Directional Torso Mount", "cost": 2, - "description": "A well-known feature of the original Goliath, a Directional Torso Mount acts as a somewhat more restrictive BattleMech shoulder turret, allowing any weapons in the mount to shoot in either the front arc or the rear arc, depending on the mount's current facing. The mount's facing is set at the start of the game, and can be changed at the same time torso twists are made. However, unlike a torso twist, it does not reset at each End Phase: the arc chosen remains until deliberately changed. The mount rotates with any torso twist as normal. Each time a location with a Directional Torso Mount takes a hit (Front or Rear), the player must roll 2D6. A result of 9+ means the mount is destroyed and its weapon locked in its current arc, in addition to the normal effects of the attack. The 3-point version of this quirk is available only to quad 'Mechs. In this case, the mount operates as a full turret, capable of rotating a full 360 degrees. No weapon with location placement restrictions (such as a heavy Gauss rifle) can be placed in a Directional Torso Mount", + "description": "A well-known feature of the original Goliath, a Directional Torso Mount acts as a somewhat more restrictive BattleMech shoulder turret, allowing any weapons in the mount to shoot in either the front arc or the rear arc, depending on the mount's current facing. The mount's facing is set at the start of the game, and can be changed at the same time torso twists are made. However, unlike a torso twist, it does not reset at each End Phase: the arc chosen remains until deliberately changed. The mount rotates with any torso twist as normal. Each time a location with a Directional Torso Mount takes a hit (Front or Rear), the player must roll 2D6. A result of 9+ means the mount is destroyed and its weapon locked in its current arc, in addition to the normal effects of the attack. No weapon with location placement restrictions (such as a heavy Gauss rifle) can be placed in a Directional Torso Mount", "positive": true, "battlemech": true, "industrialmech": true, @@ -195,7 +195,25 @@ "warship": false, "spacestation": false, "protomech": false, - "isvariable": true + "isvariable": false + }, + "Directional Torso Mount, Quad": { + "name": "Directional Torso Mount, Quad", + "cost": 3, + "description": "The 3-point version of the Directional Torso Mount quirk is available only to quad 'Mechs. In this case, the mount operates as a full turret, capable of rotating a full 360 degrees. Each time a location with a Directional Torso Mount takes a hit (Front or Rear), the player must roll 2D6. A result of 9+ means the mount is destroyed and its weapon locked in its current arc, in addition to the normal effects of the attack. No weapon with location placement restrictions (such as a heavy Gauss rifle) can be placed in a Directional Torso Mount", + "positive": true, + "battlemech": true, + "industrialmech": true, + "combatvehicle": false, + "battlearmor": false, + "aerospacefighter": false, + "conventionalfighter": false, + "dropship": false, + "jumpship": false, + "warship": false, + "spacestation": false, + "protomech": false, + "isvariable": false }, "Distracting": { "name": "Distracting", @@ -558,8 +576,8 @@ }, "Narrow/Low Profile": { "name": "Narrow/Low Profile", - "cost": 2, - "description": "If the Margin of Success for a weapon attack made against a Narrow/low profile Unit is 0 or 1, the hit is considered a Glancing Blow.", + "cost": 3, + "description": "If the Margin of Success for a weapon attack made against a Narrow/low profile Unit is 0 or 1, the hit is considered a Glancing Blow. A glancing blow inflicts half the normal damage (rounded down); for weapons that roll on the Cluster Hits Table, instead apply a –4 modifier to the Cluster roll result (with a minimum result of 2). Additionally, apply a –2 modifier when rolling on the Determining Critical Hits Table any time a glancing blow yields the possibility of a critical hit; if using the Advanced Determining Critical Hits rule (see p. 83, TO:AR), apply a –4 modifier instead. This quirk has no effect versus non-weapon attacks, such as falls or physical attacks. It also has no effect versus all-or-nothing weapon attacks, such as Streak missile launchers. If using the Linking Weapons rule (see p. 83, TO:AR), the entire linked group is considered a glancing blow. If also using the Glancing Blow rule (see p. 78, TO:AR), the effects stack (1/4 damage is dealt). Any subtractive damage reduction effects (such as ferro-lamellor armor) are applied after all other damage reduction effects.", "positive": true, "battlemech": true, "industrialmech": true, @@ -720,7 +738,7 @@ }, "Stabilized Weapon": { "name": "Stabilized Weapon", - "cost": 0, + "cost": 1, "description": "Some weapons, such as the center torso and head lasers of the Mongoose, are better cushioned against or otherwise compensated for the increased inaccuracy caused by moving at high speeds. If the 'Mech runs, all Target Numbers for that weapon receive a –1 modifier. The cost is 1 point per 7 points (or fraction thereof) of maximum damage the weapon can inflict in a single Damage Value grouping. If the “weapon” deals 0 damage (such as TAG), the cost is 1 point. More than one weapon can receive this positive quirk, but the cost for each must be paid.", "positive": true, "battlemech": true, @@ -774,7 +792,7 @@ }, "Variable Range Targeting": { "name": "Variable Range Targeting", - "cost": 0, + "cost": 1, "description": "A BattleMech with this quirk has an advanced targeting system that allows it to launch more accurate attacks at either long or short range, at the expense of reduced accuracy at other ranges. During a turn's End Phase, the controlling player must designate whether this improved targeting feature will be active at long or short range the next turn. All weapon attacks at the designated range receive a -1 target number modifier, but all weapon attacks at the alternative range receive a +1 target number modifier (medium range remains unmodified).", "positive": true, "battlemech": true, @@ -1548,7 +1566,7 @@ }, "Weak Head Armor": { "name": "Weak Head Armor", - "cost": 0, + "cost": 1, "description": "The Value of this quirk is equal to the number of armor points effectively lost.", "positive": false, "battlemech": true, From 2f9fdfb084952eef83950d5f3f700608f81a9235 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Mon, 4 Dec 2023 10:27:34 -0800 Subject: [PATCH 169/199] Reset command console for new mech, check omnimech on rules level change Also remove some redundant omnimeck reset code --- ssw/src/main/java/ssw/gui/frmMain.java | 5 +++-- ssw/src/main/java/ssw/gui/frmMainWide.java | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ssw/src/main/java/ssw/gui/frmMain.java b/ssw/src/main/java/ssw/gui/frmMain.java index e3f1668b..8b881f7c 100644 --- a/ssw/src/main/java/ssw/gui/frmMain.java +++ b/ssw/src/main/java/ssw/gui/frmMain.java @@ -458,6 +458,7 @@ public void actionPerformed(ActionEvent e) { cmbEngineType.setSelectedItem( SSWConstants.DEFAULT_ENGINE ); cmbGyroType.setSelectedItem( SSWConstants.DEFAULT_GYRO ); cmbCockpitType.setSelectedItem( SSWConstants.DEFAULT_COCKPIT ); + chkCommandConsole.setSelected( false ); cmbPhysEnhance.setSelectedItem( SSWConstants.DEFAULT_ENHANCEMENT ); cmbHeatSinkType.setSelectedItem( Prefs.get( "NewMech_Heatsinks", "Single Heat Sink" ) ); cmbJumpJetType.setSelectedItem( SSWConstants.DEFAULT_JUMPJET ); @@ -2714,6 +2715,7 @@ private void GetNewMech() { cmbEngineType.setSelectedItem( SSWConstants.DEFAULT_ENGINE ); cmbGyroType.setSelectedItem( SSWConstants.DEFAULT_GYRO ); cmbCockpitType.setSelectedItem( SSWConstants.DEFAULT_COCKPIT ); + chkCommandConsole.setSelected( false ); cmbPhysEnhance.setSelectedItem( SSWConstants.DEFAULT_ENHANCEMENT ); cmbHeatSinkType.setSelectedItem( Prefs.get( "NewMech_Heatsinks", "Single Heat Sink" ) ); cmbJumpJetType.setSelectedItem( SSWConstants.DEFAULT_JUMPJET ); @@ -3411,8 +3413,6 @@ private void UnlockGUIFromOmni() { chkHDTurret.setEnabled( true ); chkLTTurret.setEnabled( true ); chkRTTurret.setEnabled( true ); - chkOmnimech.setSelected( false ); - chkOmnimech.setEnabled( true ); btnLockChassis.setEnabled( false ); spnWalkMP.setEnabled( true ); chkYearRestrict.setEnabled( true ); @@ -12521,6 +12521,7 @@ private void cmbRulesLevelActionPerformed(java.awt.event.ActionEvent evt) {//GEN FixWalkMPSpinner(); FixJJSpinnerModel(); RefreshEquipment(); + CheckOmnimech(); // now reset the combo boxes to the closest choices we previously selected LoadSelections(); diff --git a/ssw/src/main/java/ssw/gui/frmMainWide.java b/ssw/src/main/java/ssw/gui/frmMainWide.java index 84935795..824b5c1c 100644 --- a/ssw/src/main/java/ssw/gui/frmMainWide.java +++ b/ssw/src/main/java/ssw/gui/frmMainWide.java @@ -451,6 +451,7 @@ public void actionPerformed(ActionEvent e) { cmbEngineType.setSelectedItem( SSWConstants.DEFAULT_ENGINE ); cmbGyroType.setSelectedItem( SSWConstants.DEFAULT_GYRO ); cmbCockpitType.setSelectedItem( SSWConstants.DEFAULT_COCKPIT ); + chkCommandConsole.setSelected( false ); cmbPhysEnhance.setSelectedItem( SSWConstants.DEFAULT_ENHANCEMENT ); cmbHeatSinkType.setSelectedItem( Prefs.get( "NewMech_Heatsinks", "Single Heat Sink" ) ); cmbJumpJetType.setSelectedItem( SSWConstants.DEFAULT_JUMPJET ); @@ -2709,6 +2710,7 @@ private void GetNewMech() { cmbEngineType.setSelectedItem( SSWConstants.DEFAULT_ENGINE ); cmbGyroType.setSelectedItem( SSWConstants.DEFAULT_GYRO ); cmbCockpitType.setSelectedItem( SSWConstants.DEFAULT_COCKPIT ); + chkCommandConsole.setSelected( false ); cmbPhysEnhance.setSelectedItem( SSWConstants.DEFAULT_ENHANCEMENT ); cmbHeatSinkType.setSelectedItem( Prefs.get( "NewMech_Heatsinks", "Single Heat Sink" ) ); cmbJumpJetType.setSelectedItem( SSWConstants.DEFAULT_JUMPJET ); @@ -3360,8 +3362,6 @@ private void UnlockGUIFromOmni() { chkHDTurret.setEnabled( true ); chkLTTurret.setEnabled( true ); chkRTTurret.setEnabled( true ); - chkOmnimech.setSelected( false ); - chkOmnimech.setEnabled( true ); btnLockChassis.setEnabled( false ); spnWalkMP.setEnabled( true ); chkYearRestrict.setEnabled( true ); @@ -14097,6 +14097,7 @@ private void cmbRulesLevelActionPerformed(java.awt.event.ActionEvent evt) {//GEN FixWalkMPSpinner(); FixJJSpinnerModel(); RefreshEquipment(); + CheckOmnimech(); // now reset the combo boxes to the closest choices we previously selected LoadSelections(); From d7f6c6a3724f70afd67ebaa112b115daf32e5747 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sat, 11 Nov 2023 20:28:19 -0800 Subject: [PATCH 170/199] Quad mechs allow both torso and head turrets --- sswlib/src/main/java/components/QuadLoadout.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/sswlib/src/main/java/components/QuadLoadout.java b/sswlib/src/main/java/components/QuadLoadout.java index a085423b..8416613c 100644 --- a/sswlib/src/main/java/components/QuadLoadout.java +++ b/sswlib/src/main/java/components/QuadLoadout.java @@ -4522,10 +4522,7 @@ public void SetHDTurret( MechTurret t ) { } public boolean CanUseHDTurret() { - if( Owner.GetCockpit().IsTorsoMounted() && !HasLTTurret() && !HasRTTurret() ) { - return true; - } - return false; + return Owner.GetCockpit().IsTorsoMounted(); } public MechTurret GetLTTurret() { @@ -4579,8 +4576,7 @@ public void SetLTTurret( MechTurret t ) { } public boolean CanUseLTTurret() { - if( HasRTTurret() || HasHDTurret() ) { return false; } - return true; + return ! HasRTTurret(); } public MechTurret GetRTTurret() { @@ -4634,8 +4630,7 @@ public void SetRTTurret( MechTurret t ) { } public boolean CanUseRTTurret() { - if( HasLTTurret() || HasHDTurret() ) { return false; } - return true; + return ! HasLTTurret(); } private void ClearTurretWeapons( MechTurret t ) { From a3a90ea59f56ac1e9ee81111ee3f1ca547fef9bf Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sat, 11 Nov 2023 20:32:01 -0800 Subject: [PATCH 171/199] Fix error if removing vehicle turret and adding item without selecting location --- saw/src/main/java/saw/gui/frmVee.java | 6 ++++-- saw/src/main/java/saw/gui/frmVeeWide.java | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index e1a2e8d6..1c49dde7 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -4559,8 +4559,6 @@ private void SolidifyVehicle() { } private void BuildLocationSelector() { - int curSelection = Math.max(cmbLocation.getSelectedIndex(), 0); - ArrayList locs = new ArrayList(); locs.add("Front"); locs.add("Left"); @@ -4577,6 +4575,10 @@ private void BuildLocationSelector() { locs.add("Rear Turret"); cmbLocation.setModel(new DefaultComboBoxModel(locs.toArray())); + int curSelection = cmbLocation.getSelectedIndex(); + if ( curSelection < 0 || curSelection >= locs.size()) { + curSelection = 0; // reset to Front + } cmbLocation.setSelectedIndex(curSelection); } diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index cad7632a..d4632f85 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -2886,8 +2886,6 @@ private void SolidifyVehicle() { } private void BuildLocationSelector() { - int curSelection = Math.max(cmbLocation.getSelectedIndex(), 0); - ArrayList locs = new ArrayList(); locs.add("Front"); locs.add("Left"); @@ -2904,6 +2902,10 @@ private void BuildLocationSelector() { locs.add("Rear Turret"); cmbLocation.setModel(new DefaultComboBoxModel(locs.toArray())); + int curSelection = cmbLocation.getSelectedIndex(); + if ( curSelection < 0 || curSelection >= locs.size()) { + curSelection = 0; // reset to Front + } cmbLocation.setSelectedIndex(curSelection); } From 04b2627da0584655b29c6928dcc16b8ea2049cfc Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sat, 11 Nov 2023 22:59:08 -0800 Subject: [PATCH 172/199] Revamp mech turrets to fix edge cases and allow equipment, align turret/rear-mounting code --- ssw/src/main/java/ssw/gui/frmMain.java | 66 +++-------- ssw/src/main/java/ssw/gui/frmMainWide.java | 66 +++-------- .../main/java/components/BipedLoadout.java | 40 ++----- .../src/main/java/components/Equipment.java | 33 +++++- .../src/main/java/components/LiftHoist.java | 19 +-- sswlib/src/main/java/components/MGArray.java | 69 ++++------- .../src/main/java/components/MechTurret.java | 58 +++++---- .../src/main/java/components/QuadLoadout.java | 40 ++----- .../main/java/components/RangedWeapon.java | 110 ++++++------------ .../main/java/components/TripodLoadout.java | 40 ++----- .../src/main/java/components/abPlaceable.java | 45 ++++++- sswlib/src/main/java/components/ifTurret.java | 8 +- .../src/main/java/filehandlers/CVReader.java | 4 +- .../main/java/filehandlers/MechReader.java | 78 +++++-------- 14 files changed, 251 insertions(+), 425 deletions(-) diff --git a/ssw/src/main/java/ssw/gui/frmMain.java b/ssw/src/main/java/ssw/gui/frmMain.java index 8b881f7c..f7de3474 100644 --- a/ssw/src/main/java/ssw/gui/frmMain.java +++ b/ssw/src/main/java/ssw/gui/frmMain.java @@ -3570,8 +3570,8 @@ private void ConfigureUtilsMenu( java.awt.Component c ) { mnuArmorComponent.setText( "Armor Component" ); } } - if( turreted && ( CurItem instanceof RangedWeapon ) ) { - if( ((RangedWeapon) CurItem).IsTurreted() ) { + if( turreted ) { + if( CurItem.IsTurreted() ) { mnuTurret.setText( "Remove from Turret" ); } else { mnuTurret.setText( "Add to Turret"); @@ -3867,57 +3867,19 @@ private void PulseModule() { } private void TurretMount() { - if( CurItem instanceof RangedWeapon ) { - RangedWeapon w = (RangedWeapon) CurItem; - int location = CurMech.GetLoadout().Find( CurItem ); - if( w.IsTurreted() ) { - if( location == LocationIndex.MECH_LOC_HD ) { - w.RemoveFromTurret( CurMech.GetLoadout().GetHDTurret() ); - } else if( location == LocationIndex.MECH_LOC_LT ) { - w.RemoveFromTurret( CurMech.GetLoadout().GetLTTurret() ); - } else if( location == LocationIndex.MECH_LOC_RT ) { - w.RemoveFromTurret( CurMech.GetLoadout().GetRTTurret() ); - } else { - Media.Messager( this, "Cannot remove from turret!" ); - return; - } - } else { - if( location == LocationIndex.MECH_LOC_HD ) { - w.AddToTurret( CurMech.GetLoadout().GetHDTurret() ); - } else if( location == LocationIndex.MECH_LOC_LT ) { - w.AddToTurret( CurMech.GetLoadout().GetLTTurret() ); - } else if( location == LocationIndex.MECH_LOC_RT ) { - w.AddToTurret( CurMech.GetLoadout().GetRTTurret() ); - } else { - Media.Messager( this, "Cannot add to turret!" ); - return; - } - } - } else if( CurItem instanceof MGArray ) { - MGArray w = (MGArray) CurItem; + if( CurItem.IsTurreted() ) { + CurItem.MountTurret( null ); + } else { int location = CurMech.GetLoadout().Find( CurItem ); - if( w.IsTurreted() ) { - if( location == LocationIndex.MECH_LOC_HD ) { - w.RemoveFromTurret( CurMech.GetLoadout().GetHDTurret() ); - } else if( location == LocationIndex.MECH_LOC_LT ) { - w.RemoveFromTurret( CurMech.GetLoadout().GetLTTurret() ); - } else if( location == LocationIndex.MECH_LOC_RT ) { - w.RemoveFromTurret( CurMech.GetLoadout().GetRTTurret() ); - } else { - Media.Messager( this, "Cannot remove from turret!" ); - return; - } + if( location == LocationIndex.MECH_LOC_HD ) { + CurItem.MountTurret( CurMech.GetLoadout().GetHDTurret() ); + } else if( location == LocationIndex.MECH_LOC_LT ) { + CurItem.MountTurret( CurMech.GetLoadout().GetLTTurret() ); + } else if( location == LocationIndex.MECH_LOC_RT ) { + CurItem.MountTurret( CurMech.GetLoadout().GetRTTurret() ); } else { - if( location == LocationIndex.MECH_LOC_HD ) { - w.AddToTurret( CurMech.GetLoadout().GetHDTurret() ); - } else if( location == LocationIndex.MECH_LOC_LT ) { - w.AddToTurret( CurMech.GetLoadout().GetLTTurret() ); - } else if( location == LocationIndex.MECH_LOC_RT ) { - w.AddToTurret( CurMech.GetLoadout().GetRTTurret() ); - } else { - Media.Messager( this, "Cannot add to turret!" ); - return; - } + Media.Messager( this, "Invalid turret location!" ); + return; } } RefreshInfoPane(); @@ -4108,7 +4070,7 @@ public boolean LegalCaseless( abPlaceable p ) { } public boolean LegalTurretMount( abPlaceable p ) { - if( ! (( p instanceof RangedWeapon ) || ( p instanceof MGArray )) ) { return false; } + if( ! p.CanMountTurret() ) { return false; } int location = CurMech.GetLoadout().Find( p ); if( location == LocationIndex.MECH_LOC_HD ) { if( CurMech.IsOmnimech() ) { diff --git a/ssw/src/main/java/ssw/gui/frmMainWide.java b/ssw/src/main/java/ssw/gui/frmMainWide.java index 824b5c1c..a7f5c60c 100644 --- a/ssw/src/main/java/ssw/gui/frmMainWide.java +++ b/ssw/src/main/java/ssw/gui/frmMainWide.java @@ -3517,8 +3517,8 @@ private void ConfigureUtilsMenu( java.awt.Component c ) { mnuArmorComponent.setText( "Armor Component" ); } } - if( turreted && ( CurItem instanceof RangedWeapon ) ) { - if( ((RangedWeapon) CurItem).IsTurreted() ) { + if( turreted ) { + if( CurItem.IsTurreted() ) { mnuTurret.setText( "Remove from Turret" ); } else { mnuTurret.setText( "Add to Turret"); @@ -3814,57 +3814,19 @@ private void PulseModule() { } private void TurretMount() { - if( CurItem instanceof RangedWeapon ) { - RangedWeapon w = (RangedWeapon) CurItem; - int location = CurMech.GetLoadout().Find( CurItem ); - if( w.IsTurreted() ) { - if( location == LocationIndex.MECH_LOC_HD ) { - w.RemoveFromTurret( CurMech.GetLoadout().GetHDTurret() ); - } else if( location == LocationIndex.MECH_LOC_LT ) { - w.RemoveFromTurret( CurMech.GetLoadout().GetLTTurret() ); - } else if( location == LocationIndex.MECH_LOC_RT ) { - w.RemoveFromTurret( CurMech.GetLoadout().GetRTTurret() ); - } else { - Media.Messager( this, "Cannot remove from turret!" ); - return; - } - } else { - if( location == LocationIndex.MECH_LOC_HD ) { - w.AddToTurret( CurMech.GetLoadout().GetHDTurret() ); - } else if( location == LocationIndex.MECH_LOC_LT ) { - w.AddToTurret( CurMech.GetLoadout().GetLTTurret() ); - } else if( location == LocationIndex.MECH_LOC_RT ) { - w.AddToTurret( CurMech.GetLoadout().GetRTTurret() ); - } else { - Media.Messager( this, "Cannot add to turret!" ); - return; - } - } - } else if( CurItem instanceof MGArray ) { - MGArray w = (MGArray) CurItem; + if( CurItem.IsTurreted() ) { + CurItem.MountTurret( null ); + } else { int location = CurMech.GetLoadout().Find( CurItem ); - if( w.IsTurreted() ) { - if( location == LocationIndex.MECH_LOC_HD ) { - w.RemoveFromTurret( CurMech.GetLoadout().GetHDTurret() ); - } else if( location == LocationIndex.MECH_LOC_LT ) { - w.RemoveFromTurret( CurMech.GetLoadout().GetLTTurret() ); - } else if( location == LocationIndex.MECH_LOC_RT ) { - w.RemoveFromTurret( CurMech.GetLoadout().GetRTTurret() ); - } else { - Media.Messager( this, "Cannot remove from turret!" ); - return; - } + if( location == LocationIndex.MECH_LOC_HD ) { + CurItem.MountTurret( CurMech.GetLoadout().GetHDTurret() ); + } else if( location == LocationIndex.MECH_LOC_LT ) { + CurItem.MountTurret( CurMech.GetLoadout().GetLTTurret() ); + } else if( location == LocationIndex.MECH_LOC_RT ) { + CurItem.MountTurret( CurMech.GetLoadout().GetRTTurret() ); } else { - if( location == LocationIndex.MECH_LOC_HD ) { - w.AddToTurret( CurMech.GetLoadout().GetHDTurret() ); - } else if( location == LocationIndex.MECH_LOC_LT ) { - w.AddToTurret( CurMech.GetLoadout().GetLTTurret() ); - } else if( location == LocationIndex.MECH_LOC_RT ) { - w.AddToTurret( CurMech.GetLoadout().GetRTTurret() ); - } else { - Media.Messager( this, "Cannot add to turret!" ); - return; - } + Media.Messager( this, "Invalid turret location!" ); + return; } } RefreshInfoPane(); @@ -4049,7 +4011,7 @@ public boolean LegalCaseless( abPlaceable p ) { } public boolean LegalTurretMount( abPlaceable p ) { - if( ! (( p instanceof RangedWeapon ) || ( p instanceof MGArray )) ) { return false; } + if( ! p.CanMountTurret() ) { return false; } int location = CurMech.GetLoadout().Find( p ); if( location == LocationIndex.MECH_LOC_HD ) { if( CurMech.IsOmnimech() ) { diff --git a/sswlib/src/main/java/components/BipedLoadout.java b/sswlib/src/main/java/components/BipedLoadout.java index 43e4a90b..0fb900cb 100644 --- a/sswlib/src/main/java/components/BipedLoadout.java +++ b/sswlib/src/main/java/components/BipedLoadout.java @@ -2221,17 +2221,6 @@ public boolean UnallocateAll( abPlaceable p, boolean override ) { if( ((RangedWeapon) p).IsUsingPulseModule() ) { UnallocateAll( ((RangedWeapon) p).GetPulseModule(), true ); } - if( ((RangedWeapon) p).IsTurreted() ) { - if( ((RangedWeapon) p).GetTurret() == HDTurret ) { - ((RangedWeapon) p).RemoveFromTurret( HDTurret ); - } - if( ((RangedWeapon) p).GetTurret() == LTTurret ) { - ((RangedWeapon) p).RemoveFromTurret( LTTurret ); - } - if( ((RangedWeapon) p).GetTurret() == RTTurret ) { - ((RangedWeapon) p).RemoveFromTurret( RTTurret ); - } - } } // if the item is an MG Array, check for it's MGs and unallocate @@ -2241,6 +2230,10 @@ public boolean UnallocateAll( abPlaceable p, boolean override ) { } } + if( p.IsTurreted() ) { + p.MountTurret( null ); + } + Owner.SetChanged( true ); // everything worked out fine @@ -2339,17 +2332,6 @@ public void UnallocateByIndex( int SIndex, abPlaceable[] a ) { if( ((RangedWeapon) p).IsUsingPulseModule() ) { UnallocateAll( ((RangedWeapon) p).GetPulseModule(), true ); } - if( ((RangedWeapon) p).IsTurreted() ) { - if( ((RangedWeapon) p).GetTurret() == HDTurret ) { - ((RangedWeapon) p).RemoveFromTurret( HDTurret ); - } - if( ((RangedWeapon) p).GetTurret() == LTTurret ) { - ((RangedWeapon) p).RemoveFromTurret( LTTurret ); - } - if( ((RangedWeapon) p).GetTurret() == RTTurret ) { - ((RangedWeapon) p).RemoveFromTurret( RTTurret ); - } - } } // if the item is an MG Array, check for it's MGs and unallocate @@ -2359,6 +2341,10 @@ public void UnallocateByIndex( int SIndex, abPlaceable[] a ) { } } + if( p.IsTurreted() ) { + p.MountTurret( null ); + } + Owner.SetChanged( true ); } @@ -4922,13 +4908,9 @@ public boolean CanUseRTTurret() { private void ClearTurretWeapons( MechTurret t ) { for( int i = 0; i < NonCore.size(); i++ ) { - if( NonCore.get( i ) instanceof RangedWeapon ) { - RangedWeapon w = (RangedWeapon) NonCore.get( i ); - if( w.IsTurreted() ) { - if( w.GetTurret() == t ) { - w.RemoveFromTurret( t ); - } - } + abPlaceable p = (abPlaceable) NonCore.get( i ); + if( p.GetTurret() == t ) { + p.MountTurret( null ); } } } diff --git a/sswlib/src/main/java/components/Equipment.java b/sswlib/src/main/java/components/Equipment.java index 244b4c52..4e817cda 100644 --- a/sswlib/src/main/java/components/Equipment.java +++ b/sswlib/src/main/java/components/Equipment.java @@ -81,6 +81,7 @@ public class Equipment extends abPlaceable implements ifEquipment { RequiresNuclear = false, RequiresPowerAmps = false; private transient boolean Rear = false; + private transient ifTurret Turret = null; @SerializedName("Availability") private AvailableCode AC; public Equipment() { @@ -234,14 +235,12 @@ public String ActualName() { return ActualName; } - private String RearName() { return Rear ? "(R) " : ""; } - public String CritName() { String retval = CritName; if( VariableSize ) { retval += " (" + Tonnage + " tons)"; } - return RearName() + retval; + return NameModifier() + retval; } @Override @@ -254,7 +253,7 @@ public String PrintName() { } public String LookupName() { - return RearName() + LookupName; + return NameModifier() + LookupName; } public String ChatName() { @@ -262,7 +261,7 @@ public String ChatName() { } public String MegaMekName( boolean UseRear ) { - return (MegaMekName + " " + RearName()).trim(); + return (MegaMekName + " " + NameModifier()).trim(); } public String BookReference() { @@ -434,7 +433,7 @@ public boolean CanAllocLegs() { @Override public boolean CanMountRear() { - return CanMountRear; + return CanMountRear && ! IsTurreted(); } @Override @@ -447,6 +446,28 @@ public boolean IsMountedRear() { return Rear; } + @Override + public boolean CanMountTurret() { + return CanAllocCVTurret() && ! IsMountedRear(); + } + + @Override + public void MountTurret( ifTurret t ) { + if( Turret == t ) return; + if( Turret != null ) { + Turret.RemoveItem( this ); + } + if( t != null ) { + t.AddItem( this ); + } + Turret = t; + } + + @Override + public ifTurret GetTurret() { + return Turret; + } + @Override public String GetManufacturer() { return Manufacturer; diff --git a/sswlib/src/main/java/components/LiftHoist.java b/sswlib/src/main/java/components/LiftHoist.java index ee3456bc..3f885b0c 100644 --- a/sswlib/src/main/java/components/LiftHoist.java +++ b/sswlib/src/main/java/components/LiftHoist.java @@ -34,7 +34,6 @@ */ public class LiftHoist extends Equipment implements ifEquipment { private final ifUnit Owner; - private transient boolean Rear = false; private final static AvailableCode AC = new AvailableCode( AvailableCode.TECH_BOTH ); public LiftHoist(ifUnit l) { @@ -55,14 +54,12 @@ public LiftHoist(ifUnit l) SetMountableRear(true); } - public String RearName() { return Rear ? "(R) " : ""; } - public String ActualName() { return "Lift Hoist"; } public String CritName() { - return RearName() + "Lift Hoist"; + return NameModifier() + "Lift Hoist"; } @Override @@ -199,18 +196,4 @@ public boolean CanAllocCVBody() { } return false; } - - @Override - public String GetEquipmentType() { - return "equipment"; - } - - @Override - public void MountRear( boolean rear ) { - Rear = rear; - } - @Override - public boolean IsMountedRear() { - return Rear; - } } diff --git a/sswlib/src/main/java/components/MGArray.java b/sswlib/src/main/java/components/MGArray.java index 22d9f684..5bab02ea 100644 --- a/sswlib/src/main/java/components/MGArray.java +++ b/sswlib/src/main/java/components/MGArray.java @@ -89,35 +89,17 @@ public String ActualName() { // the lookup name is used when we are trying to find the piece of equipment. public String LookupName() { String retval = GetName(); - if( Rear ) { - if( Clan ) { - retval = "(R) (CL) " + retval; - } else { - retval = "(R) (IS) " + retval; - } + if( Clan ) { + retval = "(CL) " + retval; } else { - if( Clan ) { - retval = "(CL) " + retval; - } else { - retval = "(IS) " + retval; - } + retval = "(IS) " + retval; } - if( IsTurreted() ) { - retval = "(T) " + retval; - } - return retval; + return NameModifier() + retval; } // the crit name is how the item appears in the loadout when allocated. public String CritName() { - String retval = GetShortName(); - if( Rear ) { - retval = "(R) " + retval; - } - if( IsTurreted() ) { - retval = "(T) " + retval; - } - return retval; + return NameModifier() + GetShortName(); } // the name to be used when expoerting this equipment to a chat line. @@ -140,10 +122,7 @@ public String MegaMekName( boolean UseRear ) { } else { retval = "IS" + retval; } - if( Rear ) { - retval += " (R)"; - } - return retval; + return NameModifier() + retval; } // reference for the book that the equipment comes from @@ -449,16 +428,12 @@ public boolean SwitchableAmmo() { @Override public boolean CanMountRear() { - return true; + return ! IsTurreted(); } @Override public void MountRear( boolean rear ) { Rear = rear; - if( MGs[0] != null ) { MGs[0].MountRear( rear ); } - if( MGs[1] != null ) { MGs[1].MountRear( rear ); } - if( MGs[2] != null ) { MGs[2].MountRear( rear ); } - if( MGs[3] != null ) { MGs[3].MountRear( rear ); } } @Override @@ -476,26 +451,24 @@ public String GetManufacturer() { return Manufacturer; } - public boolean AddToTurret( ifTurret t ) { - if( t.AddWeapon( this ) ) { - Turret = t; - return true; - } else { - Turret = null; - return false; - } - } - - public void RemoveFromTurret( ifTurret t ) { - t.RemoveWeapon( this ); - Turret = null; + @Override + public boolean CanMountTurret() { + return CanAllocCVTurret() && ! IsMountedRear(); } - public boolean IsTurreted() { - if( Turret != null ) { return true; } - return false; + @Override + public void MountTurret( ifTurret t ) { + if( Turret == t ) return; + if( Turret != null ) { + Turret.RemoveItem( this ); + } + if( t != null ) { + t.AddItem( this ); + } + Turret = t; } + @Override public ifTurret GetTurret() { return Turret; } diff --git a/sswlib/src/main/java/components/MechTurret.java b/sswlib/src/main/java/components/MechTurret.java index 749cbfa2..5bfe1b98 100644 --- a/sswlib/src/main/java/components/MechTurret.java +++ b/sswlib/src/main/java/components/MechTurret.java @@ -36,7 +36,7 @@ public class MechTurret extends abPlaceable implements ifTurret { private ifMechLoadout Owner; private AvailableCode AC = new AvailableCode( AvailableCode.TECH_BOTH ); - private Vector<ifWeapon> weapons = new Vector<ifWeapon>(); + private Vector<abPlaceable> items = new Vector<abPlaceable>(); public MechTurret( ifMechLoadout l ) { Owner = l; @@ -49,43 +49,41 @@ public MechTurret( ifMechLoadout l ) { AC.SetCLFactions( "", "", "PS", "" ); } - public boolean AddWeapon( ifWeapon w ) { - if( ! (( w instanceof RangedWeapon ) || ( w instanceof MGArray )) ) { - return false; - } - if( w instanceof RangedWeapon ) { - //If it can't go in a Vehicle Turret then it can't go in a Mech one. - if( !((RangedWeapon) w).CanAllocCVTurret() ) return false; - //Make sure if they can split, that they haven't been. - if( ((RangedWeapon) w).CanSplit() ) { - //Gets all crit slots - ArrayList locations = Owner.FindIndexes( (abPlaceable) w ); - //first one - LocationIndex firstSlot = (LocationIndex) locations.get(0); - //check all of them - for (int i = 0; i < locations.size(); i++) { - //compare to the first. If they are different, it's been split. - LocationIndex currentSlot = ((LocationIndex) locations.get(i)); - if (currentSlot.Location != firstSlot.Location) - return false; - } + @Override + public boolean AddItem( abPlaceable p ) { + if( ! items.contains( p )) return false; + //Make sure if they can split, that they haven't been. + if( p.CanSplit() ) { + //Gets all crit slots + ArrayList locations = Owner.FindIndexes( (abPlaceable) p ); + //first one + LocationIndex firstSlot = (LocationIndex) locations.get(0); + //check all of them + for (int i = 0; i < locations.size(); i++) { + //compare to the first. If they are different, it's been split. + LocationIndex currentSlot = ((LocationIndex) locations.get(i)); + if (currentSlot.Location != firstSlot.Location) + return false; } } - weapons.add( w ); + items.add( p ); return true; } - public void RemoveWeapon( ifWeapon w ) { + @Override + public void RemoveItem( abPlaceable p ) { // extra code here! - weapons.remove( w ); + items.remove( p ); } - public Vector<ifWeapon> GetWeapons() { - return weapons; + @Override + public Vector<abPlaceable> GetItems() { + return items; } - public boolean IsInstalled( ifWeapon w ) { - return weapons.contains( w ); + @Override + public boolean IsInstalled( abPlaceable p ) { + return items.contains( p ); } @Override @@ -170,8 +168,8 @@ public int NumCVSpaces() { private double GetSize() { double retval = 0.0; - for( int i = 0; i < weapons.size(); i++ ) { - retval += ((abPlaceable) weapons.get( i )).GetTonnage(); + for( int i = 0; i < items.size(); i++ ) { + retval += ((abPlaceable) items.get( i )).GetTonnage(); } if( Owner.GetMech().UsingFractionalAccounting() ) { return CommonTools.RoundFractionalTons( retval * 0.1 ); diff --git a/sswlib/src/main/java/components/QuadLoadout.java b/sswlib/src/main/java/components/QuadLoadout.java index 8416613c..8dfe0ead 100644 --- a/sswlib/src/main/java/components/QuadLoadout.java +++ b/sswlib/src/main/java/components/QuadLoadout.java @@ -1973,17 +1973,6 @@ public boolean UnallocateAll( abPlaceable p, boolean override ) { if( ((RangedWeapon) p).IsUsingPulseModule() ) { UnallocateAll( ((RangedWeapon) p).GetPulseModule(), true ); } - if( ((RangedWeapon) p).IsTurreted() ) { - if( ((RangedWeapon) p).GetTurret() == HDTurret ) { - ((RangedWeapon) p).RemoveFromTurret( HDTurret ); - } - if( ((RangedWeapon) p).GetTurret() == LTTurret ) { - ((RangedWeapon) p).RemoveFromTurret( LTTurret ); - } - if( ((RangedWeapon) p).GetTurret() == RTTurret ) { - ((RangedWeapon) p).RemoveFromTurret( RTTurret ); - } - } } // if the item is an MG Array, check for it's MGs and unallocate @@ -1993,6 +1982,10 @@ public boolean UnallocateAll( abPlaceable p, boolean override ) { } } + if( p.IsTurreted() ) { + p.MountTurret( null ); + } + Owner.SetChanged( true ); // everything worked out fine @@ -2091,17 +2084,6 @@ public void UnallocateByIndex( int SIndex, abPlaceable[] a ) { if( ((RangedWeapon) p).IsUsingPulseModule() ) { UnallocateAll( ((RangedWeapon) p).GetPulseModule(), true ); } - if( ((RangedWeapon) p).IsTurreted() ) { - if( ((RangedWeapon) p).GetTurret() == HDTurret ) { - ((RangedWeapon) p).RemoveFromTurret( HDTurret ); - } - if( ((RangedWeapon) p).GetTurret() == LTTurret ) { - ((RangedWeapon) p).RemoveFromTurret( LTTurret ); - } - if( ((RangedWeapon) p).GetTurret() == RTTurret ) { - ((RangedWeapon) p).RemoveFromTurret( RTTurret ); - } - } } // if the item is an MG Array, check for it's MGs and unallocate @@ -2111,6 +2093,10 @@ public void UnallocateByIndex( int SIndex, abPlaceable[] a ) { } } + if( p.IsTurreted() ) { + p.MountTurret( null ); + } + Owner.SetChanged( true ); } @@ -4635,13 +4621,9 @@ public boolean CanUseRTTurret() { private void ClearTurretWeapons( MechTurret t ) { for( int i = 0; i < NonCore.size(); i++ ) { - if( NonCore.get( i ) instanceof RangedWeapon ) { - RangedWeapon w = (RangedWeapon) NonCore.get( i ); - if( w.IsTurreted() ) { - if( w.GetTurret() == t ) { - w.RemoveFromTurret( t ); - } - } + abPlaceable p = (abPlaceable) NonCore.get( i ); + if( p.GetTurret() == t ) { + p.MountTurret( null ); } } } diff --git a/sswlib/src/main/java/components/RangedWeapon.java b/sswlib/src/main/java/components/RangedWeapon.java index b670d1b2..f1fff3af 100644 --- a/sswlib/src/main/java/components/RangedWeapon.java +++ b/sswlib/src/main/java/components/RangedWeapon.java @@ -375,20 +375,7 @@ public String CritName() { if( UsingCaseless ) { retval += " (Caseless)"; } - if( IsTurreted() ) { - retval = "(T) " + retval; - } else { - if( InArray ) { - if( CurArray.IsTurreted() ) { - retval = "(T) " + retval; - } - } - } - if( MountedRear ) { - return "(R) " + retval; - } else { - return retval; - } + return NameModifier() + retval; } public String LookupName() { @@ -405,14 +392,7 @@ public String LookupName() { if( UsingCaseless ) { retval += " (Caseless)"; } - if( IsTurreted() ) { - retval = "(T) " + retval; - } - if( MountedRear ) { - return "(R) " + retval; - } else { - return retval; - } + return NameModifier() + retval; } public String ChatName() { @@ -420,11 +400,7 @@ public String ChatName() { } public String MegaMekName( boolean UseRear ) { - if( UseRear ) { - return MegaMekName + " (R)"; - } else { - return MegaMekName; - } + return (MegaMekName + " " + NameModifier()).trim(); } public String BookReference() { @@ -581,13 +557,13 @@ public double GetCurOffensiveBV( boolean UseRear, boolean UseTC, boolean UseAES, return retval; } else { if( UseRear ) { - if( MountedRear ) { + if( IsMountedRear() ) { return retval; } else { return retval * 0.5; } } else { - if( MountedRear ) { + if( IsMountedRear() ) { return retval * 0.5; } else { return retval; @@ -721,17 +697,13 @@ public int GetToHitLong() { public boolean CanMountRear() { // all weapons can be mounted to the rear. // unless they're turreted - if( IsTurreted() ) { return false; } - return true; + return ! IsTurreted(); } @Override public void MountRear( boolean rear ) { if( IsInArray() ) { - if( GetMyArray().IsMountedRear() != rear ) { - GetMyArray().MountRear( rear ); - } - MountedRear = rear; + GetMyArray().MountRear( rear ); } else { MountedRear = rear; } @@ -739,7 +711,11 @@ public void MountRear( boolean rear ) { @Override public boolean IsMountedRear() { - return MountedRear; + if( IsInArray() ) { + return GetMyArray().IsMountedRear(); + } else { + return MountedRear; + } } public boolean IsCluster() { @@ -1083,44 +1059,38 @@ public void SetLocationLinked( boolean b ) { SetLocked( b ); } - public boolean AddToTurret( ifTurret t ) { - if( InArray ) { - if( CurArray.AddToTurret( t ) ) { - return true; - } else { - return false; - } - } - if( t.AddWeapon( this ) ) { - Turret = t; - return true; - } else { - Turret = null; - return false; - } - } - - public void RemoveFromTurret( ifTurret t ) { - if( InArray ) { - CurArray.RemoveFromTurret( t ); - return; - } - t.RemoveWeapon( this ); - Turret = null; + @Override + public boolean CanMountTurret() { + // If it can't go in a Vehicle Turret then it can't go in a Mech one. + // Turret and rear mount are also mutually exclusive. + return CanAllocCVTurret() && ! IsMountedRear(); } - public boolean IsTurreted() { - if( InArray ) { - return CurArray.IsTurreted(); + @Override + public void MountTurret( ifTurret t ) { + if( IsInArray() ) { + GetMyArray().MountTurret( t ); + } else { + if( Turret == t ) return; + if( Turret != null ) { + Turret.RemoveItem( this ); + } + if( t != null ) { + t.AddItem( this ); + } + Turret = t; } - if( Turret != null ) { return true; } - return false; } + @Override public ifTurret GetTurret() { - return Turret; + if( IsInArray() ) { + return GetMyArray().GetTurret(); + } else { + return Turret; + } } - + public RangedWeapon Clone() { return new RangedWeapon( this ); } @@ -1132,12 +1102,8 @@ public int GetBMRulesLevel() { @Override public String toString() { String retval = CritName; - if( MountedRear ) - retval = "(R) " + retval; - if ( UsingFCS ) retval += " w/" + GetFCS().toString(); - - return retval; + return NameModifier() + retval; } } diff --git a/sswlib/src/main/java/components/TripodLoadout.java b/sswlib/src/main/java/components/TripodLoadout.java index 9cf75c75..445ed6b4 100644 --- a/sswlib/src/main/java/components/TripodLoadout.java +++ b/sswlib/src/main/java/components/TripodLoadout.java @@ -2349,17 +2349,6 @@ public boolean UnallocateAll( abPlaceable p, boolean override ) { if( ((RangedWeapon) p).IsUsingPulseModule() ) { UnallocateAll( ((RangedWeapon) p).GetPulseModule(), true ); } - if( ((RangedWeapon) p).IsTurreted() ) { - if( ((RangedWeapon) p).GetTurret() == HDTurret ) { - ((RangedWeapon) p).RemoveFromTurret( HDTurret ); - } - if( ((RangedWeapon) p).GetTurret() == LTTurret ) { - ((RangedWeapon) p).RemoveFromTurret( LTTurret ); - } - if( ((RangedWeapon) p).GetTurret() == RTTurret ) { - ((RangedWeapon) p).RemoveFromTurret( RTTurret ); - } - } } // if the item is an MG Array, check for it's MGs and unallocate @@ -2369,6 +2358,10 @@ public boolean UnallocateAll( abPlaceable p, boolean override ) { } } + if( p.IsTurreted() ) { + p.MountTurret( null ); + } + Owner.SetChanged( true ); // everything worked out fine @@ -2467,17 +2460,6 @@ public void UnallocateByIndex( int SIndex, abPlaceable[] a ) { if( ((RangedWeapon) p).IsUsingPulseModule() ) { UnallocateAll( ((RangedWeapon) p).GetPulseModule(), true ); } - if( ((RangedWeapon) p).IsTurreted() ) { - if( ((RangedWeapon) p).GetTurret() == HDTurret ) { - ((RangedWeapon) p).RemoveFromTurret( HDTurret ); - } - if( ((RangedWeapon) p).GetTurret() == LTTurret ) { - ((RangedWeapon) p).RemoveFromTurret( LTTurret ); - } - if( ((RangedWeapon) p).GetTurret() == RTTurret ) { - ((RangedWeapon) p).RemoveFromTurret( RTTurret ); - } - } } // if the item is an MG Array, check for it's MGs and unallocate @@ -2487,6 +2469,10 @@ public void UnallocateByIndex( int SIndex, abPlaceable[] a ) { } } + if( p.IsTurreted() ) { + p.MountTurret( null ); + } + Owner.SetChanged( true ); } @@ -5125,13 +5111,9 @@ public boolean CanUseRTTurret() { private void ClearTurretWeapons( MechTurret t ) { for( int i = 0; i < NonCore.size(); i++ ) { - if( NonCore.get( i ) instanceof RangedWeapon ) { - RangedWeapon w = (RangedWeapon) NonCore.get( i ); - if( w.IsTurreted() ) { - if( w.GetTurret() == t ) { - w.RemoveFromTurret( t ); - } - } + abPlaceable p = (abPlaceable) NonCore.get( i ); + if( p.GetTurret() == t ) { + p.MountTurret( null ); } } } diff --git a/sswlib/src/main/java/components/abPlaceable.java b/sswlib/src/main/java/components/abPlaceable.java index 3fa715aa..9428165d 100644 --- a/sswlib/src/main/java/components/abPlaceable.java +++ b/sswlib/src/main/java/components/abPlaceable.java @@ -312,6 +312,17 @@ public boolean LocationLinked() { // we use other names elsewhere because this can get extremely long. public abstract String ActualName(); + // intended for usage within LookupName and CritName + protected String NameModifier() { + if( IsMountedRear() ) { + return "(R) "; + } else if( IsTurreted() ) { + return "(T) "; + } else { + return ""; + } + } + // the lookup name is used when we are trying to find the piece of equipment. public abstract String LookupName(); @@ -327,11 +338,12 @@ public String CritName( int Loc ) { public String PrintName() { return CritName(); } - + // the name to be used when expoerting this equipment to a chat line. public abstract String ChatName(); // the name to be used when exporting to MegaMek + // TODO: UseRear is legacy and unused public abstract String MegaMekName( boolean UseRear ); // reference for the book that the equipment comes from @@ -382,14 +394,16 @@ public void DecrementPlaced() { public void ResetPlaced() { } - // tells us whether the item can be mounted to the rear. Most items cannot, - // so this automatically returns false + // Tells us whether the item can be mounted to the rear on a mech location. + // Most items cannot, so this automatically returns false + // (Not used for vehicles, which have their own dedicated rear location.) public boolean CanMountRear() { return false; } - // This next two methods should be overridden by any component that can be - // mounted to the rear. + // The next two methods should be overridden by any component that can be + // mounted to the rear on a mech location. + // (Not used for vehicles, which have their own dedicated rear location.) public void MountRear(boolean rear) { } @@ -397,6 +411,27 @@ public boolean IsMountedRear() { return false; } + // Tells us whether the item can be mounted to a mech turret. + // Defaults to delegating to CanAllocCVTurret. + // (Not used for vehicles, which have their own dedicated turret locations.) + public boolean CanMountTurret() { + return CanAllocCVTurret(); + } + + // The next two methods should be overridden by any component that can be + // mounted to a mech turret. + // (Not used for vehicles, which have their own dedicated turret locations.) + public void MountTurret(ifTurret turret) { + } + + public ifTurret GetTurret() { + return null; + } + + public boolean IsTurreted() { + return GetTurret() != null; + } + // tells us if this is a core component. A special list is kept in the // loadout for items not of this type and calculations based on such. public boolean CoreComponent() { diff --git a/sswlib/src/main/java/components/ifTurret.java b/sswlib/src/main/java/components/ifTurret.java index aa8978be..2e37e467 100644 --- a/sswlib/src/main/java/components/ifTurret.java +++ b/sswlib/src/main/java/components/ifTurret.java @@ -31,10 +31,10 @@ import java.util.Vector; public interface ifTurret { - public boolean AddWeapon( ifWeapon w ); - public void RemoveWeapon( ifWeapon w ); - public Vector<ifWeapon> GetWeapons(); - public boolean IsInstalled( ifWeapon w ); + public boolean AddItem( abPlaceable p ); + public void RemoveItem( abPlaceable p ); + public Vector<abPlaceable> GetItems(); + public boolean IsInstalled( abPlaceable p ); public double GetTonnage(); public double GetCost(); } \ No newline at end of file diff --git a/sswlib/src/main/java/filehandlers/CVReader.java b/sswlib/src/main/java/filehandlers/CVReader.java index b88126cb..54e55738 100644 --- a/sswlib/src/main/java/filehandlers/CVReader.java +++ b/sswlib/src/main/java/filehandlers/CVReader.java @@ -1207,7 +1207,8 @@ private abPlaceable GetEquipmentByName( String name, String type, CombatVehicle name = FileCommon.LookupStripArc( name ); rear = true; } else if( name.substring( 0, 4 ).equals( "(T) " ) ) { - // turreted items are handled elsewhere, unfortunately. + // this is for mech turrets so shouldn't even exist, + // but handle it just in case name = FileCommon.LookupStripArc( name ); } } @@ -1338,6 +1339,7 @@ private abPlaceable GetEquipmentByName( String name, String type, CombatVehicle retval.MountRear( true ); } } catch( Exception e ) { + Messages += e.toString(); return null; } return retval; diff --git a/sswlib/src/main/java/filehandlers/MechReader.java b/sswlib/src/main/java/filehandlers/MechReader.java index c88afaa3..4ebcbd81 100644 --- a/sswlib/src/main/java/filehandlers/MechReader.java +++ b/sswlib/src/main/java/filehandlers/MechReader.java @@ -856,46 +856,34 @@ private Mech BuildMech( Mech m, Document d, DataFactory f ) throws Exception { } if( turreted ) { if( l.Location == LocationIndex.MECH_LOC_HD ) { - if( ( p instanceof RangedWeapon ) || ( p instanceof MGArray ) ) { + if( p.CanMountTurret() ) { if( ! m.GetLoadout().HasHDTurret() ) { - throw new Exception( "A weapon was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); - } - if( p instanceof MGArray ) { - ((MGArray) p).AddToTurret( m.GetLoadout().GetHDTurret() ); - } else { - ((RangedWeapon) p).AddToTurret( m.GetLoadout().GetHDTurret() ); + throw new Exception( "An item was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); } + p.MountTurret( m.GetLoadout().GetHDTurret() ); } else { - throw new Exception( "An item that is not a weapon was specified as turreted\nbut only weapons can be turreted.\nThe 'Mech cannot be loaded." ); + throw new Exception( "A non-turret-mountable item was specified as turreted.\nThe 'Mech cannot be loaded." ); } } else if( l.Location == LocationIndex.MECH_LOC_LT ) { - if( ( p instanceof RangedWeapon ) || ( p instanceof MGArray ) ) { + if( p.CanMountTurret() ) { if( ! m.GetLoadout().HasLTTurret() ) { - throw new Exception( "A weapon was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); - } - if( p instanceof MGArray ) { - ((MGArray) p).AddToTurret( m.GetLoadout().GetLTTurret() ); - } else { - ((RangedWeapon) p).AddToTurret( m.GetLoadout().GetLTTurret() ); + throw new Exception( "An item was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); } + p.MountTurret( m.GetLoadout().GetLTTurret() ); } else { - throw new Exception( "An item that is not a weapon was specified as turreted\nbut only weapons can be turreted.\nThe 'Mech cannot be loaded." ); + throw new Exception( "A non-turret-mountable item was specified as turreted.\nThe 'Mech cannot be loaded." ); } } else if( l.Location == LocationIndex.MECH_LOC_RT ) { - if( ( p instanceof RangedWeapon ) || ( p instanceof MGArray ) ) { + if( p.CanMountTurret() ) { if( ! m.GetLoadout().HasRTTurret() ) { - throw new Exception( "A weapon was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); - } - if( p instanceof MGArray ) { - ((MGArray) p).AddToTurret( m.GetLoadout().GetRTTurret() ); - } else { - ((RangedWeapon) p).AddToTurret( m.GetLoadout().GetRTTurret() ); + throw new Exception( "An item was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); } + p.MountTurret( m.GetLoadout().GetRTTurret() ); } else { - throw new Exception( "An item that is not a weapon was specified as turreted\nbut only weapons can be turreted.\nThe 'Mech cannot be loaded." ); + throw new Exception( "A non-turret-mountable item was specified as turreted.\nThe 'Mech cannot be loaded." ); } } else { - throw new Exception( "A weapon was specified as turreted, but it is\nnot in a location that can have a turret.\nThe 'Mech cannot be loaded." ); + throw new Exception( "A item was specified as turreted, but it is\nnot in a location that can have a turret.\nThe 'Mech cannot be loaded." ); } } } @@ -1629,43 +1617,31 @@ private Mech BuildMech( Mech m, Document d, DataFactory f ) throws Exception { } if( turreted ) { if( l.Location == LocationIndex.MECH_LOC_HD ) { - if( ( p instanceof RangedWeapon ) || ( p instanceof MGArray ) ) { + if( p.CanMountTurret() ) { if( ! m.GetLoadout().HasHDTurret() ) { - throw new Exception( "A weapon was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); - } - if( p instanceof MGArray ) { - ((MGArray) p).AddToTurret( m.GetLoadout().GetHDTurret() ); - } else { - ((RangedWeapon) p).AddToTurret( m.GetLoadout().GetHDTurret() ); + throw new Exception( "An item was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); } + p.MountTurret( m.GetLoadout().GetHDTurret() ); } else { - throw new Exception( "An item that is not a weapon was specified as turreted\nbut only weapons can be turreted.\nThe 'Mech cannot be loaded." ); + throw new Exception( "A non-turret-mountable item was specified as turreted.\nThe 'Mech cannot be loaded." ); } } else if( l.Location == LocationIndex.MECH_LOC_LT ) { - if( ( p instanceof RangedWeapon ) || ( p instanceof MGArray ) ) { + if( p.CanMountTurret() ) { if( ! m.GetLoadout().HasLTTurret() ) { - throw new Exception( "A weapon was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); - } - if( p instanceof MGArray ) { - ((MGArray) p).AddToTurret( m.GetLoadout().GetLTTurret() ); - } else { - ((RangedWeapon) p).AddToTurret( m.GetLoadout().GetLTTurret() ); + throw new Exception( "An item was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); } + p.MountTurret( m.GetLoadout().GetLTTurret() ); } else { - throw new Exception( "An item that is not a weapon was specified as turreted\nbut only weapons can be turreted.\nThe 'Mech cannot be loaded." ); + throw new Exception( "A non-turret-mountable item was specified as turreted.\nThe 'Mech cannot be loaded." ); } } else if( l.Location == LocationIndex.MECH_LOC_RT ) { - if( ( p instanceof RangedWeapon ) || ( p instanceof MGArray ) ) { + if( p.CanMountTurret() ) { if( ! m.GetLoadout().HasRTTurret() ) { - throw new Exception( "A weapon was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); - } - if( p instanceof MGArray ) { - ((MGArray) p).AddToTurret( m.GetLoadout().GetRTTurret() ); - } else { - ((RangedWeapon) p).AddToTurret( m.GetLoadout().GetRTTurret() ); + throw new Exception( "An item was specified as turreted but there is no\nturret that it can legally be added to.\nThe 'Mech cannot be loaded." ); } + p.MountTurret( m.GetLoadout().GetRTTurret() ); } else { - throw new Exception( "An item that is not a weapon was specified as turreted\nbut only weapons can be turreted.\nThe 'Mech cannot be loaded." ); + throw new Exception( "A non-turret-mountable item was specified as turreted.\nThe 'Mech cannot be loaded." ); } } } @@ -1852,7 +1828,8 @@ private abPlaceable GetEquipmentByName( String name, String type, Mech m ) { name = FileCommon.LookupStripArc( name ); rear = true; } else if( name.substring( 0, 4 ).equals( "(T) " ) ) { - // turreted items are handled elsewhere, unfortunately. + // turreted items are handled elsewhere due to dependency on + // separate equipment (the mech turret itself) name = FileCommon.LookupStripArc( name ); } } @@ -1983,6 +1960,7 @@ private abPlaceable GetEquipmentByName( String name, String type, Mech m ) { retval.MountRear( true ); } } catch( Exception e ) { + Messages += e.toString(); return null; } return retval; From d380751c113f8f2bc18b83b8af6ea09d357149b7 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Thu, 23 Nov 2023 16:09:43 -0800 Subject: [PATCH 173/199] Drag&drop equipment keeps mech turret status if applicable --- ssw/src/main/java/ssw/gui/thHDTransferHandler.java | 5 +++++ ssw/src/main/java/ssw/gui/thLTTransferHandler.java | 5 +++++ ssw/src/main/java/ssw/gui/thRTTransferHandler.java | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/ssw/src/main/java/ssw/gui/thHDTransferHandler.java b/ssw/src/main/java/ssw/gui/thHDTransferHandler.java index 8cc988c6..d1a56454 100644 --- a/ssw/src/main/java/ssw/gui/thHDTransferHandler.java +++ b/ssw/src/main/java/ssw/gui/thHDTransferHandler.java @@ -129,6 +129,7 @@ public boolean importData( TransferHandler.TransferSupport info ) { LocationDragDatagram DropItem = null; boolean rear = false; + boolean turreted = false; // get the item data try { DropItem = (LocationDragDatagram) info.getTransferable().getTransferData( new DataFlavor( LocationDragDatagram.class, "Location Drag Datagram" ) ); @@ -149,6 +150,7 @@ public boolean importData( TransferHandler.TransferSupport info ) { // from another location a = CurMech.GetLoadout().GetCrits( DropItem.Location )[DropItem.SourceIndex]; rear = a.IsMountedRear(); + turreted = a.IsTurreted(); if( a.CanSplit() && a.Contiguous() ) { CurMech.GetLoadout().UnallocateAll( a, false ); } else { @@ -170,6 +172,9 @@ public boolean importData( TransferHandler.TransferSupport info ) { CurMech.GetLoadout().RemoveFromQueue( a ); } a.MountRear( rear ); + if( turreted ) { + a.MountTurret( CurMech.GetLoadout().GetHDTurret() ); + } Parent.RefreshSummary(); Parent.RefreshInfoPane(); return true; diff --git a/ssw/src/main/java/ssw/gui/thLTTransferHandler.java b/ssw/src/main/java/ssw/gui/thLTTransferHandler.java index 634b7054..760f1a68 100644 --- a/ssw/src/main/java/ssw/gui/thLTTransferHandler.java +++ b/ssw/src/main/java/ssw/gui/thLTTransferHandler.java @@ -183,6 +183,7 @@ public boolean importData( TransferHandler.TransferSupport info ) { LocationDragDatagram DropItem = null; boolean rear = false; + boolean turreted = false; // get the item data try { DropItem = (LocationDragDatagram) info.getTransferable().getTransferData( new DataFlavor( LocationDragDatagram.class, "Location Drag Datagram" ) ); @@ -204,6 +205,7 @@ public boolean importData( TransferHandler.TransferSupport info ) { // from another location a = CurMech.GetLoadout().GetCrits( DropItem.Location )[DropItem.SourceIndex]; rear = a.IsMountedRear(); + turreted = a.IsTurreted(); if( a.CanSplit() && a.Contiguous() ) { // find all locations before unallocating v = CurMech.GetLoadout().FindSplitIndex( a ); @@ -269,6 +271,9 @@ public boolean importData( TransferHandler.TransferSupport info ) { CurMech.GetLoadout().RemoveFromQueue( a ); } a.MountRear( rear ); + if( turreted ) { + a.MountTurret( CurMech.GetLoadout().GetLTTurret() ); + } if( a instanceof VehicularGrenadeLauncher ) { // reset the arc as it may not be appropriate ((VehicularGrenadeLauncher ) a).SetArcFore(); diff --git a/ssw/src/main/java/ssw/gui/thRTTransferHandler.java b/ssw/src/main/java/ssw/gui/thRTTransferHandler.java index 943e61ff..c40e598d 100644 --- a/ssw/src/main/java/ssw/gui/thRTTransferHandler.java +++ b/ssw/src/main/java/ssw/gui/thRTTransferHandler.java @@ -183,6 +183,7 @@ public boolean importData( TransferHandler.TransferSupport info ) { LocationDragDatagram DropItem = null; boolean rear = false; + boolean turreted = false; // get the item data try { DropItem = (LocationDragDatagram) info.getTransferable().getTransferData( new DataFlavor( LocationDragDatagram.class, "Location Drag Datagram" ) ); @@ -204,6 +205,7 @@ public boolean importData( TransferHandler.TransferSupport info ) { // from another location a = CurMech.GetLoadout().GetCrits( DropItem.Location )[DropItem.SourceIndex]; rear = a.IsMountedRear(); + turreted = a.IsTurreted(); if( a.CanSplit() && a.Contiguous() ) { // find all locations before unallocating v = CurMech.GetLoadout().FindSplitIndex( a ); @@ -269,6 +271,9 @@ public boolean importData( TransferHandler.TransferSupport info ) { CurMech.GetLoadout().RemoveFromQueue( a ); } a.MountRear( rear ); + if( turreted ) { + a.MountTurret( CurMech.GetLoadout().GetRTTurret() ); + } if( a instanceof VehicularGrenadeLauncher ) { // reset the arc as it may not be appropriate ((VehicularGrenadeLauncher ) a).SetArcFore(); From 95d424f8361f53505ba072ca1fa4962c4f1188e7 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sun, 3 Dec 2023 00:48:45 -0800 Subject: [PATCH 174/199] Disallow mounting ammo in mech turret --- sswlib/src/main/java/components/Ammunition.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sswlib/src/main/java/components/Ammunition.java b/sswlib/src/main/java/components/Ammunition.java index 8daa18d0..d06947b7 100644 --- a/sswlib/src/main/java/components/Ammunition.java +++ b/sswlib/src/main/java/components/Ammunition.java @@ -325,6 +325,12 @@ public boolean CanArmor() { return false; } + @Override + public boolean CanMountTurret() { + // Ammunition can never be mounted in a turret + return false; + } + public Ammunition Clone() { return new Ammunition( this ); } From 7c1d4cf7a1da9af443470dabab289acfbd5c0464 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sun, 3 Dec 2023 00:52:15 -0800 Subject: [PATCH 175/199] Align rear-mounting menu logic with others wrt menu visibility and code, remove some redundant menu code --- saw/src/main/java/saw/gui/frmVee.java | 4 -- saw/src/main/java/saw/gui/frmVeeWide.java | 4 -- ssw/src/main/java/ssw/gui/frmMain.java | 24 ++++++++--- ssw/src/main/java/ssw/gui/frmMainWide.java | 47 ++++++++++++---------- 4 files changed, 45 insertions(+), 34 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 1c49dde7..3b75a903 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -665,10 +665,6 @@ private void ConfigureUtilsMenu( java.awt.Component c ) { boolean caseless = LegalCaseless( CurItem ) && CommonTools.IsAllowed( CaselessAmmoAC, CurVee ); boolean lotchange = LegalLotChange( CurItem ); boolean dumper = LegalDumper( CurItem ); - mnuAddCapacitor.setEnabled( cap ); - mnuAddInsulator.setEnabled( insul ); - mnuAddPulseModule.setEnabled(pulseModule); - mnuCaseless.setEnabled( caseless ); mnuAddCapacitor.setVisible( cap ); mnuAddInsulator.setVisible( insul ); mnuAddPulseModule.setVisible(pulseModule); diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index d4632f85..ccccacf2 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -633,10 +633,6 @@ private void ConfigureUtilsMenu( java.awt.Component c ) { boolean caseless = LegalCaseless( CurItem ) && CommonTools.IsAllowed( CaselessAmmoAC, CurVee ); boolean lotchange = LegalLotChange( CurItem ); boolean dumper = LegalDumper( CurItem ); - mnuAddCapacitor.setEnabled( cap ); - mnuAddInsulator.setEnabled( insul ); - mnuAddPulseModule.setEnabled(pulseModule); - mnuCaseless.setEnabled( caseless ); mnuAddCapacitor.setVisible( cap ); mnuAddInsulator.setVisible( insul ); mnuAddPulseModule.setVisible(pulseModule); diff --git a/ssw/src/main/java/ssw/gui/frmMain.java b/ssw/src/main/java/ssw/gui/frmMain.java index f7de3474..65f88fed 100644 --- a/ssw/src/main/java/ssw/gui/frmMain.java +++ b/ssw/src/main/java/ssw/gui/frmMain.java @@ -3542,6 +3542,7 @@ private boolean VerifyMech( ActionEvent evt ) { private void ConfigureUtilsMenu( java.awt.Component c ) { // configures the utilities popup menu + boolean rear = LegalRearMount( CurItem ); boolean armor = LegalArmoring( CurItem ) && CommonTools.IsAllowed( abPlaceable.ArmoredAC, CurMech ); boolean cap = LegalCapacitor( CurItem ) && CommonTools.IsAllowed( PPCCapAC, CurMech ); boolean insul = LegalInsulator( CurItem ) && CommonTools.IsAllowed( LIAC, CurMech ); @@ -3550,11 +3551,7 @@ private void ConfigureUtilsMenu( java.awt.Component c ) { boolean lotchange = LegalLotChange( CurItem ); boolean turreted = LegalTurretMount( CurItem ); boolean dumper = LegalDumper( CurItem ); - mnuArmorComponent.setEnabled( armor ); - mnuAddCapacitor.setEnabled( cap ); - mnuAddInsulator.setEnabled( insul ); - mnuAddPulseModule.setEnabled(pulseModule); - mnuCaseless.setEnabled( caseless ); + mnuMountRear.setVisible( rear ); mnuArmorComponent.setVisible( armor ); mnuAddCapacitor.setVisible( cap ); mnuAddInsulator.setVisible( insul ); @@ -4015,6 +4012,23 @@ public void SetVariableSize() { } } + public boolean LegalRearMount( abPlaceable p ) { + switch( CurMech.GetLoadout().Find( p ) ) { + case LocationIndex.MECH_LOC_HD: + case LocationIndex.MECH_LOC_CT: + case LocationIndex.MECH_LOC_LT: + case LocationIndex.MECH_LOC_RT: + case LocationIndex.MECH_LOC_LL: + case LocationIndex.MECH_LOC_RL: + return CurItem.CanMountRear(); + case LocationIndex.MECH_LOC_LA: + case LocationIndex.MECH_LOC_RA: + return CurMech.IsQuad() && CurItem.CanMountRear(); + default: + return false; + } + } + public boolean LegalArmoring( abPlaceable p ) { // This tells us whether it is legal to armor a particular component if( p.CanArmor() ) { diff --git a/ssw/src/main/java/ssw/gui/frmMainWide.java b/ssw/src/main/java/ssw/gui/frmMainWide.java index a7f5c60c..777d971f 100644 --- a/ssw/src/main/java/ssw/gui/frmMainWide.java +++ b/ssw/src/main/java/ssw/gui/frmMainWide.java @@ -3491,6 +3491,7 @@ private boolean VerifyMech( ActionEvent evt ) { private void ConfigureUtilsMenu( java.awt.Component c ) { // configures the utilities popup menu + boolean rear = LegalRearMount( CurItem ); boolean armor = LegalArmoring( CurItem ) && CommonTools.IsAllowed( abPlaceable.ArmoredAC, CurMech ); boolean cap = LegalCapacitor( CurItem ) && CommonTools.IsAllowed( PPCCapAC, CurMech ); boolean insul = LegalInsulator( CurItem ) && CommonTools.IsAllowed( LIAC, CurMech ); @@ -3498,11 +3499,7 @@ private void ConfigureUtilsMenu( java.awt.Component c ) { boolean caseless = LegalCaseless( CurItem ) && CommonTools.IsAllowed( CaselessAmmoAC, CurMech ); boolean lotchange = LegalLotChange( CurItem ); boolean turreted = LegalTurretMount( CurItem ); - mnuArmorComponent.setEnabled( armor ); - mnuAddCapacitor.setEnabled( cap ); - mnuAddInsulator.setEnabled( insul ); - mnuAddPulseModule.setEnabled(pulseModule); - mnuCaseless.setEnabled( caseless ); + mnuMountRear.setVisible( rear ); mnuArmorComponent.setVisible( armor ); mnuAddCapacitor.setVisible( cap ); mnuAddInsulator.setVisible( insul ); @@ -3510,6 +3507,13 @@ private void ConfigureUtilsMenu( java.awt.Component c ) { mnuCaseless.setVisible( caseless ); mnuSetLotSize.setVisible( lotchange ); mnuTurret.setVisible( turreted ); + if( rear ) { + if( CurItem.IsMountedRear() ) { + mnuMountRear.setText( "Unmount Rear " ); + } else { + mnuMountRear.setText( "Mount Rear " ); + } + } if( armor ) { if( CurItem.IsArmored() ) { mnuArmorComponent.setText( "Unarmor Component" ); @@ -3627,22 +3631,6 @@ private void ConfigureUtilsMenu( java.awt.Component c ) { mnuUnallocateAll.setText( "Unallocate All" ); mnuUnallocateAll.setEnabled( false ); } - if( c == lstHDCrits || c == lstCTCrits || c == lstLTCrits || c == lstRTCrits || c == lstLLCrits || c == lstRLCrits || ( CurMech.IsQuad() && (c == lstRACrits || c == lstLACrits))) { - if( CurItem.CanMountRear() ) { - mnuMountRear.setEnabled( true ); - if( CurItem.IsMountedRear() ) { - mnuMountRear.setText( "Unmount Rear " ); - } else { - mnuMountRear.setText( "Mount Rear " ); - } - } else { - mnuMountRear.setEnabled( false ); - mnuMountRear.setText( "Mount Rear " ); - } - } else { - mnuMountRear.setEnabled( false ); - mnuMountRear.setText( "Mount Rear " ); - } if( CurItem.Contiguous() ) { EquipmentCollection C = CurMech.GetLoadout().GetCollection( CurItem ); if( C == null ) { @@ -3956,6 +3944,23 @@ public void SetVariableSize() { } } + public boolean LegalRearMount( abPlaceable p ) { + switch( CurMech.GetLoadout().Find( p ) ) { + case LocationIndex.MECH_LOC_HD: + case LocationIndex.MECH_LOC_CT: + case LocationIndex.MECH_LOC_LT: + case LocationIndex.MECH_LOC_RT: + case LocationIndex.MECH_LOC_LL: + case LocationIndex.MECH_LOC_RL: + return CurItem.CanMountRear(); + case LocationIndex.MECH_LOC_LA: + case LocationIndex.MECH_LOC_RA: + return CurMech.IsQuad() && CurItem.CanMountRear(); + default: + return false; + } + } + public boolean LegalArmoring( abPlaceable p ) { // This tells us whether it is legal to armor a particular component if( p.CanArmor() ) { From 87f1cc22031901127efcdcba49648c57cdfcf695 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sun, 3 Dec 2023 05:26:20 -0800 Subject: [PATCH 176/199] Fix regression from 04b2627 where items weren't actually added to mech turret for cost & weight purposes --- sswlib/src/main/java/components/MechTurret.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sswlib/src/main/java/components/MechTurret.java b/sswlib/src/main/java/components/MechTurret.java index 5bfe1b98..fdf701d0 100644 --- a/sswlib/src/main/java/components/MechTurret.java +++ b/sswlib/src/main/java/components/MechTurret.java @@ -51,7 +51,7 @@ public MechTurret( ifMechLoadout l ) { @Override public boolean AddItem( abPlaceable p ) { - if( ! items.contains( p )) return false; + if( items.contains( p )) return false; //Make sure if they can split, that they haven't been. if( p.CanSplit() ) { //Gets all crit slots From 0fbb9c06c24f7c74b884a6c3a33c05f4bd954487 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sun, 3 Dec 2023 07:59:50 -0800 Subject: [PATCH 177/199] Fix regression from 2415ab5 and related omnivehicle that broke turrets on non-omnivehicles on wide CV GUI Specifically, omnivehicle code didn't properly unset turret max tonnage when disabled, and the wide CV GUI specifically resets them to 0 even for non-omnivehicles. Also remove max tonnage stuff from sponson turrets since they're unrelated to omnivehicles. Note: non-wide CV omnivehicle code remains incomplete. --- saw/src/main/java/saw/gui/frmVee.java | 23 +++++++----- saw/src/main/java/saw/gui/frmVeeWide.java | 37 +++++++++++++------ .../main/java/components/SponsonTurret.java | 30 +-------------- sswlib/src/main/java/components/Turret.java | 17 +++++---- 4 files changed, 50 insertions(+), 57 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 3b75a903..3bf3dc98 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -1758,6 +1758,8 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { spnTurretTonnage.setEnabled(false); spnTurretTonnage.addChangeListener(this::spnTurretTonnageStateChanged); + // TODO: copy spnRearTurretTonnage code from frmVeeWide + javax.swing.GroupLayout pnlChassisLayout = new javax.swing.GroupLayout(pnlChassis); pnlChassis.setLayout(pnlChassisLayout); pnlChassisLayout.setHorizontalGroup( @@ -6967,18 +6969,19 @@ private void cmbTurretActionPerformed(java.awt.event.ActionEvent evt) { String Turret = cmbTurret.getSelectedItem().toString(); if ( Turret.equals("Single Turret") || Turret.equals("Chin Turret")) { CurVee.setHasTurret1(true); - if (chkOmniVee.isSelected() && !isLocked ) - spnTurretTonnage.setEnabled(true); + spnTurretTonnage.setEnabled(chkOmniVee.isSelected() && !isLocked); } else if(Turret.equals("Dual Turret")) { CurVee.setHasTurret1(true); CurVee.setHasTurret2(true); - if (chkOmniVee.isSelected() && !isLocked ) - spnTurretTonnage.setEnabled(true); + spnTurretTonnage.setEnabled(chkOmniVee.isSelected() && !isLocked); } else { CurVee.setHasTurret1(false); CurVee.setHasTurret2(false); spnTurretTonnage.setEnabled(false); } + if( ! spnTurretTonnage.isEnabled() ) { + spnTurretTonnage.setValue(0); + } BuildLocationSelector(); RecalcArmorLocations(); @@ -8666,11 +8669,13 @@ private void btnExportMTFIconActionPerformed(java.awt.event.ActionEvent evt) { } private void spnTurretTonnageStateChanged(javax.swing.event.ChangeEvent evt) { - double Tons = 0; - try - { - Tons = Double.parseDouble(spnTurretTonnage.getValue().toString()); - CurVee.GetLoadout().GetTurret().SetTonnage(Tons); + try { + if( spnTurretTonnage.isEnabled() ) { + double Tons = Double.parseDouble(spnTurretTonnage.getValue().toString()); + CurVee.GetLoadout().GetTurret().SetTonnage(Tons); + } else { + CurVee.GetLoadout().GetTurret().UnsetTonnage(); + } } catch ( Exception e ) { Media.Messager(e.getMessage()); return; diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index ccccacf2..cb8102bb 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -4551,22 +4551,26 @@ public void LoadVehicleIntoGUI() { RefreshOmniChoices(); } - spnTurretTonnage.setValue(0); - spnRearTurretTonnage.setValue(0); - if ( CurVee.isHasTurret1() ) { + if( CurVee.isHasTurret1() ) { cmbTurret.setSelectedItem("Single Turret"); if (chkOmniVee.isSelected()) { spnTurretTonnage.setEnabled(!isLocked); spnTurretTonnage.setValue(CurVee.GetLoadout().GetTurret().GetTonnage()); } } - if ( CurVee.isHasTurret2() ) { + if( ! spnTurretTonnage.isEnabled() ) { + spnTurretTonnage.setValue(0); + } + if( CurVee.isHasTurret2() ) { cmbTurret.setSelectedItem("Dual Turret"); if (chkOmniVee.isSelected()) { spnRearTurretTonnage.setEnabled(!isLocked); spnRearTurretTonnage.setValue(CurVee.GetLoadout().GetRearTurret().GetTonnage()); } } + if( ! spnRearTurretTonnage.isEnabled() ) { + spnRearTurretTonnage.setValue(0); + } FixTonnageSpinner( CurVee.GetMinTonnage(), CurVee.GetMaxTonnage() ); BuildChassisSelector(); @@ -6519,10 +6523,13 @@ private void spnCruiseMPStateChanged(javax.swing.event.ChangeEvent evt) { } private void spnTurretTonnageStateChanged(javax.swing.event.ChangeEvent evt) { - double Tons = 0; try { - Tons = Double.parseDouble(spnTurretTonnage.getValue().toString()); - CurVee.GetLoadout().GetTurret().SetTonnage(Tons); + if( spnTurretTonnage.isEnabled() ) { + double Tons = Double.parseDouble(spnTurretTonnage.getValue().toString()); + CurVee.GetLoadout().GetTurret().SetTonnage(Tons); + } else { + CurVee.GetLoadout().GetTurret().UnsetTonnage(); + } } catch (Exception e) { Media.Messager(e.getMessage()); return; @@ -6533,10 +6540,13 @@ private void spnTurretTonnageStateChanged(javax.swing.event.ChangeEvent evt) { } private void spnRearTurretTonnageStateChanged(javax.swing.event.ChangeEvent evt) { - double Tons = 0; try { - Tons = Double.parseDouble(spnRearTurretTonnage.getValue().toString()); - CurVee.GetLoadout().GetRearTurret().SetTonnage(Tons); + if( spnRearTurretTonnage.isEnabled() ) { + double Tons = Double.parseDouble(spnRearTurretTonnage.getValue().toString()); + CurVee.GetLoadout().GetRearTurret().SetTonnage(Tons); + } else { + CurVee.GetLoadout().GetRearTurret().UnsetTonnage(); + } } catch (Exception e) { Media.Messager(e.getMessage()); return; @@ -6601,7 +6611,6 @@ private void cmbTurretActionPerformed(java.awt.event.ActionEvent evt) { CurVee.setHasTurret1(true); spnTurretTonnage.setEnabled(chkOmniVee.isSelected() && !isLocked); spnRearTurretTonnage.setEnabled(false); - spnRearTurretTonnage.setValue(0); } else if (Turret.equals("Dual Turret")) { CurVee.setHasTurret1(true); CurVee.setHasTurret2(true); @@ -6611,8 +6620,12 @@ private void cmbTurretActionPerformed(java.awt.event.ActionEvent evt) { CurVee.setHasTurret1(false); CurVee.setHasTurret2(false); spnTurretTonnage.setEnabled(false); - spnTurretTonnage.setValue(0); spnRearTurretTonnage.setEnabled(false); + } + if( ! spnTurretTonnage.isEnabled() ) { + spnTurretTonnage.setValue(0); + } + if( ! spnRearTurretTonnage.isEnabled() ) { spnRearTurretTonnage.setValue(0); } diff --git a/sswlib/src/main/java/components/SponsonTurret.java b/sswlib/src/main/java/components/SponsonTurret.java index 3e983ae6..c3bee0f9 100644 --- a/sswlib/src/main/java/components/SponsonTurret.java +++ b/sswlib/src/main/java/components/SponsonTurret.java @@ -28,16 +28,13 @@ package components; -import common.CommonTools; import java.util.ArrayList; public class SponsonTurret extends abPlaceable { private ifCVLoadout Owner; private final static AvailableCode AC = new AvailableCode( AvailableCode.TECH_BOTH ); - private boolean Clan, - isTonnageSet; + private boolean Clan; private ArrayList Items = new ArrayList(); - private double MaxTonnage = 0; public SponsonTurret( ifCVLoadout l, boolean clan) { AC.SetISCodes( 'B', 'F', 'F', 'F', 'D' ); @@ -96,10 +93,7 @@ public int NumCVSpaces() { @Override public double GetTonnage() { - if ( isTonnageSet ) - return MaxTonnage; - else - return GetSize(); + return GetSize(); } @Override @@ -145,9 +139,6 @@ public AvailableCode GetAvailability() { private double GetSize() { double Build = 0.0; - if ( isTonnageSet ) - return MaxTonnage; - if( Items.isEmpty() ) { return 0; } @@ -192,21 +183,4 @@ public void SetItems( ArrayList a ) { public ArrayList GetItems() { return Items; } - - public void TonnageSet( boolean i ) { - isTonnageSet = i; - if (!i) - MaxTonnage = 0; - } - public void SetTonnage( double t ) { - MaxTonnage = t; - isTonnageSet = true; - } - public boolean isTonnageSet() { - return isTonnageSet; - } - - public double GetMaxTonnage() { - return MaxTonnage; - } } diff --git a/sswlib/src/main/java/components/Turret.java b/sswlib/src/main/java/components/Turret.java index ed124119..f4d00563 100644 --- a/sswlib/src/main/java/components/Turret.java +++ b/sswlib/src/main/java/components/Turret.java @@ -184,28 +184,29 @@ public boolean CoreComponent() { public String toString() { return CritName(); } - + public void SetItems( ArrayList a ) { Items = a; } - + public ArrayList GetItems() { return Items; } - - public void TonnageSet( boolean i ) { - isTonnageSet = i; - if (!i) - MaxTonnage = 0; + + public void UnsetTonnage() { + MaxTonnage = 0; + isTonnageSet = false; } + public void SetTonnage( double t ) { MaxTonnage = t; isTonnageSet = true; } + public boolean isTonnageSet() { return isTonnageSet; } - + public double GetMaxTonnage() { return MaxTonnage; } From 0e8d8a4df18fae33fb17b51067edd36c398f2802 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Thu, 7 Dec 2023 07:40:09 -0800 Subject: [PATCH 178/199] Reallocated equipment retains turreted status Comment out non-functioning crit loc snapshot code --- .../main/java/components/BipedLoadout.java | 117 ++++++------------ .../src/main/java/components/QuadLoadout.java | 116 ++++++----------- .../main/java/components/TripodLoadout.java | 116 ++++++----------- 3 files changed, 106 insertions(+), 243 deletions(-) diff --git a/sswlib/src/main/java/components/BipedLoadout.java b/sswlib/src/main/java/components/BipedLoadout.java index 0fb900cb..1e184124 100644 --- a/sswlib/src/main/java/components/BipedLoadout.java +++ b/sswlib/src/main/java/components/BipedLoadout.java @@ -3163,6 +3163,25 @@ public boolean IsAllocated( abPlaceable p ) { // Private Methods private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exception { + class RemoveEntry { + abPlaceable p; + boolean rear; + ifTurret turret; + + RemoveEntry( int AddInLoc, int i ) { + // we've already ensured that it is not location locked + // above, so put the item back into the queue. + p = Loc[i]; + rear = p.IsMountedRear(); + turret = p.GetTurret(); + if( p.CanSplit() && p.Contiguous() ) { + UnallocateAll( Loc[i], false ); + } else { + UnallocateByIndex( AddInLoc, Loc ); + } + } + } + // Adds the specified placeable to the given location at the specified // stating index. Throws Exceptions with error messages if things went // wrong. @@ -3170,14 +3189,16 @@ private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exc if (p instanceof Equipment) { ((Equipment) p).ValidateMaxPerLocation(Loc); } + + // TODO: this snapshot thing doesn't work (see its usage below), commented out for now // Let's get a snapshot of the location so we can reset it if we have to. - abPlaceable SnapShot[] = Loc.clone(); + //abPlaceable SnapShot[] = Loc.clone(); // we have to accomodate for Artemis IV systems boolean AddIn = false; boolean ArrayGood = false; int AddInSize = 1; - ArrayList removed = new ArrayList(), rears = new ArrayList(); + ArrayList<RemoveEntry> removed = new ArrayList<>(); // check for generic placement if( SIndex == -1 ) { @@ -3290,17 +3311,7 @@ private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exc for( i = SIndex; i < ( p.NumCrits() + SIndex ); i++ ) { // is there a non-location locked item there? if( Loc[i] != NoItem ) { - // we've already ensured that it is not location locked - // above, so put the item back into the queue. - if( Loc[i].CanSplit() && Loc[i].Contiguous() ) { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateAll( Loc[i], false ); - } else { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateByIndex( i, Loc ); - } + removed.add( new RemoveEntry( i, i ) ); } // finally, allocate the item slot Loc[i] = p; @@ -3311,17 +3322,7 @@ private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exc if( p instanceof RangedWeapon ) { if( ((RangedWeapon) p).IsUsingFCS() ) { if( Loc[AddInLoc] != NoItem ) { - // we've already ensured that it is not location locked - // above, so put the item back into the queue. - if( Loc[i].CanSplit() && Loc[i].Contiguous() ) { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateAll( Loc[i], false ); - } else { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateByIndex( AddInLoc, Loc ); - } + removed.add( new RemoveEntry( AddInLoc, i ) ); } for( int j = AddInLoc; j < AddInSize + AddInLoc; j++ ) { Loc[j] = (abPlaceable) ((RangedWeapon) p).GetFCS(); @@ -3329,49 +3330,19 @@ private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exc } if( ((RangedWeapon) p).IsUsingCapacitor() ) { if( Loc[AddInLoc] != NoItem ) { - // we've already ensured that it is not location locked - // above, so put the item back into the queue. - if( Loc[i].CanSplit() && Loc[i].Contiguous() ) { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateAll( Loc[i], false ); - } else { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateByIndex( AddInLoc, Loc ); - } + removed.add( new RemoveEntry( AddInLoc, i ) ); } Loc[AddInLoc] = ((RangedWeapon) p).GetCapacitor(); } if( ((RangedWeapon) p).IsUsingInsulator() ) { if( Loc[AddInLoc] != NoItem ) { - // we've already ensured that it is not location locked - // above, so put the item back into the queue. - if( Loc[i].CanSplit() && Loc[i].Contiguous() ) { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateAll( Loc[i], false ); - } else { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateByIndex( AddInLoc, Loc ); - } + removed.add( new RemoveEntry( AddInLoc, i ) ); } Loc[AddInLoc] = ((RangedWeapon) p).GetInsulator(); } if( ((RangedWeapon) p).IsUsingPulseModule() ) { if( Loc[AddInLoc] != NoItem ) { - // we've already ensured that it is not location locked - // above, so put the item back into the queue. - if( Loc[i].CanSplit() && Loc[i].Contiguous() ) { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateAll( Loc[i], false ); - } else { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateByIndex( AddInLoc, Loc ); - } + removed.add( new RemoveEntry( AddInLoc, i ) ); } Loc[AddInLoc] = ((RangedWeapon) p).GetPulseModule(); } @@ -3381,16 +3352,7 @@ private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exc if( p instanceof MGArray ) { for( i = 0; i < ((MGArray) p).GetNumMGs(); i++ ) { if( Loc[MGLocs[i]] != NoItem ) { - // we know it's not location locked, so kick it out - if( Loc[MGLocs[i]].CanSplit() && Loc[MGLocs[i]].Contiguous() ) { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateAll( Loc[MGLocs[i]], false ); - } else { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateByIndex( MGLocs[i], Loc ); - } + removed.add( new RemoveEntry( MGLocs[i], i ) ); } Loc[MGLocs[i]] = ((MGArray) p).GetMGs()[i]; } @@ -3408,16 +3370,7 @@ private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exc // if there is an item there, put it back in the queue if( Loc[SIndex] != NoItem ) { - // put the item back into the queue - if( Loc[SIndex].CanSplit() && Loc[SIndex].Contiguous() ) { - removed.add( Loc[SIndex] ); - rears.add( new Boolean( Loc[SIndex].IsMountedRear() ) ); - UnallocateAll( Loc[SIndex], false ); - } else { - removed.add( Loc[SIndex] ); - rears.add( new Boolean( Loc[SIndex].IsMountedRear() ) ); - UnallocateByIndex( SIndex, Loc ); - } + removed.add( new RemoveEntry( SIndex, SIndex ) ); } // now allocate the item. @@ -3432,16 +3385,18 @@ private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exc } // now that allocation is finished, add in the removed items if possible - for( int i = 0; i < removed.size(); i++ ) { + for( RemoveEntry remove : removed ) { // no error handling here since the items are already in the queue try { - Allocate( (abPlaceable) removed.get( i ), -1, Loc ); - ((abPlaceable) removed.get( i )).MountRear( ((Boolean) rears.get( i ))); + Allocate( remove.p, -1, Loc ); + remove.p.MountRear( remove.rear ); + remove.p.MountTurret( remove.turret ); } catch( Exception e1 ) { } } } catch ( ArrayIndexOutOfBoundsException e ) { + // TODO: Following snapshot thing actually does nothing // reset the location - Loc = SnapShot; + //Loc = SnapShot; // tell the user what happened. if( p instanceof RangedWeapon ) { diff --git a/sswlib/src/main/java/components/QuadLoadout.java b/sswlib/src/main/java/components/QuadLoadout.java index 8dfe0ead..c8504401 100644 --- a/sswlib/src/main/java/components/QuadLoadout.java +++ b/sswlib/src/main/java/components/QuadLoadout.java @@ -2907,6 +2907,25 @@ public boolean IsAllocated( abPlaceable p ) { // Private Methods private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exception { + class RemoveEntry { + abPlaceable p; + boolean rear; + ifTurret turret; + + RemoveEntry( int AddInLoc, int i ) { + // we've already ensured that it is not location locked + // above, so put the item back into the queue. + p = Loc[i]; + rear = p.IsMountedRear(); + turret = p.GetTurret(); + if( p.CanSplit() && p.Contiguous() ) { + UnallocateAll( Loc[i], false ); + } else { + UnallocateByIndex( AddInLoc, Loc ); + } + } + } + // Adds the specified placeable to the given location at the specified // stating index. Throws Exceptions with error messages if things went // wrong. @@ -2915,14 +2934,15 @@ private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exc ((Equipment) p).ValidateMaxPerLocation(Loc); } + // TODO: this snapshot thing doesn't work (see its usage below), commented out for now // Let's get a snapshot of the location so we can reset it if we have to. - abPlaceable SnapShot[] = Loc.clone(); + //abPlaceable SnapShot[] = Loc.clone(); // we have to accomodate for Artemis IV systems boolean AddIn = false; boolean ArrayGood = false; int AddInSize = 1; - ArrayList removed = new ArrayList(), rears = new ArrayList(); + ArrayList<RemoveEntry> removed = new ArrayList<>(); // check for generic placement if( SIndex == -1 ) { @@ -3035,17 +3055,7 @@ private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exc for( i = SIndex; i < ( p.NumCrits() + SIndex ); i++ ) { // is there a non-location locked item there? if( Loc[i] != NoItem ) { - // we've already ensured that it is not location locked - // above, so put the item back into the queue. - if( Loc[i].CanSplit() && Loc[i].Contiguous() ) { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateAll( Loc[i], false ); - } else { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateByIndex( i, Loc ); - } + removed.add( new RemoveEntry( i, i ) ); } // finally, allocate the item slot Loc[i] = p; @@ -3056,17 +3066,7 @@ private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exc if( p instanceof RangedWeapon ) { if( ((RangedWeapon) p).IsUsingFCS() ) { if( Loc[AddInLoc] != NoItem ) { - // we've already ensured that it is not location locked - // above, so put the item back into the queue. - if( Loc[i].CanSplit() && Loc[i].Contiguous() ) { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateAll( Loc[i], false ); - } else { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateByIndex( AddInLoc, Loc ); - } + removed.add( new RemoveEntry( AddInLoc, i ) ); } for( int j = AddInLoc; j < AddInSize + AddInLoc; j++ ) { Loc[j] = (abPlaceable) ((RangedWeapon) p).GetFCS(); @@ -3074,49 +3074,19 @@ private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exc } if( ((RangedWeapon) p).IsUsingCapacitor() ) { if( Loc[AddInLoc] != NoItem ) { - // we've already ensured that it is not location locked - // above, so put the item back into the queue. - if( Loc[i].CanSplit() && Loc[i].Contiguous() ) { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateAll( Loc[i], false ); - } else { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateByIndex( AddInLoc, Loc ); - } + removed.add( new RemoveEntry( AddInLoc, i ) ); } Loc[AddInLoc] = ((RangedWeapon) p).GetCapacitor(); } if( ((RangedWeapon) p).IsUsingInsulator() ) { if( Loc[AddInLoc] != NoItem ) { - // we've already ensured that it is not location locked - // above, so put the item back into the queue. - if( Loc[i].CanSplit() && Loc[i].Contiguous() ) { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateAll( Loc[i], false ); - } else { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateByIndex( AddInLoc, Loc ); - } + removed.add( new RemoveEntry( AddInLoc, i ) ); } Loc[AddInLoc] = ((RangedWeapon) p).GetInsulator(); } if( ((RangedWeapon) p).IsUsingPulseModule() ) { if( Loc[AddInLoc] != NoItem ) { - // we've already ensured that it is not location locked - // above, so put the item back into the queue. - if( Loc[i].CanSplit() && Loc[i].Contiguous() ) { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateAll( Loc[i], false ); - } else { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateByIndex( AddInLoc, Loc ); - } + removed.add( new RemoveEntry( AddInLoc, i ) ); } Loc[AddInLoc] = ((RangedWeapon) p).GetPulseModule(); } @@ -3126,16 +3096,7 @@ private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exc if( p instanceof MGArray ) { for( i = 0; i < ((MGArray) p).GetNumMGs(); i++ ) { if( Loc[MGLocs[i]] != NoItem ) { - // we know it's not location locked, so kick it out - if( Loc[MGLocs[i]].CanSplit() && Loc[MGLocs[i]].Contiguous() ) { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateAll( Loc[MGLocs[i]], false ); - } else { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateByIndex( MGLocs[i], Loc ); - } + removed.add( new RemoveEntry( MGLocs[i], i ) ); } Loc[MGLocs[i]] = ((MGArray) p).GetMGs()[i]; } @@ -3153,16 +3114,7 @@ private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exc // if there is an item there, put it back in the queue if( Loc[SIndex] != NoItem ) { - // put the item back into the queue - if( Loc[SIndex].CanSplit() && Loc[SIndex].Contiguous() ) { - removed.add( Loc[SIndex] ); - rears.add( new Boolean( Loc[SIndex].IsMountedRear() ) ); - UnallocateAll( Loc[SIndex], false ); - } else { - removed.add( Loc[SIndex] ); - rears.add( new Boolean( Loc[SIndex].IsMountedRear() ) ); - UnallocateByIndex( SIndex, Loc ); - } + removed.add( new RemoveEntry( SIndex, SIndex ) ); } // now allocate the item. @@ -3177,16 +3129,18 @@ private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exc } // now that allocation is finished, add in the removed items if possible - for( int i = 0; i < removed.size(); i++ ) { + for( RemoveEntry remove : removed ) { // no error handling here since the items are already in the queue try { - Allocate( (abPlaceable) removed.get( i ), -1, Loc ); - ((abPlaceable) removed.get( i )).MountRear( ((Boolean) rears.get( i ))); + Allocate( remove.p, -1, Loc ); + remove.p.MountRear( remove.rear ); + remove.p.MountTurret( remove.turret ); } catch( Exception e1 ) { } } } catch ( ArrayIndexOutOfBoundsException e ) { + // TODO: Following snapshot thing actually does nothing // reset the location - Loc = SnapShot; + //Loc = SnapShot; // tell the user what happened. if( p instanceof RangedWeapon ) { diff --git a/sswlib/src/main/java/components/TripodLoadout.java b/sswlib/src/main/java/components/TripodLoadout.java index 445ed6b4..21d02fca 100644 --- a/sswlib/src/main/java/components/TripodLoadout.java +++ b/sswlib/src/main/java/components/TripodLoadout.java @@ -3343,6 +3343,25 @@ public boolean IsAllocated( abPlaceable p ) { // Private Methods private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exception { + class RemoveEntry { + abPlaceable p; + boolean rear; + ifTurret turret; + + RemoveEntry( int AddInLoc, int i ) { + // we've already ensured that it is not location locked + // above, so put the item back into the queue. + p = Loc[i]; + rear = p.IsMountedRear(); + turret = p.GetTurret(); + if( p.CanSplit() && p.Contiguous() ) { + UnallocateAll( Loc[i], false ); + } else { + UnallocateByIndex( AddInLoc, Loc ); + } + } + } + // Adds the specified placeable to the given location at the specified // stating index. Throws Exceptions with error messages if things went // wrong. @@ -3351,14 +3370,15 @@ private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exc ((Equipment) p).ValidateMaxPerLocation(Loc); } + // TODO: this snapshot thing doesn't work (see its usage below), commented out for now // Let's get a snapshot of the location so we can reset it if we have to. - abPlaceable SnapShot[] = Loc.clone(); + //abPlaceable SnapShot[] = Loc.clone(); // we have to accomodate for Artemis IV systems boolean AddIn = false; boolean ArrayGood = false; int AddInSize = 1; - ArrayList removed = new ArrayList(), rears = new ArrayList(); + ArrayList<RemoveEntry> removed = new ArrayList<>(); // check for generic placement if( SIndex == -1 ) { @@ -3471,17 +3491,7 @@ private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exc for( i = SIndex; i < ( p.NumCrits() + SIndex ); i++ ) { // is there a non-location locked item there? if( Loc[i] != NoItem ) { - // we've already ensured that it is not location locked - // above, so put the item back into the queue. - if( Loc[i].CanSplit() && Loc[i].Contiguous() ) { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateAll( Loc[i], false ); - } else { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateByIndex( i, Loc ); - } + removed.add( new RemoveEntry( i, i ) ); } // finally, allocate the item slot Loc[i] = p; @@ -3492,17 +3502,7 @@ private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exc if( p instanceof RangedWeapon ) { if( ((RangedWeapon) p).IsUsingFCS() ) { if( Loc[AddInLoc] != NoItem ) { - // we've already ensured that it is not location locked - // above, so put the item back into the queue. - if( Loc[i].CanSplit() && Loc[i].Contiguous() ) { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateAll( Loc[i], false ); - } else { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateByIndex( AddInLoc, Loc ); - } + removed.add( new RemoveEntry( AddInLoc, i ) ); } for( int j = AddInLoc; j < AddInSize + AddInLoc; j++ ) { Loc[j] = (abPlaceable) ((RangedWeapon) p).GetFCS(); @@ -3510,49 +3510,19 @@ private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exc } if( ((RangedWeapon) p).IsUsingCapacitor() ) { if( Loc[AddInLoc] != NoItem ) { - // we've already ensured that it is not location locked - // above, so put the item back into the queue. - if( Loc[i].CanSplit() && Loc[i].Contiguous() ) { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateAll( Loc[i], false ); - } else { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateByIndex( AddInLoc, Loc ); - } + removed.add( new RemoveEntry( AddInLoc, i ) ); } Loc[AddInLoc] = ((RangedWeapon) p).GetCapacitor(); } if( ((RangedWeapon) p).IsUsingInsulator() ) { if( Loc[AddInLoc] != NoItem ) { - // we've already ensured that it is not location locked - // above, so put the item back into the queue. - if( Loc[i].CanSplit() && Loc[i].Contiguous() ) { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateAll( Loc[i], false ); - } else { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateByIndex( AddInLoc, Loc ); - } + removed.add( new RemoveEntry( AddInLoc, i ) ); } Loc[AddInLoc] = ((RangedWeapon) p).GetInsulator(); } if( ((RangedWeapon) p).IsUsingPulseModule() ) { if( Loc[AddInLoc] != NoItem ) { - // we've already ensured that it is not location locked - // above, so put the item back into the queue. - if( Loc[i].CanSplit() && Loc[i].Contiguous() ) { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateAll( Loc[i], false ); - } else { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateByIndex( AddInLoc, Loc ); - } + removed.add( new RemoveEntry( AddInLoc, i ) ); } Loc[AddInLoc] = ((RangedWeapon) p).GetPulseModule(); } @@ -3562,16 +3532,7 @@ private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exc if( p instanceof MGArray ) { for( i = 0; i < ((MGArray) p).GetNumMGs(); i++ ) { if( Loc[MGLocs[i]] != NoItem ) { - // we know it's not location locked, so kick it out - if( Loc[MGLocs[i]].CanSplit() && Loc[MGLocs[i]].Contiguous() ) { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateAll( Loc[MGLocs[i]], false ); - } else { - removed.add( Loc[i] ); - rears.add( new Boolean( Loc[i].IsMountedRear() ) ); - UnallocateByIndex( MGLocs[i], Loc ); - } + removed.add( new RemoveEntry( MGLocs[i], i ) ); } Loc[MGLocs[i]] = ((MGArray) p).GetMGs()[i]; } @@ -3589,16 +3550,7 @@ private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exc // if there is an item there, put it back in the queue if( Loc[SIndex] != NoItem ) { - // put the item back into the queue - if( Loc[SIndex].CanSplit() && Loc[SIndex].Contiguous() ) { - removed.add( Loc[SIndex] ); - rears.add( new Boolean( Loc[SIndex].IsMountedRear() ) ); - UnallocateAll( Loc[SIndex], false ); - } else { - removed.add( Loc[SIndex] ); - rears.add( new Boolean( Loc[SIndex].IsMountedRear() ) ); - UnallocateByIndex( SIndex, Loc ); - } + removed.add( new RemoveEntry( SIndex, SIndex ) ); } // now allocate the item. @@ -3613,16 +3565,18 @@ private void Allocate( abPlaceable p, int SIndex, abPlaceable[] Loc ) throws Exc } // now that allocation is finished, add in the removed items if possible - for( int i = 0; i < removed.size(); i++ ) { + for( RemoveEntry remove : removed ) { // no error handling here since the items are already in the queue try { - Allocate( (abPlaceable) removed.get( i ), -1, Loc ); - ((abPlaceable) removed.get( i )).MountRear( ((Boolean) rears.get( i ))); + Allocate( remove.p, -1, Loc ); + remove.p.MountRear( remove.rear ); + remove.p.MountTurret( remove.turret ); } catch( Exception e1 ) { } } } catch ( ArrayIndexOutOfBoundsException e ) { + // TODO: Following snapshot thing actually does nothing // reset the location - Loc = SnapShot; + //Loc = SnapShot; // tell the user what happened. if( p instanceof RangedWeapon ) { From b0aae8944b1238c703bad7e5a87027671f951f23 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Thu, 7 Dec 2023 09:30:16 -0800 Subject: [PATCH 179/199] Forgot to copy over some rear-mounting changes from frmMainWide to frmMain --- ssw/src/main/java/ssw/gui/frmMain.java | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/ssw/src/main/java/ssw/gui/frmMain.java b/ssw/src/main/java/ssw/gui/frmMain.java index 65f88fed..b79cd4e0 100644 --- a/ssw/src/main/java/ssw/gui/frmMain.java +++ b/ssw/src/main/java/ssw/gui/frmMain.java @@ -3560,6 +3560,13 @@ private void ConfigureUtilsMenu( java.awt.Component c ) { mnuSetLotSize.setVisible( lotchange ); mnuTurret.setVisible( turreted ); mnuDumper.setVisible( dumper ); + if( rear ) { + if( CurItem.IsMountedRear() ) { + mnuMountRear.setText( "Unmount Rear " ); + } else { + mnuMountRear.setText( "Mount Rear " ); + } + } if( armor ) { if( CurItem.IsArmored() ) { mnuArmorComponent.setText( "Unarmor Component" ); @@ -3677,22 +3684,6 @@ private void ConfigureUtilsMenu( java.awt.Component c ) { mnuUnallocateAll.setText( "Unallocate All" ); mnuUnallocateAll.setEnabled( false ); } - if( c == lstHDCrits || c == lstCTCrits || c == lstLTCrits || c == lstRTCrits || c == lstLLCrits || c == lstRLCrits || ( CurMech.IsQuad() && (c == lstRACrits || c == lstLACrits))) { - if( CurItem.CanMountRear() ) { - mnuMountRear.setEnabled( true ); - if( CurItem.IsMountedRear() ) { - mnuMountRear.setText( "Unmount Rear " ); - } else { - mnuMountRear.setText( "Mount Rear " ); - } - } else { - mnuMountRear.setEnabled( false ); - mnuMountRear.setText( "Mount Rear " ); - } - } else { - mnuMountRear.setEnabled( false ); - mnuMountRear.setText( "Mount Rear " ); - } if( CurItem.Contiguous() ) { EquipmentCollection C = CurMech.GetLoadout().GetCollection( CurItem ); if( C == null ) { From b08ea4323e36a1937be57dd463af8f631b4e29f7 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sat, 9 Dec 2023 13:41:55 -0800 Subject: [PATCH 180/199] Fix regression from b46d085 that inadvertently unset rear turret armor This occurred during the `cmbTurret.setSelectedItem("Single Turret")` call after the `Load = false`, resulting in a call to `RecalcArmorLocations`. The fix is to remove these lines since they were redundant with the later call to `BuildTurretSelector` which properly sets `cmbTurret`. --- saw/src/main/java/saw/gui/frmVeeWide.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index cb8102bb..82cf9613 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -4552,7 +4552,6 @@ public void LoadVehicleIntoGUI() { } if( CurVee.isHasTurret1() ) { - cmbTurret.setSelectedItem("Single Turret"); if (chkOmniVee.isSelected()) { spnTurretTonnage.setEnabled(!isLocked); spnTurretTonnage.setValue(CurVee.GetLoadout().GetTurret().GetTonnage()); @@ -4562,7 +4561,6 @@ public void LoadVehicleIntoGUI() { spnTurretTonnage.setValue(0); } if( CurVee.isHasTurret2() ) { - cmbTurret.setSelectedItem("Dual Turret"); if (chkOmniVee.isSelected()) { spnRearTurretTonnage.setEnabled(!isLocked); spnRearTurretTonnage.setValue(CurVee.GetLoadout().GetRearTurret().GetTonnage()); From 90e41a73b9b39f7063847543f2ed399e394bf5be Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Fri, 8 Dec 2023 20:38:55 -0800 Subject: [PATCH 181/199] Fix omnivehicle turrets and other related fixes Omnivehicle turrets: - Turret tonnage from items now checked against max turret tonnage - Avoid unsetting turret tonnage for locked chassis (omni variants) - Ensure turret tonnage is kept in sync b/w UI and model - Copy rest of related code from wide UI to non-wide UI, including rear turret tonnage support Also: - Fix wide UI not resetting omni variant combobox when loading new vehicle - Fix changing from dual turrets to single turret not removing rear turret location --- saw/src/main/java/saw/gui/frmVee.java | 113 ++++++++++++++---- saw/src/main/java/saw/gui/frmVeeWide.java | 107 ++++++++++------- .../src/main/java/components/CVLoadout.java | 20 +++- sswlib/src/main/java/components/Turret.java | 13 +- 4 files changed, 180 insertions(+), 73 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 3bf3dc98..abf8306c 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -1017,6 +1017,7 @@ private void initComponents() { JLabel jLabel91 = new JLabel(); spnHeatSinks = new javax.swing.JSpinner(); spnTurretTonnage = new javax.swing.JSpinner(); + spnRearTurretTonnage = new javax.swing.JSpinner(); JPanel pnlMovement = new JPanel(); JLabel jLabel10 = new JLabel(); spnCruiseMP = new javax.swing.JSpinner(); @@ -1757,8 +1758,12 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { spnTurretTonnage.setModel(new javax.swing.SpinnerNumberModel(0.0d, 0.0d, 50.0d, 0.5d)); spnTurretTonnage.setEnabled(false); spnTurretTonnage.addChangeListener(this::spnTurretTonnageStateChanged); + ((JSpinner.DefaultEditor)spnTurretTonnage.getEditor()).getTextField().addFocusListener(spinners); - // TODO: copy spnRearTurretTonnage code from frmVeeWide + spnRearTurretTonnage.setModel(new javax.swing.SpinnerNumberModel(0.0d, 0.0d, 50.0d, 0.5d)); + spnRearTurretTonnage.setEnabled(false); + spnRearTurretTonnage.addChangeListener(this::spnRearTurretTonnageStateChanged); + ((JSpinner.DefaultEditor)spnRearTurretTonnage.getEditor()).getTextField().addFocusListener(spinners); javax.swing.GroupLayout pnlChassisLayout = new javax.swing.GroupLayout(pnlChassis); pnlChassis.setLayout(pnlChassisLayout); @@ -1783,7 +1788,9 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(cmbTurret, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spnTurretTonnage)) + .addComponent(spnTurretTonnage) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(spnRearTurretTonnage)) .addGroup(pnlChassisLayout.createSequentialGroup() .addComponent(jLabel9) .addGap(2, 2, 2) @@ -1834,7 +1841,8 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addGroup(pnlChassisLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel32) .addComponent(cmbTurret, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(spnTurretTonnage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(spnTurretTonnage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(spnRearTurretTonnage, javax.swing.GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(pnlChassisLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlChassisLayout.createSequentialGroup() @@ -6062,6 +6070,7 @@ private void GetNewVee() { cmbTechBase.setEnabled( true ); cmbTurret.setSelectedIndex(0); spnTurretTonnage.setModel(new SpinnerNumberModel(0.0, 0.0, 50.0, 0.5)); + spnRearTurretTonnage.setModel(new SpinnerNumberModel(0.0, 0.0, 50.0, 0.5)); cmbOmniVariant.setModel( new javax.swing.DefaultComboBoxModel( new String[0] ) ); @@ -6346,6 +6355,7 @@ private void UnlockGUIFromOmni() { cmbEngineType.setEnabled( true ); cmbTurret.setEnabled( true ); spnTurretTonnage.setEnabled( true ); + spnRearTurretTonnage.setEnabled( true ); spnFrontArmor.setEnabled( true ); spnLeftArmor.setEnabled( true ); spnRightArmor.setEnabled( true ); @@ -6373,7 +6383,6 @@ private void UnlockGUIFromOmni() { chkJetBooster.setEnabled(true); chkEnviroSealing.setEnabled( false ); // now enable the Omni controls - cmbOmniVariant.setSelectedItem(""); cmbOmniVariant.setEnabled( false ); btnAddVariant.setEnabled( false ); btnDeleteVariant.setEnabled( false ); @@ -6967,20 +6976,29 @@ private void cmbTurretActionPerformed(java.awt.event.ActionEvent evt) { if( Load ) { return; } String Turret = cmbTurret.getSelectedItem().toString(); - if ( Turret.equals("Single Turret") || Turret.equals("Chin Turret")) { + if(Turret.equals("Single Turret") || Turret.equals("Chin Turret") ) { CurVee.setHasTurret1(true); - spnTurretTonnage.setEnabled(chkOmniVee.isSelected() && !isLocked); - } else if(Turret.equals("Dual Turret")) { + CurVee.setHasTurret2(false); + } else if( Turret.equals("Dual Turret") ) { CurVee.setHasTurret1(true); CurVee.setHasTurret2(true); - spnTurretTonnage.setEnabled(chkOmniVee.isSelected() && !isLocked); } else { CurVee.setHasTurret1(false); CurVee.setHasTurret2(false); - spnTurretTonnage.setEnabled(false); } - if( ! spnTurretTonnage.isEnabled() ) { - spnTurretTonnage.setValue(0); + if( CurVee.isHasTurret1() ) { + spnTurretTonnage.setEnabled( chkOmniVee.isSelected() && !isLocked ); + SetTurretTonnage( null ); + } else { + spnTurretTonnage.setEnabled( false ); + SetTurretTonnage( 0.0 ); + } + if( CurVee.isHasTurret2() ) { + spnRearTurretTonnage.setEnabled( chkOmniVee.isSelected() && !isLocked ); + SetRearTurretTonnage( null ); + } else { + spnRearTurretTonnage.setEnabled( false ); + SetRearTurretTonnage( 0.0 ); } BuildLocationSelector(); @@ -7593,6 +7611,7 @@ private void LockGUIForOmni() { cmbEngineType.setEnabled( false ); cmbTurret.setEnabled( false ); spnTurretTonnage.setEnabled( false ); + spnRearTurretTonnage.setEnabled( false ); spnFrontArmor.setEnabled( false ); spnLeftArmor.setEnabled( false ); spnRightArmor.setEnabled( false ); @@ -7932,22 +7951,36 @@ public void LoadVehicleIntoGUI() { cmbMotiveType.setSelectedItem( CurVee.GetMotiveLookupName() ); spnTonnage.setModel( new javax.swing.SpinnerNumberModel(CurVee.GetTonnage(), 1, CurVee.GetMaxTonnage(), 1) ); spnCruiseMP.setModel( new javax.swing.SpinnerNumberModel(CurVee.getCruiseMP(), CurVee.getMinCruiseMP(), CurVee.getMaxCruiseMP(), 1) ); - if ( CurVee.isHasTurret1() ) cmbTurret.setSelectedItem("Single Turret"); - if ( CurVee.isHasTurret2() ) cmbTurret.setSelectedItem("Dual Turret"); FixArmorSpinners(); // now that we're done with the special stuff... Load = false; - cmbOmniVariant.setModel( new javax.swing.DefaultComboBoxModel( new String[0] ) ); if( CurVee.IsOmni() ) { - if ( CurVee.isHasTurret1() ) - spnTurretTonnage.setModel( new SpinnerNumberModel(CurVee.GetBaseLoadout().GetTurret().GetMaxTonnage(), 0, 99.0, 0.5) ); LockGUIForOmni(); RefreshOmniVariants(); RefreshOmniChoices(); + } else { + cmbOmniVariant.setModel( new javax.swing.DefaultComboBoxModel( new String[0] ) ); } + double turretTons = 0.0; + if( CurVee.isHasTurret1() ) { + if( chkOmniVee.isSelected() ) { + spnTurretTonnage.setEnabled( !isLocked ); + turretTons = CurVee.GetLoadout().GetTurret().GetTonnage(); + } + } + SetTurretTonnage( turretTons ); + double rearTurretTons = 0.0; + if( CurVee.isHasTurret2() ) { + if( chkOmniVee.isSelected() ) { + spnRearTurretTonnage.setEnabled( !isLocked ); + rearTurretTons = CurVee.GetLoadout().GetRearTurret().GetTonnage(); + } + } + SetRearTurretTonnage( rearTurretTons ); + FixTonnageSpinner( CurVee.GetMinTonnage(), CurVee.GetMaxTonnage() ); // Update Tonnage and vehicle class @@ -8669,22 +8702,61 @@ private void btnExportMTFIconActionPerformed(java.awt.event.ActionEvent evt) { } private void spnTurretTonnageStateChanged(javax.swing.event.ChangeEvent evt) { + SetTurretTonnage( null ); + RefreshSummary(); + RefreshInfoPane(); + } + + private void SetTurretTonnage( Double Tons ) { try { - if( spnTurretTonnage.isEnabled() ) { - double Tons = Double.parseDouble(spnTurretTonnage.getValue().toString()); - CurVee.GetLoadout().GetTurret().SetTonnage(Tons); + if( Tons != null ) { + // following may end up calling spnTurretTonnageStateChanged + // which in turn will call this again with null Tons, + // so it's okay although potentially redundant + spnTurretTonnage.setValue( Tons ); + } + if( CurVee.isHasTurret1() && chkOmniVee.isSelected() ) { + if( Tons == null) { + Tons = Double.parseDouble( spnTurretTonnage.getValue().toString() ); + } + CurVee.GetLoadout().GetTurret().SetTonnage( Tons ); } else { CurVee.GetLoadout().GetTurret().UnsetTonnage(); } - } catch ( Exception e ) { + } catch( Exception e ) { Media.Messager(e.getMessage()); return; } + } + private void spnRearTurretTonnageStateChanged(javax.swing.event.ChangeEvent evt) { + SetRearTurretTonnage( null ); RefreshSummary(); RefreshInfoPane(); } + private void SetRearTurretTonnage( Double Tons ) { + try { + if( Tons != null ) { + // following may end up calling spnRearTurretTonnageStateChanged + // which in turn will call this again with null Tons, + // so it's okay although potentially redundant + spnRearTurretTonnage.setValue( Tons ); + } + if( CurVee.isHasTurret2() && chkOmniVee.isSelected() ) { + if( Tons == null) { + Tons = Double.parseDouble( spnRearTurretTonnage.getValue().toString() ); + } + CurVee.GetLoadout().GetRearTurret().SetTonnage( Tons ); + } else { + CurVee.GetLoadout().GetRearTurret().UnsetTonnage(); + } + } catch( Exception e ) { + Media.Messager(e.getMessage()); + return; + } + } + private void chkTrailerActionPerformed(java.awt.event.ActionEvent evt) { CurVee.SetTrailer(chkTrailer.isSelected()); String curEngine = cmbEngineType.getSelectedItem().toString(); @@ -9028,6 +9100,7 @@ private void FixJJSpinnerModel() { private javax.swing.JSpinner spnTonnage; private javax.swing.JSpinner spnTurretArmor; private javax.swing.JSpinner spnTurretTonnage; + private javax.swing.JSpinner spnRearTurretTonnage; private javax.swing.JTable tblWeaponManufacturers; private JTabbedPane tbpMainTabPane; private JTabbedPane tbpWeaponChooser; diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 82cf9613..b9a92406 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -1513,7 +1513,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { spnRearTurretTonnage.addChangeListener(this::spnRearTurretTonnageStateChanged); ((JSpinner.DefaultEditor)spnRearTurretTonnage.getEditor()).getTextField().addFocusListener(spinners); - JLabel lblTurretTonnage = new JLabel("Turret Tonnage: "); + JLabel lblTurretTonnage = new JLabel("Turret Tonnage: "); GroupLayout pnlChassisLayout = new GroupLayout(pnlChassis); pnlChassis.setLayout(pnlChassisLayout); @@ -3734,13 +3734,15 @@ private void GetNewVee() { cmbMotiveType.setSelectedIndex( 0 ); chkYearRestrict.setSelected( false ); txtProdYear.setText( "" ); + txtProdYear.setEnabled( true ); cmbEra.setEnabled( true ); cmbProductionEra.setEnabled( true ); cmbTechBase.setEnabled( true ); cmbTurret.setSelectedIndex(0); spnTurretTonnage.setModel(new SpinnerNumberModel(0.0, 0.0, 50.0, 0.5)); spnRearTurretTonnage.setModel(new SpinnerNumberModel(0.0, 0.0, 50.0, 0.5)); - txtProdYear.setEnabled( true ); + + cmbOmniVariant.setModel( new DefaultComboBoxModel( new String[0] ) ); cmbRulesLevel.setSelectedItem( Prefs.get( "NewVee_RulesLevel", "Tournament Legal" ) ); cmbEra.setSelectedItem( Prefs.get( "NewVee_Era", "Age of War/Star League" ) ); @@ -4037,7 +4039,7 @@ private void UnlockGUIFromOmni() { cmbEngineType.setEnabled( true ); cmbTurret.setEnabled( true ); spnTurretTonnage.setEnabled( true ); - spnRearTurretTonnage.setEnabled(true); + spnRearTurretTonnage.setEnabled( true ); spnFrontArmor.setEnabled( true ); spnLeftArmor.setEnabled( true ); spnRightArmor.setEnabled( true ); @@ -4314,7 +4316,7 @@ private void LockGUIForOmni() { cmbEngineType.setEnabled( false ); cmbTurret.setEnabled( false ); spnTurretTonnage.setEnabled( false ); - spnRearTurretTonnage.setEnabled(false); + spnRearTurretTonnage.setEnabled( false ); spnFrontArmor.setEnabled( false ); spnLeftArmor.setEnabled( false ); spnRightArmor.setEnabled( false ); @@ -4549,26 +4551,26 @@ public void LoadVehicleIntoGUI() { LockGUIForOmni(); RefreshOmniVariants(); RefreshOmniChoices(); + } else { + cmbOmniVariant.setModel( new javax.swing.DefaultComboBoxModel( new String[0] ) ); } + double turretTons = 0.0; if( CurVee.isHasTurret1() ) { - if (chkOmniVee.isSelected()) { - spnTurretTonnage.setEnabled(!isLocked); - spnTurretTonnage.setValue(CurVee.GetLoadout().GetTurret().GetTonnage()); + if( chkOmniVee.isSelected() ) { + spnTurretTonnage.setEnabled( !isLocked ); + turretTons = CurVee.GetLoadout().GetTurret().GetTonnage(); } } - if( ! spnTurretTonnage.isEnabled() ) { - spnTurretTonnage.setValue(0); - } + SetTurretTonnage( turretTons ); + double rearTurretTons = 0.0; if( CurVee.isHasTurret2() ) { - if (chkOmniVee.isSelected()) { - spnRearTurretTonnage.setEnabled(!isLocked); - spnRearTurretTonnage.setValue(CurVee.GetLoadout().GetRearTurret().GetTonnage()); + if( chkOmniVee.isSelected() ) { + spnRearTurretTonnage.setEnabled( !isLocked ); + rearTurretTons = CurVee.GetLoadout().GetRearTurret().GetTonnage(); } } - if( ! spnRearTurretTonnage.isEnabled() ) { - spnRearTurretTonnage.setValue(0); - } + SetRearTurretTonnage( rearTurretTons ); FixTonnageSpinner( CurVee.GetMinTonnage(), CurVee.GetMaxTonnage() ); BuildChassisSelector(); @@ -6521,37 +6523,59 @@ private void spnCruiseMPStateChanged(javax.swing.event.ChangeEvent evt) { } private void spnTurretTonnageStateChanged(javax.swing.event.ChangeEvent evt) { + SetTurretTonnage( null ); + RefreshSummary(); + RefreshInfoPane(); + } + + private void SetTurretTonnage( Double Tons ) { try { - if( spnTurretTonnage.isEnabled() ) { - double Tons = Double.parseDouble(spnTurretTonnage.getValue().toString()); - CurVee.GetLoadout().GetTurret().SetTonnage(Tons); + if( Tons != null ) { + // following may end up calling spnTurretTonnageStateChanged + // which in turn will call this again with null Tons, + // so it's okay although potentially redundant + spnTurretTonnage.setValue( Tons ); + } + if( CurVee.isHasTurret1() && chkOmniVee.isSelected() ) { + if( Tons == null) { + Tons = Double.parseDouble( spnTurretTonnage.getValue().toString() ); + } + CurVee.GetLoadout().GetTurret().SetTonnage( Tons ); } else { CurVee.GetLoadout().GetTurret().UnsetTonnage(); } - } catch (Exception e) { + } catch( Exception e ) { Media.Messager(e.getMessage()); return; } + } + private void spnRearTurretTonnageStateChanged(javax.swing.event.ChangeEvent evt) { + SetRearTurretTonnage( null ); RefreshSummary(); RefreshInfoPane(); } - private void spnRearTurretTonnageStateChanged(javax.swing.event.ChangeEvent evt) { + private void SetRearTurretTonnage( Double Tons ) { try { - if( spnRearTurretTonnage.isEnabled() ) { - double Tons = Double.parseDouble(spnRearTurretTonnage.getValue().toString()); - CurVee.GetLoadout().GetRearTurret().SetTonnage(Tons); + if( Tons != null ) { + // following may end up calling spnRearTurretTonnageStateChanged + // which in turn will call this again with null Tons, + // so it's okay although potentially redundant + spnRearTurretTonnage.setValue( Tons ); + } + if( CurVee.isHasTurret2() && chkOmniVee.isSelected() ) { + if( Tons == null) { + Tons = Double.parseDouble( spnRearTurretTonnage.getValue().toString() ); + } + CurVee.GetLoadout().GetRearTurret().SetTonnage( Tons ); } else { CurVee.GetLoadout().GetRearTurret().UnsetTonnage(); } - } catch (Exception e) { + } catch( Exception e ) { Media.Messager(e.getMessage()); return; } - - RefreshSummary(); - RefreshInfoPane(); } private void spnHeatSinksInputMethodTextChanged(java.awt.event.InputMethodEvent evt) { @@ -6605,26 +6629,29 @@ private void cmbTurretActionPerformed(java.awt.event.ActionEvent evt) { } String Turret = cmbTurret.getSelectedItem().toString(); - if (Turret.equals("Single Turret") || Turret.equals("Chin Turret")) { + if(Turret.equals("Single Turret") || Turret.equals("Chin Turret") ) { CurVee.setHasTurret1(true); - spnTurretTonnage.setEnabled(chkOmniVee.isSelected() && !isLocked); - spnRearTurretTonnage.setEnabled(false); - } else if (Turret.equals("Dual Turret")) { + CurVee.setHasTurret2(false); + } else if( Turret.equals("Dual Turret") ) { CurVee.setHasTurret1(true); CurVee.setHasTurret2(true); - spnTurretTonnage.setEnabled(chkOmniVee.isSelected() && !isLocked); - spnRearTurretTonnage.setEnabled(chkOmniVee.isSelected() && !isLocked); } else { CurVee.setHasTurret1(false); CurVee.setHasTurret2(false); - spnTurretTonnage.setEnabled(false); - spnRearTurretTonnage.setEnabled(false); } - if( ! spnTurretTonnage.isEnabled() ) { - spnTurretTonnage.setValue(0); + if( CurVee.isHasTurret1() ) { + spnTurretTonnage.setEnabled( chkOmniVee.isSelected() && !isLocked ); + SetTurretTonnage( null ); + } else { + spnTurretTonnage.setEnabled( false ); + SetTurretTonnage( 0.0 ); } - if( ! spnRearTurretTonnage.isEnabled() ) { - spnRearTurretTonnage.setValue(0); + if( CurVee.isHasTurret2() ) { + spnRearTurretTonnage.setEnabled( chkOmniVee.isSelected() && !isLocked ); + SetRearTurretTonnage( null ); + } else { + spnRearTurretTonnage.setEnabled( false ); + SetRearTurretTonnage( 0.0 ); } BuildLocationSelector(); diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index dfa7ed25..cedcf264 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -366,10 +366,12 @@ public void AddTo(abPlaceable p, int Loc) throws Exception { case LocationIndex.CV_LOC_TURRET1: if ( p.CanAllocCVTurret() ) { Turret1Items.add(p); - if ( Owner.IsOmni() ) { - if ( Turret1.GetTonnage() > Turret1.GetMaxTonnage() ) { + if ( Turret1.isTonnageSet() ) { + double tons = Turret1.GetTonnageFromItems(); + if ( tons > Turret1.GetMaxTonnage() ) { Turret1Items.remove(p); - throw new Exception("Turret is out of space"); + throw new Exception( String.format( "Turret is out of space: %.1f/%.1f", + tons, Turret1.GetMaxTonnage()) ); } } } else @@ -377,9 +379,17 @@ public void AddTo(abPlaceable p, int Loc) throws Exception { break; case LocationIndex.CV_LOC_TURRET2: - if ( p.CanAllocCVTurret() ) + if ( p.CanAllocCVTurret() ) { Turret2Items.add(p); - else + if ( Turret2.isTonnageSet() ) { + double tons = Turret2.GetTonnageFromItems(); + if ( tons > Turret2.GetMaxTonnage() ) { + Turret2Items.remove(p); + throw new Exception( String.format( "Turret is out of space: %.1f/%.1f", + tons, Turret2.GetMaxTonnage()) ); + } + } + } else throw new Exception(p.ActualName() + " cannot be allocated to the Rear Turret."); break; case LocationIndex.CV_LOC_SPONSON_LEFT: diff --git a/sswlib/src/main/java/components/Turret.java b/sswlib/src/main/java/components/Turret.java index f4d00563..b7e48bf9 100644 --- a/sswlib/src/main/java/components/Turret.java +++ b/sswlib/src/main/java/components/Turret.java @@ -99,12 +99,12 @@ public double GetTonnage() { if ( isTonnageSet ) return MaxTonnage; else - return GetSize(); + return GetTonnageFromItems(); } @Override public double GetCost() { - return GetSize() * 5000.0; + return GetTonnage() * 5000.0; } public double GetOffensiveBV() { @@ -142,16 +142,13 @@ public AvailableCode GetAvailability() { return retval; } - private double GetSize() { - double Build = 0.0; - - if ( isTonnageSet ) - return MaxTonnage; - + public double GetTonnageFromItems() { if( Items.isEmpty() ) { return 0; } + double Build = 0.0; + for( int i = 0; i < Items.size(); i++ ) { abPlaceable a = (abPlaceable)Items.get(i); if( a instanceof RangedWeapon ) { From f3da3d3fff83c3c55b2da75f003adaadf4c67bc9 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sun, 10 Dec 2023 14:20:59 -0800 Subject: [PATCH 182/199] Fix right sponson turret not being propagated to omni loadout Also fix base loadout not referring to itself and rename SetTurretx to SetTurretxItems for clarity --- sswlib/src/main/java/components/CVLoadout.java | 9 +++++---- sswlib/src/main/java/components/CombatVehicle.java | 5 +++-- sswlib/src/main/java/components/ifCVLoadout.java | 4 ++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index cedcf264..08243904 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -793,8 +793,8 @@ public ifCVLoadout Clone() { clone.SetRightItems( (ArrayList<abPlaceable>)RightItems.clone() ); clone.SetBodyItems( (ArrayList<abPlaceable>)BodyItems.clone() ); clone.SetRearItems( (ArrayList<abPlaceable>)RearItems.clone() ); - clone.SetTurret1( (ArrayList<abPlaceable>)Turret1Items.clone() ); - clone.SetTurret2( (ArrayList<abPlaceable>)Turret2Items.clone() ); + clone.SetTurret1Items( (ArrayList<abPlaceable>)Turret1Items.clone() ); + clone.SetTurret2Items( (ArrayList<abPlaceable>)Turret2Items.clone() ); clone.SetSponsonTurretLeftItems((ArrayList<abPlaceable>) SponsonTurretLeftItems.clone()); clone.SetSponsonTurretRightItems((ArrayList<abPlaceable>) SponsonTurretRightItems.clone()); @@ -822,6 +822,7 @@ public ifCVLoadout Clone() { clone.SetTurret(Turret1); clone.SetRearTurret(Turret2); clone.SetSponsonTurretLeft(SponsonTurretLeft); + clone.SetSponsonTurretRight(SponsonTurretRight); return clone; } @@ -855,11 +856,11 @@ public void SetBodyItems(ArrayList<abPlaceable> c) { BodyItems = c; } - public void SetTurret1(ArrayList<abPlaceable> c) { + public void SetTurret1Items(ArrayList<abPlaceable> c) { Turret1Items = c; } - public void SetTurret2(ArrayList<abPlaceable> c) { + public void SetTurret2Items(ArrayList<abPlaceable> c) { Turret2Items = c; } diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index 3fe53b32..beb21f7f 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -175,6 +175,7 @@ public CombatVehicle() { CurLoadout = new CVLoadout(this); CurLoadout.GetHeatSinks().SetSingle(); MainLoadout = CurLoadout; + CurLoadout.SetBaseLoadout( MainLoadout ); Quirks = new ArrayList<Quirk>(); @@ -1401,7 +1402,7 @@ public void setHasTurret1(boolean HasTurret1) { this.HasTurret1 = HasTurret1; //Move any weapons/equipment that was in the turret to another location if (!HasTurret1) { - GetLoadout().SetTurret1(new ArrayList<abPlaceable>()); + GetLoadout().SetTurret1Items(new ArrayList<abPlaceable>()); GetLoadout().RefreshHeatSinks(); CurArmor.SetArmor(LocationIndex.CV_LOC_TURRET1, 0); } @@ -1415,7 +1416,7 @@ public void setHasTurret2(boolean HasTurret2) { this.HasTurret2 = HasTurret2; //Move any weapons/equipment that was in the turret to another location if (!HasTurret2) { - GetLoadout().SetTurret2(new ArrayList<abPlaceable>()); + GetLoadout().SetTurret2Items(new ArrayList<abPlaceable>()); GetLoadout().RefreshHeatSinks(); CurArmor.SetArmor(LocationIndex.CV_LOC_TURRET2, 0); } diff --git a/sswlib/src/main/java/components/ifCVLoadout.java b/sswlib/src/main/java/components/ifCVLoadout.java index 75187e68..235890d1 100644 --- a/sswlib/src/main/java/components/ifCVLoadout.java +++ b/sswlib/src/main/java/components/ifCVLoadout.java @@ -116,8 +116,8 @@ public interface ifCVLoadout { public void SetRightItems( ArrayList<abPlaceable> c ); public void SetRearItems( ArrayList<abPlaceable> c ); public void SetBodyItems( ArrayList<abPlaceable> c ); - public void SetTurret1( ArrayList<abPlaceable> c ); - public void SetTurret2( ArrayList<abPlaceable> c ); + public void SetTurret1Items( ArrayList<abPlaceable> c ); + public void SetTurret2Items( ArrayList<abPlaceable> c ); public void SetSponsonTurretLeftItems(ArrayList<abPlaceable> c); public void SetSponsonTurretRightItems(ArrayList<abPlaceable> c); public void SetNonCore( ArrayList v ); From 514263385f34af552daad4143ede5d9d02762919 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sat, 9 Dec 2023 11:52:41 -0800 Subject: [PATCH 183/199] Fix omnivehicle rear turret tonnage limit not being saved/loaded Also add rear turret armor and tonnage limit to HTML export --- Data/Templates/Vee_HTML.html | 2 ++ saw/src/main/java/saw/filehandlers/HTMLWriter.java | 3 +++ sswlib/src/main/java/filehandlers/CVReader.java | 3 +++ sswlib/src/main/java/filehandlers/CVWriter.java | 9 ++++++++- 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Data/Templates/Vee_HTML.html b/Data/Templates/Vee_HTML.html index 5564df49..2a2b9f4a 100644 --- a/Data/Templates/Vee_HTML.html +++ b/Data/Templates/Vee_HTML.html @@ -160,6 +160,7 @@ </tr> <+-SSW_REMOVE_IF_BLANK-+><tr><td colspan="3">Power Amplifier:</td><td align="right"><+-SSW_POWER_AMP_TONNAGE-+></td></tr> <+-SSW_REMOVE_IF_BLANK-+><tr><td colspan="3">Turret:</td><td align="right"><+-SSW_TURRET_TONNAGE-+></td></tr> +<+-SSW_REMOVE_IF_BLANK-+><tr><td colspan="3">Rear Turret:</td><td align="right"><+-SSW_REAR_TURRET_TONNAGE-+></td></tr> <tr> <td>Armor:</td> <td colspan="2"><+-SSW_ARMOR_FACTOR-+> points - <+-SSW_ARMOR_TYPE-+></td> @@ -190,6 +191,7 @@ <td align="center"><+-SSW_LEFT_ARMOR-+>/<+-SSW_RIGHT_ARMOR-+></td> </tr> <+-SSW_REMOVE_IF_BLANK-+><tr><td colspan="2" align="right">Turret:</td><td align="center"></td><td align="center"><+-SSW_TURRET_ARMOR-+></td></tr> + <+-SSW_REMOVE_IF_BLANK-+><tr><td colspan="2" align="right">Rear Turret:</td><td align="center"></td><td align="center"><+-SSW_REAR_TURRET_ARMOR-+></td></tr> <+-SSW_REMOVE_IF_BLANK-+><tr><td colspan="2" align="right">Rotor:</td><td align="center"></td><td align="center"><+-SSW_ROTOR_ARMOR-+></td> </tr> <tr> diff --git a/saw/src/main/java/saw/filehandlers/HTMLWriter.java b/saw/src/main/java/saw/filehandlers/HTMLWriter.java index 2aa83bba..276b51bf 100644 --- a/saw/src/main/java/saw/filehandlers/HTMLWriter.java +++ b/saw/src/main/java/saw/filehandlers/HTMLWriter.java @@ -1326,11 +1326,13 @@ private void BuildHash() { lookup.put( "<+-SSW_RIGHT_ARMOR-+>", "" + CurVee.GetArmor().GetLocationArmor( LocationIndex.CV_LOC_RIGHT ) ); lookup.put( "<+-SSW_REAR_ARMOR-+>", "" + CurVee.GetArmor().GetLocationArmor( LocationIndex.CV_LOC_REAR ) ); lookup.put( "<+-SSW_TURRET_ARMOR-+>", "" + (CurVee.isHasTurret1() ? CurVee.GetArmor().GetLocationArmor( LocationIndex.CV_LOC_TURRET1 ) : "") ); + lookup.put( "<+-SSW_REAR_TURRET_ARMOR-+>", "" + (CurVee.isHasTurret2() ? CurVee.GetArmor().GetLocationArmor( LocationIndex.CV_LOC_TURRET2 ) : "") ); lookup.put( "<+-SSW_ROTOR_ARMOR-+>", "" + (CurVee.IsVTOL() ? CurVee.GetArmor().GetLocationArmor( LocationIndex.CV_LOC_ROTOR ) : "") ); lookup.put( "<+-SSW_FRONT_ARMOR_TYPE-+>", " (" + CurVee.GetArmor().GetFrontArmorType().LookupName() + ")" ); lookup.put( "<+-SSW_LEFT_ARMOR_TYPE-+>", " (" + CurVee.GetArmor().GetLeftArmorType().LookupName() + ")" ); lookup.put( "<+-SSW_RIGHT_ARMOR_TYPE-+>", " (" + CurVee.GetArmor().GetRightArmorType().LookupName() + ")" ); lookup.put( "<+-SSW_TURRET_ARMOR_TYPE-+>", (CurVee.isHasTurret1() ? " (" + CurVee.GetArmor().GetTurret1ArmorType().LookupName() + ")" : "") ); + lookup.put( "<+-SSW_REAR_TURRET_ARMOR_TYPE-+>", (CurVee.isHasTurret2() ? " (" + CurVee.GetArmor().GetTurret2ArmorType().LookupName() + ")" : "") ); lookup.put( "<+-SSW_ROTOR_ARMOR_TYPE-+>", ( CurVee.IsVTOL() ? " (" + CurVee.GetArmor().GetRotorArmorType().LookupName() + ")" : "" ) ); lookup.put( "<+-SSW_REAR_ARMOR_TYPE-+>", " (" + CurVee.GetArmor().GetRearArmorType().LookupName() + ")" ); lookup.put( "<+-SSW_ARMOR_COVERAGE-+>", "" + CurVee.GetArmor().GetCoverage() ); @@ -1382,6 +1384,7 @@ private void BuildHash() { lookup.put( "<+-SSW_CONTROLS_TONNAGE-+>", CurVee.GetControls() ); lookup.put( "<+-SSW_LIFTEQUIPMENT_TONNAGE-+>", (CurVee.GetLiftEquipmentTonnage() == 0) ? "" : CurVee.GetLiftEquipmentTonnage() + "" ); lookup.put( "<+-SSW_TURRET_TONNAGE-+>", (CurVee.GetLoadout().GetTurret().GetTonnage() == 0) ? "" : CurVee.GetLoadout().GetTurret().GetTonnage() + "" ); + lookup.put( "<+-SSW_REAR_TURRET_TONNAGE-+>", (CurVee.GetLoadout().GetRearTurret().GetTonnage() == 0) ? "" : CurVee.GetLoadout().GetRearTurret().GetTonnage() + "" ); lookup.put( "<+-SSW_RULES_LEVEL-+>", CommonTools.GetRulesLevelString( CurVee.GetRulesLevel() ) ); if( CurVee.IsOmni() ) { lookup.put( "<+-SSW_POD_TONNAGE-+>", FormatTonnage( ( CurVee.GetTonnage() - CurVee.GetCurrentTons() ), 1 ) ); diff --git a/sswlib/src/main/java/filehandlers/CVReader.java b/sswlib/src/main/java/filehandlers/CVReader.java index 54e55738..df626ece 100644 --- a/sswlib/src/main/java/filehandlers/CVReader.java +++ b/sswlib/src/main/java/filehandlers/CVReader.java @@ -416,6 +416,9 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) if ( omniCombatVehicle && map.getNamedItem("turretlimit") != null ) { m.GetLoadout().GetTurret().SetTonnage( Double.parseDouble(map.getNamedItem("turretlimit").getTextContent() ) ); } + if ( omniCombatVehicle && map.getNamedItem("rearturretlimit") != null ) { + m.GetLoadout().GetRearTurret().SetTonnage( Double.parseDouble(map.getNamedItem("rearturretlimit").getTextContent() ) ); + } n = n.item( 0 ).getChildNodes(); LocationIndex ltc = new LocationIndex(); for( int i = 0; i < n.getLength(); i++ ) { diff --git a/sswlib/src/main/java/filehandlers/CVWriter.java b/sswlib/src/main/java/filehandlers/CVWriter.java index 1c20f9c6..3692ad87 100644 --- a/sswlib/src/main/java/filehandlers/CVWriter.java +++ b/sswlib/src/main/java/filehandlers/CVWriter.java @@ -174,7 +174,14 @@ public void WriteXML( BufferedWriter FR ) throws IOException { if( CurUnit.IsOmni() ) { CurUnit.SetCurLoadout( common.Constants.BASELOADOUT_NAME ); } - FR.write( tab + "<baseloadout fcsa4=\"" + FileCommon.GetBoolean( CurUnit.UsingArtemisIV() ) + "\" fcsa5=\"" + FileCommon.GetBoolean( CurUnit.UsingArtemisV() ) + "\" fcsapollo=\"" + FileCommon.GetBoolean( CurUnit.UsingApollo() ) + "\" turretlimit=\"" + CurUnit.GetBaseLoadout().GetTurret().GetMaxTonnage() + "\" >" ); + FR.write( tab + "<baseloadout fcsa4=\"" + FileCommon.GetBoolean( CurUnit.UsingArtemisIV() ) + "\" fcsa5=\"" + FileCommon.GetBoolean( CurUnit.UsingArtemisV() ) + "\" fcsapollo=\"" + FileCommon.GetBoolean( CurUnit.UsingApollo() ) + "\""); + if( CurUnit.GetLoadout().GetTurret().isTonnageSet() ) { + FR.write( " turretlimit=\"" + CurUnit.GetLoadout().GetTurret().GetMaxTonnage() + "\""); + } + if( CurUnit.GetLoadout().GetRearTurret().isTonnageSet() ) { + FR.write( " rearturretlimit=\"" + CurUnit.GetLoadout().GetRearTurret().GetMaxTonnage() + "\"" ); + } + FR.write( ">" ); FR.newLine(); FR.write( tab + tab + "<source>" + FileCommon.EncodeFluff( CurUnit.getSource() ) + "</source>" ); From 5954475f6a896de7175af1c77c0baa3632f5139a Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sun, 10 Dec 2023 18:02:55 -0800 Subject: [PATCH 184/199] Unlocking omni chassis no longer unchecks omni and zeros out turret tonnages Also fix lock chassis button getting out of sync with omni checkbox --- saw/src/main/java/saw/gui/frmVee.java | 20 ++++--------------- saw/src/main/java/saw/gui/frmVeeWide.java | 18 ++++------------- ssw/src/main/java/ssw/gui/frmMain.java | 23 ++++------------------ ssw/src/main/java/ssw/gui/frmMainWide.java | 22 ++++----------------- 4 files changed, 16 insertions(+), 67 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index abf8306c..8ee0f7e8 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -6234,11 +6234,7 @@ private void CheckOmni() { // now let's ensure that all the omni controls are enabled or disabled // as appropriate - if( chkOmniVee.isEnabled() ) { - btnLockChassis.setEnabled(chkOmniVee.isSelected()); - } else { - btnLockChassis.setEnabled( false ); - } + btnLockChassis.setEnabled( chkOmniVee.isEnabled() && chkOmniVee.isSelected() ); } private void RefreshEquipment() { @@ -6347,7 +6343,6 @@ private void UnlockGUIFromOmni() { // an Omni. isLocked = false; - chkOmniVee.setSelected( false ); chkOmniVee.setEnabled( true ); mnuUnlock.setEnabled( false ); cmbMotiveType.setEnabled( true ); @@ -6370,13 +6365,11 @@ private void UnlockGUIFromOmni() { chkTrailer.setEnabled( true ); //btnEfficientArmor.setEnabled( true ); //btnBalanceArmor.setEnabled( true ); - btnLockChassis.setEnabled( false ); + btnLockChassis.setEnabled( chkOmniVee.isSelected() ); chkFCSAIV.setEnabled( true ); chkFCSAV.setEnabled( true ); chkFCSApollo.setEnabled( true ); chkCASE.setEnabled( true ); - chkOmniVee.setSelected( false ); - chkOmniVee.setEnabled( true ); spnCruiseMP.setEnabled( true ); chkYearRestrict.setEnabled( true ); chkSupercharger.setEnabled( true ); @@ -7555,7 +7548,6 @@ private void btnLockChassisActionPerformed(java.awt.event.ActionEvent evt) { // make it an omni CurVee.SetOmni(VariantName); - chkOmniVee.setEnabled(false); FixJJSpinnerModel(); FixHeatSinkSpinnerModel(); LockGUIForOmni(); @@ -7603,7 +7595,6 @@ private void LockGUIForOmni() { // this locks most of the GUI controls. Used mainly by OmniVehicles. isLocked = true; - chkOmniVee.setSelected( true ); chkOmniVee.setEnabled( false ); mnuUnlock.setEnabled( true ); spnTonnage.setEnabled( false ); @@ -7780,11 +7771,7 @@ private void cmbOmniVariantActionPerformed(java.awt.event.ActionEvent evt) { } private void chkOmniVeeActionPerformed(java.awt.event.ActionEvent evt) { - if( chkOmniVee.isSelected() ) { - btnLockChassis.setEnabled( true ); - } else { - btnLockChassis.setEnabled( false ); - } + btnLockChassis.setEnabled( chkOmniVee.isSelected() ); cmbTurretActionPerformed(evt); } @@ -7957,6 +7944,7 @@ public void LoadVehicleIntoGUI() { Load = false; if( CurVee.IsOmni() ) { + chkOmniVee.setSelected( true ); LockGUIForOmni(); RefreshOmniVariants(); RefreshOmniChoices(); diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index b9a92406..b71f511e 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -3911,15 +3911,7 @@ private void CheckOmni() { // now let's ensure that all the omni controls are enabled or disabled // as appropriate - if( chkOmniVee.isEnabled() ) { - if( chkOmniVee.isSelected() ) { - //btnLockChassis.setEnabled( true ); - } else { - //btnLockChassis.setEnabled( false ); - } - } else { - //btnLockChassis.setEnabled( false ); - } + btnLockChassis.setEnabled( chkOmniVee.isEnabled() && chkOmniVee.isSelected() ); } private void RefreshEquipment() { @@ -4031,7 +4023,6 @@ private void UnlockGUIFromOmni() { // an Omni. isLocked = false; - chkOmniVee.setSelected( false ); chkOmniVee.setEnabled( true ); mnuUnlock.setEnabled( false ); cmbMotiveType.setEnabled( true ); @@ -4057,7 +4048,7 @@ private void UnlockGUIFromOmni() { chkFCSAIV.setEnabled( true ); chkFCSAV.setEnabled( true ); chkFCSApollo.setEnabled( true ); - btnLockChassis.setEnabled( true ); + btnLockChassis.setEnabled( chkOmniVee.isSelected() ); spnCruiseMP.setEnabled( true ); chkYearRestrict.setEnabled( true ); chkSupercharger.setEnabled( true ); @@ -4308,7 +4299,6 @@ private void LockGUIForOmni() { // this locks most of the GUI controls. Used mainly by OmniVehichles. isLocked = true; - chkOmniVee.setSelected( true ); chkOmniVee.setEnabled( false ); mnuUnlock.setEnabled( true ); spnTonnage.setEnabled( false ); @@ -4548,6 +4538,7 @@ public void LoadVehicleIntoGUI() { Load = false; if( CurVee.IsOmni() ) { + chkOmniVee.setSelected( true ); LockGUIForOmni(); RefreshOmniVariants(); RefreshOmniChoices(); @@ -6351,7 +6342,6 @@ private void btnLockChassisActionPerformed(java.awt.event.ActionEvent evt) { // make it an omni CurVee.SetOmni(VariantName); - chkOmniVee.setEnabled(false); FixJJSpinnerModel(); FixHeatSinkSpinnerModel(); LockGUIForOmni(); @@ -6816,7 +6806,7 @@ private void chkTrailerActionPerformed(java.awt.event.ActionEvent evt) { } private void chkOmniVeeActionPerformed(java.awt.event.ActionEvent evt) { - btnLockChassis.setEnabled(chkOmniVee.isSelected()); + btnLockChassis.setEnabled( chkOmniVee.isSelected() ); cmbTurretActionPerformed(evt); } diff --git a/ssw/src/main/java/ssw/gui/frmMain.java b/ssw/src/main/java/ssw/gui/frmMain.java index b79cd4e0..aa61419f 100644 --- a/ssw/src/main/java/ssw/gui/frmMain.java +++ b/ssw/src/main/java/ssw/gui/frmMain.java @@ -2018,15 +2018,7 @@ private void CheckOmnimech() { // now let's ensure that all the omni controls are enabled or disabled // as appropriate - if( chkOmnimech.isEnabled() ) { - if( chkOmnimech.isSelected() ) { - btnLockChassis.setEnabled( true ); - } else { - btnLockChassis.setEnabled( false ); - } - } else { - btnLockChassis.setEnabled( false ); - } + btnLockChassis.setEnabled( chkOmnimech.isEnabled() && chkOmnimech.isSelected() ); } private void SaveOmniFluffInfo() { @@ -3249,7 +3241,6 @@ private void FixTransferHandlers() { private void LockGUIForOmni() { // this locks most of the BFB.GUI controls. Used mainly by Omnimechs. - chkOmnimech.setSelected( true ); chkOmnimech.setEnabled( false ); mnuUnlock.setEnabled( true ); cmbTonnage.setEnabled( false ); @@ -3365,7 +3356,6 @@ private void LockGUIForOmni() { private void UnlockGUIFromOmni() { // this should be used anytime a new mech is made or when unlocking // an omnimech. - chkOmnimech.setSelected( false ); chkOmnimech.setEnabled( true ); mnuUnlock.setEnabled( false ); cmbTonnage.setEnabled( true ); @@ -3395,7 +3385,6 @@ private void UnlockGUIFromOmni() { btnEfficientArmor.setEnabled( true ); btnBalanceArmor.setEnabled( true ); cmbJumpJetType.setEnabled( true ); - btnLockChassis.setEnabled( true ); chkFCSAIV.setEnabled( true ); chkFCSAV.setEnabled( true ); chkFCSApollo.setEnabled( true ); @@ -3413,7 +3402,7 @@ private void UnlockGUIFromOmni() { chkHDTurret.setEnabled( true ); chkLTTurret.setEnabled( true ); chkRTTurret.setEnabled( true ); - btnLockChassis.setEnabled( false ); + btnLockChassis.setEnabled( chkOmnimech.isSelected() ); spnWalkMP.setEnabled( true ); chkYearRestrict.setEnabled( true ); chkNullSig.setEnabled( true ); @@ -12560,7 +12549,6 @@ private void btnLockChassisActionPerformed(java.awt.event.ActionEvent evt) {//GE // make it an omni CurMech.SetOmnimech( VariantName ); - chkOmnimech.setEnabled( false ); FixTransferHandlers(); SetLoadoutArrays(); FixJJSpinnerModel(); @@ -12574,11 +12562,7 @@ private void btnLockChassisActionPerformed(java.awt.event.ActionEvent evt) {//GE }//GEN-LAST:event_btnLockChassisActionPerformed private void chkOmnimechActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkOmnimechActionPerformed - if( chkOmnimech.isSelected() ) { - btnLockChassis.setEnabled( true ); - } else { - btnLockChassis.setEnabled( false ); - } + btnLockChassis.setEnabled( chkOmnimech.isSelected() ); }//GEN-LAST:event_chkOmnimechActionPerformed private void btnAddVariantActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAddVariantActionPerformed @@ -13280,6 +13264,7 @@ public void LoadMechIntoGUI() { txtMechModel.setText( CurMech.GetModel() ); if( CurMech.IsOmnimech() ) { + chkOmnimech.setSelected( true ); LockGUIForOmni(); RefreshOmniVariants(); RefreshOmniChoices(); diff --git a/ssw/src/main/java/ssw/gui/frmMainWide.java b/ssw/src/main/java/ssw/gui/frmMainWide.java index 777d971f..dea12a8b 100644 --- a/ssw/src/main/java/ssw/gui/frmMainWide.java +++ b/ssw/src/main/java/ssw/gui/frmMainWide.java @@ -2012,15 +2012,7 @@ private void CheckOmnimech() { // now let's ensure that all the omni controls are enabled or disabled // as appropriate - if( chkOmnimech.isEnabled() ) { - if( chkOmnimech.isSelected() ) { - btnLockChassis.setEnabled( true ); - } else { - btnLockChassis.setEnabled( false ); - } - } else { - btnLockChassis.setEnabled( false ); - } + btnLockChassis.setEnabled( chkOmnimech.isEnabled() && chkOmnimech.isSelected() ); } private void SaveOmniFluffInfo() { @@ -3314,7 +3306,6 @@ private void LockGUIForOmni() { private void UnlockGUIFromOmni() { // this should be used anytime a new mech is made or when unlocking // an omnimech. - chkOmnimech.setSelected( false ); chkOmnimech.setEnabled( true ); mnuUnlock.setEnabled( false ); cmbTonnage.setEnabled( true ); @@ -3344,7 +3335,6 @@ private void UnlockGUIFromOmni() { btnEfficientArmor.setEnabled( true ); btnBalanceArmor.setEnabled( true ); cmbJumpJetType.setEnabled( true ); - btnLockChassis.setEnabled( true ); chkFCSAIV.setEnabled( true ); chkFCSAV.setEnabled( true ); chkFCSApollo.setEnabled( true ); @@ -3362,7 +3352,7 @@ private void UnlockGUIFromOmni() { chkHDTurret.setEnabled( true ); chkLTTurret.setEnabled( true ); chkRTTurret.setEnabled( true ); - btnLockChassis.setEnabled( false ); + btnLockChassis.setEnabled( chkOmnimech.isSelected() ); spnWalkMP.setEnabled( true ); chkYearRestrict.setEnabled( true ); chkNullSig.setEnabled( true ); @@ -10602,6 +10592,7 @@ public void LoadMechIntoGUI() { txtMechModel.setText( CurMech.GetModel() ); if( CurMech.IsOmnimech() ) { + chkOmnimech.setSelected( true ); LockGUIForOmni(); RefreshOmniVariants(); RefreshOmniChoices(); @@ -13405,7 +13396,6 @@ private void btnLockChassisActionPerformed(java.awt.event.ActionEvent evt) {//GE // make it an omni CurMech.SetOmnimech( VariantName ); - chkOmnimech.setEnabled( false ); FixTransferHandlers(); SetLoadoutArrays(); FixJJSpinnerModel(); @@ -13702,11 +13692,7 @@ private void cmbMechTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F }//GEN-LAST:event_cmbMechTypeActionPerformed private void chkOmnimechActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkOmnimechActionPerformed - if( chkOmnimech.isSelected() ) { - btnLockChassis.setEnabled( true ); - } else { - btnLockChassis.setEnabled( false ); - } + btnLockChassis.setEnabled( chkOmnimech.isSelected() ); }//GEN-LAST:event_chkOmnimechActionPerformed private void cmbPhysEnhanceActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbPhysEnhanceActionPerformed From 35a052300e706eb6740895280855abeaeb5ad515 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Mon, 11 Dec 2023 00:32:25 -0800 Subject: [PATCH 185/199] Add color-coded turret tonnage limits and rear turret tonnage to info bar To help make it fit in the info bar, turret tonnages are hidden if corresponding turret doesn't exist, and reduce width of some boxes there --- saw/src/main/java/saw/gui/frmVee.form | 30 +++++-- saw/src/main/java/saw/gui/frmVee.java | 90 +++++++++++++++------ saw/src/main/java/saw/gui/frmVeeWide.form | 28 +++++-- saw/src/main/java/saw/gui/frmVeeWide.java | 57 ++++++++++--- sswlib/src/main/java/components/Turret.java | 8 ++ 5 files changed, 165 insertions(+), 48 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.form b/saw/src/main/java/saw/gui/frmVee.form index f07fd5cb..e0ee70f8 100644 --- a/saw/src/main/java/saw/gui/frmVee.form +++ b/saw/src/main/java/saw/gui/frmVee.form @@ -413,7 +413,23 @@ <Properties> <Property name="editable" type="boolean" value="false"/> <Property name="horizontalAlignment" type="int" value="0"/> - <Property name="text" type="java.lang.String" value="Turret: 000.00"/> + <Property name="text" type="java.lang.String" value="Turret: 00.0/00.0"/> + <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[100, 20]"/> + </Property> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[100, 20]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[100, 20]"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JTextField" name="txtRearTurretInfo"> + <Properties> + <Property name="editable" type="boolean" value="false"/> + <Property name="horizontalAlignment" type="int" value="0"/> + <Property name="text" type="java.lang.String" value="Rear Turret: 00.0/00.0"/> <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> <Dimension value="[120, 20]"/> </Property> @@ -421,7 +437,7 @@ <Dimension value="[120, 20]"/> </Property> <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[100, 20]"/> + <Dimension value="[120, 20]"/> </Property> </Properties> </Component> @@ -445,15 +461,15 @@ <Properties> <Property name="editable" type="boolean" value="false"/> <Property name="horizontalAlignment" type="int" value="0"/> - <Property name="text" type="java.lang.String" value="Cost: 000,000,000,000.00"/> + <Property name="text" type="java.lang.String" value="Cost: 000,000,000"/> <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[165, 20]"/> + <Dimension value="[120, 20]"/> </Property> <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[165, 20]"/> + <Dimension value="[120, 20]"/> </Property> <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[165, 20]"/> + <Dimension value="[120, 20]"/> </Property> </Properties> </Component> @@ -3563,7 +3579,7 @@ </Container> </SubComponents> </Container> - <Container class="javax.swing.JPanel" name="jPanel3"> + <Container class="javax.swing.JPanel" name="pnlEquipment"> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription"> <JTabbedPaneConstraints tabName="Equipment"> diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 8ee0f7e8..c27ea7fc 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -794,6 +794,33 @@ public void RefreshInfoPane() { txtInfoFreeCrits.setForeground(Color.black); } + if( CurVee.isHasTurret1() ) { + txtTurretInfo.setVisible( true ); + Turret turret = CurVee.GetLoadout().GetTurret(); + if( turret.isTonnageSet() ) { + if( turret.GetTonnageFromItems() > turret.GetMaxTonnage() ) { + txtTurretInfo.setForeground( Color.red ); + } else { + txtTurretInfo.setForeground( Color.black ); + } + } + } else { + txtTurretInfo.setVisible( false ); + } + if( CurVee.isHasTurret2() ) { + txtRearTurretInfo.setVisible( true ); + Turret turret = CurVee.GetLoadout().GetRearTurret(); + if( turret.isTonnageSet() ) { + if( turret.GetTonnageFromItems() > turret.GetMaxTonnage() ) { + txtRearTurretInfo.setForeground( Color.red ); + } else { + txtRearTurretInfo.setForeground( Color.black ); + } + } + } else { + txtRearTurretInfo.setVisible( false ); + } + // fill in the movement summary String temp = "Max C/F: "; temp += CurVee.GetAdjustedCruiseMP( false, true ) + "/"; @@ -957,6 +984,7 @@ private void initComponents() { txtInfoFreeTons = new javax.swing.JTextField(); txtInfoFreeCrits = new javax.swing.JTextField(); txtTurretInfo = new javax.swing.JTextField(); + txtRearTurretInfo = new javax.swing.JTextField(); txtInfoBattleValue = new javax.swing.JTextField(); txtInfoCost = new javax.swing.JTextField(); tlbIconBar = new javax.swing.JToolBar(); @@ -1154,7 +1182,7 @@ private void initComponents() { txtArmorSpace = new javax.swing.JTextField(); lblArmorTonsWasted = new javax.swing.JLabel(); lblArmorLeftInLot = new javax.swing.JLabel(); - jPanel3 = new javax.swing.JPanel(); + pnlEquipment = new javax.swing.JPanel(); tbpWeaponChooser = new JTabbedPane(); lstChooseBallistic = new javax.swing.JList(); lstChooseEnergy = new javax.swing.JList(); @@ -1372,12 +1400,20 @@ public void windowClosed(java.awt.event.WindowEvent evt) { txtTurretInfo.setEditable(false); txtTurretInfo.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtTurretInfo.setText("Turret: 000.00"); - txtTurretInfo.setMaximumSize(new Dimension(120, 20)); - txtTurretInfo.setMinimumSize(new Dimension(120, 20)); + txtTurretInfo.setText("Turret: 00.0/0.00"); + txtTurretInfo.setMaximumSize(new Dimension(100, 20)); + txtTurretInfo.setMinimumSize(new Dimension(100, 20)); txtTurretInfo.setPreferredSize(new Dimension(100, 20)); pnlInfoPane.add(txtTurretInfo); + txtRearTurretInfo.setEditable(false); + txtRearTurretInfo.setHorizontalAlignment(javax.swing.JTextField.CENTER); + txtRearTurretInfo.setText("Rear Turret: 00.0/0.00"); + txtRearTurretInfo.setMaximumSize(new Dimension(120, 20)); + txtRearTurretInfo.setMinimumSize(new Dimension(120, 20)); + txtRearTurretInfo.setPreferredSize(new Dimension(120, 20)); + pnlInfoPane.add(txtRearTurretInfo); + txtInfoBattleValue.setEditable(false); txtInfoBattleValue.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtInfoBattleValue.setText("BV: 00,000"); @@ -1388,10 +1424,10 @@ public void windowClosed(java.awt.event.WindowEvent evt) { txtInfoCost.setEditable(false); txtInfoCost.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtInfoCost.setText("Cost: 000,000,000,000.00"); - txtInfoCost.setMaximumSize(new Dimension(165, 20)); - txtInfoCost.setMinimumSize(new Dimension(165, 20)); - txtInfoCost.setPreferredSize(new Dimension(165, 20)); + txtInfoCost.setText("Cost: 000,000,000"); + txtInfoCost.setMaximumSize(new Dimension(120, 20)); + txtInfoCost.setMinimumSize(new Dimension(120, 20)); + txtInfoCost.setPreferredSize(new Dimension(120, 20)); pnlInfoPane.add(txtInfoCost); tlbIconBar.setFloatable(false); @@ -3525,17 +3561,17 @@ public void mouseClicked(java.awt.event.MouseEvent evt) { gridBagConstraints.insets = new java.awt.Insets(4, 0, 4, 0); pnlControls.add(jScrollPane1, gridBagConstraints); - javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); - jPanel3.setLayout(jPanel3Layout); - jPanel3Layout.setHorizontalGroup( - jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel3Layout.createSequentialGroup() + javax.swing.GroupLayout pnlEquipmentLayout = new javax.swing.GroupLayout(pnlEquipment); + pnlEquipment.setLayout(pnlEquipmentLayout); + pnlEquipmentLayout.setHorizontalGroup( + pnlEquipmentLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlEquipmentLayout.createSequentialGroup() .addContainerGap() - .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel3Layout.createSequentialGroup() + .addGroup(pnlEquipmentLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlEquipmentLayout.createSequentialGroup() .addComponent(tbpWeaponChooser, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGap(18, 18, 18) - .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(pnlEquipmentLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(pnlControls, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(pnlSpecials, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) @@ -3543,12 +3579,12 @@ public void mouseClicked(java.awt.event.MouseEvent evt) { .addComponent(pnlEquipInfo, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap()) ); - jPanel3Layout.setVerticalGroup( - jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel3Layout.createSequentialGroup() + pnlEquipmentLayout.setVerticalGroup( + pnlEquipmentLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlEquipmentLayout.createSequentialGroup() .addContainerGap() - .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup() + .addGroup(pnlEquipmentLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlEquipmentLayout.createSequentialGroup() .addComponent(pnlControls, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(pnlSpecials, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) @@ -3558,7 +3594,7 @@ public void mouseClicked(java.awt.event.MouseEvent evt) { .addComponent(pnlEquipInfo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) ); - tbpMainTabPane.addTab("Equipment", jPanel3); + tbpMainTabPane.addTab("Equipment", pnlEquipment); pnlFluff.setLayout(new java.awt.GridBagLayout()); @@ -4410,7 +4446,8 @@ private void RefreshSummary() { txtSumConTons.setText("" + CurVee.GetControls() ); txtSumTurTons.setText("" + CurVee.GetLoadout().GetTurret().GetTonnage() ); txtSumTurAV.setText( CurVee.GetLoadout().GetTurret().GetAvailability().GetBestCombinedCode() ); - txtTurretInfo.setText("Turret: " + CurVee.GetLoadout().GetTurret().GetTonnage() ); + txtTurretInfo.setText( "Turret: " + CurVee.GetLoadout().GetTurret().GetTonnageText() ); + txtRearTurretInfo.setText( "Rear Turret: " + CurVee.GetLoadout().GetRearTurret().GetTonnageText() ); txtSumRTuTons.setText("" + CurVee.GetLoadout().GetRearTurret().GetTonnage() ); txtSumRTuAV.setText( CurVee.GetLoadout().GetRearTurret().GetAvailability().GetBestCombinedCode() ); txtSumSpnTons.setText("" + CurVee.GetLoadout().GetSponsonTurretTonnage() ); @@ -5915,8 +5952,8 @@ private boolean VerifyVehicle( ActionEvent evt ) { // if we have any systems that requires ECM and don't have it, let the user know if( ! CurVee.ValidateECM() ) { - Media.Messager( "This 'Mech requires an ECM system of some sort to be valid.\nPlease install an ECM system." ); - tbpMainTabPane.setSelectedComponent( jPanel3 ); + Media.Messager( "This Vehicle requires an ECM system of some sort to be valid.\nPlease install an ECM system." ); + tbpMainTabPane.setSelectedComponent( pnlEquipment ); SetSource = true; return false; } @@ -8999,7 +9036,6 @@ private void FixJJSpinnerModel() { private javax.swing.JComboBox cmbRulesLevel; private javax.swing.JComboBox cmbTechBase; private javax.swing.JComboBox cmbTurret; - private javax.swing.JPanel jPanel3; private javax.swing.JTextArea jTextAreaBFConversion; private javax.swing.JLabel lblArmorCoverage; private javax.swing.JLabel lblArmorLeftInLot; @@ -9069,6 +9105,7 @@ private void FixJJSpinnerModel() { private javax.swing.JPanel pnlBasicSetup; private javax.swing.JPanel pnlCapabilities; private javax.swing.JPanel pnlDeployment; + private javax.swing.JPanel pnlEquipment; private javax.swing.JPanel pnlHistory; private javax.swing.JPanel pnlNotables; private javax.swing.JPanel pnlOverview; @@ -9109,6 +9146,7 @@ private void FixJJSpinnerModel() { private javax.swing.JTextField txtManufacturerLocation; private javax.swing.JTextField txtModel; private javax.swing.JTextField txtProdYear; + private javax.swing.JTextField txtRearTurretInfo; private javax.swing.JTextField txtSource; private javax.swing.JTextField txtSumArmAV; private javax.swing.JTextField txtSumArmSpace; diff --git a/saw/src/main/java/saw/gui/frmVeeWide.form b/saw/src/main/java/saw/gui/frmVeeWide.form index 9319f155..25d009a6 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.form +++ b/saw/src/main/java/saw/gui/frmVeeWide.form @@ -413,7 +413,23 @@ <Properties> <Property name="editable" type="boolean" value="false"/> <Property name="horizontalAlignment" type="int" value="0"/> - <Property name="text" type="java.lang.String" value="Turret: 000.00"/> + <Property name="text" type="java.lang.String" value="Turret: 00.0/00.0"/> + <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[100, 20]"/> + </Property> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[100, 20]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[100, 20]"/> + </Property> + </Properties> + </Component> + <Component class="javax.swing.JTextField" name="txtRearTurretInfo"> + <Properties> + <Property name="editable" type="boolean" value="false"/> + <Property name="horizontalAlignment" type="int" value="0"/> + <Property name="text" type="java.lang.String" value="Rear Turret: 00.0/00.0"/> <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> <Dimension value="[120, 20]"/> </Property> @@ -421,7 +437,7 @@ <Dimension value="[120, 20]"/> </Property> <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[100, 20]"/> + <Dimension value="[120, 20]"/> </Property> </Properties> </Component> @@ -445,15 +461,15 @@ <Properties> <Property name="editable" type="boolean" value="false"/> <Property name="horizontalAlignment" type="int" value="0"/> - <Property name="text" type="java.lang.String" value="Cost: 000,000,000,000.00"/> + <Property name="text" type="java.lang.String" value="Cost: 000,000,000"/> <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[165, 20]"/> + <Dimension value="[120, 20]"/> </Property> <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[165, 20]"/> + <Dimension value="[120, 20]"/> </Property> <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[165, 20]"/> + <Dimension value="[120, 20]"/> </Property> </Properties> </Component> diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index b71f511e..db52ebb0 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -762,6 +762,33 @@ public void RefreshInfoPane() { txtInfoFreeCrits.setForeground(Color.black); } + if( CurVee.isHasTurret1() ) { + txtTurretInfo.setVisible( true ); + Turret turret = CurVee.GetLoadout().GetTurret(); + if( turret.isTonnageSet() ) { + if( turret.GetTonnageFromItems() > turret.GetMaxTonnage() ) { + txtTurretInfo.setForeground( Color.red ); + } else { + txtTurretInfo.setForeground( Color.black ); + } + } + } else { + txtTurretInfo.setVisible( false ); + } + if( CurVee.isHasTurret2() ) { + txtRearTurretInfo.setVisible( true ); + Turret turret = CurVee.GetLoadout().GetRearTurret(); + if( turret.isTonnageSet() ) { + if( turret.GetTonnageFromItems() > turret.GetMaxTonnage() ) { + txtRearTurretInfo.setForeground( Color.red ); + } else { + txtRearTurretInfo.setForeground( Color.black ); + } + } + } else { + txtRearTurretInfo.setVisible( false ); + } + // fill in the movement summary String temp = "Max C/F: "; temp += CurVee.GetAdjustedCruiseMP( false, true ) + "/"; @@ -923,6 +950,7 @@ private void initComponents() { txtInfoFreeTons = new javax.swing.JTextField(); txtInfoFreeCrits = new javax.swing.JTextField(); txtTurretInfo = new javax.swing.JTextField(); + txtRearTurretInfo = new javax.swing.JTextField(); txtInfoBattleValue = new javax.swing.JTextField(); txtInfoCost = new javax.swing.JTextField(); tlbIconBar = new javax.swing.JToolBar(); @@ -1072,7 +1100,7 @@ private void initComponents() { txtArmorSpace = new javax.swing.JTextField("00"); lblArmorTonsWasted = new javax.swing.JLabel("0.00 Tons Wasted"); lblArmorLeftInLot = new javax.swing.JLabel("99 Points Left In This 1/2 Ton Lot"); - JPanel pnlEquipment = new JPanel(); + pnlEquipment = new JPanel(); pnlEquipInfo = new javax.swing.JPanel(); lblInfoAVSL = new javax.swing.JLabel(); lblInfoAVSW = new javax.swing.JLabel(); @@ -1229,12 +1257,20 @@ public void windowClosed(java.awt.event.WindowEvent evt) { txtTurretInfo.setEditable(false); txtTurretInfo.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtTurretInfo.setText("Turret: 000.00"); - txtTurretInfo.setMaximumSize(new Dimension(120, 20)); - txtTurretInfo.setMinimumSize(new Dimension(120, 20)); + txtTurretInfo.setText("Turret: 00.0/0.00"); + txtTurretInfo.setMaximumSize(new Dimension(100, 20)); + txtTurretInfo.setMinimumSize(new Dimension(100, 20)); txtTurretInfo.setPreferredSize(new Dimension(100, 20)); pnlInfoPane.add(txtTurretInfo); + txtRearTurretInfo.setEditable(false); + txtRearTurretInfo.setHorizontalAlignment(javax.swing.JTextField.CENTER); + txtRearTurretInfo.setText("Rear Turret: 00.0/0.00"); + txtRearTurretInfo.setMaximumSize(new Dimension(120, 20)); + txtRearTurretInfo.setMinimumSize(new Dimension(120, 20)); + txtRearTurretInfo.setPreferredSize(new Dimension(120, 20)); + pnlInfoPane.add(txtRearTurretInfo); + txtInfoBattleValue.setEditable(false); txtInfoBattleValue.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtInfoBattleValue.setText("BV: 00,000"); @@ -1245,10 +1281,10 @@ public void windowClosed(java.awt.event.WindowEvent evt) { txtInfoCost.setEditable(false); txtInfoCost.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtInfoCost.setText("Cost: 000,000,000,000.00"); - txtInfoCost.setMaximumSize(new Dimension(165, 20)); - txtInfoCost.setMinimumSize(new Dimension(165, 20)); - txtInfoCost.setPreferredSize(new Dimension(165, 20)); + txtInfoCost.setText("Cost: 000,000,000"); + txtInfoCost.setMaximumSize(new Dimension(120, 20)); + txtInfoCost.setMinimumSize(new Dimension(120, 20)); + txtInfoCost.setPreferredSize(new Dimension(120, 20)); pnlInfoPane.add(txtInfoCost); //endregion @@ -2722,7 +2758,8 @@ private void RefreshSummary() { txtSumConTons.setText("" + CurVee.GetControls() ); txtSumTurTons.setText("" + CurVee.GetLoadout().GetTurret().GetTonnage() ); txtSumTurAV.setText( CurVee.GetLoadout().GetTurret().GetAvailability().GetBestCombinedCode() ); - txtTurretInfo.setText("Turret: " + CurVee.GetLoadout().GetTurret().GetTonnage() ); + txtTurretInfo.setText( "Turret: " + CurVee.GetLoadout().GetTurret().GetTonnageText() ); + txtRearTurretInfo.setText( "Rear Turret: " + CurVee.GetLoadout().GetRearTurret().GetTonnageText() ); txtSumRTuTons.setText("" + CurVee.GetLoadout().GetRearTurret().GetTonnage() ); txtSumRTuAV.setText( CurVee.GetLoadout().GetRearTurret().GetAvailability().GetBestCombinedCode() ); txtSumSpnTons.setText("" + CurVee.GetLoadout().GetSponsonTurretTonnage() ); @@ -7485,6 +7522,7 @@ private void FixJJSpinnerModel() { private javax.swing.JPanel pnlBasicSetup; private javax.swing.JPanel pnlCapabilities; private javax.swing.JPanel pnlDeployment; + private javax.swing.JPanel pnlEquipment; private javax.swing.JPanel pnlEquipInfo; private javax.swing.JPanel pnlHistory; private javax.swing.JPanel pnlNotables; @@ -7527,6 +7565,7 @@ private void FixJJSpinnerModel() { private javax.swing.JTextField txtManufacturerLocation; private javax.swing.JTextField txtModel; private javax.swing.JTextField txtProdYear; + private javax.swing.JTextField txtRearTurretInfo; private javax.swing.JTextField txtSource; private javax.swing.JTextField txtSumArmAV; private javax.swing.JTextField txtSumArmSpace; diff --git a/sswlib/src/main/java/components/Turret.java b/sswlib/src/main/java/components/Turret.java index b7e48bf9..a8b12913 100644 --- a/sswlib/src/main/java/components/Turret.java +++ b/sswlib/src/main/java/components/Turret.java @@ -172,6 +172,14 @@ public double GetTonnageFromItems() { return CommonTools.RoundHalfUp( Build * 0.10 ); } + public String GetTonnageText() { + if( isTonnageSet ) { + return String.format( "%.1f/%.1f", GetTonnageFromItems(), GetMaxTonnage() ); + } else { + return String.format( "%.1f", GetTonnage() ); + } + } + @Override public boolean CoreComponent() { return true; From 41d44a50899d3ba45bfbd22f4d623575afe303d8 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Mon, 11 Dec 2023 00:35:50 -0800 Subject: [PATCH 186/199] Move omnivehicle turret tonnage check to pre-save tonnage validation Also improve validation error behavior a bit --- saw/src/main/java/saw/gui/frmVee.java | 49 +++++++++++++------ saw/src/main/java/saw/gui/frmVeeWide.java | 49 +++++++++++++------ .../src/main/java/components/CVLoadout.java | 24 ++------- 3 files changed, 72 insertions(+), 50 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index c27ea7fc..b5050559 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -5959,24 +5959,43 @@ private boolean VerifyVehicle( ActionEvent evt ) { } // ensure we're not overweight + ArrayList<ifCVLoadout> loadouts = new ArrayList<>(); if( CurVee.IsOmni() ) { - ArrayList v = CurVee.GetLoadouts(); - for( int i = 0; i < v.size(); i++ ) { - CurVee.SetCurLoadout( ((ifCVLoadout) v.get( i )).GetName() ); - if( CurVee.GetCurrentTons() > CurVee.GetTonnage() ) { - Media.Messager( this, ((ifCVLoadout) v.get( i )).GetName() + - " loadout is overweight. Reduce the weight\nto equal or below the Vehicle's tonnage." ); - //cmbOmniVariant.setSelectedItem( ((ifCVLoadout) v.get( i )).GetName() ); - //cmbOmniVariantActionPerformed( evt ); - tbpMainTabPane.setSelectedComponent( pnlBasicSetup ); - SetSource = true; - return false; - } - } + loadouts.addAll( CurVee.GetLoadouts() ); } else { + loadouts.add( null ); + } + for( ifCVLoadout loadout : loadouts ) { + String name; + JPanel panel; + if( loadout == null ) { + name = "This Vehicle"; + panel = pnlBasicSetup; + } else { + name = loadout.GetName() + " loadout"; + CurVee.SetCurLoadout( loadout.GetName() ); + panel = pnlEquipment; + } if( CurVee.GetCurrentTons() > CurVee.GetTonnage() ) { - Media.Messager( this, "This Vehicle is overweight. Reduce the weight to\nequal or below the Vehicle's tonnage." ); - tbpMainTabPane.setSelectedComponent( pnlBasicSetup ); + Media.Messager( this, name + " is overweight.\n" + + "Reduce the weight to equal or below the Vehicle's tonnage." ); + tbpMainTabPane.setSelectedComponent( panel ); + SetSource = true; + return false; + } + Turret turret = CurVee.GetLoadout().GetTurret(); + if( turret.isTonnageSet() && turret.GetTonnageFromItems() > turret.GetMaxTonnage() ) { + Media.Messager( this, name + "'s turret is overweight.\n" + + "Reduce the turret's weight to equal or below its max tonnage." ); + tbpMainTabPane.setSelectedComponent( panel ); + SetSource = true; + return false; + } + turret = CurVee.GetLoadout().GetRearTurret(); + if( turret.isTonnageSet() && turret.GetTonnageFromItems() > turret.GetMaxTonnage() ) { + Media.Messager( this, name + "'s rear turret is overweight.\n" + + "Reduce the rear turret's weight to equal or below its max tonnage." ); + tbpMainTabPane.setSelectedComponent( panel ); SetSource = true; return false; } diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index db52ebb0..e01129db 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -3687,24 +3687,43 @@ private boolean VerifyVehicle( ActionEvent evt ) { //} // ensure we're not overweight + ArrayList<ifCVLoadout> loadouts = new ArrayList<>(); if( CurVee.IsOmni() ) { - ArrayList v = CurVee.GetLoadouts(); - for (Object o : v) { - CurVee.SetCurLoadout(((ifCVLoadout) o).GetName()); - if (CurVee.GetCurrentTons() > CurVee.GetTonnage()) { - Media.Messager(this, ((ifCVLoadout) o).GetName() + - " loadout is overweight. Reduce the weight\nto equal or below the Vehicle's tonnage."); - //cmbOmniVariant.setSelectedItem( ((ifCVLoadout) v.get( i )).GetName() ); - //cmbOmniVariantActionPerformed( evt ); - tbpMainTabPane.setSelectedComponent(pnlBasicSetup); - SetSource = true; - return false; - } - } + loadouts.addAll( CurVee.GetLoadouts() ); } else { + loadouts.add( null ); + } + for( ifCVLoadout loadout : loadouts ) { + String name; + JPanel panel; + if( loadout == null ) { + name = "This Vehicle"; + panel = pnlBasicSetup; + } else { + name = loadout.GetName() + " loadout"; + CurVee.SetCurLoadout( loadout.GetName() ); + panel = pnlEquipment; + } if( CurVee.GetCurrentTons() > CurVee.GetTonnage() ) { - Media.Messager( this, "This Vehicle is overweight. Reduce the weight to\nequal or below the Vehicle's tonnage." ); - tbpMainTabPane.setSelectedComponent( pnlBasicSetup ); + Media.Messager( this, name + " is overweight.\n" + + "Reduce the weight to equal or below the Vehicle's tonnage." ); + tbpMainTabPane.setSelectedComponent( panel ); + SetSource = true; + return false; + } + Turret turret = CurVee.GetLoadout().GetTurret(); + if( turret.isTonnageSet() && turret.GetTonnageFromItems() > turret.GetMaxTonnage() ) { + Media.Messager( this, name + "'s turret is overweight.\n" + + "Reduce the turret's weight to equal or below its max tonnage." ); + tbpMainTabPane.setSelectedComponent( panel ); + SetSource = true; + return false; + } + turret = CurVee.GetLoadout().GetRearTurret(); + if( turret.isTonnageSet() && turret.GetTonnageFromItems() > turret.GetMaxTonnage() ) { + Media.Messager( this, name + "'s rear turret is overweight.\n" + + "Reduce the rear turret's weight to equal or below its max tonnage." ); + tbpMainTabPane.setSelectedComponent( panel ); SetSource = true; return false; } diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index 08243904..4e4429be 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -364,32 +364,16 @@ public void AddTo(abPlaceable p, int Loc) throws Exception { throw new Exception(p.ActualName() + " cannot be allocated to the Side."); break; case LocationIndex.CV_LOC_TURRET1: - if ( p.CanAllocCVTurret() ) { + if ( p.CanAllocCVTurret() ) Turret1Items.add(p); - if ( Turret1.isTonnageSet() ) { - double tons = Turret1.GetTonnageFromItems(); - if ( tons > Turret1.GetMaxTonnage() ) { - Turret1Items.remove(p); - throw new Exception( String.format( "Turret is out of space: %.1f/%.1f", - tons, Turret1.GetMaxTonnage()) ); - } - } - } else + else throw new Exception(p.ActualName() + " cannot be allocated to the Turret."); break; case LocationIndex.CV_LOC_TURRET2: - if ( p.CanAllocCVTurret() ) { + if ( p.CanAllocCVTurret() ) Turret2Items.add(p); - if ( Turret2.isTonnageSet() ) { - double tons = Turret2.GetTonnageFromItems(); - if ( tons > Turret2.GetMaxTonnage() ) { - Turret2Items.remove(p); - throw new Exception( String.format( "Turret is out of space: %.1f/%.1f", - tons, Turret2.GetMaxTonnage()) ); - } - } - } else + else throw new Exception(p.ActualName() + " cannot be allocated to the Rear Turret."); break; case LocationIndex.CV_LOC_SPONSON_LEFT: From d334e11551ed32274a2c5e059833ea8acb1c734d Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sat, 9 Dec 2023 09:29:56 -0800 Subject: [PATCH 187/199] Revert c43be1d6 "Use GetNewVee on Load and Open" since it resets UI even when canceling load/open --- saw/src/main/java/saw/gui/frmVee.java | 2 -- saw/src/main/java/saw/gui/frmVeeWide.java | 2 -- 2 files changed, 4 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index b5050559..5322b322 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -7847,7 +7847,6 @@ private void mnuLoadActionPerformed(java.awt.event.ActionEvent evt) { return; } } - GetNewVee(); // Get the mech we're loading CombatVehicle m = LoadVehicle(); if (m == null) { @@ -9206,7 +9205,6 @@ public void setUnit(ArrayList v) { } public void setVee( CombatVehicle v ) { - GetNewVee(); CurVee = v; LoadVehicleIntoGUI(); } diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index e01129db..c59c8062 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -4443,7 +4443,6 @@ private void mnuLoadActionPerformed(java.awt.event.ActionEvent evt) { return; } } - GetNewVee(); // Get the mech we're loading CombatVehicle m = LoadVehicle(); if (m == null) { @@ -7625,7 +7624,6 @@ public void setUnit(ArrayList v) { } public void setVee( CombatVehicle v ) { - GetNewVee(); CurVee = v; LoadVehicleIntoGUI(); } From d94197b4edac4e38e959a8dc3dea4e268279df6b Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Tue, 5 Dec 2023 06:25:19 -0800 Subject: [PATCH 188/199] Selective allocate for quad mechs use loc names like FLL instead of LFL --- ssw/src/main/java/ssw/gui/dlgSelectiveAllocate.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ssw/src/main/java/ssw/gui/dlgSelectiveAllocate.java b/ssw/src/main/java/ssw/gui/dlgSelectiveAllocate.java index 8651facf..7ed648cd 100644 --- a/ssw/src/main/java/ssw/gui/dlgSelectiveAllocate.java +++ b/ssw/src/main/java/ssw/gui/dlgSelectiveAllocate.java @@ -70,10 +70,10 @@ public dlgSelectiveAllocate( java.awt.Frame parent, boolean modal, EquipmentColl private void InitializeSingle() { if( Parent.GetMech().IsQuad() ) { - ((TitledBorder) pnlRA.getBorder()).setTitle( "RFL" ); - ((TitledBorder) pnlLA.getBorder()).setTitle( "LFL" ); + ((TitledBorder) pnlRA.getBorder()).setTitle( "FRL" ); + ((TitledBorder) pnlLA.getBorder()).setTitle( "FRL" ); ((TitledBorder) pnlRL.getBorder()).setTitle( "RRL" ); - ((TitledBorder) pnlLL.getBorder()).setTitle( "LRL" ); + ((TitledBorder) pnlLL.getBorder()).setTitle( "RLL" ); } else { ((TitledBorder) pnlRA.getBorder()).setTitle( "RA" ); ((TitledBorder) pnlLA.getBorder()).setTitle( "LA" ); From 42f487dfa239a3affa70f1bb72b8bfbbe447a1b7 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Tue, 5 Dec 2023 07:27:53 -0800 Subject: [PATCH 189/199] Beagle and RISC viral jammers do not require power amps, Centurion does Also fix some whitespace --- Data/Equipment/equipment.json | 35 ++++++++++++++++------------------- Data/Equipment/physicals.json | 12 ++++++------ 2 files changed, 22 insertions(+), 25 deletions(-) diff --git a/Data/Equipment/equipment.json b/Data/Equipment/equipment.json index c2944291..ff6df25c 100644 --- a/Data/Equipment/equipment.json +++ b/Data/Equipment/equipment.json @@ -606,7 +606,7 @@ "Explosive": false, "VariableSize": false, "RequiresQuad": false, - "RequiresFusion": false, + "RequiresFusion": false, "RequiresNuclear": false, "RequiresPowerAmps": true, "Availability": { @@ -703,7 +703,7 @@ "Explosive": false, "VariableSize": false, "RequiresQuad": false, - "RequiresFusion": false, + "RequiresFusion": false, "RequiresNuclear": false, "RequiresPowerAmps": true, "Availability": { @@ -800,9 +800,8 @@ "Explosive": false, "VariableSize": false, "RequiresQuad": false, - "RequiresFusion": false, + "RequiresFusion": false, "RequiresNuclear": false, - "RequiresPowerAmps": true, "Availability": { "IS_SL": "E", "IS_SW": "F", @@ -898,9 +897,8 @@ "Explosive": false, "VariableSize": false, "RequiresQuad": false, - "RequiresFusion": false, + "RequiresFusion": false, "RequiresNuclear": false, - "RequiresPowerAmps": true, "Availability": { "IS_SL": "F", "IS_SW": "X", @@ -1533,9 +1531,9 @@ "Exclusions": [ "C3 Computer (Master)", "C3 Computer (Slave)", - "C3 Boosted Computer (Master)", - "C3 Boosted Computer (Slave)", - "C3 Emergency Master", + "C3 Boosted Computer (Master)", + "C3 Boosted Computer (Slave)", + "C3 Emergency Master", "Null Signature System", "Void Signature System" ] @@ -2448,7 +2446,7 @@ "Explosive": false, "VariableSize": false, "RequiresQuad": false, - "RequiresFusion": true, + "RequiresFusion": true, "RequiresNuclear": false, "RequiresPowerAmps": true, "Availability": { @@ -3361,7 +3359,7 @@ }, "BattleForceAbilities": [ "WAT", - "ECM" + "ECM" ] }, "Bridgelayer, Light": { @@ -6331,7 +6329,7 @@ "Explosive": false, "VariableSize": false, "RequiresQuad": false, - "RequiresFusion": true, + "RequiresFusion": true, "RequiresNuclear": false, "RequiresPowerAmps": true, "Availability": { @@ -6383,9 +6381,9 @@ }, "BattleForceAbilities": [ "NOVA", - "PRB", - "RCN", - "ECM" + "PRB", + "RCN", + "ECM" ] }, "Centurion Weapon System": { @@ -6431,6 +6429,7 @@ "Explosive": false, "VariableSize": false, "RequiresQuad": false, + "RequiresPowerAmps": true, "Availability": { "IS_SL": "F", "IS_SW": "F", @@ -7277,7 +7276,6 @@ "Explosive": false, "VariableSize": false, "RequiresQuad": false, - "RequiresPowerAmps": true, "Availability": { "IS_SL": "X", "IS_SW": "X", @@ -7328,7 +7326,7 @@ "BattleForceAbilities": [ "DJ" ], - "Exclusions": [ + "Exclusions": [ "RISC Viral Jammer (Homing)" ] }, @@ -7375,7 +7373,6 @@ "Explosive": false, "VariableSize": false, "RequiresQuad": false, - "RequiresPowerAmps": true, "Availability": { "IS_SL": "X", "IS_SW": "X", @@ -7426,7 +7423,7 @@ "BattleForceAbilities": [ "HJ" ], - "Exclusions": [ + "Exclusions": [ "RISC Viral Jammer (Decoy)" ] }, diff --git a/Data/Equipment/physicals.json b/Data/Equipment/physicals.json index 80e6ef6f..ce02ee5a 100644 --- a/Data/Equipment/physicals.json +++ b/Data/Equipment/physicals.json @@ -38,7 +38,7 @@ "Alloc_Legs": false, "CanSplit": false, "PowerAmps": false, - "TripleStrengthMyomerAffectsBV": true, + "TripleStrengthMyomerAffectsBV": true, "Availability": { "IS_SL": "X", "IS_SW": "F", @@ -122,7 +122,7 @@ "ReplacesHand": false, "RequiresLowerArm": true, "ReplacesLowerArm": false, - "TripleStrengthMyomerAffectsBV": true, + "TripleStrengthMyomerAffectsBV": true, "Alloc_HD": false, "Alloc_CT": false, "Alloc_Torso": false, @@ -213,7 +213,7 @@ "ReplacesHand": false, "RequiresLowerArm": true, "ReplacesLowerArm": false, - "TripleStrengthMyomerAffectsBV": true, + "TripleStrengthMyomerAffectsBV": true, "Alloc_HD": false, "Alloc_CT": false, "Alloc_Torso": false, @@ -395,7 +395,7 @@ "ReplacesHand": true, "RequiresLowerArm": true, "ReplacesLowerArm": false, - "TripleStrengthMyomerAffectsBV": true, + "TripleStrengthMyomerAffectsBV": true, "Alloc_HD": false, "Alloc_CT": false, "Alloc_Torso": false, @@ -576,7 +576,7 @@ "ReplacesHand": false, "RequiresLowerArm": true, "ReplacesLowerArm": false, - "TripleStrengthMyomerAffectsBV": true, + "TripleStrengthMyomerAffectsBV": true, "Alloc_HD": false, "Alloc_CT": false, "Alloc_Torso": false, @@ -674,7 +674,7 @@ "Alloc_Legs": false, "CanSplit": false, "PowerAmps": false, - "TripleStrengthMyomerAffectsBV": true, + "TripleStrengthMyomerAffectsBV": true, "Availability": { "IS_SL": "X", "IS_SW": "X", From ea740ccc6a255f5ccb7be442c1217f679c4522b2 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Fri, 8 Dec 2023 22:18:50 -0800 Subject: [PATCH 190/199] Fix regression from 1546575 by reverting saving +/- prefix for quirk costs Including the +/- prefix in the saves could result in negative quirks having -- (double -) prefix. If that was saved, then the cost could no longer be parsed as an int, making the unit unloadable. Also add backcompat code to handle already corrupted saves. --- sswlib/src/main/java/components/Quirk.java | 9 ++++++++- sswlib/src/main/java/filehandlers/CVReader.java | 4 +++- sswlib/src/main/java/filehandlers/MechReader.java | 4 +++- sswlib/src/main/java/list/view/tbQuirks.java | 2 +- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/sswlib/src/main/java/components/Quirk.java b/sswlib/src/main/java/components/Quirk.java index 306f2a72..08a92f0e 100644 --- a/sswlib/src/main/java/components/Quirk.java +++ b/sswlib/src/main/java/components/Quirk.java @@ -92,7 +92,14 @@ public String getName() { /** * @return the cost */ - public String getCost() { + public int getCost() { + return cost; + } + + /** + * @return the cost as a string with + or - prefix depending on isPositive() + */ + public String getCostText() { if (isPositive()) { return "+" + cost; } diff --git a/sswlib/src/main/java/filehandlers/CVReader.java b/sswlib/src/main/java/filehandlers/CVReader.java index df626ece..9d13c45b 100644 --- a/sswlib/src/main/java/filehandlers/CVReader.java +++ b/sswlib/src/main/java/filehandlers/CVReader.java @@ -1152,7 +1152,9 @@ private CombatVehicle BuildVehicle( CombatVehicle m, Document d, DataFactory f ) name = items.item(w).getTextContent(); } else if (items.item(w).getNodeName().equals("Cost")) { - cost = Integer.parseInt(items.item(w).getTextContent()); + // Backcompat for bug where quirks were saved with + or - prefixes + String costText = items.item(w).getTextContent().replaceAll( "[-+]", "" ); + cost = Integer.parseInt( costText ); } else if (items.item(w).getNodeName().equals("Description")) { description = items.item(w).getTextContent(); diff --git a/sswlib/src/main/java/filehandlers/MechReader.java b/sswlib/src/main/java/filehandlers/MechReader.java index 4ebcbd81..657b266d 100644 --- a/sswlib/src/main/java/filehandlers/MechReader.java +++ b/sswlib/src/main/java/filehandlers/MechReader.java @@ -1770,7 +1770,9 @@ private Mech BuildMech( Mech m, Document d, DataFactory f ) throws Exception { name = items.item(w).getTextContent(); } else if (items.item(w).getNodeName().equals("Cost")) { - cost = Integer.parseInt(items.item(w).getTextContent()); + // Backcompat for bug where quirks were with + or - prefixes + String costText = items.item(w).getTextContent().replaceAll( "[-+]", "" ); + cost = Integer.parseInt( costText ); } else if (items.item(w).getNodeName().equals("Description")) { description = items.item(w).getTextContent(); diff --git a/sswlib/src/main/java/list/view/tbQuirks.java b/sswlib/src/main/java/list/view/tbQuirks.java index ae6fdf61..1953257c 100644 --- a/sswlib/src/main/java/list/view/tbQuirks.java +++ b/sswlib/src/main/java/list/view/tbQuirks.java @@ -65,7 +65,7 @@ public Object getValueAt(int rowIndex, int columnIndex) { switch (columnIndex) { case 0: - return ((Quirk)quirklist.get(rowIndex)).getCost(); + return ((Quirk)quirklist.get(rowIndex)).getCostText(); case 1: return ((Quirk)quirklist.get(rowIndex)).getName(); } From 4ea5fbb2e2c2f994617141f6eae48d1ade390279 Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sun, 10 Dec 2023 13:57:51 -0800 Subject: [PATCH 191/199] Treat 0 year as unspecified, factor out era-year logic out, ensure unspecified flag is propagated This fixes more edge cases where "all era" CVs can still inadvertently have 2x armor cost --- saw/src/main/java/saw/gui/frmVee.java | 173 +++-------------- saw/src/main/java/saw/gui/frmVeeWide.java | 182 +++--------------- ssw/src/main/java/ssw/gui/frmMain.java | 168 +++------------- ssw/src/main/java/ssw/gui/frmMainWide.java | 168 +++------------- sswlib/src/main/java/common/CommonTools.java | 50 +++++ .../main/java/components/BipedLoadout.java | 2 +- .../src/main/java/components/CVLoadout.java | 2 +- .../main/java/components/CombatVehicle.java | 15 +- sswlib/src/main/java/components/Mech.java | 2 + .../src/main/java/components/QuadLoadout.java | 2 +- .../main/java/components/TripodLoadout.java | 2 +- 11 files changed, 167 insertions(+), 599 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 5322b322..20a5ee96 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -4551,29 +4551,19 @@ private void RecalcArmorLocations() { private void SolidifyVehicle() { // sets some of the basic vehicle information normally kept in the GUI and // prepares the vehicle for saving to file - int year = 0; + int year; CurVee.setName( txtVehicleName.getText() ); CurVee.setModel( txtModel.getText() ); if( txtProdYear.getText().isEmpty() ) { - switch( cmbEra.getSelectedIndex() ) { - case AvailableCode.ERA_STAR_LEAGUE: - CurVee.setYear( 2750, false ); - break; - case AvailableCode.ERA_SUCCESSION: - CurVee.setYear( 3025, false ); - break; - case AvailableCode.ERA_CLAN_INVASION: - CurVee.setYear( 3070, false ); - break; - case AvailableCode.ERA_DARK_AGES: - CurVee.setYear( 3132, false ); - break; + year = CommonTools.GetEraDefaultYear( cmbEra.getSelectedIndex() ); + if( year != 0 ) { + CurVee.SetYear( year, false ); + txtProdYear.setText( "" + year ); } - txtProdYear.setText(""+CurVee.getYear()); } else { try{ year = Integer.parseInt( txtProdYear.getText() ) ; - CurVee.setYear( year, true ); + CurVee.SetYear( year, true ); } catch( NumberFormatException n ) { Media.Messager( this, "The production year is not a number." ); tbpMainTabPane.setSelectedComponent( pnlBasicSetup ); @@ -5789,23 +5779,7 @@ private void SaveOmniFluffInfo() { CurVee.SetYear( Integer.parseInt( txtProdYear.getText() ), chkYearRestrict.isSelected() ); } catch( Exception e ) { // nothing really to be done, set it to a default. - switch( cmbEra.getSelectedIndex() ) { - case AvailableCode.ERA_STAR_LEAGUE: - CurVee.SetYear( 2750, false ); - break; - case AvailableCode.ERA_SUCCESSION: - CurVee.SetYear( 3025, false ); - break; - case AvailableCode.ERA_CLAN_INVASION: - CurVee.SetYear( 3070, false ); - break; - case AvailableCode.ERA_DARK_AGES: - CurVee.SetYear( 3132, false ); - break; - case AvailableCode.ERA_ALL: - CurVee.SetYear( 0, false ); - break; - } + CurVee.SetYear( CommonTools.GetEraDefaultYear( cmbEra.getSelectedIndex() ), false ); } } } @@ -5815,7 +5789,7 @@ private void LoadOmniFluffInfo() { cmbEra.setSelectedIndex( CurVee.GetEra() ); cmbProductionEra.setSelectedIndex( CurVee.GetProductionEra() ); txtSource.setText( CurVee.getSource() ); - txtProdYear.setText( "" + CurVee.GetYear() ); + txtProdYear.setText( CurVee.YearWasSpecified() ? "" + CurVee.GetYear() : "" ); BuildTechBaseSelector(); } @@ -6151,23 +6125,7 @@ private void GetNewVee() { CurVee.SetEra( cmbEra.getSelectedIndex() ); CurVee.SetProductionEra( cmbProductionEra.getSelectedIndex() ); CurVee.SetRulesLevel( cmbRulesLevel.getSelectedIndex() ); - switch( CurVee.GetEra() ) { - case AvailableCode.ERA_STAR_LEAGUE: - CurVee.SetYear( 2750, false ); - break; - case AvailableCode.ERA_SUCCESSION: - CurVee.SetYear( 3025, false ); - break; - case AvailableCode.ERA_CLAN_INVASION: - CurVee.SetYear( 3070, false ); - break; - case AvailableCode.ERA_DARK_AGES: - CurVee.SetYear( 3130, false ); - break; - case AvailableCode.ERA_ALL: - CurVee.SetYear( 0, false ); - break; - } + CurVee.SetYear( CommonTools.GetEraDefaultYear( CurVee.GetEra() ), false ); cmbTechBase.setSelectedItem( Prefs.get( "NewVee_Techbase", "Inner Sphere" ) ); switch( cmbTechBase.getSelectedIndex() ) { @@ -6670,44 +6628,15 @@ private void cmbEraActionPerformed(java.awt.event.ActionEvent evt) { int tbsave = cmbTechBase.getSelectedIndex(); // change the year range and tech base options - switch( cmbEra.getSelectedIndex() ) { - case AvailableCode.ERA_STAR_LEAGUE: - lblEraYears.setText( "2443 ~ 2800" ); - txtProdYear.setText( "" ); - CurVee.SetEra( AvailableCode.ERA_STAR_LEAGUE ); - CurVee.SetYear( 2750, false ); - if( ! CurVee.IsOmni() ) { chkYearRestrict.setEnabled( true ); } - break; - case AvailableCode.ERA_SUCCESSION: - lblEraYears.setText( "2801 ~ 3050" ); - txtProdYear.setText( "" ); - CurVee.SetEra( AvailableCode.ERA_SUCCESSION ); - CurVee.SetYear( 3025, false ); - if( ! CurVee.IsOmni() ) { chkYearRestrict.setEnabled( true ); } - break; - case AvailableCode.ERA_CLAN_INVASION: - lblEraYears.setText( "3051 ~ 3131" ); - txtProdYear.setText( "" ); - CurVee.SetEra( AvailableCode.ERA_CLAN_INVASION ); - CurVee.SetYear( 3075, false ); - if( ! CurVee.IsOmni() ) { chkYearRestrict.setEnabled( true ); } - break; - case AvailableCode.ERA_DARK_AGES: - lblEraYears.setText( "3132 on" ); - txtProdYear.setText( "" ); - CurVee.SetEra( AvailableCode.ERA_DARK_AGES ); - CurVee.SetYear( 3132, false ); - if( ! CurVee.IsOmni() ) { chkYearRestrict.setEnabled( true ); } - break; - case AvailableCode.ERA_ALL: - lblEraYears.setText( "Any" ); - txtProdYear.setText( "" ); - CurVee.SetEra( AvailableCode.ERA_ALL ); - CurVee.SetYear( 0, false ); - chkYearRestrict.setEnabled( false ); - break; + lblEraYears.setText( CommonTools.GetEraYearRange( cmbEra.getSelectedIndex() ) ); + txtProdYear.setText( "" ); + CurVee.SetEra( cmbEra.getSelectedIndex() ); + CurVee.SetYear( CommonTools.GetEraDefaultYear( cmbEra.getSelectedIndex() ), false ); + if( cmbEra.getSelectedIndex() != AvailableCode.ERA_ALL ) { + if( ! CurVee.IsOmni() ) { chkYearRestrict.setEnabled( true ); } + } else { + chkYearRestrict.setEnabled( false ); } - CurVee.SetChanged(true); if( CurVee.IsOmni() ) { RefreshEquipment(); @@ -7951,7 +7880,7 @@ public void LoadVehicleIntoGUI() { UnlockGUIFromOmni(); chkYearRestrict.setSelected( CurVee.IsYearRestricted() ); - txtProdYear.setText( "" + CurVee.GetYear() ); + txtProdYear.setText( CurVee.YearWasSpecified() ? "" + CurVee.GetYear() : "" ); cmbEra.setEnabled( true ); cmbTechBase.setEnabled( true ); txtProdYear.setEnabled( true ); @@ -8552,23 +8481,7 @@ private void chkYearRestrictActionPerformed(java.awt.event.ActionEvent evt) { cmbTechBase.setEnabled( true ); txtProdYear.setEnabled( true ); CurVee.SetYearRestricted( false ); - switch( cmbEra.getSelectedIndex() ) { - case AvailableCode.ERA_STAR_LEAGUE: - CurVee.SetYear( 2750, false ); - break; - case AvailableCode.ERA_SUCCESSION: - CurVee.SetYear( 3025, false ); - break; - case AvailableCode.ERA_CLAN_INVASION: - CurVee.SetYear( 3070, false ); - break; - case AvailableCode.ERA_DARK_AGES: - CurVee.SetYear( 3132, false ); - break; - case AvailableCode.ERA_ALL: - CurVee.SetYear( 0, false ); - break; - } + CurVee.SetYear( CommonTools.GetEraDefaultYear( cmbEra.getSelectedIndex() ), false ); } else { // ensure we have a good year. try{ @@ -8581,47 +8494,15 @@ private void chkYearRestrictActionPerformed(java.awt.event.ActionEvent evt) { } // ensure the year is between the era years. - switch ( cmbEra.getSelectedIndex() ) { - case AvailableCode.ERA_STAR_LEAGUE: - // Star League era - if( year < 2443 || year > 2800 ) { - Media.Messager( this, "The year does not fall within this era." ); - txtProdYear.setText( "" ); - chkYearRestrict.setSelected( false ); - return; - } - break; - case AvailableCode.ERA_SUCCESSION: - // Succession Wars era - if( year < 2801 || year > 3050 ) { - Media.Messager( this, "The year does not fall within this era." ); - txtProdYear.setText( "" ); - chkYearRestrict.setSelected( false ); - return; - } - break; - case AvailableCode.ERA_CLAN_INVASION: - // Clan Invasion Era - if( year < 3051 || year > 3131 ) { - Media.Messager( this, "The year does not fall within this era." ); - txtProdYear.setText( "" ); - chkYearRestrict.setSelected( false ); - return; - } - break; - case AvailableCode.ERA_DARK_AGES: - // Clan Invasion Era - if( year < 3132 ) { - Media.Messager( this, "The year does not fall within this era." ); - txtProdYear.setText( "" ); - chkYearRestrict.setSelected( false ); - return; - } - break; - case AvailableCode.ERA_ALL: - // all era + if( cmbEra.getSelectedIndex() != AvailableCode.ERA_ALL ) { + if( ! CommonTools.IsYearInEra( year, cmbEra.getSelectedIndex() ) ) { + Media.Messager( this, "The year does not fall within this era." ); + txtProdYear.setText( "" ); chkYearRestrict.setSelected( false ); - chkYearRestrict.setEnabled( false ); + } + } else { + chkYearRestrict.setSelected( false ); + chkYearRestrict.setEnabled( false ); } // we know we have a good year, lock it in. diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index c59c8062..b2d60420 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -2872,25 +2872,15 @@ private void SolidifyVehicle() { CurVee.setName( txtVehicleName.getText() ); CurVee.setModel( txtModel.getText() ); if( txtProdYear.getText().isEmpty() ) { - switch( cmbEra.getSelectedIndex() ) { - case AvailableCode.ERA_STAR_LEAGUE: - CurVee.setYear( 2750, false ); - break; - case AvailableCode.ERA_SUCCESSION: - CurVee.setYear( 3025, false ); - break; - case AvailableCode.ERA_CLAN_INVASION: - CurVee.setYear( 3070, false ); - break; - case AvailableCode.ERA_DARK_AGES: - CurVee.setYear( 3132, false ); - break; + year = CommonTools.GetEraDefaultYear( cmbEra.getSelectedIndex() ); + if( year != 0 ) { + CurVee.SetYear( year, false ); + txtProdYear.setText( "" + year ); } - txtProdYear.setText(""+CurVee.getYear()); } else { try{ year = Integer.parseInt( txtProdYear.getText() ) ; - CurVee.setYear( year, true ); + CurVee.SetYear( year, true ); } catch( NumberFormatException n ) { Media.Messager( this, "The production year is not a number." ); tbpMainTabPane.setSelectedComponent( pnlBasicSetup ); @@ -3521,23 +3511,7 @@ private void SaveOmniFluffInfo() { CurVee.SetYear( Integer.parseInt( txtProdYear.getText() ), chkYearRestrict.isSelected() ); } catch( Exception e ) { // nothing really to be done, set it to a default. - switch( cmbEra.getSelectedIndex() ) { - case AvailableCode.ERA_STAR_LEAGUE: - CurVee.SetYear( 2750, false ); - break; - case AvailableCode.ERA_SUCCESSION: - CurVee.SetYear( 3025, false ); - break; - case AvailableCode.ERA_CLAN_INVASION: - CurVee.SetYear( 3070, false ); - break; - case AvailableCode.ERA_DARK_AGES: - CurVee.SetYear( 3132, false ); - break; - case AvailableCode.ERA_ALL: - CurVee.SetYear( 0, false ); - break; - } + CurVee.SetYear( CommonTools.GetEraDefaultYear( cmbEra.getSelectedIndex() ), false ); } } } @@ -3547,7 +3521,7 @@ private void LoadOmniFluffInfo() { cmbEra.setSelectedIndex( CurVee.GetEra() ); cmbProductionEra.setSelectedIndex( CurVee.GetProductionEra() ); txtSource.setText( CurVee.getSource() ); - txtProdYear.setText( "" + CurVee.GetYear() ); + txtProdYear.setText( CurVee.YearWasSpecified() ? "" + CurVee.GetYear() : "" ); BuildTechBaseSelector(); } @@ -3821,23 +3795,7 @@ private void GetNewVee() { CurVee.SetEra( cmbEra.getSelectedIndex() ); CurVee.SetProductionEra( cmbProductionEra.getSelectedIndex() ); CurVee.SetRulesLevel( cmbRulesLevel.getSelectedIndex() ); - switch( CurVee.GetEra() ) { - case AvailableCode.ERA_STAR_LEAGUE: - CurVee.SetYear( 2750, false ); - break; - case AvailableCode.ERA_SUCCESSION: - CurVee.SetYear( 3025, false ); - break; - case AvailableCode.ERA_CLAN_INVASION: - CurVee.SetYear( 3070, false ); - break; - case AvailableCode.ERA_DARK_AGES: - CurVee.SetYear( 3130, false ); - break; - case AvailableCode.ERA_ALL: - CurVee.SetYear( 0, false ); - break; - } + CurVee.SetYear( CommonTools.GetEraDefaultYear( CurVee.GetEra() ), false ); cmbTechBase.setSelectedItem( Prefs.get( "NewVee_Techbase", "Inner Sphere" ) ); switch( cmbTechBase.getSelectedIndex() ) { @@ -4547,7 +4505,7 @@ public void LoadVehicleIntoGUI() { UnlockGUIFromOmni(); chkYearRestrict.setSelected( CurVee.IsYearRestricted() ); - txtProdYear.setText( "" + CurVee.GetYear() ); + txtProdYear.setText( CurVee.YearWasSpecified() ? "" + CurVee.GetYear() : "" ); cmbEra.setEnabled( true ); cmbTechBase.setEnabled( true ); txtProdYear.setEnabled( true ); @@ -6943,76 +6901,28 @@ private void chkYearRestrictActionPerformed(java.awt.event.ActionEvent evt) { cmbTechBase.setEnabled(true); txtProdYear.setEnabled(true); CurVee.SetYearRestricted(false); - switch (cmbEra.getSelectedIndex()) { - case AvailableCode.ERA_STAR_LEAGUE: - CurVee.SetYear(2750, false); - break; - case AvailableCode.ERA_SUCCESSION: - CurVee.SetYear(3025, false); - break; - case AvailableCode.ERA_CLAN_INVASION: - CurVee.SetYear(3070, false); - break; - case AvailableCode.ERA_DARK_AGES: - CurVee.SetYear(3132, false); - break; - case AvailableCode.ERA_ALL: - CurVee.SetYear(0, false); - break; - } + CurVee.SetYear( CommonTools.GetEraDefaultYear( cmbEra.getSelectedIndex() ), false ); } else { // ensure we have a good year. try { year = Integer.parseInt(txtProdYear.getText()); } catch (NumberFormatException n) { Media.Messager(this, "The production year is not a number."); - txtProdYear.setText(""); + txtProdYear.setText( "" ); chkYearRestrict.setSelected(false); return; } // ensure the year is between the era years. - switch (cmbEra.getSelectedIndex()) { - case AvailableCode.ERA_STAR_LEAGUE: - // Star League era - if (year < 2443 || year > 2800) { - Media.Messager(this, "The year does not fall within this era."); - txtProdYear.setText(""); - chkYearRestrict.setSelected(false); - return; - } - break; - case AvailableCode.ERA_SUCCESSION: - // Succession Wars era - if (year < 2801 || year > 3050) { - Media.Messager(this, "The year does not fall within this era."); - txtProdYear.setText(""); - chkYearRestrict.setSelected(false); - return; - } - break; - case AvailableCode.ERA_CLAN_INVASION: - // Clan Invasion Era - if (year < 3051 || year > 3131) { - Media.Messager(this, "The year does not fall within this era."); - txtProdYear.setText(""); - chkYearRestrict.setSelected(false); - return; - } - break; - case AvailableCode.ERA_DARK_AGES: - // Clan Invasion Era - if (year < 3132) { - Media.Messager(this, "The year does not fall within this era."); - txtProdYear.setText(""); - chkYearRestrict.setSelected(false); - return; - } - break; - case AvailableCode.ERA_ALL: - // all era - chkYearRestrict.setSelected(false); - chkYearRestrict.setEnabled(false); + if( cmbEra.getSelectedIndex() != AvailableCode.ERA_ALL ) { + if( ! CommonTools.IsYearInEra( year, cmbEra.getSelectedIndex() ) ) { + Media.Messager( this, "The year does not fall within this era." ); + txtProdYear.setText( "" ); + chkYearRestrict.setSelected( false ); + } + } else { + chkYearRestrict.setSelected( false ); + chkYearRestrict.setEnabled( false ); } // we know we have a good year, lock it in. @@ -7147,50 +7057,14 @@ private void cmbEraActionPerformed(java.awt.event.ActionEvent evt) { int tbsave = cmbTechBase.getSelectedIndex(); // change the year range and tech base options - switch (cmbEra.getSelectedIndex()) { - case AvailableCode.ERA_STAR_LEAGUE: - lblEraYears.setText("2443 ~ 2800"); - txtProdYear.setText(""); - CurVee.SetEra(AvailableCode.ERA_STAR_LEAGUE); - CurVee.SetYear(2750, false); - if (!CurVee.IsOmni()) { - chkYearRestrict.setEnabled(true); - } - break; - case AvailableCode.ERA_SUCCESSION: - lblEraYears.setText("2801 ~ 3050"); - txtProdYear.setText(""); - CurVee.SetEra(AvailableCode.ERA_SUCCESSION); - CurVee.SetYear(3025, false); - if (!CurVee.IsOmni()) { - chkYearRestrict.setEnabled(true); - } - break; - case AvailableCode.ERA_CLAN_INVASION: - lblEraYears.setText("3051 ~ 3131"); - txtProdYear.setText(""); - CurVee.SetEra(AvailableCode.ERA_CLAN_INVASION); - CurVee.SetYear(3075, false); - if (!CurVee.IsOmni()) { - chkYearRestrict.setEnabled(true); - } - break; - case AvailableCode.ERA_DARK_AGES: - lblEraYears.setText("3132 on"); - txtProdYear.setText(""); - CurVee.SetEra(AvailableCode.ERA_DARK_AGES); - CurVee.SetYear(3132, false); - if (!CurVee.IsOmni()) { - chkYearRestrict.setEnabled(true); - } - break; - case AvailableCode.ERA_ALL: - lblEraYears.setText("Any"); - txtProdYear.setText(""); - CurVee.SetEra(AvailableCode.ERA_ALL); - CurVee.SetYear(0, false); - chkYearRestrict.setEnabled(false); - break; + lblEraYears.setText( CommonTools.GetEraYearRange( cmbEra.getSelectedIndex() ) ); + txtProdYear.setText( "" ); + CurVee.SetEra( cmbEra.getSelectedIndex() ); + CurVee.SetYear( CommonTools.GetEraDefaultYear( cmbEra.getSelectedIndex() ), false ); + if( cmbEra.getSelectedIndex() != AvailableCode.ERA_ALL ) { + if( ! CurVee.IsOmni() ) { chkYearRestrict.setEnabled( true ); } + } else { + chkYearRestrict.setEnabled( false ); } if (CurVee.IsOmni()) { diff --git a/ssw/src/main/java/ssw/gui/frmMain.java b/ssw/src/main/java/ssw/gui/frmMain.java index aa61419f..655f140c 100644 --- a/ssw/src/main/java/ssw/gui/frmMain.java +++ b/ssw/src/main/java/ssw/gui/frmMain.java @@ -2031,23 +2031,7 @@ private void SaveOmniFluffInfo() { CurMech.SetYear( Integer.parseInt( txtProdYear.getText() ), chkYearRestrict.isSelected() ); } catch( Exception e ) { // nothing really to be done, set it to a default. - switch( cmbMechEra.getSelectedIndex() ) { - case AvailableCode.ERA_STAR_LEAGUE: - CurMech.SetYear( 2750, false ); - break; - case AvailableCode.ERA_SUCCESSION: - CurMech.SetYear( 3025, false ); - break; - case AvailableCode.ERA_CLAN_INVASION: - CurMech.SetYear( 3070, false ); - break; - case AvailableCode.ERA_DARK_AGES: - CurMech.SetYear( 3132, false ); - break; - case AvailableCode.ERA_ALL: - CurMech.SetYear( 0, false ); - break; - } + CurMech.SetYear( CommonTools.GetEraDefaultYear( cmbMechEra.getSelectedIndex() ), false ); } } } @@ -2057,7 +2041,7 @@ private void LoadOmniFluffInfo() { cmbMechEra.setSelectedIndex( CurMech.GetEra() ); cmbProductionEra.setSelectedIndex( CurMech.GetProductionEra() ); txtSource.setText( CurMech.GetSource() ); - txtProdYear.setText( "" + CurMech.GetYear() ); + txtProdYear.setText( CurMech.YearWasSpecified() ? "" + CurMech.GetYear() : "" ); BuildTechBaseSelector(); } @@ -2646,23 +2630,7 @@ private void GetNewMech() { CurMech.SetEra( cmbMechEra.getSelectedIndex() ); CurMech.SetProductionEra( cmbProductionEra.getSelectedIndex() ); CurMech.SetRulesLevel( cmbRulesLevel.getSelectedIndex() ); - switch( CurMech.GetEra() ) { - case AvailableCode.ERA_STAR_LEAGUE: - CurMech.SetYear( 2750, false ); - break; - case AvailableCode.ERA_SUCCESSION: - CurMech.SetYear( 3025, false ); - break; - case AvailableCode.ERA_CLAN_INVASION: - CurMech.SetYear( 3070, false ); - break; - case AvailableCode.ERA_DARK_AGES: - CurMech.SetYear( 3130, false ); - break; - case AvailableCode.ERA_ALL: - CurMech.SetYear( 0, false ); - break; - } + CurMech.SetYear( CommonTools.GetEraDefaultYear( CurMech.GetEra() ), false ); BuildTechBaseSelector(); cmbTechBase.setSelectedItem( Prefs.get( "NewMech_Techbase", "Inner Sphere" ) ); switch( cmbTechBase.getSelectedIndex() ) { @@ -3161,23 +3129,14 @@ private void RemoveItemCritTab() { private void SolidifyMech() { // sets some of the basic mech information normally kept in the BFB.GUI and // prepares the mech for saving to file - int year = 0; + int year; CurMech.SetName( txtMechName.getText() ); CurMech.SetModel( txtMechModel.getText() ); if( txtProdYear.getText().isEmpty() ) { - switch( cmbMechEra.getSelectedIndex() ) { - case AvailableCode.ERA_STAR_LEAGUE: - CurMech.SetYear( 2750, false ); - break; - case AvailableCode.ERA_SUCCESSION: - CurMech.SetYear( 3025, false ); - break; - case AvailableCode.ERA_CLAN_INVASION: - CurMech.SetYear( 3070, false ); - break; - case AvailableCode.ERA_DARK_AGES: - CurMech.SetYear( 3132, false ); - break; + year = CommonTools.GetEraDefaultYear( cmbMechEra.getSelectedIndex() ); + if( year != 0 ) { + CurMech.SetYear( year, false ); + txtProdYear.setText( "" + year ); } } else { try{ @@ -10449,42 +10408,13 @@ private void cmbMechEraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FI int tbsave = cmbTechBase.getSelectedIndex(); // change the year range and tech base options - switch( cmbMechEra.getSelectedIndex() ) { - case AvailableCode.ERA_STAR_LEAGUE: - lblEraYears.setText( "2443 ~ 2800" ); - txtProdYear.setText( "" ); - CurMech.SetEra( AvailableCode.ERA_STAR_LEAGUE ); - CurMech.SetYear( 2750, false ); - if( ! CurMech.IsOmnimech() ) { chkYearRestrict.setEnabled( true ); } - break; - case AvailableCode.ERA_SUCCESSION: - lblEraYears.setText( "2801 ~ 3050" ); - txtProdYear.setText( "" ); - CurMech.SetEra( AvailableCode.ERA_SUCCESSION ); - CurMech.SetYear( 3025, false ); - if( ! CurMech.IsOmnimech() ) { chkYearRestrict.setEnabled( true ); } - break; - case AvailableCode.ERA_CLAN_INVASION: - lblEraYears.setText( "3051 ~ 3131" ); - txtProdYear.setText( "" ); - CurMech.SetEra( AvailableCode.ERA_CLAN_INVASION ); - CurMech.SetYear( 3075, false ); - if( ! CurMech.IsOmnimech() ) { chkYearRestrict.setEnabled( true ); } - break; - case AvailableCode.ERA_DARK_AGES: - lblEraYears.setText( "3132 on" ); - txtProdYear.setText( "" ); - CurMech.SetEra( AvailableCode.ERA_DARK_AGES ); - CurMech.SetYear( 3132, false ); - if( ! CurMech.IsOmnimech() ) { chkYearRestrict.setEnabled( true ); } - break; - case AvailableCode.ERA_ALL: - lblEraYears.setText( "Any" ); - txtProdYear.setText( "" ); - CurMech.SetEra( AvailableCode.ERA_ALL ); - CurMech.SetYear( 0, false ); - chkYearRestrict.setEnabled( false ); - break; + lblEraYears.setText( CommonTools.GetEraYearRange( cmbMechEra.getSelectedIndex() ) ); + txtProdYear.setText( "" ); + CurMech.SetEra( cmbMechEra.getSelectedIndex() ); + if( cmbMechEra.getSelectedIndex() != AvailableCode.ERA_ALL ) { + if( ! CurMech.IsOmnimech() ) { chkYearRestrict.setEnabled( true ); } + } else { + chkYearRestrict.setEnabled( false ); } if( CurMech.IsOmnimech() ) { @@ -12270,23 +12200,7 @@ private void chkYearRestrictActionPerformed(java.awt.event.ActionEvent evt) {//G cmbTechBase.setEnabled( true ); txtProdYear.setEnabled( true ); CurMech.SetYearRestricted( false ); - switch( cmbMechEra.getSelectedIndex() ) { - case AvailableCode.ERA_STAR_LEAGUE: - CurMech.SetYear( 2750, false ); - break; - case AvailableCode.ERA_SUCCESSION: - CurMech.SetYear( 3025, false ); - break; - case AvailableCode.ERA_CLAN_INVASION: - CurMech.SetYear( 3070, false ); - break; - case AvailableCode.ERA_DARK_AGES: - CurMech.SetYear( 3132, false ); - break; - case AvailableCode.ERA_ALL: - CurMech.SetYear( 0, false ); - break; - } + CurMech.SetYear( CommonTools.GetEraDefaultYear( cmbMechEra.getSelectedIndex() ), false ); } else { // ensure we have a good year. try{ @@ -12299,47 +12213,15 @@ private void chkYearRestrictActionPerformed(java.awt.event.ActionEvent evt) {//G } // ensure the year is between the era years. - switch ( cmbMechEra.getSelectedIndex() ) { - case AvailableCode.ERA_STAR_LEAGUE: - // Star League era - if( year < 2443 || year > 2800 ) { - Media.Messager( this, "The year does not fall within this era." ); - txtProdYear.setText( "" ); - chkYearRestrict.setSelected( false ); - return; - } - break; - case AvailableCode.ERA_SUCCESSION: - // Succession Wars era - if( year < 2801 || year > 3050 ) { - Media.Messager( this, "The year does not fall within this era." ); - txtProdYear.setText( "" ); - chkYearRestrict.setSelected( false ); - return; - } - break; - case AvailableCode.ERA_CLAN_INVASION: - // Clan Invasion Era - if( year < 3051 || year > 3131 ) { - Media.Messager( this, "The year does not fall within this era." ); - txtProdYear.setText( "" ); - chkYearRestrict.setSelected( false ); - return; - } - break; - case AvailableCode.ERA_DARK_AGES: - // Clan Invasion Era - if( year < 3132 ) { - Media.Messager( this, "The year does not fall within this era." ); - txtProdYear.setText( "" ); - chkYearRestrict.setSelected( false ); - return; - } - break; - case AvailableCode.ERA_ALL: - // all era + if( cmbMechEra.getSelectedIndex() != AvailableCode.ERA_ALL ) { + if( ! CommonTools.IsYearInEra( year, cmbMechEra.getSelectedIndex() ) ) { + Media.Messager( this, "The year does not fall within this era." ); + txtProdYear.setText( "" ); chkYearRestrict.setSelected( false ); - chkYearRestrict.setEnabled( false ); + } + } else { + chkYearRestrict.setSelected( false ); + chkYearRestrict.setEnabled( false ); } // we know we have a good year, lock it in. @@ -13226,7 +13108,7 @@ public void LoadMechIntoGUI() { } } chkYearRestrict.setSelected( CurMech.IsYearRestricted() ); - txtProdYear.setText( "" + CurMech.GetYear() ); + txtProdYear.setText( CurMech.YearWasSpecified() ? "" + CurMech.GetYear() : "" ); cmbMechEra.setEnabled( true ); cmbTechBase.setEnabled( true ); txtProdYear.setEnabled( true ); diff --git a/ssw/src/main/java/ssw/gui/frmMainWide.java b/ssw/src/main/java/ssw/gui/frmMainWide.java index dea12a8b..855846a7 100644 --- a/ssw/src/main/java/ssw/gui/frmMainWide.java +++ b/ssw/src/main/java/ssw/gui/frmMainWide.java @@ -2025,23 +2025,7 @@ private void SaveOmniFluffInfo() { CurMech.SetYear( Integer.parseInt( txtProdYear.getText() ), chkYearRestrict.isSelected() ); } catch( Exception e ) { // nothing really to be done, set it to a default. - switch( cmbMechEra.getSelectedIndex() ) { - case AvailableCode.ERA_STAR_LEAGUE: - CurMech.SetYear( 2750, false ); - break; - case AvailableCode.ERA_SUCCESSION: - CurMech.SetYear( 3025, false ); - break; - case AvailableCode.ERA_CLAN_INVASION: - CurMech.SetYear( 3070, false ); - break; - case AvailableCode.ERA_DARK_AGES: - CurMech.SetYear( 3132, false ); - break; - case AvailableCode.ERA_ALL: - CurMech.SetYear( 0, false ); - break; - } + CurMech.SetYear( CommonTools.GetEraDefaultYear( cmbMechEra.getSelectedIndex() ), false ); } } } @@ -2051,7 +2035,7 @@ private void LoadOmniFluffInfo() { cmbMechEra.setSelectedIndex( CurMech.GetEra() ); cmbProductionEra.setSelectedIndex( CurMech.GetProductionEra() ); txtSource.setText( CurMech.GetSource() ); - txtProdYear.setText( "" + CurMech.GetYear() ); + txtProdYear.setText( CurMech.YearWasSpecified() ? "" + CurMech.GetYear() : "" ); BuildTechBaseSelector(); } @@ -2641,23 +2625,7 @@ private void GetNewMech() { CurMech.SetEra( cmbMechEra.getSelectedIndex() ); CurMech.SetProductionEra( cmbProductionEra.getSelectedIndex() ); CurMech.SetRulesLevel( cmbRulesLevel.getSelectedIndex() ); - switch( CurMech.GetEra() ) { - case AvailableCode.ERA_STAR_LEAGUE: - CurMech.SetYear( 2750, false ); - break; - case AvailableCode.ERA_SUCCESSION: - CurMech.SetYear( 3025, false ); - break; - case AvailableCode.ERA_CLAN_INVASION: - CurMech.SetYear( 3070, false ); - break; - case AvailableCode.ERA_DARK_AGES: - CurMech.SetYear( 3130, false ); - break; - case AvailableCode.ERA_ALL: - CurMech.SetYear( 0, false ); - break; - } + CurMech.SetYear( CommonTools.GetEraDefaultYear( CurMech.GetEra() ), false ); BuildTechBaseSelector(); cmbTechBase.setSelectedItem( Prefs.get( "NewMech_Techbase", "Inner Sphere" ) ); switch( cmbTechBase.getSelectedIndex() ) { @@ -3110,23 +3078,14 @@ private void RemoveItemCritTab() { private void SolidifyMech() { // sets some of the basic mech information normally kept in the BFB.GUI and // prepares the mech for saving to file - int year = 0; + int year; CurMech.SetName( txtMechName.getText() ); CurMech.SetModel( txtMechModel.getText() ); if( txtProdYear.getText().isEmpty() ) { - switch( cmbMechEra.getSelectedIndex() ) { - case AvailableCode.ERA_STAR_LEAGUE: - CurMech.SetYear( 2750, false ); - break; - case AvailableCode.ERA_SUCCESSION: - CurMech.SetYear( 3025, false ); - break; - case AvailableCode.ERA_CLAN_INVASION: - CurMech.SetYear( 3070, false ); - break; - case AvailableCode.ERA_DARK_AGES: - CurMech.SetYear( 3132, false ); - break; + year = CommonTools.GetEraDefaultYear( cmbMechEra.getSelectedIndex() ); + if( year != 0 ) { + CurMech.SetYear( year, false ); + txtProdYear.setText( "" + year ); } } else { try{ @@ -10553,7 +10512,7 @@ public void LoadMechIntoGUI() { } } chkYearRestrict.setSelected( CurMech.IsYearRestricted() ); - txtProdYear.setText( "" + CurMech.GetYear() ); + txtProdYear.setText( CurMech.YearWasSpecified() ? "" + CurMech.GetYear() : "" ); cmbMechEra.setEnabled( true ); cmbProductionEra.setEnabled( true ); cmbTechBase.setEnabled( true ); @@ -14167,23 +14126,7 @@ private void chkYearRestrictActionPerformed(java.awt.event.ActionEvent evt) {//G cmbTechBase.setEnabled( true ); txtProdYear.setEnabled( true ); CurMech.SetYearRestricted( false ); - switch( cmbMechEra.getSelectedIndex() ) { - case AvailableCode.ERA_STAR_LEAGUE: - CurMech.SetYear( 2750, false ); - break; - case AvailableCode.ERA_SUCCESSION: - CurMech.SetYear( 3025, false ); - break; - case AvailableCode.ERA_CLAN_INVASION: - CurMech.SetYear( 3070, false ); - break; - case AvailableCode.ERA_DARK_AGES: - CurMech.SetYear( 3132, false ); - break; - case AvailableCode.ERA_ALL: - CurMech.SetYear( 0, false ); - break; - } + CurMech.SetYear( CommonTools.GetEraDefaultYear( cmbMechEra.getSelectedIndex() ), false ); } else { // ensure we have a good year. try{ @@ -14196,47 +14139,15 @@ private void chkYearRestrictActionPerformed(java.awt.event.ActionEvent evt) {//G } // ensure the year is between the era years. - switch ( cmbMechEra.getSelectedIndex() ) { - case AvailableCode.ERA_STAR_LEAGUE: - // Star League era - if( year < 2443 || year > 2800 ) { - Media.Messager( this, "The year does not fall within this era." ); - txtProdYear.setText( "" ); - chkYearRestrict.setSelected( false ); - return; - } - break; - case AvailableCode.ERA_SUCCESSION: - // Succession Wars era - if( year < 2801 || year > 3050 ) { - Media.Messager( this, "The year does not fall within this era." ); - txtProdYear.setText( "" ); - chkYearRestrict.setSelected( false ); - return; - } - break; - case AvailableCode.ERA_CLAN_INVASION: - // Clan Invasion Era - if( year < 3051 || year > 3131 ) { - Media.Messager( this, "The year does not fall within this era." ); - txtProdYear.setText( "" ); - chkYearRestrict.setSelected( false ); - return; - } - break; - case AvailableCode.ERA_DARK_AGES: - // Clan Invasion Era - if( year < 3132 ) { - Media.Messager( this, "The year does not fall within this era." ); - txtProdYear.setText( "" ); - chkYearRestrict.setSelected( false ); - return; - } - break; - case AvailableCode.ERA_ALL: - // all era + if( cmbMechEra.getSelectedIndex() != AvailableCode.ERA_ALL ) { + if( ! CommonTools.IsYearInEra( year, cmbMechEra.getSelectedIndex() ) ) { + Media.Messager( this, "The year does not fall within this era." ); + txtProdYear.setText( "" ); chkYearRestrict.setSelected( false ); - chkYearRestrict.setEnabled( false ); + } + } else { + chkYearRestrict.setSelected( false ); + chkYearRestrict.setEnabled( false ); } // we know we have a good year, lock it in. @@ -14305,42 +14216,13 @@ private void cmbMechEraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FI int tbsave = cmbTechBase.getSelectedIndex(); // change the year range and tech base options - switch( cmbMechEra.getSelectedIndex() ) { - case AvailableCode.ERA_STAR_LEAGUE: - lblEraYears.setText( "2443 ~ 2800" ); - txtProdYear.setText( "" ); - CurMech.SetEra( AvailableCode.ERA_STAR_LEAGUE ); - CurMech.SetYear( 2750, false ); - if( ! CurMech.IsOmnimech() ) { chkYearRestrict.setEnabled( true ); } - break; - case AvailableCode.ERA_SUCCESSION: - lblEraYears.setText( "2801 ~ 3050" ); - txtProdYear.setText( "" ); - CurMech.SetEra( AvailableCode.ERA_SUCCESSION ); - CurMech.SetYear( 3025, false ); - if( ! CurMech.IsOmnimech() ) { chkYearRestrict.setEnabled( true ); } - break; - case AvailableCode.ERA_CLAN_INVASION: - lblEraYears.setText( "3051 ~ 3131" ); - txtProdYear.setText( "" ); - CurMech.SetEra( AvailableCode.ERA_CLAN_INVASION ); - CurMech.SetYear( 3075, false ); - if( ! CurMech.IsOmnimech() ) { chkYearRestrict.setEnabled( true ); } - break; - case AvailableCode.ERA_DARK_AGES: - lblEraYears.setText( "3132 on" ); - txtProdYear.setText( "" ); - CurMech.SetEra( AvailableCode.ERA_DARK_AGES ); - CurMech.SetYear( 3132, false ); - if( ! CurMech.IsOmnimech() ) { chkYearRestrict.setEnabled( true ); } - break; - case AvailableCode.ERA_ALL: - lblEraYears.setText( "Any" ); - txtProdYear.setText( "" ); - CurMech.SetEra( AvailableCode.ERA_ALL ); - CurMech.SetYear( 0, false ); - chkYearRestrict.setEnabled( false ); - break; + lblEraYears.setText( CommonTools.GetEraYearRange( cmbMechEra.getSelectedIndex() ) ); + txtProdYear.setText( "" ); + CurMech.SetEra( cmbMechEra.getSelectedIndex() ); + if( cmbMechEra.getSelectedIndex() != AvailableCode.ERA_ALL ) { + if( ! CurMech.IsOmnimech() ) { chkYearRestrict.setEnabled( true ); } + } else { + chkYearRestrict.setEnabled( false ); } if( CurMech.IsOmnimech() ) { diff --git a/sswlib/src/main/java/common/CommonTools.java b/sswlib/src/main/java/common/CommonTools.java index fa58ed46..c95f5abb 100644 --- a/sswlib/src/main/java/common/CommonTools.java +++ b/sswlib/src/main/java/common/CommonTools.java @@ -103,6 +103,56 @@ public static String DecodeEra( int era ) { } } + public static int GetEraDefaultYear( int era ) { + switch( era ) { + case AvailableCode.ERA_STAR_LEAGUE: + return 2750; + case AvailableCode.ERA_SUCCESSION: + return 3025; + case AvailableCode.ERA_CLAN_INVASION: + return 3070; + case AvailableCode.ERA_DARK_AGES: + return 3132; + default: + return 0; + } + } + + public static String GetEraYearRange( int era ) { + switch( era ) { + case AvailableCode.ERA_STAR_LEAGUE: + return "2443 ~ 2800"; + case AvailableCode.ERA_SUCCESSION: + return "2801 ~ 3050"; + case AvailableCode.ERA_CLAN_INVASION: + return "3051 ~ 3131"; + case AvailableCode.ERA_DARK_AGES: + return "3132 on"; + default: + return "Any"; + } + } + + public static boolean IsYearInEra( int year, int era ) { + switch ( era ) { + case AvailableCode.ERA_STAR_LEAGUE: + // Star League era + return year >= 2443 && year <= 2800; + case AvailableCode.ERA_SUCCESSION: + // Succession Wars era + return year >= 2801 && year <= 3050; + case AvailableCode.ERA_CLAN_INVASION: + // Clan Invasion Era + return year >= 3051 && year <= 3131; + case AvailableCode.ERA_DARK_AGES: + // Clan Invasion Era + return year >= 3132; + default: + // all era + return true; + } + } + public static String GetRulesLevelString( int level ) { switch( level ) { case AvailableCode.RULES_INTRODUCTORY: diff --git a/sswlib/src/main/java/components/BipedLoadout.java b/sswlib/src/main/java/components/BipedLoadout.java index 1e184124..58a39b8a 100644 --- a/sswlib/src/main/java/components/BipedLoadout.java +++ b/sswlib/src/main/java/components/BipedLoadout.java @@ -3628,7 +3628,7 @@ public ifMechLoadout Clone() { clone.SetRulesLevel( RulesLevel ); clone.SetTechBase( TechBase ); clone.SetEra( Era ); - clone.SetYear( Year, false ); + clone.SetYear( Year, YearSpecified ); clone.SetHDCrits( HDCrits.clone() ); clone.SetCTCrits( CTCrits.clone() ); clone.SetLTCrits( LTCrits.clone() ); diff --git a/sswlib/src/main/java/components/CVLoadout.java b/sswlib/src/main/java/components/CVLoadout.java index 4e4429be..5052ce5f 100644 --- a/sswlib/src/main/java/components/CVLoadout.java +++ b/sswlib/src/main/java/components/CVLoadout.java @@ -762,7 +762,7 @@ public ifCVLoadout Clone() { clone.SetRulesLevel( RulesLevel ); clone.SetTechBase( TechBase ); clone.SetEra( Era ); - clone.SetYear( Year, false ); + clone.SetYear( Year, YearSpecified ); try { clone.SetFCSArtemisIV( UseAIVFCS ); clone.SetFCSArtemisV( UseAVFCS ); diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index beb21f7f..fec2199a 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -64,8 +64,7 @@ public class CombatVehicle implements ifUnit, ifBattleforce { private int HeatSinks = 0, Tonnage = 20, CruiseMP = 1, - Crew = 0, - Year; + Crew = 0; private double JJMult, LiftEquipment = 0, Controls = 0; @@ -1023,6 +1022,8 @@ public void SetEra( int e ) { } public void SetYear( int y, boolean specified ) { + // override specified as false if year is 0 + if( y == 0) specified = false; if( Omni ) { CurLoadout.SetYear( y, specified ); } else { @@ -1551,15 +1552,11 @@ public void setLookup(Hashtable Lookup) { } public int getYear() { - return Year; + return GetYear(); } - public void setYear(int y, boolean specified) { - if( Omni ) { - CurLoadout.SetYear( y, specified ); - } else { - MainLoadout.SetYear( y, specified ); - } + public void setYear(int y, boolean specified) { + SetYear( y, specified ); } public void SetYearRestricted( boolean y ) { diff --git a/sswlib/src/main/java/components/Mech.java b/sswlib/src/main/java/components/Mech.java index 08ae52b6..66e1a367 100644 --- a/sswlib/src/main/java/components/Mech.java +++ b/sswlib/src/main/java/components/Mech.java @@ -358,6 +358,8 @@ public void SetRulesLevel( int r ) { } public void SetYear( int y, boolean specified ) { + // override specified as false if year is 0 + if( y == 0) specified = false; if( Omnimech ) { CurLoadout.SetYear( y, specified ); } else { diff --git a/sswlib/src/main/java/components/QuadLoadout.java b/sswlib/src/main/java/components/QuadLoadout.java index c8504401..ea66f061 100644 --- a/sswlib/src/main/java/components/QuadLoadout.java +++ b/sswlib/src/main/java/components/QuadLoadout.java @@ -3354,7 +3354,7 @@ public ifMechLoadout Clone() { clone.SetRulesLevel( RulesLevel ); clone.SetTechBase( TechBase ); clone.SetEra( Era ); - clone.SetYear( Year, false ); + clone.SetYear( Year, YearSpecified ); clone.SetHDCrits( HDCrits.clone() ); clone.SetCTCrits( CTCrits.clone() ); clone.SetLTCrits( LTCrits.clone() ); diff --git a/sswlib/src/main/java/components/TripodLoadout.java b/sswlib/src/main/java/components/TripodLoadout.java index 21d02fca..a9d901a4 100644 --- a/sswlib/src/main/java/components/TripodLoadout.java +++ b/sswlib/src/main/java/components/TripodLoadout.java @@ -3817,7 +3817,7 @@ public ifMechLoadout Clone() { clone.SetRulesLevel( RulesLevel ); clone.SetTechBase( TechBase ); clone.SetEra( Era ); - clone.SetYear( Year, false ); + clone.SetYear( Year, YearSpecified ); clone.SetHDCrits( HDCrits.clone() ); clone.SetCTCrits( CTCrits.clone() ); clone.SetLTCrits( LTCrits.clone() ); From c769f6dc39ec50a303f7fc4f76fa6ae48bbb261e Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sun, 17 Dec 2023 04:07:08 -0800 Subject: [PATCH 192/199] Fix minor discrepancies in CV GUI source from forms --- saw/src/main/java/saw/gui/frmVee.java | 112 +++++++++---------- saw/src/main/java/saw/gui/frmVeeWide.java | 128 +++++++++++----------- 2 files changed, 120 insertions(+), 120 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index 20a5ee96..aeff7a8f 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -1400,7 +1400,7 @@ public void windowClosed(java.awt.event.WindowEvent evt) { txtTurretInfo.setEditable(false); txtTurretInfo.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtTurretInfo.setText("Turret: 00.0/0.00"); + txtTurretInfo.setText("Turret: 00.0/00.0"); txtTurretInfo.setMaximumSize(new Dimension(100, 20)); txtTurretInfo.setMinimumSize(new Dimension(100, 20)); txtTurretInfo.setPreferredSize(new Dimension(100, 20)); @@ -1408,7 +1408,7 @@ public void windowClosed(java.awt.event.WindowEvent evt) { txtRearTurretInfo.setEditable(false); txtRearTurretInfo.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtRearTurretInfo.setText("Rear Turret: 00.0/0.00"); + txtRearTurretInfo.setText("Rear Turret: 00.0/00.0"); txtRearTurretInfo.setMaximumSize(new Dimension(120, 20)); txtRearTurretInfo.setMinimumSize(new Dimension(120, 20)); txtRearTurretInfo.setPreferredSize(new Dimension(120, 20)); @@ -1601,52 +1601,52 @@ public void windowClosed(java.awt.event.WindowEvent evt) { cmbProductionEra.setPreferredSize(new Dimension(90, 20)); cmbProductionEra.addActionListener(this::cmbProductionEraActionPerformed); - javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(pnlBasicInfo); - pnlBasicInfo.setLayout(jPanel5Layout); - jPanel5Layout.setHorizontalGroup( - jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel5Layout.createSequentialGroup() - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel5Layout.createSequentialGroup() + javax.swing.GroupLayout pnlBasicInfoLayout = new javax.swing.GroupLayout(pnlBasicInfo); + pnlBasicInfo.setLayout(pnlBasicInfoLayout); + pnlBasicInfoLayout.setHorizontalGroup( + pnlBasicInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, pnlBasicInfoLayout.createSequentialGroup() .addGap(22, 22, 22) .addComponent(jLabel2) .addGap(2, 2, 2) .addComponent(cmbRulesLevel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel5Layout.createSequentialGroup() + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, pnlBasicInfoLayout.createSequentialGroup() .addGap(60, 60, 60) .addComponent(jLabel5) .addGap(2, 2, 2) .addComponent(cmbEra, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel5Layout.createSequentialGroup() + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, pnlBasicInfoLayout.createSequentialGroup() .addGap(27, 27, 27) .addComponent(jLabel3) .addGap(2, 2, 2) .addComponent(cmbTechBase, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel5Layout.createSequentialGroup() + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, pnlBasicInfoLayout.createSequentialGroup() .addGap(129, 129, 129) .addComponent(lblEraYears)) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel5Layout.createSequentialGroup() + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, pnlBasicInfoLayout.createSequentialGroup() .addGap(5, 5, 5) - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel81, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel4, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.TRAILING)) - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel5Layout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(txtVehicleName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup() + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlBasicInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlBasicInfoLayout.createSequentialGroup() .addGap(2, 2, 2) .addComponent(txtSource, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel5Layout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(txtModel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))))) .addContainerGap(24, Short.MAX_VALUE)) - .addGroup(jPanel5Layout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addContainerGap() - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addGroup(jPanel5Layout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addComponent(lblProdYear) .addGap(2, 2, 2) .addComponent(txtProdYear, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) @@ -1655,46 +1655,46 @@ public void windowClosed(java.awt.event.WindowEvent evt) { .addComponent(chkYearRestrict)) .addContainerGap(23, Short.MAX_VALUE)) ); - jPanel5Layout.setVerticalGroup( - jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel5Layout.createSequentialGroup() - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel5Layout.createSequentialGroup() + pnlBasicInfoLayout.setVerticalGroup( + pnlBasicInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel1)) .addComponent(txtVehicleName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel5Layout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel4)) .addComponent(txtModel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(0, 0, 0) - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(txtSource, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGroup(jPanel5Layout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel81))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel5Layout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel2)) .addComponent(cmbRulesLevel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel5Layout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel5)) .addComponent(cmbEra, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel5Layout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel3)) .addComponent(cmbTechBase, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(2, 2, 2) .addComponent(lblEraYears) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel5Layout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(lblProdYear)) .addComponent(txtProdYear, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) @@ -2955,38 +2955,38 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { btnMaximize.setText("Maximize Armor"); btnMaximize.addActionListener(this::btnMaximizeActionPerformed); - javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(pnlArmorType); - pnlArmorType.setLayout(jPanel7Layout); - jPanel7Layout.setHorizontalGroup( - jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel7Layout.createSequentialGroup() - .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel7Layout.createSequentialGroup() + javax.swing.GroupLayout pnlArmorTypeLayout = new javax.swing.GroupLayout(pnlArmorType); + pnlArmorType.setLayout(pnlArmorTypeLayout); + pnlArmorTypeLayout.setHorizontalGroup( + pnlArmorTypeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlArmorTypeLayout.createSequentialGroup() + .addGroup(pnlArmorTypeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlArmorTypeLayout.createSequentialGroup() .addGap(1, 1, 1) .addComponent(jLabel52) .addGap(2, 2, 2) .addComponent(cmbArmorType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel7Layout.createSequentialGroup() + .addGroup(pnlArmorTypeLayout.createSequentialGroup() .addGap(1, 1, 1) .addComponent(btnSetArmorTons, javax.swing.GroupLayout.PREFERRED_SIZE, 212, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel7Layout.createSequentialGroup() + .addGroup(pnlArmorTypeLayout.createSequentialGroup() .addGap(1, 1, 1) .addComponent(btnUseRemaining, javax.swing.GroupLayout.PREFERRED_SIZE, 212, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel7Layout.createSequentialGroup() + .addGroup(pnlArmorTypeLayout.createSequentialGroup() .addGap(1, 1, 1) .addComponent(btnMaximize, javax.swing.GroupLayout.PREFERRED_SIZE, 212, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel7Layout.createSequentialGroup() + .addGroup(pnlArmorTypeLayout.createSequentialGroup() .addGap(31, 31, 31) - .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlArmorTypeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(chkBalanceLRArmor) .addComponent(chkBalanceFRArmor)))) .addGap(10, 10, 10)) ); - jPanel7Layout.setVerticalGroup( - jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel7Layout.createSequentialGroup() - .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel7Layout.createSequentialGroup() + pnlArmorTypeLayout.setVerticalGroup( + pnlArmorTypeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlArmorTypeLayout.createSequentialGroup() + .addGroup(pnlArmorTypeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(pnlArmorTypeLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel52)) .addComponent(cmbArmorType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index b2d60420..585c4ae5 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -958,7 +958,7 @@ private void initComponents() { cmbOmniVariant = new javax.swing.JComboBox(); tbpMainTabPane = new javax.swing.JTabbedPane(); pnlBasicSetup = new javax.swing.JPanel(); - JPanel jPanel5 = new JPanel(); + JPanel pnlBasicInfo = new JPanel(); JLabel jLabel1 = new JLabel("Vehicle Name:"); txtVehicleName = new javax.swing.JTextField(); JLabel jLabel4 = new JLabel("Model:"); @@ -1083,7 +1083,7 @@ private void initComponents() { pnlRotorArmor = new javax.swing.JPanel(); lblRotorIntPts = new javax.swing.JLabel("00"); spnRotorArmor = new javax.swing.JSpinner(); - JPanel jPanel7 = new JPanel(); + JPanel pnlArmorType = new JPanel(); JLabel jLabel52 = new JLabel("Armor Type:"); cmbArmorType = new javax.swing.JComboBox(); chkBalanceLRArmor = new javax.swing.JCheckBox("Balance Left/Right Armor"); @@ -1257,7 +1257,7 @@ public void windowClosed(java.awt.event.WindowEvent evt) { txtTurretInfo.setEditable(false); txtTurretInfo.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtTurretInfo.setText("Turret: 00.0/0.00"); + txtTurretInfo.setText("Turret: 00.0/00.0"); txtTurretInfo.setMaximumSize(new Dimension(100, 20)); txtTurretInfo.setMinimumSize(new Dimension(100, 20)); txtTurretInfo.setPreferredSize(new Dimension(100, 20)); @@ -1265,7 +1265,7 @@ public void windowClosed(java.awt.event.WindowEvent evt) { txtRearTurretInfo.setEditable(false); txtRearTurretInfo.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtRearTurretInfo.setText("Rear Turret: 00.0/0.00"); + txtRearTurretInfo.setText("Rear Turret: 00.0/00.0"); txtRearTurretInfo.setMaximumSize(new Dimension(120, 20)); txtRearTurretInfo.setMinimumSize(new Dimension(120, 20)); txtRearTurretInfo.setPreferredSize(new Dimension(120, 20)); @@ -1320,7 +1320,7 @@ public void windowClosed(java.awt.event.WindowEvent evt) { //endregion //region Basic Setup Tab / Basic Information Panel - jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Basic Information")); + pnlBasicInfo.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Basic Information")); txtVehicleName.setMinimumSize(new Dimension(150, 20)); txtVehicleName.setPreferredSize(new Dimension(150, 20)); @@ -1364,52 +1364,52 @@ public void windowClosed(java.awt.event.WindowEvent evt) { cmbProductionEra.setPreferredSize(new Dimension(90, 20)); cmbProductionEra.addActionListener(this::cmbProductionEraActionPerformed); - GroupLayout jPanel5Layout = new GroupLayout(jPanel5); - jPanel5.setLayout(jPanel5Layout); - jPanel5Layout.setHorizontalGroup( - jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(jPanel5Layout.createSequentialGroup() - .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.TRAILING) - .addGroup(GroupLayout.Alignment.LEADING, jPanel5Layout.createSequentialGroup() + GroupLayout pnlBasicInfoLayout = new GroupLayout(pnlBasicInfo); + pnlBasicInfo.setLayout(pnlBasicInfoLayout); + pnlBasicInfoLayout.setHorizontalGroup( + pnlBasicInfoLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createParallelGroup(GroupLayout.Alignment.TRAILING) + .addGroup(GroupLayout.Alignment.LEADING, pnlBasicInfoLayout.createSequentialGroup() .addGap(22, 22, 22) .addComponent(jLabel2) .addGap(2, 2, 2) .addComponent(cmbRulesLevel, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addGroup(GroupLayout.Alignment.LEADING, jPanel5Layout.createSequentialGroup() + .addGroup(GroupLayout.Alignment.LEADING, pnlBasicInfoLayout.createSequentialGroup() .addGap(60, 60, 60) .addComponent(jLabel5) .addGap(2, 2, 2) .addComponent(cmbEra, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addGroup(GroupLayout.Alignment.LEADING, jPanel5Layout.createSequentialGroup() + .addGroup(GroupLayout.Alignment.LEADING, pnlBasicInfoLayout.createSequentialGroup() .addGap(27, 27, 27) .addComponent(jLabel3) .addGap(2, 2, 2) .addComponent(cmbTechBase, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addGroup(GroupLayout.Alignment.LEADING, jPanel5Layout.createSequentialGroup() + .addGroup(GroupLayout.Alignment.LEADING, pnlBasicInfoLayout.createSequentialGroup() .addGap(129, 129, 129) .addComponent(lblEraYears)) - .addGroup(GroupLayout.Alignment.LEADING, jPanel5Layout.createSequentialGroup() + .addGroup(GroupLayout.Alignment.LEADING, pnlBasicInfoLayout.createSequentialGroup() .addGap(5, 5, 5) - .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(jLabel81, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel4, GroupLayout.Alignment.TRAILING) .addComponent(jLabel1, GroupLayout.Alignment.TRAILING)) - .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(jPanel5Layout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(txtVehicleName, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addGroup(GroupLayout.Alignment.TRAILING, jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup() + .addGroup(GroupLayout.Alignment.TRAILING, pnlBasicInfoLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(GroupLayout.Alignment.TRAILING, pnlBasicInfoLayout.createSequentialGroup() .addGap(2, 2, 2) .addComponent(txtSource, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel5Layout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(txtModel, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))))) .addContainerGap(24, Short.MAX_VALUE)) - .addGroup(jPanel5Layout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addContainerGap() - .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.TRAILING) - .addGroup(jPanel5Layout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createParallelGroup(GroupLayout.Alignment.TRAILING) + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addComponent(lblProdYear) .addGap(2, 2, 2) .addComponent(txtProdYear, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) @@ -1418,46 +1418,46 @@ public void windowClosed(java.awt.event.WindowEvent evt) { .addComponent(chkYearRestrict)) .addContainerGap(23, Short.MAX_VALUE)) ); - jPanel5Layout.setVerticalGroup( - jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(jPanel5Layout.createSequentialGroup() - .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(jPanel5Layout.createSequentialGroup() + pnlBasicInfoLayout.setVerticalGroup( + pnlBasicInfoLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel1)) .addComponent(txtVehicleName, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(jPanel5Layout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel4)) .addComponent(txtModel, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGap(0, 0, 0) - .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(txtSource, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addGroup(jPanel5Layout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel81))) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(jPanel5Layout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel2)) .addComponent(cmbRulesLevel, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(jPanel5Layout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel5)) .addComponent(cmbEra, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(jPanel5Layout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel3)) .addComponent(cmbTechBase, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGap(2, 2, 2) .addComponent(lblEraYears) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel5Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(jPanel5Layout.createSequentialGroup() + .addGroup(pnlBasicInfoLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(pnlBasicInfoLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(lblProdYear)) .addComponent(txtProdYear, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) @@ -1972,7 +1972,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { //endregion //region Basic Setup Tab / Armor Type Panel - jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Armor Type")); + pnlArmorType.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Armor Type")); cmbArmorType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Standard", "Industrial", "Commercial", "Ferro-Fibrous", "Light Ferro-Fibrous", "Heavy Ferro-Fibrous", "Vehicular Stealth" })); cmbArmorType.setMinimumSize(new Dimension(150, 20)); @@ -1983,38 +1983,38 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { btnUseRemaining.addActionListener(this::btnUseRemainingActionPerformed); btnMaximize.addActionListener(this::btnMaximizeActionPerformed); - GroupLayout jPanel7Layout = new GroupLayout(jPanel7); - jPanel7.setLayout(jPanel7Layout); - jPanel7Layout.setHorizontalGroup( - jPanel7Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(jPanel7Layout.createSequentialGroup() - .addGroup(jPanel7Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(jPanel7Layout.createSequentialGroup() + GroupLayout pnlArmorTypeLayout = new GroupLayout(pnlArmorType); + pnlArmorType.setLayout(pnlArmorTypeLayout); + pnlArmorTypeLayout.setHorizontalGroup( + pnlArmorTypeLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(pnlArmorTypeLayout.createSequentialGroup() + .addGroup(pnlArmorTypeLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(pnlArmorTypeLayout.createSequentialGroup() .addGap(1, 1, 1) .addComponent(jLabel52) .addGap(2, 2, 2) .addComponent(cmbArmorType, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel7Layout.createSequentialGroup() + .addGroup(pnlArmorTypeLayout.createSequentialGroup() .addGap(1, 1, 1) .addComponent(btnSetArmorTons, GroupLayout.PREFERRED_SIZE, 212, GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel7Layout.createSequentialGroup() + .addGroup(pnlArmorTypeLayout.createSequentialGroup() .addGap(1, 1, 1) .addComponent(btnUseRemaining, GroupLayout.PREFERRED_SIZE, 212, GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel7Layout.createSequentialGroup() + .addGroup(pnlArmorTypeLayout.createSequentialGroup() .addGap(1, 1, 1) .addComponent(btnMaximize, GroupLayout.PREFERRED_SIZE, 212, GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel7Layout.createSequentialGroup() + .addGroup(pnlArmorTypeLayout.createSequentialGroup() .addGap(31, 31, 31) - .addGroup(jPanel7Layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(pnlArmorTypeLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(chkBalanceLRArmor) .addComponent(chkBalanceFRArmor)))) .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); - jPanel7Layout.setVerticalGroup( - jPanel7Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(jPanel7Layout.createSequentialGroup() - .addGroup(jPanel7Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(jPanel7Layout.createSequentialGroup() + pnlArmorTypeLayout.setVerticalGroup( + pnlArmorTypeLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(pnlArmorTypeLayout.createSequentialGroup() + .addGroup(pnlArmorTypeLayout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(pnlArmorTypeLayout.createSequentialGroup() .addGap(3, 3, 3) .addComponent(jLabel52)) .addComponent(cmbArmorType, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) @@ -2068,7 +2068,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addGroup(pnlBasicSetupLayout.createParallelGroup(GroupLayout.Alignment.LEADING, false) .addComponent(pnlChassisMods, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(pnlMovement, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jPanel5, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(pnlBasicInfo, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addGroup(pnlBasicSetupLayout.createParallelGroup(GroupLayout.Alignment.LEADING, false) .addComponent(pnlExperimental, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) @@ -2083,7 +2083,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addComponent(pnlArmorLocations, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addGroup(pnlBasicSetupLayout.createParallelGroup(GroupLayout.Alignment.LEADING, false) - .addComponent(jPanel7, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(pnlArmorType, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel8, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); @@ -2092,7 +2092,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addGroup(pnlBasicSetupLayout.createSequentialGroup() .addGroup(pnlBasicSetupLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(pnlBasicSetupLayout.createSequentialGroup() - .addComponent(jPanel7, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(pnlArmorType, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel8, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGroup(pnlBasicSetupLayout.createSequentialGroup() @@ -2109,7 +2109,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlInformation, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGroup(GroupLayout.Alignment.LEADING, pnlBasicSetupLayout.createSequentialGroup() - .addComponent(jPanel5, GroupLayout.PREFERRED_SIZE, 221, GroupLayout.PREFERRED_SIZE) + .addComponent(pnlBasicInfo, GroupLayout.PREFERRED_SIZE, 221, GroupLayout.PREFERRED_SIZE) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnlMovement, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) From 51d3ed5df16d3cd8c720c674f0383fb381ddb51b Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sun, 17 Dec 2023 03:19:54 -0800 Subject: [PATCH 193/199] Copy over movement summary layout from wide CV GUI to non-wide GUI Also try to update forms for misc outdated stuff that's in java source. Note: the forms still can't be fully synced yet due to java source using custom construction methods, method references for listeners, etc. --- saw/src/main/java/saw/gui/frmVee.form | 53 +++++++++++----------- saw/src/main/java/saw/gui/frmVee.java | 54 +++++++++-------------- saw/src/main/java/saw/gui/frmVeeWide.form | 53 +++++++++++----------- saw/src/main/java/saw/gui/frmVeeWide.java | 8 ++-- 4 files changed, 76 insertions(+), 92 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.form b/saw/src/main/java/saw/gui/frmVee.form index e0ee70f8..7cbdc322 100644 --- a/saw/src/main/java/saw/gui/frmVee.form +++ b/saw/src/main/java/saw/gui/frmVee.form @@ -1424,26 +1424,22 @@ <Group type="103" groupAlignment="0" attributes="0"> <Group type="102" alignment="0" attributes="0"> <Component id="jLabel10" min="-2" max="-2" attributes="0"/> - <EmptySpace min="2" pref="2" max="2" attributes="0"/> + <EmptySpace min="5" pref="5" max="5" attributes="0"/> <Component id="spnCruiseMP" min="-2" max="-2" attributes="0"/> </Group> - <Group type="102" attributes="0"> - <EmptySpace min="5" pref="5" max="-2" attributes="0"/> - <Group type="103" groupAlignment="0" attributes="0"> - <Group type="102" alignment="0" attributes="0"> - <Component id="jLabel11" min="-2" max="-2" attributes="0"/> - <EmptySpace type="separate" max="-2" attributes="0"/> - <Component id="lblFlankMP" min="-2" max="-2" attributes="0"/> - </Group> - <Group type="102" alignment="0" attributes="0"> - <Component id="jLabel13" min="-2" max="-2" attributes="0"/> - <EmptySpace min="2" pref="2" max="2" attributes="0"/> - <Component id="spnJumpMP" min="-2" max="-2" attributes="0"/> - </Group> - </Group> + <Group type="102" alignment="0" attributes="0"> + <Component id="jLabel11" min="-2" max="-2" attributes="0"/> + <EmptySpace min="18" pref="18" max="18" attributes="0"/> + <Component id="lblFlankMP" min="-2" max="-2" attributes="0"/> + <EmptySpace min="20" pref="20" max="20" attributes="0"/> + <Component id="lblMoveSummary" min="-2" max="-2" attributes="0"/> + </Group> + <Group type="102" alignment="0" attributes="0"> + <Component id="jLabel13" min="-2" max="-2" attributes="0"/> + <EmptySpace min="10" pref="10" max="10" attributes="0"/> + <Component id="spnJumpMP" min="-2" max="-2" attributes="0"/> </Group> </Group> - <EmptySpace pref="129" max="32767" attributes="0"/> </Group> </Group> </DimensionLayout> @@ -1451,23 +1447,18 @@ <Group type="103" groupAlignment="0" attributes="0"> <Group type="102" alignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0"> - <Group type="102" alignment="0" attributes="0"> - <EmptySpace min="3" pref="3" max="3" attributes="0"/> - <Component id="jLabel10" min="-2" max="-2" attributes="0"/> - </Group> + <Component id="jLabel10" min="-2" max="-2" attributes="0"/> <Component id="spnCruiseMP" min="-2" max="-2" attributes="0"/> </Group> - <EmptySpace min="2" pref="2" max="2" attributes="0"/> + <EmptySpace min="5" pref="5" max="5" attributes="0"/> <Group type="103" groupAlignment="3" attributes="0"> <Component id="jLabel11" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="lblFlankMP" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="lblMoveSummary" min="-2" max="-2" attributes="0"/> </Group> - <EmptySpace min="2" pref="2" max="2" attributes="0"/> + <EmptySpace min="8" pref="8" max="8" attributes="0"/> <Group type="103" groupAlignment="0" attributes="0"> - <Group type="102" alignment="0" attributes="0"> - <EmptySpace min="3" pref="3" max="3" attributes="0"/> - <Component id="jLabel13" min="-2" max="-2" attributes="0"/> - </Group> + <Component id="jLabel13" min="-2" max="-2" attributes="0"/> <Component id="spnJumpMP" min="-2" max="-2" attributes="0"/> </Group> <EmptySpace max="32767" attributes="0"/> @@ -1508,6 +1499,11 @@ <Property name="text" type="java.lang.String" value="2"/> </Properties> </Component> + <Component class="javax.swing.JLabel" name="lblMoveSummary"> + <Properties> + <Property name="text" type="java.lang.String" value="W/R: 12/20"/> + </Properties> + </Component> <Component class="javax.swing.JLabel" name="jLabel13"> <Properties> <Property name="text" type="java.lang.String" value="Jump MP:"/> @@ -1706,6 +1702,9 @@ <Property name="text" type="java.lang.String" value="VTOL Jet Booster"/> <Property name="enabled" type="boolean" value="false"/> </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="chkJetBoosterActionPerformed"/> + </Events> </Component> <Component class="javax.swing.JCheckBox" name="chkSupercharger"> <Properties> @@ -5598,7 +5597,7 @@ </Container> <Component class="javax.swing.JButton" name="btnAddQuirk"> <Properties> - <Property name="text" type="java.lang.String" value="Add Quirk"/> + <Property name="text" type="java.lang.String" value="Manage Quirk"/> </Properties> <Events> <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnAddQuirkActionPerformed"/> diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index aeff7a8f..ac7431b6 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -1007,7 +1007,6 @@ private void initComponents() { JButton btnOptions = new JButton(); JToolBar.Separator jSeparator21 = new JToolBar.Separator(); JLabel lblSelectVariant = new JLabel(); - lblMoveSummary = new javax.swing.JLabel(); cmbOmniVariant = new javax.swing.JComboBox(); tbpMainTabPane = new JTabbedPane(); pnlBasicSetup = new javax.swing.JPanel(); @@ -1051,6 +1050,7 @@ private void initComponents() { spnCruiseMP = new javax.swing.JSpinner(); JLabel jLabel11 = new JLabel(); lblFlankMP = new javax.swing.JLabel(); + lblMoveSummary = new javax.swing.JLabel(); JLabel jLabel13 = new JLabel(); spnJumpMP = new javax.swing.JSpinner(); JPanel pnlChassisMods = new JPanel(); @@ -1909,6 +1909,8 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { lblFlankMP.setText("2"); + lblMoveSummary.setText("W/R: 12/20"); + jLabel13.setText("Jump MP:"); spnJumpMP.setEnabled(false); @@ -1926,41 +1928,33 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addGroup(pnlMovementLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlMovementLayout.createSequentialGroup() .addComponent(jLabel10) - .addGap(2, 2, 2) - .addComponent(spnCruiseMP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(5, 5, 5) - .addComponent(lblMoveSummary, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(pnlMovementLayout.createSequentialGroup() .addGap(5, 5, 5) - .addGroup(pnlMovementLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(pnlMovementLayout.createSequentialGroup() - .addComponent(jLabel11) - .addGap(18, 18, 18) - .addComponent(lblFlankMP)) - .addGroup(pnlMovementLayout.createSequentialGroup() - .addComponent(jLabel13) - .addGap(2, 2, 2) - .addComponent(spnJumpMP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))) - .addContainerGap(20, Short.MAX_VALUE)) + .addComponent(spnCruiseMP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(pnlMovementLayout.createSequentialGroup() + .addComponent(jLabel11) + .addGap(18, 18, 18) + .addComponent(lblFlankMP) + .addGap(20, 20, 20) + .addComponent(lblMoveSummary)) + .addGroup(pnlMovementLayout.createSequentialGroup() + .addComponent(jLabel13) + .addGap(10, 10, 10) + .addComponent(spnJumpMP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) ); pnlMovementLayout.setVerticalGroup( pnlMovementLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlMovementLayout.createSequentialGroup() .addGroup(pnlMovementLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(pnlMovementLayout.createSequentialGroup() - .addGap(3, 3, 3) - .addComponent(jLabel10)) - .addComponent(spnCruiseMP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblMoveSummary, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE)) - .addGap(2, 2, 2) + .addComponent(jLabel10) + .addComponent(spnCruiseMP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(5, 5, 5) .addGroup(pnlMovementLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel11) - .addComponent(lblFlankMP)) - .addGap(2, 2, 2) + .addComponent(lblFlankMP) + .addComponent(lblMoveSummary)) + .addGap(8, 8, 8) .addGroup(pnlMovementLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(pnlMovementLayout.createSequentialGroup() - .addGap(3, 3, 3) - .addComponent(jLabel13)) + .addComponent(jLabel13) .addComponent(spnJumpMP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); @@ -1977,12 +1971,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { gridBagConstraints.anchor = GridBagConstraints.WEST; pnlChassisMods.add(chkFlotationHull, gridBagConstraints); - lblMoveSummary.setText("W/R: 12/20"); - gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.anchor = GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0); - pnlMovement.add(lblMoveSummary, gridBagConstraints); - chkLimitedAmph.setText("Limited Amphibious"); chkLimitedAmph.setEnabled(false); chkLimitedAmph.addActionListener(this::chkLimitedAmphActionPerformed); diff --git a/saw/src/main/java/saw/gui/frmVeeWide.form b/saw/src/main/java/saw/gui/frmVeeWide.form index 25d009a6..9393778b 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.form +++ b/saw/src/main/java/saw/gui/frmVeeWide.form @@ -1437,26 +1437,22 @@ <Group type="103" groupAlignment="0" attributes="0"> <Group type="102" alignment="0" attributes="0"> <Component id="jLabel10" min="-2" max="-2" attributes="0"/> - <EmptySpace min="2" pref="2" max="2" attributes="0"/> + <EmptySpace min="5" pref="5" max="5" attributes="0"/> <Component id="spnCruiseMP" min="-2" max="-2" attributes="0"/> </Group> - <Group type="102" attributes="0"> - <EmptySpace min="5" pref="5" max="-2" attributes="0"/> - <Group type="103" groupAlignment="0" attributes="0"> - <Group type="102" alignment="0" attributes="0"> - <Component id="jLabel11" min="-2" max="-2" attributes="0"/> - <EmptySpace type="separate" max="-2" attributes="0"/> - <Component id="lblFlankMP" min="-2" max="-2" attributes="0"/> - </Group> - <Group type="102" alignment="0" attributes="0"> - <Component id="jLabel13" min="-2" max="-2" attributes="0"/> - <EmptySpace min="2" pref="2" max="2" attributes="0"/> - <Component id="spnJumpMP" min="-2" max="-2" attributes="0"/> - </Group> - </Group> + <Group type="102" alignment="0" attributes="0"> + <Component id="jLabel11" min="-2" max="-2" attributes="0"/> + <EmptySpace min="18" pref="18" max="18" attributes="0"/> + <Component id="lblFlankMP" min="-2" max="-2" attributes="0"/> + <EmptySpace min="20" pref="20" max="20" attributes="0"/> + <Component id="lblMoveSummary" min="-2" max="-2" attributes="0"/> + </Group> + <Group type="102" alignment="0" attributes="0"> + <Component id="jLabel13" min="-2" max="-2" attributes="0"/> + <EmptySpace min="10" pref="10" max="10" attributes="0"/> + <Component id="spnJumpMP" min="-2" max="-2" attributes="0"/> </Group> </Group> - <EmptySpace pref="129" max="32767" attributes="0"/> </Group> </Group> </DimensionLayout> @@ -1464,23 +1460,18 @@ <Group type="103" groupAlignment="0" attributes="0"> <Group type="102" alignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0"> - <Group type="102" alignment="0" attributes="0"> - <EmptySpace min="3" pref="3" max="3" attributes="0"/> - <Component id="jLabel10" min="-2" max="-2" attributes="0"/> - </Group> + <Component id="jLabel10" min="-2" max="-2" attributes="0"/> <Component id="spnCruiseMP" min="-2" max="-2" attributes="0"/> </Group> - <EmptySpace min="2" pref="2" max="2" attributes="0"/> + <EmptySpace min="5" pref="5" max="5" attributes="0"/> <Group type="103" groupAlignment="3" attributes="0"> <Component id="jLabel11" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="lblFlankMP" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="lblMoveSummary" min="-2" max="-2" attributes="0"/> </Group> - <EmptySpace min="2" pref="2" max="2" attributes="0"/> + <EmptySpace min="8" pref="8" max="8" attributes="0"/> <Group type="103" groupAlignment="0" attributes="0"> - <Group type="102" alignment="0" attributes="0"> - <EmptySpace min="3" pref="3" max="3" attributes="0"/> - <Component id="jLabel13" min="-2" max="-2" attributes="0"/> - </Group> + <Component id="jLabel13" min="-2" max="-2" attributes="0"/> <Component id="spnJumpMP" min="-2" max="-2" attributes="0"/> </Group> <EmptySpace max="32767" attributes="0"/> @@ -1521,6 +1512,11 @@ <Property name="text" type="java.lang.String" value="2"/> </Properties> </Component> + <Component class="javax.swing.JLabel" name="lblMoveSummary"> + <Properties> + <Property name="text" type="java.lang.String" value="W/R: 12/20"/> + </Properties> + </Component> <Component class="javax.swing.JLabel" name="jLabel13"> <Properties> <Property name="text" type="java.lang.String" value="Jump MP:"/> @@ -1716,6 +1712,9 @@ <Property name="text" type="java.lang.String" value="VTOL Jet Booster"/> <Property name="enabled" type="boolean" value="false"/> </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="chkJetBoosterActionPerformed"/> + </Events> </Component> <Component class="javax.swing.JCheckBox" name="chkSupercharger"> <Properties> @@ -5487,7 +5486,7 @@ </Container> <Component class="javax.swing.JButton" name="btnAddQuirk"> <Properties> - <Property name="text" type="java.lang.String" value="Add Quirk"/> + <Property name="text" type="java.lang.String" value="Manage Quirk"/> </Properties> <Events> <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnAddQuirkActionPerformed"/> diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 585c4ae5..2b1e144c 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -998,9 +998,9 @@ private void initComponents() { spnCruiseMP = new javax.swing.JSpinner(); JLabel jLabel11 = new JLabel("Flank MP:"); lblFlankMP = new javax.swing.JLabel("2"); + lblMoveSummary = new javax.swing.JLabel("Max C/F: 12/20"); JLabel jLabel13 = new JLabel("Jump MP:"); spnJumpMP = new javax.swing.JSpinner(); - lblMoveSummary = new javax.swing.JLabel("Max C/F: 12/20"); JPanel pnlChassisMods = new JPanel(); chkFlotationHull = new javax.swing.JCheckBox("Flotation Hull"); chkLimitedAmph = new javax.swing.JCheckBox("Limited Amphibious"); @@ -1661,8 +1661,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { spnJumpMP.setEnabled(false); spnJumpMP.setPreferredSize(new Dimension(45, 20)); - lblMoveSummary.setHorizontalAlignment(SwingConstants.RIGHT); - GroupLayout pnlMovementLayout = new GroupLayout(pnlMovement); pnlMovement.setLayout(pnlMovementLayout); pnlMovementLayout.setHorizontalGroup( @@ -1700,7 +1698,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addGroup(pnlMovementLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(jLabel13) .addComponent(spnJumpMP, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addGap(5)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); //endregion @@ -7366,7 +7364,6 @@ private void FixJJSpinnerModel() { private javax.swing.JLabel lblEraYears; private javax.swing.JLabel lblFinalEngineRating; private javax.swing.JLabel lblFlankMP; - private javax.swing.JLabel lblMoveSummary; private javax.swing.JLabel lblFluffImage; private javax.swing.JLabel lblFreeHeatSinks; private javax.swing.JLabel lblFrontIntPts; @@ -7391,6 +7388,7 @@ private void FixJJSpinnerModel() { private javax.swing.JLabel lblInfoType; private javax.swing.JLabel lblLeftIntPts; private javax.swing.JLabel lblMinEngineTons; + private javax.swing.JLabel lblMoveSummary; private javax.swing.JLabel lblNumCrew; private javax.swing.JLabel lblRearIntPts; private javax.swing.JLabel lblRearTurretIntPts; From 6bb41d1980131f9670a265ef9242847c89e6e06b Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sun, 17 Dec 2023 03:58:01 -0800 Subject: [PATCH 194/199] Standardize CV turret tonnage spinners Also attempt to add/update them in the forms --- saw/src/main/java/saw/gui/frmVee.form | 26 +++++++++++++++++++++++ saw/src/main/java/saw/gui/frmVee.java | 12 +++++------ saw/src/main/java/saw/gui/frmVeeWide.form | 26 +++++++++++++++++++++++ saw/src/main/java/saw/gui/frmVeeWide.java | 10 ++++++--- 4 files changed, 65 insertions(+), 9 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.form b/saw/src/main/java/saw/gui/frmVee.form index 7cbdc322..4877e98f 100644 --- a/saw/src/main/java/saw/gui/frmVee.form +++ b/saw/src/main/java/saw/gui/frmVee.form @@ -1147,6 +1147,8 @@ <Component id="cmbTurret" min="-2" max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/> <Component id="spnTurretTonnage" max="32767" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="spnRearTurretTonnage" max="32767" attributes="0"/> </Group> <Group type="102" alignment="0" attributes="0"> <Component id="jLabel9" min="-2" max="-2" attributes="0"/> @@ -1214,6 +1216,7 @@ <Component id="jLabel32" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="cmbTurret" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="spnTurretTonnage" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="spnRearTurretTonnage" alignment="3" min="-2" max="-2" attributes="0"/> </Group> <EmptySpace max="-2" attributes="0"/> <Group type="103" groupAlignment="0" attributes="0"> @@ -1393,11 +1396,34 @@ <SpinnerModel initial="0.0" maximum="50.0" minimum="0.0" numberType="java.lang.Double" stepSize="0.5" type="number"/> </Property> <Property name="enabled" type="boolean" value="false"/> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[45, 20]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[45, 20]"/> + </Property> </Properties> <Events> <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="spnTurretTonnageStateChanged"/> </Events> </Component> + <Component class="javax.swing.JSpinner" name="spnRearTurretTonnage"> + <Properties> + <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> + <SpinnerModel initial="0.0" maximum="50.0" minimum="0.0" numberType="java.lang.Double" stepSize="0.5" type="number"/> + </Property> + <Property name="enabled" type="boolean" value="false"/> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[45, 20]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[45, 20]"/> + </Property> + </Properties> + <Events> + <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="spnRearTurretTonnageStateChanged"/> + </Events> + </Component> </SubComponents> </Container> <Container class="javax.swing.JPanel" name="pnlMovement"> diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index ac7431b6..c55e6af5 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -1794,12 +1794,10 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { spnTurretTonnage.setModel(new javax.swing.SpinnerNumberModel(0.0d, 0.0d, 50.0d, 0.5d)); spnTurretTonnage.setEnabled(false); spnTurretTonnage.addChangeListener(this::spnTurretTonnageStateChanged); - ((JSpinner.DefaultEditor)spnTurretTonnage.getEditor()).getTextField().addFocusListener(spinners); spnRearTurretTonnage.setModel(new javax.swing.SpinnerNumberModel(0.0d, 0.0d, 50.0d, 0.5d)); spnRearTurretTonnage.setEnabled(false); spnRearTurretTonnage.addChangeListener(this::spnRearTurretTonnageStateChanged); - ((JSpinner.DefaultEditor)spnRearTurretTonnage.getEditor()).getTextField().addFocusListener(spinners); javax.swing.GroupLayout pnlChassisLayout = new javax.swing.GroupLayout(pnlChassis); pnlChassis.setLayout(pnlChassisLayout); @@ -1824,9 +1822,9 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(cmbTurret, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spnTurretTonnage) + .addComponent(spnTurretTonnage, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spnRearTurretTonnage)) + .addComponent(spnRearTurretTonnage, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(pnlChassisLayout.createSequentialGroup() .addComponent(jLabel9) .addGap(2, 2, 2) @@ -1920,7 +1918,6 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { javax.swing.GroupLayout pnlMovementLayout = new javax.swing.GroupLayout(pnlMovement); pnlMovement.setLayout(pnlMovementLayout); - pnlMovementLayout.setHorizontalGroup( pnlMovementLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlMovementLayout.createSequentialGroup() @@ -2027,6 +2024,7 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { chkJetBooster.setText("VTOL Jet Booster"); chkJetBooster.setEnabled(false); chkJetBooster.addActionListener(this::chkJetBoosterActionPerformed); + chkSupercharger.setText("Supercharger"); chkSupercharger.setEnabled(false); chkSupercharger.addActionListener(this::chkSuperchargerActionPerformed); @@ -4697,7 +4695,9 @@ private void FixArmorSpinners() { ((JSpinner.DefaultEditor)spnJumpMP.getEditor()).getTextField().addFocusListener(spinners); ((JSpinner.DefaultEditor)spnHeatSinks.getEditor()).getTextField().addFocusListener(spinners); - //Setup Spinner focus + ((JSpinner.DefaultEditor)spnTurretTonnage.getEditor()).getTextField().addFocusListener(spinners); + ((JSpinner.DefaultEditor)spnRearTurretTonnage.getEditor()).getTextField().addFocusListener(spinners); + ((JSpinner.DefaultEditor)spnFrontArmor.getEditor()).getTextField().addFocusListener(spinners); ((JSpinner.DefaultEditor)spnLeftArmor.getEditor()).getTextField().addFocusListener(spinners); ((JSpinner.DefaultEditor)spnRightArmor.getEditor()).getTextField().addFocusListener(spinners); diff --git a/saw/src/main/java/saw/gui/frmVeeWide.form b/saw/src/main/java/saw/gui/frmVeeWide.form index 9393778b..bf31bc7e 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.form +++ b/saw/src/main/java/saw/gui/frmVeeWide.form @@ -1160,6 +1160,8 @@ <Component id="cmbTurret" min="-2" max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/> <Component id="spnTurretTonnage" max="32767" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + <Component id="spnRearTurretTonnage" max="32767" attributes="0"/> </Group> <Group type="102" alignment="0" attributes="0"> <Component id="jLabel9" min="-2" max="-2" attributes="0"/> @@ -1227,6 +1229,7 @@ <Component id="jLabel32" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="cmbTurret" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="spnTurretTonnage" alignment="3" min="-2" max="-2" attributes="0"/> + <Component id="spnRearTurretTonnage" alignment="3" min="-2" max="-2" attributes="0"/> </Group> <EmptySpace max="-2" attributes="0"/> <Group type="103" groupAlignment="0" attributes="0"> @@ -1406,11 +1409,34 @@ <SpinnerModel initial="0.0" maximum="50.0" minimum="0.0" numberType="java.lang.Double" stepSize="0.5" type="number"/> </Property> <Property name="enabled" type="boolean" value="false"/> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[45, 20]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[45, 20]"/> + </Property> </Properties> <Events> <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="spnTurretTonnageStateChanged"/> </Events> </Component> + <Component class="javax.swing.JSpinner" name="spnRearTurretTonnage"> + <Properties> + <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> + <SpinnerModel initial="0.0" maximum="50.0" minimum="0.0" numberType="java.lang.Double" stepSize="0.5" type="number"/> + </Property> + <Property name="enabled" type="boolean" value="false"/> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[45, 20]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[45, 20]"/> + </Property> + </Properties> + <Events> + <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="spnRearTurretTonnageStateChanged"/> + </Events> + </Component> </SubComponents> </Container> <Container class="javax.swing.JPanel" name="pnlMovement"> diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 2b1e144c..18684bc6 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -1541,13 +1541,15 @@ public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { spnTurretTonnage.setModel(new javax.swing.SpinnerNumberModel(0.0d, 0.0d, 50.0d, 0.5d)); spnTurretTonnage.setEnabled(false); + spnTurretTonnage.setMinimumSize(new java.awt.Dimension(45, 20)); + spnTurretTonnage.setPreferredSize(new java.awt.Dimension(45, 20)); spnTurretTonnage.addChangeListener(this::spnTurretTonnageStateChanged); - ((JSpinner.DefaultEditor)spnTurretTonnage.getEditor()).getTextField().addFocusListener(spinners); spnRearTurretTonnage.setModel(new javax.swing.SpinnerNumberModel(0.0d, 0.0d, 50.0d, 0.5d)); spnRearTurretTonnage.setEnabled(false); + spnRearTurretTonnage.setMinimumSize(new java.awt.Dimension(45, 20)); + spnRearTurretTonnage.setPreferredSize(new java.awt.Dimension(45, 20)); spnRearTurretTonnage.addChangeListener(this::spnRearTurretTonnageStateChanged); - ((JSpinner.DefaultEditor)spnRearTurretTonnage.getEditor()).getTextField().addFocusListener(spinners); JLabel lblTurretTonnage = new JLabel("Turret Tonnage: "); @@ -3020,7 +3022,9 @@ private void FixArmorSpinners() { ((JSpinner.DefaultEditor)spnJumpMP.getEditor()).getTextField().addFocusListener(spinners); ((JSpinner.DefaultEditor)spnHeatSinks.getEditor()).getTextField().addFocusListener(spinners); - //Setup Spinner focus + ((JSpinner.DefaultEditor)spnTurretTonnage.getEditor()).getTextField().addFocusListener(spinners); + ((JSpinner.DefaultEditor)spnRearTurretTonnage.getEditor()).getTextField().addFocusListener(spinners); + ((JSpinner.DefaultEditor)spnFrontArmor.getEditor()).getTextField().addFocusListener(spinners); ((JSpinner.DefaultEditor)spnLeftArmor.getEditor()).getTextField().addFocusListener(spinners); ((JSpinner.DefaultEditor)spnRightArmor.getEditor()).getTextField().addFocusListener(spinners); From 1bb1c81491c27f14722e1fb495e4868cf33eaf9b Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sun, 17 Dec 2023 04:45:30 -0800 Subject: [PATCH 195/199] Fix splash screen for SAW --- saw/build.gradle | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/saw/build.gradle b/saw/build.gradle index 5c1235e8..1cab545e 100644 --- a/saw/build.gradle +++ b/saw/build.gradle @@ -22,8 +22,9 @@ jar { 'Main-Class' : 'saw.Main', 'Class-Path' : configurations.runtimeClasspath.files .findAll { it.name.endsWith(".jar") }.collect { "lib/${it.name}" }.join(' '), + 'SplashScreen-Image' : 'saw/images/splash.png' ) - jar.archiveName = "SAW.jar" + archiveName = "SAW.jar" } task deleteAssets { From 2d77059adefa69e8267198af6fb35731f55842cb Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sun, 17 Dec 2023 09:06:59 -0800 Subject: [PATCH 196/199] Equipment lists always have scrollbars as needed Also standardize related scroll pane vars and update forms --- saw/src/main/java/saw/gui/frmVee.form | 6 +++--- saw/src/main/java/saw/gui/frmVee.java | 13 ++++++----- saw/src/main/java/saw/gui/frmVeeWide.form | 6 +++--- saw/src/main/java/saw/gui/frmVeeWide.java | 2 +- ssw/src/main/java/ssw/gui/frmMain.form | 10 ++++----- ssw/src/main/java/ssw/gui/frmMain.java | 25 +++++++++++----------- ssw/src/main/java/ssw/gui/frmMainWide.form | 4 ++-- ssw/src/main/java/ssw/gui/frmMainWide.java | 10 ++++----- 8 files changed, 37 insertions(+), 39 deletions(-) diff --git a/saw/src/main/java/saw/gui/frmVee.form b/saw/src/main/java/saw/gui/frmVee.form index 4877e98f..77f13532 100644 --- a/saw/src/main/java/saw/gui/frmVee.form +++ b/saw/src/main/java/saw/gui/frmVee.form @@ -4354,10 +4354,10 @@ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBoxLayout"/> <SubComponents> - <Container class="javax.swing.JScrollPane" name="jScrollPane23"> + <Container class="javax.swing.JScrollPane" name="scrSelectedEquip"> <Properties> - <Property name="horizontalScrollBarPolicy" type="int" value="31"/> - <Property name="verticalScrollBarPolicy" type="int" value="22"/> + <Property name="horizontalScrollBarPolicy" type="int" value="30"/> + <Property name="verticalScrollBarPolicy" type="int" value="20"/> </Properties> <AuxValues> <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/> diff --git a/saw/src/main/java/saw/gui/frmVee.java b/saw/src/main/java/saw/gui/frmVee.java index c55e6af5..d9e19fdc 100644 --- a/saw/src/main/java/saw/gui/frmVee.java +++ b/saw/src/main/java/saw/gui/frmVee.java @@ -1199,7 +1199,7 @@ private void initComponents() { chkFCSApollo = new javax.swing.JCheckBox(); chkCASE = new javax.swing.JCheckBox(); JPanel pnlSelected = new JPanel(); - JScrollPane jScrollPane23 = new JScrollPane(); + JScrollPane scrSelectedEquip = new JScrollPane(); lstSelectedEquipment = new javax.swing.JList(); JPanel pnlEquipInfo = new JPanel(); JLabel jLabel38 = new JLabel(); @@ -3167,11 +3167,10 @@ public void mouseClicked( MouseEvent e ) { pnlSelected.setMinimumSize(new Dimension(212, 286)); pnlSelected.setLayout(new javax.swing.BoxLayout(pnlSelected, javax.swing.BoxLayout.LINE_AXIS)); - jScrollPane23.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane23.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); + scrSelectedEquip.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); + scrSelectedEquip.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); - lstSelectedEquipment.setModel( new javax.swing.DefaultListModel() - ); + lstSelectedEquipment.setModel( new javax.swing.DefaultListModel() ); lstSelectedEquipment.setMaximumSize(new Dimension(180, 225)); lstSelectedEquipment.setMinimumSize(new Dimension(180, 225)); lstSelectedEquipment.setPreferredSize(null); @@ -3204,9 +3203,9 @@ public void mousePressed( MouseEvent e ) { }; lstSelectedEquipment.addMouseListener( mlSelect ); lstSelectedEquipment.setCellRenderer( new saw.gui.EquipmentSelectedRenderer( this ) ); - jScrollPane23.setViewportView(lstSelectedEquipment); + scrSelectedEquip.setViewportView(lstSelectedEquipment); - pnlSelected.add(jScrollPane23); + pnlSelected.add(scrSelectedEquip); pnlEquipInfo.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Information")); pnlEquipInfo.setLayout(new java.awt.GridBagLayout()); diff --git a/saw/src/main/java/saw/gui/frmVeeWide.form b/saw/src/main/java/saw/gui/frmVeeWide.form index bf31bc7e..2a3a28d7 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.form +++ b/saw/src/main/java/saw/gui/frmVeeWide.form @@ -4241,10 +4241,10 @@ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBoxLayout"/> <SubComponents> - <Container class="javax.swing.JScrollPane" name="jScrollPane23"> + <Container class="javax.swing.JScrollPane" name="scrSelectedEquip"> <Properties> - <Property name="horizontalScrollBarPolicy" type="int" value="31"/> - <Property name="verticalScrollBarPolicy" type="int" value="22"/> + <Property name="horizontalScrollBarPolicy" type="int" value="30"/> + <Property name="verticalScrollBarPolicy" type="int" value="20"/> </Properties> <AuxValues> <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/> diff --git a/saw/src/main/java/saw/gui/frmVeeWide.java b/saw/src/main/java/saw/gui/frmVeeWide.java index 18684bc6..fe69ca62 100644 --- a/saw/src/main/java/saw/gui/frmVeeWide.java +++ b/saw/src/main/java/saw/gui/frmVeeWide.java @@ -2255,7 +2255,7 @@ public void mousePressed( MouseEvent e ) { }; lstSelectedEquipment.addMouseListener( mlSelect ); lstSelectedEquipment.setCellRenderer( new saw.gui.EquipmentSelectedRenderer( this ) ); - scrSelectedEquip.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + scrSelectedEquip.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); scrSelectedEquip.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); scrSelectedEquip.setViewportView(lstSelectedEquipment); pnlSelected.add(scrSelectedEquip); diff --git a/ssw/src/main/java/ssw/gui/frmMain.form b/ssw/src/main/java/ssw/gui/frmMain.form index ef5d33f7..cebc2613 100644 --- a/ssw/src/main/java/ssw/gui/frmMain.form +++ b/ssw/src/main/java/ssw/gui/frmMain.form @@ -4979,10 +4979,10 @@ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBoxLayout"/> <SubComponents> - <Container class="javax.swing.JScrollPane" name="jScrollPane23"> + <Container class="javax.swing.JScrollPane" name="scrSelectedEquip"> <Properties> - <Property name="horizontalScrollBarPolicy" type="int" value="31"/> - <Property name="verticalScrollBarPolicy" type="int" value="22"/> + <Property name="horizontalScrollBarPolicy" type="int" value="30"/> + <Property name="verticalScrollBarPolicy" type="int" value="20"/> </Properties> <AuxValues> <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/> @@ -6495,9 +6495,9 @@ <Property name="axis" type="int" value="3"/> </Layout> <SubComponents> - <Container class="javax.swing.JScrollPane" name="jScrollPane18"> + <Container class="javax.swing.JScrollPane" name="scrEquipToPlace"> <Properties> - <Property name="horizontalScrollBarPolicy" type="int" value="31"/> + <Property name="horizontalScrollBarPolicy" type="int" value="30"/> </Properties> <AuxValues> <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/> diff --git a/ssw/src/main/java/ssw/gui/frmMain.java b/ssw/src/main/java/ssw/gui/frmMain.java index 655f140c..8c0f860d 100644 --- a/ssw/src/main/java/ssw/gui/frmMain.java +++ b/ssw/src/main/java/ssw/gui/frmMain.java @@ -4913,7 +4913,7 @@ private void initComponents() { chkFCSApollo = new javax.swing.JCheckBox(); chkClanCASE = new javax.swing.JCheckBox(); pnlSelected = new javax.swing.JPanel(); - jScrollPane23 = new javax.swing.JScrollPane(); + scrSelectedEquip = new javax.swing.JScrollPane(); lstSelectedEquipment = new javax.swing.JList(); pnlControls = new javax.swing.JPanel(); btnRemoveEquip = new javax.swing.JButton(); @@ -5009,7 +5009,7 @@ private void initComponents() { lstRLCrits = new javax.swing.JList(); chkRLCASE2 = new javax.swing.JCheckBox(); pnlEquipmentToPlace = new javax.swing.JPanel(); - jScrollPane18 = new javax.swing.JScrollPane(); + scrEquipToPlace = new javax.swing.JScrollPane(); lstCritsToPlace = new javax.swing.JList(); btnRemoveItemCrits = new javax.swing.JButton(); onlLoadoutControls = new javax.swing.JPanel(); @@ -7632,11 +7632,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pnlSelected.setMinimumSize(new java.awt.Dimension(212, 286)); pnlSelected.setLayout(new javax.swing.BoxLayout(pnlSelected, javax.swing.BoxLayout.LINE_AXIS)); - jScrollPane23.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - jScrollPane23.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); + scrSelectedEquip.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); + scrSelectedEquip.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); - lstSelectedEquipment.setModel( new javax.swing.DefaultListModel() - ); + lstSelectedEquipment.setModel( new javax.swing.DefaultListModel() ); lstSelectedEquipment.setMaximumSize(new java.awt.Dimension(180, 225)); lstSelectedEquipment.setMinimumSize(new java.awt.Dimension(180, 225)); lstSelectedEquipment.setPreferredSize(null); @@ -7673,9 +7672,9 @@ public void mousePressed( MouseEvent e ) { }; lstSelectedEquipment.addMouseListener( mlSelect ); lstSelectedEquipment.setCellRenderer( new ssw.gui.EquipmentSelectedRenderer( this ) ); - jScrollPane23.setViewportView(lstSelectedEquipment); + scrSelectedEquip.setViewportView(lstSelectedEquipment); - pnlSelected.add(jScrollPane23); + pnlSelected.add(scrSelectedEquip); pnlEquipment.add(pnlSelected, new org.netbeans.lib.awtextra.AbsoluteConstraints(492, 20, 230, 300)); @@ -8847,7 +8846,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pnlEquipmentToPlace.setMinimumSize(new java.awt.Dimension(146, 330)); pnlEquipmentToPlace.setLayout(new javax.swing.BoxLayout(pnlEquipmentToPlace, javax.swing.BoxLayout.PAGE_AXIS)); - jScrollPane18.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + scrEquipToPlace.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); lstCritsToPlace.setFont( PrintConsts.BaseCritFont ); lstCritsToPlace.setModel(new javax.swing.AbstractListModel() { @@ -8917,9 +8916,9 @@ public void valueChanged(javax.swing.event.ListSelectionEvent evt) { lstCritsToPlaceValueChanged(evt); } }); - jScrollPane18.setViewportView(lstCritsToPlace); + scrEquipToPlace.setViewportView(lstCritsToPlace); - pnlEquipmentToPlace.add(jScrollPane18); + pnlEquipmentToPlace.add(scrEquipToPlace); btnRemoveItemCrits.setText("Remove Item"); btnRemoveItemCrits.setEnabled(false); @@ -14702,8 +14701,6 @@ private void setViewToolbar(boolean Visible) private javax.swing.JScrollPane jScrollPane14; private javax.swing.JScrollPane jScrollPane16; private javax.swing.JScrollPane jScrollPane17; - private javax.swing.JScrollPane jScrollPane18; - private javax.swing.JScrollPane jScrollPane23; private javax.swing.JSeparator jSeparator13; private javax.swing.JSeparator jSeparator14; private javax.swing.JSeparator jSeparator15; @@ -14955,8 +14952,10 @@ private void setViewToolbar(boolean Visible) private javax.swing.JPanel pnlWeaponsManufacturers; private javax.swing.JScrollPane scpQuirkTable; private javax.swing.JScrollPane scpWeaponManufacturers; + private javax.swing.JScrollPane scrEquipToPlace; private javax.swing.JScrollPane scrLACrits; private javax.swing.JScrollPane scrRACrits; + private javax.swing.JScrollPane scrSelectedEquip; private javax.swing.JSpinner spnBoosterMP; private javax.swing.JSpinner spnCTArmor; private javax.swing.JSpinner spnCTRArmor; diff --git a/ssw/src/main/java/ssw/gui/frmMainWide.form b/ssw/src/main/java/ssw/gui/frmMainWide.form index e9b74ec3..0bd4a11d 100644 --- a/ssw/src/main/java/ssw/gui/frmMainWide.form +++ b/ssw/src/main/java/ssw/gui/frmMainWide.form @@ -6437,9 +6437,9 @@ <Property name="axis" type="int" value="3"/> </Layout> <SubComponents> - <Container class="javax.swing.JScrollPane" name="jScrollPane18"> + <Container class="javax.swing.JScrollPane" name="scrEquipToPlace"> <Properties> - <Property name="horizontalScrollBarPolicy" type="int" value="31"/> + <Property name="horizontalScrollBarPolicy" type="int" value="30"/> </Properties> <AuxValues> <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/> diff --git a/ssw/src/main/java/ssw/gui/frmMainWide.java b/ssw/src/main/java/ssw/gui/frmMainWide.java index 855846a7..1366108c 100644 --- a/ssw/src/main/java/ssw/gui/frmMainWide.java +++ b/ssw/src/main/java/ssw/gui/frmMainWide.java @@ -4943,7 +4943,7 @@ private void initComponents() { chkRACASE2 = new javax.swing.JCheckBox(); chkRAAES = new javax.swing.JCheckBox(); pnlEquipmentToPlace = new javax.swing.JPanel(); - jScrollPane18 = new javax.swing.JScrollPane(); + scrEquipToPlace = new javax.swing.JScrollPane(); lstCritsToPlace = new javax.swing.JList(); btnRemoveItemCrits = new javax.swing.JButton(); btnAutoAllocate = new javax.swing.JButton(); @@ -8717,7 +8717,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { pnlEquipmentToPlace.setMinimumSize(new java.awt.Dimension(146, 330)); pnlEquipmentToPlace.setLayout(new javax.swing.BoxLayout(pnlEquipmentToPlace, javax.swing.BoxLayout.PAGE_AXIS)); - jScrollPane18.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + scrEquipToPlace.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); lstCritsToPlace.setFont( PrintConsts.BaseCritFont ); lstCritsToPlace.setModel(new javax.swing.AbstractListModel() { @@ -8792,9 +8792,9 @@ public void keyPressed(java.awt.event.KeyEvent evt) { lstCritsToPlaceKeyPressed(evt); } }); - jScrollPane18.setViewportView(lstCritsToPlace); + scrEquipToPlace.setViewportView(lstCritsToPlace); - pnlEquipmentToPlace.add(jScrollPane18); + pnlEquipmentToPlace.add(scrEquipToPlace); btnRemoveItemCrits.setText("Remove Item"); btnRemoveItemCrits.setEnabled(false); @@ -14533,7 +14533,6 @@ private void setViewToolbar(boolean Visible) private javax.swing.JScrollPane jScrollPane14; private javax.swing.JScrollPane jScrollPane16; private javax.swing.JScrollPane jScrollPane17; - private javax.swing.JScrollPane jScrollPane18; private javax.swing.JSeparator jSeparator13; private javax.swing.JSeparator jSeparator14; private javax.swing.JSeparator jSeparator15; @@ -14780,6 +14779,7 @@ private void setViewToolbar(boolean Visible) private javax.swing.JPanel pnlWeaponsManufacturers; private javax.swing.JScrollPane scpQuirkTable; private javax.swing.JScrollPane scpWeaponManufacturers; + private javax.swing.JScrollPane scrEquipToPlace; private javax.swing.JScrollPane scrLACrits; private javax.swing.JScrollPane scrRACrits; private javax.swing.JSpinner spnBoosterMP; From af51ba0ab7d8a81eb824bc81e3815d299b9ba88a Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Mon, 27 Nov 2023 03:05:37 -0800 Subject: [PATCH 197/199] Add option to apply weight multiplier to ammo costs ala MML --- saw/src/main/java/saw/gui/dlgPrefs.form | 34 ++++++++++++++++++- saw/src/main/java/saw/gui/dlgPrefs.java | 24 ++++++++++++- ssw/src/main/java/ssw/gui/dlgPrefs.form | 34 ++++++++++++++++++- ssw/src/main/java/ssw/gui/dlgPrefs.java | 24 ++++++++++++- .../main/java/components/CombatVehicle.java | 15 ++++++++ sswlib/src/main/java/components/Mech.java | 3 ++ 6 files changed, 130 insertions(+), 4 deletions(-) diff --git a/saw/src/main/java/saw/gui/dlgPrefs.form b/saw/src/main/java/saw/gui/dlgPrefs.form index 3e0190d6..0fcef11f 100644 --- a/saw/src/main/java/saw/gui/dlgPrefs.form +++ b/saw/src/main/java/saw/gui/dlgPrefs.form @@ -445,7 +445,7 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="2" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="11" weightX="0.0" weightY="0.0"/> + <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="11" weightX="0.0" weightY="0.0"/> </Constraint> </Constraints> @@ -537,6 +537,38 @@ </Component> </SubComponents> </Container> + <Container class="javax.swing.JPanel" name="jPanel15"> + <Properties> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder title="Cost Options"> + <Border PropertyName="innerBorder" info="org.netbeans.modules.form.compat2.border.EtchedBorderInfo"> + <EtchetBorder/> + </Border> + </TitledBorder> + </Border> + </Property> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="0" gridY="2" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="11" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + + <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> + <SubComponents> + <Component class="javax.swing.JCheckBox" name="chkCostAmmoMult"> + <Properties> + <Property name="text" type="java.lang.String" value="Apply weight mult to ammo (ala MML)"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="0" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + </SubComponents> + </Container> <Container class="javax.swing.JPanel" name="jPanel13"> <Properties> <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> diff --git a/saw/src/main/java/saw/gui/dlgPrefs.java b/saw/src/main/java/saw/gui/dlgPrefs.java index d635abf0..459412b5 100644 --- a/saw/src/main/java/saw/gui/dlgPrefs.java +++ b/saw/src/main/java/saw/gui/dlgPrefs.java @@ -81,6 +81,7 @@ private void SetState() { chkHeatAllMP.setEnabled( true ); } chkHeatUAC.setSelected( Prefs.getBoolean( "HeatACFullRate", false ) ); + chkCostAmmoMult.setSelected( Prefs.getBoolean( "CostAmmoMult", false ) ); chkAutoAddECM.setSelected( Prefs.getBoolean( "AutoAddECM", true ) ); chkMaxNotInt.setSelected( Prefs.getBoolean( "UseMaxArmorInstead", false ) ); @@ -155,6 +156,7 @@ private void SaveState() { Prefs.putBoolean( "HeatExcludeJumpMP", chkHeatJumpMP.isSelected() ); Prefs.putBoolean( "HeatExcludeAllMP", chkHeatAllMP.isSelected() ); Prefs.putBoolean( "HeatACFullRate", chkHeatUAC.isSelected() ); + Prefs.putBoolean( "CostAmmoMult", chkCostAmmoMult.isSelected() ); Prefs.putBoolean( "UseMaxArmorInstead", chkMaxNotInt.isSelected() ); Prefs.putBoolean( "ArmorUseCustomPercent", chkCustomPercents.isSelected() ); Prefs.putBoolean( "ArmorMaxHead", rdoArmorMaxHead.isSelected() ); @@ -219,6 +221,7 @@ private void SetDefaults() { Prefs.putBoolean( "HeatExcludeJumpMP", false ); Prefs.putBoolean( "HeatExcludeAllMP", false ); Prefs.putBoolean( "HeatACFullRate", false ); + Prefs.putBoolean( "CostAmmoMult", false ); Prefs.putBoolean( "UseMaxArmorInstead", false ); Prefs.putBoolean( "ArmorUseCustomPercent", false ); Prefs.putBoolean( "ArmorMaxHead", true ); @@ -298,6 +301,8 @@ private void initComponents() { chkHeatAllMP = new javax.swing.JCheckBox(); chkHeatUAC = new javax.swing.JCheckBox(); jLabel19 = new javax.swing.JLabel(); + jPanel15 = new javax.swing.JPanel(); + chkCostAmmoMult = new javax.swing.JCheckBox(); jPanel13 = new javax.swing.JPanel(); chkAutoAddECM = new javax.swing.JCheckBox(); jPanel4 = new javax.swing.JPanel(); @@ -674,10 +679,25 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; - gridBagConstraints.gridheight = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; pnlConstruction.add(jPanel8, gridBagConstraints); + jPanel15.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Cost Options")); + jPanel15.setLayout(new java.awt.GridBagLayout()); + + chkCostAmmoMult.setText("Apply weight mult to ammo (ala MML)"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 0); + jPanel15.add(chkCostAmmoMult, gridBagConstraints); + + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 2; + gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; + pnlConstruction.add(jPanel15, gridBagConstraints); + jPanel13.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Usability Options")); jPanel13.setLayout(new javax.swing.BoxLayout(jPanel13, javax.swing.BoxLayout.LINE_AXIS)); @@ -1667,6 +1687,7 @@ private void btnDefaultImagePathActionPerformed(java.awt.event.ActionEvent evt) private javax.swing.JButton btnSetDefaults; private javax.swing.JButton btnTXTPath; private javax.swing.JCheckBox chkAutoAddECM; + private javax.swing.JCheckBox chkCostAmmoMult; private javax.swing.JCheckBox chkCustomPercents; private javax.swing.JCheckBox chkGroupAmmoAtBottom; private javax.swing.JCheckBox chkHeatAllMP; @@ -1705,6 +1726,7 @@ private void btnDefaultImagePathActionPerformed(java.awt.event.ActionEvent evt) private javax.swing.JPanel jPanel12; private javax.swing.JPanel jPanel13; private javax.swing.JPanel jPanel14; + private javax.swing.JPanel jPanel15; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; diff --git a/ssw/src/main/java/ssw/gui/dlgPrefs.form b/ssw/src/main/java/ssw/gui/dlgPrefs.form index cc35cc56..49e2f094 100644 --- a/ssw/src/main/java/ssw/gui/dlgPrefs.form +++ b/ssw/src/main/java/ssw/gui/dlgPrefs.form @@ -445,7 +445,7 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="2" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="11" weightX="0.0" weightY="0.0"/> + <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="11" weightX="0.0" weightY="0.0"/> </Constraint> </Constraints> @@ -537,6 +537,38 @@ </Component> </SubComponents> </Container> + <Container class="javax.swing.JPanel" name="jPanel15"> + <Properties> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo"> + <TitledBorder title="Cost Options"> + <Border PropertyName="innerBorder" info="org.netbeans.modules.form.compat2.border.EtchedBorderInfo"> + <EtchetBorder/> + </Border> + </TitledBorder> + </Border> + </Property> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="0" gridY="2" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="11" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + + <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> + <SubComponents> + <Component class="javax.swing.JCheckBox" name="chkCostAmmoMult"> + <Properties> + <Property name="text" type="java.lang.String" value="Apply weight mult to ammo (ala MML)"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="0" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + </SubComponents> + </Container> <Container class="javax.swing.JPanel" name="jPanel13"> <Properties> <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> diff --git a/ssw/src/main/java/ssw/gui/dlgPrefs.java b/ssw/src/main/java/ssw/gui/dlgPrefs.java index 09ed407b..cb8f7e80 100644 --- a/ssw/src/main/java/ssw/gui/dlgPrefs.java +++ b/ssw/src/main/java/ssw/gui/dlgPrefs.java @@ -81,6 +81,7 @@ private void SetState() { chkHeatAllMP.setEnabled( true ); } chkHeatUAC.setSelected( Prefs.getBoolean( "HeatACFullRate", false ) ); + chkCostAmmoMult.setSelected( Prefs.getBoolean( "CostAmmoMult", false ) ); chkAutoAddECM.setSelected( Prefs.getBoolean( "AutoAddECM", true ) ); chkMaxNotInt.setSelected( Prefs.getBoolean( "UseMaxArmorInstead", false ) ); @@ -152,6 +153,7 @@ private void SaveState() { Prefs.putBoolean( "HeatExcludeJumpMP", chkHeatJumpMP.isSelected() ); Prefs.putBoolean( "HeatExcludeAllMP", chkHeatAllMP.isSelected() ); Prefs.putBoolean( "HeatACFullRate", chkHeatUAC.isSelected() ); + Prefs.putBoolean( "CostAmmoMult", chkCostAmmoMult.isSelected() ); Prefs.putBoolean( "UseMaxArmorInstead", chkMaxNotInt.isSelected() ); Prefs.putBoolean( "ArmorUseCustomPercent", chkCustomPercents.isSelected() ); Prefs.putBoolean( "ArmorMaxHead", rdoArmorMaxHead.isSelected() ); @@ -214,6 +216,7 @@ private void SetDefaults() { Prefs.putBoolean( "HeatExcludeJumpMP", false ); Prefs.putBoolean( "HeatExcludeAllMP", false ); Prefs.putBoolean( "HeatACFullRate", false ); + Prefs.putBoolean( "CostAmmoMult", false ); Prefs.putBoolean( "UseMaxArmorInstead", false ); Prefs.putBoolean( "ArmorUseCustomPercent", false ); Prefs.putBoolean( "ArmorMaxHead", true ); @@ -293,6 +296,8 @@ private void initComponents() { chkHeatAllMP = new javax.swing.JCheckBox(); chkHeatUAC = new javax.swing.JCheckBox(); jLabel19 = new javax.swing.JLabel(); + jPanel15 = new javax.swing.JPanel(); + chkCostAmmoMult = new javax.swing.JCheckBox(); jPanel13 = new javax.swing.JPanel(); chkAutoAddECM = new javax.swing.JCheckBox(); jPanel4 = new javax.swing.JPanel(); @@ -668,10 +673,25 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; - gridBagConstraints.gridheight = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; pnlConstruction.add(jPanel8, gridBagConstraints); + jPanel15.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Cost Options")); + jPanel15.setLayout(new java.awt.GridBagLayout()); + + chkCostAmmoMult.setText("Apply weight mult to ammo (ala MML)"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 0); + jPanel15.add(chkCostAmmoMult, gridBagConstraints); + + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 2; + gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; + pnlConstruction.add(jPanel15, gridBagConstraints); + jPanel13.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Usability Options")); jPanel13.setLayout(new javax.swing.BoxLayout(jPanel13, javax.swing.BoxLayout.LINE_AXIS)); @@ -1653,6 +1673,7 @@ private void btnDefaultImagePathActionPerformed(java.awt.event.ActionEvent evt) private javax.swing.JButton btnSetDefaults; private javax.swing.JButton btnTXTPath; private javax.swing.JCheckBox chkAutoAddECM; + private javax.swing.JCheckBox chkCostAmmoMult; private javax.swing.JCheckBox chkCustomPercents; private javax.swing.JCheckBox chkGroupAmmoAtBottom; private javax.swing.JCheckBox chkHeatAllMP; @@ -1691,6 +1712,7 @@ private void btnDefaultImagePathActionPerformed(java.awt.event.ActionEvent evt) private javax.swing.JPanel jPanel12; private javax.swing.JPanel jPanel13; private javax.swing.JPanel jPanel14; + private javax.swing.JPanel jPanel15; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; diff --git a/sswlib/src/main/java/components/CombatVehicle.java b/sswlib/src/main/java/components/CombatVehicle.java index fec2199a..689523a9 100644 --- a/sswlib/src/main/java/components/CombatVehicle.java +++ b/sswlib/src/main/java/components/CombatVehicle.java @@ -117,7 +117,19 @@ public class CombatVehicle implements ifUnit, ifBattleforce { 1.3, 1.3, 1.3, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6 }; + // Constructors public CombatVehicle() { + // no prefs file, create a default. + Prefs = Preferences.userRoot().node( Constants.SAWPrefs ); + Load(); + } + + public CombatVehicle( Preferences p ) { + Prefs = p; + Load(); + } + + private void Load() { OmniAvailable.SetCodes( 'E', 'X', 'E', 'E', 'D', 'E', 'X', 'E', 'E', 'D' ); OmniAvailable.SetFactions( "", "", "", "", "", "", "", "" ); OmniAvailable.SetISDates( 0, 0, false, 3010, 0, 0, false, false ); @@ -2579,6 +2591,9 @@ public double GetAmmoCosts() { retval += ( (abPlaceable) v.get( i ) ).GetCost(); } } + if( Prefs.getBoolean( "CostAmmoMult", false ) ) { + retval *= GetCostMult() * GetConfigMultiplier(); + } return retval; } else { return retval; diff --git a/sswlib/src/main/java/components/Mech.java b/sswlib/src/main/java/components/Mech.java index 66e1a367..5e67849a 100644 --- a/sswlib/src/main/java/components/Mech.java +++ b/sswlib/src/main/java/components/Mech.java @@ -3405,6 +3405,9 @@ public double GetAmmoCosts() { retval += ( (abPlaceable) v.get( i ) ).GetCost(); } } + if( Prefs.getBoolean( "CostAmmoMult", false ) ) { + retval *= GetCostMult(); + } return retval; } else { return retval; From 8f2139fe5ef792e29d927171a2bc54938381dc2b Mon Sep 17 00:00:00 2001 From: lbmaian <maian330@gmail.com> Date: Sat, 2 Dec 2023 06:37:36 -0800 Subject: [PATCH 198/199] Add option to halve heat of streaks ala MML --- saw/src/main/java/saw/gui/dlgPrefs.form | 10 +++++++++ saw/src/main/java/saw/gui/dlgPrefs.java | 13 +++++++++++ ssw/src/main/java/ssw/gui/dlgPrefs.form | 10 +++++++++ ssw/src/main/java/ssw/gui/dlgPrefs.java | 13 +++++++++++ ssw/src/main/java/ssw/gui/frmMain.form | 14 ++++++------ ssw/src/main/java/ssw/gui/frmMain.java | 16 ++++++------- ssw/src/main/java/ssw/gui/frmMainWide.form | 14 ++++++------ ssw/src/main/java/ssw/gui/frmMainWide.java | 16 ++++++------- sswlib/src/main/java/Print/PrintMech.java | 2 +- sswlib/src/main/java/components/Mech.java | 26 +++++++++++++--------- 10 files changed, 93 insertions(+), 41 deletions(-) diff --git a/saw/src/main/java/saw/gui/dlgPrefs.form b/saw/src/main/java/saw/gui/dlgPrefs.form index 0fcef11f..2fa8c143 100644 --- a/saw/src/main/java/saw/gui/dlgPrefs.form +++ b/saw/src/main/java/saw/gui/dlgPrefs.form @@ -525,6 +525,16 @@ </Constraint> </Constraints> </Component> + <Component class="javax.swing.JCheckBox" name="chkHeatStreaks"> + <Properties> + <Property name="text" type="java.lang.String" value="Streaks have 50% fire rate (ala MML)"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="0" gridY="8" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> <Component class="javax.swing.JLabel" name="jLabel19"> <Properties> <Property name="text" type="java.lang.String" value="Non-BV Heat Calculations:"/> diff --git a/saw/src/main/java/saw/gui/dlgPrefs.java b/saw/src/main/java/saw/gui/dlgPrefs.java index 459412b5..af34b811 100644 --- a/saw/src/main/java/saw/gui/dlgPrefs.java +++ b/saw/src/main/java/saw/gui/dlgPrefs.java @@ -81,6 +81,7 @@ private void SetState() { chkHeatAllMP.setEnabled( true ); } chkHeatUAC.setSelected( Prefs.getBoolean( "HeatACFullRate", false ) ); + chkHeatStreaks.setSelected( Prefs.getBoolean( "HeatStreaksHalfRate", false ) ); chkCostAmmoMult.setSelected( Prefs.getBoolean( "CostAmmoMult", false ) ); chkAutoAddECM.setSelected( Prefs.getBoolean( "AutoAddECM", true ) ); @@ -156,6 +157,7 @@ private void SaveState() { Prefs.putBoolean( "HeatExcludeJumpMP", chkHeatJumpMP.isSelected() ); Prefs.putBoolean( "HeatExcludeAllMP", chkHeatAllMP.isSelected() ); Prefs.putBoolean( "HeatACFullRate", chkHeatUAC.isSelected() ); + Prefs.putBoolean( "HeatStreaksHalfRate", chkHeatStreaks.isSelected() ); Prefs.putBoolean( "CostAmmoMult", chkCostAmmoMult.isSelected() ); Prefs.putBoolean( "UseMaxArmorInstead", chkMaxNotInt.isSelected() ); Prefs.putBoolean( "ArmorUseCustomPercent", chkCustomPercents.isSelected() ); @@ -221,6 +223,7 @@ private void SetDefaults() { Prefs.putBoolean( "HeatExcludeJumpMP", false ); Prefs.putBoolean( "HeatExcludeAllMP", false ); Prefs.putBoolean( "HeatACFullRate", false ); + Prefs.putBoolean( "HeatStreaksHalfRate", false ); Prefs.putBoolean( "CostAmmoMult", false ); Prefs.putBoolean( "UseMaxArmorInstead", false ); Prefs.putBoolean( "ArmorUseCustomPercent", false ); @@ -300,6 +303,7 @@ private void initComponents() { chkHeatJumpMP = new javax.swing.JCheckBox(); chkHeatAllMP = new javax.swing.JCheckBox(); chkHeatUAC = new javax.swing.JCheckBox(); + chkHeatStreaks = new javax.swing.JCheckBox(); jLabel19 = new javax.swing.JLabel(); jPanel15 = new javax.swing.JPanel(); chkCostAmmoMult = new javax.swing.JCheckBox(); @@ -671,6 +675,14 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 0); jPanel8.add(chkHeatUAC, gridBagConstraints); + chkHeatStreaks.setText("Streaks have 50% fire rate (ala MML)"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 8; + gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 0); + jPanel8.add(chkHeatStreaks, gridBagConstraints); + jLabel19.setText("Non-BV Heat Calculations:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; @@ -1695,6 +1707,7 @@ private void btnDefaultImagePathActionPerformed(java.awt.event.ActionEvent evt) private javax.swing.JCheckBox chkHeatJumpMP; private javax.swing.JCheckBox chkHeatOSWeapons; private javax.swing.JCheckBox chkHeatRearWeapons; + private javax.swing.JCheckBox chkHeatStreaks; private javax.swing.JCheckBox chkHeatSystems; private javax.swing.JCheckBox chkHeatUAC; private javax.swing.JCheckBox chkLoadLastMech; diff --git a/ssw/src/main/java/ssw/gui/dlgPrefs.form b/ssw/src/main/java/ssw/gui/dlgPrefs.form index 49e2f094..451594ce 100644 --- a/ssw/src/main/java/ssw/gui/dlgPrefs.form +++ b/ssw/src/main/java/ssw/gui/dlgPrefs.form @@ -525,6 +525,16 @@ </Constraint> </Constraints> </Component> + <Component class="javax.swing.JCheckBox" name="chkHeatStreaks"> + <Properties> + <Property name="text" type="java.lang.String" value="Streaks have 50% fire rate (ala MML)"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="0" gridY="8" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> <Component class="javax.swing.JLabel" name="jLabel19"> <Properties> <Property name="text" type="java.lang.String" value="Non-BV Heat Calculations:"/> diff --git a/ssw/src/main/java/ssw/gui/dlgPrefs.java b/ssw/src/main/java/ssw/gui/dlgPrefs.java index cb8f7e80..39d328a3 100644 --- a/ssw/src/main/java/ssw/gui/dlgPrefs.java +++ b/ssw/src/main/java/ssw/gui/dlgPrefs.java @@ -81,6 +81,7 @@ private void SetState() { chkHeatAllMP.setEnabled( true ); } chkHeatUAC.setSelected( Prefs.getBoolean( "HeatACFullRate", false ) ); + chkHeatStreaks.setSelected( Prefs.getBoolean( "HeatStreaksHalfRate", false ) ); chkCostAmmoMult.setSelected( Prefs.getBoolean( "CostAmmoMult", false ) ); chkAutoAddECM.setSelected( Prefs.getBoolean( "AutoAddECM", true ) ); @@ -153,6 +154,7 @@ private void SaveState() { Prefs.putBoolean( "HeatExcludeJumpMP", chkHeatJumpMP.isSelected() ); Prefs.putBoolean( "HeatExcludeAllMP", chkHeatAllMP.isSelected() ); Prefs.putBoolean( "HeatACFullRate", chkHeatUAC.isSelected() ); + Prefs.putBoolean( "HeatStreaksHalfRate", chkHeatStreaks.isSelected() ); Prefs.putBoolean( "CostAmmoMult", chkCostAmmoMult.isSelected() ); Prefs.putBoolean( "UseMaxArmorInstead", chkMaxNotInt.isSelected() ); Prefs.putBoolean( "ArmorUseCustomPercent", chkCustomPercents.isSelected() ); @@ -216,6 +218,7 @@ private void SetDefaults() { Prefs.putBoolean( "HeatExcludeJumpMP", false ); Prefs.putBoolean( "HeatExcludeAllMP", false ); Prefs.putBoolean( "HeatACFullRate", false ); + Prefs.putBoolean( "HeatStreaksHalfRate", false ); Prefs.putBoolean( "CostAmmoMult", false ); Prefs.putBoolean( "UseMaxArmorInstead", false ); Prefs.putBoolean( "ArmorUseCustomPercent", false ); @@ -295,6 +298,7 @@ private void initComponents() { chkHeatJumpMP = new javax.swing.JCheckBox(); chkHeatAllMP = new javax.swing.JCheckBox(); chkHeatUAC = new javax.swing.JCheckBox(); + chkHeatStreaks = new javax.swing.JCheckBox(); jLabel19 = new javax.swing.JLabel(); jPanel15 = new javax.swing.JPanel(); chkCostAmmoMult = new javax.swing.JCheckBox(); @@ -665,6 +669,14 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 0); jPanel8.add(chkHeatUAC, gridBagConstraints); + chkHeatStreaks.setText("Streaks have 50% fire rate (ala MML)"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 8; + gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; + gridBagConstraints.insets = new java.awt.Insets(4, 0, 0, 0); + jPanel8.add(chkHeatStreaks, gridBagConstraints); + jLabel19.setText("Non-BV Heat Calculations:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; @@ -1681,6 +1693,7 @@ private void btnDefaultImagePathActionPerformed(java.awt.event.ActionEvent evt) private javax.swing.JCheckBox chkHeatJumpMP; private javax.swing.JCheckBox chkHeatOSWeapons; private javax.swing.JCheckBox chkHeatRearWeapons; + private javax.swing.JCheckBox chkHeatStreaks; private javax.swing.JCheckBox chkHeatSystems; private javax.swing.JCheckBox chkHeatUAC; private javax.swing.JCheckBox chkLoadLastMech; diff --git a/ssw/src/main/java/ssw/gui/frmMain.form b/ssw/src/main/java/ssw/gui/frmMain.form index cebc2613..804b7b8f 100644 --- a/ssw/src/main/java/ssw/gui/frmMain.form +++ b/ssw/src/main/java/ssw/gui/frmMain.form @@ -8156,15 +8156,15 @@ <Font name="Arial" size="11" style="0"/> </Property> <Property name="horizontalAlignment" type="int" value="0"/> - <Property name="text" type="java.lang.String" value="Max Heat: 000"/> + <Property name="text" type="java.lang.String" value="Max Heat: 00.0"/> <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[77, 20]"/> + <Dimension value="[87, 20]"/> </Property> <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[77, 20]"/> + <Dimension value="[87, 20]"/> </Property> <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[77, 20]"/> + <Dimension value="[87, 20]"/> </Property> </Properties> </Component> @@ -8253,13 +8253,13 @@ <Property name="horizontalAlignment" type="int" value="0"/> <Property name="text" type="java.lang.String" value="Cost: 000,000,000"/> <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[125, 20]"/> + <Dimension value="[115, 20]"/> </Property> <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[125, 20]"/> + <Dimension value="[115, 20]"/> </Property> <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[125, 20]"/> + <Dimension value="[115, 20]"/> </Property> </Properties> </Component> diff --git a/ssw/src/main/java/ssw/gui/frmMain.java b/ssw/src/main/java/ssw/gui/frmMain.java index 8c0f860d..5213101e 100644 --- a/ssw/src/main/java/ssw/gui/frmMain.java +++ b/ssw/src/main/java/ssw/gui/frmMain.java @@ -2163,7 +2163,7 @@ public void RefreshInfoPane() { txtInfoTonnage.setText( "Tons: " + CurMech.GetCurrentTons() ); txtInfoFreeTons.setText( "Free Tons: " + ( CurMech.GetTonnage() - CurMech.GetCurrentTons() ) ); } - txtInfoMaxHeat.setText( "Max Heat: " + CurMech.GetMaxHeat() ); + txtInfoMaxHeat.setText( "Max Heat: " + String.format( "%1$,.1f", CurMech.GetMaxHeat() ) ); txtInfoHeatDiss.setText( "Heat Dissipation: " + CurMech.GetHeatSinks().TotalDissipation() ); txtInfoFreeCrits.setText( "Free Crits: " + CurMech.GetLoadout().FreeCrits() ); txtInfoUnplaced.setText( "Unplaced Crits: " + CurMech.GetLoadout().UnplacedCrits() ); @@ -9895,10 +9895,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtInfoMaxHeat.setEditable(false); txtInfoMaxHeat.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N txtInfoMaxHeat.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtInfoMaxHeat.setText("Max Heat: 000"); - txtInfoMaxHeat.setMaximumSize(new java.awt.Dimension(77, 20)); - txtInfoMaxHeat.setMinimumSize(new java.awt.Dimension(77, 20)); - txtInfoMaxHeat.setPreferredSize(new java.awt.Dimension(77, 20)); + txtInfoMaxHeat.setText("Max Heat: 00.0"); + txtInfoMaxHeat.setMaximumSize(new java.awt.Dimension(87, 20)); + txtInfoMaxHeat.setMinimumSize(new java.awt.Dimension(87, 20)); + txtInfoMaxHeat.setPreferredSize(new java.awt.Dimension(87, 20)); pnlInfoPanel.add(txtInfoMaxHeat); txtInfoHeatDiss.setEditable(false); @@ -9941,9 +9941,9 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtInfoCost.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N txtInfoCost.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtInfoCost.setText("Cost: 000,000,000"); - txtInfoCost.setMaximumSize(new java.awt.Dimension(125, 20)); - txtInfoCost.setMinimumSize(new java.awt.Dimension(125, 20)); - txtInfoCost.setPreferredSize(new java.awt.Dimension(125, 20)); + txtInfoCost.setMaximumSize(new java.awt.Dimension(115, 20)); + txtInfoCost.setMinimumSize(new java.awt.Dimension(115, 20)); + txtInfoCost.setPreferredSize(new java.awt.Dimension(115, 20)); pnlInfoPanel.add(txtInfoCost); gridBagConstraints = new java.awt.GridBagConstraints(); diff --git a/ssw/src/main/java/ssw/gui/frmMainWide.form b/ssw/src/main/java/ssw/gui/frmMainWide.form index 0bd4a11d..94aa6fea 100644 --- a/ssw/src/main/java/ssw/gui/frmMainWide.form +++ b/ssw/src/main/java/ssw/gui/frmMainWide.form @@ -7999,15 +7999,15 @@ <Font name="Arial" size="11" style="0"/> </Property> <Property name="horizontalAlignment" type="int" value="0"/> - <Property name="text" type="java.lang.String" value="Max Heat: 000"/> + <Property name="text" type="java.lang.String" value="Max Heat: 00.0"/> <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[77, 20]"/> + <Dimension value="[87, 20]"/> </Property> <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[77, 20]"/> + <Dimension value="[87, 20]"/> </Property> <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[77, 20]"/> + <Dimension value="[87, 20]"/> </Property> </Properties> </Component> @@ -8096,13 +8096,13 @@ <Property name="horizontalAlignment" type="int" value="0"/> <Property name="text" type="java.lang.String" value="Cost: 000,000,000"/> <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[125, 20]"/> + <Dimension value="[115, 20]"/> </Property> <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[125, 20]"/> + <Dimension value="[115, 20]"/> </Property> <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[125, 20]"/> + <Dimension value="[115, 20]"/> </Property> </Properties> </Component> diff --git a/ssw/src/main/java/ssw/gui/frmMainWide.java b/ssw/src/main/java/ssw/gui/frmMainWide.java index 1366108c..b916b727 100644 --- a/ssw/src/main/java/ssw/gui/frmMainWide.java +++ b/ssw/src/main/java/ssw/gui/frmMainWide.java @@ -2157,7 +2157,7 @@ public void RefreshInfoPane() { txtInfoTonnage.setText( "Tons: " + CurMech.GetCurrentTons() ); txtInfoFreeTons.setText( "Free Tons: " + ( CurMech.GetTonnage() - CurMech.GetCurrentTons() ) ); } - txtInfoMaxHeat.setText( "Max Heat: " + CurMech.GetMaxHeat() ); + txtInfoMaxHeat.setText( "Max Heat: " + String.format( "%1$,.1f", CurMech.GetMaxHeat() ) ); txtInfoHeatDiss.setText( "Heat Dissipation: " + CurMech.GetHeatSinks().TotalDissipation() ); txtInfoFreeCrits.setText( "Free Crits: " + CurMech.GetLoadout().FreeCrits() ); txtInfoUnplaced.setText( "Unplaced Crits: " + CurMech.GetLoadout().UnplacedCrits() ); @@ -9718,10 +9718,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtInfoMaxHeat.setEditable(false); txtInfoMaxHeat.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N txtInfoMaxHeat.setHorizontalAlignment(javax.swing.JTextField.CENTER); - txtInfoMaxHeat.setText("Max Heat: 000"); - txtInfoMaxHeat.setMaximumSize(new java.awt.Dimension(77, 20)); - txtInfoMaxHeat.setMinimumSize(new java.awt.Dimension(77, 20)); - txtInfoMaxHeat.setPreferredSize(new java.awt.Dimension(77, 20)); + txtInfoMaxHeat.setText("Max Heat: 00.0"); + txtInfoMaxHeat.setMaximumSize(new java.awt.Dimension(87, 20)); + txtInfoMaxHeat.setMinimumSize(new java.awt.Dimension(87, 20)); + txtInfoMaxHeat.setPreferredSize(new java.awt.Dimension(87, 20)); pnlInfoPanel.add(txtInfoMaxHeat); txtInfoHeatDiss.setEditable(false); @@ -9764,9 +9764,9 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtInfoCost.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N txtInfoCost.setHorizontalAlignment(javax.swing.JTextField.CENTER); txtInfoCost.setText("Cost: 000,000,000"); - txtInfoCost.setMaximumSize(new java.awt.Dimension(125, 20)); - txtInfoCost.setMinimumSize(new java.awt.Dimension(125, 20)); - txtInfoCost.setPreferredSize(new java.awt.Dimension(125, 20)); + txtInfoCost.setMaximumSize(new java.awt.Dimension(115, 20)); + txtInfoCost.setMinimumSize(new java.awt.Dimension(115, 20)); + txtInfoCost.setPreferredSize(new java.awt.Dimension(115, 20)); pnlInfoPanel.add(txtInfoCost); txtChatInfo.setBackground(new java.awt.Color(238, 238, 238)); diff --git a/sswlib/src/main/java/Print/PrintMech.java b/sswlib/src/main/java/Print/PrintMech.java index 8eea5c96..c0700074 100644 --- a/sswlib/src/main/java/Print/PrintMech.java +++ b/sswlib/src/main/java/Print/PrintMech.java @@ -553,7 +553,7 @@ private void DrawMechData( Graphics2D graphics ) { graphics.drawString( String.format( "%1$,d", CurMech.GetCurrentBV() ), p[PrintConsts.BV2].x, p[PrintConsts.BV2].y ); else graphics.drawString( String.format( "%1$,.0f (Base: %2$,d)", BV, CurMech.GetCurrentBV() ), p[PrintConsts.BV2].x, p[PrintConsts.BV2].y ); - graphics.drawString( "Weapon Heat (" + CurMech.GetWeaponHeat(false, false, true, false) + ")", p[PrintConsts.MAX_HEAT].x-1, p[PrintConsts.MAX_HEAT].y-7 ); + graphics.drawString( String.format( "Weapon Heat (%1$,.1f)", CurMech.GetWeaponHeat() ), p[PrintConsts.MAX_HEAT].x-1, p[PrintConsts.MAX_HEAT].y-7 ); graphics.drawString( "Dissipation (" + CurMech.GetHeatSinks().TotalDissipation() + ")", p[PrintConsts.MAX_HEAT].x-1, p[PrintConsts.MAX_HEAT].y+1 ); //graphics.drawString( "Weapon Heat (" + CurMech.GetWeaponHeat(false, false, true, false) + ")", p[PrintConsts.MAX_HEAT].x-1, p[PrintConsts.MAX_HEAT].y ); graphics.setFont( PrintConsts.SmallFont ); diff --git a/sswlib/src/main/java/components/Mech.java b/sswlib/src/main/java/components/Mech.java index 5e67849a..fb72cddf 100644 --- a/sswlib/src/main/java/components/Mech.java +++ b/sswlib/src/main/java/components/Mech.java @@ -2165,9 +2165,9 @@ public double GetCurrentDryTons() { return result; } - public int GetMaxHeat() { + public double GetMaxHeat() { // returns the maximum heat of the mech - int result = 0; + double result = 0; result += GetMovementHeat(); result += GetWeaponHeat(); if( ! Prefs.getBoolean( "HeatExcludeSystems", false ) ) { @@ -2287,11 +2287,12 @@ public int GetBVMovementHeat() { } } - public int GetWeaponHeat() + public double GetWeaponHeat() { return GetWeaponHeat(Prefs.getBoolean("HeatExcludeOS", false), Prefs.getBoolean( "HeatExcludeRear", false), - Prefs.getBoolean( "HeatACFullRate", true), + Prefs.getBoolean( "HeatACFullRate", false), + Prefs.getBoolean( "HeatStreaksHalfRate", false), Prefs.getBoolean( "HeatExcludeEquips", false)); } @@ -2299,17 +2300,19 @@ public int GetWeaponHeat() * * @param ExcludeOS * @param ExcludeRear - * @param FullRate + * @param ACFullRate + * @param StreaksHalfRate * @param ExcludeEquip * @return int representing the total weapon heat limited by the exclusions provided */ - public int GetWeaponHeat(boolean ExcludeOS, + public double GetWeaponHeat(boolean ExcludeOS, boolean ExcludeRear, - boolean FullRate, + boolean ACFullRate, + boolean StreaksHalfRate, boolean ExcludeEquip) { // returns the heat generated by weaponry and equipment that are not // core components - int result = 0; + double result = 0; ArrayList v = CurLoadout.GetNonCore(); if( v.size() <= 0 ) { return result; @@ -2321,14 +2324,17 @@ public int GetWeaponHeat(boolean ExcludeOS, if( a instanceof ifWeapon ) { boolean OS = ((ifWeapon) a).IsOneShot(); boolean Rear = a.IsMountedRear(); - int rate = 1; - if( ( a instanceof RangedWeapon ) && FullRate ) { + double rate = 1; + if( ( a instanceof RangedWeapon ) && ACFullRate ) { if( ((RangedWeapon) a).IsUltra() ) { rate = 2; } else if( ((RangedWeapon) a).IsRotary() ) { rate = 6; } } + if( ((ifWeapon) a).IsStreak() && StreaksHalfRate ) { + rate = 0.5; + } if( ExcludeOS || ExcludeRear ) { if( ExcludeOS ) { if( ExcludeRear ) { From 382a4828d3bb83084f7d9e82b6dadca4776c9441 Mon Sep 17 00:00:00 2001 From: WEKarnesky99 <wekarnesky@gmail.com> Date: Sun, 14 Jan 2024 11:46:54 -0800 Subject: [PATCH 199/199] move from Snapshot to stable --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 55aa90e2..b9833f03 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { allprojects { version '0.7.6.1' ext { - release='Snapshot' + release='Stable' rev=versionDetails().gitHash } jar {