[Esbox-commits] r176 - in trunk: org.indt.esbox.python.ui org.indt.esbox.python.ui/src/org/indt/esbox/python/ui org.indt.esbox.python.ui/src/org/indt/esbox/python/ui/wizards org.indt.esbox.ui/icons

carolina at garage.maemo.org carolina at garage.maemo.org
Tue Oct 23 21:23:55 EEST 2007


Author: carolina
Date: 2007-10-23 21:23:54 +0300 (Tue, 23 Oct 2007)
New Revision: 176

Added:
   trunk/org.indt.esbox.python.ui/plugin.xml
   trunk/org.indt.esbox.python.ui/src/org/indt/esbox/python/ui/wizards/
   trunk/org.indt.esbox.python.ui/src/org/indt/esbox/python/ui/wizards/ESboxPythonCommonProjectWizard.java
   trunk/org.indt.esbox.python.ui/src/org/indt/esbox/python/ui/wizards/ESboxPythonProjectWizard.java
Removed:
   trunk/org.indt.esbox.ui/icons/X.gif
   trunk/org.indt.esbox.ui/icons/keylock.gif
   trunk/org.indt.esbox.ui/icons/maemo.gif
   trunk/org.indt.esbox.ui/icons/new_maemo_prj_wiz.gif
   trunk/org.indt.esbox.ui/icons/newtarget_wiz.gif
   trunk/org.indt.esbox.ui/icons/sbrsh_wiz.gif
Log:
Initial import of python wizard

Added: trunk/org.indt.esbox.python.ui/plugin.xml
===================================================================
--- trunk/org.indt.esbox.python.ui/plugin.xml	                        (rev 0)
+++ trunk/org.indt.esbox.python.ui/plugin.xml	2007-10-23 18:23:54 UTC (rev 176)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+   <extension
+         point="org.eclipse.ui.newWizards">
+      <wizard
+            canFinishEarly="false"
+            category="org.python.pydev.PythonCategory"
+            class="org.indt.esbox.python.ui.wizards.ESboxPythonProjectWizard"
+            finalPerspective="org.python.pydev.plugin.PythonPerspective"
+            preferredPerspectives="org.python.pydev.plugin.PythonPerspective"
+            hasPages="true"
+            icon="icons/maemo_project.png"
+            id="org.indt.esbox.python.ui.wizards.ESboxPythonProjectWizard"            
+            name="Python Maemo Project"
+            project="true">
+      </wizard>
+       
+    </extension>
+      
+</plugin>
+     
\ No newline at end of file

Added: trunk/org.indt.esbox.python.ui/src/org/indt/esbox/python/ui/wizards/ESboxPythonCommonProjectWizard.java
===================================================================
--- trunk/org.indt.esbox.python.ui/src/org/indt/esbox/python/ui/wizards/ESboxPythonCommonProjectWizard.java	                        (rev 0)
+++ trunk/org.indt.esbox.python.ui/src/org/indt/esbox/python/ui/wizards/ESboxPythonCommonProjectWizard.java	2007-10-23 18:23:54 UTC (rev 176)
@@ -0,0 +1,516 @@
+/*******************************************************************************
+ * Copyright (c) 2007 INdT.
+ * 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:
+ *    Raul Herbster (raul at embedded.ufcg.edu.br) (UFCG) - initial API and implementation
+ *******************************************************************************/
+package org.indt.esbox.python.ui.wizards;
+
+import java.io.File;
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.cdt.core.CCorePlugin;
+import org.eclipse.cdt.core.model.CModelException;
+import org.eclipse.cdt.core.model.CoreModel;
+import org.eclipse.cdt.core.model.ICProject;
+import org.eclipse.cdt.core.model.IPathEntry;
+import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
+import org.eclipse.cdt.core.settings.model.ICProjectDescription;
+import org.eclipse.cdt.core.settings.model.ICProjectDescriptionManager;
+import org.eclipse.cdt.core.settings.model.ICSourceEntry;
+import org.eclipse.cdt.core.templateengine.process.ProcessFailureException;
+import org.eclipse.cdt.managedbuilder.ui.wizards.CfgHolder;
+import org.eclipse.cdt.ui.CUIPlugin;
+import org.eclipse.cdt.ui.newui.ProjectContentsArea;
+import org.eclipse.cdt.ui.newui.UIMessages;
+import org.eclipse.cdt.ui.templateengine.Template;
+import org.eclipse.cdt.ui.templateengine.TemplateEngineUIUtil;
+import org.eclipse.cdt.ui.templateengine.pages.UIWizardPage;
+import org.eclipse.cdt.ui.wizards.IWizardWithMemory;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExecutableExtension;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation;
+import org.eclipse.ui.wizards.newresource.BasicNewProjectResourceWizard;
+import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard;
+import org.indt.esbox.core.CoreActivator;
+import org.indt.esbox.core.ESboxPreferenceConstants;
+import org.indt.esbox.core.ESboxProjectProperties;
+import org.indt.esbox.core.ErrorLogger;
+import org.indt.esbox.core.scratchbox.ScratchboxException;
+import org.indt.esbox.core.scratchbox.ScratchboxFacade;
+import org.indt.esbox.ui.ESboxConfigHandler;
+import org.indt.esbox.ui.UIActivator;
+import org.indt.esbox.ui.wizards.ESboxConfigWizardPage;
+import org.indt.esbox.ui.wizards.ESboxMainWizardPage;
+
+/**
+ * Based on {@link org.eclipse.cdt.ui.wizards.CDTCommonProjectWizard}. This class had to be modified
+ * because the class {@link ProjectContentsArea} was also modified.
+ */
+public abstract class ESboxPythonCommonProjectWizard extends BasicNewResourceWizard 
+implements IExecutableExtension, IWizardWithMemory   {
+
+	private static final String PROPERTY = "org.eclipse.cdt.build.core.buildType"; //$NON-NLS-1$
+	private static final String PROP_VAL = PROPERTY + ".debug"; //$NON-NLS-1$
+	private static final String PREFIX= "CProjectWizard"; //$NON-NLS-1$
+	private static final String OP_ERROR= "CProjectWizard.op_error"; //$NON-NLS-1$
+	private static final String title= CUIPlugin.getResourceString(OP_ERROR + ".title"); //$NON-NLS-1$
+	private static final String message= CUIPlugin.getResourceString(OP_ERROR + ".message"); //$NON-NLS-1$
+	private static final String[] EMPTY_ARR = new String[0]; 
+	
+	protected IConfigurationElement fConfigElement;
+	protected CfgHolder[] cfgs = new CfgHolder[0];
+	protected ESboxMainWizardPage fMainPage;
+	protected ESboxConfigWizardPage configPage;
+	
+	protected IProject newProject;
+	private String wz_title;
+	private String wz_desc;
+	
+	private boolean existingPath = false;
+	private String lastProjectName = null;
+	private IPath lastProjectLocation = null;
+	private ESboxConfigHandler esboxHandler;
+	private IWizardPage predatingPage;
+	private IWizardPage followingPage;
+	private IWizardPage[] templatePages;
+	
+	protected List localPages = new ArrayList(); // replacing Wizard.pages since we have to delete them
+	
+	/**
+	 * Construct a new wizard.
+	 */
+	public ESboxPythonCommonProjectWizard() {
+		this(UIMessages.getString("NewModelProjectWizard.0"),UIMessages.getString("NewModelProjectWizard.1")); //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * Construct a new wizard with the given title and description.
+	 * @param title the title of the wizard.
+	 * @param desc the description of the wizard.
+	 */
+	public ESboxPythonCommonProjectWizard(String title, String desc) {
+		super();
+		setDialogSettings(CUIPlugin.getDefault().getDialogSettings());
+		setNeedsProgressMonitor(true);
+		setForcePreviousAndNextButtons(true);
+		wz_title = title;
+		wz_desc = desc;
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.Wizard#addPages()
+	 */
+	public void addPages() {
+		fMainPage= new ESboxMainWizardPage(CUIPlugin.getResourceString(PREFIX));		
+		fMainPage.setTitle(wz_title);
+		fMainPage.setDescription(wz_desc);
+		esboxHandler = fMainPage.getHandler();
+		addPage(fMainPage);
+		
+	}
+
+	/**
+	 * @return true if user has changed settings since project creation
+	 */
+	private boolean isChanged() {
+
+		if (!fMainPage.getProjectName().equals(lastProjectName))
+			return true;
+			
+		IPath projectLocation = fMainPage.getProjectLocation();
+		if (projectLocation == null) {
+			if (lastProjectLocation != null)
+				return true;
+		} else if (!projectLocation.equals(lastProjectLocation))
+			return true;
+		
+		return true; 
+	}
+
+	/**
+	 * Return the project created by this wizard.
+	 * @param defaults use default configurations.
+	 * @return the project created by this wizard.
+	 */
+	public IProject getProject(boolean defaults) {
+		return getProject(defaults, true);
+	}
+
+	/**
+	 * 
+	 * @param defaults
+	 * @param onFinish
+	 * @return
+	 */
+	public IProject getProject(boolean defaults, boolean onFinish) {
+		if (newProject != null && isChanged()) 
+			clearProject(); 
+		if (newProject == null)	{
+            existingPath = false;
+			IPath p = fMainPage.getProjectLocation();
+		  	if (p == null) { 
+		  		p = ResourcesPlugin.getWorkspace().getRoot().getLocation();
+			    p = p.append(fMainPage.getProjectName());
+		  	}
+        	File f = p.toFile();
+        	if (f.exists() && f.isDirectory()) {
+                if (p.append(".project").toFile().exists()) { //$NON-NLS-1$
+                	if (!
+                		MessageDialog.openConfirm(getShell(), 
+        				UIMessages.getString("CDTCommonProjectWizard.0"),  //$NON-NLS-1$
+						UIMessages.getString("CDTCommonProjectWizard.1")) //$NON-NLS-1$
+						)
+                		return null;
+                }
+                existingPath = true;
+        	} 
+			lastProjectName = fMainPage.getProjectName();
+			lastProjectLocation = fMainPage.getProjectLocation();
+			// start creation process
+			invokeRunnable(getRunnable(defaults, onFinish)); 
+		} 
+		return newProject;
+	}
+
+	/**
+	 * Remove created project either after error
+	 * or if user returned back from config page. 
+	 */
+	private void clearProject() {
+		if (lastProjectName == null) return;
+		try {
+			ResourcesPlugin.getWorkspace().getRoot().getProject(lastProjectName).delete(!existingPath, true, null);
+		} catch (CoreException ignore) {}
+		newProject = null;
+		lastProjectName = null;
+		lastProjectLocation = null;
+	}
+	
+	private boolean invokeRunnable(IRunnableWithProgress runnable) {
+		IRunnableWithProgress op= new WorkspaceModifyDelegatingOperation(runnable);
+		try {
+			getContainer().run(true, true, op);
+		} catch (InvocationTargetException e) {
+			CUIPlugin.errorDialog(getShell(), title, message, e.getTargetException(), false);
+			clearProject();
+			return false;
+		} catch  (InterruptedException e) {
+			clearProject();
+			return false;
+		}
+		return true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.Wizard#performFinish()
+	 */
+	public boolean performFinish() {
+		// create project if it is not created yet
+		if (getProject(fMainPage.isCurrent(), true) == null) return false;
+		try {
+			setCreated();
+		} catch (CoreException e) {
+			// TODO log or display a message
+			e.printStackTrace();
+			return false;
+		}
+		BasicNewProjectResourceWizard.updatePerspective(fConfigElement);
+		selectAndReveal(newProject);
+		return true;
+	}
+	
+	protected boolean setCreated() throws CoreException {
+		setSourceFolder();
+		
+		ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
+		
+		ICProjectDescription des = mngr.getProjectDescription(newProject, false);
+				
+		if (des != null) {
+			if(des.isCdtProjectCreating()){
+				des = mngr.getProjectDescription(newProject, true);
+				des.setCdtProjectCreated();
+				mngr.setProjectDescription(newProject, des, false, null);
+				return true;
+			}
+		}
+		return false;
+	}
+	
+	private void setSourceFolder() throws CModelException {
+		ICProject cProject = CoreModel.getDefault().create(newProject);
+		IPath projPath = newProject.getFullPath();
+		String targetPath = "src";
+		
+		IPathEntry[] entries = cProject.getRawPathEntries();
+		List/*<IPathEntry>*/ newEntries = new ArrayList/*<IPathEntry>*/(entries.length + 1);
+
+		int projectEntryIndex= -1;
+		IPath path = projPath.append(targetPath);
+
+		newEntries.add(CoreModel.newSourceEntry(path));
+
+		cProject.setRawPathEntries((IPathEntry[])newEntries.toArray(new IPathEntry[newEntries.size()]), new NullProgressMonitor());
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.Wizard#performCancel()
+	 */
+    public boolean performCancel() {
+    	clearProject();
+        return true;
+    }
+
+	public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException {
+		fConfigElement= config;
+	}
+
+	private IRunnableWithProgress getRunnable(boolean _defaults, final boolean onFinish) {
+		final boolean defaults = _defaults;
+		return new IRunnableWithProgress() {
+			public void run(IProgressMonitor imonitor) throws InvocationTargetException, InterruptedException {
+				getShell().getDisplay().syncExec(new Runnable() {
+					public void run() { 
+						try {
+							newProject = createIProject(lastProjectName, lastProjectLocation);
+						    if (newProject != null)
+							  setProject(newProject, new NullProgressMonitor());							  
+						} catch (CoreException e) {	e.printStackTrace(); CUIPlugin.getDefault().log(e); }
+					}
+				});
+			}
+		};
+	}
+
+	/**
+	 * 
+	 */	
+	public IProject createIProject(final String name, final IPath location) throws CoreException{
+		if (newProject != null)	return newProject;
+
+		IWorkspace workspace = ResourcesPlugin.getWorkspace();
+		IWorkspaceRoot root = workspace.getRoot();
+		final IProject newProjectHandle = root.getProject(name);
+		
+		if (!newProjectHandle.exists()) {
+			IProjectDescription description = workspace.newProjectDescription(newProjectHandle.getName());
+			if(location != null)
+				description.setLocation(location);
+			newProject = CCorePlugin.getDefault().createCDTProject(description, newProjectHandle, new NullProgressMonitor());
+		} else {
+			IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
+				public void run(IProgressMonitor monitor) throws CoreException {
+					newProjectHandle.refreshLocal(IResource.DEPTH_INFINITE, monitor);
+				}
+			};
+			NullProgressMonitor monitor = new NullProgressMonitor();
+			workspace.run(runnable, root, IWorkspace.AVOID_UPDATE, monitor);
+			newProject = newProjectHandle;
+		}
+        
+		// Open the project if we have to
+		if (!newProject.isOpen()) {
+			newProject.open(new NullProgressMonitor());
+		}
+		return continueCreation(newProject);	
+	}
+	
+	protected abstract IProject continueCreation(IProject prj); 
+	public abstract String[] getNatures();
+	
+	
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.Wizard#getNextPage(org.eclipse.jface.wizard.IWizardPage)
+	 */
+	public IWizardPage getNextPage(IWizardPage page) {
+		if (page == fMainPage) {
+			configPage = new ESboxConfigWizardPage(esboxHandler);
+			configPage.setWizard(this);
+			
+			Template template = fMainPage.getHandler().getTemplate();				
+			templatePages = template.getTemplateWizardPages(fMainPage, configPage, this);
+			
+			for (int i = 0; i < templatePages.length; i++) {
+				IWizardPage templatePage = templatePages[i];
+				templatePage.setImageDescriptor(UIActivator.getImageDescriptor("./icons/new_maemo_prj_wiz.gif"));
+				this.addPage(templatePage);
+			}
+			this.addPage(configPage);
+		}
+		return super.getNextPage(page);
+	}
+	
+	public void dispose() {
+		fMainPage.dispose();
+	}
+
+    /**
+     * Returns last project name used for creation
+     */
+	public String getLastProjectName() {
+		return lastProjectName;
+	}
+
+	public IPath getLastProjectLocation() {
+		return lastProjectLocation;
+	}
+
+	public IProject getLastProject() {
+		return newProject;
+	}
+
+	// Methods below should provide data for language check
+	public String[] getLanguageIDs (){
+		return EMPTY_ARR;
+	}
+	public String[] getContentTypeIDs (){
+		return EMPTY_ARR;
+	}
+	public String[] getExtensions (){
+		return EMPTY_ARR;
+	}
+	
+	public void setProject(IProject project, IProgressMonitor monitor) throws CoreException {			
+		ESboxProjectProperties projectProperties = ESboxProjectProperties.getInstance();
+		
+		projectProperties.setMaemoSDK(project, esboxHandler.getSdkInfo().getVersion());
+		projectProperties.setPlatform(project, esboxHandler.getPlatformInfo().getName());
+		projectProperties.setTargetName(project, esboxHandler.getTargetName());
+		
+		doPostProcess(project);
+		
+	}
+	
+	public String getBuildSystemId(){
+		return null;
+	}
+	
+	protected void doPostProcess(IProject prj) {
+
+		configureScratchbox();
+		if (newProject != null)
+			configureTemplate();
+	}
+
+	private void configureScratchbox() {
+		String targetName = esboxHandler.getTargetName();
+		List<String> targets = null;
+		try {
+			targets = ScratchboxFacade.getInstance().getTargets();
+			if (!targets.contains(targetName)) {
+				String title = "Scratchbox target creation";
+				String message = "There is no suitable Scratchbox target for your project settings. " +
+						"Do you wish to create it?";
+				boolean canCreateTarget = MessageDialog.openQuestion(getShell(), title, message);
+				if (canCreateTarget)
+					createScratchboxTarget();
+			}
+		} catch (ScratchboxException e) {
+			ErrorLogger errorLogger = UIActivator.getDefault().getErrorLogger();
+			errorLogger.logAndShowError("Scratchbox error", e);
+			clearProject();
+		}
+	}
+	
+	private void createScratchboxTarget() {
+		
+	}
+	
+	private void configureTemplate() {
+		Template template = getInitializedTemplate(getMainPageData());
+		if(template == null)
+			return;
+
+		List configs = new ArrayList();
+		for(int i = 0; i < cfgs.length; i++){
+			configs.add(cfgs[i].getConfiguration());
+		}
+		template.getTemplateInfo().setConfigurations(configs);
+
+		IStatus[] statuses = template.executeTemplateProcesses(null, false);
+	    if (statuses.length == 1 && statuses[0].getException() instanceof ProcessFailureException) {
+	    	TemplateEngineUIUtil.showError(statuses[0].getMessage(), statuses[0].getException());
+	    }
+	}
+	
+	public Template getInitializedTemplate(Map map) {		
+		Template template = esboxHandler.getTemplate();
+		
+		if(template != null){
+			Map/*<String, String>*/ valueStore = template.getValueStore();
+			for(int i=0; i < templatePages.length; i++) {
+				IWizardPage page = templatePages[i];
+				if (page instanceof UIWizardPage)
+					valueStore.putAll(((UIWizardPage)page).getPageData());
+			}
+			if (map != null) {
+				valueStore.putAll(map);
+			}
+		}
+		return template;
+	}
+	
+	private Map getMainPageData() {
+		Map data = new HashMap();
+		String projName = fMainPage.getProjectName();
+		projName = projName != null ? projName.trim() : "";  //$NON-NLS-1$ 
+		data.put("projectName", projName); //$NON-NLS-1$
+		data.put("baseName", getBaseName(projName)); //$NON-NLS-1$
+		data.put("baseNameUpper", getBaseName(projName).toUpperCase() ); //$NON-NLS-1$
+		data.put("baseNameLower", getBaseName(projName).toLowerCase() ); //$NON-NLS-1$
+		data.put("projectLocation",newProject.getLocation().toOSString());
+		data.put("targetName", ESboxProjectProperties.getInstance().getTargetName(newProject));
+		data.put("sboxRoot", CoreActivator.getDefault().getPreferenceStore().getString(ESboxPreferenceConstants.SBOX_SANDBOX.toString()));
+		String location = fMainPage.getProjectLocationPath();
+		if(location == null)
+			location = "";  //$NON-NLS-1$
+		data.put("location", location); //getProjectLocation().toPortableString()); //$NON-NLS-1$
+		return data;
+	}
+	
+	private String getBaseName(String name) {
+		String baseName = name;
+		int dot = baseName.lastIndexOf('.');
+		if (dot != -1) {
+			baseName = baseName.substring(dot + 1);
+		}
+		dot = baseName.indexOf(' ');
+		if (dot != -1) {
+			baseName = baseName.substring(0, dot);
+		}
+		return baseName;
+	}
+	
+
+}

Added: trunk/org.indt.esbox.python.ui/src/org/indt/esbox/python/ui/wizards/ESboxPythonProjectWizard.java
===================================================================
--- trunk/org.indt.esbox.python.ui/src/org/indt/esbox/python/ui/wizards/ESboxPythonProjectWizard.java	                        (rev 0)
+++ trunk/org.indt.esbox.python.ui/src/org/indt/esbox/python/ui/wizards/ESboxPythonProjectWizard.java	2007-10-23 18:23:54 UTC (rev 176)
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2007 INdT.
+ * 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:
+ *    Raul Herbster (raul at embedded.ufcg.edu.br) (UFCG) - initial API and implementation
+ *******************************************************************************/
+package org.indt.esbox.python.ui.wizards;
+
+import org.eclipse.cdt.core.CProjectNature;
+import org.eclipse.cdt.managedbuilder.core.ManagedCProjectNature;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.indt.esbox.core.ESboxProjectNature;
+import org.indt.esbox.ui.UIActivator;
+import org.indt.esbox.ui.wizards.ESboxCommonProjectWizard;
+
+/**
+ * A wizard to create an ESbox Project.
+ */
+public class ESboxPythonProjectWizard extends ESboxCommonProjectWizard {
+	
+	/**
+	 * Constructor.
+	 * Creates a wizard to new ESbox projects.
+	 */
+	public ESboxPythonProjectWizard() {
+		super("Python Maemo Project", "Create a Maemo project inside Scratchbox");
+	}
+	
+	@Override
+	public void addPages() {		
+		super.addPages();
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * @see org.indt.esbox.ui.wizards.ESboxCommonProjectWizard#getNatures()
+	 */
+	public String[] getNatures() {
+		return new String[] { CProjectNature.C_NATURE_ID, ESboxProjectNature.ESBOX_NATURE_ID };
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * @see org.indt.esbox.ui.wizards.ESboxCommonProjectWizard#continueCreation(org.eclipse.core.resources.IProject)
+	 */
+	protected IProject continueCreation(IProject prj) {
+		try {
+			CProjectNature.addCNature(prj, new NullProgressMonitor());
+			ESboxProjectNature.addESboxNature(prj, new NullProgressMonitor());			
+			
+		} catch (CoreException e) {}
+		return prj;
+	}
+	
+}

Deleted: trunk/org.indt.esbox.ui/icons/X.gif
===================================================================
(Binary files differ)

Deleted: trunk/org.indt.esbox.ui/icons/keylock.gif
===================================================================
(Binary files differ)

Deleted: trunk/org.indt.esbox.ui/icons/maemo.gif
===================================================================
(Binary files differ)

Deleted: trunk/org.indt.esbox.ui/icons/new_maemo_prj_wiz.gif
===================================================================
(Binary files differ)

Deleted: trunk/org.indt.esbox.ui/icons/newtarget_wiz.gif
===================================================================
(Binary files differ)

Deleted: trunk/org.indt.esbox.ui/icons/sbrsh_wiz.gif
===================================================================
(Binary files differ)



More information about the Esbox-commits mailing list