[yocto] [PATCH 5/5] plugins/sdk.ide: Inform user that the settings have to revalidated
Timo Mueller
mail at timomueller.eu
Tue Mar 5 00:29:24 PST 2013
From: Timo Mueller <timo.mueller at bmw-carit.de>
If the last validation resulted in an error and the user made changes
to the settings the error message is replaced by a message asking the
user to revalidate.
Signed-off-by: Timo Mueller <timo.mueller at bmw-carit.de>
---
.../org/yocto/sdk/ide/YoctoSDKMessages.properties | 1 +
.../src/org/yocto/sdk/ide/YoctoUISetting.java | 1 +
.../ide/preferences/YoctoSDKPreferencePage.java | 26 ++++++++++++++++++-
.../preferences/YoctoSDKProjectPropertyPage.java | 30 +++++++++++++++++++++-
4 files changed, 56 insertions(+), 2 deletions(-)
diff --git a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoSDKMessages.properties b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoSDKMessages.properties
index 07a0009..e6d8fa1 100644
--- a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoSDKMessages.properties
+++ b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoSDKMessages.properties
@@ -37,6 +37,7 @@ Poky.Toolchain.Host.Mismatch = Toolchain and host arch mismatch.
Poky.Toolchain.Host.Mismatch.Advice = Make sure you use 32bit toolchain for 32bit host and same for 64bit machines!
Default.Advice = \nDo IDE-wide settings from Window > Preferences > Yocto Project ADT\nOr do Project-wide settings from Project > Change Yocto Project Settings.
+Poky.SDK.Revalidation.Message = Please apply the changes to revalidate.
Poky.SDK.Error.Origin.Wizard = Yocto Wizard Configuration Error:
Poky.SDK.Error.Origin.Menu = Yocto Menu Configuration Error:
diff --git a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoUISetting.java b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoUISetting.java
index 95209b6..e5a7897 100644
--- a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoUISetting.java
+++ b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoUISetting.java
@@ -300,6 +300,7 @@ public class YoctoUISetting {
btnPokyRoot.addSelectionListener(fSelectionListener);
btnQemu.addSelectionListener(fSelectionListener);
btnDevice.addSelectionListener(fSelectionListener);
+ targetArchCombo.addSelectionListener(fSelectionListener);
textRootLoc.addModifyListener(fModifyListener);
textKernelLoc.addModifyListener(fModifyListener);
textQemuOption.addModifyListener(fModifyListener);
diff --git a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/preferences/YoctoSDKPreferencePage.java b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/preferences/YoctoSDKPreferencePage.java
index 97c602b..f013cf8 100644
--- a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/preferences/YoctoSDKPreferencePage.java
+++ b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/preferences/YoctoSDKPreferencePage.java
@@ -25,6 +25,8 @@ import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.yocto.sdk.ide.YoctoProfileElement;
@@ -44,10 +46,13 @@ public class YoctoSDKPreferencePage extends PreferencePage implements IWorkbench
private static final String NEW_DIALOG_MESSAGE = "Preferences.Profile.New.Dialog.Message";
private static final String UPDATE_DIALOG_TITLE = "Preferences.Profile.Update.Dialog.Title";
private static final String UPDATE_DIALOG_MESSAGE = "Preferences.Profile.Update.Dialog.Message";
+ private static final String REVALIDATION_MESSAGE = "Poky.SDK.Revalidation.Message";
private YoctoProfileSetting yoctoProfileSetting;
private YoctoUISetting yoctoUISetting;
+ private Listener changeListener;
+
public YoctoSDKPreferencePage() {
//super(GRID);
IPreferenceStore defaultStore = YoctoSDKPlugin.getDefault().getPreferenceStore();
@@ -66,6 +71,16 @@ public class YoctoSDKPreferencePage extends PreferencePage implements IWorkbench
YoctoProfileElement profileElement = new YoctoProfileElement(profiles, selectedProfile);
this.yoctoProfileSetting = new YoctoProfileSetting(profileElement, this, true);
+
+ changeListener = new Listener() {
+ @Override
+ public void handleEvent(Event event) {
+ if (getErrorMessage() != null) {
+ setErrorMessage(null);
+ setMessage(YoctoSDKMessages.getString(REVALIDATION_MESSAGE), INFORMATION);
+ }
+ }
+ };
}
/*
@@ -82,6 +97,9 @@ public class YoctoSDKPreferencePage extends PreferencePage implements IWorkbench
yoctoProfileSetting.createComposite(composite);
yoctoUISetting.createComposite(composite);
+ composite.addListener(SWT.Modify, changeListener);
+ composite.addListener(SWT.Selection, changeListener);
+
SDKCheckResults result = yoctoUISetting.validateInput(SDKCheckRequestFrom.Preferences, false);
if (result != SDKCheckResults.SDK_PASS) {
}
@@ -94,7 +112,7 @@ public class YoctoSDKPreferencePage extends PreferencePage implements IWorkbench
* @see IPreferencePage#performOk()
*/
public boolean performOk() {
- setErrorMessage(null);
+ clearMessages();
SDKCheckResults result = yoctoUISetting.validateInput(SDKCheckRequestFrom.Preferences, false);
if (result != SDKCheckResults.SDK_PASS) {
@@ -130,6 +148,12 @@ public class YoctoSDKPreferencePage extends PreferencePage implements IWorkbench
return super.performOk();
}
+ private void clearMessages() {
+ setErrorMessage(null);
+ setMessage(null);
+ setTitle(getTitle());
+ }
+
/*
* @see PreferencePage#performDefaults()
*/
diff --git a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/preferences/YoctoSDKProjectPropertyPage.java b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/preferences/YoctoSDKProjectPropertyPage.java
index effd432..34c497b 100644
--- a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/preferences/YoctoSDKProjectPropertyPage.java
+++ b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/preferences/YoctoSDKProjectPropertyPage.java
@@ -19,6 +19,8 @@ import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
import org.eclipse.ui.IWorkbenchPropertyPage;
import org.eclipse.ui.dialogs.PropertyPage;
import org.yocto.sdk.ide.YoctoProfileElement;
@@ -26,6 +28,7 @@ import org.yocto.sdk.ide.YoctoProfileSetting;
import org.yocto.sdk.ide.YoctoProjectSpecificSetting;
import org.yocto.sdk.ide.YoctoSDKChecker.SDKCheckRequestFrom;
import org.yocto.sdk.ide.YoctoSDKChecker.SDKCheckResults;
+import org.yocto.sdk.ide.YoctoSDKMessages;
import org.yocto.sdk.ide.YoctoSDKPlugin;
import org.yocto.sdk.ide.YoctoSDKUtils;
import org.yocto.sdk.ide.YoctoUIElement;
@@ -34,11 +37,27 @@ import org.yocto.sdk.ide.YoctoUISetting;
public class YoctoSDKProjectPropertyPage extends PropertyPage implements
IWorkbenchPropertyPage {
+ private static final String REVALIDATION_MESSAGE = "Poky.SDK.Revalidation.Message";
+
private YoctoProfileSetting yoctoProfileSetting;
private YoctoProjectSpecificSetting yoctoProjectSpecificSetting;
private YoctoUISetting yoctoUISetting;
private IProject project = null;
+ private Listener changeListener;
+
+ public YoctoSDKProjectPropertyPage() {
+ changeListener = new Listener() {
+ @Override
+ public void handleEvent(Event event) {
+ if (getErrorMessage() != null) {
+ setErrorMessage(null);
+ setMessage(YoctoSDKMessages.getString(REVALIDATION_MESSAGE), INFORMATION);
+ }
+ }
+ };
+ }
+
@Override
protected Control createContents(Composite parent) {
IProject project = getProject();
@@ -86,6 +105,9 @@ public class YoctoSDKProjectPropertyPage extends PropertyPage implements
yoctoUISetting.setUIFormEnabledState(false);
}
+ composite.addListener(SWT.Modify, changeListener);
+ composite.addListener(SWT.Selection, changeListener);
+
Dialog.applyDialogFont(composite);
return composite;
}
@@ -120,7 +142,7 @@ public class YoctoSDKProjectPropertyPage extends PropertyPage implements
*/
@Override
public boolean performOk() {
- setErrorMessage(null);
+ clearMessages();
IProject project = getProject();
@@ -144,6 +166,12 @@ public class YoctoSDKProjectPropertyPage extends PropertyPage implements
return super.performOk();
}
+ private void clearMessages() {
+ setErrorMessage(null);
+ setMessage(null);
+ setTitle(getTitle());
+ }
+
public void switchProfile(String selectedProfile)
{
YoctoUIElement profileElement = YoctoSDKUtils.getElemFromStore(YoctoSDKPlugin.getProfilePreferenceStore(selectedProfile));
--
1.7.11.7
More information about the yocto
mailing list