/* * Copyright (c) 2008, HippoHX Contributors * All rights reserved. * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE HIPPOHX PROJECT CONTRIBUTORS "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE HIPPOHX PROJECT CONTRIBUTORS BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ package com.hippohx.gui{ import com.hippohx.File; import com.hippohx.System; import com.hippohx.Application; import com.hippohx.Dialog; import com.hippohx.FileKind; import com.hippohx.gui.Utils; import com.hippohx.gui.HippoHXSettings; import com.hippohx.gui.Project; import com.hippohx.gui.PackagerResult; import com.hippohx.Api; public class ProjectManager{ private var system:System; private var fileManager:File; private var projects:Array; private var projectsFiles:Array; private var tempFolder:String = ""; private var settings:HippoHXSettings; public function ProjectManager(settings:HippoHXSettings){ this.settings = settings; projects = new Array(); projectsFiles = settings.getLatestProjects(); system = System.getInstance(); fileManager = File.getInstance(); tempFolder = system.getTempFolder(); readProjects(); } public function getProjectList():Array{ return projects; } public function loadProject(projectPath:String):Project{ var p:Project = null; try{ var content:String = fileManager.readFile(projectPath); p = new Project(); p.setXML(new XML(content)); p.fullPath = projectPath; projects.push(p); } catch(e:*){} return p; } public function saveProject(project:Project,addToList:Boolean=false):void{ try{ fileManager.writefile(project.fullPath,project.getProjectXMLRaw()); project.resetInitialXML(); if(addToList){ projects.push(project); } } catch (e:*){ Dialog.getInstance().message("Error","Cant save project. " + e); } } public function deleteProject(project:Project):void{ for(var x:uint;x