/*
* Copyright (C) Justo Montiel, David Torres, Sergio Gomez, Alberto Fernandez
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see
* <http://www.gnu.org/licenses/>
*/
package moduls.frm.children;
import inicial.Language;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import utils.URLLabel;
/**
* <p>
* <b>MultiDendrograms</b>
* </p>
*
* About MultiDendrograms dialog
*
* @author Justo Montiel, David Torres, Sergio Gómez, Alberto Fernández
*
* @since JDK 6.0
*/
public class AboutBox extends JDialog implements ActionListener {
private static final long serialVersionUID = 1L;
private final String title = "Info";
private final String appTitle = "MultiDendrograms";
private final String version = "2.1.0";
private final String authors = "Justo Montiel, David Torres";
private final String advisors = "Sergio Gomez, Alberto Fernandez";
private final String homepage = "http://deim.urv.cat/~sgomez/multidendrograms.php";
private final String licenseURL = "http://www.gnu.org/licenses/lgpl.html";
private final String manualURL = "http://deim.urv.cat/~sgomez/soft/multidendrograms-2.1-manual.pdf";
private final JButton closeButton = new JButton();
private final JLabel appTitleLabel = new JLabel();
private final JLabel appVersionLabel = new JLabel();
private final JLabel appAuthorsLabel = new JLabel();
private final URLLabel appHomepageLabel = new URLLabel(homepage, homepage);
private final JLabel urvLabel = new JLabel();
private final JLabel imageLabel = new JLabel();
private final JLabel advisorsLabel = new JLabel();
private final JLabel versionLabel = new JLabel();
private final JLabel authorsLabel = new JLabel();
private final JLabel appAdvisorsLabel = new JLabel();
private final JLabel jLabel5 = new JLabel();
private final JLabel homepageLabel = new JLabel();
private final URLLabel manualLabel = new URLLabel(manualURL,
Language.getLabel(124));
private final URLLabel licenseLabel = new URLLabel(licenseURL,
Language.getLabel(121));
private final Font font1 = new Font("Arial", Font.BOLD, 12);
private final Font font2 = new Font("Arial", Font.PLAIN, 12);
public AboutBox(Frame parent) {
super(parent);
initComponents();
getRootPane().setDefaultButton(closeButton);
Dimension pantalla = Toolkit.getDefaultToolkit().getScreenSize();
Dimension ventana = getSize();
setLocation((pantalla.width - ventana.width) / 2,
(pantalla.height - ventana.height) / 2);
}
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle(title);
setModal(true);
setName("aboutBox");
setResizable(false);
closeButton.addActionListener(this);
closeButton.setText(Language.getLabel(60));
closeButton.setName("closeButton");
appTitleLabel.setFont(appTitleLabel.getFont().deriveFont(
appTitleLabel.getFont().getStyle() | java.awt.Font.BOLD,
appTitleLabel.getFont().getSize() + 4));
appTitleLabel.setText(appTitle);
appTitleLabel.setName("appTitleLabel");
appVersionLabel.setFont(font2);
appVersionLabel.setText(version);
appVersionLabel.setName("appVersionLabel");
appAuthorsLabel.setFont(font2);
appAuthorsLabel.setText(authors);
appAuthorsLabel.setName("appAuthorsLabel");
appAdvisorsLabel.setFont(font2);
appAdvisorsLabel.setText(advisors);
appAdvisorsLabel.setName("appAdvisorsLabel");
appHomepageLabel.setFont(font2);
appHomepageLabel.setName("appHomepageLabel");
appHomepageLabel.setCursor(Cursor
.getPredefinedCursor(Cursor.HAND_CURSOR));
urvLabel.setFont(font2);
urvLabel.setText("Universitat Rovira i Virgili, Tarragona (Spain)");
urvLabel.setName("urvLabel");
imageLabel.setIcon(new ImageIcon("img/ico2.png"));
imageLabel.setName("imageLabel");
advisorsLabel.setFont(font1);
advisorsLabel.setText(Language.getLabel(120));
advisorsLabel.setName("advisorsLabel");
versionLabel.setFont(font1);
versionLabel.setText(Language.getLabel(118));
versionLabel.setName("versionLabel");
authorsLabel.setFont(font1);
authorsLabel.setText(Language.getLabel(119));
authorsLabel.setName("authorsLabel");
homepageLabel.setFont(font1);
homepageLabel.setText(Language.getLabel(122));
homepageLabel.setName("homepageLabel");
manualLabel.setName("manualLabel");
manualLabel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
licenseLabel.setName("licenseLabel");
licenseLabel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout.createSequentialGroup()
.addComponent(imageLabel)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(
layout.createSequentialGroup()
.addGap(36, 36,
36)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(
appTitleLabel)
.addComponent(
urvLabel,
javax.swing.GroupLayout.DEFAULT_SIZE,
394,
Short.MAX_VALUE)
.addGroup(
layout.createSequentialGroup()
.addComponent(
jLabel5)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(
versionLabel)
.addComponent(
authorsLabel)
.addComponent(
advisorsLabel)
.addComponent(
homepageLabel))
.addGap(27,
27,
27)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(
appHomepageLabel)
.addGroup(
layout.createSequentialGroup()
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(
appAdvisorsLabel)
.addComponent(
appVersionLabel)
.addComponent(
appAuthorsLabel))
.addGap(53,
53,
53)))
.addGap(86,
86,
86))))
.addGroup(
layout.createSequentialGroup()
.addGap(66,
66,
66)
.addComponent(
manualLabel)
.addGap(107,
107,
107)
.addComponent(
licenseLabel))))
.addGroup(
layout.createSequentialGroup()
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
closeButton)))
.addContainerGap()));
layout.setVerticalGroup(layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(imageLabel,
javax.swing.GroupLayout.PREFERRED_SIZE, 225,
Short.MAX_VALUE)
.addGroup(
layout.createSequentialGroup()
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout.createSequentialGroup()
.addContainerGap()
.addComponent(
appTitleLabel)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
urvLabel))
.addGroup(
layout.createSequentialGroup()
.addGap(68, 68,
68)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(
appVersionLabel)
.addComponent(
versionLabel))
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(
appAuthorsLabel)
.addComponent(
authorsLabel))
.addGap(8, 8, 8)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(
advisorsLabel)
.addComponent(
appAdvisorsLabel))
.addGap(7, 7, 7)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(
homepageLabel)
.addComponent(
appHomepageLabel))))
.addGap(18, 18, 18)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(manualLabel)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(
closeButton)
.addGroup(
layout.createSequentialGroup()
.addComponent(
licenseLabel)
.addGap(37,
37,
37)
.addComponent(
jLabel5))))
.addContainerGap(
javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)));
pack();
}
@Override
public void actionPerformed(final ActionEvent e) {
dispose();
}
}