ActionUpdateOptionsNumber.java
package com.github.celldynamics.quimp.plugin.protanalysis;
import java.awt.event.ActionEvent;
import javax.swing.JComboBox;
import org.apache.commons.lang3.mutable.MutableInt;
/**
* Create action for updating numbers in options from JComboBox<>.
*
* <p>Only Number and String are supported as items of JComboBox.
*
* @author p.baniukiewicz
*
*/
@SuppressWarnings("serial")
public class ActionUpdateOptionsNumber extends ProtAnalysisAbstractAction {
private MutableInt val;
/**
* Main constructor.
*
* @param name name
* @param desc description
* @param ui reference to outer class
* @param option reference to parameter to be changed
*/
public ActionUpdateOptionsNumber(String name, String desc, ProtAnalysisUi ui,
MutableInt option) {
super(name, desc, ui);
this.val = option;
}
/*
* (non-Javadoc)
*
* @see
* com.github.celldynamics.quimp.plugin.protanalysis.ProtAnalysisAbstractAction#actionPerformed(
* java.awt.event.ActionEvent)
*/
@Override
public void actionPerformed(ActionEvent e) {
JComboBox<?> cmp = ((JComboBox<?>) e.getSource());
Object item = cmp.getSelectedItem();
if (item instanceof Number) { // for JComboBox<Number> just get selected value
Number num = (Number) item;
val.setValue(num);
} else {
if (item instanceof String) { // for JComboBox<String> get index of selected item
int num = cmp.getSelectedIndex();
val.setValue(num);
} else {
throw new RuntimeException("This JComboBox is not supported");
}
}
logger.trace(ui.getModel().getOptions().serialize());
}
}