/* * File : JClicProjctEditor.java * Created : 27-sep-2002 15:52 * By : fbusquets * * JClic - Authoring and playing system for educational activities * * Copyright (C) 2000 - 2005 Francesc Busquets & Departament * d'Educacio de la Generalitat de Catalunya * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details (see the LICENSE file). */ package edu.xtec.jclic.project; import edu.xtec.jclic.TestPlayerContainer; import edu.xtec.jclic.bags.ActivityBagEditor; import edu.xtec.jclic.bags.ActivitySequenceEditor; import edu.xtec.jclic.bags.MediaBagEditor; import edu.xtec.jclic.edit.Editor; import edu.xtec.jclic.edit.EditorPanel; import edu.xtec.util.Messages; import edu.xtec.util.Options; import java.awt.Component; import javax.swing.Icon; import javax.swing.ImageIcon; /** * * @author Francesc Busquets (fbusquets@xtec.cat) * @version 13.09.09 */ public class JClicProjectEditor extends Editor{ protected static ImageIcon icon; ActivityBagEditor abe; ActivitySequenceEditor ase; MediaBagEditor mbe; ProjectSettingsEditor pse; TestPlayerContainer testPlayerContainer; /** Creates a new instance of JClicProjectEditor */ public JClicProjectEditor(JClicProject project) { super(project); } protected void createChildren() { JClicProject jcp=getProject(); jcp.mediaBag.addListener(jcp.activityBag); abe=(ActivityBagEditor)jcp.activityBag.getEditor(this); ase=(ActivitySequenceEditor)jcp.activitySequence.getEditor(this); mbe=(MediaBagEditor)jcp.mediaBag.getEditor(this); pse=(ProjectSettingsEditor)jcp.settings.getEditor(this); } public EditorPanel createEditorPanel(Options options) { // todo: create editor panel return null; } public Class getEditorPanelClass() { // todo: create panel class return null; } public JClicProject getProject(){ return (JClicProject)getFirstObject(JClicProject.class); } public ActivityBagEditor getActivityBagEditor(){ return abe; } public ActivitySequenceEditor getActivitySequenceEditor(){ return ase; } public MediaBagEditor getMediaBagEditor(){ return mbe; } public ProjectSettingsEditor getProjectSettingsEditor(){ return pse; } public void setTestPlayerContainer(TestPlayerContainer tpc){ testPlayerContainer=tpc; } public TestPlayerContainer getTestPlayerContainer(){ return testPlayerContainer; } public boolean nameChanged(int type, String oldName, String newName){ boolean result= getActivityBagEditor().nameChanged(type, oldName, newName) | getActivitySequenceEditor().nameChanged(type, oldName, newName) | getMediaBagEditor().nameChanged(type, oldName, newName); return result; } public static Icon getIcon(){ if(icon==null) icon=edu.xtec.util.ResourceManager.getImageIcon("icons/project_settings.gif"); return icon; } public void saveProject(String fileName) throws Exception{ collectData(); getProject().setName(fileName); getProject().saveProject(fileName); setModified(false); } public boolean checkProject(Options options, Component parent, boolean prompt){ collectData(); return getActivityBagEditor().checkOrphanElements(options, parent, prompt)!=Messages.CANCEL && getMediaBagEditor().checkOrphanElements(options, parent, prompt)!=Messages.CANCEL; } }