From: Timo Mueller <timo.muel...@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.muel...@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 _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto