org.biojava.nbio.structure.align.gui.AboutDialog Maven / Gradle / Ivy
/*
* PDB web development code
*
* This code may be freely distributed and modified under the
* terms of the GNU Lesser General Public Licence. This should
* be distributed with the code. If you do not have a copy,
* see:
*
* http://www.gnu.org/copyleft/lesser.html
*
* Copyright for this code is held jointly by the individual
* authors. These should be listed in @author doc comments.
*
*
* Created on Jul 21, 2009
* Created by ap3
*
*/
package org.biojava.nbio.structure.align.gui;
import org.biojava.nbio.structure.align.StructureAlignment;
import org.biojava.nbio.structure.align.StructureAlignmentFactory;
import org.biojava.nbio.structure.align.util.ResourceManager;
import org.biojava.nbio.structure.align.webstart.BrowserOpener;
import javax.swing.*;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class AboutDialog
{
Box vBox;
public AboutDialog(){
}
public void showDialog(){
JDialog dialog = new JDialog();
dialog.setSize(new Dimension(500,650));
ResourceManager mgr = ResourceManager.getResourceManager("ce");
String msg = "";
msg += mgr.getString("ce.about");
msg += "Currently suported algorithms and version:
";
// add the Algorithms and version nrs.
StructureAlignment[] algorithms = StructureAlignmentFactory.getAllAlgorithms();
for (StructureAlignment algorithm: algorithms){
msg+=""+algorithm.getAlgorithmName()+" V." +algorithm.getVersion()+"
";
}
//msg+="
";
JEditorPane txt = new JEditorPane("text/html", msg);
txt.setEditable(false);
JScrollPane scroll = new JScrollPane(txt);
scroll.setSize(new Dimension(300,500));
vBox= Box.createVerticalBox();
vBox.add(scroll);
txt.addHyperlinkListener(new HyperlinkListener(){
@Override
public void hyperlinkUpdate(HyperlinkEvent e) {
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
String href = e.getDescription();
BrowserOpener.showDocument(href);
}
if ( e.getEventType() == HyperlinkEvent.EventType.ENTERED) {
// change the mouse curor
vBox.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
}
if (e.getEventType() == HyperlinkEvent.EventType.EXITED) {
vBox.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
}
});
JButton close = new JButton("Close");
close.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent event) {
Object source = event.getSource();
JButton but = (JButton)source;
Container parent = but.getParent().getParent().getParent().getParent().getParent().getParent() ;
JDialog dia = (JDialog) parent;
dia.dispose();
}
});
Box hBoxb = Box.createHorizontalBox();
hBoxb.add(Box.createGlue());
hBoxb.add(close,BorderLayout.EAST);
vBox.add(hBoxb);
dialog.getContentPane().add(vBox);
dialog.setVisible(true);
}
}