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/05/20 14:32:19 UTC
svn commit: r658217 - in /directory/studio/trunk/rcp: ./ META-INF/
src/main/java/org/apache/directory/studio/actions/
src/main/resources/org/apache/directory/studio/
Author: pamarcelot
Date: Tue May 20 05:32:19 2008
New Revision: 658217
URL: http://svn.apache.org/viewvc?rev=658217&view=rev
Log:
Fix for DIRSTUDIO-330 (CoreException raised in editor when opening a *.txt file).
Removed:
directory/studio/trunk/rcp/src/main/java/org/apache/directory/studio/actions/PathEditorInput.java
Modified:
directory/studio/trunk/rcp/META-INF/MANIFEST.MF
directory/studio/trunk/rcp/pom.xml
directory/studio/trunk/rcp/src/main/java/org/apache/directory/studio/actions/OpenFileAction.java
directory/studio/trunk/rcp/src/main/resources/org/apache/directory/studio/messages.properties
Modified: directory/studio/trunk/rcp/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/directory/studio/trunk/rcp/META-INF/MANIFEST.MF?rev=658217&r1=658216&r2=658217&view=diff
==============================================================================
--- directory/studio/trunk/rcp/META-INF/MANIFEST.MF (original)
+++ directory/studio/trunk/rcp/META-INF/MANIFEST.MF Tue May 20 05:32:19 2008
@@ -10,7 +10,10 @@
org.eclipse.update.core,
org.eclipse.update.ui,
org.eclipse.ui,
- org.eclipse.ui.intro
+ org.eclipse.ui.intro,
+ org.eclipse.core.resources,
+ org.eclipse.ui.ide,
+ org.eclipse.core.filesystem
Eclipse-LazyStart: true
Bundle-ClassPath: .,
lib/nlog4j-1.2.25.jar
Modified: directory/studio/trunk/rcp/pom.xml
URL: http://svn.apache.org/viewvc/directory/studio/trunk/rcp/pom.xml?rev=658217&r1=658216&r2=658217&view=diff
==============================================================================
--- directory/studio/trunk/rcp/pom.xml (original)
+++ directory/studio/trunk/rcp/pom.xml Tue May 20 05:32:19 2008
@@ -165,6 +165,21 @@
<artifactId>ui</artifactId>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.eclipse.ui</groupId>
+ <artifactId>ide</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.core</groupId>
+ <artifactId>resources</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.core</groupId>
+ <artifactId>filesystem</artifactId>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
</project>
Modified: directory/studio/trunk/rcp/src/main/java/org/apache/directory/studio/actions/OpenFileAction.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/rcp/src/main/java/org/apache/directory/studio/actions/OpenFileAction.java?rev=658217&r1=658216&r2=658217&view=diff
==============================================================================
--- directory/studio/trunk/rcp/src/main/java/org/apache/directory/studio/actions/OpenFileAction.java (original)
+++ directory/studio/trunk/rcp/src/main/java/org/apache/directory/studio/actions/OpenFileAction.java Tue May 20 05:32:19 2008
@@ -21,27 +21,24 @@
package org.apache.directory.studio.actions;
-import java.io.File;
import java.text.MessageFormat;
import org.apache.directory.studio.Messages;
-import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.filesystem.EFS;
+import org.eclipse.core.filesystem.IFileInfo;
+import org.eclipse.core.filesystem.IFileStore;
import org.eclipse.core.runtime.Path;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IEditorRegistry;
-import org.eclipse.ui.IPathEditorInput;
-import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.ide.IDE;
/**
@@ -54,10 +51,6 @@
public class OpenFileAction extends Action implements IWorkbenchWindowActionDelegate
{
- /** The workbench window */
- private IWorkbenchWindow workbenchWindow;
-
-
/**
* Creates a new instance of OpenFileAction.
*/
@@ -81,27 +74,32 @@
init( window );
}
+ private IWorkbenchWindow window;
+ private String filterPath;
- /**
- * {@inheritDoc}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#dispose()
*/
public void dispose()
{
- workbenchWindow = null;
+ window = null;
+ filterPath = null;
}
- /**
- * {@inheritDoc}
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclipse.ui.IWorkbenchWindow)
*/
public void init( IWorkbenchWindow window )
{
- workbenchWindow = window;
+ this.window = window;
+ filterPath = System.getProperty( "user.home" ); //$NON-NLS-1$
}
- /**
- * {@inheritDoc}
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
*/
public void run( IAction action )
{
@@ -109,81 +107,66 @@
}
- /**
- * {@inheritDoc}
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
*/
public void selectionChanged( IAction action, ISelection selection )
{
}
- /**
- * {@inheritDoc}
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.action.Action#run()
*/
public void run()
{
- // get path
- FileDialog dialog = new FileDialog( workbenchWindow.getShell(), SWT.OPEN );
- dialog.setText( Messages.getString( "OpenFileAction.Open_File" ) ); //$NON-NLS-1$
- String path = dialog.open();
- if ( path == null || path.length() == 0 )
- {
- // canceled
- return;
- }
-
- // check file
- File file = new File( path );
- if ( !file.exists() )
- {
- String msg = MessageFormat.format(
- Messages.getString( "OpenFileAction.File_x_does_not_exist" ), new Object[] //$NON-NLS-1$
- { file.getName() } );
- MessageDialog.openWarning( workbenchWindow.getShell(), Messages
- .getString( "OpenFileAction.Warning_message" ), msg ); //$NON-NLS-1$
- return;
- }
- if ( !file.canRead() )
- {
- String msg = MessageFormat.format(
- Messages.getString( "OpenFileAction.File_x_is_not_readable" ), new Object[] //$NON-NLS-1$
- { file.getName() } );
- MessageDialog.openWarning( workbenchWindow.getShell(), Messages
- .getString( "OpenFileAction.Warning_message" ), msg ); //$NON-NLS-1$
- return;
- }
-
- // get editor for this file
- IWorkbench workbench = workbenchWindow.getWorkbench();
- IEditorRegistry editorRegistry = workbench.getEditorRegistry();
- IEditorDescriptor descriptor = editorRegistry.getDefaultEditor( file.getName() );
-
- if ( descriptor == null )
- {
- String msg = MessageFormat.format(
- Messages.getString( "OpenFileAction.No_appropriate_editor_found_for_x" ), new Object[] //$NON-NLS-1$
- { file.getName() } );
- MessageDialog.openWarning( workbenchWindow.getShell(), Messages
- .getString( "OpenFileAction.Warning_message" ), msg ); //$NON-NLS-1$
- return;
- }
-
- // create IEdiorInput
- IPath location = new Path( file.getAbsolutePath() );
- ImageDescriptor imageDescriptor = descriptor.getImageDescriptor();
- IPathEditorInput input = new PathEditorInput( location, imageDescriptor );
-
- // activate editor
- IWorkbenchPage page = workbenchWindow.getActivePage();
- String editorId = descriptor.getId();
- try
- {
- page.openEditor( input, editorId );
- }
- catch ( PartInitException e )
- {
- e.printStackTrace();
+ FileDialog dialog = new FileDialog( window.getShell(), SWT.OPEN | SWT.MULTI );
+ dialog.setText( Messages.getString( "OpenFileAction.Open_File" ) );
+ dialog.setFilterPath( filterPath );
+ dialog.open();
+ String[] names = dialog.getFileNames();
+
+ if ( names != null )
+ {
+ filterPath = dialog.getFilterPath();
+
+ int numberOfFilesNotFound = 0;
+ StringBuffer notFound = new StringBuffer();
+ IWorkbenchPage page = window.getActivePage();
+ for ( String name : names )
+ {
+ IFileStore fileStore = EFS.getLocalFileSystem().getStore( new Path( filterPath ) ).getChild( name );
+ IFileInfo fetchInfo = fileStore.fetchInfo();
+ if ( !fetchInfo.isDirectory() && fetchInfo.exists() )
+ {
+ try
+ {
+ IDE.openEditorOnFileStore( page, fileStore );
+ }
+ catch ( PartInitException e )
+ {
+ MessageDialog.openError( window.getShell(), Messages.getString( "OpenFileAction.Error" ), e
+ .getMessage() );
+ }
+ }
+ else
+ {
+ if ( ++numberOfFilesNotFound > 1 )
+ {
+ notFound.append( '\n' );
+ }
+ notFound.append( fileStore.getName() );
+ }
+ }
+
+ if ( numberOfFilesNotFound > 0 )
+ {
+ String msg = MessageFormat.format( numberOfFilesNotFound == 1 ? Messages
+ .getString( "OpenFileAction.File_not_found" ) : Messages
+ .getString( "OpenFileAction.Files_not_found" ), new Object[]
+ { notFound.toString() } );
+ MessageDialog.openError( window.getShell(), Messages.getString( "OpenFileAction.Error" ), msg );
+ }
}
}
-
}
\ No newline at end of file
Modified: directory/studio/trunk/rcp/src/main/resources/org/apache/directory/studio/messages.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/rcp/src/main/resources/org/apache/directory/studio/messages.properties?rev=658217&r1=658216&r2=658217&view=diff
==============================================================================
--- directory/studio/trunk/rcp/src/main/resources/org/apache/directory/studio/messages.properties (original)
+++ directory/studio/trunk/rcp/src/main/resources/org/apache/directory/studio/messages.properties Tue May 20 05:32:19 2008
@@ -42,11 +42,10 @@
# Strings used by OpenFileAction Class
OpenFileAction.Open_File=Open File...
-OpenFileAction.Warning_message=Problem
OpenFileAction.Open_file_from_filesystem=Open file from filesystem
-OpenFileAction.File_x_does_not_exist=File {0} doesn't exist.
-OpenFileAction.File_x_is_not_readable=File {0} isn't readable.
-OpenFileAction.No_appropriate_editor_found_for_x=No appropriate editor found for {0}.
+OpenFileAction.File_not_found=The file ''{0}'' could not be found.
+OpenFileAction.Files_not_found=The following files could not be found:\n{0}
+OpenFileAction.Error=Error!
# Strings used by ReportABugAction Class
ReportABugAction.Report_a_bug=Report a bug...