/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package de.cismet.cids.tools.metaobjectrenderer;
import Sirius.navigator.ui.RequestsFullSizeComponent;
import Sirius.server.middleware.types.MetaObject;
import java.awt.BorderLayout;
import javax.swing.JLabel;
/**
* DOCUMENT ME!
*
* @author jruiz
* @version $Revision$, $Date$
*/
public class ErrorRenderer extends javax.swing.JPanel implements RequestsFullSizeComponent {
//~ Static fields/initializers ---------------------------------------------
private static final String NEW_LINE = System.getProperty("line.separator");
//~ Instance fields --------------------------------------------------------
private final DefaultMetaObjectRenderer defaultComponent;
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton btnDefaultRenderer;
private javax.swing.JButton btnShowProblem;
private javax.swing.JPanel defaultrendererComponent;
private javax.swing.JPanel footerComponent;
private javax.swing.JLabel jLabel3;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JLabel lblOopsIcon;
private javax.swing.JLabel lblOopsText;
private javax.swing.JPanel panOpps;
private javax.swing.JScrollPane spDefaultRenderer;
private javax.swing.JPanel stracktraceComponent;
private javax.swing.JTextPane tpErrorMessage;
// End of variables declaration//GEN-END:variables
//~ Constructors -----------------------------------------------------------
/**
* Creates new form ErrorRenderer.
*
* @param throwable DOCUMENT ME!
* @param mo DOCUMENT ME!
* @param title DOCUMENT ME!
*/
public ErrorRenderer(final Throwable throwable, final MetaObject mo, final String title) {
initComponents();
defaultComponent = (DefaultMetaObjectRenderer)new DefaultMetaObjectRenderer().getSingleRenderer(mo, title);
spDefaultRenderer.setViewportView(defaultComponent);
jLabel3.setText(mo.getBean().toString());
final StringBuilder result = new StringBuilder(throwable.toString()).append(NEW_LINE);
// add each element of the stack trace
for (final StackTraceElement element : throwable.getStackTrace()) {
result.append("\t").append(element).append(NEW_LINE);
}
tpErrorMessage.setText(result.toString());
}
//~ 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;
stracktraceComponent = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
tpErrorMessage = new javax.swing.JTextPane();
defaultrendererComponent = new javax.swing.JPanel();
spDefaultRenderer = new javax.swing.JScrollPane();
jPanel3 = new javax.swing.JPanel();
jPanel2 = new javax.swing.JPanel();
jLabel3 = new javax.swing.JLabel();
footerComponent = new javax.swing.JPanel();
btnShowProblem = new javax.swing.JButton();
btnDefaultRenderer = new javax.swing.JButton();
jPanel1 = new javax.swing.JPanel();
panOpps = new javax.swing.JPanel();
lblOopsText = new javax.swing.JLabel();
lblOopsIcon = new javax.swing.JLabel();
stracktraceComponent.setOpaque(false);
stracktraceComponent.setLayout(new java.awt.BorderLayout());
jScrollPane1.setOpaque(false);
tpErrorMessage.setEditable(false);
jScrollPane1.setViewportView(tpErrorMessage);
stracktraceComponent.add(jScrollPane1, java.awt.BorderLayout.CENTER);
defaultrendererComponent.setOpaque(false);
defaultrendererComponent.setLayout(new java.awt.BorderLayout());
spDefaultRenderer.setOpaque(false);
defaultrendererComponent.add(spDefaultRenderer, java.awt.BorderLayout.CENTER);
setOpaque(false);
setLayout(new java.awt.GridBagLayout());
jPanel3.setOpaque(false);
jPanel3.setLayout(new java.awt.BorderLayout());
jPanel2.setOpaque(false);
jPanel2.setLayout(new java.awt.GridBagLayout());
jLabel3.setFont(new java.awt.Font("Tahoma", 1, 18));
jLabel3.setForeground(new java.awt.Color(127, 127, 127));
jLabel3.setText(org.openide.util.NbBundle.getMessage(ErrorRenderer.class, "ErrorRenderer.jLabel3.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
jPanel2.add(jLabel3, gridBagConstraints);
jPanel3.add(jPanel2, java.awt.BorderLayout.NORTH);
footerComponent.setOpaque(false);
footerComponent.setLayout(new java.awt.GridBagLayout());
btnShowProblem.setText(org.openide.util.NbBundle.getMessage(
ErrorRenderer.class,
"ErrorRenderer.btnShowProblem.text")); // NOI18N
btnShowProblem.setMaximumSize(new java.awt.Dimension(230, 25));
btnShowProblem.setMinimumSize(new java.awt.Dimension(230, 25));
btnShowProblem.setPreferredSize(new java.awt.Dimension(230, 25));
btnShowProblem.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(final java.awt.event.ActionEvent evt) {
btnShowProblemActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_END;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(10, 0, 0, 10);
footerComponent.add(btnShowProblem, gridBagConstraints);
btnDefaultRenderer.setText(org.openide.util.NbBundle.getMessage(
ErrorRenderer.class,
"ErrorRenderer.btnDefaultRenderer.text")); // NOI18N
btnDefaultRenderer.setMaximumSize(new java.awt.Dimension(230, 25));
btnDefaultRenderer.setMinimumSize(new java.awt.Dimension(230, 25));
btnDefaultRenderer.setPreferredSize(new java.awt.Dimension(230, 25));
btnDefaultRenderer.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(final java.awt.event.ActionEvent evt) {
btnDefaultRendererActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(10, 10, 0, 0);
footerComponent.add(btnDefaultRenderer, gridBagConstraints);
jPanel3.add(footerComponent, java.awt.BorderLayout.SOUTH);
jPanel1.setOpaque(false);
jPanel1.setLayout(new java.awt.BorderLayout());
panOpps.setOpaque(false);
panOpps.setLayout(new java.awt.GridBagLayout());
lblOopsText.setFont(new java.awt.Font("Ubuntu", 1, 18)); // NOI18N
lblOopsText.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
lblOopsText.setIcon(new javax.swing.ImageIcon(
getClass().getResource("/de/cismet/cids/tools/metaobjectrenderer/error_text.png"))); // NOI18N
lblOopsText.setText(org.openide.util.NbBundle.getMessage(
ErrorRenderer.class,
"ErrorRenderer.lblOopsText.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.insets = new java.awt.Insets(25, 0, 0, 0);
panOpps.add(lblOopsText, gridBagConstraints);
lblOopsIcon.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
lblOopsIcon.setIcon(new javax.swing.ImageIcon(
getClass().getResource("/de/cismet/cids/tools/metaobjectrenderer/dialog_error.png"))); // NOI18N
lblOopsIcon.setText(org.openide.util.NbBundle.getMessage(
ErrorRenderer.class,
"ErrorRenderer.lblOopsIcon.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 25, 0);
panOpps.add(lblOopsIcon, gridBagConstraints);
jPanel1.add(panOpps, java.awt.BorderLayout.CENTER);
jPanel3.add(jPanel1, java.awt.BorderLayout.CENTER);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10);
add(jPanel3, gridBagConstraints);
} // </editor-fold>//GEN-END:initComponents
/**
* DOCUMENT ME!
*
* @param evt DOCUMENT ME!
*/
private void btnDefaultRendererActionPerformed(final java.awt.event.ActionEvent evt) { //GEN-FIRST:event_btnDefaultRendererActionPerformed
jPanel1.removeAll();
jPanel1.add(defaultrendererComponent, BorderLayout.CENTER);
validate();
repaint();
} //GEN-LAST:event_btnDefaultRendererActionPerformed
/**
* DOCUMENT ME!
*
* @param evt DOCUMENT ME!
*/
private void btnShowProblemActionPerformed(final java.awt.event.ActionEvent evt) { //GEN-FIRST:event_btnShowProblemActionPerformed
jPanel1.removeAll();
jPanel1.add(stracktraceComponent);
validate();
repaint();
} //GEN-LAST:event_btnShowProblemActionPerformed
}