AboutDialog.java

/*******************************************************************************
 *   Copyright (c) 2013 Steve Flasby
 *   All rights reserved.
 *   Redistribution and use in source and binary forms, with or without modification,
 *   are permitted provided that the following conditions are met:
 *   <ul>
 *       <li>Redistributions of source code must retain the above copyright notice,
 *           this list of conditions and the following disclaimer.</li>
 *       <li>Redistributions in binary form must reproduce the above copyright notice,
 *           this list of conditions and the following disclaimer in the documentation
 *           and/or other materials provided with the distribution.</li>
 *   </ul>
 *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 *   ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 *   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 *   IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 *   INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 *   BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 *   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
 *   OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 *   ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *  
 *******************************************************************************/
package org.flasby.swing;

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

import org.flasby.util.Message;

public class AboutDialog extends JDialog {
	private static final long serialVersionUID = 1L;

	/*
	 * version:${project.version}
	 * artifact:${project.artifactId}
	 * builddate:${builddate}
	 */
	public AboutDialog(JFrame parent, Message mls, String... ids) {
		super(parent, mls.getMLS("about.title"), true);

		Box b = Box.createVerticalBox();
		b.add(Box.createGlue());

		b.add(new JLabel(mls.getMLS("about.version", 
				mls.getMLS("version"), 
				mls.getMLS("builddate") )));

		StringBuilder sb = new StringBuilder("<html><table>");
		for (String id : ids) {
			sb.append("<tr><td>").append(mls.getMLS(id)).append("</td></tr>");
		}
		sb.append("</table></html>");
		
		b.add(new JLabel(sb.toString()));
		
		b.add(Box.createGlue());
		getContentPane().add(b, "Center");

		JPanel p2 = new JPanel();
		JButton ok = new JButton("Ok");
		p2.add(ok);
		getContentPane().add(p2, "South");

		ok.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent evt) {
				setVisible(false);
			}
		});
		setLocationRelativeTo(parent);
		setMinimumSize(new Dimension(200,  50));
		pack();
	}
}