//This product is provided under the terms of EPL (Eclipse Public License)
//version 1.0.
//
//The full license text can be read from: http://www.eclipse.org/org/documents/epl-v10.php
package org.dtangler.swingui.aboutinfodisplayer.impl;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.event.KeyEvent;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import org.dtangler.core.versioninfo.VersionInfo;
import org.dtangler.swingui.actionfactory.ActionFactory;
import org.dtangler.swingui.resource.icons.IconKey;
import org.dtangler.swingui.windowmanager.SwingBaseView;
import com.jgoodies.forms.builder.DefaultFormBuilder;
import com.jgoodies.forms.factories.ButtonBarFactory;
import com.jgoodies.forms.layout.FormLayout;
public class SwingAboutInfoView extends SwingBaseView implements AboutInfoView {
private JButton okButton;
protected SwingAboutInfoView(ActionFactory actionFactory) {
super(actionFactory);
okButton = createButton("Ok", Actions.close);
}
public Dimension getPreferredSize() {
return null;
}
public String getTitle() {
return "About dtangler";
}
public JComponent buildViewComponent() {
DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout(
"fill:p:grow", "fill:p:grow,4dlu,p,p,4dlu,p,p,4dlu,p,p,4dlu,p"));
builder.setDefaultDialogBorder();
builder.append(createVersionPanel());
builder.nextRow();
builder.appendSeparator("License");
builder.append(createLicensePanel());
builder.nextRow();
builder.appendSeparator("Credits");
builder.append(createCreditsPanel());
builder.nextRow();
builder.appendSeparator("Sponsors");
builder.append(createSponsorPanel());
builder.nextRow();
JPanel buttonBar = ButtonBarFactory.buildRightAlignedBar(okButton);
buttonBar.setOpaque(false);
builder.append(buttonBar);
JPanel panel = builder.getPanel();
addCommonKeyEvent(panel, KeyEvent.VK_ENTER, Actions.close);
addCommonKeyEvent(panel, KeyEvent.VK_ESCAPE, Actions.close);
panel.setOpaque(true);
panel.setBackground(Color.white);
return panel;
}
private Component createVersionPanel() {
DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("p",
"p,10dlu,p,4dlu,p"));
builder.setDefaultDialogBorder();
builder.append(new JLabel(getIcon(IconKey.dtangler_logo)));
builder.nextRow();
builder.append("dtangler version " + VersionInfo.getVersionInfo()
+ " (c) 2008 by contributors");
builder.nextRow();
builder
.append("check www.dtangler.org for new versions and additional information");
JPanel panel = builder.getPanel();
panel.setOpaque(false);
return panel;
}
private Component createLicensePanel() {
DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("p",
"p,0dlu,p,4dlu,p,0dlu,p"));
builder.setDefaultDialogBorder();
builder
.append("dtangler is an Open Source initiative provided under the terms of");
builder.nextRow();
builder.append("EPL (Eclipse Public License) version 1.0.");
builder.nextRow();
builder.append("The full license text can be read from:");
builder.nextRow();
builder.append("www.eclipse.org/org/documents/epl-v10.php");
JPanel panel = builder.getPanel();
panel.setOpaque(false);
return panel;
}
private Component createCreditsPanel() {
DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout(
"p,12dlu,p,12dlu,p", "p"));
builder.setDefaultDialogBorder();
builder.append(new JLabel("Pertti Erkkil\u00E4"), new JLabel(
"Pertti Lehtisaari"), new JLabel("Seppo Suorsa"));
builder.append(new JLabel("Samuli J\u00E4rvel\u00E4"), new JLabel(
"Marko Oikarinen"), new JLabel("Daniel Wellner"));
builder.append(new JLabel("Kaisa Kittil\u00E4"), new JLabel("Annika Ruohtula"),
new JLabel(""));
JPanel panel = builder.getPanel();
panel.setOpaque(false);
return panel;
}
private Component createSponsorPanel() {
DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("p",
"p,p"));
builder.setDefaultDialogBorder();
builder.append(new JLabel(getIcon(IconKey.sysart)));
builder.append(new JLabel("www.sysart.fi"));
JPanel panel = builder.getPanel();
panel.setOpaque(false);
return panel;
}
}