package com.aptana.editor.php; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProjectDescription; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.ui.IStartup; import com.aptana.core.logging.IdeLog; import com.aptana.editor.php.core.PHPNature; import com.aptana.projects.WebProjectNature; /** * Description: PHP初始自动启动 * Copyright (c) Department of Research and Development/Beijing/Digital Heaven. * All Rights Reserved. * @version 1.0 2013-11-7 下午6:37:27 by 黄磊(huanglei@d-heaven.com)创建 */ public class StartupPHPProject implements IStartup{ public void earlyStartup() { //自动为所有的纯web项目或HMobile项目添加php的支持 IProject[] ps = ResourcesPlugin.getWorkspace().getRoot().getProjects(); if (ps != null){ for (IProject p : ps){ try{ if (p.isAccessible()) { boolean web = p.hasNature(WebProjectNature.ID); boolean hmobile = p.hasNature("com.pandora.projects.ui.MKeyNature"); if(web && !hmobile && !p.hasNature(PHPNature.NATURE_ID)){ IProjectDescription pd = p.getDescription(); String[] src = pd.getNatureIds(); String[] dest = new String[src.length + (web?1:2)]; System.arraycopy(src, 0, dest, 0, src.length); if(!web) { dest[dest.length - 2] = WebProjectNature.ID; } dest[dest.length - 1] = PHPNature.NATURE_ID; pd.setNatureIds(dest); p.setDescription(pd, new NullProgressMonitor()); } } }catch (Exception e){ IdeLog.logError(PHPEditorPlugin.getDefault(), e); } } } } }