package hermes.browser.dialog.general;
import hermes.config.HermesConfig;
import java.awt.Color;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;
import javax.swing.SwingConstants;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;
import com.jgoodies.forms.factories.FormFactory;
import com.jgoodies.forms.layout.ColumnSpec;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.forms.layout.RowSpec;
public class FIXPreferences extends JPanel {
private static final long serialVersionUID = 1L;
private JCheckBox filterSessionMessages;
private JSpinner spinner;
private JLabel lblMessageCache;
/**
* Create the panel.
*/
public FIXPreferences() {
setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null), "FIX Protocol", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
setLayout(new FormLayout(new ColumnSpec[] {
FormFactory.RELATED_GAP_COLSPEC,
ColumnSpec.decode("default:grow"),
FormFactory.RELATED_GAP_COLSPEC,
ColumnSpec.decode("default:grow"),
FormFactory.RELATED_GAP_COLSPEC,
ColumnSpec.decode("default:grow"),
FormFactory.RELATED_GAP_COLSPEC,
ColumnSpec.decode("default:grow"),
FormFactory.RELATED_GAP_COLSPEC,},
new RowSpec[] {
FormFactory.RELATED_GAP_ROWSPEC,
FormFactory.DEFAULT_ROWSPEC,
FormFactory.RELATED_GAP_ROWSPEC,
FormFactory.DEFAULT_ROWSPEC,
FormFactory.RELATED_GAP_ROWSPEC,
FormFactory.DEFAULT_ROWSPEC,
FormFactory.RELATED_GAP_ROWSPEC,}));
filterSessionMessages = new JCheckBox("Filter Session Messages");
filterSessionMessages.setHorizontalAlignment(SwingConstants.RIGHT);
filterSessionMessages.setHorizontalTextPosition(SwingConstants.LEFT) ;
add(filterSessionMessages, "2, 2");
lblMessageCache = new JLabel("Message Cache:");
lblMessageCache.setHorizontalAlignment(SwingConstants.RIGHT);
add(lblMessageCache, "6, 2");
spinner = new JSpinner();
spinner.setModel(new SpinnerNumberModel(new Integer(1024), null, null, new Integer(1)));
add(spinner, "8, 2");
}
public void setConfig(HermesConfig config) {
filterSessionMessages.setSelected(config.getQuickFIX().isFilterSessionMsgTypes()) ;
spinner.getModel().setValue(config.getQuickFIX().getCacheSize()) ;
}
public void updateConfig(HermesConfig config) {
config.getQuickFIX().setFilterSessionMsgTypes(filterSessionMessages.isSelected()) ;
config.getQuickFIX().setCacheSize((Integer) spinner.getModel().getValue()) ;
}
}