com.yoursway.hello.debug.ui.internal.HelloDebugUIPlugin.java Source code

Java tutorial

Introduction

Here is the source code for com.yoursway.hello.debug.ui.internal.HelloDebugUIPlugin.java

Source

/*******************************************************************************
 * Copyright (c) 2005, 2007 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
 *
     
 *******************************************************************************/
package com.yoursway.hello.debug.ui.internal;

import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.IWorkbenchSite;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;

/**
 * The activator class controls the plug-in life cycle
 */
public class HelloDebugUIPlugin extends AbstractUIPlugin {

    // The plug-in ID
    public static final String PLUGIN_ID = "com.yoursway.hello.debug.ui";

    // The shared instance
    private static HelloDebugUIPlugin plugin;

    /**
     * The constructor
     */
    public HelloDebugUIPlugin() {
        plugin = this;
    }

    /*
     * (non-Javadoc)
     * 
     * @see
     * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
     * )
     */
    public void start(BundleContext context) throws Exception {
        super.start(context);
    }

    /*
     * (non-Javadoc)
     * 
     * @see
     * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
     * )
     */
    public void stop(BundleContext context) throws Exception {
        plugin = null;
        super.stop(context);
    }

    /**
     * Returns the shared instance
     * 
     * @return the shared instance
     */
    public static HelloDebugUIPlugin getDefault() {
        return plugin;
    }

    public static void log(IStatus status) {
        getDefault().getLog().log(status);
    }

    public static IStructuredSelection getCurrentSelection() {
        IWorkbenchWindow window = getDefault().getWorkbench().getActiveWorkbenchWindow();
        if (window != null) {
            IWorkbenchPage page = window.getActivePage();
            if (page != null) {
                IWorkbenchPart part = page.getActivePart();
                if (part instanceof IEditorPart) {
                    return new StructuredSelection(part);
                } else if (part != null) {
                    IWorkbenchSite site = part.getSite();
                    if (site != null) {
                        ISelectionProvider provider = site.getSelectionProvider();
                        if (provider != null) {
                            ISelection selection = provider.getSelection();
                            if (selection instanceof IStructuredSelection) {
                                return (IStructuredSelection) provider.getSelection();
                            }
                        }
                    }
                }
            }
        }
        return StructuredSelection.EMPTY;
    }

    public void showInformation(final String title, final String information) {
        Display.getDefault().asyncExec(new Runnable() {

            public void run() {
                MessageDialog.openInformation(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
                        title, information);
            }

        });
    }

    public void showWarning(final String title, final String information) {
        Display.getDefault().asyncExec(new Runnable() {

            public void run() {
                MessageDialog.openWarning(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), title,
                        information);
            }

        });
    }
}