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 2008/03/19 18:58:20 UTC

svn commit: r638956 - /directory/studio/branches/1.1.0/ldifeditor/src/main/java/org/apache/directory/studio/ldifeditor/editor/LdifDocumentProvider.java

Author: pamarcelot
Date: Wed Mar 19 10:58:18 2008
New Revision: 638956

URL: http://svn.apache.org/viewvc?rev=638956&view=rev
Log:
Fix for DIRSTUDIO-302 (LDIF Editor does not work when loading LDIF file outside of workspace with Eclipse 3.3.x).

Modified:
    directory/studio/branches/1.1.0/ldifeditor/src/main/java/org/apache/directory/studio/ldifeditor/editor/LdifDocumentProvider.java

Modified: directory/studio/branches/1.1.0/ldifeditor/src/main/java/org/apache/directory/studio/ldifeditor/editor/LdifDocumentProvider.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/1.1.0/ldifeditor/src/main/java/org/apache/directory/studio/ldifeditor/editor/LdifDocumentProvider.java?rev=638956&r1=638955&r2=638956&view=diff
==============================================================================
--- directory/studio/branches/1.1.0/ldifeditor/src/main/java/org/apache/directory/studio/ldifeditor/editor/LdifDocumentProvider.java (original)
+++ directory/studio/branches/1.1.0/ldifeditor/src/main/java/org/apache/directory/studio/ldifeditor/editor/LdifDocumentProvider.java Wed Mar 19 10:58:18 2008
@@ -248,10 +248,20 @@
         Reader reader;
         try
         {
+            String inputClassName = input.getClass().getName();
             if ( input instanceof IPathEditorInput )
             {
                 reader = new FileReader( ( ( IPathEditorInput ) input ).getPath().toFile() );
             }
+            else if ( inputClassName.equals( "org.eclipse.ui.internal.editors.text.JavaFileEditorInput" )
+                || inputClassName.equals( "org.eclipse.ui.ide.FileStoreEditorInput" ) )
+            // The class 'org.eclipse.ui.internal.editors.text.JavaFileEditorInput'
+            // is used when opening a file from the menu File > Open... in Eclipse 3.2.x
+            // The class 'org.eclipse.ui.ide.FileStoreEditorInput' is used when
+            // opening a file from the menu File > Open... in Eclipse 3.3.x
+            {
+                reader = new FileReader( new File( input.getToolTipText() ) );
+            }
             else
             {
                 return false;
@@ -364,13 +374,26 @@
     protected void doSaveDocument( IProgressMonitor monitor, Object element, IDocument document, boolean overwrite )
         throws CoreException
     {
-
+        File file = null;
+        String elementClassName = element.getClass().getName();
         if ( element instanceof IPathEditorInput )
         {
             IPathEditorInput pei = ( IPathEditorInput ) element;
             IPath path = pei.getPath();
-            File file = path.toFile();
+            file = path.toFile();
+        }
+        else if ( elementClassName.equals( "org.eclipse.ui.internal.editors.text.JavaFileEditorInput" )
+            || elementClassName.equals( "org.eclipse.ui.ide.FileStoreEditorInput" ) )
+        // The class 'org.eclipse.ui.internal.editors.text.JavaFileEditorInput'
+        // is used when opening a file from the menu File > Open... in Eclipse 3.2.x
+        // The class 'org.eclipse.ui.ide.FileStoreEditorInput' is used when
+        // opening a file from the menu File > Open... in Eclipse 3.3.x
+        {
+            file = new File( ( ( IEditorInput ) element ).getToolTipText() );
+        }
 
+        if ( file != null )
+        {
             try
             {
                 file.createNewFile();
@@ -440,12 +463,24 @@
      */
     public boolean isModifiable( Object element )
     {
+        String elementClassName = element.getClass().getName();
         if ( element instanceof IPathEditorInput )
         {
             IPathEditorInput pei = ( IPathEditorInput ) element;
             File file = pei.getPath().toFile();
             return file.canWrite() || !file.exists(); // Allow to edit new files
         }
+        else if ( elementClassName.equals( "org.eclipse.ui.internal.editors.text.JavaFileEditorInput" )
+            || elementClassName.equals( "org.eclipse.ui.ide.FileStoreEditorInput" ) )
+        // The class 'org.eclipse.ui.internal.editors.text.JavaFileEditorInput'
+        // is used when opening a file from the menu File > Open... in Eclipse 3.2.x
+        // The class 'org.eclipse.ui.ide.FileStoreEditorInput' is used when
+        // opening a file from the menu File > Open... in Eclipse 3.3.x
+        {
+            File file = new File( ( ( IEditorInput ) element ).getToolTipText() );
+            return file.canWrite() || !file.exists(); // Allow to edit new files
+        }
+        
         return false;
     }