/* SignalMLCodecListModel.java created 2007-09-17
*
*/
package org.signalml.app.model.signal;
import javax.swing.AbstractListModel;
import javax.swing.ComboBoxModel;
import org.signalml.codec.SignalMLCodecManager;
import org.signalml.codec.SignalMLCodecManagerEvent;
import org.signalml.codec.SignalMLCodecManagerListener;
/** SignalMLCodecListModel
*
*
* @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o.
*/
public class SignalMLCodecListModel extends AbstractListModel implements ComboBoxModel, SignalMLCodecManagerListener {
private static final long serialVersionUID = 1L;
private SignalMLCodecManager codecManager;
private Object selectedObject;
public SignalMLCodecListModel() {
super();
}
public SignalMLCodecManager getCodecManager() {
return codecManager;
}
public void setCodecManager(SignalMLCodecManager codecManager) {
if (this.codecManager != codecManager) {
if (this.codecManager != null) {
this.codecManager.removeSignalMLCodecManagerListener(this);
}
this.codecManager = codecManager;
if (codecManager != null) {
codecManager.addSignalMLCodecManagerListener(this);
}
}
}
@Override
public int getSize() {
return codecManager.getCodecCount();
}
@Override
public Object getElementAt(int index) {
return codecManager.getCodecAt(index);
}
@Override
public Object getSelectedItem() {
return selectedObject;
}
@Override
public void setSelectedItem(Object anItem) {
this.selectedObject = anItem;
}
@Override
public void codecAdded(SignalMLCodecManagerEvent ev) {
int index = ev.getIndex();
fireIntervalAdded(this, index, index);
}
@Override
public void codecRemoved(SignalMLCodecManagerEvent ev) {
int index = ev.getIndex();
fireIntervalRemoved(this, index, index);
}
@Override
public void codecsChanged(SignalMLCodecManagerEvent ev) {
int cnt = codecManager.getCodecCount();
fireContentsChanged(this, 0, cnt-1);
}
}