Bug 82988 [Import/Export] Importing Existing Projects should support Archive Files
Importing from Archive File and from File System should include options for importing as projects (similar to CVS). I've constructed a patch to do so, I've completed the najor functionality for Archive File (File System isn't done yet but should be very easy since it should be almost identical) but I'm running into some difficulties regarding the UI, as you can see the radio button for selecting an existing folder is not next to the text field and button which specify the folder, this is because these components are in WizardResourceImportPage which I can't really alter. The only options I can think of are to make them protected instead of private (did that a few times already) and start pulling out some components so I can stuff my radio button in there too. I'll attach the patch I have so far, ignore the "File System" section as that's going to be redone when I figgure out the solution, "Archive File" is the part I've been working on. I'm looking for opinions anyone may have on the current functionality and how to fix this UI issue. thanks
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ImportOperation.java
*   workspace
     * @param provider the file system structure provider to use
     * @param overwriteImplementor the overwrite strategy to use
     * @param filesToImport the list of file system objects to be imported
     *  (element type: <code>Object</code>)
     */
    public ImportOperation(IPath containerPath,
            IImportStructureProvider provider,
            IOverwriteQuery overwriteImplementor, List filesToImport) {
        this(containerPath, null, provider, overwriteImplementor);
        setFilesToImport(filesToImport);
    }
    /**
     * Prompts if existing resources should be overwritten. Recursively collects
     * existing read-only files to overwrite and resources that should not be
     * overwritten.
     * 
     * @param sourceStart destination path to check for existing files
     * @param sources file system objects that may exist in the destination
     * @param noOverwrite files that were selected to be skipped (don't overwrite).
     * 	object type IPath
     * @param overwriteReadonly the collected existing read-only files to overwrite.
     * 	object type IPath
     * @param policy on of the POLICY constants defined in the
     * class.
     */
    void collectExistingReadonlyFiles(IPath sourceStart, List sources,
            ArrayList noOverwrite, ArrayList overwriteReadonly, int policy) {
        IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
        Iterator sourceIter = sources.iterator();