/*******************************************************************************
* Copyright © 2011, 2013 IBM Corporation 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:
* IBM Corporation - initial API and implementation
*
*******************************************************************************/
package org.eclipse.edt.ide.ui.internal.project.wizards;
import java.util.List;
import org.eclipse.edt.compiler.IGenerator;
import org.eclipse.edt.ide.core.EDTCoreIDEPlugin;
import org.eclipse.edt.ide.ui.internal.project.wizard.pages.BasicProjectGeneratorSelectionPage;
import org.eclipse.edt.ide.ui.internal.wizards.NewWizardMessages;
import org.eclipse.edt.ide.ui.project.templates.ProjectTemplateWizard;
public class BasicProjectTemplateWizard extends ProjectTemplateWizard {
private BasicProjectGeneratorSelectionPage generatorPage;
public void addPages() {
this.generatorPage = new BasicProjectGeneratorSelectionPage(NewWizardMessages.GeneratorSelectionPage, this);
addPage(generatorPage);
super.addPages();
}
public boolean performFinish() {
if(generatorPage != null){
String[] genIds = getGeneratorIds();
if(genIds != null)
((NewEGLProjectWizard) getParentWizard()).getModel().setSelectedGenerators(genIds);
}else{
((NewEGLProjectWizard) getParentWizard()).getModel().setEmptyCompilerProperty();
}
return true;
}
public boolean proecssGenerationDirectorySetting() {
if(generatorPage != null){
return generatorPage.performOK();
}
return true;
}
private String[] getGeneratorIds() {
String[] genIds = null;
if(generatorPage != null){
List<String> selectedGenerators = generatorPage.getSelectedGenerators();
genIds = new String[selectedGenerators.size()];
int index = 0;
StringBuilder buffer = new StringBuilder(100);
for( String genName : selectedGenerators ) {
genIds[index] = convertGeneratorNameToId( genName );
if (index != 0) {
buffer.append(',');
}
buffer.append( genIds[index] );
index++;
}
}
return genIds;
}
private String convertGeneratorNameToId( String name ) {
if( name != null && name.length() > 0 ) {
IGenerator[] generators = EDTCoreIDEPlugin.getPlugin().getGenerators();
for( final IGenerator currentGenerator : generators ) {
if( currentGenerator.getName().equalsIgnoreCase( name ) ) {
return currentGenerator.getId();
}
}
}
return "";
}
}