org.eclipse.pde.internal.ui.wizards.imports.PluginImportFinishDialog.java Source code

Java tutorial

Introduction

Here is the source code for org.eclipse.pde.internal.ui.wizards.imports.PluginImportFinishDialog.java

Source

/*******************************************************************************
 * Copyright (c) 2008, 2012 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     Bartosz Michalik <bartosz.michalik@gmail.com> - bug 212758
 *******************************************************************************/
package org.eclipse.pde.internal.ui.wizards.imports;

import java.util.List;
import org.eclipse.jface.dialogs.*;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.pde.internal.ui.*;
import org.eclipse.pde.internal.ui.elements.DefaultTableProvider;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
import org.eclipse.ui.PlatformUI;

/**
 * This is a simple info dialog capable to display list of given plugins. The list should 
 * contain elements recognizable by {@link PDELabelProvider}. 
 */
public class PluginImportFinishDialog extends TitleAreaDialog {

    private TableViewer fPluginListViewer;
    private List<?> fPluginList;
    private String fTitle;
    private String fMessage;
    private boolean fConfigured;

    protected Control createDialogArea(Composite parent) {
        Composite composite = (Composite) super.createDialogArea(parent);
        super.setTitle(fTitle);
        super.setMessage(fMessage, IMessageProvider.INFORMATION);
        composite.setLayoutData(new GridData(GridData.FILL_BOTH));
        composite.setLayout(new GridLayout(1, true));
        fPluginListViewer = new TableViewer(composite);
        fPluginListViewer.setLabelProvider(new PDELabelProvider());
        fPluginListViewer.setContentProvider(new PluginImportTableContentProvider());
        fPluginListViewer.setInput(fPluginList);
        GridData data = new GridData(GridData.FILL_BOTH);
        data.widthHint = 100;
        data.heightHint = 200;
        fPluginListViewer.getTable().setLayoutData(data);
        fConfigured = true;
        return composite;

    }

    protected void configureShell(Shell newShell) {
        super.configureShell(newShell);
        newShell.setText(PDEUIMessages.ImportWizard_title);
        PlatformUI.getWorkbench().getHelpSystem().setHelp(newShell, IHelpContextIds.PLUGIN_IMPORT_FINISH_DIALOG);
    }

    protected void createButtonsForButtonBar(Composite parent) {
        createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
    }

    public PluginImportFinishDialog(Shell parentShell) {
        super(parentShell);
        fConfigured = false;
    }

    public final void setInput(List<?> pluginList) {
        fPluginList = pluginList;
    }

    static private class PluginImportTableContentProvider extends DefaultTableProvider {

        public Object[] getElements(Object inputElement) {
            return ((List<?>) inputElement).toArray();
        }
    }

    public void setMessage(String newMessage) {
        fMessage = newMessage;
        if (fConfigured)
            super.setMessage(fMessage, IMessageProvider.INFORMATION);
    }

    public void setTitle(String newTitle) {
        fTitle = newTitle;
        if (fConfigured)
            super.setTitle(fTitle);
    }

}