Ignore:
Timestamp:
10/04/05 13:03:41 (19 years ago)
Author:
boris
Message:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/org.modelica.mdt/src/org/modelica/mdt/NewProjectWizard.java

    r37 r49  
    33import java.lang.reflect.InvocationTargetException;
    44import org.eclipse.core.resources.IProject;
     5import org.eclipse.core.resources.IResource;
     6import org.eclipse.core.resources.ResourcesPlugin;
    57import org.eclipse.core.runtime.CoreException;
    68import org.eclipse.core.runtime.IProgressMonitor;
    79import org.eclipse.core.runtime.IStatus;
    810import org.eclipse.core.runtime.Status;
     11import org.eclipse.jface.dialogs.DialogPage;
    912import org.eclipse.jface.dialogs.ErrorDialog;
    1013import org.eclipse.jface.operation.IRunnableWithProgress;
    1114import org.eclipse.jface.viewers.IStructuredSelection;
     15import org.eclipse.jface.wizard.Wizard;
     16import org.eclipse.jface.wizard.WizardPage;
     17import org.eclipse.swt.SWT;
     18import org.eclipse.swt.events.ModifyEvent;
     19import org.eclipse.swt.events.ModifyListener;
     20import org.eclipse.swt.layout.GridData;
     21import org.eclipse.swt.layout.GridLayout;
     22import org.eclipse.swt.widgets.Composite;
     23import org.eclipse.swt.widgets.Label;
     24import org.eclipse.swt.widgets.Text;
     25import org.eclipse.ui.INewWizard;
    1226import org.eclipse.ui.IWorkbench;
    13 import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
    1427import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard;
    1528
    16 public class NewProjectWizard extends BasicNewResourceWizard
     29public class NewProjectWizard extends Wizard implements INewWizard
    1730{
     31    public class NewProjectPage extends WizardPage
     32    {
     33        private Text projectName;       
     34
     35        public NewProjectPage()
     36        {
     37            super("");
     38        }
     39       
     40        public void createControl(Composite parent)
     41        {
     42            setPageComplete(false);
     43            /*
     44             * configure description of this page
     45             */
     46            setTitle("Create a Modelica project");
     47            setDescription("Create a Modelica project in the workspace.");
     48           
     49            // TODO set image descriptor           
     50            //setImageDescriptor(...);
     51           
     52            /*
     53             * setup widgets for this page
     54             */
     55            Composite composite= new Composite(parent, SWT.NONE);
     56            setControl(composite);
     57            composite.setFont(parent.getFont());
     58           
     59            GridLayout layout = new GridLayout();
     60            layout.numColumns = 2;
     61            composite.setLayout(layout);
     62           
     63            GridData gd;
     64
     65            /* project name field */
     66            Label l = new Label(composite, SWT.LEFT | SWT.WRAP);
     67            l.setText("Project name:");
     68            gd = new GridData();
     69            gd.horizontalAlignment = GridData.BEGINNING;
     70            l.setLayoutData(gd);
     71           
     72            projectName = new Text(composite, SWT.SINGLE | SWT.BORDER);
     73            gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL);
     74            projectName.setLayoutData(gd);
     75           
     76            projectName.addModifyListener(new ModifyListener()
     77            {
     78                /* check if entered classname is valid */
     79                public void modifyText(ModifyEvent e)
     80                {
     81                    validateProjectName(projectName.getText());
     82                }
     83            });
     84
     85        }
     86
     87        public void validateProjectName(String name)
     88        {
     89            IStatus res = ResourcesPlugin.getWorkspace().validateName(name, IResource.PROJECT);
     90            if (res.isOK())
     91            {
     92                projectPage.setPageComplete(true);
     93                setMessage(null);
     94            }
     95            else
     96            {
     97                projectPage.setPageComplete(false);
     98                setMessage(res.getMessage(), DialogPage.ERROR);
     99            }           
     100        }
     101
     102
     103
     104    }
    18105    public class CreateNewProjectRunnable implements IRunnableWithProgress
    19106    {
     
    51138
    52139    }
    53     protected WizardNewProjectCreationPage projectPage;
    54140
    55     public void init(IWorkbench workbench,IStructuredSelection selection)
     141    private NewProjectPage projectPage = new NewProjectPage();
     142    private IWorkbench workbench;
     143   
     144    public void init(IWorkbench workbench, IStructuredSelection selection)
    56145    {
    57         super.init(workbench, selection);
    58         setNeedsProgressMonitor(true);
     146        this.workbench = workbench;
    59147        setWindowTitle("New Modelica Project");
    60        
    61     }
     148    }   
    62149   
    63150
     
    79166        try
    80167        {
    81             IProject project = projectPage.getProjectHandle();
     168            IProject project =
     169                ResourcesPlugin.getWorkspace().getRoot().getProject(projectPage.projectName.getText());
     170           
    82171            getContainer().run(false, true,
    83172                    new CreateNewProjectRunnable(project));
    84173
    85             selectAndReveal(project);
     174            BasicNewResourceWizard.selectAndReveal(project, workbench.getActiveWorkbenchWindow());
    86175        }
    87176        catch (InvocationTargetException e)
     
    95184        return true;
    96185    }
     186   
     187    @Override
    97188    public void addPages()
    98189    {
    99         super.addPages();
    100        
    101         projectPage = new WizardNewProjectCreationPage("");
    102         projectPage.setTitle("Create a Modelica project");
    103         projectPage.setDescription("Create a Modelica project in the workspace" +
    104                 " or in an external location.");
    105 
    106190        addPage(projectPage);
    107        
    108      }
    109 
     191    }
    110192}
Note: See TracChangeset for help on using the changeset viewer.