package com.ppfold.main;
import java.awt.Dimension;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class CompIntensityGroup extends JPanel {
private static final long serialVersionUID = -6531182945482227985L;
JSpinner compIntensitySpinner;
JSpinner iterationSpinner;
public CompIntensityGroup(){
SpinnerNumberModel numberSpinnerModel = new SpinnerNumberModel(Runtime.getRuntime().availableProcessors(), 1, Runtime.getRuntime().availableProcessors(), 1);
compIntensitySpinner = new JSpinner(numberSpinnerModel);
compIntensitySpinner.setPreferredSize(new Dimension(50,20));
add(new JLabel("Computational intensity (cores):"));
compIntensitySpinner.setToolTipText("Number of processor cores to use for the calculation. Higher numbers will give faster results but your computer will be less responsive meanwhile.");
add(compIntensitySpinner);
compIntensitySpinner.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent arg0) {
PPfoldMain.nrprocessors = (Integer) compIntensitySpinner.getValue();
}
});
SpinnerNumberModel numberSpinnerModel2 = new SpinnerNumberModel(PPfoldMain.iterlimit, 1, 200, 1);
iterationSpinner = new JSpinner(numberSpinnerModel2);
iterationSpinner.setPreferredSize(new Dimension(50,20));
iterationSpinner.setToolTipText("The maximum number of times branch lengths are iterated for optimization");
add(new JLabel("Tree optimization iteration limit:"));
add(iterationSpinner);
iterationSpinner.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent arg0) {
PPfoldMain.iterlimit = (Integer) iterationSpinner.getValue();
}
});
}
@Override
public void setEnabled(boolean value){
compIntensitySpinner.setEnabled(value);
iterationSpinner.setEnabled(value);
}
}