/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package cli_fmw.utils.chooser;
import cli_fmw.utils.chooser.ChoosePanelComboListener;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.DefaultComboBoxModel;
/**
*
* @author axe
*/
public class ChoosePanelComboModel extends DefaultComboBoxModel {
private boolean silent;
private ArrayList<ChoosePanelComboListener> selectionListeners
= new ArrayList<ChoosePanelComboListener>();
public void addChoosePanelListener(ChoosePanelComboListener l) {
selectionListeners.add(l);
}
public void removeChoosePanelListener(ChoosePanelComboListener l) {
selectionListeners.remove(l);
}
protected void fireSelectionChange(Object newValue) throws ChoosePanelComboException {
if(silent) {
return;
}
ChoosePanelData sel = (ChoosePanelData)newValue;
Iterator it = selectionListeners.iterator();
while (it.hasNext()) {
ChoosePanelComboListener l = (ChoosePanelComboListener) it.next();
l.chooseDone(sel.type, sel.value);
}
}
@Override
public void setSelectedItem(Object anItem) {
try {
fireSelectionChange(anItem);
super.setSelectedItem(anItem);
} catch(ChoosePanelComboException ex) {
//chacge blocked by user application
}
}
public void setSilent(boolean silent) {
this.silent = silent;
}
}