[yocto] [eclipse-poky][PATCH 7/8] org.yocto.sdk.ide: remove InvokeAction usage
Tim Orling
timothy.t.orling at linux.intel.com
Thu Aug 11 16:31:10 PDT 2016
[YOCTO #9908]
Dropped from CDT 9.0.0 (that work is done by handlers now)
Suppress restriction warnings
Cleanup unused imports
Signed-off-by: Tim Orling <timothy.t.orling at linux.intel.com>
---
.../src/org/yocto/sdk/ide/YoctoSDKChecker.java | 1 -
.../yocto/sdk/ide/actions/InvokeSyncAction.java | 110 ---------------------
.../yocto/sdk/ide/actions/ReconfigYoctoAction.java | 44 ---------
.../sdk/ide/actions/ReconfigYoctoHandler.java | 71 ++++---------
.../natures/YoctoSDKAutotoolsProjectNature.java | 1 +
5 files changed, 21 insertions(+), 206 deletions(-)
delete mode 100644 plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/actions/InvokeSyncAction.java
delete mode 100644 plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/actions/ReconfigYoctoAction.java
diff --git a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoSDKChecker.java b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoSDKChecker.java
index 8e48852..d1d74f2 100644
--- a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoSDKChecker.java
+++ b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoSDKChecker.java
@@ -22,7 +22,6 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import org.eclipse.jface.preference.IPreferenceStore;
-import org.yocto.sdk.ide.natures.YoctoSDKProjectNature;
import org.yocto.sdk.ide.utils.YoctoSDKUtils;
import org.yocto.sdk.ide.utils.YoctoSDKUtilsConstants;
diff --git a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/actions/InvokeSyncAction.java b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/actions/InvokeSyncAction.java
deleted file mode 100644
index f39d5fd..0000000
--- a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/actions/InvokeSyncAction.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Intel Corporation.
- * 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:
- * Intel - initial API and implementation
- *******************************************************************************/
-package org.yocto.sdk.ide.actions;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.ArrayList;
-
-import org.eclipse.cdt.core.CommandLauncher;
-import org.eclipse.cdt.core.ConsoleOutputStream;
-import org.eclipse.cdt.core.envvar.IEnvironmentVariable;
-import org.eclipse.cdt.core.resources.IConsole;
-import org.eclipse.cdt.managedbuilder.core.IConfiguration;
-import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
-import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.cdt.internal.autotools.core.AutotoolsNewMakeGenerator;
-import org.eclipse.cdt.internal.autotools.ui.actions.InvokeAction;
-import org.eclipse.cdt.internal.autotools.ui.actions.InvokeMessages;
-
-import org.yocto.sdk.ide.YoctoSDKPlugin;
-
- at SuppressWarnings("restriction")
-public class InvokeSyncAction extends InvokeAction {
- protected void executeLocalConsoleCommand(final IConsole console, final String actionName, final String command,
- final String[] argumentList, final IPath execDir, final String password) throws CoreException, IOException {
-
- String errMsg = null;
- IProject project = getSelectedContainer().getProject();
- // Get a build console for the project
- ConsoleOutputStream consoleOutStream = console.getOutputStream();
- // FIXME: we want to remove need for ManagedBuilderManager, but how do we
- // get environment variables.
- IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project);
- IConfiguration cfg = info.getDefaultConfiguration();
-
- StringBuffer buf = new StringBuffer();
- String[] consoleHeader = new String[3];
-
- consoleHeader[0] = actionName;
- consoleHeader[1] = cfg.getName();
- consoleHeader[2] = project.getName();
- buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$ //$NON-NLS-2$
- String invokeMsg = InvokeMessages.getFormattedString("InvokeAction.console.message", //$NON-NLS-1$
- new String[]{actionName, execDir.toString()}); //$NON-NLS-1$
- buf.append(invokeMsg);
- buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$ //$NON-NLS-2$
- buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$ //$NON-NLS-2$
- consoleOutStream.write(buf.toString().getBytes());
- consoleOutStream.flush();
-
- ArrayList<String> additionalEnvs = new ArrayList<String>();
- String strippedCommand = AutotoolsNewMakeGenerator.stripEnvVars(command, additionalEnvs);
- // Get a launcher for the config command
- CommandLauncher launcher = new CommandLauncher();
- // Set the environment
- IEnvironmentVariable variables[] = ManagedBuildManager
- .getEnvironmentVariableProvider().getVariables(cfg, true);
- String[] env = null;
- ArrayList<String> envList = new ArrayList<String>();
- if (variables != null) {
- for (int i = 0; i < variables.length; i++) {
- envList.add(variables[i].getName()
- + "=" + variables[i].getValue()); //$NON-NLS-1$
- }
- // add any additional environment variables specified ahead of script
- if (additionalEnvs.size() > 0)
- envList.addAll(additionalEnvs);
- env = (String[]) envList.toArray(new String[envList.size()]);
- }
- OutputStream stdout = consoleOutStream;
- OutputStream stderr = consoleOutStream;
-
- launcher.showCommand(true);
- // Run the shell script via shell command.
- Process proc = launcher.execute(new Path(strippedCommand), argumentList, env,
- execDir, new NullProgressMonitor());
-
- if (proc != null) {
- // Close the input of the process since we will never write to it
- OutputStream out = proc.getOutputStream();
- if (!password.isEmpty()) {
- out.write(password.getBytes());
- out.write("\n".getBytes());
- }
- out.close();
-
- if (launcher.waitAndRead(stdout, stderr) != CommandLauncher.OK) {
- errMsg = launcher.getErrorMessage();
- }
- } else {
- errMsg = launcher.getErrorMessage();
- }
-
- if (errMsg != null)
- YoctoSDKPlugin.logErrorMessage(errMsg);
- }
-}
diff --git a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/actions/ReconfigYoctoAction.java b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/actions/ReconfigYoctoAction.java
deleted file mode 100644
index e255fd1..0000000
--- a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/actions/ReconfigYoctoAction.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Intel Corporation.
- * 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:
- * Intel - initial API and implementation
- *******************************************************************************/
-package org.yocto.sdk.ide.actions;
-
-import org.eclipse.cdt.internal.autotools.ui.actions.InvokeAction;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.ui.dialogs.PreferencesUtil;
-import org.yocto.sdk.ide.YoctoSDKPlugin;
-
-
- at SuppressWarnings("restriction")
-public class ReconfigYoctoAction extends InvokeAction {
-
- public void run(IAction action) {
- IContainer container = getSelectedContainer();
- if (container == null)
- return;
-
- IProject project = container.getProject();
-
- PreferenceDialog dialog =
- PreferencesUtil.createPropertyDialogOn(YoctoSDKPlugin.getActiveWorkbenchShell(),
- project,
- "org.yocto.sdk.ide.page",
- null,
- null);
- dialog.open();
- }
-
- public void dispose() {
-
- }
-}
diff --git a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/actions/ReconfigYoctoHandler.java b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/actions/ReconfigYoctoHandler.java
index 6d508d3..c6c842b 100644
--- a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/actions/ReconfigYoctoHandler.java
+++ b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/actions/ReconfigYoctoHandler.java
@@ -10,18 +10,14 @@
*******************************************************************************/
package org.yocto.sdk.ide.actions;
-import java.lang.reflect.Method;
-
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.expressions.IEvaluationContext;
import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jface.preference.PreferenceDialog;
import org.eclipse.cdt.internal.autotools.ui.actions.AbstractAutotoolsHandler;
-import org.eclipse.cdt.internal.autotools.ui.actions.InvokeAction;
-import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.dialogs.PreferencesUtil;
import org.yocto.sdk.ide.YoctoSDKPlugin;
@@ -29,50 +25,23 @@ import org.yocto.sdk.ide.YoctoSDKPlugin;
public class ReconfigYoctoHandler extends AbstractAutotoolsHandler {
public Object execute(ExecutionEvent event) throws ExecutionException {
- ReconfigYoctoAction action = new ReconfigYoctoAction();
- Method method = null;
+ return execute1(event);
+ }
+
+ @Override
+ protected void run(Shell arg0) {
+ IContainer container = getSelectedContainer();
+ if (container == null)
+ return;
- try {
- /*
- * This is hack to workaround upstream eclipse bug #370288
- */
- Class [] params = {ExecutionEvent.class, InvokeAction.class};
- method = AbstractAutotoolsHandler.class.getDeclaredMethod("execute",params );
- } catch (NoSuchMethodException e) {
- //no such method, old version of plugin org.eclipse.linuxtools.autotools.ui
- method = null;
- } catch (Exception e) {
- throw new ExecutionException(e.getMessage(), e);
- }
+ IProject project = container.getProject();
- if (method != null) {
- //new version
- Object [] params = {event, action};
- try {
- return method.invoke(this, params);
- }catch (Exception e) {
- throw new ExecutionException(e.getMessage(), e);
- }
- } else {
- //old version
- //display a dialog to warn the user
- Display.getDefault().syncExec(new Runnable() {
- public void run() {
- ErrorDialog.openError(null, "Change Yocto Project Settings", "Please update the plugin of \"Autotools support for CDT\"!",
- new Status(IStatus.WARNING,YoctoSDKPlugin.PLUGIN_ID,"old version of plugin \"Autotools support for CDT\" detected."));
- }
- });
- //try to display the dialog in the old way
- Object o = event.getApplicationContext();
- if (o instanceof IEvaluationContext) {
- IContainer container = getContainer((IEvaluationContext)o);
- if (container != null) {
- action.setSelectedContainer(container);
- action.run(null);
- }
- }
- }
-
- return null;
+ PreferenceDialog dialog =
+ PreferencesUtil.createPropertyDialogOn(YoctoSDKPlugin.getActiveWorkbenchShell(),
+ project,
+ "org.yocto.sdk.ide.page",
+ null,
+ null);
+ dialog.open();
}
}
diff --git a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/natures/YoctoSDKAutotoolsProjectNature.java b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/natures/YoctoSDKAutotoolsProjectNature.java
index ce80d77..db63639 100644
--- a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/natures/YoctoSDKAutotoolsProjectNature.java
+++ b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/natures/YoctoSDKAutotoolsProjectNature.java
@@ -21,6 +21,7 @@ import org.yocto.sdk.ide.YoctoUIElement;
import org.yocto.sdk.ide.utils.ProjectPreferenceUtils;
import org.yocto.sdk.ide.utils.YoctoSDKUtils;
+ at SuppressWarnings("restriction")
public class YoctoSDKAutotoolsProjectNature extends YoctoSDKProjectNature {
public static final String YoctoSDK_AUTOTOOLS_NATURE_ID = YoctoSDKPlugin.getUniqueIdentifier() + ".YoctoSDKAutotoolsNature";
--
2.7.4
More information about the yocto
mailing list