diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/propertypages/UniversalPreferencePage.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/propertypages/UniversalPreferencePage.java index ad1c4bf6041..8abd46032d9 100644 --- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/propertypages/UniversalPreferencePage.java +++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/propertypages/UniversalPreferencePage.java @@ -1,5 +1,5 @@ /******************************************************************************** - * Copyright (c) 2002, 2006 IBM Corporation. All rights reserved. + * Copyright (c) 2002, 2007 IBM Corporation. All rights reserved. * 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 * available at http://www.eclipse.org/legal/epl-v10.html @@ -602,9 +602,8 @@ public class UniversalPreferencePage String name = dialog.getName(); String extension = dialog.getExtension(); - if (extension.length() > 0) { - addResourceType(name, extension); - } + // add the resource type + addResourceType(name, extension); } } @@ -632,19 +631,10 @@ public class UniversalPreferencePage * This is typically called after the extension dialog is shown to the user. */ public void addResourceType(String newName, String newExtension) { - - // no extension is provided - if (newExtension == null || newExtension.length() < 1) { -// Note by DWD - this path is never taken because the dialog that gathers resource types checks for this condition - SystemMessageFile mf = RSEUIPlugin.getPluginMessageFile(); - Shell shell = getControl().getShell(); - SystemMessage message = mf.getMessage(ISystemMessages.MSG_ERROR_EXTENSION_EMPTY); - SystemMessageDialog.displayErrorMessage(shell, message); - return; - } - if (newName == null || newName.length() < 1) + if (newName == null || newName.length() < 1) { newName = "*"; //$NON-NLS-1$ + } else { int index = newName.indexOf('*'); @@ -664,7 +654,15 @@ public class UniversalPreferencePage } // Find the index at which to insert the new entry. - String newFilename = (newName + "." + newExtension).toUpperCase(); //$NON-NLS-1$ + String newFileName = null; + + if (newExtension == null || newExtension.length() < 1) { + newFileName = newName.toUpperCase(); + } + else { + newFileName = (newName + "." + newExtension).toUpperCase(); //$NON-NLS-1$ + } + IFileEditorMapping resourceType; boolean found = false; int i = 0; @@ -673,7 +671,7 @@ public class UniversalPreferencePage resourceType = (FileEditorMapping)(editorMappings.get(i)); - int result = newFilename.compareTo(resourceType.getLabel().toUpperCase()); + int result = newFileName.compareTo(resourceType.getLabel().toUpperCase()); // if the type already exists if (result == 0) { diff --git a/rse/plugins/org.eclipse.rse.subsystems.files.core/src/org/eclipse/rse/subsystems/files/core/model/SystemFileTransferModeMapping.java b/rse/plugins/org.eclipse.rse.subsystems.files.core/src/org/eclipse/rse/subsystems/files/core/model/SystemFileTransferModeMapping.java index 306cf988878..dce9e199e30 100644 --- a/rse/plugins/org.eclipse.rse.subsystems.files.core/src/org/eclipse/rse/subsystems/files/core/model/SystemFileTransferModeMapping.java +++ b/rse/plugins/org.eclipse.rse.subsystems.files.core/src/org/eclipse/rse/subsystems/files/core/model/SystemFileTransferModeMapping.java @@ -22,27 +22,24 @@ package org.eclipse.rse.subsystems.files.core.model; * An internal class. Clients must not instantiate or subclass it. */ -public class SystemFileTransferModeMapping - implements ISystemFileTransferModeMapping, Cloneable { - - - +public class SystemFileTransferModeMapping implements ISystemFileTransferModeMapping, Cloneable { private String name; private String extension; private boolean isBinary = true; - /** - * Constructor for SystemFileTransferModeMapping + * Constructor for SystemFileTransferModeMapping. The name is set to *. + * @param extension the extension. Can be null. */ public SystemFileTransferModeMapping(String extension) { this("*", extension); //$NON-NLS-1$ } - /** - * Constructor for SystemFileTransferModeMapping + * Constructor for SystemFileTransferModeMapping. + * @param name the name. If the name is null or if it is an empty string, it is set to *. + * @param extension the extension. Can be null. */ public SystemFileTransferModeMapping(String name, String extension) { @@ -70,7 +67,13 @@ public class SystemFileTransferModeMapping * @see ISystemFileTransferModeMapping#getLabel() */ public String getLabel() { - return (name + "." + extension); //$NON-NLS-1$ + + if (extension != null) { + return (name + "." + extension); //$NON-NLS-1$ + } + else { + return name; + } } diff --git a/rse/plugins/org.eclipse.rse.subsystems.files.core/src/org/eclipse/rse/subsystems/files/core/model/SystemFileTransferModeRegistry.java b/rse/plugins/org.eclipse.rse.subsystems.files.core/src/org/eclipse/rse/subsystems/files/core/model/SystemFileTransferModeRegistry.java index 90970b89e0e..222841478fa 100644 --- a/rse/plugins/org.eclipse.rse.subsystems.files.core/src/org/eclipse/rse/subsystems/files/core/model/SystemFileTransferModeRegistry.java +++ b/rse/plugins/org.eclipse.rse.subsystems.files.core/src/org/eclipse/rse/subsystems/files/core/model/SystemFileTransferModeRegistry.java @@ -51,11 +51,7 @@ import org.eclipse.ui.XMLMemento; * An internal class. Clients must not instantiate or subclass it. */ -public class SystemFileTransferModeRegistry - implements ISystemFileTransferModeRegistry, IPropertyListener { - - - +public class SystemFileTransferModeRegistry implements ISystemFileTransferModeRegistry, IPropertyListener { private static SystemFileTransferModeRegistry instance; @@ -312,20 +308,29 @@ public class SystemFileTransferModeRegistry //DY int extIndex = fileName.indexOf('.'); int extIndex = fileName.lastIndexOf('.'); + String name = null; + String extension = null; // if there is no extension if ((extIndex == -1) || (extIndex == (fileName.length() - 1))) { - return null; + name = fileName; + } + else { + name = fileName.substring(0, extIndex); + extension = fileName.substring(extIndex + 1); + } + + // check if the name and extension combination exists already + SystemFileTransferModeMapping mapping = (SystemFileTransferModeMapping)(typeModeMappings.get(getMappingKey(new SystemFileTransferModeMapping(name, extension)))); + + // if not, check only for the extension + if (mapping == null) { + mapping = (SystemFileTransferModeMapping)(typeModeMappings.get(getMappingKey(new SystemFileTransferModeMapping(extension)))); } - - String name = fileName.substring(0, extIndex); - String extension = fileName.substring(extIndex + 1); - - SystemFileTransferModeMapping mapping = (SystemFileTransferModeMapping)(typeModeMappings.get(getMappingKey(new SystemFileTransferModeMapping(extension)))); - - if (mapping == null) + if (mapping == null) { return null; + } SystemFileTransferModeMapping fileMapping = new SystemFileTransferModeMapping(name, extension);