15
15
*/
16
16
package megameklab .ui .infantry ;
17
17
18
+ import java .awt .BorderLayout ;
19
+ import java .awt .CardLayout ;
20
+ import java .awt .Color ;
21
+ import java .awt .Dimension ;
22
+ import java .awt .GridBagConstraints ;
23
+ import java .awt .GridBagLayout ;
24
+ import java .awt .Insets ;
25
+ import java .awt .event .ActionEvent ;
26
+ import java .awt .event .ActionListener ;
27
+ import java .util .ArrayList ;
28
+ import java .util .Enumeration ;
29
+ import javax .swing .*;
30
+ import javax .swing .JSpinner .DefaultEditor ;
31
+ import javax .swing .event .ChangeEvent ;
32
+ import javax .swing .event .ChangeListener ;
33
+ import javax .swing .event .DocumentEvent ;
34
+ import javax .swing .event .DocumentListener ;
35
+ import javax .swing .event .ListSelectionEvent ;
36
+ import javax .swing .event .ListSelectionListener ;
37
+ import javax .swing .table .TableColumn ;
38
+ import javax .swing .table .TableRowSorter ;
39
+
18
40
import megamek .client .ui .models .XTableColumnModel ;
19
41
import megamek .common .EquipmentType ;
20
42
import megamek .common .ITechManager ;
26
48
import megameklab .ui .util .RefreshListener ;
27
49
import megameklab .util .CConfig ;
28
50
29
- import javax .swing .*;
30
- import javax .swing .JSpinner .DefaultEditor ;
31
- import javax .swing .event .*;
32
- import javax .swing .table .TableColumn ;
33
- import javax .swing .table .TableRowSorter ;
34
- import java .awt .*;
35
- import java .awt .event .ActionEvent ;
36
- import java .awt .event .ActionListener ;
37
- import java .util .ArrayList ;
38
- import java .util .Enumeration ;
39
-
40
51
public class CIArmorView extends IView implements ActionListener , ChangeListener {
41
52
private RefreshListener refresh = null ;
42
53
@@ -64,6 +75,10 @@ public class CIArmorView extends IView implements ActionListener, ChangeListener
64
75
JCheckBox chSneakIR = new JCheckBox ();
65
76
JCheckBox chSneakECM = new JCheckBox ();
66
77
private JSpinner armorValue = new JSpinner (new SpinnerNumberModel (1.0 , 0.5 , 3.0 , 0.5 ));
78
+
79
+ private final JLabel lblSneakWarning = new JLabel ("Warning: Setting both DEST and Sneak properties on custom armor " +
80
+ "may cause issues in the display of the armor kit " +
81
+ "information." );
67
82
68
83
public CIArmorView (EntitySource eSource , ITechManager techManager ) {
69
84
super (eSource );
@@ -255,11 +270,21 @@ private void setUpPanels() {
255
270
chSneakECM .setText ("Sneak (ECM)" );
256
271
gbc .gridx = 1 ;
257
272
gbc .gridy = 3 ;
258
- gbc .weightx = 1.0 ;
259
- gbc .weighty = 1.0 ;
273
+ gbc .weightx = 1 ;
274
+ gbc .weighty = 0.01 ;
260
275
customView .add (chSneakECM , gbc );
261
276
262
- equipmentView .add (customView , CARD_CUSTOM );
277
+ lblSneakWarning .setForeground (Color .RED );
278
+ lblSneakWarning .setVisible (false );
279
+ gbc .gridx = 0 ;
280
+ gbc .gridy = 4 ;
281
+ gbc .weightx = 0 ;
282
+ gbc .weighty = 1 ;
283
+ gbc .gridwidth = 2 ;
284
+ customView .add (lblSneakWarning , gbc );
285
+
286
+ equipmentView .add (customView , CARD_CUSTOM );
287
+ // equipmentView.add(lblSneakWarning);
263
288
}
264
289
265
290
public JLabel createLabel (String text , Dimension maxSize ) {
@@ -300,6 +325,16 @@ public void refresh() {
300
325
chSneakIR .setEnabled (true );
301
326
chSneakECM .setEnabled (true );
302
327
}
328
+
329
+ if (getInfantry ().hasDEST () && (
330
+ getInfantry ().hasSneakCamo () || getInfantry ().hasSneakIR () || getInfantry ().hasSneakECM ()
331
+ )) {
332
+ lblSneakWarning .setVisible (true );
333
+ } else {
334
+ lblSneakWarning .setVisible (false );
335
+ }
336
+
337
+
303
338
filterEquipment ();
304
339
btnRemoveArmor .setEnabled (hasArmor ());
305
340
rbtnCustom .setEnabled (getInfantry ().getArmorKit () == null );
@@ -489,4 +524,4 @@ public void valueChanged(ListSelectionEvent e) {
489
524
btnSetArmor .setEnabled ((null != etype ) && eSource .getTechManager ().isLegal (etype ));
490
525
}
491
526
};
492
- }
527
+ }
0 commit comments