view com.redhat.thermostat.tools.eclipse.plugin/src/com/redhat/thermostat/tools/eclipse/plugin/editor/OverviewPage.java @ 90:8f2dd0dbdb87

Externalize strings
author Omair Majid <omajid@redhat.com>
date Tue, 21 Jan 2014 19:51:04 -0500
parents b788a26c0d4d
children
line wrap: on
line source

package com.redhat.thermostat.tools.eclipse.plugin.editor;

import java.net.MalformedURLException;
import java.net.URL;

import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.forms.IManagedForm;
import org.eclipse.ui.forms.editor.FormEditor;
import org.eclipse.ui.forms.editor.FormPage;
import org.eclipse.ui.forms.events.HyperlinkAdapter;
import org.eclipse.ui.forms.events.HyperlinkEvent;
import org.eclipse.ui.forms.widgets.FormText;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.ScrolledForm;
import org.eclipse.ui.forms.widgets.Section;
import org.eclipse.ui.forms.widgets.TableWrapLayout;

import com.redhat.thermostat.tools.eclipse.plugin.Messages;

public class OverviewPage extends FormPage {

    static final String ID = "com.redhat.thermostat.tools.eclipse.plugin.editor.OverviewPage"; //$NON-NLS-1$
    static final String TITLE = Messages.OverviewPage_title;

    private String pluginName;

    public OverviewPage(FormEditor editor, String pluginName) {
        super(editor, ID, TITLE);

        this.pluginName = pluginName;
    }

    @Override
    protected void createFormContent(IManagedForm managedForm) {
        ScrolledForm form = managedForm.getForm();
        form.setText(NLS.bind(Messages.OverviewPage_formTitle, pluginName));
        TableWrapLayout layout = new TableWrapLayout();
        form.getBody().setLayout(layout);

        createOverviewSection(form.getBody());

        createEditCommandsAndExtensionsSection(form.getBody());
    }


    private void createOverviewSection(Composite parent) {
        FormToolkit toolkit = getManagedForm().getToolkit();
        Section section = toolkit.createSection(parent, Section.TITLE_BAR);
        section.setText(Messages.OverviewPage_generalInformationSectionTitle);

        Composite sectionData = toolkit.createComposite(section);
        sectionData.setLayout(new TableWrapLayout());
        FormText helpText = toolkit.createFormText(sectionData, false);
        String onlineHelp = NLS.bind(Messages.OverviewPage_thermostatOverviewForm, 
                "http://icedtea.classpath.org/thermostat", //$NON-NLS-1$
                "http://icedtea.classpath.org/wiki/Thermostat/ExtensionTutorial"); //$NON-NLS-1$
        helpText.setText(onlineHelp, true, false);
        helpText.addHyperlinkListener(new HyperlinkAdapter() {
            @Override
            public void linkActivated(HyperlinkEvent e) {
                String href = (String) e.getHref();
                try {
                    PlatformUI.getWorkbench().getBrowserSupport().getExternalBrowser().openURL(new URL(href));
                } catch (PartInitException | MalformedURLException e1) {
                    e1.printStackTrace();
                }
            }
        });

        section.setClient(sectionData);
    }

    private void createEditCommandsAndExtensionsSection(Composite parent) {
        FormToolkit toolkit = getManagedForm().getToolkit();
        Section section = toolkit.createSection(parent, Section.TITLE_BAR);
        section.setText(Messages.OverviewPage_commandsAndExtensionSectionTitle);

        Composite sectionData = toolkit.createComposite(section);
        sectionData.setLayout(new TableWrapLayout());

        FormText commandAndExtensionsForm = toolkit.createFormText(sectionData, false);
        String formContents = NLS.bind(Messages.OverviewPage_bundlesAndExtensionsOverviewForm,
                "commands", //$NON-NLS-1$
                "extensions"); //$NON-NLS-1$
        commandAndExtensionsForm.setText(formContents, true, false);

        commandAndExtensionsForm.addHyperlinkListener(new HyperlinkAdapter() {
            @Override
            public void linkActivated(HyperlinkEvent e) {
                String href = (String) e.getHref();
                String id = null;
                switch(href) {
                    case "commands": //$NON-NLS-1$
                        id = CommandsPage.ID;
                        break;
                    case "extensions": //$NON-NLS-1$
                        id = ExtensionsPage.ID;
                        break;
                }
                OverviewPage.this.getEditor().setActivePage(id);
            }
        });

        section.setClient(sectionData);
    }

}