00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00027 package org.mpcl.nui;
00028
00029 import java.util.Observable;
00030 import java.util.Observer;
00031 import javax.swing.JComboBox;
00032
00033
00039 public class TModelComboBox extends JComboBox implements Observer
00040 {
00041
00043 private TAbstractModelToComboBoxAdapter tModelToComboBoxAdapter;
00044
00045
00046
00047
00048
00049
00055 private void readFromModel()
00056 {
00057 int iOldSelectedIndex = getSelectedIndex();
00058 int iSize = tModelToComboBoxAdapter.size();
00059
00060 removeAllItems();
00061 for (int I = 0; ( I < iSize ) ;++I)
00062 {
00063 addItem (tModelToComboBoxAdapter.getText (I));
00064 }
00065 if ( iOldSelectedIndex >= 0 )
00066 {
00067 setSelectedIndex (Math.min (iSize - 1, iOldSelectedIndex));
00068 }
00069 }
00070
00071
00072
00073
00074
00075
00080 public TModelComboBox (TAbstractModelToComboBoxAdapter tMODEL_TO_COMBO_BOX_ADAPTER)
00081 {
00082 super();
00083 tModelToComboBoxAdapter = tMODEL_TO_COMBO_BOX_ADAPTER;
00084 tModelToComboBoxAdapter.addObserver (this);
00085 readFromModel();
00086 }
00087
00093 public void setSelectedCode (Integer tCODE)
00094 {
00095 Integer tCurrentCode;
00096
00097 for (int I = 0; ( I < tModelToComboBoxAdapter.size() ) ;++I)
00098 {
00099 tCurrentCode = tModelToComboBoxAdapter.getCode (I);
00100 if ( ( tCODE == tCurrentCode ) || tCODE.equals (tCurrentCode) )
00101 {
00102 setSelectedIndex (I);
00103 break;
00104 }
00105 }
00106 }
00107
00112 public void setSelectedCode (int iCODE)
00113 {
00114 setSelectedCode (new Integer (iCODE));
00115 }
00116
00124 public void update (Observable tOBSERVABLE, Object tARGUMENT)
00125 {
00126 readFromModel();
00127 }
00128
00129
00130
00131
00132
00133
00139 public Integer getSelectedCode()
00140 {
00141 return tModelToComboBoxAdapter.getCode (getSelectedIndex());
00142 }
00143
00144 }