[Esbox-commits] r1224 - in branches/work_Ed/org.maemo.esbox.project.cpp: . META-INF src/org/maemo/esbox/internal/project/cpp/ui

eswartz at garage.maemo.org eswartz at garage.maemo.org
Fri Feb 13 18:42:36 EET 2009


Author: eswartz
Date: 2009-02-13 18:42:36 +0200 (Fri, 13 Feb 2009)
New Revision: 1224

Added:
   branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/ui/ESboxBuildConfigManager.java
Modified:
   branches/work_Ed/org.maemo.esbox.project.cpp/META-INF/MANIFEST.MF
   branches/work_Ed/org.maemo.esbox.project.cpp/plugin.xml
Log:
Fix bug 3460

Modified: branches/work_Ed/org.maemo.esbox.project.cpp/META-INF/MANIFEST.MF
===================================================================
--- branches/work_Ed/org.maemo.esbox.project.cpp/META-INF/MANIFEST.MF	2009-02-13 15:59:57 UTC (rev 1223)
+++ branches/work_Ed/org.maemo.esbox.project.cpp/META-INF/MANIFEST.MF	2009-02-13 16:42:36 UTC (rev 1224)
@@ -19,6 +19,7 @@
  org.eclipse.cdt.make.ui;bundle-version="5.0.1",
  org.eclipse.cdt.ui;bundle-version="5.0.1",
  org.maemo.mica.linux.packages.core;bundle-version="2.0.0",
- org.maemo.mica.linux.packages.ui;bundle-version="2.0.0"
+ org.maemo.mica.linux.packages.ui;bundle-version="2.0.0",
+ org.eclipse.cdt.core;bundle-version="5.0.1"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-ActivationPolicy: lazy

Modified: branches/work_Ed/org.maemo.esbox.project.cpp/plugin.xml
===================================================================
--- branches/work_Ed/org.maemo.esbox.project.cpp/plugin.xml	2009-02-13 15:59:57 UTC (rev 1223)
+++ branches/work_Ed/org.maemo.esbox.project.cpp/plugin.xml	2009-02-13 16:42:36 UTC (rev 1224)
@@ -166,7 +166,7 @@
 	<!-- new page -->
 	<page
            class="org.maemo.esbox.internal.project.cpp.ui.properties.ESboxCppBuildConfigurationsPage"
-           id="org.maemo.esbox.project.cpp.ui.BuildConfigurations"
+           id="org.maemo.esbox.project.cpp.BuildConfigurations"
            name="Maemo Build Configurations">
         <filter
               name="nature"
@@ -180,6 +180,14 @@
    </extension>
    
   <extension
+        point="org.eclipse.cdt.ui.ConfigManager">
+     <manager
+           class="org.maemo.esbox.internal.project.cpp.ui.ESboxBuildConfigManager">
+     </manager>
+  </extension>
+  
+     
+  <extension
          point="org.eclipse.ui.ide.markerResolution">
       <markerResolutionGenerator
             class="org.maemo.esbox.internal.project.cpp.core.ConvertCppProjectMarkerResolutionGenerator"

Added: branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/ui/ESboxBuildConfigManager.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/ui/ESboxBuildConfigManager.java	                        (rev 0)
+++ branches/work_Ed/org.maemo.esbox.project.cpp/src/org/maemo/esbox/internal/project/cpp/ui/ESboxBuildConfigManager.java	2009-02-13 16:42:36 UTC (rev 1224)
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Nokia 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:
+ *    Ed Swartz (Nokia) - initial API and implementation
+ *******************************************************************************/
+
+package org.maemo.esbox.internal.project.cpp.ui;
+
+import org.eclipse.cdt.ui.CUIPlugin;
+import org.eclipse.cdt.ui.newui.*;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.preference.PreferenceDialog;
+import org.eclipse.ui.dialogs.PreferencesUtil;
+import org.maemo.esbox.internal.project.cpp.Activator;
+import org.maemo.mica.cpp.project.core.MicaCppProjectNature;
+
+/**
+ * This implements the ...ConfigManager extension which tells CDT
+ * what UI to present for a given project's "Build Configurations" 
+ * dialog.
+ * <p>
+ * In ESbox C/C++ projects, we want to show a checklist of ISDKTargets
+ * and let the user create configurations from those.
+ * @author eswartz
+ *
+ */
+public class ESboxBuildConfigManager implements IConfigManager {
+
+	/**
+	 * 
+	 */
+	private static final String BUILD_CONFIG_PAGE_ID = Activator.PLUGIN_ID + ".BuildConfigurations";
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.cdt.ui.newui.IConfigManager#canManage(org.eclipse.core.resources.IProject[])
+	 */
+	public boolean canManage(IProject[] obs) {
+		if (obs != null && obs.length == 1) {
+			IProject project = obs[0];
+			return MicaCppProjectNature.isNatureInProject(project);
+		}
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.cdt.ui.newui.IConfigManager#manage(org.eclipse.core.resources.IProject[], boolean)
+	 */
+	public boolean manage(IProject[] obs, boolean doOk) {
+		if (!canManage(obs)) {
+			return false;
+		}
+		
+		IProject project = obs[0];
+		
+		PreferenceDialog preferenceDialog = PreferencesUtil.createPropertyDialogOn(
+				CUIPlugin.getActiveWorkbenchShell(),
+				project,
+				BUILD_CONFIG_PAGE_ID,
+				new String[] { BUILD_CONFIG_PAGE_ID },
+				null
+				);
+		int ret = preferenceDialog.open();
+		if (ret == IDialogConstants.OK_ID) {
+			if (doOk) {
+				CDTPropertyManager.getProjectDescription(obs[0]);
+				CDTPropertyManager.performOk(preferenceDialog.getShell());
+			}
+			AbstractPage.updateViews(obs[0]);
+			return true;
+		}
+		return false;
+	}
+
+}



More information about the Esbox-commits mailing list