/* * ProgramInfoPanel.java * * Created on January 20, 2006, 1:56 PM */ package edu.oregonstate.cartography.gui; import edu.oregonstate.cartography.app.ApplicationInfo; import edu.oregonstate.cartography.app.Sys; import java.awt.Frame; import java.awt.event.ActionEvent; import javax.swing.*; import java.awt.event.KeyEvent; /** * An info or about dialog. * @author Bernhard Jenny, Institute of Cartography, ETH Zurich. */ public class ProgramInfoPanel extends javax.swing.JPanel { private static JDialog infoDialog = null; private static void addEscapeKey() { JRootPane rootPane = infoDialog.getRootPane(); InputMap iMap = rootPane.getInputMap(/*JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT*/); iMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "escape"); ActionMap aMap = rootPane.getActionMap(); aMap.put("escape", new AbstractAction() { public void actionPerformed(ActionEvent e) { hideApplicationInfo(); } }); } public static void showApplicationInfo() { ProgramInfoPanel.showApplicationInfo(null); } public static void showApplicationInfo(Frame owner) { if (infoDialog != null){ infoDialog.setVisible(true); return; } ProgramInfoPanel infoPanel = new ProgramInfoPanel(); if (owner == null) { owner = GUIUtil.getFrontMostFrame(); } infoDialog = new JDialog(owner); infoDialog.getContentPane().add(infoPanel); addEscapeKey(); // name of the application String appName = ApplicationInfo.getApplicationName(); // window title (standard for about dialogs is not to show a title on Mac) if (Sys.isMacOSX()) infoDialog.setTitle("Info"); // name infoPanel.nameLabel.setText(appName); if (appName == null) infoPanel.remove(infoPanel.nameLabel); // icon Icon icon = ApplicationInfo.getLargeApplicationIcon(); if (icon == null) infoPanel.remove(infoPanel.iconLabel); infoPanel.iconLabel.setIcon(icon); // version String version = ApplicationInfo.getApplicationVersion(); infoPanel.versionLabel.setText("Version " + version); if (version == null) infoPanel.remove(infoPanel.versionLabel); // copyright String copyright = ApplicationInfo.getCopyright(); if (copyright == null) infoPanel.remove(infoPanel.copyrightLabel); infoPanel.copyrightLabel.setText(copyright); // information String information = ApplicationInfo.getInformation(); if (information == null) infoPanel.remove(infoPanel.infoLabel); infoPanel.infoLabel.setText(information); // operating system String osString = "Operating System: " + System.getProperty("os.name") + " " + System.getProperty("os.version"); infoPanel.osInfoLabel.setText(osString); // java vm version String javaString = "Java VM " + System.getProperty("java.version"); javaString += " by "; javaString += System.getProperty("java.vendor"); infoPanel.javaInfoLabel.setText(javaString); infoDialog.pack(); infoDialog.setResizable(false); // location java.awt.Dimension screen = infoDialog.getToolkit().getScreenSize(); java.awt.Dimension dialog = infoDialog.getSize(); infoDialog.setLocation((screen.width - dialog.width) / 2, (screen.height - dialog.height) / 2 ); infoDialog.setVisible(true); } public static void hideApplicationInfo() { if (ProgramInfoPanel.infoDialog != null) { ProgramInfoPanel.infoDialog.setVisible(false); } } /** Creates new form ProgramInfoPanel */ public ProgramInfoPanel() { initComponents(); } /** 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; iconLabel = new javax.swing.JLabel(); nameLabel = new javax.swing.JLabel(); infoLabel = new javax.swing.JLabel(); copyrightLabel = new javax.swing.JLabel(); jSeparator1 = new javax.swing.JSeparator(); osInfoLabel = new javax.swing.JLabel(); javaInfoLabel = new javax.swing.JLabel(); versionLabel = new javax.swing.JLabel(); setBorder(javax.swing.BorderFactory.createEmptyBorder(20, 35, 20, 35)); setLayout(new java.awt.GridBagLayout()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; add(iconLabel, gridBagConstraints); nameLabel.setFont(new java.awt.Font("Lucida Grande", 1, 14)); // NOI18N nameLabel.setText("Name"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.insets = new java.awt.Insets(25, 14, 14, 14); add(nameLabel, gridBagConstraints); infoLabel.setFont(new java.awt.Font("Lucida Grande", 0, 11)); // NOI18N infoLabel.setText("Information"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; gridBagConstraints.insets = new java.awt.Insets(0, 14, 20, 14); add(infoLabel, gridBagConstraints); copyrightLabel.setFont(new java.awt.Font("Lucida Grande", 0, 11)); // NOI18N copyrightLabel.setText("Copyright"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.insets = new java.awt.Insets(0, 14, 20, 14); add(copyrightLabel, gridBagConstraints); jSeparator1.setPreferredSize(new java.awt.Dimension(200, 10)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 5; add(jSeparator1, gridBagConstraints); osInfoLabel.setFont(new java.awt.Font("Lucida Grande", 0, 11)); // NOI18N osInfoLabel.setText("Operating System"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 6; gridBagConstraints.insets = new java.awt.Insets(14, 0, 0, 0); add(osInfoLabel, gridBagConstraints); javaInfoLabel.setFont(new java.awt.Font("Lucida Grande", 0, 11)); // NOI18N javaInfoLabel.setText("Java Version"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 7; gridBagConstraints.insets = new java.awt.Insets(0, 0, 20, 0); add(javaInfoLabel, gridBagConstraints); versionLabel.setFont(new java.awt.Font("Lucida Grande", 0, 11)); // NOI18N versionLabel.setText("Version"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.insets = new java.awt.Insets(0, 14, 14, 14); add(versionLabel, gridBagConstraints); }// </editor-fold>//GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JLabel copyrightLabel; private javax.swing.JLabel iconLabel; private javax.swing.JLabel infoLabel; private javax.swing.JSeparator jSeparator1; private javax.swing.JLabel javaInfoLabel; private javax.swing.JLabel nameLabel; private javax.swing.JLabel osInfoLabel; private javax.swing.JLabel versionLabel; // End of variables declaration//GEN-END:variables }