/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package de.cismet.reconnector;
import org.openide.util.NbBundle;
import java.awt.BorderLayout;
import java.awt.Component;
import javax.swing.JLabel;
/**
* DOCUMENT ME!
*
* @author jruiz
* @version $Revision$, $Date$
*/
public class ReconnectorPanel extends javax.swing.JPanel implements ReconnectorListener {
//~ Static fields/initializers ---------------------------------------------
private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(ReconnectorPanel.class);
private static final String CONNECTION_CANCELED = NbBundle.getMessage(
ReconnectorPanel.class,
"connection_canceled");
//~ Instance fields --------------------------------------------------------
private final Reconnector reconnector;
private Component errorComponent;
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton btnCancel;
private javax.swing.JButton btnExit;
private javax.swing.JButton btnIgnore;
private javax.swing.JButton btnRetry;
private javax.swing.JPanel jPanel1;
private javax.swing.JLabel labTryingToConnect;
private javax.swing.JPanel panError;
private javax.swing.JPanel panProgress;
private javax.swing.JPanel panRetry;
private javax.swing.JProgressBar pb;
// End of variables declaration//GEN-END:variables
//~ Constructors -----------------------------------------------------------
/**
* Creates new form ReconnectorPanel.
*
* @param reconnector DOCUMENT ME!
*/
public ReconnectorPanel(final Reconnector reconnector) {
this.reconnector = reconnector;
initComponents();
setConnecting(false);
}
//~ Methods ----------------------------------------------------------------
/**
* DOCUMENT ME!
*
* @param isConnecting DOCUMENT ME!
*/
private void setConnecting(final boolean isConnecting) {
removeAll();
if (isConnecting) {
add(panProgress, BorderLayout.CENTER);
} else {
add(panRetry, BorderLayout.CENTER);
}
revalidate();
validate();
repaint();
}
/**
* DOCUMENT ME!
*
* @param component DOCUMENT ME!
*/
private void showError(final Component component) {
panError.add(component, BorderLayout.CENTER);
reconnector.pack();
setConnecting(false);
}
/**
* DOCUMENT ME!
*/
private void showConnecting() {
panError.removeAll();
setConnecting(true);
}
/**
* 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.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
panProgress = new javax.swing.JPanel();
pb = new javax.swing.JProgressBar();
btnCancel = new javax.swing.JButton();
labTryingToConnect = new javax.swing.JLabel();
panRetry = new javax.swing.JPanel();
panError = new javax.swing.JPanel();
jPanel1 = new javax.swing.JPanel();
btnExit = new javax.swing.JButton();
btnIgnore = new javax.swing.JButton();
btnRetry = new javax.swing.JButton();
panProgress.setMinimumSize(new java.awt.Dimension(200, 88));
panProgress.setLayout(new java.awt.GridBagLayout());
pb.setBorderPainted(false);
pb.setIndeterminate(true);
pb.setPreferredSize(new java.awt.Dimension(200, 18));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 6);
panProgress.add(pb, gridBagConstraints);
btnCancel.setText(org.openide.util.NbBundle.getMessage(ReconnectorPanel.class, "cancel")); // NOI18N
btnCancel.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(final java.awt.event.ActionEvent evt) {
btnCancelActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTH;
gridBagConstraints.insets = new java.awt.Insets(6, 6, 6, 6);
panProgress.add(btnCancel, gridBagConstraints);
labTryingToConnect.setText(org.openide.util.NbBundle.getMessage(ReconnectorPanel.class, "trying_to_connect")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
gridBagConstraints.insets = new java.awt.Insets(6, 6, 6, 6);
panProgress.add(labTryingToConnect, gridBagConstraints);
panRetry.setMinimumSize(new java.awt.Dimension(200, 53));
panRetry.setLayout(new java.awt.BorderLayout());
panError.setLayout(new java.awt.BorderLayout());
panRetry.add(panError, java.awt.BorderLayout.CENTER);
btnExit.setText(org.openide.util.NbBundle.getMessage(ReconnectorPanel.class, "stop")); // NOI18N
btnExit.setPreferredSize(new java.awt.Dimension(125, 29));
btnExit.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(final java.awt.event.ActionEvent evt) {
btnExitActionPerformed(evt);
}
});
jPanel1.add(btnExit);
btnIgnore.setText(org.openide.util.NbBundle.getMessage(ReconnectorPanel.class, "ignore")); // NOI18N
btnIgnore.setPreferredSize(new java.awt.Dimension(125, 29));
btnIgnore.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(final java.awt.event.ActionEvent evt) {
btnIgnoreActionPerformed(evt);
}
});
jPanel1.add(btnIgnore);
btnRetry.setText(org.openide.util.NbBundle.getMessage(ReconnectorPanel.class, "retry")); // NOI18N
btnRetry.setPreferredSize(new java.awt.Dimension(125, 29));
btnRetry.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(final java.awt.event.ActionEvent evt) {
btnRetryActionPerformed(evt);
}
});
jPanel1.add(btnRetry);
panRetry.add(jPanel1, java.awt.BorderLayout.SOUTH);
setLayout(new java.awt.BorderLayout());
} // </editor-fold>//GEN-END:initComponents
/**
* DOCUMENT ME!
*
* @param evt DOCUMENT ME!
*/
private void btnCancelActionPerformed(final java.awt.event.ActionEvent evt) { //GEN-FIRST:event_btnCancelActionPerformed
reconnector.doCancel();
} //GEN-LAST:event_btnCancelActionPerformed
/**
* DOCUMENT ME!
*
* @param evt DOCUMENT ME!
*/
private void btnRetryActionPerformed(final java.awt.event.ActionEvent evt) { //GEN-FIRST:event_btnRetryActionPerformed
if (errorComponent instanceof ReconnectorErrorPanelWithApply) {
((ReconnectorErrorPanelWithApply)errorComponent).apply();
}
reconnector.doReconnect();
} //GEN-LAST:event_btnRetryActionPerformed
/**
* DOCUMENT ME!
*
* @param evt DOCUMENT ME!
*/
private void btnExitActionPerformed(final java.awt.event.ActionEvent evt) { //GEN-FIRST:event_btnExitActionPerformed
System.exit(1);
} //GEN-LAST:event_btnExitActionPerformed
/**
* DOCUMENT ME!
*
* @param evt DOCUMENT ME!
*/
private void btnIgnoreActionPerformed(final java.awt.event.ActionEvent evt) { //GEN-FIRST:event_btnIgnoreActionPerformed
reconnector.doAbort();
} //GEN-LAST:event_btnIgnoreActionPerformed
@Override
public void connecting() {
showConnecting();
}
@Override
public void connectionFailed(final ReconnectorEvent event) {
errorComponent = event.getComponent();
showError(errorComponent);
}
@Override
public void connectionCanceled() {
errorComponent = null;
showError(new JLabel(CONNECTION_CANCELED));
}
@Override
public void connectionCompleted() {
errorComponent = null;
}
}