1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-21 07:05:58 +02:00

[234045] [ftp] Errors while changing file permissions are not displayed to the user

This commit is contained in:
David McKnight 2008-07-09 19:14:09 +00:00
parent 3a247d06f7
commit 4c4214e61e

View file

@ -13,6 +13,7 @@
* David McKnight (IBM) - [209703] apply encoding and updating remote file when apply on property page * David McKnight (IBM) - [209703] apply encoding and updating remote file when apply on property page
* Martin Oberhuber (Wind River) - [234038] Force refresh IRemoteFile after changing permissions * Martin Oberhuber (Wind River) - [234038] Force refresh IRemoteFile after changing permissions
* David McKnight (IBM) - [234038] [files][refresh] Changing file permissions does not update property sheet or refresh tree * David McKnight (IBM) - [234038] [files][refresh] Changing file permissions does not update property sheet or refresh tree
* David McKnight (IBM) - [234045] [ftp] Errors while changing file permissions are not displayed to the user
*********************************************************************************/ *********************************************************************************/
package org.eclipse.rse.internal.files.ui.propertypages; package org.eclipse.rse.internal.files.ui.propertypages;
@ -27,10 +28,12 @@ import org.eclipse.rse.core.events.ISystemResourceChangeEvents;
import org.eclipse.rse.core.events.SystemResourceChangeEvent; import org.eclipse.rse.core.events.SystemResourceChangeEvent;
import org.eclipse.rse.core.model.ISystemRegistry; import org.eclipse.rse.core.model.ISystemRegistry;
import org.eclipse.rse.internal.files.ui.FileResources; import org.eclipse.rse.internal.files.ui.FileResources;
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
import org.eclipse.rse.services.files.IFilePermissionsService; import org.eclipse.rse.services.files.IFilePermissionsService;
import org.eclipse.rse.services.files.IHostFilePermissions; import org.eclipse.rse.services.files.IHostFilePermissions;
import org.eclipse.rse.services.files.PendingHostFilePermissions; import org.eclipse.rse.services.files.PendingHostFilePermissions;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile; import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
import org.eclipse.rse.ui.SystemBasePlugin;
import org.eclipse.rse.ui.SystemWidgetHelpers; import org.eclipse.rse.ui.SystemWidgetHelpers;
import org.eclipse.rse.ui.propertypages.SystemBasePropertyPage; import org.eclipse.rse.ui.propertypages.SystemBasePropertyPage;
import org.eclipse.swt.SWT; import org.eclipse.swt.SWT;
@ -270,70 +273,64 @@ public class SystemFilePermissionsPropertyPage extends SystemBasePropertyPage {
} }
if ((capabilities & IFilePermissionsService.FS_CAN_GET_PERMISSIONS) != 0){ if ((capabilities & IFilePermissionsService.FS_CAN_GET_PERMISSIONS) != 0){
_permissions = file.getPermissions();
if (_permissions == null || _permissions instanceof PendingHostFilePermissions){
Job deferredFetch = new Job(FileResources.MESSAGE_GETTING_PERMISSIONS)
{
public IStatus run(IProgressMonitor monitor){
try
{
_permissions = pService.getFilePermissions(rFile.getHostFile(), monitor);
try // notify change
{ Display.getDefault().asyncExec(new Runnable()
_permissions = file.getPermissions();
if (_permissions == null || _permissions instanceof PendingHostFilePermissions){
Job deferredFetch = new Job(FileResources.MESSAGE_GETTING_PERMISSIONS)
{
public IStatus run(IProgressMonitor monitor){
try
{ {
_permissions = pService.getFilePermissions(rFile.getHostFile(), monitor); public void run()
// notify change
Display.getDefault().asyncExec(new Runnable()
{ {
public void run() _userRead.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_USER_READ));
{ _userWrite.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_USER_WRITE));
_userRead.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_USER_READ)); _userExecute.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_USER_EXECUTE));
_userWrite.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_USER_WRITE)); _groupRead.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_GROUP_READ));
_userExecute.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_USER_EXECUTE)); _groupWrite.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_GROUP_WRITE));
_groupRead.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_GROUP_READ)); _groupExecute.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_GROUP_EXECUTE));
_groupWrite.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_GROUP_WRITE)); _otherRead.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_OTHER_READ));
_groupExecute.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_GROUP_EXECUTE)); _otherWrite.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_OTHER_WRITE));
_otherRead.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_OTHER_READ)); _otherExecute.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_OTHER_EXECUTE));
_otherWrite.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_OTHER_WRITE));
_otherExecute.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_OTHER_EXECUTE));
_owner = _permissions.getUserOwner(); _owner = _permissions.getUserOwner();
_group = _permissions.getGroupOwner(); _group = _permissions.getGroupOwner();
_userEntry.setText(_owner); _userEntry.setText(_owner);
_groupEntry.setText(_group); _groupEntry.setText(_group);
} }
}); });
}
catch (Exception e)
{
}
return Status.OK_STATUS;
} }
}; catch (SystemMessageException e)
deferredFetch.schedule(); {
} setMessage(e.getSystemMessage());
else { }
_userRead.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_USER_READ)); return Status.OK_STATUS;
_userWrite.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_USER_WRITE)); }
_userExecute.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_USER_EXECUTE)); };
_groupRead.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_GROUP_READ)); deferredFetch.schedule();
_groupWrite.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_GROUP_WRITE));
_groupExecute.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_GROUP_EXECUTE));
_otherRead.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_OTHER_READ));
_otherWrite.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_OTHER_WRITE));
_otherExecute.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_OTHER_EXECUTE));
_owner = _permissions.getUserOwner();
_group = _permissions.getGroupOwner();
_userEntry.setText(_owner);
_groupEntry.setText(_group);
}
} }
catch (Exception e){ else {
_userRead.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_USER_READ));
_userWrite.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_USER_WRITE));
_userExecute.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_USER_EXECUTE));
_groupRead.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_GROUP_READ));
_groupWrite.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_GROUP_WRITE));
_groupExecute.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_GROUP_EXECUTE));
_otherRead.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_OTHER_READ));
_otherWrite.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_OTHER_WRITE));
_otherExecute.setSelection(_permissions.getPermission(IHostFilePermissions.PERM_OTHER_EXECUTE));
_owner = _permissions.getUserOwner();
_group = _permissions.getGroupOwner();
_userEntry.setText(_owner);
_groupEntry.setText(_group);
} }
} }
else { else {
@ -415,8 +412,12 @@ public class SystemFilePermissionsPropertyPage extends SystemBasePropertyPage {
_permissions = newPermissions; _permissions = newPermissions;
} }
} }
catch (Exception e){ catch (SystemMessageException e){
setMessage(e.getSystemMessage());
}
catch (CloneNotSupportedException e){
// unexpected, not showing but logging
SystemBasePlugin.logError(e.getMessage());
} }
} }
} }
@ -458,7 +459,9 @@ public class SystemFilePermissionsPropertyPage extends SystemBasePropertyPage {
{ {
file = file.getParentRemoteFileSubSystem().getRemoteFileObject(file.getAbsolutePath(), new NullProgressMonitor()); file = file.getParentRemoteFileSubSystem().getRemoteFileObject(file.getAbsolutePath(), new NullProgressMonitor());
} }
catch (Exception e){ catch (SystemMessageException e){
// unexpected, logging but not showing user
SystemBasePlugin.logMessage(e.getSystemMessage());
} }
setElement((IAdaptable)file); setElement((IAdaptable)file);