/******************************************************************************* * Copyright (c) 2007, 2009 Innoopract Informationssysteme GmbH. * 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: * Innoopract Informationssysteme GmbH - initial API and implementation * EclipseSource - ongoing development ******************************************************************************/ package org.eclipse.rap.internal.ui.templates.rap; import java.net.URL; import java.util.ResourceBundle; import org.eclipse.core.runtime.CoreException; import org.eclipse.pde.core.plugin.IPluginBase; import org.eclipse.pde.core.plugin.IPluginElement; import org.eclipse.pde.core.plugin.IPluginExtension; import org.eclipse.pde.core.plugin.IPluginModelBase; import org.eclipse.pde.core.plugin.IPluginModelFactory; import org.eclipse.pde.core.plugin.IPluginReference; import org.eclipse.pde.ui.IFieldData; import org.eclipse.pde.ui.templates.OptionTemplateSection; import org.eclipse.rap.internal.ui.templates.PluginReference; import org.eclipse.rap.internal.ui.templates.TemplateUtil; abstract class AbstractRAPTemplate extends OptionTemplateSection { protected static final String KEY_APPLICATION_CLASS = "applicationClass"; //$NON-NLS-1$ protected static final String KEY_WINDOW_TITLE = "windowTitle"; //$NON-NLS-1$ protected static final String TEMPLATES_DIRECTORY = "templates"; //$NON-NLS-1$ protected final URL getInstallURL() { return TemplateUtil.getInstallURL(); } protected final ResourceBundle getPluginResourceBundle() { return TemplateUtil.getPluginResourceBundle(); } public String[] getNewFiles() { return new String[ 0 ]; } public String getUsedExtensionPoint() { return null; } public boolean isDependentOnParentWizard() { return true; } public void initializeFields( final IPluginModelBase modelBase ) { String id = modelBase.getPluginBase().getId(); String packageName = TemplateUtil.getFormattedPackageName( id ); initializeOption( KEY_PACKAGE_NAME, packageName ); } protected void initializeFields( final IFieldData data ) { String packageName = TemplateUtil.getFormattedPackageName( data.getId() ); initializeOption( KEY_PACKAGE_NAME, packageName ); } public IPluginReference[] getDependencies( final String schemaVersion ) { return new IPluginReference[] { new PluginReference( "org.eclipse.rap.ui", null, 0 ) //$NON-NLS-1$ }; } //////////////////// // protected methods protected final void addExtensionToPlugin( final IPluginExtension extension ) throws CoreException { IPluginBase plugin = model.getPluginBase(); if( !extension.isInTheModel() ) { plugin.add( extension ); } } protected final IPluginElement createElement( final IPluginExtension extension ) { IPluginModelFactory factory = model.getPluginFactory(); return factory.createElement( extension ); } protected final String getApplicationName() { return getStringOption( KEY_APPLICATION_CLASS ); } protected final String getPackageName() { return getStringOption( KEY_PACKAGE_NAME ); } protected final String getPluginId() { IPluginBase plugin = model.getPluginBase(); return plugin.getId(); } protected final String getTemplateDirectory() { return TEMPLATES_DIRECTORY; } }