View Javadoc

1   // %1476100437:hoplugins.trainingExperience.ui%
2   package hoplugins.trainingExperience.ui;
3   
4   import hoplugins.Commons;
5   import hoplugins.TrainingExperience;
6   
7   import plugins.IHOMiniModel;
8   
9   import java.awt.BorderLayout;
10  import java.awt.GridLayout;
11  import java.awt.event.ItemEvent;
12  import java.awt.event.ItemListener;
13  
14  import javax.swing.JComboBox;
15  import javax.swing.JLabel;
16  import javax.swing.JPanel;
17  import javax.swing.JScrollPane;
18  
19  
20  /***
21   * Panel where the user can specify a different number of assistant and coach level for testing
22   * effects
23   *
24   * @author <a href=mailto:draghetto@users.sourceforge.net>Massimiliano Amato</a>
25   */
26  public class StaffPanel extends JPanel {
27      //~ Instance fields ----------------------------------------------------------------------------
28  
29      /*** Number of Assistant ComboBox */
30      private JComboBox coTrainer;
31  
32      /*** Number of Keeper Assistant ComboBox */
33      private JComboBox keeperTrainer;
34  
35      /*** The combo boxes */
36      private JComboBox trainerLevel;
37  
38      /*** the current number of coTrainer */
39      private int coTrainerNumber;
40  
41      /*** the current number of keeper Trainer */
42      private int keeperTrainerNumber;
43  
44      /*** the current level of the coach */
45      private int trainerLevelNumber;
46  
47      //~ Constructors -------------------------------------------------------------------------------
48  
49      /***
50       * Creates a new StaffPanel object.
51       */
52      public StaffPanel() {
53          super();
54          jbInit();
55      }
56  
57      //~ Methods ------------------------------------------------------------------------------------
58  
59      /***
60       * Returns the number of Assistant Trainer
61       *
62       * @return
63       */
64      public int getCoTrainerNumber() {
65          return coTrainerNumber;
66      }
67  
68      /***
69       * Returns the number of keeper Trainer
70       *
71       * @return
72       */
73      public int getKeeperTrainerNumber() {
74          return keeperTrainerNumber;
75      }
76  
77      /***
78       * Returns the ability of your trainer
79       *
80       * @return
81       */
82      public int getTrainerLevelNumber() {
83          return trainerLevelNumber;
84      }
85  
86      /***
87       * Populate the staff with HO actual value, called after each Ho refresh command!
88       */
89      public void reload() {
90          setKeeper(Commons.getModel().getVerein().getTorwartTrainer());
91          setCoTrainer(Commons.getModel().getVerein().getCoTrainer());
92          setTrainer(Commons.getModel().getTrainer().getTrainer() - 1);
93      }
94  
95      /***
96       * Populate the Assistant Trainer combobox
97       */
98      private void setAssistantComboBox() {
99          coTrainer = new JComboBox();
100 
101         for (int i = 0; i < 11; i++) {
102             coTrainer.addItem(new Integer(i));
103         }
104     }
105 
106     /***
107      * TODO Missing Method Documentation
108      *
109      * @param value TODO Missing Method Parameter Documentation
110      */
111     private void setCoTrainer(int value) {
112         if (value > 10) {
113             value = 10;
114         }
115 
116         try {
117             coTrainer.setSelectedIndex(value);
118         } catch (Exception e) {
119         }
120     }
121 
122     /***
123      * TODO Missing Method Documentation
124      *
125      * @param value TODO Missing Method Parameter Documentation
126      */
127     private void setKeeper(int value) {
128         if (value > 10) {
129             value = 10;
130         }
131 
132         try {
133             keeperTrainer.setSelectedIndex(value);
134         } catch (Exception e) {
135         }
136     }
137 
138     /***
139      * Populate the Keeper Trainer combobox
140      */
141     private void setKeeperAssistantComboBox() {
142         keeperTrainer = new JComboBox();
143 
144         for (int i = 0; i < 11; i++) {
145             keeperTrainer.addItem(new Integer(i));
146         }
147     }
148 
149     /***
150      * TODO Missing Method Documentation
151      *
152      * @param value TODO Missing Method Parameter Documentation
153      */
154     private void setTrainer(int value) {
155         if (value > 10) {
156             value = 10;
157         }
158 
159         try {
160             trainerLevel.setSelectedIndex(value);
161         } catch (Exception e) {
162         }
163     }
164 
165     /***
166      * Populate the Trainer Level combobox
167      */
168     private void setTrainerComboBox() {
169         IHOMiniModel model = Commons.getModel();
170 
171         trainerLevel = new JComboBox();
172 
173         for (int i = 1; i < 9; i++) {
174             trainerLevel.addItem(model.getHelper().getNameForSkill(i, false));
175         }
176     }
177 
178     /***
179      * Initialize the object layout
180      */
181     private void jbInit() {
182         IHOMiniModel model = Commons.getModel();
183         JPanel main = model.getGUI().createImagePanel();
184 
185         main.setLayout(new GridLayout(3, 2));
186 
187         // initiates the co trainer combo box with the actual number of co trainer
188         setAssistantComboBox();
189 
190         try {
191             coTrainerNumber = model.getVerein().getCoTrainer();
192         } catch (RuntimeException e3) {
193             coTrainerNumber = 0;
194         }
195 
196         setCoTrainer(coTrainerNumber);
197         coTrainer.addItemListener(new ItemListener() {
198                 public void itemStateChanged(ItemEvent e) {
199                     // Sets new number of cotrainer
200                     Integer n = (Integer) coTrainer.getSelectedItem();
201 
202                     coTrainerNumber = n.intValue();
203 
204                     // sets number of keeper trainer i exceded 10
205                     if ((keeperTrainerNumber + coTrainerNumber) > 10) {
206                         keeperTrainerNumber = 10 - coTrainerNumber;
207                         keeperTrainer.setSelectedIndex(keeperTrainerNumber);
208                     }
209 
210                     // refresh player detail and prevision with the new staff settings
211                     TrainingExperience.refreshPlayerDetail();
212                 }
213             });
214 
215         // initiates the coach combo box with the actual level of coach
216         setTrainerComboBox();
217 
218         try {
219             trainerLevelNumber = model.getTrainer().getTrainer();
220         } catch (RuntimeException e1) {
221             trainerLevelNumber = 4;
222         }
223 
224         setTrainer(trainerLevelNumber - 1);
225         trainerLevel.addItemListener(new ItemListener() {
226                 public void itemStateChanged(ItemEvent e) {
227                     // sets the new coach ability, recalculate data and  refresh
228                     trainerLevelNumber = trainerLevel.getSelectedIndex() + 1;
229                     TrainingExperience.refreshPlayerDetail();
230                 }
231             });
232 
233         // initiates the keeper trainer combo box with the actual number of keeper trainer
234         setKeeperAssistantComboBox();
235 
236         try {
237             keeperTrainerNumber = model.getVerein().getTorwartTrainer();
238         } catch (RuntimeException e2) {
239             keeperTrainerNumber = 0;
240         }
241 
242         setKeeper(keeperTrainerNumber);
243         keeperTrainer.addItemListener(new ItemListener() {
244                 public void itemStateChanged(ItemEvent e) {
245                     // Sets new number of keeper trainer
246                     Integer n = (Integer) keeperTrainer.getSelectedItem();
247 
248                     keeperTrainerNumber = n.intValue();
249 
250                     // sets number of co trainer if exceded 10
251                     if ((coTrainerNumber + keeperTrainerNumber) > 10) {
252                         coTrainerNumber = 10 - keeperTrainerNumber;
253                         coTrainer.setSelectedIndex(coTrainerNumber);
254                     }
255 
256                     // refresh player detail and prevision with the new staff settings				
257                     TrainingExperience.refreshPlayerDetail();
258                 }
259             });
260 
261         main.add(new JLabel(model.getResource().getProperty("Trainerlevel"))); //$NON-NLS-1$
262         main.add(trainerLevel);
263         main.add(new JLabel(model.getResource().getProperty("CoTrainer"))); //$NON-NLS-1$
264         main.add(coTrainer);
265         main.add(new JLabel(model.getResource().getProperty("Torwarttrainer"))); //$NON-NLS-1$
266         main.add(keeperTrainer);
267         setOpaque(false);
268         setLayout(new BorderLayout());
269         add(new JScrollPane(main), BorderLayout.CENTER);
270     }
271 }