/* * Mibble MIB Parser (www.mibble.org) * * See LICENSE.txt for licensing information. * * Copyright (c) 2004-2017 Per Cederberg. All rights reserved. */ package net.percederberg.mibble.browser; import java.awt.Color; import java.awt.Font; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Properties; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextArea; /** * The MIB browser about dialog. * * @author Per Cederberg * @version 2.10 * @since 2.3 */ public class AboutDialog extends JDialog { /** * The acknowledgements text. */ private static final String ACKNOWLEDGEMENTS = "Written by Watsh Rajneesh & Per Cederberg.\n" + "Thanks to Charles F. Schatz, and to Tex Clayton\n" + "at Dartware LLC, for valuable additions.\n" + "This software uses the Westhawk SNMP Stack."; /** * The copyright text. */ private static final String COPYRIGHT = "(c) 2004-2017 Per Cederberg. All rights reserved.\n" + "This program comes with ABSOLUTELY NO\n" + "WARRANTY; for details see the accompanying\n" + "license."; /** * Creates new about dialog. * * @param parent the parent frame * @param buildInfo the application build information */ public AboutDialog(JFrame parent, Properties buildInfo) { super(parent, true); initialize(buildInfo); setLocationRelativeTo(parent); } /** * Initializes the dialog components. * * @param buildInfo the application build information */ private void initialize(Properties buildInfo) { JLabel label; JTextArea textArea; JButton button; GridBagConstraints c; String str; // Set dialog title setTitle("About Mibble MIB Browser"); setResizable(false); setDefaultCloseOperation(DISPOSE_ON_CLOSE); getContentPane().setBackground(Color.WHITE); getContentPane().setLayout(new GridBagLayout()); // Add header text label = new JLabel("Mibble MIB Browser"); label.setFont(Font.decode("sans bold 20")); label.setForeground(new Color(227, 96, 48)); c = new GridBagConstraints(); c.gridwidth = 2; c.anchor = GridBagConstraints.CENTER; c.insets = new Insets(20, 15, 5, 15); getContentPane().add(label, c); // Add version text str = "Version " + buildInfo.getProperty("build.version", "N/A") + " (built on " + buildInfo.getProperty("build.date", "N/A") + ")"; label = new JLabel(str); label.setFont(label.getFont().deriveFont(Font.BOLD)); c = new GridBagConstraints(); c.gridy = 1; c.gridwidth = 2; c.anchor = GridBagConstraints.CENTER; c.insets = new Insets(0, 15, 15, 15); getContentPane().add(label, c); // Add acknowledgments text label = new JLabel("Acknowledgments:"); label.setFont(label.getFont().deriveFont(Font.BOLD)); c = new GridBagConstraints(); c.gridy = 2; c.gridwidth = 2; c.anchor = GridBagConstraints.WEST; c.insets = new Insets(0, 15, 0, 15); getContentPane().add(label, c); textArea = new JTextArea(ACKNOWLEDGEMENTS); textArea.setEditable(false); c = new GridBagConstraints(); c.gridy = 3; c.gridwidth = 2; c.anchor = GridBagConstraints.WEST; c.insets = new Insets(0, 15, 0, 15); getContentPane().add(textArea, c); // Add copyright text label = new JLabel("Copyright & License:"); label.setFont(label.getFont().deriveFont(Font.BOLD)); c = new GridBagConstraints(); c.gridy = 4; c.gridwidth = 2; c.anchor = GridBagConstraints.WEST; c.insets = new Insets(10, 15, 0, 15); getContentPane().add(label, c); textArea = new JTextArea(COPYRIGHT); textArea.setEditable(false); c = new GridBagConstraints(); c.gridy = 5; c.gridwidth = 2; c.anchor = GridBagConstraints.WEST; c.insets = new Insets(0, 15, 0, 15); getContentPane().add(textArea, c); // Add license button button = new JButton("View License"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { showLicense(); } }); c = new GridBagConstraints(); c.gridy = 6; c.anchor = GridBagConstraints.CENTER; c.weightx = 1.0d; c.insets = new Insets(20, 15, 10, 15); getContentPane().add(button, c); // Add close button button = new JButton("Close"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { dispose(); } }); c = new GridBagConstraints(); c.gridx = 1; c.gridy = 6; c.anchor = GridBagConstraints.CENTER; c.weightx = 1.0d; c.insets = new Insets(20, 15, 10, 15); getContentPane().add(button, c); // Layout components pack(); } /** * Closes this dialog and shows the license dialog. */ protected void showLicense() { LicenseDialog dialog = new LicenseDialog((JFrame) getParent()); dispose(); dialog.setVisible(true); } }