/* * Copyright 2010-2015 Institut Pasteur. * * This file is part of Icy. * * Icy is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Icy 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Icy. If not, see <http://www.gnu.org/licenses/>. */ package icy.gui.frame; import icy.main.Icy; import icy.system.thread.ThreadUtil; import javax.swing.BoxLayout; import javax.swing.JEditorPane; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; public class AboutFrame extends IcyFrame { final JTabbedPane tabbedPane; final JEditorPane aboutEditorPane; final JEditorPane authorEditorPane; final JEditorPane thanksToEditorPane; final JEditorPane externalEditorPane; final JEditorPane changeLogEditorPane; final JEditorPane licenseEditorPane; public AboutFrame(int defaultTab) { super("About ICY", false, true, false, false); aboutEditorPane = new JEditorPane("text/html", ""); aboutEditorPane.setEditable(false); aboutEditorPane.setCaretPosition(0); authorEditorPane = new JEditorPane("text/html", ""); authorEditorPane.setEditable(false); authorEditorPane.setCaretPosition(0); thanksToEditorPane = new JEditorPane("text/html", ""); thanksToEditorPane.setEditable(false); thanksToEditorPane.setCaretPosition(0); externalEditorPane = new JEditorPane("text/html", ""); externalEditorPane.setEditable(false); externalEditorPane.setCaretPosition(0); changeLogEditorPane = new JEditorPane("text/html", ""); externalEditorPane.setEditable(false); externalEditorPane.setCaretPosition(0); licenseEditorPane = new JEditorPane("text/html", ""); licenseEditorPane.setEditable(false); licenseEditorPane.setCaretPosition(0); tabbedPane = new JTabbedPane(); tabbedPane.add("About", new JScrollPane(aboutEditorPane)); // tabbedPane.add("Authors", new JScrollPane(authorEditorPane)); // tabbedPane.add("Thanks to", new JScrollPane(thanksToEditorPane)); tabbedPane.add("ChangeLog", new JScrollPane(changeLogEditorPane)); // tabbedPane.add("External code and library", new JScrollPane(externalEditorPane)); tabbedPane.add("License", new JScrollPane(licenseEditorPane)); // select the default tab tabbedPane.setSelectedIndex(defaultTab); setLayout(new BoxLayout(getContentPane(), BoxLayout.PAGE_AXIS)); add(tabbedPane); setSize(680, 480); setVisible(true); addToDesktopPane(); center(); requestFocus(); loadInfos(); } private void loadInfos() { ThreadUtil.bgRun(new Runnable() { @Override public void run() { final String about = "<html><center>" + "<br>" + "<br><h2>Icy " + Icy.version + "</h2>" + "<br>BioImage Analysis unit" + "<br>Institut Pasteur" + "<br>Unite d'analyse d images quantitative" + "<br>25,28 Rue du Docteur Roux\n" + "<br>75015 Paris - France" + "<br>" + "<br><a href=\"http://icy.bioimageanalysis.com\">http://icy.bioimageanalysis.com</a>" + "</html>"; final String author = "<html><center><br>" + "<br>" + "<br><font size=3><u>The AIQ Team:</u></font>" + "<br>" + "<br><b>machin</b> bidule" + "<br><b>machin</b> bidule" + "<br><b>machin</b> bidule" + "<br><b>machin</b> bidule" + "</html>"; final String thanks = "<html><center><br>" + "<br>The authors of <b>bioformat</b> <i>http://www.loci.wisc.edu/ome/formats.html</i> for their fast answer and bugfixes." + "</html>"; final String external = "<html><center><br>" + "<br>" + "<br><font size=3><u>LIBRARY:</u></font>" + "<br>" + "<br><b>BioFormat</b> - http://www.openmicroscopy.org/site/products/bio-formats" + "<br><b>Substance</b> - https://java.net/projects/substance" + "</html>"; final String changelog = "<html><pre>" + Icy.getChangeLog() + "</pre></html>"; final String license = "<html><pre>" + Icy.getLicense() + "</pre></html>"; aboutEditorPane.setText(about); authorEditorPane.setText(author); thanksToEditorPane.setText(thanks); externalEditorPane.setText(external); changeLogEditorPane.setText(changelog); licenseEditorPane.setText(license); } }); } public AboutFrame() { this(0); } }