/*
* Copyright (c) 2010-2012 Research In Motion Limited. All rights reserved.
*
* This program and the accompanying materials are made available
* under the terms of the Eclipse Public License, Version 1.0,
* which accompanies this distribution and is available at
*
* http://www.eclipse.org/legal/epl-v10.html
*
*/
package net.rim.ejde.internal.ui.wizards.templates;
import java.net.URL;
import java.util.List;
import java.util.Locale;
import java.util.ResourceBundle;
import net.rim.ejde.internal.core.ContextManager;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.dialogs.IMessageProvider;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.pde.core.plugin.IPluginModelBase;
import org.eclipse.pde.ui.IFieldData;
import org.eclipse.pde.ui.templates.OptionTemplateSection;
import org.osgi.framework.Bundle;
public abstract class AbstractBBTemplateSection extends OptionTemplateSection {
public static final String KEY_CLASS_NAME = "appClassName"; //$NON-NLS-1$
public AbstractBBTemplateSection() {
}
public String[] getNewFiles() {
return new String[ 0 ];
}
protected URL getInstallURL() {
return ContextManager.PLUGIN.getInstallURL();
}
protected void initializeFields( IFieldData data ) {
// do nothing
}
public String getUsedExtensionPoint() {
return "org.eclipse.ui.actionSets"; //$NON-NLS-1$
}
protected String getTemplateDirectory() {
return "templates"; //$NON-NLS-1$
}
public void updateModel( IProgressMonitor monitor ) throws CoreException {
// do nothing
}
public void initializeFields( IPluginModelBase model ) {
// do nothing
}
public boolean isDependentOnParentWizard() {
return true;
}
protected String getFormattedPackageName( String id ) {
StringBuffer buffer = new StringBuffer();
for( int i = 0; i < id.length(); i++ ) {
char ch = id.charAt( i );
if( buffer.length() == 0 ) {
if( Character.isJavaIdentifierStart( ch ) )
buffer.append( Character.toLowerCase( ch ) );
} else {
if( Character.isJavaIdentifierPart( ch ) || ch == '.' )
buffer.append( ch );
}
}
return buffer.toString().toLowerCase( Locale.ENGLISH );
}
protected ResourceBundle getPluginResourceBundle() {
Bundle bundle = Platform.getBundle( ContextManager.PLUGIN_ID );
return Platform.getResourceBundle( bundle );
}
/**
* Update the wizard page error message.
*
* @param page
* The wizard page
* @param names
* The component name with error
* @param status
* The error status
*/
protected void updateStatus( WizardPage page, List< String > names, IStatus status ) {
if( status.getSeverity() == IStatus.ERROR ) {
page.setPageComplete( false );
IStatus[] children = status.getChildren();
for( int i = 0; i < children.length; i++ ) {
if( children[ i ].getSeverity() == IStatus.ERROR ) {
if( names.get( i ).length() > 0 ) {
page.setMessage( names.get( i ) + ": " + children[ i ].getMessage(), IMessageProvider.ERROR );
} else {
page.setMessage( children[ i ].getMessage(), IMessageProvider.ERROR );
}
break;
}
}
} else if( status.getSeverity() == IStatus.WARNING ) {
page.setPageComplete( true );
IStatus[] children = status.getChildren();
for( int i = 0; i < children.length; i++ ) {
if( children[ i ].getSeverity() == IStatus.WARNING ) {
if( names.get( i ).length() > 0 ) {
page.setMessage( names.get( i ) + ": " + children[ i ].getMessage(), IMessageProvider.WARNING );
} else {
page.setMessage( children[ i ].getMessage(), IMessageProvider.ERROR );
}
break;
}
}
} else {
page.setPageComplete( true );
page.setMessage( null );
}
}
}