org.dtangler.swingui.aboutinfodisplayer.impl.SwingAboutInfoView.java Source code

Java tutorial

Introduction

Here is the source code for org.dtangler.swingui.aboutinfodisplayer.impl.SwingAboutInfoView.java

Source

//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;
    }
}