001    /*
002     * Copyright 2002 - 2007 JEuclid, http://jeuclid.sf.net
003     * 
004     * Licensed under the Apache License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     *      http://www.apache.org/licenses/LICENSE-2.0
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    
017    /* $Id: AboutDialog.java,v 9fe6e50a4648 2008/05/23 10:08:31 maxberger $ */
018    
019    package net.sourceforge.jeuclid.app.mathviewer;
020    
021    import java.awt.BorderLayout;
022    import java.awt.Font;
023    import java.awt.Frame;
024    import java.awt.event.KeyAdapter;
025    import java.awt.event.KeyEvent;
026    
027    import javax.swing.ImageIcon;
028    import javax.swing.JDialog;
029    import javax.swing.JLabel;
030    import javax.swing.JOptionPane;
031    import javax.swing.JPanel;
032    import javax.swing.SwingConstants;
033    
034    import net.sourceforge.jeuclid.LayoutContext;
035    
036    /**
037     * About Dialog for MathViewer.
038     * 
039     * @version $Revision: 9fe6e50a4648 $
040     */
041    public final class AboutDialog extends JDialog {
042    
043        private static final int LARGE_FONT = 14;
044    
045        private static final int SMALL_FONT = 12;
046    
047        private static final String ABOUT_FONT = "SansSerif";
048    
049        private static final long serialVersionUID = 1L;
050    
051        private JPanel jContentPane;
052    
053        private JLabel iconLabel;
054    
055        private JLabel jeuclidLabel;
056    
057        private JLabel wwwLabel;
058    
059        /**
060         * @param owner
061         *            Owner for this frame.
062         */
063        public AboutDialog(final Frame owner) {
064            super(owner);
065            this.initialize();
066        }
067    
068        /**
069         * This method initializes this
070         * 
071         * @return void
072         */
073        private void initialize() {
074            this.setModal(true);
075            this.setResizable(false);
076            this.setContentPane(this.getJContentPane());
077            this.setTitle(Messages.getString("MathViewer.aboutWindowTitle")); //$NON-NLS-1$
078            this.addKeyListener(new KeyAdapter() {
079                @Override
080                public void keyPressed(final KeyEvent e) {
081                    if (e.getKeyCode() == KeyEvent.VK_V && e.isAltDown()) {
082                        JOptionPane.showMessageDialog(AboutDialog.this,
083                                "Version: "
084                                        + LayoutContext.class.getPackage()
085                                                .getImplementationVersion());
086                    }
087                }
088            });
089        }
090    
091        /**
092         * This method initializes jContentPane
093         * 
094         * @return javax.swing.JPanel
095         */
096        private JPanel getJContentPane() {
097            if (this.jContentPane == null) {
098                this.wwwLabel = new JLabel();
099                this.wwwLabel.setText(" http://jeuclid.sourceforge.net ");
100                this.wwwLabel.setFont(new Font(AboutDialog.ABOUT_FONT,
101                        Font.PLAIN, AboutDialog.SMALL_FONT));
102                this.wwwLabel.setHorizontalAlignment(SwingConstants.CENTER);
103                this.jeuclidLabel = new JLabel();
104                this.jeuclidLabel.setText("JEuclid MathViewer");
105                this.jeuclidLabel.setHorizontalAlignment(SwingConstants.CENTER);
106                this.jeuclidLabel.setFont(new Font(AboutDialog.ABOUT_FONT,
107                        Font.BOLD, AboutDialog.LARGE_FONT));
108                this.iconLabel = new JLabel();
109                this.iconLabel.setHorizontalAlignment(SwingConstants.CENTER);
110                this.iconLabel.setIcon(new ImageIcon(this.getClass().getResource(
111                        "/icons/jeuclid_128x128.png")));
112                this.jContentPane = new JPanel();
113                this.jContentPane.setLayout(new BorderLayout());
114                this.jContentPane.add(this.iconLabel, BorderLayout.NORTH);
115                this.jContentPane.add(this.jeuclidLabel, BorderLayout.CENTER);
116                this.jContentPane.add(this.wwwLabel, BorderLayout.SOUTH);
117            }
118            return this.jContentPane;
119        }
120    
121    }