mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-06 07:45:50 +02:00
[183824][api] Forward SystemMessageException from IRemoteFileSubsystem rather than handling it
This commit is contained in:
parent
a289426950
commit
0c96066b98
16 changed files with 292 additions and 371 deletions
|
@ -13,6 +13,7 @@
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* Martin Oberhuber (Wind River) - [175262] IHost.getSystemType() should return IRSESystemType
|
* Martin Oberhuber (Wind River) - [175262] IHost.getSystemType() should return IRSESystemType
|
||||||
* Martin Oberhuber (Wind River) - [177523] Unify singleton getter methods
|
* Martin Oberhuber (Wind River) - [177523] Unify singleton getter methods
|
||||||
|
* Martin Oberhuber (Wind River) - [183824] Forward SystemMessageException from IRemoteFileSubsystem
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.files.ui.resources;
|
package org.eclipse.rse.files.ui.resources;
|
||||||
|
@ -599,7 +600,14 @@ public class SystemEditableRemoteFile implements ISystemEditableRemoteObject, IP
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
subsystem.download(remoteFile, localPath, remoteFile.getEncoding(), monitor);
|
try
|
||||||
|
{
|
||||||
|
subsystem.download(remoteFile, localPath, remoteFile.getEncoding(), monitor);
|
||||||
|
}
|
||||||
|
catch (SystemMessageException e)
|
||||||
|
{
|
||||||
|
SystemMessageDialog.displayMessage(e);
|
||||||
|
}
|
||||||
if (monitor.isCanceled())
|
if (monitor.isCanceled())
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
|
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
|
||||||
* Martin Oberhuber (Wind River) - [177523] Unify singleton getter methods
|
* Martin Oberhuber (Wind River) - [177523] Unify singleton getter methods
|
||||||
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
|
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
|
||||||
|
* Martin Oberhuber (Wind River) - [183824] Forward SystemMessageException from IRemoteFileSubsystem
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.files.ui.resources;
|
package org.eclipse.rse.files.ui.resources;
|
||||||
|
@ -217,7 +218,7 @@ public class UniversalFileTransferUtility
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (final RemoteFileIOException e)
|
catch (final SystemMessageException e)
|
||||||
{
|
{
|
||||||
runInDisplayThread(new Runnable() {
|
runInDisplayThread(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
|
@ -1162,6 +1163,10 @@ public class UniversalFileTransferUtility
|
||||||
newFilePathList.add(newPath);
|
newFilePathList.add(newPath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch (SystemMessageException e)
|
||||||
|
{
|
||||||
|
SystemMessageDialog.displayMessage(e);
|
||||||
|
}
|
||||||
catch (CoreException e)
|
catch (CoreException e)
|
||||||
{
|
{
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
@ -1378,6 +1383,10 @@ public class UniversalFileTransferUtility
|
||||||
return newTargetFolder;
|
return newTargetFolder;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
catch (SystemMessageException e)
|
||||||
|
{
|
||||||
|
SystemMessageDialog.displayMessage(e);
|
||||||
|
}
|
||||||
catch (CoreException e)
|
catch (CoreException e)
|
||||||
{
|
{
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
@ -1456,15 +1465,19 @@ public class UniversalFileTransferUtility
|
||||||
monitor.done();
|
monitor.done();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
catch (SystemMessageException e)
|
||||||
|
{
|
||||||
|
SystemMessageDialog.displayMessage(e);
|
||||||
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
if (newPath == null) cleanup(destinationArchive, null);
|
|
||||||
else cleanup(destinationArchive, new File(newPath));
|
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
if (newPath == null) cleanup(destinationArchive, null);
|
finally {
|
||||||
else cleanup(destinationArchive, new File(newPath));
|
if (newPath == null) cleanup(destinationArchive, null);
|
||||||
|
else cleanup(destinationArchive, new File(newPath));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static void setReadOnly(IFile file, boolean flag)
|
protected static void setReadOnly(IFile file, boolean flag)
|
||||||
|
@ -1698,6 +1711,11 @@ public class UniversalFileTransferUtility
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch (SystemMessageException e)
|
||||||
|
{
|
||||||
|
SystemMessageDialog.displayMessage(e);
|
||||||
|
cleanup(cpdest, dest);
|
||||||
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
@ -1718,6 +1736,10 @@ public class UniversalFileTransferUtility
|
||||||
{
|
{
|
||||||
arc1.getParentRemoteFileSubSystem().delete(arc1, null);
|
arc1.getParentRemoteFileSubSystem().delete(arc1, null);
|
||||||
}
|
}
|
||||||
|
catch (SystemMessageException e)
|
||||||
|
{
|
||||||
|
SystemMessageDialog.displayMessage(e);
|
||||||
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
|
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
|
||||||
* Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType
|
* Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType
|
||||||
|
* Martin Oberhuber (Wind River) - [183824] Forward SystemMessageException from IRemoteFileSubsystem
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.internal.files.ui.actions;
|
package org.eclipse.rse.internal.files.ui.actions;
|
||||||
|
@ -113,7 +114,7 @@ public class SystemCombineAction extends SystemExtractToAction {
|
||||||
}
|
}
|
||||||
catch (SystemMessageException e)
|
catch (SystemMessageException e)
|
||||||
{
|
{
|
||||||
System.out.println(e.getMessage());
|
SystemMessageDialog.displayMessage(e);
|
||||||
}
|
}
|
||||||
IProgressMonitor monitor = new NullProgressMonitor();
|
IProgressMonitor monitor = new NullProgressMonitor();
|
||||||
for (int i = 0; i < _selected.size(); i++)
|
for (int i = 0; i < _selected.size(); i++)
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
*
|
*
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
|
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
|
||||||
|
* Martin Oberhuber (Wind River) - [183824] Forward SystemMessageException from IRemoteFileSubsystem
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.internal.files.ui.actions;
|
package org.eclipse.rse.internal.files.ui.actions;
|
||||||
|
@ -169,8 +170,8 @@ public class SystemExtractAction extends SystemBaseAction
|
||||||
SystemMessage msg = RSEUIPlugin.getPluginMessage(ISystemMessages.MSG_OPERATION_FAILED);
|
SystemMessage msg = RSEUIPlugin.getPluginMessage(ISystemMessages.MSG_OPERATION_FAILED);
|
||||||
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), msg);
|
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), msg);
|
||||||
dlg.open();
|
dlg.open();
|
||||||
System.out.println(e.getMessage());
|
//System.out.println(e.getMessage());
|
||||||
System.out.println("Could not extract " + sources[j].getAbsolutePath()); //$NON-NLS-1$
|
//System.out.println("Could not extract " + sources[j].getAbsolutePath()); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
*
|
*
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
|
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
|
||||||
|
* Martin Oberhuber (Wind River) - [183824] Forward SystemMessageException from IRemoteFileSubsystem
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.internal.files.ui.actions;
|
package org.eclipse.rse.internal.files.ui.actions;
|
||||||
|
@ -147,13 +148,13 @@ public class SystemUploadConflictAction extends SystemBaseAction implements Runn
|
||||||
properties.setDirty(false);
|
properties.setDirty(false);
|
||||||
properties.setUsedBinaryTransfer(_remoteFile.isBinary());
|
properties.setUsedBinaryTransfer(_remoteFile.isBinary());
|
||||||
}
|
}
|
||||||
catch (RemoteFileSecurityException e)
|
catch (final SystemMessageException e)
|
||||||
{
|
{
|
||||||
e.printStackTrace();
|
Display.getDefault().asyncExec(new Runnable() {
|
||||||
}
|
public void run() {
|
||||||
catch (RemoteFileIOException e)
|
SystemMessageDialog.displayMessage(e);
|
||||||
{
|
}
|
||||||
e.printStackTrace();
|
});
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
|
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
|
||||||
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
|
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
|
||||||
|
* Martin Oberhuber (Wind River) - [183824] Forward SystemMessageException from IRemoteFileSubsystem
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.internal.files.ui.propertypages;
|
package org.eclipse.rse.internal.files.ui.propertypages;
|
||||||
|
@ -26,6 +27,7 @@ import java.util.List;
|
||||||
import org.eclipse.core.runtime.NullProgressMonitor;
|
import org.eclipse.core.runtime.NullProgressMonitor;
|
||||||
import org.eclipse.rse.core.events.ISystemResourceChangeEvents;
|
import org.eclipse.rse.core.events.ISystemResourceChangeEvents;
|
||||||
import org.eclipse.rse.internal.subsystems.files.core.SystemFileResources;
|
import org.eclipse.rse.internal.subsystems.files.core.SystemFileResources;
|
||||||
|
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
|
||||||
import org.eclipse.rse.services.files.RemoteFileIOException;
|
import org.eclipse.rse.services.files.RemoteFileIOException;
|
||||||
import org.eclipse.rse.services.files.RemoteFileSecurityException;
|
import org.eclipse.rse.services.files.RemoteFileSecurityException;
|
||||||
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
|
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
|
||||||
|
@ -462,6 +464,9 @@ public class SystemFilePropertyPage extends SystemBasePropertyPage
|
||||||
catch (RemoteFileSecurityException exc) {
|
catch (RemoteFileSecurityException exc) {
|
||||||
setMessage(RSEUIPlugin.getPluginMessage(ISystemMessages.FILEMSG_SECURITY_ERROR));
|
setMessage(RSEUIPlugin.getPluginMessage(ISystemMessages.FILEMSG_SECURITY_ERROR));
|
||||||
}
|
}
|
||||||
|
catch (SystemMessageException e) {
|
||||||
|
setMessage(e.getSystemMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// set the encoding
|
// set the encoding
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
* Martin Oberhuber (Wind River) - [182454] improve getAbsoluteName() documentation
|
* Martin Oberhuber (Wind River) - [182454] improve getAbsoluteName() documentation
|
||||||
* Martin Oberhuber (Wind River) - [177523] Unify singleton getter methods
|
* Martin Oberhuber (Wind River) - [177523] Unify singleton getter methods
|
||||||
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
|
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
|
||||||
|
* Martin Oberhuber (Wind River) - [183824] Forward SystemMessageException from IRemoteFileSubsystem
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.internal.files.ui.view;
|
package org.eclipse.rse.internal.files.ui.view;
|
||||||
|
@ -96,8 +97,6 @@ import org.eclipse.rse.services.clientserver.SystemSearchString;
|
||||||
import org.eclipse.rse.services.clientserver.archiveutils.ArchiveHandlerManager;
|
import org.eclipse.rse.services.clientserver.archiveutils.ArchiveHandlerManager;
|
||||||
import org.eclipse.rse.services.clientserver.messages.SystemMessage;
|
import org.eclipse.rse.services.clientserver.messages.SystemMessage;
|
||||||
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
|
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
|
||||||
import org.eclipse.rse.services.files.RemoteFileIOException;
|
|
||||||
import org.eclipse.rse.services.files.RemoteFileSecurityException;
|
|
||||||
import org.eclipse.rse.services.search.HostSearchResultSet;
|
import org.eclipse.rse.services.search.HostSearchResultSet;
|
||||||
import org.eclipse.rse.services.search.IHostSearchConstants;
|
import org.eclipse.rse.services.search.IHostSearchConstants;
|
||||||
import org.eclipse.rse.services.search.IHostSearchResultConfiguration;
|
import org.eclipse.rse.services.search.IHostSearchResultConfiguration;
|
||||||
|
@ -1957,6 +1956,10 @@ public class SystemViewRemoteFileAdapter
|
||||||
resultSet.setMessage(msg);
|
resultSet.setMessage(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch (SystemMessageException e)
|
||||||
|
{
|
||||||
|
SystemMessageDialog.displayMessage(e);
|
||||||
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
@ -1982,6 +1985,10 @@ public class SystemViewRemoteFileAdapter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch (SystemMessageException e)
|
||||||
|
{
|
||||||
|
SystemMessageDialog.displayMessage(e);
|
||||||
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
@ -2214,15 +2221,11 @@ public class SystemViewRemoteFileAdapter
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (RemoteFileIOException e)
|
catch (SystemMessageException e)
|
||||||
{
|
{
|
||||||
return e.getSystemMessage();
|
return e.getSystemMessage();
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (RemoteFileSecurityException e)
|
|
||||||
{
|
|
||||||
return e.getSystemMessage();
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
package org.eclipse.rse.internal.importexport.files;
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2000, 2007 IBM Corporation and others.
|
* Copyright (c) 2000, 2007 IBM Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
@ -9,7 +7,10 @@ package org.eclipse.rse.internal.importexport.files;
|
||||||
*
|
*
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* IBM Corporation - initial API and implementation
|
* IBM Corporation - initial API and implementation
|
||||||
|
* Martin Oberhuber (Wind River) - [183824] Forward SystemMessageException from IRemoteFileSubsystem
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
package org.eclipse.rse.internal.importexport.files;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
|
@ -20,8 +21,7 @@ import org.eclipse.core.runtime.CoreException;
|
||||||
import org.eclipse.core.runtime.IPath;
|
import org.eclipse.core.runtime.IPath;
|
||||||
import org.eclipse.rse.core.model.IHost;
|
import org.eclipse.rse.core.model.IHost;
|
||||||
import org.eclipse.rse.services.clientserver.SystemEncodingUtil;
|
import org.eclipse.rse.services.clientserver.SystemEncodingUtil;
|
||||||
import org.eclipse.rse.services.files.RemoteFileException;
|
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
|
||||||
import org.eclipse.rse.services.files.RemoteFileSecurityException;
|
|
||||||
import org.eclipse.rse.subsystems.files.core.model.RemoteFileUtility;
|
import org.eclipse.rse.subsystems.files.core.model.RemoteFileUtility;
|
||||||
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem;
|
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem;
|
||||||
|
|
||||||
|
@ -61,8 +61,9 @@ class RemoteExporter {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Writes the passed resource to the specified location recursively
|
* Writes the passed resource to the specified location recursively
|
||||||
|
* @throws SystemMessageException TODO
|
||||||
*/
|
*/
|
||||||
public void write(IResource resource, IPath destinationPath) throws IOException, CoreException, RemoteFileSecurityException, RemoteFileException {
|
public void write(IResource resource, IPath destinationPath) throws IOException, CoreException, SystemMessageException {
|
||||||
if (resource.getType() == IResource.FILE)
|
if (resource.getType() == IResource.FILE)
|
||||||
writeFile((IFile) resource, destinationPath);
|
writeFile((IFile) resource, destinationPath);
|
||||||
else
|
else
|
||||||
|
@ -71,8 +72,9 @@ class RemoteExporter {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Exports the passed container's children
|
* Exports the passed container's children
|
||||||
|
* @throws SystemMessageException TODO
|
||||||
*/
|
*/
|
||||||
protected void writeChildren(IContainer folder, IPath destinationPath) throws IOException, CoreException, RemoteFileSecurityException, RemoteFileException {
|
protected void writeChildren(IContainer folder, IPath destinationPath) throws IOException, CoreException, SystemMessageException {
|
||||||
if (folder.isAccessible()) {
|
if (folder.isAccessible()) {
|
||||||
IResource[] children = folder.members();
|
IResource[] children = folder.members();
|
||||||
for (int i = 0; i < children.length; i++) {
|
for (int i = 0; i < children.length; i++) {
|
||||||
|
@ -85,8 +87,9 @@ class RemoteExporter {
|
||||||
/**
|
/**
|
||||||
* Writes the passed file resource to the specified destination on the remote
|
* Writes the passed file resource to the specified destination on the remote
|
||||||
* file system
|
* file system
|
||||||
|
* @throws SystemMessageException TODO
|
||||||
*/
|
*/
|
||||||
protected void writeFile(IFile file, IPath destinationPath) throws IOException, CoreException, RemoteFileSecurityException, RemoteFileException {
|
protected void writeFile(IFile file, IPath destinationPath) throws IOException, CoreException, SystemMessageException {
|
||||||
IRemoteFileSubSystem rfss = RemoteFileUtility.getFileSubSystem((IHost) _host);
|
IRemoteFileSubSystem rfss = RemoteFileUtility.getFileSubSystem((IHost) _host);
|
||||||
String dest = destinationPath.toString();
|
String dest = destinationPath.toString();
|
||||||
char sep = rfss.getSeparatorChar();
|
char sep = rfss.getSeparatorChar();
|
||||||
|
@ -100,8 +103,9 @@ class RemoteExporter {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Writes the passed resource to the specified location recursively
|
* Writes the passed resource to the specified location recursively
|
||||||
|
* @throws SystemMessageException TODO
|
||||||
*/
|
*/
|
||||||
protected void writeResource(IResource resource, IPath destinationPath) throws IOException, CoreException, RemoteFileSecurityException, RemoteFileException {
|
protected void writeResource(IResource resource, IPath destinationPath) throws IOException, CoreException, SystemMessageException {
|
||||||
if (resource.getType() == IResource.FILE)
|
if (resource.getType() == IResource.FILE)
|
||||||
writeFile((IFile) resource, destinationPath);
|
writeFile((IFile) resource, destinationPath);
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* IBM Corporation - initial API and implementation
|
* IBM Corporation - initial API and implementation
|
||||||
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
|
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
|
||||||
|
* Martin Oberhuber (Wind River) - [183824] Forward SystemMessageException from IRemoteFileSubsystem
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.rse.internal.importexport.files;
|
package org.eclipse.rse.internal.importexport.files;
|
||||||
|
|
||||||
|
@ -78,6 +79,8 @@ public class UniFilePlus extends File {
|
||||||
throw new SecurityException(exc.getMessage());
|
throw new SecurityException(exc.getMessage());
|
||||||
else
|
else
|
||||||
throw new IOException(exc.getMessage());
|
throw new IOException(exc.getMessage());
|
||||||
|
} catch (SystemMessageException e) {
|
||||||
|
throw new IOException(e.getMessage());
|
||||||
}
|
}
|
||||||
if (newFile != null) {
|
if (newFile != null) {
|
||||||
remoteFile = newFile;
|
remoteFile = newFile;
|
||||||
|
@ -95,6 +98,10 @@ public class UniFilePlus extends File {
|
||||||
Exception e = exc.getRemoteException();
|
Exception e = exc.getRemoteException();
|
||||||
if ((e != null) && (e instanceof SecurityException)) throw (SecurityException) e;
|
if ((e != null) && (e instanceof SecurityException)) throw (SecurityException) e;
|
||||||
throw new SecurityException(exc.getMessage());
|
throw new SecurityException(exc.getMessage());
|
||||||
|
} catch (SystemMessageException e) {
|
||||||
|
//TODO should there be more user feedback?
|
||||||
|
SystemBasePlugin.logMessage(e.getSystemMessage());
|
||||||
|
ok = false;
|
||||||
}
|
}
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
@ -286,6 +293,9 @@ public class UniFilePlus extends File {
|
||||||
Exception e = exc.getRemoteException();
|
Exception e = exc.getRemoteException();
|
||||||
if ((e != null) && (e instanceof SecurityException)) throw (SecurityException) e;
|
if ((e != null) && (e instanceof SecurityException)) throw (SecurityException) e;
|
||||||
throw new SecurityException(exc.getMessage());
|
throw new SecurityException(exc.getMessage());
|
||||||
|
} catch (SystemMessageException e) {
|
||||||
|
//TODO should there be more user feedback?
|
||||||
|
SystemBasePlugin.logMessage(e.getSystemMessage());
|
||||||
}
|
}
|
||||||
if (dir != null) remoteFile = dir;
|
if (dir != null) remoteFile = dir;
|
||||||
return (dir != null);
|
return (dir != null);
|
||||||
|
@ -299,6 +309,9 @@ public class UniFilePlus extends File {
|
||||||
Exception e = exc.getRemoteException();
|
Exception e = exc.getRemoteException();
|
||||||
if ((e != null) && (e instanceof SecurityException)) throw (SecurityException) e;
|
if ((e != null) && (e instanceof SecurityException)) throw (SecurityException) e;
|
||||||
throw new SecurityException(exc.getMessage());
|
throw new SecurityException(exc.getMessage());
|
||||||
|
} catch (SystemMessageException e) {
|
||||||
|
//TODO should there be more user feedback?
|
||||||
|
SystemBasePlugin.logMessage(e.getSystemMessage());
|
||||||
}
|
}
|
||||||
if (dir != null) remoteFile = dir;
|
if (dir != null) remoteFile = dir;
|
||||||
return (dir != null);
|
return (dir != null);
|
||||||
|
@ -312,6 +325,9 @@ public class UniFilePlus extends File {
|
||||||
Exception e = exc.getRemoteException();
|
Exception e = exc.getRemoteException();
|
||||||
if ((e != null) && (e instanceof SecurityException)) throw (SecurityException) e;
|
if ((e != null) && (e instanceof SecurityException)) throw (SecurityException) e;
|
||||||
throw new SecurityException(exc.getMessage());
|
throw new SecurityException(exc.getMessage());
|
||||||
|
} catch (SystemMessageException e) {
|
||||||
|
//TODO should there be more user feedback?
|
||||||
|
SystemBasePlugin.logMessage(e.getSystemMessage());
|
||||||
}
|
}
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
@ -326,6 +342,9 @@ public class UniFilePlus extends File {
|
||||||
Exception e = exc.getRemoteException();
|
Exception e = exc.getRemoteException();
|
||||||
if ((e != null) && (e instanceof SecurityException)) throw (SecurityException) e;
|
if ((e != null) && (e instanceof SecurityException)) throw (SecurityException) e;
|
||||||
throw new SecurityException(exc.getMessage());
|
throw new SecurityException(exc.getMessage());
|
||||||
|
} catch (SystemMessageException e) {
|
||||||
|
//TODO should there be more user feedback?
|
||||||
|
SystemBasePlugin.logMessage(e.getSystemMessage());
|
||||||
}
|
}
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
@ -338,6 +357,9 @@ public class UniFilePlus extends File {
|
||||||
Exception e = exc.getRemoteException();
|
Exception e = exc.getRemoteException();
|
||||||
if ((e != null) && (e instanceof SecurityException)) throw (SecurityException) e;
|
if ((e != null) && (e instanceof SecurityException)) throw (SecurityException) e;
|
||||||
throw new SecurityException(exc.getMessage());
|
throw new SecurityException(exc.getMessage());
|
||||||
|
} catch (SystemMessageException e) {
|
||||||
|
//TODO should there be more user feedback?
|
||||||
|
SystemBasePlugin.logMessage(e.getSystemMessage());
|
||||||
}
|
}
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
*
|
*
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
|
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
|
||||||
|
* Martin Oberhuber (Wind River) - [183824] Forward SystemMessageException from IRemoteFileSubsystem
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.services.files;
|
package org.eclipse.rse.services.files;
|
||||||
|
@ -25,7 +26,6 @@ import org.eclipse.core.runtime.IProgressMonitor;
|
||||||
import org.eclipse.rse.services.IService;
|
import org.eclipse.rse.services.IService;
|
||||||
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
|
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A IFileService is an abstraction of a file service that runs over some sort of connection.
|
* A IFileService is an abstraction of a file service that runs over some sort of connection.
|
||||||
* It can be shared among multiple instances of a subsystem. At some point this file
|
* It can be shared among multiple instances of a subsystem. At some point this file
|
||||||
|
@ -69,7 +69,8 @@ public interface IFileService extends IService
|
||||||
* @param monitor the monitor for this potentially long running operation
|
* @param monitor the monitor for this potentially long running operation
|
||||||
* @return true if the file was uploaded
|
* @return true if the file was uploaded
|
||||||
* @throws SystemMessageException if an error occurs.
|
* @throws SystemMessageException if an error occurs.
|
||||||
* Typically this would be one of those in the RemoteFileException family.
|
* Typically this would be one of those in the
|
||||||
|
* {@link RemoteFileException} family.
|
||||||
*/
|
*/
|
||||||
public boolean upload(File localFile, String remoteParent, String remoteFile, boolean isBinary, String srcEncoding, String hostEncoding, IProgressMonitor monitor) throws SystemMessageException;
|
public boolean upload(File localFile, String remoteParent, String remoteFile, boolean isBinary, String srcEncoding, String hostEncoding, IProgressMonitor monitor) throws SystemMessageException;
|
||||||
|
|
||||||
|
@ -84,7 +85,8 @@ public interface IFileService extends IService
|
||||||
* @param monitor the monitor for this potentially long running operation
|
* @param monitor the monitor for this potentially long running operation
|
||||||
* @return true if the file was copied from the remote system.
|
* @return true if the file was copied from the remote system.
|
||||||
* @throws SystemMessageException if an error occurs.
|
* @throws SystemMessageException if an error occurs.
|
||||||
* Typically this would be one of those in the RemoteFileException family.
|
* Typically this would be one of those in the
|
||||||
|
* {@link RemoteFileException} family.
|
||||||
*/
|
*/
|
||||||
public boolean download(String remoteParent, String remoteFile, File localFile, boolean isBinary, String hostEncoding, IProgressMonitor monitor) throws SystemMessageException;
|
public boolean download(String remoteParent, String remoteFile, File localFile, boolean isBinary, String hostEncoding, IProgressMonitor monitor) throws SystemMessageException;
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
* Martin Oberhuber (Wind River) - [168596] FileServiceSubSystem.isCaseSensitive()
|
* Martin Oberhuber (Wind River) - [168596] FileServiceSubSystem.isCaseSensitive()
|
||||||
* Martin Oberhuber (Wind River) - [177523] Unify singleton getter methods
|
* Martin Oberhuber (Wind River) - [177523] Unify singleton getter methods
|
||||||
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
|
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
|
||||||
|
* Martin Oberhuber (Wind River) - [183824] Forward SystemMessageException from IRemoteFileSubsystem
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.subsystems.files.core.servicesubsystem;
|
package org.eclipse.rse.subsystems.files.core.servicesubsystem;
|
||||||
|
@ -27,6 +28,7 @@ import java.io.OutputStream;
|
||||||
|
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
import org.eclipse.core.runtime.IProgressMonitor;
|
||||||
import org.eclipse.core.runtime.NullProgressMonitor;
|
import org.eclipse.core.runtime.NullProgressMonitor;
|
||||||
|
import org.eclipse.rse.core.SystemBasePlugin;
|
||||||
import org.eclipse.rse.core.model.IHost;
|
import org.eclipse.rse.core.model.IHost;
|
||||||
import org.eclipse.rse.core.subsystems.IConnectorService;
|
import org.eclipse.rse.core.subsystems.IConnectorService;
|
||||||
import org.eclipse.rse.core.subsystems.IServiceSubSystemConfiguration;
|
import org.eclipse.rse.core.subsystems.IServiceSubSystemConfiguration;
|
||||||
|
@ -40,9 +42,6 @@ import org.eclipse.rse.services.clientserver.messages.SystemMessage;
|
||||||
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
|
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
|
||||||
import org.eclipse.rse.services.files.IFileService;
|
import org.eclipse.rse.services.files.IFileService;
|
||||||
import org.eclipse.rse.services.files.IHostFile;
|
import org.eclipse.rse.services.files.IHostFile;
|
||||||
import org.eclipse.rse.services.files.RemoteFileIOException;
|
|
||||||
import org.eclipse.rse.services.files.RemoteFileSecurityException;
|
|
||||||
import org.eclipse.rse.services.files.RemoteFolderNotEmptyException;
|
|
||||||
import org.eclipse.rse.services.search.IHostSearchResultConfiguration;
|
import org.eclipse.rse.services.search.IHostSearchResultConfiguration;
|
||||||
import org.eclipse.rse.services.search.IHostSearchResultSet;
|
import org.eclipse.rse.services.search.IHostSearchResultSet;
|
||||||
import org.eclipse.rse.services.search.ISearchService;
|
import org.eclipse.rse.services.search.ISearchService;
|
||||||
|
@ -54,8 +53,6 @@ import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileContext;
|
||||||
import org.eclipse.rse.subsystems.files.core.subsystems.RemoteFileSubSystem;
|
import org.eclipse.rse.subsystems.files.core.subsystems.RemoteFileSubSystem;
|
||||||
import org.eclipse.rse.ui.ISystemMessages;
|
import org.eclipse.rse.ui.ISystemMessages;
|
||||||
import org.eclipse.rse.ui.RSEUIPlugin;
|
import org.eclipse.rse.ui.RSEUIPlugin;
|
||||||
import org.eclipse.rse.ui.messages.SystemMessageDialog;
|
|
||||||
import org.eclipse.swt.widgets.Display;
|
|
||||||
|
|
||||||
public final class FileServiceSubSystem extends RemoteFileSubSystem implements IFileServiceSubSystem
|
public final class FileServiceSubSystem extends RemoteFileSubSystem implements IFileServiceSubSystem
|
||||||
{
|
{
|
||||||
|
@ -434,15 +431,11 @@ public final class FileServiceSubSystem extends RemoteFileSubSystem implements I
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Get the remote file and save it locally. The file is saved in the encoding
|
* (non-Javadoc)
|
||||||
* specified.
|
* @see org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem#download(org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile, java.lang.String, java.lang.String, org.eclipse.core.runtime.IProgressMonitor)
|
||||||
* @param file remote file that represents the file to be obtained
|
|
||||||
* @param localpath the absolute path of the local file
|
|
||||||
* @param encoding the encoding of the local file
|
|
||||||
* @param monitor progress monitor
|
|
||||||
*/
|
*/
|
||||||
public void download(IRemoteFile file, String localpath, String encoding, IProgressMonitor monitor)
|
public void download(IRemoteFile file, String localpath, String encoding, IProgressMonitor monitor) throws SystemMessageException
|
||||||
{
|
{
|
||||||
//Fixing bug 158534. TODO remove when bug 162688 is fixed.
|
//Fixing bug 158534. TODO remove when bug 162688 is fixed.
|
||||||
if (monitor==null) {
|
if (monitor==null) {
|
||||||
|
@ -450,16 +443,7 @@ public final class FileServiceSubSystem extends RemoteFileSubSystem implements I
|
||||||
}
|
}
|
||||||
String parentPath = file.getParentPath();
|
String parentPath = file.getParentPath();
|
||||||
File localFile = new File(localpath);
|
File localFile = new File(localpath);
|
||||||
try
|
getFileService().download(parentPath, file.getName(), localFile, isBinary(file), file.getEncoding(), monitor);
|
||||||
{
|
|
||||||
getFileService().download(parentPath, file.getName(), localFile, isBinary(file), file.getEncoding(), monitor);
|
|
||||||
}
|
|
||||||
catch (SystemMessageException e)
|
|
||||||
{
|
|
||||||
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), e.getSystemMessage());
|
|
||||||
dlg.open();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (monitor.isCanceled())
|
if (monitor.isCanceled())
|
||||||
{
|
{
|
||||||
localFile.delete();
|
localFile.delete();
|
||||||
|
@ -487,15 +471,11 @@ public final class FileServiceSubSystem extends RemoteFileSubSystem implements I
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Put the local copy of the remote file back to the remote location. The file
|
* (non-Javadoc)
|
||||||
* is assumed to be in the encoding of the local operating system
|
* @see org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem#upload(java.lang.String, java.lang.String, java.lang.String, java.lang.String, org.eclipse.core.runtime.IProgressMonitor)
|
||||||
* @param source the absolute path of the local copy
|
|
||||||
* @param srcEncoding The encoding of the local copy
|
|
||||||
* @param remotePath remote file that represents the file on the server
|
|
||||||
* @param rmtEncoding The encoding of the remote file.
|
|
||||||
*/
|
*/
|
||||||
public void upload(String source, String srcEncoding, String remotePath, String rmtEncoding, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException {
|
public void upload(String source, String srcEncoding, String remotePath, String rmtEncoding, IProgressMonitor monitor) throws SystemMessageException {
|
||||||
int slashIndex = remotePath.lastIndexOf(getSeparator());
|
int slashIndex = remotePath.lastIndexOf(getSeparator());
|
||||||
if (slashIndex > -1) {
|
if (slashIndex > -1) {
|
||||||
String remoteParentPath = remotePath.substring(0, slashIndex);
|
String remoteParentPath = remotePath.substring(0, slashIndex);
|
||||||
|
@ -507,27 +487,15 @@ public final class FileServiceSubSystem extends RemoteFileSubSystem implements I
|
||||||
remoteParentPath = avp.getPath();
|
remoteParentPath = avp.getPath();
|
||||||
remoteFileName = avp.getName();
|
remoteFileName = avp.getName();
|
||||||
}
|
}
|
||||||
try
|
getFileService().upload(new File(source), remoteParentPath, remoteFileName, isBinary, srcEncoding, rmtEncoding, monitor);
|
||||||
{
|
|
||||||
getFileService().upload(new File(source), remoteParentPath, remoteFileName, isBinary, srcEncoding, rmtEncoding, monitor);
|
|
||||||
}
|
|
||||||
catch (SystemMessageException e)
|
|
||||||
{
|
|
||||||
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), e.getSystemMessage());
|
|
||||||
dlg.open();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Put the local copy of the remote file back to the remote location. The file
|
* (non-Javadoc)
|
||||||
* is assumed to be in the encoding of the local operating system
|
* @see org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem#upload(java.lang.String, org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile, java.lang.String, org.eclipse.core.runtime.IProgressMonitor)
|
||||||
* @param source the absolute path of the local copy
|
|
||||||
* @param destination location to copy to
|
|
||||||
* @param encoding The encoding of the local copy
|
|
||||||
* @param monitor progress monitor
|
|
||||||
*/
|
*/
|
||||||
public void upload(String source, IRemoteFile destination, String encoding, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException
|
public void upload(String source, IRemoteFile destination, String encoding, IProgressMonitor monitor) throws SystemMessageException
|
||||||
{
|
{
|
||||||
String remoteParentPath = destination.getParentPath();
|
String remoteParentPath = destination.getParentPath();
|
||||||
String remoteFileName = destination.getName();
|
String remoteFileName = destination.getName();
|
||||||
|
@ -537,39 +505,22 @@ public final class FileServiceSubSystem extends RemoteFileSubSystem implements I
|
||||||
if (!destination.canWrite())
|
if (!destination.canWrite())
|
||||||
{
|
{
|
||||||
SystemMessage msg = RSEUIPlugin.getPluginMessage("RSEF5003").makeSubstitution(remoteFileName, getHostName()); //$NON-NLS-1$
|
SystemMessage msg = RSEUIPlugin.getPluginMessage("RSEF5003").makeSubstitution(remoteFileName, getHostName()); //$NON-NLS-1$
|
||||||
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), msg);
|
throw new SystemMessageException(msg);
|
||||||
dlg.open();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
getFileService().upload(new File(source), remoteParentPath, remoteFileName, isBinary, encoding, hostEncoding, monitor);
|
|
||||||
}
|
|
||||||
catch (SystemMessageException e)
|
|
||||||
{
|
|
||||||
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), e.getSystemMessage());
|
|
||||||
dlg.open();
|
|
||||||
}
|
}
|
||||||
|
getFileService().upload(new File(source), remoteParentPath, remoteFileName, isBinary, encoding, hostEncoding, monitor);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean copy(IRemoteFile sourceFolderOrFile, IRemoteFile targetFolder, String newName, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
* @see org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem#copy(org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile, org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile, java.lang.String, org.eclipse.core.runtime.IProgressMonitor)
|
||||||
|
*/
|
||||||
|
public boolean copy(IRemoteFile sourceFolderOrFile, IRemoteFile targetFolder, String newName, IProgressMonitor monitor) throws SystemMessageException
|
||||||
{
|
{
|
||||||
IFileService service = getFileService();
|
IFileService service = getFileService();
|
||||||
try
|
return service.copy(sourceFolderOrFile.getParentPath(), sourceFolderOrFile.getName(), targetFolder.getAbsolutePath(), newName, monitor);
|
||||||
{
|
|
||||||
return service.copy(sourceFolderOrFile.getParentPath(), sourceFolderOrFile.getName(), targetFolder.getAbsolutePath(), newName, monitor);
|
|
||||||
}
|
|
||||||
catch (SystemMessageException e)
|
|
||||||
{
|
|
||||||
Display dis = Display.getDefault();
|
|
||||||
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), e.getSystemMessage());
|
|
||||||
dis.syncExec(new SystemMessageDialogRunnable(dlg));
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean copyBatch(IRemoteFile[] sourceFolderOrFiles, IRemoteFile targetFolder, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException
|
public boolean copyBatch(IRemoteFile[] sourceFolderOrFiles, IRemoteFile targetFolder, IProgressMonitor monitor) throws SystemMessageException
|
||||||
{
|
{
|
||||||
IFileService service = getFileService();
|
IFileService service = getFileService();
|
||||||
String[] sourceParents = new String[sourceFolderOrFiles.length];
|
String[] sourceParents = new String[sourceFolderOrFiles.length];
|
||||||
|
@ -580,17 +531,7 @@ public final class FileServiceSubSystem extends RemoteFileSubSystem implements I
|
||||||
sourceParents[i] = sourceFolderOrFiles[i].getParentPath();
|
sourceParents[i] = sourceFolderOrFiles[i].getParentPath();
|
||||||
sourceNames[i] = sourceFolderOrFiles[i].getName();
|
sourceNames[i] = sourceFolderOrFiles[i].getName();
|
||||||
}
|
}
|
||||||
try
|
return service.copyBatch(sourceParents, sourceNames, targetFolder.getAbsolutePath(), monitor);
|
||||||
{
|
|
||||||
return service.copyBatch(sourceParents, sourceNames, targetFolder.getAbsolutePath(), monitor);
|
|
||||||
}
|
|
||||||
catch (SystemMessageException e)
|
|
||||||
{
|
|
||||||
Display dis = Display.getDefault();
|
|
||||||
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), e.getSystemMessage());
|
|
||||||
dis.syncExec(new SystemMessageDialogRunnable(dlg));
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public IRemoteFile getParentFolder(IRemoteFile folderOrFile, IProgressMonitor monitor)
|
public IRemoteFile getParentFolder(IRemoteFile folderOrFile, IProgressMonitor monitor)
|
||||||
|
@ -605,75 +546,42 @@ public final class FileServiceSubSystem extends RemoteFileSubSystem implements I
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public IRemoteFile createFile(IRemoteFile fileToCreate, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException
|
public IRemoteFile createFile(IRemoteFile fileToCreate, IProgressMonitor monitor) throws SystemMessageException
|
||||||
{
|
{
|
||||||
IFileService service = getFileService();
|
IFileService service = getFileService();
|
||||||
String parent = fileToCreate.getParentPath();
|
String parent = fileToCreate.getParentPath();
|
||||||
String name = fileToCreate.getName();
|
String name = fileToCreate.getName();
|
||||||
IHostFile newFile = null;
|
IHostFile newFile = service.createFile(parent, name, monitor);
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
newFile = service.createFile(parent, name, monitor);
|
|
||||||
}
|
|
||||||
catch (SystemMessageException e)
|
|
||||||
{
|
|
||||||
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), e.getSystemMessage());
|
|
||||||
SystemMessageDialogRunnable runnable = new SystemMessageDialogRunnable(dlg);
|
|
||||||
Display.getDefault().asyncExec(runnable);
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return getHostFileToRemoteFileAdapter().convertToRemoteFile(this, getDefaultContext(), fileToCreate.getParentRemoteFile(), newFile);
|
return getHostFileToRemoteFileAdapter().convertToRemoteFile(this, getDefaultContext(), fileToCreate.getParentRemoteFile(), newFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IRemoteFile createFolder(IRemoteFile folderToCreate, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException
|
public IRemoteFile createFolder(IRemoteFile folderToCreate, IProgressMonitor monitor) throws SystemMessageException
|
||||||
{
|
{
|
||||||
IFileService service = getFileService();
|
IFileService service = getFileService();
|
||||||
String parent = folderToCreate.getParentPath();
|
String parent = folderToCreate.getParentPath();
|
||||||
String name = folderToCreate.getName();
|
String name = folderToCreate.getName();
|
||||||
IHostFile newFolder = null;
|
IHostFile newFolder = service.createFolder(parent, name, monitor);
|
||||||
try
|
|
||||||
{
|
|
||||||
newFolder = service.createFolder(parent, name, monitor);
|
|
||||||
}
|
|
||||||
catch (SystemMessageException e)
|
|
||||||
{
|
|
||||||
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), e.getSystemMessage());
|
|
||||||
dlg.open();
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return getHostFileToRemoteFileAdapter().convertToRemoteFile(this, getDefaultContext(), folderToCreate.getParentRemoteFile(), newFolder);
|
return getHostFileToRemoteFileAdapter().convertToRemoteFile(this, getDefaultContext(), folderToCreate.getParentRemoteFile(), newFolder);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IRemoteFile createFolders(IRemoteFile folderToCreate, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException
|
public IRemoteFile createFolders(IRemoteFile folderToCreate, IProgressMonitor monitor) throws SystemMessageException
|
||||||
{
|
{
|
||||||
return createFolder(folderToCreate, monitor);
|
return createFolder(folderToCreate, monitor);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean delete(IRemoteFile folderOrFile, IProgressMonitor monitor) throws RemoteFolderNotEmptyException, RemoteFileSecurityException, RemoteFileIOException
|
public boolean delete(IRemoteFile folderOrFile, IProgressMonitor monitor) throws SystemMessageException
|
||||||
{
|
{
|
||||||
boolean result = false;
|
|
||||||
IFileService service = getFileService();
|
IFileService service = getFileService();
|
||||||
String parent = folderOrFile.getParentPath();
|
String parent = folderOrFile.getParentPath();
|
||||||
String name = folderOrFile.getName();
|
String name = folderOrFile.getName();
|
||||||
try
|
boolean result = service.delete(parent, name, monitor);
|
||||||
{
|
folderOrFile.markStale(true);
|
||||||
result = service.delete(parent, name, monitor);
|
|
||||||
folderOrFile.markStale(true);
|
|
||||||
}
|
|
||||||
catch (SystemMessageException e)
|
|
||||||
{
|
|
||||||
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), e.getSystemMessage());
|
|
||||||
dlg.open();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean deleteBatch(IRemoteFile[] folderOrFiles, IProgressMonitor monitor) throws RemoteFolderNotEmptyException, RemoteFileSecurityException, RemoteFileIOException
|
public boolean deleteBatch(IRemoteFile[] folderOrFiles, IProgressMonitor monitor) throws SystemMessageException
|
||||||
{
|
{
|
||||||
boolean result = false;
|
|
||||||
String[] parents = new String[folderOrFiles.length];
|
String[] parents = new String[folderOrFiles.length];
|
||||||
String[] names = new String[folderOrFiles.length];
|
String[] names = new String[folderOrFiles.length];
|
||||||
for (int i = 0; i < folderOrFiles.length; i++)
|
for (int i = 0; i < folderOrFiles.length; i++)
|
||||||
|
@ -685,95 +593,46 @@ public final class FileServiceSubSystem extends RemoteFileSubSystem implements I
|
||||||
removeCachedRemoteFile(folderOrFiles[i]);
|
removeCachedRemoteFile(folderOrFiles[i]);
|
||||||
}
|
}
|
||||||
IFileService service = getFileService();
|
IFileService service = getFileService();
|
||||||
try
|
return service.deleteBatch(parents, names, monitor);
|
||||||
{
|
|
||||||
result = service.deleteBatch(parents, names, monitor);
|
|
||||||
}
|
|
||||||
catch (SystemMessageException e)
|
|
||||||
{
|
|
||||||
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), e.getSystemMessage());
|
|
||||||
dlg.open();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean rename(IRemoteFile folderOrFile, String newName, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException
|
public boolean rename(IRemoteFile folderOrFile, String newName, IProgressMonitor monitor) throws SystemMessageException
|
||||||
{
|
{
|
||||||
boolean result = false;
|
|
||||||
removeCachedRemoteFile(folderOrFile);
|
removeCachedRemoteFile(folderOrFile);
|
||||||
IFileService service = getFileService();
|
IFileService service = getFileService();
|
||||||
String srcParent = folderOrFile.getParentPath();
|
String srcParent = folderOrFile.getParentPath();
|
||||||
String oldName = folderOrFile.getName();
|
String oldName = folderOrFile.getName();
|
||||||
String newPath = srcParent + folderOrFile.getSeparator() + newName;
|
String newPath = srcParent + folderOrFile.getSeparator() + newName;
|
||||||
try
|
boolean result = service.rename(srcParent, oldName, newName, monitor);
|
||||||
{
|
folderOrFile.getHostFile().renameTo(newPath);
|
||||||
result = service.rename(srcParent, oldName, newName, monitor);
|
|
||||||
folderOrFile.getHostFile().renameTo(newPath);
|
|
||||||
}
|
|
||||||
catch (SystemMessageException e)
|
|
||||||
{
|
|
||||||
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), e.getSystemMessage());
|
|
||||||
dlg.open();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean move(IRemoteFile sourceFolderOrFile, IRemoteFile targetFolder, String newName, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException
|
public boolean move(IRemoteFile sourceFolderOrFile, IRemoteFile targetFolder, String newName, IProgressMonitor monitor) throws SystemMessageException
|
||||||
{
|
{
|
||||||
boolean result = false;
|
|
||||||
IFileService service = getFileService();
|
IFileService service = getFileService();
|
||||||
String srcParent = sourceFolderOrFile.getParentPath();
|
String srcParent = sourceFolderOrFile.getParentPath();
|
||||||
String srcName = sourceFolderOrFile.getName();
|
String srcName = sourceFolderOrFile.getName();
|
||||||
String tgtParent = targetFolder.getAbsolutePath();
|
String tgtParent = targetFolder.getAbsolutePath();
|
||||||
try
|
removeCachedRemoteFile(sourceFolderOrFile);
|
||||||
{
|
boolean result = service.move(srcParent, srcName, tgtParent, newName, monitor);
|
||||||
removeCachedRemoteFile(sourceFolderOrFile);
|
sourceFolderOrFile.markStale(true);
|
||||||
result = service.move(srcParent, srcName, tgtParent, newName, monitor);
|
targetFolder.markStale(true);
|
||||||
sourceFolderOrFile.markStale(true);
|
|
||||||
targetFolder.markStale(true);
|
|
||||||
}
|
|
||||||
catch (SystemMessageException e)
|
|
||||||
{
|
|
||||||
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), e.getSystemMessage());
|
|
||||||
dlg.open();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean setLastModified(IRemoteFile folderOrFile, long newDate, IProgressMonitor monitor) throws SystemMessageException
|
||||||
public boolean setLastModified(IRemoteFile folderOrFile, long newDate, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException
|
|
||||||
{
|
{
|
||||||
String name = folderOrFile.getName();
|
String name = folderOrFile.getName();
|
||||||
String parent = folderOrFile.getParentPath();
|
String parent = folderOrFile.getParentPath();
|
||||||
try
|
return _hostFileService.setLastModified(parent, name, newDate, monitor);
|
||||||
{
|
|
||||||
return _hostFileService.setLastModified(parent, name, newDate, monitor);
|
|
||||||
}
|
|
||||||
catch (SystemMessageException e)
|
|
||||||
{
|
|
||||||
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), e.getSystemMessage());
|
|
||||||
dlg.open();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean setReadOnly(IRemoteFile folderOrFile, boolean readOnly, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException
|
public boolean setReadOnly(IRemoteFile folderOrFile, boolean readOnly, IProgressMonitor monitor) throws SystemMessageException
|
||||||
{
|
{
|
||||||
String name = folderOrFile.getName();
|
String name = folderOrFile.getName();
|
||||||
String parent = folderOrFile.getParentPath();
|
String parent = folderOrFile.getParentPath();
|
||||||
try
|
return _hostFileService.setReadOnly(parent, name, readOnly, monitor);
|
||||||
{
|
|
||||||
return _hostFileService.setReadOnly(parent, name, readOnly, monitor);
|
|
||||||
}
|
|
||||||
catch (SystemMessageException e)
|
|
||||||
{
|
|
||||||
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), e.getSystemMessage());
|
|
||||||
dlg.open();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ILanguageUtilityFactory getLanguageUtilityFactory()
|
public ILanguageUtilityFactory getLanguageUtilityFactory()
|
||||||
|
@ -886,18 +745,12 @@ public final class FileServiceSubSystem extends RemoteFileSubSystem implements I
|
||||||
* @see RemoteFileSubSystem#getRemoteEncoding()
|
* @see RemoteFileSubSystem#getRemoteEncoding()
|
||||||
*/
|
*/
|
||||||
public String getRemoteEncoding() {
|
public String getRemoteEncoding() {
|
||||||
String encoding = null;
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
encoding = getFileService().getEncoding(null);
|
return getFileService().getEncoding(null);
|
||||||
|
} catch (SystemMessageException e) {
|
||||||
|
SystemBasePlugin.logMessage(e.getSystemMessage());
|
||||||
}
|
}
|
||||||
catch (SystemMessageException e) {
|
return super.getRemoteEncoding();
|
||||||
SystemMessageDialog dlg = new SystemMessageDialog(getShell(), e.getSystemMessage());
|
|
||||||
dlg.open();
|
|
||||||
encoding = super.getRemoteEncoding();
|
|
||||||
}
|
|
||||||
|
|
||||||
return encoding;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
|
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
|
||||||
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
|
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
|
||||||
|
* Martin Oberhuber (Wind River) - [183824] Forward SystemMessageException from IRemoteFileSubsystem
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.subsystems.files.core.subsystems;
|
package org.eclipse.rse.subsystems.files.core.subsystems;
|
||||||
|
@ -27,9 +28,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
|
||||||
import org.eclipse.rse.core.model.SystemRemoteResourceSet;
|
import org.eclipse.rse.core.model.SystemRemoteResourceSet;
|
||||||
import org.eclipse.rse.core.subsystems.ISubSystem;
|
import org.eclipse.rse.core.subsystems.ISubSystem;
|
||||||
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
|
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
|
||||||
import org.eclipse.rse.services.files.RemoteFileIOException;
|
import org.eclipse.rse.services.files.RemoteFileException;
|
||||||
import org.eclipse.rse.services.files.RemoteFileSecurityException;
|
|
||||||
import org.eclipse.rse.services.files.RemoteFolderNotEmptyException;
|
|
||||||
import org.eclipse.rse.services.search.IHostSearchResultConfiguration;
|
import org.eclipse.rse.services.search.IHostSearchResultConfiguration;
|
||||||
import org.eclipse.rse.subsystems.files.core.ILanguageUtilityFactory;
|
import org.eclipse.rse.subsystems.files.core.ILanguageUtilityFactory;
|
||||||
|
|
||||||
|
@ -45,10 +44,6 @@ import org.eclipse.rse.subsystems.files.core.ILanguageUtilityFactory;
|
||||||
* The idea is to encourage a common API and GUI layer that works
|
* The idea is to encourage a common API and GUI layer that works
|
||||||
* with any remote unix-like file system on any remote operating system.
|
* with any remote unix-like file system on any remote operating system.
|
||||||
*/
|
*/
|
||||||
/**
|
|
||||||
* @lastgen interface RemoteFileSubSystem extends SubSystem {}
|
|
||||||
*/
|
|
||||||
|
|
||||||
public interface IRemoteFileSubSystem extends ISubSystem {
|
public interface IRemoteFileSubSystem extends ISubSystem {
|
||||||
|
|
||||||
// ----------------------
|
// ----------------------
|
||||||
|
@ -191,6 +186,7 @@ public interface IRemoteFileSubSystem extends ISubSystem {
|
||||||
* @param monitor the progress monitor
|
* @param monitor the progress monitor
|
||||||
*/
|
*/
|
||||||
public IRemoteFile[] listFiles(IRemoteFile parent, String fileNameFilter, IRemoteFileContext context, IProgressMonitor monitor) throws SystemMessageException;
|
public IRemoteFile[] listFiles(IRemoteFile parent, String fileNameFilter, IRemoteFileContext context, IProgressMonitor monitor) throws SystemMessageException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given a search configuration, searches for its results.
|
* Given a search configuration, searches for its results.
|
||||||
* @param searchConfig a search configuration.
|
* @param searchConfig a search configuration.
|
||||||
|
@ -203,7 +199,6 @@ public interface IRemoteFileSubSystem extends ISubSystem {
|
||||||
*/
|
*/
|
||||||
public void cancelSearch(IHostSearchResultConfiguration searchConfig);
|
public void cancelSearch(IHostSearchResultConfiguration searchConfig);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given a folder or file, return its parent folder object.
|
* Given a folder or file, return its parent folder object.
|
||||||
* @param folderOrFile folder or file to return parent of.
|
* @param folderOrFile folder or file to return parent of.
|
||||||
|
@ -295,8 +290,11 @@ public interface IRemoteFileSubSystem extends ISubSystem {
|
||||||
*
|
*
|
||||||
* @param fileToCreate The object representing the file to be created.
|
* @param fileToCreate The object representing the file to be created.
|
||||||
* @return The same input object returned for convenience. Will throw exception if it fails.
|
* @return The same input object returned for convenience. Will throw exception if it fails.
|
||||||
|
* @throws SystemMessageException if an error occurs.
|
||||||
|
* Typically this would be one of those in the
|
||||||
|
* {@link RemoteFileException} family.
|
||||||
*/
|
*/
|
||||||
public IRemoteFile createFile(IRemoteFile fileToCreate, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException;
|
public IRemoteFile createFile(IRemoteFile fileToCreate, IProgressMonitor monitor) throws SystemMessageException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new folder, given its IRemoteFile object (these do not have to represent existing folders)
|
* Create a new folder, given its IRemoteFile object (these do not have to represent existing folders)
|
||||||
|
@ -312,8 +310,11 @@ public interface IRemoteFileSubSystem extends ISubSystem {
|
||||||
* @param folderToCreate The object representing the folder to be created.
|
* @param folderToCreate The object representing the folder to be created.
|
||||||
* @param monitor the progress monitor
|
* @param monitor the progress monitor
|
||||||
* @return The same input object returned for convenience. Will throw exception if it fails.
|
* @return The same input object returned for convenience. Will throw exception if it fails.
|
||||||
|
* @throws SystemMessageException if an error occurs.
|
||||||
|
* Typically this would be one of those in the
|
||||||
|
* {@link RemoteFileException} family.
|
||||||
*/
|
*/
|
||||||
public IRemoteFile createFolder(IRemoteFile folderToCreate, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException;
|
public IRemoteFile createFolder(IRemoteFile folderToCreate, IProgressMonitor monitor) throws SystemMessageException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given an IRemoteFile for a folder, this will create that folder and any missing parent folders in its path.
|
* Given an IRemoteFile for a folder, this will create that folder and any missing parent folders in its path.
|
||||||
|
@ -327,12 +328,13 @@ public interface IRemoteFileSubSystem extends ISubSystem {
|
||||||
* @see #getParentFolder(IRemoteFile, IProgressMonitor)
|
* @see #getParentFolder(IRemoteFile, IProgressMonitor)
|
||||||
*
|
*
|
||||||
* @param folderToCreate The object representing the folder to be created, along with its parents.
|
* @param folderToCreate The object representing the folder to be created, along with its parents.
|
||||||
* @param monitor the progress monitr
|
* @param monitor the progress monitor
|
||||||
* @return The same input object returned for convenience. Will throw exception if it fails.
|
* @return The same input object returned for convenience. Will throw exception if it fails.
|
||||||
|
* @throws SystemMessageException if an error occurs.
|
||||||
|
* Typically this would be one of those in the
|
||||||
|
* {@link RemoteFileException} family.
|
||||||
*/
|
*/
|
||||||
public IRemoteFile createFolders(IRemoteFile folderToCreate, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException;
|
public IRemoteFile createFolders(IRemoteFile folderToCreate, IProgressMonitor monitor) throws SystemMessageException;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete the given remote file or folder.
|
* Delete the given remote file or folder.
|
||||||
|
@ -343,8 +345,11 @@ public interface IRemoteFileSubSystem extends ISubSystem {
|
||||||
* @param folderOrFile represents the object to be deleted.
|
* @param folderOrFile represents the object to be deleted.
|
||||||
* @param monitor progressMonitor
|
* @param monitor progressMonitor
|
||||||
* @return false if the given folder/file didn't exist to begin with, else true. Throws an exception if anything fails.
|
* @return false if the given folder/file didn't exist to begin with, else true. Throws an exception if anything fails.
|
||||||
|
* @throws SystemMessageException if an error occurs.
|
||||||
|
* Typically this would be one of those in the
|
||||||
|
* {@link RemoteFileException} family.
|
||||||
*/
|
*/
|
||||||
public boolean delete(IRemoteFile folderOrFile, IProgressMonitor monitor) throws RemoteFolderNotEmptyException, RemoteFileSecurityException, RemoteFileIOException;
|
public boolean delete(IRemoteFile folderOrFile, IProgressMonitor monitor) throws SystemMessageException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete the given batch of remote file or folder.
|
* Delete the given batch of remote file or folder.
|
||||||
|
@ -356,20 +361,24 @@ public interface IRemoteFileSubSystem extends ISubSystem {
|
||||||
* @param folderOrFiles represents the objects to be deleted.
|
* @param folderOrFiles represents the objects to be deleted.
|
||||||
* @param monitor progressMonitor
|
* @param monitor progressMonitor
|
||||||
* @return false if any of the given folder/file dont exist to begin with, else true. Throws an exception if anything fails.
|
* @return false if any of the given folder/file dont exist to begin with, else true. Throws an exception if anything fails.
|
||||||
|
* @throws SystemMessageException if an error occurs.
|
||||||
|
* Typically this would be one of those in the
|
||||||
|
* {@link RemoteFileException} family.
|
||||||
*/
|
*/
|
||||||
public boolean deleteBatch(IRemoteFile[] folderOrFiles, IProgressMonitor monitor) throws RemoteFolderNotEmptyException, RemoteFileSecurityException, RemoteFileIOException;
|
public boolean deleteBatch(IRemoteFile[] folderOrFiles, IProgressMonitor monitor) throws SystemMessageException;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Rename the given remote file or folder. This renames it in memory and, iff it exists, on disk.
|
* Rename the given remote file or folder. This renames it in memory and, iff it exists, on disk.
|
||||||
* @param folderOrFile represents the object to be renamed.
|
* @param folderOrFile represents the object to be renamed.
|
||||||
* @param newName new name to give it.
|
* @param newName new name to give it.
|
||||||
* @param monitor the progress monitor
|
* @param monitor the progress monitor
|
||||||
* @return false if the given folder/file didn't exist on disk (still renamed in memory), else true. Throws an exception if anything fails.
|
* @return false if the given folder/file didn't exist on disk (still renamed in memory), else true. Throws an exception if anything fails.
|
||||||
|
* @throws SystemMessageException if an error occurs.
|
||||||
|
* Typically this would be one of those in the
|
||||||
|
* {@link RemoteFileException} family.
|
||||||
*/
|
*/
|
||||||
public boolean rename(IRemoteFile folderOrFile, String newName, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException;
|
public boolean rename(IRemoteFile folderOrFile, String newName, IProgressMonitor monitor) throws SystemMessageException;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Move a file or folder to a new target parent folder.
|
* Move a file or folder to a new target parent folder.
|
||||||
*
|
*
|
||||||
|
@ -377,9 +386,12 @@ public interface IRemoteFileSubSystem extends ISubSystem {
|
||||||
* @param targetFolder The folder to move to. No guarantee it is on the same system, so be sure to check getSystemConnection()!
|
* @param targetFolder The folder to move to. No guarantee it is on the same system, so be sure to check getSystemConnection()!
|
||||||
* @param newName The new name for the moved file or folder
|
* @param newName The new name for the moved file or folder
|
||||||
* @param monitor progress monitor
|
* @param monitor progress monitor
|
||||||
* @return false true iff the move succeeded
|
* @return true if the move succeeded
|
||||||
|
* @throws SystemMessageException if an error occurs.
|
||||||
|
* Typically this would be one of those in the
|
||||||
|
* {@link RemoteFileException} family.
|
||||||
*/
|
*/
|
||||||
public boolean move(IRemoteFile sourceFolderOrFile, IRemoteFile targetFolder, String newName,IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException;
|
public boolean move(IRemoteFile sourceFolderOrFile, IRemoteFile targetFolder, String newName,IProgressMonitor monitor) throws SystemMessageException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the last modified date for the given file or folder. Like a Unix "touch" operation.
|
* Set the last modified date for the given file or folder. Like a Unix "touch" operation.
|
||||||
|
@ -387,21 +399,25 @@ public interface IRemoteFileSubSystem extends ISubSystem {
|
||||||
* @param folderOrFile represents the object to be renamed.
|
* @param folderOrFile represents the object to be renamed.
|
||||||
* @param newDate new date, in milliseconds from epoch, to assign.
|
* @param newDate new date, in milliseconds from epoch, to assign.
|
||||||
* @param monitor the progress monitor
|
* @param monitor the progress monitor
|
||||||
*
|
|
||||||
* @return false if the given folder/file didn't exist on disk (operation fails), else true. Throws an exception if anything fails.
|
* @return false if the given folder/file didn't exist on disk (operation fails), else true. Throws an exception if anything fails.
|
||||||
|
* @throws SystemMessageException if an error occurs.
|
||||||
|
* Typically this would be one of those in the
|
||||||
|
* {@link RemoteFileException} family.
|
||||||
*/
|
*/
|
||||||
public boolean setLastModified(IRemoteFile folderOrFile, long newDate, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException;
|
public boolean setLastModified(IRemoteFile folderOrFile, long newDate, IProgressMonitor monitor) throws SystemMessageException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set a files readonly permissions.
|
* Set a files read-only permissions.
|
||||||
* Folder or file must exist on disk for this to succeed.
|
* Folder or file must exist on disk for this to succeed.
|
||||||
* @param folderOrFile represents the object to be renamed.
|
* @param folderOrFile represents the object to be renamed.
|
||||||
* @param readOnly whether to set it to be readonly or not
|
* @param readOnly whether to set it to be read-only or not
|
||||||
* @param monitor the progress monitor
|
* @param monitor the progress monitor
|
||||||
*
|
|
||||||
* @return false if the given folder/file didn't exist on disk (operation fails), else true. Throws an exception if anything fails.
|
* @return false if the given folder/file didn't exist on disk (operation fails), else true. Throws an exception if anything fails.
|
||||||
|
* @throws SystemMessageException if an error occurs.
|
||||||
|
* Typically this would be one of those in the
|
||||||
|
* {@link RemoteFileException} family.
|
||||||
*/
|
*/
|
||||||
public boolean setReadOnly(IRemoteFile folderOrFile, boolean readOnly, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException;
|
public boolean setReadOnly(IRemoteFile folderOrFile, boolean readOnly, IProgressMonitor monitor) throws SystemMessageException;
|
||||||
|
|
||||||
|
|
||||||
// ----------------------------
|
// ----------------------------
|
||||||
|
@ -411,72 +427,92 @@ public interface IRemoteFileSubSystem extends ISubSystem {
|
||||||
// Beginning of methods for downloading remote files from the server
|
// Beginning of methods for downloading remote files from the server
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Copy a file or folder to a new target parent folder.
|
* Copy a file or folder to a new target parent folder.
|
||||||
*
|
*
|
||||||
* @param sourceFolderOrFile The file or folder to copy
|
* @param sourceFolderOrFile The file or folder to copy
|
||||||
* @param targetFolder The folder to copy to. No guarantee it is on the same system, so be sure to check getSystemConnection()!
|
* @param targetFolder The folder to copy to. No guarantee it is on the same system, so be sure to check getSystemConnection()!
|
||||||
* @param newName The new name for the copied file or folder
|
* @param newName The new name for the copied file or folder
|
||||||
* @return false true iff the copy succeeded
|
* @param monitor progress monitor
|
||||||
*/
|
* @return true if the copy succeeded
|
||||||
public boolean copy(IRemoteFile sourceFolderOrFile, IRemoteFile targetFolder, String newName, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException;
|
* @throws SystemMessageException if an error occurs.
|
||||||
|
* Typically this would be one of those in the
|
||||||
|
* {@link RemoteFileException} family.
|
||||||
|
*/
|
||||||
|
public boolean copy(IRemoteFile sourceFolderOrFile, IRemoteFile targetFolder, String newName, IProgressMonitor monitor) throws SystemMessageException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Copy a set of remote files or folders to a new target parent folder. Precondition: Sources and target must all be on the same system!
|
* Copy a set of remote files or folders to a new target parent folder. Precondition: Sources and target must all be on the same system!
|
||||||
* @param sourceFolderOrFile The file or folder to copy
|
* @param sourceFolderOrFile The file or folder to copy
|
||||||
* @param targetFolder The folder to copy to.
|
* @param targetFolder The folder to copy to.
|
||||||
* @return false true iff all copies succeeded
|
* @param monitor progress monitor
|
||||||
|
* @return true if all copies succeeded
|
||||||
|
* @throws SystemMessageException if an error occurs.
|
||||||
|
* Typically this would be one of those in the
|
||||||
|
* {@link RemoteFileException} family.
|
||||||
*/
|
*/
|
||||||
public boolean copyBatch(IRemoteFile[] sourceFolderOrFile, IRemoteFile targetFolder, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException;
|
public boolean copyBatch(IRemoteFile[] sourceFolderOrFile, IRemoteFile targetFolder, IProgressMonitor monitor) throws SystemMessageException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the remote file and save it locally. The file is saved in the encoding
|
* Get the remote file and save it locally.
|
||||||
* specified. Two exceptions: if the remote file is binary, encoding does not apply.
|
*
|
||||||
* If the remote file is a XML file, then it will be copied to local in the encoding
|
* The file is saved in the encoding specified, with two exceptions:
|
||||||
* specified in the XML declaration, or as determined from the XML specification.
|
* <ul>
|
||||||
|
* <li>If the remote file is binary, encoding does not apply.</li>
|
||||||
|
* <li>If the remote file is a XML file, then it will be
|
||||||
|
* copied to local in the encoding specified in the XML
|
||||||
|
* declaration, or as determined from the XML specification.</li>
|
||||||
|
* </ul>
|
||||||
* @param source remote file that represents the file to be obtained
|
* @param source remote file that represents the file to be obtained
|
||||||
* @param destination the absolute path of the local file
|
* @param destination the absolute path of the local file
|
||||||
* @param encoding the encoding of the local file
|
* @param encoding the encoding of the local file
|
||||||
* @param monitor the progress monitor
|
* @param monitor the progress monitor
|
||||||
|
* @throws SystemMessageException if an error occurs.
|
||||||
|
* Typically this would be one of those in the
|
||||||
|
* {@link RemoteFileException} family.
|
||||||
*/
|
*/
|
||||||
public void download(IRemoteFile source, String destination, String encoding, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException;
|
public void download(IRemoteFile source, String destination, String encoding, IProgressMonitor monitor) throws SystemMessageException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Put the local copy of the remote file back to the remote location. The file
|
* Put the local copy of the remote file back to the remote location.
|
||||||
* is assumed to be in the encoding specified.
|
*
|
||||||
* Two exceptions: if the local file is binary, encoding does not apply.
|
* The file is assumed to be in the encoding specified, with
|
||||||
* If the local file is a XML file, then it will be copied to remote in the encoding
|
* two exceptions:
|
||||||
* specified in the XML declaration, or as determined from the XML specification.
|
* <ul>
|
||||||
|
* <li>If the local file is binary, encoding does not apply.</li>
|
||||||
|
* <li>If the local file is a XML file, then it will be copied
|
||||||
|
* to remote in the encoding specified in the XML declaration,
|
||||||
|
* or as determined from the XML specification.</li>
|
||||||
|
* </ul>
|
||||||
* @param source the absolute path of the local copy
|
* @param source the absolute path of the local copy
|
||||||
* @param destination remote file that represents the file on the server
|
* @param destination remote file that represents the file on the server
|
||||||
* @param encoding the encoding of the local copy
|
* @param encoding the encoding of the local copy
|
||||||
* @param monitor the progress monitor
|
* @param monitor the progress monitor
|
||||||
|
* @throws SystemMessageException if an error occurs.
|
||||||
|
* Typically this would be one of those in the
|
||||||
|
* {@link RemoteFileException} family.
|
||||||
*/
|
*/
|
||||||
public void upload(String source, IRemoteFile destination, String encoding, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException;
|
public void upload(String source, IRemoteFile destination, String encoding, IProgressMonitor monitor) throws SystemMessageException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Put the local copy of the remote file back to the remote location. The file
|
* Put the local copy of the remote file back to the remote location.
|
||||||
* is assumed to be in the encoding of the local operating system.
|
*
|
||||||
* Two exceptions: if the local file is binary, encoding does not apply.
|
* The file is assumed to be in the encoding of the local operating system,
|
||||||
* If the local file is a XML file, then it will be copied to remote in the encoding
|
* with two exceptions:
|
||||||
* specified in the XML declaration, or as determined from the XML specification.
|
* <ul>
|
||||||
|
* <li>If the local file is binary, encoding does not apply.</li>
|
||||||
|
* <li>If the local file is a XML file, then it will be copied
|
||||||
|
* to remote in the encoding specified in the XML declaration,
|
||||||
|
* or as determined from the XML specification.</li>
|
||||||
|
* </ul>
|
||||||
* @param source the absolute path of the local copy
|
* @param source the absolute path of the local copy
|
||||||
* @param srcEncoding the encoding of the local copy
|
* @param srcEncoding the encoding of the local copy
|
||||||
* @param remotePath remote file that represents the file on the server
|
* @param remotePath remote file that represents the file on the server
|
||||||
* @param rmtEncoding the encoding of the remote file.
|
* @param rmtEncoding the encoding of the remote file.
|
||||||
|
* @throws SystemMessageException if an error occurs.
|
||||||
|
* Typically this would be one of those in the
|
||||||
|
* {@link RemoteFileException} family.
|
||||||
*/
|
*/
|
||||||
public void upload(String source, String srcEncoding, String remotePath, String rmtEncoding, IProgressMonitor monitor) throws RemoteFileSecurityException, RemoteFileIOException;
|
public void upload(String source, String srcEncoding, String remotePath, String rmtEncoding, IProgressMonitor monitor) throws SystemMessageException;
|
||||||
|
|
||||||
/**
|
|
||||||
* @generated This field/method will be replaced during code generation
|
|
||||||
* @return The value of the HomeFolder attribute
|
|
||||||
*/
|
|
||||||
String getHomeFolder();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @generated This field/method will be replaced during code generation
|
|
||||||
* @param value The new value of the HomeFolder attribute
|
|
||||||
*/
|
|
||||||
void setHomeFolder(String value);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a language utility factory associated with this subsystem.
|
* Returns a language utility factory associated with this subsystem.
|
||||||
|
@ -491,7 +527,6 @@ public interface IRemoteFileSubSystem extends ISubSystem {
|
||||||
*/
|
*/
|
||||||
public int getUnusedPort();
|
public int getUnusedPort();
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a list of roots/drives on the remote system.
|
* Return a list of roots/drives on the remote system.
|
||||||
* This version is called by RemoteFileSubSystemImpl's resolveFilterString(s)
|
* This version is called by RemoteFileSubSystemImpl's resolveFilterString(s)
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
* Martin Oberhuber (Wind River) - Fix 162962 - recursive removeCachedRemoteFile()
|
* Martin Oberhuber (Wind River) - Fix 162962 - recursive removeCachedRemoteFile()
|
||||||
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
|
* Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core
|
||||||
* Martin Oberhuber (Wind River) - [182454] improve getAbsoluteName() documentation
|
* Martin Oberhuber (Wind River) - [182454] improve getAbsoluteName() documentation
|
||||||
|
* Martin Oberhuber (Wind River) - [183824] Forward SystemMessageException from IRemoteFileSubsystem
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.subsystems.files.core.subsystems;
|
package org.eclipse.rse.subsystems.files.core.subsystems;
|
||||||
|
@ -25,6 +26,7 @@ import java.io.BufferedReader;
|
||||||
import java.io.DataInputStream;
|
import java.io.DataInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.net.UnknownHostException;
|
import java.net.UnknownHostException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -88,16 +90,6 @@ import org.eclipse.ui.dialogs.PropertyPage;
|
||||||
|
|
||||||
public abstract class RemoteFileSubSystem extends SubSystem implements IRemoteFileSubSystem, ICommunicationsListener
|
public abstract class RemoteFileSubSystem extends SubSystem implements IRemoteFileSubSystem, ICommunicationsListener
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* The default value of the '{@link #getHomeFolder() <em>Home Folder</em>}' attribute.
|
|
||||||
* <!-- begin-user-doc -->
|
|
||||||
* <!-- end-user-doc -->
|
|
||||||
* @see #getHomeFolder()
|
|
||||||
* @generated
|
|
||||||
* @ordered
|
|
||||||
*/
|
|
||||||
protected static final String HOME_FOLDER_EDEFAULT = null;
|
|
||||||
|
|
||||||
public boolean osVarsSet, osWindows, osWindows95, osWindowsNT;
|
public boolean osVarsSet, osWindows, osWindows95, osWindowsNT;
|
||||||
public String osName, osCmdShell;
|
public String osName, osCmdShell;
|
||||||
// variables to affect the list method for subsetting folder contents
|
// variables to affect the list method for subsetting folder contents
|
||||||
|
@ -112,21 +104,13 @@ public abstract class RemoteFileSubSystem extends SubSystem implements IRemoteFi
|
||||||
|
|
||||||
protected ArrayList _searchHistory;
|
protected ArrayList _searchHistory;
|
||||||
|
|
||||||
// all created IRemoteFiles mapped in cache to quick retreival
|
// all created IRemoteFiles mapped in cache to quick retrieval
|
||||||
protected HashMap _cachedRemoteFiles = new HashMap();
|
protected HashMap _cachedRemoteFiles = new HashMap();
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @generated This field/method will be replaced during code generation.
|
* Default constructor. Do not call directly! Rather, use the mof generated factory method to create.
|
||||||
|
* After instantiation, be sure to call {@link #setSubSystemConfiguration(ISubSystemConfiguration)}.
|
||||||
*/
|
*/
|
||||||
/**
|
|
||||||
* @generated This field/method will be replaced during code generation.
|
|
||||||
*/
|
|
||||||
protected String homeFolder = HOME_FOLDER_EDEFAULT;
|
|
||||||
/**
|
|
||||||
* Default constructor. Do not call directly! Rather, use the mof generated factory method to create.
|
|
||||||
* After instantiation, be sure to call {@link #setSubSystemConfiguration(ISubSystemConfiguration)}.
|
|
||||||
*/
|
|
||||||
public RemoteFileSubSystem(IHost host, IConnectorService connectorService)
|
public RemoteFileSubSystem(IHost host, IConnectorService connectorService)
|
||||||
{
|
{
|
||||||
super(host, connectorService);
|
super(host, connectorService);
|
||||||
|
@ -833,7 +817,7 @@ public abstract class RemoteFileSubSystem extends SubSystem implements IRemoteFi
|
||||||
* Do one filter string relative resolve
|
* Do one filter string relative resolve
|
||||||
*/
|
*/
|
||||||
protected Object[] internalResolveOneFilterString(IProgressMonitor monitor, Object parent, RemoteFileFilterString fs, boolean sort)
|
protected Object[] internalResolveOneFilterString(IProgressMonitor monitor, Object parent, RemoteFileFilterString fs, boolean sort)
|
||||||
throws java.lang.reflect.InvocationTargetException, java.lang.InterruptedException, SystemMessageException
|
throws InvocationTargetException, InterruptedException, SystemMessageException
|
||||||
{
|
{
|
||||||
currFilterString = fs;
|
currFilterString = fs;
|
||||||
String filterString = fs.toStringNoSwitches();
|
String filterString = fs.toStringNoSwitches();
|
||||||
|
@ -958,9 +942,6 @@ public abstract class RemoteFileSubSystem extends SubSystem implements IRemoteFi
|
||||||
return listFoldersAndFiles(parent, fileNameFilter, context, monitor);
|
return listFoldersAndFiles(parent, fileNameFilter, context, monitor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given a folder or file, return its parent folder name, fully qualified
|
* Given a folder or file, return its parent folder name, fully qualified
|
||||||
* @param folderOrFile folder or file to return parent of.
|
* @param folderOrFile folder or file to return parent of.
|
||||||
|
@ -970,8 +951,7 @@ public abstract class RemoteFileSubSystem extends SubSystem implements IRemoteFi
|
||||||
return folderOrFile.getParentPath();
|
return folderOrFile.getParentPath();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
/**
|
|
||||||
* @see org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem#getRemoteSearchResultObject(java.lang.String)
|
* @see org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem#getRemoteSearchResultObject(java.lang.String)
|
||||||
*/
|
*/
|
||||||
public IRemoteSearchResult getRemoteSearchResultObject(String key) throws SystemMessageException {
|
public IRemoteSearchResult getRemoteSearchResultObject(String key) throws SystemMessageException {
|
||||||
|
@ -1245,22 +1225,6 @@ public abstract class RemoteFileSubSystem extends SubSystem implements IRemoteFi
|
||||||
return rc;
|
return rc;
|
||||||
} // end runCmd method
|
} // end runCmd method
|
||||||
|
|
||||||
/**
|
|
||||||
* @generated This field/method will be replaced during code generation
|
|
||||||
*/
|
|
||||||
public String getHomeFolder()
|
|
||||||
{
|
|
||||||
return homeFolder;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @generated This field/method will be replaced during code generation.
|
|
||||||
*/
|
|
||||||
public void setHomeFolder(String newHomeFolder)
|
|
||||||
{
|
|
||||||
homeFolder = newHomeFolder;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void initializeSubSystem(IProgressMonitor monitor)
|
public void initializeSubSystem(IProgressMonitor monitor)
|
||||||
{
|
{
|
||||||
getConnectorService().addCommunicationsListener(this);
|
getConnectorService().addCommunicationsListener(this);
|
||||||
|
@ -1406,27 +1370,12 @@ public abstract class RemoteFileSubSystem extends SubSystem implements IRemoteFi
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @generated This field/method will be replaced during code generation.
|
|
||||||
*/
|
|
||||||
public String toString()
|
|
||||||
{
|
|
||||||
StringBuffer result = new StringBuffer(super.toString());
|
|
||||||
result.append(" (homeFolder: "); //$NON-NLS-1$
|
|
||||||
result.append(homeFolder);
|
|
||||||
result.append(')');
|
|
||||||
return result.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns -1 by default. Subclasses should override if necessary.
|
* Returns -1 by default. Subclasses should override if necessary.
|
||||||
* @see org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem#getUnusedPort()
|
* @see org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem#getUnusedPort()
|
||||||
*/
|
*/
|
||||||
public int getUnusedPort()
|
public int getUnusedPort()
|
||||||
{
|
{
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1492,7 +1441,8 @@ public abstract class RemoteFileSubSystem extends SubSystem implements IRemoteFi
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the local platform encoding by default. Subclasses should override to return the actual remote encoding.
|
* Returns the local platform encoding by default.
|
||||||
|
* Subclasses should override to return the actual remote encoding.
|
||||||
* @see org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem#getRemoteEncoding()
|
* @see org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem#getRemoteEncoding()
|
||||||
*/
|
*/
|
||||||
public String getRemoteEncoding() {
|
public String getRemoteEncoding() {
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
*
|
*
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
|
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
|
||||||
|
* Martin Oberhuber (Wind River) - [183824] Forward SystemMessageException from IRemoteFileSubsystem
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.internal.subsystems.files.dstore;
|
package org.eclipse.rse.internal.subsystems.files.dstore;
|
||||||
|
@ -26,6 +27,7 @@ import org.eclipse.dstore.extra.DomainEvent;
|
||||||
import org.eclipse.rse.core.subsystems.RemoteChildrenContentsType;
|
import org.eclipse.rse.core.subsystems.RemoteChildrenContentsType;
|
||||||
import org.eclipse.rse.internal.services.dstore.search.DStoreSearchResultConfiguration;
|
import org.eclipse.rse.internal.services.dstore.search.DStoreSearchResultConfiguration;
|
||||||
import org.eclipse.rse.services.clientserver.SystemSearchString;
|
import org.eclipse.rse.services.clientserver.SystemSearchString;
|
||||||
|
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
|
||||||
import org.eclipse.rse.services.search.IHostSearchConstants;
|
import org.eclipse.rse.services.search.IHostSearchConstants;
|
||||||
import org.eclipse.rse.services.search.IHostSearchResult;
|
import org.eclipse.rse.services.search.IHostSearchResult;
|
||||||
import org.eclipse.rse.services.search.IHostSearchResultSet;
|
import org.eclipse.rse.services.search.IHostSearchResultSet;
|
||||||
|
@ -35,6 +37,7 @@ import org.eclipse.rse.subsystems.files.core.servicesubsystem.OutputRefresh;
|
||||||
import org.eclipse.rse.subsystems.files.core.subsystems.IHostFileToRemoteFileAdapter;
|
import org.eclipse.rse.subsystems.files.core.subsystems.IHostFileToRemoteFileAdapter;
|
||||||
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
|
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
|
||||||
import org.eclipse.rse.subsystems.files.core.subsystems.RemoteSearchResultsContentsType;
|
import org.eclipse.rse.subsystems.files.core.subsystems.RemoteSearchResultsContentsType;
|
||||||
|
import org.eclipse.rse.ui.messages.SystemMessageDialog;
|
||||||
import org.eclipse.swt.widgets.Display;
|
import org.eclipse.swt.widgets.Display;
|
||||||
|
|
||||||
public class DStoreFileSubSystemSearchResultConfiguration extends DStoreSearchResultConfiguration
|
public class DStoreFileSubSystemSearchResultConfiguration extends DStoreSearchResultConfiguration
|
||||||
|
@ -103,6 +106,10 @@ public class DStoreFileSubSystemSearchResultConfiguration extends DStoreSearchRe
|
||||||
}
|
}
|
||||||
convertedResults[i] = remoteFile;
|
convertedResults[i] = remoteFile;
|
||||||
}
|
}
|
||||||
|
catch (SystemMessageException e)
|
||||||
|
{
|
||||||
|
SystemMessageDialog.displayMessage(e);
|
||||||
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/********************************************************************************
|
/********************************************************************************
|
||||||
* Copyright (c) 2002, 2006 IBM Corporation. All rights reserved.
|
* Copyright (c) 2002, 2007 IBM Corporation and others. All rights reserved.
|
||||||
* This program and the accompanying materials are made available under the terms
|
* This program and the accompanying materials are made available under the terms
|
||||||
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
|
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
|
||||||
* available at http://www.eclipse.org/legal/epl-v10.html
|
* available at http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
|
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
|
||||||
*
|
*
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* {Name} (company) - description of contribution.
|
* Martin Oberhuber (Wind River) - [183824] Forward SystemMessageException from IRemoteFileSubsystem
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.ui.messages;
|
package org.eclipse.rse.ui.messages;
|
||||||
|
@ -47,8 +47,6 @@ import org.eclipse.swt.widgets.Listener;
|
||||||
import org.eclipse.swt.widgets.Shell;
|
import org.eclipse.swt.widgets.Shell;
|
||||||
import org.eclipse.swt.widgets.Text;
|
import org.eclipse.swt.widgets.Text;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
public class SystemMessageDialog extends ErrorDialog implements Listener {
|
public class SystemMessageDialog extends ErrorDialog implements Listener {
|
||||||
|
@ -585,7 +583,7 @@ public class SystemMessageDialog extends ErrorDialog implements Listener {
|
||||||
*/
|
*/
|
||||||
public static Shell getDefaultShell()
|
public static Shell getDefaultShell()
|
||||||
{
|
{
|
||||||
return Display.getCurrent().getActiveShell();
|
return SystemBasePlugin.getActiveWorkbenchShell();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -627,17 +625,24 @@ public class SystemMessageDialog extends ErrorDialog implements Listener {
|
||||||
displayErrorMessage(shell,msg);
|
displayErrorMessage(shell,msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display this wrapped system message to the user
|
* Display this wrapped system message to the user
|
||||||
*/
|
*/
|
||||||
public static void displayMessage(org.eclipse.swt.widgets.Shell shell, SystemMessageException msgEx)
|
public static void displayMessage(Shell shell, SystemMessageException msgEx)
|
||||||
{
|
{
|
||||||
if (msgEx != null)
|
if (msgEx != null)
|
||||||
SystemMessageDialog.displayErrorMessage(shell, msgEx.getSystemMessage());
|
SystemMessageDialog.displayErrorMessage(shell, msgEx.getSystemMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display this wrapped system message to the user
|
||||||
|
*/
|
||||||
|
public static void displayMessage(SystemMessageException msgEx)
|
||||||
|
{
|
||||||
|
if (msgEx != null)
|
||||||
|
SystemMessageDialog.displayErrorMessage(getDefaultShell(), msgEx.getSystemMessage());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* For ease of use for simple host error messages that are xlated already.
|
* For ease of use for simple host error messages that are xlated already.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/********************************************************************************
|
/********************************************************************************
|
||||||
* Copyright (c) 2002, 2006 IBM Corporation. All rights reserved.
|
* Copyright (c) 2002, 2007 IBM Corporation and others. All rights reserved.
|
||||||
* This program and the accompanying materials are made available under the terms
|
* This program and the accompanying materials are made available under the terms
|
||||||
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
|
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
|
||||||
* available at http://www.eclipse.org/legal/epl-v10.html
|
* available at http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
|
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
|
||||||
*
|
*
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* {Name} (company) - description of contribution.
|
* Martin Oberhuber (Wind River) - [183824] Forward SystemMessageException from IRemoteFileSubsystem
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.core;
|
package org.eclipse.rse.core;
|
||||||
|
@ -78,11 +78,13 @@ public abstract class SystemBasePlugin extends AbstractUIPlugin
|
||||||
public static Shell getActiveWorkbenchShell() {
|
public static Shell getActiveWorkbenchShell() {
|
||||||
|
|
||||||
IWorkbenchWindow window = getActiveWorkbenchWindow();
|
IWorkbenchWindow window = getActiveWorkbenchWindow();
|
||||||
|
|
||||||
if (window != null) {
|
if (window != null) {
|
||||||
return window.getShell();
|
return window.getShell();
|
||||||
}
|
}
|
||||||
|
Display d = Display.getCurrent();
|
||||||
|
if (d!=null) return d.getActiveShell();
|
||||||
|
d = Display.getDefault();
|
||||||
|
if (d!=null) return d.getActiveShell();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue