/** Preserve current listeners so that there is no gap to miss a propertyChange */ public synchronized void init() { ArrayList<Warrant> tempList = new ArrayList<Warrant>(); List<String> systemNameList = _manager.getSystemNameList(); Iterator<String> iter = systemNameList.iterator(); // copy over warrants still listed while (iter.hasNext()) { Warrant w = _manager.getBySystemName(iter.next()); if (!_warList.contains(w)) { // new warrant w.addPropertyChangeListener(this); } else { _warList.remove(w); } tempList.add(w); // add old or any new warrants } // remove listeners from any deleted warrants for (int i = 0; i < _warList.size(); i++) { Warrant w = _warList.get(i); if (!_warNX.contains(w)) { // don't touch current running NXWarrant w.removePropertyChangeListener(this); } } // add in current temporary NX warrants for (int i = 0; i < _warNX.size(); i++) { tempList.add(_warNX.get(i)); } _warList = tempList; }
/** Removes any warrant, not just NXWarrant */ public void removeNXWarrant(Warrant w) { w.removePropertyChangeListener(this); _warList.remove(w); _warNX.remove(w); _manager.deregister(w); w.dispose(); }
@Override public NamedBean getByUserName(String name) { return _manager.getByUserName(name); }
@Override public String getValue(String name) { return _manager.getBySystemName(name).getDisplayName(); }