diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/OpenGLTraceAction.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/OpenGLTraceAction.java | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/OpenGLTraceAction.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/OpenGLTraceAction.java new file mode 100644 index 000000000..6e232bb6c --- /dev/null +++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/OpenGLTraceAction.java @@ -0,0 +1,88 @@ +/* + * Copyright (C) 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.core.filesystem.EFS; +import org.eclipse.core.filesystem.IFileStore; +import org.eclipse.core.runtime.Path; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.FileDialog; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.IWorkbenchWindowActionDelegate; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.ide.IDE; + +import java.io.File; + +public class OpenGLTraceAction implements IWorkbenchWindowActionDelegate { + private static String sLoadFromFolder = System.getProperty("user.home"); + + @Override + public void run(IAction action) { + openTrace(); + } + + @Override + public void selectionChanged(IAction action, ISelection selection) { + } + + @Override + public void dispose() { + } + + @Override + public void init(IWorkbenchWindow window) { + } + + private void openTrace() { + Shell shell = Display.getDefault().getActiveShell(); + FileDialog fd = new FileDialog(shell, SWT.OPEN); + + fd.setText("Open Trace File"); + fd.setFilterPath(sLoadFromFolder); + fd.setFilterExtensions(new String[] { "*.gltrace" }); + + String fname = fd.open(); + if (fname == null || fname.trim().length() == 0) { + return; + } + + sLoadFromFolder = new File(fname).getParent().toString(); + + openEditorFor(fname); + } + + private void openEditorFor(String fname) { + IFileStore fileStore = EFS.getLocalFileSystem().getStore(new Path(fname)); + IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); + + try { + IDE.openEditorOnFileStore( page, fileStore ); + } catch (PartInitException e) { + MessageDialog.openError(Display.getDefault().getActiveShell(), + "Error opening GL Trace File", + "Unexpected error while opening GL Trace file: " + e.getMessage()); + } + } +} |