package GUI;
import AngioTool.AngioTool;
import java.awt.Color;
import java.awt.Desktop;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Insets;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionAdapter;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
import javax.swing.event.HyperlinkEvent.EventType;
import org.netbeans.lib.awtextra.AbsoluteConstraints;
import org.netbeans.lib.awtextra.AbsoluteLayout;
public class AngioToolAboutBox extends JDialog implements MouseListener {
Point location;
MouseEvent pressed;
String filename = "";
InputStream is = this.getClass().getClassLoader().getResourceAsStream("doc/AngioTool.html");
private JPanel aboutBoxPanel;
private JButton closeAboutBox;
private JEditorPane helpEditorPane;
private JScrollPane jScrollPane1;
public AngioToolAboutBox(Frame parent, boolean modal) {
super(parent, modal);
MyHTMLEditorKit kit = new MyHTMLEditorKit();
kit.setJar(this.getClass());
this.initComponents();
Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize();
Dimension AboutBoxDimension = this.getSize();
this.setLocation(screenDimension.width / 2 - AboutBoxDimension.width / 2, screenDimension.height / 2 - AboutBoxDimension.height / 2);
this.helpEditorPane.setEditorKit(kit);
this.helpEditorPane.addHyperlinkListener(new AngioToolAboutBox.AboutBoxHyperlinkListener());
this.addMouseListener(this);
FileReader reader = null;
try {
this.helpEditorPane.read(this.is, this.filename);
} catch (IOException var8) {
Logger.getLogger(AngioToolAboutBox.class.getName()).log(Level.SEVERE, null, var8);
}
}
public void closeAboutBox() {
AngioToolGUI.ATAboutBoxLoc = this.getLocation();
this.dispose();
}
private void initComponents() {
this.aboutBoxPanel = new JPanel();
JLabel appTitleLabel = new JLabel();
JLabel appDescLabel = new JLabel();
JLabel versionLabel = new JLabel();
JLabel homepageLabel = new JLabel();
JLabel imageLabel = new JLabel();
JLabel homepageLabel1 = new JLabel();
JLabel homepageLabel2 = new JLabel();
JLabel homepageLabel3 = new JLabel();
JLabel homepageLabel4 = new JLabel();
JLabel homepageLabel5 = new JLabel();
JLabel homepageLabel6 = new JLabel();
this.jScrollPane1 = new JScrollPane();
this.helpEditorPane = new JEditorPane();
this.closeAboutBox = new JButton();
this.setDefaultCloseOperation(2);
this.setMinimumSize(new Dimension(620, 180));
this.setResizable(false);
this.setUndecorated(true);
this.getContentPane().setLayout(new AbsoluteLayout());
this.aboutBoxPanel.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0), 2));
this.aboutBoxPanel.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent evt) {
AngioToolAboutBox.this.aboutBoxPanelMousePressed(evt);
}
});
this.aboutBoxPanel.addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent evt) {
AngioToolAboutBox.this.aboutBoxPanelMouseDragged(evt);
}
});
this.aboutBoxPanel.setLayout(new AbsoluteLayout());
appTitleLabel.setFont(appTitleLabel.getFont().deriveFont(appTitleLabel.getFont().getStyle() | 1, (float)(appTitleLabel.getFont().getSize() + 19)));
appTitleLabel.setHorizontalAlignment(0);
appTitleLabel.setText(AngioTool.VERSION);
this.aboutBoxPanel.add(appTitleLabel, new AbsoluteConstraints(310, 20, -1, -1));
this.aboutBoxPanel.add(appDescLabel, new AbsoluteConstraints(160, 40, 270, -1));
versionLabel.setFont(versionLabel.getFont().deriveFont(versionLabel.getFont().getStyle() | 1, (float)(versionLabel.getFont().getSize() + 3)));
versionLabel.setHorizontalAlignment(0);
versionLabel.setText("Version 0.6a Batch Edition (14.05.23)");
this.aboutBoxPanel.add(versionLabel, new AbsoluteConstraints(260, 70, -1, -1));
homepageLabel.setFont(homepageLabel.getFont().deriveFont(homepageLabel.getFont().getStyle() | 1, (float)(homepageLabel.getFont().getSize() + 3)));
homepageLabel.setText("Laure Gambardella");
this.aboutBoxPanel.add(homepageLabel, new AbsoluteConstraints(320, 190, -1, -1));
imageLabel.setIcon(new ImageIcon(this.getClass().getResource("/images/ATIcon20 128x128.gif")));
this.aboutBoxPanel.add(imageLabel, new AbsoluteConstraints(10, 10, -1, 130));
homepageLabel1.setFont(homepageLabel1.getFont().deriveFont(homepageLabel1.getFont().getStyle() | 1, (float)(homepageLabel1.getFont().getSize() + 3)));
homepageLabel1.setText("Contributors:");
this.aboutBoxPanel.add(homepageLabel1, new AbsoluteConstraints(280, 110, -1, -1));
homepageLabel2.setFont(homepageLabel2.getFont().deriveFont(homepageLabel2.getFont().getStyle() | 1, (float)(homepageLabel2.getFont().getSize() + 3)));
homepageLabel2.setText("Enrique Zudaire");
this.aboutBoxPanel.add(homepageLabel2, new AbsoluteConstraints(320, 130, -1, -1));
homepageLabel3.setFont(homepageLabel3.getFont().deriveFont(homepageLabel3.getFont().getStyle() | 1, (float)(homepageLabel3.getFont().getSize() + 3)));
homepageLabel3.setText("Chris Kurcz");
this.aboutBoxPanel.add(homepageLabel3, new AbsoluteConstraints(320, 150, -1, -1));
homepageLabel4.setFont(homepageLabel4.getFont().deriveFont(homepageLabel4.getFont().getStyle() | 1, (float)(homepageLabel4.getFont().getSize() + 3)));
homepageLabel4.setText("Sonja Vermeren");
this.aboutBoxPanel.add(homepageLabel4, new AbsoluteConstraints(320, 170, -1, -1));
homepageLabel5.setFont(homepageLabel5.getFont().deriveFont(homepageLabel5.getFont().getStyle() | 1, (float)(homepageLabel5.getFont().getSize() + 3)));
homepageLabel5.setText("Batch analysis feature:");
this.aboutBoxPanel.add(homepageLabel5, new AbsoluteConstraints(280, 210, -1, -1));
homepageLabel6.setFont(homepageLabel6.getFont().deriveFont(homepageLabel6.getFont().getStyle() | 1, (float)(homepageLabel6.getFont().getSize() + 3)));
homepageLabel6.setText("Jack Bendtsen");
this.aboutBoxPanel.add(homepageLabel6, new AbsoluteConstraints(320, 230, -1, -1));
this.jScrollPane1.setBorder(BorderFactory.createBevelBorder(1));
this.helpEditorPane.setEditable(false);
this.helpEditorPane.setMargin(new Insets(4, 4, 4, 4));
this.jScrollPane1.setViewportView(this.helpEditorPane);
this.aboutBoxPanel.add(this.jScrollPane1, new AbsoluteConstraints(10, 270, 760, 430));
this.getContentPane().add(this.aboutBoxPanel, new AbsoluteConstraints(0, 0, 785, 710));
this.closeAboutBox.setFont(new Font("Tahoma", 1, 18));
this.closeAboutBox.setText("Close");
this.closeAboutBox.setOpaque(false);
this.closeAboutBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
AngioToolAboutBox.this.closeAboutBoxActionPerformed(evt);
}
});
this.getContentPane().add(this.closeAboutBox, new AbsoluteConstraints(3, 715, 780, 30));
this.pack();
}
private void aboutBoxPanelMouseDragged(MouseEvent evt) {
this.location = this.getLocation(this.location);
int x = this.location.x - this.pressed.getX() + evt.getX();
int y = this.location.y - this.pressed.getY() + evt.getY();
this.setLocation(x, y);
}
private void aboutBoxPanelMousePressed(MouseEvent evt) {
this.pressed = evt;
}
private void closeAboutBoxActionPerformed(ActionEvent evt) {
this.closeAboutBox();
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
AngioToolAboutBox dialog = new AngioToolAboutBox(new JFrame(), true);
dialog.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
@Override
public void mouseClicked(MouseEvent e) {
this.closeAboutBox();
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
class AboutBoxHyperlinkListener implements HyperlinkListener {
@Override
public void hyperlinkUpdate(HyperlinkEvent evt) {
if (evt.getEventType() == EventType.ACTIVATED) {
try {
try {
Desktop.getDesktop().browse(evt.getURL().toURI());
} catch (URISyntaxException var3) {
Logger.getLogger(AngioToolAboutBox.class.getName()).log(Level.SEVERE, null, var3);
}
} catch (IOException var4) {
}
}
}
}
}