1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| public class SWColTypeModify extends SwingWorker<HashMap, Object> implements Observable{
public final static String STATE = "state";
public final static String COMBO_CLONE = "comboClone";
public final static String COMBO_SEARCH = "comboSearch";
private Vector obs = ObserverVector.getInstance().getVector();
private String name;
private Integer rowId;
private IndeterminateBar myBar;
private ColumnTypeData ctData = new ColumnTypeData();
public SWColTypeModify(String name, Integer id, IndeterminateBar bar) {
this.name = name;
this.rowId = id;
this.myBar = bar;
}
@Override
protected HashMap doInBackground() throws Exception {
HashMap map = new HashMap(6);
map.put(STATE, ctData.modifyRow(name, rowId));
Vector vect = ctData.fillColumnTypeCombo();
Vector vect2 = (Vector)vect.clone();
map.put(COMBO_CLONE, vect);
map.put(COMBO_SEARCH, vect2);
return map;
}
@Override
protected void done() {
try {
HashMap map = get();
if ((Boolean) map.get(STATE))
{
TextAreaLog.getInstance().setText("Update Column Type '"+name+"' informations " +
"succeeded.\n");
notifyObserver(map);
myBar.finished();
}
else
{
TextAreaLog.getInstance().setText("Update Column Type '"+name+"' informations " +
"failed.\n");
myBar.finished();
notifyObserver(map);
}
} catch (InterruptedException ex) {
Logger.getLogger(SWColTypeModify.class.getName()).log(Level.SEVERE, null, ex);
} catch (ExecutionException ex) {
Logger.getLogger(SWColTypeModify.class.getName()).log(Level.SEVERE, null, ex);
}
}
@Override
public synchronized void addObserver(Observer o) {
if(o == null)
throw new NullPointerException();
if(!obs.contains(o))
obs.addElement(o);
}
@Override
public synchronized void deleteObserver(Observer o) {
obs.remove(o);
}
@Override
public synchronized void deleteObservers() {
obs.removeAllElements();
}
@Override
public void notifyObserver(Object arg) {
for (int i = obs.size()-1; i>=0; i--)
((Observer)obs.get(i)).update(this, arg);
}
} |
Partager