| /* |
| ** Copyright 2011, The Android Open Source Project |
| ** |
| ** Licensed under the Apache License, Version 2.0 (the "License"); |
| ** you may not use this file except in compliance with the License. |
| ** You may obtain a copy of the License at |
| ** |
| ** http://www.apache.org/licenses/LICENSE-2.0 |
| ** |
| ** Unless required by applicable law or agreed to in writing, software |
| ** distributed under the License is distributed on an "AS IS" BASIS, |
| ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| ** See the License for the specific language governing permissions and |
| ** limitations under the License. |
| */ |
| |
| package com.android.ide.eclipse.gltrace; |
| |
| import org.eclipse.jface.resource.ImageDescriptor; |
| import org.eclipse.swt.widgets.Display; |
| import org.eclipse.ui.IWorkbenchPage; |
| import org.eclipse.ui.IWorkbenchWindow; |
| import org.eclipse.ui.PartInitException; |
| import org.eclipse.ui.PlatformUI; |
| import org.eclipse.ui.console.ConsolePlugin; |
| import org.eclipse.ui.console.IConsole; |
| import org.eclipse.ui.console.IConsoleConstants; |
| import org.eclipse.ui.console.MessageConsole; |
| import org.eclipse.ui.console.MessageConsoleStream; |
| import org.eclipse.ui.plugin.AbstractUIPlugin; |
| import org.osgi.framework.BundleContext; |
| |
| /** |
| * The activator class controls the plug-in life cycle |
| */ |
| public class GlTracePlugin extends AbstractUIPlugin { |
| |
| // The plug-in ID |
| public static final String PLUGIN_ID = "com.android.ide.eclipse.gldebugger"; //$NON-NLS-1$ |
| |
| // The shared instance |
| private static GlTracePlugin plugin; |
| |
| private MessageConsole mConsole; |
| private MessageConsoleStream mConsoleStream; |
| |
| /** |
| * The constructor |
| */ |
| public GlTracePlugin() { |
| } |
| |
| /* |
| * (non-Javadoc) |
| * @see |
| * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext |
| * ) |
| */ |
| @Override |
| public void start(BundleContext context) throws Exception { |
| super.start(context); |
| plugin = this; |
| |
| mConsole = new MessageConsole("OpenGL Trace View", null); |
| ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[] { |
| mConsole }); |
| |
| mConsoleStream = mConsole.newMessageStream(); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * @see |
| * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext |
| * ) |
| */ |
| @Override |
| public void stop(BundleContext context) throws Exception { |
| plugin = null; |
| super.stop(context); |
| } |
| |
| /** |
| * Returns the shared instance |
| * |
| * @return the shared instance |
| */ |
| public static GlTracePlugin getDefault() { |
| return plugin; |
| } |
| |
| /** |
| * Returns an image descriptor for the image file at the given plug-in |
| * relative path |
| * |
| * @param path the path |
| * @return the image descriptor |
| */ |
| public static ImageDescriptor getImageDescriptor(String path) { |
| return imageDescriptorFromPlugin(PLUGIN_ID, path); |
| } |
| |
| public void logMessage(String message) { |
| mConsoleStream.println(message); |
| |
| Display.getDefault().asyncExec(sShowConsoleRunnable); |
| } |
| |
| private static Runnable sShowConsoleRunnable = new Runnable() { |
| @Override |
| public void run() { |
| showConsoleView(); |
| }; |
| }; |
| |
| private static void showConsoleView() { |
| IWorkbenchWindow w = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); |
| if (w != null) { |
| IWorkbenchPage page = w.getActivePage(); |
| if (page != null) { |
| try { |
| page.showView(IConsoleConstants.ID_CONSOLE_VIEW, null, |
| IWorkbenchPage.VIEW_VISIBLE); |
| } catch (PartInitException e) { |
| // ignore |
| } |
| } |
| } |
| } |
| } |