You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pa...@apache.org on 2007/07/17 12:00:14 UTC
svn commit: r556873 - in
/directory/studio/trunk/studio-apacheds-schemaeditor: META-INF/
src/main/java/org/apache/directory/studio/apacheds/schemaeditor/
src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/io/
Author: pamarcelot
Date: Tue Jul 17 03:00:11 2007
New Revision: 556873
URL: http://svn.apache.org/viewvc?view=rev&rev=556873
Log:
Added Projects backup when starting up and shutting down the plugin.
Modified:
directory/studio/trunk/studio-apacheds-schemaeditor/META-INF/MANIFEST.MF
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/Activator.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/PluginUtils.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/io/ProjectsImporter.java
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/META-INF/MANIFEST.MF?view=diff&rev=556873&r1=556872&r2=556873
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/META-INF/MANIFEST.MF (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/META-INF/MANIFEST.MF Tue Jul 17 03:00:11 2007
@@ -10,7 +10,8 @@
org.apache.directory.studio.jars,
org.eclipse.core.runtime,
org.eclipse.ui.forms,
- org.eclipse.jface.text
+ org.eclipse.jface.text,
+ org.eclipse.core.runtime.compatibility
Eclipse-LazyStart: true
Bundle-ClassPath: .,
lib/apacheds-core-plugin-1.5.0-SNAPSHOT.jar
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/Activator.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/Activator.java?view=diff&rev=556873&r1=556872&r2=556873
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/Activator.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/Activator.java Tue Jul 17 03:00:11 2007
@@ -21,7 +21,9 @@
import org.apache.directory.studio.apacheds.schemaeditor.controller.ProjectsHandler;
+import org.apache.directory.studio.apacheds.schemaeditor.controller.ProjectsHandlerListener;
import org.apache.directory.studio.apacheds.schemaeditor.controller.SchemaHandler;
+import org.apache.directory.studio.apacheds.schemaeditor.model.Project;
import org.apache.directory.studio.apacheds.schemaeditor.model.schemachecker.SchemaChecker;
import org.apache.directory.studio.apacheds.schemaeditor.view.widget.SchemaCodeScanner;
import org.apache.directory.studio.apacheds.schemaeditor.view.widget.SchemaTextAttributeProvider;
@@ -67,6 +69,30 @@
{
plugin = this;
projectsHandler = ProjectsHandler.getInstance();
+ projectsHandler.addListener( new ProjectsHandlerListener()
+ {
+
+ public void openProjectChanged( Project oldProject, Project newProject )
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ public void projectAdded( Project project )
+ {
+ PluginUtils.saveProjects();
+
+ }
+
+
+ public void projectRemoved( Project project )
+ {
+ PluginUtils.saveProjects();
+
+ }
+
+ } );
schemaHandler = SchemaHandler.getInstance();
schemaChecker = new SchemaChecker();
@@ -81,9 +107,11 @@
{
super.start( context );
- FakeLoader.loadSchemas(); // TODO Remove after testing
+ // Loading the projects
+ PluginUtils.loadProjects();
- schemaChecker.enableModificationsListening();
+ // FakeLoader.loadSchemas(); // TODO Remove after testing
+ // schemaChecker.enableModificationsListening();
}
@@ -93,7 +121,13 @@
*/
public void stop( BundleContext context ) throws Exception
{
+ System.out.println( "stop" );
+
+ // Saving the projects
+ PluginUtils.saveProjects();
+
super.stop( context );
+ plugin = null;
}
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/PluginUtils.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/PluginUtils.java?view=diff&rev=556873&r1=556872&r2=556873
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/PluginUtils.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/PluginUtils.java Tue Jul 17 03:00:11 2007
@@ -20,8 +20,18 @@
package org.apache.directory.studio.apacheds.schemaeditor;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+
+import org.apache.directory.studio.apacheds.schemaeditor.controller.ProjectsHandler;
import org.apache.directory.studio.apacheds.schemaeditor.model.AttributeTypeImpl;
import org.apache.directory.studio.apacheds.schemaeditor.model.ObjectClassImpl;
+import org.apache.directory.studio.apacheds.schemaeditor.model.Project;
+import org.apache.directory.studio.apacheds.schemaeditor.model.io.ProjectsExporter;
+import org.apache.directory.studio.apacheds.schemaeditor.model.io.ProjectsImportException;
+import org.apache.directory.studio.apacheds.schemaeditor.model.io.ProjectsImporter;
/**
@@ -98,5 +108,68 @@
clone.setMayNamesList( oc.getMayNamesList() );
return clone;
+ }
+
+
+ /**
+ * Gets the Projects (where is store information about the loaded Projects).
+ *
+ * @return
+ * the Projects File
+ */
+ private static File getProjectsFile()
+ {
+ return Activator.getDefault().getStateLocation().append( "projects.xml" ).toFile(); //$NON-NLS-1$
+ }
+
+
+ /**
+ * Loads the projects saved in the Projects File.
+ */
+ public static void loadProjects()
+ {
+ ProjectsHandler projectsHandler = Activator.getDefault().getProjectsHandler();
+ File projectsFile = getProjectsFile();
+
+ if ( projectsFile.exists() )
+ {
+ Project[] projects = null;
+ try
+ {
+ projects = ProjectsImporter.getProjects( projectsFile.getAbsolutePath() );
+ }
+ catch ( ProjectsImportException e )
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ for ( Project project : projects )
+ {
+ projectsHandler.addProject( project );
+ }
+ }
+ }
+
+
+ /**
+ * Saves the projects in the Projects File.
+ */
+ public static void saveProjects()
+ {
+ ProjectsHandler projectsHandler = Activator.getDefault().getProjectsHandler();
+ File projectsFile = getProjectsFile();
+
+ try
+ {
+ BufferedWriter buffWriter = new BufferedWriter( new FileWriter( projectsFile ) );
+ buffWriter.write( ProjectsExporter.toXml( projectsHandler.getProjects().toArray( new Project[0] ) ) );
+ buffWriter.close();
+ }
+ catch ( IOException e )
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
}
}
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/io/ProjectsImporter.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/io/ProjectsImporter.java?view=diff&rev=556873&r1=556872&r2=556873
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/io/ProjectsImporter.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/io/ProjectsImporter.java Tue Jul 17 03:00:11 2007
@@ -118,8 +118,9 @@
for ( Iterator<?> i = rootElement.elementIterator( PROJECT_TAG ); i.hasNext(); )
{
+ Element projectElement = ( Element ) i.next();
Project project = new Project();
- readProject( rootElement, project, path );
+ readProject( projectElement, project, path );
projects.add( project );
}