/**
* Marabou - Audio Tagger
* Copyright (C) 2012 - 2016 Jan-Hendrik Peters
* https://github.com/hennr/marabou
* Marabou 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.
* This program 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 this program. If not, see
* <http://www.gnu.org/licenses/gpl-3.0.html>.
*/
package com.github.marabou.ui.view;
import java.awt.Desktop;
import java.net.URI;
import com.github.marabou.helper.AvailableImage;
import com.github.marabou.helper.ImageLoader;
import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import static com.github.marabou.helper.I18nHelper.i18n;
public class CreditsWindow {
public static void showCredits() {
final Display display = Display.getCurrent();
final Shell shell = new Shell(display);
shell.setText(i18n("Credits"));
shell.setImage(new ImageLoader().getImage(AvailableImage.LOGO_SMALL));
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 1;
shell.setLayout(gridLayout);
// close window on ESC
shell.addListener(SWT.Traverse, new Listener() {
@Override
public void handleEvent(Event event) {
if (event.detail == SWT.TRAVERSE_ESCAPE) {
shell.dispose();
}
}
});
TabFolder tabFolder = new TabFolder(shell, SWT.NONE);
Composite devsComp = new Composite(tabFolder, SWT.NONE);
Composite transComp = new Composite(tabFolder, SWT.NONE);
Composite depsComp = new Composite(tabFolder, SWT.NONE);
TabItem codersTab = new TabItem(tabFolder, SWT.None);
codersTab.setText(i18n("Developers"));
codersTab.setControl(devsComp);
TabItem translatorsTab = new TabItem(tabFolder, SWT.None);
translatorsTab.setText(i18n("Translators"));
translatorsTab.setControl(transComp);
TabItem dependenciesTab = new TabItem(tabFolder, SWT.None);
dependenciesTab.setText(i18n("Dependencies"));
dependenciesTab.setControl(depsComp);
Link developers = new Link(devsComp, SWT.None);
developers.setText(i18n("\n\n Jan-Hendrik Peters <a>hennr@hennr.name</a>"));
developers.pack();
// listener to open mail client for the E-Mail-address clicked
developers.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
if (Desktop.isDesktopSupported()) {
try {
Desktop.getDesktop().mail(new URI("mailto", event.text, null));
} catch (Exception e) {
// no mail client found, well...
}
}
}
});
Link translators = new Link(transComp, SWT.None);
translators.setText(i18n("\n English:\n Jan-Hendrik Peters <a>hennr@hennr.name</a>"));
translators.pack();
Link dependencies = new Link(depsComp, SWT.None);
dependencies.setText(i18n(
"\nThanks to the following projects and persons:\n\n" +
"SWT; " + "EPL; " + "<a>http://www.eclipse.org/swt/</a>\n" +
"Michael Patricios for mp3agic; " + "GPL 3; " + "<a>https://github.com/mpatric/mp3agic/</a>\n" +
"Tango Icon Library; " + "Public Domain; " + "<a>http://tango.freedesktop.org/Tango_Icon_Library</a>\n" +
"maven; " + "Apache licence; " + "<a>http://maven.apache.org/</a>\n") +
"Dries Bargheer for the logo; " + "CC-BY-SA" + "\n"
);
dependencies.pack();
Button close = new Button(shell, SWT.NONE);
close.setText(i18n("&Close"));
close.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
shell.dispose();
}
});
close.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
close.pack();
shell.pack();
shell.open();
// close as well if display gets disposed
while (!shell.isDisposed() && display.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}
}