1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Start of new new CDT project wizard.

This commit is contained in:
Doug Schaefer 2012-01-21 13:09:20 -05:00
parent 3b3f194391
commit 873e3587ae
6 changed files with 201 additions and 0 deletions

View file

@ -628,3 +628,6 @@ transfer.EditorBehavior.description = Preference related to how the editor proce
RefreshExclusionContributor.name = Resources
extension-point.name = Refresh Exclusion Contributor
# New New Project Wizard
newProjectWizard.name = C/C++ Project (new)

View file

@ -454,6 +454,17 @@
%Cproject.desc
</description>
</wizard>
<wizard
canFinishEarly="false"
category="org.eclipse.cdt.ui.newCWizards"
class="org.eclipse.cdt.ui.wizards.NewCDTProjectWizard"
finalPerspective="org.eclipse.cdt.ui.CPerspective"
hasPages="true"
icon="icons/elcl16/newmngc_app.gif"
id="org.eclipse.cdt.ui.wizards.newProject"
name="%newProjectWizard.name"
project="true">
</wizard>
</extension>
<!-- Define the document setup participant for the C/C++ and Assembly Editors -->

View file

@ -0,0 +1,31 @@
/*******************************************************************************
* Copyright (c) 2012 Wind River Systems and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Doug Schaefer - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.ui.wizards;
import org.eclipse.osgi.util.NLS;
class Messages extends NLS {
private static final String BUNDLE_NAME = "org.eclipse.cdt.ui.wizards.messages"; //$NON-NLS-1$
public static String NewCDTProjectWizard_mainPageDesc;
public static String NewCDTProjectWizard_mainPageTitle;
public static String NewCDTProjectWizard_refPageDesc;
public static String NewCDTProjectWizard_refPageTitle;
public static String NewCDTProjectWizard_templatePageDesc;
public static String NewCDTProjectWizard_templatePageTitle;
public static String NewCDTProjectWizard_windowTitle;
static {
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
}
private Messages() {
}
}

View file

@ -0,0 +1,84 @@
package org.eclipse.cdt.ui.wizards;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
import org.eclipse.ui.dialogs.WizardNewProjectReferencePage;
/**
* This is the new CDT project wizard.
*
* Without subclassing, it is in it's most generic form.
*
* Subclasses can filter or select the languages and add template filters.
*
* @author Doug Schaefer
* @since 5.4
*/
public class NewCDTProjectWizard extends Wizard implements INewWizard {
private IStructuredSelection selection;
private WizardNewProjectCreationPage mainPage;
private TemplateSelectionPage templatePage;
private WizardNewProjectReferencePage referencePage;
@Override
public void init(IWorkbench workbench, IStructuredSelection selection) {
this.selection = selection;
setNeedsProgressMonitor(true);
setWindowTitle(Messages.NewCDTProjectWizard_windowTitle);
}
@Override
public boolean performFinish() {
return true;
}
@Override
public void addPages() {
super.addPages();
mainPage = new WizardNewProjectCreationPage("basicNewProjectPage") { //$NON-NLS-1$
@Override
public void createControl(Composite parent) {
super.createControl(parent);
createWorkingSetGroup(
(Composite) getControl(),
selection,
new String[] { "org.eclipse.ui.resourceWorkingSetPage", //$NON-NLS-1$
"org.eclipse.cdt.ui.CElementWorkingSetPage" }); //$NON-NLS-1$
Dialog.applyDialogFont(getControl());
}
};
mainPage.setTitle(Messages.NewCDTProjectWizard_mainPageTitle);
mainPage.setDescription(Messages.NewCDTProjectWizard_mainPageDesc);
addPage(mainPage);
templatePage = new TemplateSelectionPage();
templatePage.setTitle(Messages.NewCDTProjectWizard_templatePageTitle);
templatePage.setDescription(Messages.NewCDTProjectWizard_templatePageDesc);
addPage(templatePage);
// only add page if there are already projects in the workspace
if (ResourcesPlugin.getWorkspace().getRoot().getProjects().length > 0) {
referencePage = new WizardNewProjectReferencePage(
"basicReferenceProjectPage");//$NON-NLS-1$
referencePage.setTitle(Messages.NewCDTProjectWizard_refPageTitle);
referencePage
.setDescription(Messages.NewCDTProjectWizard_refPageDesc);
this.addPage(referencePage);
}
}
@Override
public boolean canFinish() {
// TODO make sure we have everything in place first.
return false;
}
}

View file

@ -0,0 +1,55 @@
/*******************************************************************************
* Copyright (c) 2012 Wind River Systems and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Doug Schaefer - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.ui.wizards;
import org.eclipse.jface.wizard.WizardPage;
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.List;
import org.eclipse.cdt.ui.templateengine.Template;
import org.eclipse.cdt.ui.templateengine.TemplateEngineUI;
/**
* @author Dad
* @since 5.4
*/
public class TemplateSelectionPage extends WizardPage {
public TemplateSelectionPage() {
super("templateSelection"); //$NON-NLS-1$
}
@Override
public void createControl(Composite parent) {
Composite comp = new Composite(parent, SWT.NONE);
comp.setLayout(new GridLayout(1, false));
List templateList = new List(comp, SWT.BORDER);
templateList.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
Template[] templates = TemplateEngineUI.getDefault().getTemplates();
for (Template template : templates) {
templateList.add(template.getLabel());
}
setControl(comp);
}
@Override
public boolean isPageComplete() {
return true;
}
}

View file

@ -0,0 +1,17 @@
#################################################################################
# Copyright (c) 2012 Wind River Systems and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
# Doug Schaefer - initial API and implementation
#################################################################################
NewCDTProjectWizard_mainPageDesc=Create a new C/C++ Project
NewCDTProjectWizard_mainPageTitle=Project
NewCDTProjectWizard_refPageDesc=Select referenced projects
NewCDTProjectWizard_refPageTitle=Project References
NewCDTProjectWizard_templatePageDesc=Select a project template for the new project
NewCDTProjectWizard_templatePageTitle=Project Template
NewCDTProjectWizard_windowTitle=New C/C++ Project