Package workspace.wizards

Source Code of workspace.wizards.ProjectCreationPage

package workspace.wizards;


import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;

import workspace.WorkspaceUtils;
import workspace.editor.BuildFileDesignerPage;
import workspace.elements.BuildFile;

public class ProjectCreationPage extends WizardNewProjectCreationPage
{
    private static String _defaultPageName = "New haXe project";
    private static String _defaultTitle = "Create a haXe project";
    private static String _defaultDescription =
            "Create a haXe project in the workspace or in an external location.";
    private static String _defaultProjectName = "TestingHaxeCreateProject";

    private BuildFileDesignerPage buildFileDesigner = null;
   
    private final Listener validateOnModify = new Listener()
    {
        public void handleEvent(Event e)
        {
            setPageComplete(validatePage());
        }
    };
   
    public String getSrcFolder()
    {
        return buildFileDesigner.getSrcFolder();
    }
   
    public String getOutputFolder()
    {
        return buildFileDesigner.getOutputFolder();
    }
   
    public String getMainFileName()
    {
        return buildFileDesigner.getMainFileName();
    }
   
    public BuildFile getBuildFile()
    {
        BuildFile buildFile = new BuildFile(
                buildFileDesigner.getBuildFileName(),
                buildFileDesigner.getSrcFolder(),
                WorkspaceUtils.getConcatenatedPath(buildFileDesigner.getOutputFolder(),getProjectName()),
                buildFileDesigner.getSelectedTarget(),
                buildFileDesigner.getMainFileName());
        return buildFile;
    }

    public ProjectCreationPage()
    {
        super(_defaultPageName);
       
        setTitle(_defaultTitle);
        setDescription(_defaultDescription);
        setInitialProjectName(_defaultProjectName);
    }
   
    @Override
    public void createControl(Composite parent)
    {
        super.createControl(parent);

        Group group = new Group((Composite) getControl(), SWT.NONE);
        group.setText("Project settings");
        group.setLayout(new GridLayout(2, false));
        group.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
                        | GridData.HORIZONTAL_ALIGN_FILL));

        buildFileDesigner = new BuildFileDesignerPage();
        buildFileDesigner.initialize(group);
        buildFileDesigner.SetModifyListener(validateOnModify);
    }

    @Override
    protected boolean validatePage()
    {           
        // Validates the project name and project location fields.
        if (!super.validatePage())
        {
            return false;
        }
       
        if (buildFileDesigner == null)
        {
            // the validation was prior the componen creation
            return true;
        }
       
        if (buildFileDesigner.getBuildFileName().isEmpty())
        {
            setErrorMessage("Build file name cannot be empty.");
            return false;
        }
       
        if (buildFileDesigner.getMainFileName().isEmpty())
        {
            setErrorMessage("Main file name cannot be empty.");
            return false;
        }
       
        return true;
    }
}
TOP

Related Classes of workspace.wizards.ProjectCreationPage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.