/* RemoveCodecAction.java created 2007-09-19
*
*/
package org.signalml.app.action.signal;
import static org.signalml.app.util.i18n.SvarogI18n._;
import java.awt.event.ActionEvent;
import java.io.IOException;
import org.apache.log4j.Logger;
import org.signalml.app.config.ApplicationConfiguration;
import org.signalml.codec.SignalMLCodec;
import org.signalml.codec.SignalMLCodecManager;
import org.signalml.codec.SignalMLCodecSelector;
import org.signalml.plugin.export.view.AbstractSignalMLAction;
/** RemoveCodecAction
*
*
* @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o.
*/
public class RemoveCodecAction extends AbstractSignalMLAction {
private static final long serialVersionUID = 1L;
protected static final Logger logger = Logger.getLogger(RemoveCodecAction.class);
private SignalMLCodecManager codecManager;
private SignalMLCodecSelector selector;
private ApplicationConfiguration applicationConfig;
public RemoveCodecAction() {
super();
setText(_("Remove codec"));
}
@Override
public void actionPerformed(ActionEvent ev) {
logger.debug("Remove codec");
SignalMLCodec codec = selector.getSelectedCodec();
if (codec == null) {
return;
}
int index = codecManager.getIndexOfCodec(codec);
if (index < 0) {
return;
}
codecManager.removeSignalMLCodecAt(index);
int count = codecManager.getCodecCount();
if (count > 0) {
if (index >= count) {
index = count - 1;
}
selector.setSelectedCodec(codecManager.getCodecAt(index));
} else {
selector.setSelectedCodec(null);
}
if (applicationConfig.isSaveConfigOnEveryChange()) {
try {
codecManager.writeToPersistence(null);
} catch (IOException ex) {
logger.error("Failed to save codec configuration", ex);
}
}
}
@Override
public void setEnabledAsNeeded() {
setEnabled(selector != null && selector.getSelectedCodec() != null);
}
public SignalMLCodecManager getCodecManager() {
return codecManager;
}
public void setCodecManager(SignalMLCodecManager codecManager) {
this.codecManager = codecManager;
}
public SignalMLCodecSelector getSelector() {
return selector;
}
public void setSelector(SignalMLCodecSelector selector) {
if (this.selector != selector) {
this.selector = selector;
setEnabledAsNeeded();
}
}
public ApplicationConfiguration getApplicationConfig() {
return applicationConfig;
}
public void setApplicationConfig(ApplicationConfiguration applicationConfig) {
this.applicationConfig = applicationConfig;
}
}