package org.rr.jeborker.gui;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.logging.Level;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import org.rr.commons.log.LoggerFactory;
import org.rr.commons.swing.SwingUtils;
import org.rr.commons.swing.layout.VerticalLayout;
import org.rr.jeborker.Jeboorker;
import org.rr.jeborker.gui.resources.ImageResourceBundle;
class AboutDialogView extends JDialog {
private static final long serialVersionUID = -5833977607733981288L;
AboutDialogView(final JFrame invoker, final AboutDialogController controller) {
super(invoker);
this.setResizable(false);
this.setSize(400, 200);
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
controller.close();
AboutDialogView.this.dispose();
}
});
JPanel contentPanel = new JPanel();
contentPanel.setBorder(new EmptyBorder(5,5,5,5));
setContentPane(contentPanel);
SwingUtils.centerOnWindow(invoker, this);
setTitle(Bundle.getString("PlainMetadataEditorView.about"));
getContentPane().setLayout(new BorderLayout(0, 0));
JLabel applicationLogo = new JLabel(" ");
applicationLogo.setVerticalAlignment(JLabel.TOP);
applicationLogo.setIcon(ImageResourceBundle.getResourceAsImageIcon("logo_64.png"));
getContentPane().add(applicationLogo, BorderLayout.WEST);
JPanel panel = new JPanel();
getContentPane().add(panel, BorderLayout.CENTER);
panel.setLayout(new VerticalLayout(3, VerticalLayout.CENTER));
JLabel lblVersion = new JLabel(Jeboorker.APP + " v." + Jeboorker.getAppVersion() + " (GPL v2+)");
panel.add(lblVersion);
JLabel lblUrl = new JLabel();
lblUrl.setForeground(Color.BLUE);
lblUrl.setText(Jeboorker.URL);
lblUrl.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
try {
SwingUtils.openURL(Jeboorker.URL);
} catch (Exception e1) {
LoggerFactory.getLogger().log(Level.WARNING, "could not browse url " + Jeboorker.URL, e);
}
}
});
panel.add(lblUrl);
JLabel lblMe = new JLabel("By Rüdiger Rüttelstein");
panel.add(lblMe);
JButton buttonOK = new JButton();
buttonOK.setAction(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
controller.close();
AboutDialogView.this.dispose();
}
});
buttonOK.setText("OK");
getContentPane().add(buttonOK, BorderLayout.SOUTH);
}
}