/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package de.cismet.cids.client.tools;
import Sirius.navigator.connection.SessionManager;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.log4j.Logger;
import org.jdesktop.swingx.JXErrorPane;
import org.jdesktop.swingx.JXLoginPane;
import org.jdesktop.swingx.JXPanel;
import org.jdesktop.swingx.error.ErrorInfo;
import java.awt.Frame;
import java.util.logging.Level;
import javax.swing.JFrame;
import de.cismet.cids.server.actions.PublishCidsServerMessageAction;
import de.cismet.cids.server.actions.ServerActionParameter;
import de.cismet.tools.gui.StaticSwingTools;
import de.cismet.tools.gui.log4jquickconfig.Log4JQuickConfig;
/**
* DOCUMENT ME!
*
* @author jruiz
* @version $Revision$, $Date$
*/
public class RemoteLog4JConfigChangerDialog extends javax.swing.JDialog {
//~ Static fields/initializers ---------------------------------------------
private static final Logger LOG = Logger.getLogger(RemoteLog4JConfigChangerDialog.class);
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JComboBox<String> jComboBox1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JSpinner jSpinner1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
// End of variables declaration//GEN-END:variables
//~ Constructors -----------------------------------------------------------
/**
* Creates new form RemoteDebu.
*
* @param parent DOCUMENT ME!
* @param modal DOCUMENT ME!
*/
public RemoteLog4JConfigChangerDialog(final java.awt.Frame parent, final boolean modal) {
super(parent, modal);
initComponents();
}
//~ 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;
jPanel2 = new javax.swing.JPanel();
jPanel1 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jComboBox1 = new javax.swing.JComboBox<String>();
jLabel3 = new javax.swing.JLabel();
jPanel3 = new javax.swing.JPanel();
jSpinner1 = new javax.swing.JSpinner();
jTextField2 = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle(org.openide.util.NbBundle.getMessage(
RemoteLog4JConfigChangerDialog.class,
"RemoteLog4JConfigChangerDialog.title")); // NOI18N
setResizable(false);
getContentPane().setLayout(new java.awt.GridBagLayout());
jPanel2.setLayout(new java.awt.GridBagLayout());
org.openide.awt.Mnemonics.setLocalizedText(
jButton1,
org.openide.util.NbBundle.getMessage(
RemoteLog4JConfigChangerDialog.class,
"RemoteLog4JConfigChangerDialog.jButton1.text")); // NOI18N
jButton1.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(final java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jPanel1.add(jButton1);
org.openide.awt.Mnemonics.setLocalizedText(
jButton2,
org.openide.util.NbBundle.getMessage(
RemoteLog4JConfigChangerDialog.class,
"RemoteLog4JConfigChangerDialog.jButton2.text")); // NOI18N
jButton2.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(final java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jPanel1.add(jButton2);
jPanel2.add(jPanel1, new java.awt.GridBagConstraints());
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 4;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LAST_LINE_END;
gridBagConstraints.insets = new java.awt.Insets(9, 9, 9, 9);
getContentPane().add(jPanel2, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(
jLabel1,
org.openide.util.NbBundle.getMessage(
RemoteLog4JConfigChangerDialog.class,
"RemoteLog4JConfigChangerDialog.jLabel1.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(jLabel1, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(
jLabel2,
org.openide.util.NbBundle.getMessage(
RemoteLog4JConfigChangerDialog.class,
"RemoteLog4JConfigChangerDialog.jLabel2.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(jLabel2, gridBagConstraints);
jTextField1.setText(org.openide.util.NbBundle.getMessage(
RemoteLog4JConfigChangerDialog.class,
"RemoteLog4JConfigChangerDialog.jTextField1.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(jTextField1, gridBagConstraints);
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel<String>(
new String[] { "DISABLED", "DEBUG", "INFO", "WARN", "ERROR", "FATAL" }));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(jComboBox1, gridBagConstraints);
org.openide.awt.Mnemonics.setLocalizedText(
jLabel3,
org.openide.util.NbBundle.getMessage(
RemoteLog4JConfigChangerDialog.class,
"RemoteLog4JConfigChangerDialog.jLabel3.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(jLabel3, gridBagConstraints);
jPanel3.setLayout(new java.awt.GridBagLayout());
jSpinner1.setModel(new javax.swing.SpinnerNumberModel(4445, 0, 65535, 1));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
jPanel3.add(jSpinner1, gridBagConstraints);
jTextField2.setText(org.openide.util.NbBundle.getMessage(
RemoteLog4JConfigChangerDialog.class,
"RemoteLog4JConfigChangerDialog.jTextField2.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
jPanel3.add(jTextField2, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
getContentPane().add(jPanel3, gridBagConstraints);
pack();
} // </editor-fold>//GEN-END:initComponents
/**
* DOCUMENT ME!
*
* @param evt DOCUMENT ME!
*/
private void jButton2ActionPerformed(final java.awt.event.ActionEvent evt) { //GEN-FIRST:event_jButton2ActionPerformed
System.exit(0);
} //GEN-LAST:event_jButton2ActionPerformed
/**
* DOCUMENT ME!
*
* @param evt DOCUMENT ME!
*/
private void jButton1ActionPerformed(final java.awt.event.ActionEvent evt) { //GEN-FIRST:event_jButton1ActionPerformed
try {
final String userKey = jTextField1.getText();
final RemoteLog4JConfig remoteConfig = new RemoteLog4JConfig(
jTextField2.getText(),
(Integer)jSpinner1.getValue(),
(String)jComboBox1.getSelectedItem());
SessionManager.getConnection()
.executeTask(
SessionManager.getSession().getUser(),
PublishCidsServerMessageAction.TASK_NAME,
SessionManager.getSession().getUser().getDomain(),
new ObjectMapper().writeValueAsString(remoteConfig),
new ServerActionParameter<String>(
PublishCidsServerMessageAction.ParameterType.CATEGORY.toString(),
"log4j_remote_config"),
new ServerActionParameter<String>(
PublishCidsServerMessageAction.ParameterType.USER.toString(),
userKey));
} catch (final Exception ex) {
LOG.fatal("Fehler beim Ausführen der Action.", ex);
final ErrorInfo errorInfo = new ErrorInfo(
"Fehler",
"Fehler beim Ausführen der Action.",
null,
null,
ex,
Level.ALL,
null);
JXErrorPane.showDialog(null, errorInfo);
}
} //GEN-LAST:event_jButton1ActionPerformed
/**
* DOCUMENT ME!
*
* @param args DOCUMENT ME!
*/
public static void main(final String[] args) {
Log4JQuickConfig.configure4LumbermillOnLocalhost();
/* Create and display the dialog */
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
final RemoteLog4JConfigChangerDialog dialog = new RemoteLog4JConfigChangerDialog(
new JFrame(),
true);
// final String callServerURL = args[0];
// final String domain = args[1];
final String callServerURL = "rmi://localhost/callServer";
final String domain = "WUNDA_BLAU";
dialog.login(callServerURL, domain);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(final java.awt.event.WindowEvent e) {
System.exit(0);
}
});
StaticSwingTools.showDialog(dialog);
System.exit(0);
} catch (final Exception ex) {
LOG.fatal("Fehler beim Starten des RemoteDebugConfigTester.", ex);
final ErrorInfo errorInfo = new ErrorInfo(
"Fehler",
"Fehler beim Starten des Password-RemoteDebugConfigTester.",
null,
null,
ex,
Level.ALL,
null);
JXErrorPane.showDialog(null, errorInfo);
System.exit(1);
}
}
});
}
/**
* DOCUMENT ME!
*
* @param callServerURL DOCUMENT ME!
* @param domain DOCUMENT ME!
*/
private void login(final String callServerURL, final String domain) {
final CidsAuthentification cidsAuth = new CidsAuthentification(callServerURL, domain);
final JXLoginPane login = new JXLoginPane(cidsAuth);
final JXLoginPane.JXLoginDialog loginDialog = new JXLoginPane.JXLoginDialog((Frame)null, login);
login.setPassword("".toCharArray());
try {
((JXPanel)((JXPanel)login.getComponent(1)).getComponent(1)).getComponent(3).requestFocus();
} catch (final Exception ex) {
LOG.info("could nor request focus", ex);
}
StaticSwingTools.showDialog(loginDialog);
if (loginDialog.getStatus() != JXLoginPane.Status.SUCCEEDED) {
System.exit(0);
}
}
}