From 3b97e86fccc64e6e5c1071b4919f2eca81ae1762 Mon Sep 17 00:00:00 2001 From: David McKnight Date: Fri, 17 Sep 2010 15:57:25 +0000 Subject: [PATCH] [325502] The default editor for a file is not updated when opened in RSE explorer --- .../resources/SystemEditableRemoteFile.java | 19 +++++++++++++++++++ .../ui/resources/SystemRemoteEditManager.java | 19 ++----------------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/resources/SystemEditableRemoteFile.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/resources/SystemEditableRemoteFile.java index 7c950d65a26..edabc7f4925 100644 --- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/resources/SystemEditableRemoteFile.java +++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/resources/SystemEditableRemoteFile.java @@ -40,6 +40,7 @@ * David McKnight (IBM) - [284420] nullprogressmonitor is needed * David McKnight (IBM) - [310215] SystemEditableRemoteFile.open does not behave as expected * David McKnight (IBM) - [324519] SystemEditableRemoteFile throws NPE when used in headless mode + * David McKnight (IBM) - [325502] The default editor for a file is not updated when opened in RSE explorer *******************************************************************************/ package org.eclipse.rse.files.ui.resources; @@ -2013,4 +2014,22 @@ public class SystemEditableRemoteFile implements ISystemEditableRemoteObject, IP return remoteFile.isStale(); } + /** + * Get the editor descriptor to be associated with the remote file + * @return the editor descriptor associated with this remote file + * @since 3.3 + */ + public IEditorDescriptor getEditorDescriptor(){ + return _editorDescriptor; + } + + /** + * Set the editor descriptor to be associated with the remote file + * @param descriptor the new editor descriptor + * @since 3.3 + */ + public void setEditorDescriptor(IEditorDescriptor descriptor){ + _editorDescriptor = descriptor; + } + } diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/resources/SystemRemoteEditManager.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/resources/SystemRemoteEditManager.java index 23b7c434665..585f782d73b 100644 --- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/resources/SystemRemoteEditManager.java +++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/resources/SystemRemoteEditManager.java @@ -874,23 +874,8 @@ public class SystemRemoteEditManager // fall through and let the new editable get created } else { - if (descriptor != null){ - // using reflection to change descriptor since there's - // no API right now - try { - Class cls = editable.getClass(); - Field[] fields = cls.getDeclaredFields(); - for (int i = 0; i < fields.length; i++){ - Field fld = fields[i]; - String name= fld.getName(); - if (name.equals("_editorDescriptor")){ //$NON-NLS-1$ - fld.setAccessible(true); - fld.set(editable, descriptor); - } - } - } - catch (Exception e){ - } + if (descriptor != null){ // update the editor descriptor + editable.setEditorDescriptor(descriptor); } return editable; }