package hermes.browser.dialog.general;
import hermes.HermesException;
import hermes.browser.HermesBrowser;
import hermes.config.HermesConfig;
import hermes.config.SessionConfig;
import java.awt.Color;
import java.util.Vector;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
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 GeneralPreferences extends JPanel {
private static final long serialVersionUID = 1L;
private JLabel lblMessageFactory;
private JComboBox comboBox;
private JLabel lblCachedMessages;
private JSpinner spinner;
private JLabel lblQueueRefreshTimeout;
private JSpinner spinner_1;
private JLabel lblConsumerTimeout;
private JSpinner spinner_2;
private JLabel lblDeleteBatch;
private JSpinner spinner_3;
private JSpinner deleteBatchSpinner;
/**
* Create the panel.
*/
public GeneralPreferences() {
setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null), "General", 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("max(40dlu;default):grow"),
FormFactory.RELATED_GAP_COLSPEC,
ColumnSpec.decode("default:grow"),
FormFactory.RELATED_GAP_COLSPEC,
ColumnSpec.decode("max(40dlu;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,}));
lblMessageFactory = new JLabel("Message Factory:");
lblMessageFactory.setHorizontalAlignment(SwingConstants.RIGHT);
add(lblMessageFactory, "2, 2, right, default");
comboBox = new JComboBox();
add(comboBox, "4, 2, fill, default");
lblCachedMessages = new JLabel("Cached Messages:");
lblCachedMessages.setHorizontalAlignment(SwingConstants.RIGHT);
add(lblCachedMessages, "6, 2");
spinner = new JSpinner();
spinner.setModel(new SpinnerNumberModel(new Integer(1000), new Integer(0), null, new Integer(1)));
add(spinner, "8, 2");
lblQueueRefreshTimeout = new JLabel("Queue Refresh (s):");
lblQueueRefreshTimeout.setHorizontalAlignment(SwingConstants.RIGHT);
add(lblQueueRefreshTimeout, "2, 4");
spinner_1 = new JSpinner();
spinner_1.setModel(new SpinnerNumberModel(new Integer(10), new Integer(1), null, new Integer(1)));
add(spinner_1, "4, 4");
lblConsumerTimeout = new JLabel("Consumer Timeout (ms):");
lblConsumerTimeout.setHorizontalAlignment(SwingConstants.RIGHT);
add(lblConsumerTimeout, "6, 4");
spinner_2 = new JSpinner();
spinner_2.setModel(new SpinnerNumberModel(new Integer(1000), new Integer(0), null, new Integer(1)));
add(spinner_2, "8, 4");
lblDeleteBatch = new JLabel("Delete Batch:");
lblDeleteBatch.setHorizontalAlignment(SwingConstants.RIGHT);
add(lblDeleteBatch, "2, 6");
deleteBatchSpinner = new JSpinner(new SpinnerNumberModel(50, 1, 10000, 1));
add(deleteBatchSpinner, "4, 6");
}
public void setConfig(HermesConfig config) throws HermesException {
spinner.getModel().setValue(config.getMaxMessagesInBrowserPane());
spinner_1.getModel().setValue(config.getAutoBrowseRefreshRate());
spinner_2.getModel().setValue(config.getQueueBrowseConsumerTimeout().intValue());
Vector<String> sessionNames = new Vector<String>() ;
for (SessionConfig sessionConfig : HermesBrowser.getBrowser().getConfigDAO().getAllSessions(config)) {
sessionNames.add(sessionConfig.getId()) ;
}
comboBox.setModel(new DefaultComboBoxModel(sessionNames)) ;
comboBox.getModel().setSelectedItem(config.getMessageStoreMessageFactory()) ;
deleteBatchSpinner.setValue(config.getDeleteBatch()) ;
}
public void updateConfig(HermesConfig config) {
config.setMaxMessagesInBrowserPane((Integer) spinner.getValue()) ;
config.setAutoBrowseRefreshRate((Integer) spinner_1.getValue());
config.setDeleteBatch((Integer) deleteBatchSpinner.getValue()) ;
config.setQueueBrowseConsumerTimeout(((Integer) spinner_2.getValue()).longValue()) ;
config.setMessageStoreMessageFactory(comboBox.getModel().getSelectedItem().toString()) ;
}
}