Bug 70576 Eclipse doesn't enforce user to enter the path to the workspace
Problem Description: Eclipse doesn't enforce user to enter the path to the workspace. You may complete the following steps to reproduce this scenario: 1. Launch Eclipse for the first time or delete the current workspace and configurations directory except config.ini file. Workspace Launcher Dialog is displayed. <install location>\eclipse\workspace is initially given in the Workspace field. 2. Hit the Backspace Key to remove the default path from the Workspace filed. The path to the workspace is empty now. 3. Click on OK button. Expected Behavior: Error message is displayed stating that the location of the workspace must be specified. Workspace Launcher Dialog should remain opened until a valid path is given. Actual Behavior: Workspace Launcher Dialog is dismissed and then the Eclipse Workbench is launched. <install location>/eclipse directory is used as the workspace.
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ChooseWorkspaceDialog.java
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Monitor;
import org.eclipse.swt.widgets.Shell;
/**
 * A dialog that prompts for a directory to use as a workspace.
 */
public class ChooseWorkspaceDialog extends TitleAreaDialog {
    private ChooseWorkspaceData launchData;
    private Combo text;
    private boolean suppressAskAgain = false;
    private boolean centerOnMonitor = false;
    /**
     * Create a modal dialog on the arugment shell, using and updating the
     * argument data object.
     * @param parentShell the parent shell for this dialog
     * @param launchData the launch data from past launches
     * 
     * @param suppressAskAgain
     *            true means the dialog will not have a "don't ask again" button
     * @param centerOnMonitor indicates whether the dialog should be centered on 
     * the monitor or according to it's parent if there is one
     */
    public ChooseWorkspaceDialog(Shell parentShell,