[yocto] [PATCH] plugins/sdk.ide: Remove profile edit buttons from property page

Timo Mueller mail at timomueller.eu
Wed Feb 27 06:33:26 PST 2013


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

The project property page for yocto project settings contains the same
edit buttons as the preference page. As editing profiles is not
allowed in the property page these buttons have been permanently
disabled.

This removes them completely from the property page. The remaining
profile drop-down box allows the user to select a cross development
profile for the project.

Signed-off-by: Timo Mueller <timo.mueller at bmw-carit.de>
---
 .../src/org/yocto/sdk/ide/YoctoProfileSetting.java | 30 ++++++++++++++++------
 .../ide/preferences/YoctoSDKPreferencePage.java    |  2 +-
 .../preferences/YoctoSDKProjectPropertyPage.java   |  3 +--
 3 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoProfileSetting.java b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoProfileSetting.java
index cc3e167..0f36e99 100644
--- a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoProfileSetting.java
+++ b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoProfileSetting.java
@@ -49,10 +49,12 @@ public class YoctoProfileSetting {
 
 	private YoctoProfileElement profileElement;
 	private PreferencePage preferencePage;
+	private final boolean editable;
 
-	public YoctoProfileSetting(YoctoProfileElement profileElement, PreferencePage preferencePage) {
+	public YoctoProfileSetting(YoctoProfileElement profileElement, PreferencePage preferencePage, final boolean editable) {
 		this.profileElement = profileElement;
 		this.preferencePage = preferencePage;
+		this.editable = editable;
 	}
 
 	public void createComposite(Composite composite) {
@@ -61,7 +63,11 @@ public class YoctoProfileSetting {
 		composite.setLayout(layout);
 
 		Group storeYoctoConfigurationsGroup = new Group (composite, SWT.NONE);
-		layout = new GridLayout(3, false);
+		layout = new GridLayout(1, false);
+		if (isEditable()) {
+			layout.numColumns = 3;
+		}
+
 		storeYoctoConfigurationsGroup.setLayout(layout);
 		gd = new GridData(SWT.FILL, SWT.CENTER, true, false);
 		gd.horizontalSpan = 2;
@@ -101,9 +107,11 @@ public class YoctoProfileSetting {
 		sdkConfigsCombo.addListener(SWT.Selection, selectionListener);
 		sdkConfigsCombo.addListener(SWT.Modify, selectionListener);
 
-		createSaveAsProfileButton(storeYoctoConfigurationsGroup);
-		createRenameButton(storeYoctoConfigurationsGroup);
-		createRemoveButton(storeYoctoConfigurationsGroup);
+		if (isEditable()) {
+			createSaveAsProfileButton(storeYoctoConfigurationsGroup);
+			createRenameButton(storeYoctoConfigurationsGroup);
+			createRemoveButton(storeYoctoConfigurationsGroup);
+		}
 	}
 
 	private void createSaveAsProfileButton(Group storeYoctoConfigurationsGroup) {
@@ -225,8 +233,14 @@ public class YoctoProfileSetting {
 	}
 
 	public void setButtonsEnabledState(boolean isEnabled) {
-		btnConfigRename.setEnabled(isEnabled);
-		btnConfigRemove.setEnabled(isEnabled);
-		btnConfigSaveAs.setEnabled(isEnabled);
+		if (isEditable()) {
+			btnConfigRename.setEnabled(isEnabled);
+			btnConfigRemove.setEnabled(isEnabled);
+			btnConfigSaveAs.setEnabled(isEnabled);
+		}
+	}
+
+	private boolean isEditable() {
+		return editable;
 	}
 }
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 4d57b45..3e0fa54 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
@@ -64,7 +64,7 @@ public class YoctoSDKPreferencePage extends PreferencePage implements IWorkbench
 		this.yoctoUISetting = new YoctoUISetting(elem);
 
 		YoctoProfileElement profileElement = new YoctoProfileElement(profiles, selectedProfile);
-		this.yoctoProfileSetting = new YoctoProfileSetting(profileElement, this);
+		this.yoctoProfileSetting = new YoctoProfileSetting(profileElement, this, true);
 	}
 
 	/*
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 eef56c1..7f0d25e 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
@@ -51,7 +51,7 @@ public class YoctoSDKProjectPropertyPage extends PropertyPage implements
 		}
 
 		yoctoProfileSetting = new YoctoProfileSetting(
-				new YoctoProfileElement(globalProfileElement.getProfilesAsString(), selectedProfile), this);
+				new YoctoProfileElement(globalProfileElement.getProfilesAsString(), selectedProfile), this, false);
 		boolean useProjectSpecificSetting = YoctoSDKUtils.getUseProjectSpecificOptionFromProjectPreferences(project);
 
 		if (useProjectSpecificSetting) {
@@ -78,7 +78,6 @@ public class YoctoSDKProjectPropertyPage extends PropertyPage implements
 				yoctoUISetting.validateInput(SDKCheckRequestFrom.Preferences, false);
 			} else {
 				yoctoProfileSetting.setUIFormEnabledState(true);
-				yoctoProfileSetting.setButtonsEnabledState(false);
 				yoctoProjectSpecificSetting.setUseProjectSpecificSettings(false);
 				yoctoUISetting.setUIFormEnabledState(false);
 			}
-- 
1.7.11.7




More information about the yocto mailing list