/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package Sirius.navigator.ui.option;
import Sirius.navigator.connection.SessionManager;
import org.apache.log4j.Logger;
import org.jdom.Element;
import org.openide.util.lookup.ServiceProvider;
import de.cismet.cids.server.actions.CheckCidsServerMessageAction;
import de.cismet.cids.servermessage.CidsServerMessageNotifier;
import de.cismet.lookupoptions.AbstractOptionsPanel;
import de.cismet.lookupoptions.OptionsPanelController;
import de.cismet.lookupoptions.options.GeneralOptionsCategory;
import de.cismet.tools.configuration.NoWriteError;
/**
* DOCUMENT ME!
*
* @version $Revision$, $Date$
*/
@ServiceProvider(service = OptionsPanelController.class)
public class CidsServerMessagesOptionsPanel extends AbstractOptionsPanel {
//~ Static fields/initializers ---------------------------------------------
private static final transient Logger LOG = Logger.getLogger(CidsServerMessagesOptionsPanel.class);
//~ Instance fields --------------------------------------------------------
private int intervallInMs = CidsServerMessageNotifier.DEFAULT_SCHEDULE_INTERVAL;
private boolean stillConfigured = false;
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.Box.Filler filler1;
private javax.swing.JSpinner jSpinner1;
private javax.swing.JLabel lblDialogDescription;
private javax.swing.JLabel lblIntervall;
private javax.swing.JLabel lblSeconds;
// End of variables declaration//GEN-END:variables
//~ Constructors -----------------------------------------------------------
/**
* Creates new form PasswordOptionsDialog.
*/
public CidsServerMessagesOptionsPanel() {
super(org.openide.util.NbBundle.getMessage(
CidsServerMessagesOptionsPanel.class,
"CidsServerMessagesOptionsDialog.title"), // NOI18N,
GeneralOptionsCategory.class);
try {
initComponents();
} catch (Exception e) {
LOG.error("Erro during Creation of Password Dialog", e);
;
}
}
//~ Methods ----------------------------------------------------------------
/**
* This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The
* content of this method is always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
lblSeconds = new javax.swing.JLabel();
filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0),
new java.awt.Dimension(0, 0),
new java.awt.Dimension(0, 32767));
lblDialogDescription = new javax.swing.JLabel();
jSpinner1 = new javax.swing.JSpinner();
lblIntervall = new javax.swing.JLabel();
setBorder(javax.swing.BorderFactory.createEmptyBorder(5, 5, 5, 5));
setMaximumSize(new java.awt.Dimension(264, 177));
setMinimumSize(new java.awt.Dimension(100, 177));
setLayout(new java.awt.GridBagLayout());
lblSeconds.setText(org.openide.util.NbBundle.getMessage(
CidsServerMessagesOptionsPanel.class,
"CidsServerMessagesOptionsPanel.lblSeconds.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
add(lblSeconds, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 6;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weighty = 0.1;
add(filler1, gridBagConstraints);
lblDialogDescription.setText(org.openide.util.NbBundle.getMessage(
CidsServerMessagesOptionsPanel.class,
"CidsServerMessagesOptionsPanel.lblDialogDescription.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridwidth = 4;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(4, 4, 10, 4);
add(lblDialogDescription, gridBagConstraints);
jSpinner1.setModel(new javax.swing.SpinnerNumberModel(1, 1, null, 1));
jSpinner1.setMinimumSize(new java.awt.Dimension(75, 28));
jSpinner1.setPreferredSize(new java.awt.Dimension(75, 28));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 4);
add(jSpinner1, gridBagConstraints);
lblIntervall.setText(org.openide.util.NbBundle.getMessage(
CidsServerMessagesOptionsPanel.class,
"CidsServerMessagesOptionsPanel.lblIntervall.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0);
add(lblIntervall, gridBagConstraints);
} // </editor-fold>//GEN-END:initComponents
@Override
public void update() {
intervallInMs = CidsServerMessageNotifier.getInstance().getScheduleIntervall();
updateGui();
}
@Override
public void applyChanges() {
intervallInMs = ((Number)jSpinner1.getValue()).intValue() * 1000;
CidsServerMessageNotifier.getInstance().setScheduleIntervall(intervallInMs);
}
@Override
public boolean isChanged() {
return (((Number)jSpinner1.getValue()).intValue() * 1000) != intervallInMs;
}
/**
* DOCUMENT ME!
*/
private void updateGui() {
jSpinner1.setValue(Math.floor(intervallInMs / 1000f));
}
/**
* Returns tooltip text.
*
* @return tooltip text
*/
@Override
public String getTooltip() {
return org.openide.util.NbBundle.getMessage(
CidsServerMessagesOptionsPanel.class,
"CidsServerMessagesOptionsDialog.tooltip"); // NOI18N
}
@Override
public void configure(final Element parent) {
if (!stillConfigured) {
CidsServerMessageNotifier.getInstance().configure(parent);
updateGui();
stillConfigured = true;
}
applyChanges();
}
@Override
public Element getConfiguration() throws NoWriteError {
return CidsServerMessageNotifier.getInstance().getConfiguration();
}
@Override
public boolean isEnabled() {
try {
return SessionManager.getSession()
.getConnection()
.hasConfigAttr(
SessionManager.getSession().getUser(),
"csa://"
+ CheckCidsServerMessageAction.TASK_NAME);
} catch (final Exception ex) {
LOG.warn("could not check csa://" + CheckCidsServerMessageAction.TASK_NAME
+ ". CidsServerMessageOptionsPanel is now disabled",
ex);
return false;
}
}
}