Bug 137879 Unable to specify resources in zip filesystem
How to repeat the problem: 1. Check out and compile the org.eclipse.ui.filesystem.examples plug-in. 2. Start runtime workspace. The following operations are in the runtime workspace. 3. Create a new project, e.g. TestZipFilesystem 4. Create a new file, in the wizard page, check "Link file to file system" and choose the file system as "Zip file". 5. Click on Browse... button and browse to a zip file in the local file system , choose OK. 6. Now, the file name field becomes "GettingStarted.zip", and the link to file system filed becomes "zip:/d:/Downloads/GettingStarted.zip". 7. On windows platform, an error message appeared ": is an invalid character in resource name zip:.". And the Finish button is grayed out. On linux platform, a warning message appear and say that the resource is not available in the workspace. The finish button works, though. =========== 8. In both cases, there is no way to choose a file in the zip as the linked resource. In other words, the UI does not treat the zip as a file system. The memory file system has similar problem, i.e. there is no real UI support for these file systems.
bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewFolderMainPage.java
import org.eclipse.ui.internal.ide.misc.ResourceAndContainerGroup;
/**
 * Standard main page for a wizard that creates a folder resource.
 * <p>
 * This page may be used by clients as-is; it may be also be subclassed to suit.
 * </p>
 * <p>
 * Subclasses may extend
 * <ul>
 * <li><code>handleEvent</code></li>
 * </ul>
 * </p>
 */
public class WizardNewFolderMainPage extends WizardPage implements Listener {
	private static final int SIZING_CONTAINER_GROUP_HEIGHT = 250;
	private IStructuredSelection currentSelection;
	private IFolder newFolder;
	
	private URI linkTargetPath;
	
	private ResourceAndContainerGroup resourceGroup;
	private Button advancedButton;
	private CreateLinkedResourceGroup linkedResourceGroup;
	private Composite linkedResourceParent;
	private Composite linkedResourceComposite;
	/**
	 * Height of the "advanced" linked resource group. Set when the advanced
	 * group is first made visible.
	 */
	private int linkedResourceGroupHeight = -1;