/*
* Copyright 2001-2008 Geert Bevin (gbevin[remove] at uwyn dot com)
* Licensed under the Apache License, Version 2.0 (the "License")
* $Id: JDialogError.java 3918 2008-04-14 17:35:35Z gbevin $
*/
package com.uwyn.rife.swing;
import javax.swing.*;
import com.uwyn.rife.config.RifeConfig;
import com.uwyn.rife.tools.Localization;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class JDialogError extends JDialog implements ActionListener, DefaultFocused
{
private static final long serialVersionUID = -8662064050538600090L;
private GridBagConstraints mConstraints = null;
private JPanel mContentPane = null;
private JLabel mErrorIcon = null;
private JPanel mErrorIconPanel = null;
private JComponent mErrorMessage = null;
private JButton mOkButton = null;
private JPanel mButtonsPanel = null;
public JDialogError(JFrame frame, String text)
{
this(frame, Localization.getString("rife.dialog.error.title"), text);
}
public JDialogError(JFrame frame, String title, String text)
{
this(frame, title, new JLabel(text));
}
public JDialogError(JFrame frame, String title, JComponent messageComponent)
{
super(frame, title, true);
ImageIcon icon = null;
if (Images.hasRepInstance())
{
icon = Images.getRepInstance().getImageIcon(RifeConfig.Swing.getIconErrorPath());
}
if (null == icon)
{
icon = new ImageIcon(JDialogError.class.getClassLoader().getResource(RifeConfig.Swing.getIconErrorPath()));
}
mErrorIcon = new JLabel(icon);
mErrorIcon.setBorder(BorderFactory.createMatteBorder(10, 10, 10, 10, (Color)null));
mErrorIcon.setBackground(Colors.ERROR_BACKGROUND);
mErrorIcon.setOpaque(true);
mErrorIconPanel = new JPanel();
mErrorIconPanel.setBackground(Colors.ERROR_BACKGROUND);
mErrorIconPanel.add(mErrorIcon);
mErrorMessage = messageComponent;
mErrorMessage.setBorder(BorderFactory.createMatteBorder(10, 10, 10, 10, (Color)null));
mOkButton = new JButton(Localization.getString("rife.dialog.error.okbutton"));
mOkButton.setMnemonic(Localization.getChar("rife.dialog.error.okbutton.mnemonic"));
mOkButton.addActionListener(this);
mButtonsPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
mButtonsPanel.add(mOkButton);
mContentPane = new JPanel(new GridBagLayout());
mContentPane.setBackground(Color.white);
setContentPane(mContentPane);
mConstraints = new GridBagConstraints();
mConstraints.gridx = 0;
mConstraints.gridy = 0;
mConstraints.gridwidth = 1;
mConstraints.gridheight = 1;
mConstraints.weightx = 0;
mConstraints.weighty = 1;
mConstraints.anchor = GridBagConstraints.CENTER;
mConstraints.fill = GridBagConstraints.BOTH;
mContentPane.add(mErrorIconPanel, mConstraints);
mConstraints.gridx = 1;
mConstraints.weightx = 1;
mConstraints.anchor = GridBagConstraints.NORTHWEST;
mConstraints.fill = GridBagConstraints.HORIZONTAL;
mContentPane.add(mErrorMessage, mConstraints);
mConstraints.gridx = 0;
mConstraints.gridy = 1;
mConstraints.weightx = 1;
mConstraints.weighty = 0;
mConstraints.gridwidth = 2;
mContentPane.add(new JSeparator(JSeparator.HORIZONTAL), mConstraints);
mConstraints.gridy = 2;
mContentPane.add(mButtonsPanel, mConstraints);
mContentPane.setVisible(true);
pack();
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
if (null != frame)
{
setLocationRelativeTo(frame);
}
new DefaultFocusSetter(this);
}
public JComponent getDefaultFocus()
{
return mOkButton;
}
public void actionPerformed(ActionEvent event)
{
Object source = event.getSource();
if (mOkButton == source)
{
dispose();
}
}
}