Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 81151 Details for
Bug 87863
[IDE] "save as" can't save outside the workspace
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Patch proposal, always use FileDialog for "Save as"
patch.txt (text/plain), 6.56 KB, created by
Wieant
on 2007-10-25 06:53:16 EDT
(
hide
)
Description:
Patch proposal, always use FileDialog for "Save as"
Filename:
MIME Type:
Creator:
Wieant
Created:
2007-10-25 06:53:16 EDT
Size:
6.56 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.ui.editors >Index: src/org/eclipse/ui/texteditor/AbstractDecoratedTextEditor.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.editors/src/org/eclipse/ui/texteditor/AbstractDecoratedTextEditor.java,v >retrieving revision 1.111 >diff -u -r1.111 AbstractDecoratedTextEditor.java >--- src/org/eclipse/ui/texteditor/AbstractDecoratedTextEditor.java 4 Jun 2007 15:48:21 -0000 1.111 >+++ src/org/eclipse/ui/texteditor/AbstractDecoratedTextEditor.java 25 Oct 2007 10:52:08 -0000 >@@ -43,7 +43,6 @@ > import org.eclipse.core.resources.IMarker; > import org.eclipse.core.resources.IResource; > import org.eclipse.core.resources.IResourceStatus; >-import org.eclipse.core.resources.IWorkspace; > import org.eclipse.core.resources.IWorkspaceRoot; > import org.eclipse.core.resources.ResourcesPlugin; > >@@ -57,7 +56,6 @@ > import org.eclipse.jface.action.MenuManager; > import org.eclipse.jface.action.Separator; > import org.eclipse.jface.dialogs.IDialogConstants; >-import org.eclipse.jface.dialogs.IMessageProvider; > import org.eclipse.jface.dialogs.MessageDialog; > import org.eclipse.jface.dialogs.MessageDialogWithToggle; > import org.eclipse.jface.preference.IPreferenceStore; >@@ -111,7 +109,6 @@ > import org.eclipse.ui.actions.ActionFactory; > import org.eclipse.ui.actions.ContributionItemFactory; > import org.eclipse.ui.dialogs.PreferencesUtil; >-import org.eclipse.ui.dialogs.SaveAsDialog; > import org.eclipse.ui.ide.FileStoreEditorInput; > import org.eclipse.ui.ide.IDEActionFactory; > import org.eclipse.ui.ide.IGotoMarker; >@@ -1243,92 +1240,62 @@ > > IDocumentProvider provider= getDocumentProvider(); > final IEditorInput newInput; >- >- if (input instanceof IURIEditorInput && !(input instanceof IFileEditorInput)) { >- FileDialog dialog= new FileDialog(shell, SWT.SAVE); >- IPath oldPath= URIUtil.toPath(((IURIEditorInput)input).getURI()); >- if (oldPath != null) { >- dialog.setFileName(oldPath.lastSegment()); >- dialog.setFilterPath(oldPath.toOSString()); >- } >- >- String path= dialog.open(); >- if (path == null) { >- if (progressMonitor != null) >- progressMonitor.setCanceled(true); >- return; >- } > >- // Check whether file exists and if so, confirm overwrite >- final File localFile= new File(path); >- if (localFile.exists()) { >- MessageDialog overwriteDialog= new MessageDialog( >- shell, >- TextEditorMessages.AbstractDecoratedTextEditor_saveAs_overwrite_title, >- null, >- NLSUtility.format(TextEditorMessages.AbstractDecoratedTextEditor_saveAs_overwrite_message, path), >- MessageDialog.WARNING, >- new String[] { IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL }, >- 1); // 'No' is the default >- if (overwriteDialog.open() != Window.OK) { >- if (progressMonitor != null) { >- progressMonitor.setCanceled(true); >- return; >- } >- } >- } >+ IPath oldPath = null; >+ if (input instanceof IURIEditorInput) { >+ oldPath= URIUtil.toPath(((IURIEditorInput)input).getURI()); >+ } else if (input instanceof IFileEditorInput) { >+ oldPath = ((IFileEditorInput)input).getFile().getLocation(); >+ } >+ FileDialog dialog= new FileDialog(shell, SWT.SAVE); >+ if (oldPath != null) { >+ dialog.setFileName(oldPath.lastSegment()); >+ dialog.setFilterPath(oldPath.toOSString()); >+ } >+ >+ String path= dialog.open(); >+ if (path == null) { >+ if (progressMonitor != null) >+ progressMonitor.setCanceled(true); >+ return; >+ } > >- IFileStore fileStore; >- try { >- fileStore= EFS.getStore(localFile.toURI()); >- } catch (CoreException ex) { >- EditorsPlugin.log(ex.getStatus()); >- String title= TextEditorMessages.AbstractDecoratedTextEditor_error_saveAs_title; >- String msg= NLSUtility.format(TextEditorMessages.AbstractDecoratedTextEditor_error_saveAs_message, ex.getMessage()); >- MessageDialog.openError(shell, title, msg); >- return; >+ // Check whether file exists and if so, confirm overwrite >+ final File localFile= new File(path); >+ if (localFile.exists()) { >+ MessageDialog overwriteDialog= new MessageDialog( >+ shell, >+ TextEditorMessages.AbstractDecoratedTextEditor_saveAs_overwrite_title, >+ null, >+ NLSUtility.format(TextEditorMessages.AbstractDecoratedTextEditor_saveAs_overwrite_message, path), >+ MessageDialog.WARNING, >+ new String[] { IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL }, >+ 1); // 'No' is the default >+ if (overwriteDialog.open() != Window.OK) { >+ if (progressMonitor != null) { >+ progressMonitor.setCanceled(true); >+ return; >+ } > } >- >- IFile file= getWorkspaceFile(fileStore); >- if (file != null) >- newInput= new FileEditorInput(file); >- else >- newInput= new FileStoreEditorInput(fileStore); >- >- } else { >- SaveAsDialog dialog= new SaveAsDialog(shell); >- >- IFile original= (input instanceof IFileEditorInput) ? ((IFileEditorInput) input).getFile() : null; >- if (original != null) >- dialog.setOriginalFile(original); >- >- dialog.create(); >+ } > >- if (provider.isDeleted(input) && original != null) { >- String message= NLSUtility.format(TextEditorMessages.AbstractDecoratedTextEditor_warning_saveAs_deleted, original.getName()); >- dialog.setErrorMessage(null); >- dialog.setMessage(message, IMessageProvider.WARNING); >- } >+ IFileStore fileStore; >+ try { >+ fileStore= EFS.getStore(localFile.toURI()); >+ } catch (CoreException ex) { >+ EditorsPlugin.log(ex.getStatus()); >+ String title= TextEditorMessages.AbstractDecoratedTextEditor_error_saveAs_title; >+ String msg= NLSUtility.format(TextEditorMessages.AbstractDecoratedTextEditor_error_saveAs_message, ex.getMessage()); >+ MessageDialog.openError(shell, title, msg); >+ return; >+ } > >- if (dialog.open() == Window.CANCEL) { >- if (progressMonitor != null) >- progressMonitor.setCanceled(true); >- return; >- } >- >- IPath filePath= dialog.getResult(); >- if (filePath == null) { >- if (progressMonitor != null) >- progressMonitor.setCanceled(true); >- return; >- } >- >- IWorkspace workspace= ResourcesPlugin.getWorkspace(); >- IFile file= workspace.getRoot().getFile(filePath); >+ IFile file= getWorkspaceFile(fileStore); >+ if (file != null) > newInput= new FileEditorInput(file); >+ else >+ newInput= new FileStoreEditorInput(fileStore); > >- } >- > if (provider == null) { > // editor has programmatically been closed while the dialog was open > return;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 87863
: 81151