[yocto] [PATCH 8/8] plugins/sdk.ide: Open project properties instead of standalone yocto settings dialog

mail at timomueller.eu mail at timomueller.eu
Tue Dec 4 01:22:23 PST 2012


From: Timo Mueller <timo.mueller at bmw-carit.de>

As the yocto settings can now be set via the project's property pages,
the "Change Yocto Project Settings" will now open the property page
instead of showing the a standalone dialog.
---
 .../yocto/sdk/ide/actions/ReconfigYoctoAction.java |   29 ++----
 .../yocto/sdk/ide/actions/SDKLocationDialog.java   |   89 --------------------
 2 files changed, 10 insertions(+), 108 deletions(-)
 delete mode 100644 plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/actions/SDKLocationDialog.java

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
index d7021be..e255fd1 100644
--- 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
@@ -14,16 +14,13 @@ 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.swt.widgets.Shell;
-import org.yocto.sdk.ide.YoctoSDKMessages;
-import org.yocto.sdk.ide.YoctoSDKUtils;
-import org.yocto.sdk.ide.YoctoUIElement;
+import org.eclipse.jface.preference.PreferenceDialog;
+import org.eclipse.ui.dialogs.PreferencesUtil;
+import org.yocto.sdk.ide.YoctoSDKPlugin;
 
 
 @SuppressWarnings("restriction")
 public class ReconfigYoctoAction extends InvokeAction {
-    private static final String DIALOG_TITLE  = "Menu.SDK.Dialog.Title";
-
 	
 	public void run(IAction action) {
 		IContainer container = getSelectedContainer();
@@ -32,19 +29,13 @@ public class ReconfigYoctoAction extends InvokeAction {
 
 		IProject project = container.getProject();
 
-		//Try to get the per project configuration first
-		YoctoUIElement elem = YoctoSDKUtils.getElemFromProjectEnv(project);
-		if (elem.getStrToolChainRoot().isEmpty()|| elem.getStrTarget().isEmpty()){
-			// No project environment has been set yet, use the Preference values
-			elem = YoctoSDKUtils.getElemFromStore();
-		} 
-
-		SDKLocationDialog optionDialog = new SDKLocationDialog(new Shell(), YoctoSDKMessages.getString(DIALOG_TITLE), elem);
-		optionDialog.open();
-		elem = optionDialog.getElem();
-		if (elem.getStrToolChainRoot() != null) {
-			YoctoSDKUtils.saveElemToProjectEnv(project, elem);
-		}
+		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/SDKLocationDialog.java b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/actions/SDKLocationDialog.java
deleted file mode 100644
index 439d720..0000000
--- a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/actions/SDKLocationDialog.java
+++ /dev/null
@@ -1,89 +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.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-
-import org.yocto.sdk.ide.YoctoGeneralException;
-import org.yocto.sdk.ide.YoctoSDKUtils.SDKCheckRequestFrom;
-import org.yocto.sdk.ide.YoctoUIElement;
-import org.yocto.sdk.ide.YoctoUISetting;
-
-public class SDKLocationDialog extends Dialog {
-	private String title;
-	private YoctoUISetting yoctoUISetting;
-	private YoctoUIElement elem;
-
-	public SDKLocationDialog(Shell parentShell, String dialogTitle, YoctoUIElement elem) {
-        super(parentShell);
-        this.setElem(elem);
-        this.yoctoUISetting = new YoctoUISetting(elem);
-        this.title = dialogTitle;
-        setShellStyle(getShellStyle() | SWT.RESIZE);
-        
-	}
-
-	@Override
-	protected Control createDialogArea(Composite parent) {
-		final Composite result = (Composite) super.createDialogArea(parent);
-				
-		try {
-			yoctoUISetting.createComposite(result);
-			yoctoUISetting.validateInput(SDKCheckRequestFrom.Menu, false);
-		} catch (YoctoGeneralException e) {
-			// TODO Auto-generated catch block
-			System.out.println("Have you ever set the project specific Yocto Settings?");
-			System.out.println(e.getMessage());
-		}
-
-		return result;
-	}
-
-
-	@Override
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		newShell.setText(title);
-	}
-	
-	protected void buttonPressed(int buttonId) {
-		if (buttonId == IDialogConstants.OK_ID) {
-			//this should not be called in fact, because widget change should be called firstly!
-			try {
-				yoctoUISetting.validateInput(SDKCheckRequestFrom.Menu, true);
-				this.setElem(yoctoUISetting.getCurrentInput());
-				super.buttonPressed(buttonId);
-			} catch (YoctoGeneralException e) {
-				// TODO Auto-generated catch block
-				System.out.println(e.getMessage());
-			}
-		}
-		else if (buttonId == IDialogConstants.CANCEL_ID)
-		{
-			super.buttonPressed(buttonId);
-		}			
-	}
-
-	public void setElem(YoctoUIElement elem) {
-		this.elem = elem;
-	}
-
-	public YoctoUIElement getElem() {
-		return elem;
-	}
-
-}
-- 
1.7.7.6




More information about the yocto mailing list