package senseiTests.domainsTest; import java.awt.CardLayout; import java.awt.Dimension; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JPanel; class EditablePhasePanel extends PhasePanel implements ItemListener { public EditablePhasePanel(String name, PhasePanelUser user) { super(name); this.user=user; } /** * maxPhases is not displayed, is used just to limit the number of items to be shown. Use 0 for default * behaviour */ public void display(int phaseNumber, int maxPhases, boolean ended) { setMaxPhases(maxPhases); SwingThreadedChanger.setSelectedIndex(phaseTermination,ended? 0 : 1); display(phaseNumber); ((CardLayout)(selector.getLayout())).first(selector); } public boolean getPhaseTermination() { return phaseTermination.getSelectedIndex()==0; } /** * Implementation method, not intended to be directly public */ public void itemStateChanged(ItemEvent e) { if (e.getStateChange()==ItemEvent.SELECTED) user.phaseChanged(((Integer) (e.getItem())).intValue()); } JPanel createValidPanel(String name) { JPanel ret = super.createValidPanel(name); phaseTermination = new JComboBox(possibleStates); boxPhase.add(Box.createRigidArea(new Dimension(5,5))); boxPhase.add(new JLabel("ended: ")); boxPhase.add(phaseTermination); phase.setEnabled(true); phase.addItemListener(this); return ret; } JComboBox phaseTermination; PhasePanelUser user; static final String[] possibleStates=new String[2]; static { possibleStates[0]=new String("YES"); possibleStates[1]=new String("NO"); } };