/*******************************************************************************
* Copyright (c) 2009 EclipseSource 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:
* EclipseSource - initial API and implementation
******************************************************************************/
package org.eclipse.rap.osgi.commands;
import java.lang.reflect.Field;
import org.eclipse.osgi.framework.console.CommandInterpreter;
import org.eclipse.osgi.framework.console.CommandProvider;
import org.eclipse.rwt.branding.AbstractBranding;
import org.eclipse.rwt.internal.branding.BrandingManager;
import org.eclipse.rwt.internal.lifecycle.EntryPointManager;
public class RAPCommandProvider implements CommandProvider {
private static final String BRANDING_HELP = "brandings [-v] [-d] - displays brandings;"
+ "add -v to display config elements;"
+ "add -d to show default branding\n";
private static final String EP_HELP = "entrypoints - shows all registered entrypoints\n";
private static final String SERVICEHANDLER_HELP = "servicehandlers - displays all service handlers";
private static final String[] HELP_TOPICS = new String[]{
BRANDING_HELP, EP_HELP, SERVICEHANDLER_HELP
};
public String getHelp() {
StringBuffer buffer = new StringBuffer();
buffer.append( "---RAP Runtime Commands---\n" );
for( int i = 0; i < HELP_TOPICS.length; i++ ) {
String topic = HELP_TOPICS[ i ];
buffer.append( "\t" );
buffer.append( topic );
}
return buffer.toString();
}
public void _entrypoints( final CommandInterpreter ci ) throws Exception {
String[] entryPoints = EntryPointManager.getEntryPoints();
for( int i = 0; i < entryPoints.length; i++ ) {
String entrypoint = entryPoints[ i ];
System.out.println( " * " + entrypoint );
}
}
public void _brandings( final CommandInterpreter ci ) throws Exception {
AbstractBranding[] brandings = BrandingManager.getAll();
String nextArgument = ci.nextArgument();
boolean showDetails = false;
boolean showDefaultBranding = false;
while( ( nextArgument != null ) ) {
if( nextArgument.equals( "-v" ) ) {
showDetails = true;
} else if( nextArgument.equals( "-d" ) ) {
showDefaultBranding = true;
}
nextArgument = ci.nextArgument();
}
for( int i = 0; i < brandings.length; i++ ) {
AbstractBranding branding = brandings[ i ];
printBranding( branding, showDetails );
}
if( showDefaultBranding ) {
Field field = BrandingManager.class.getDeclaredField( "DEFAULT_BRANDING" );
field.setAccessible( true );
AbstractBranding defaultBranding = ( AbstractBranding )field.get( null );
printBranding( defaultBranding, showDetails );
}
}
private void printBranding( AbstractBranding branding, boolean showDetails ) {
System.out.println( " * " + branding.getTitle() );
if( showDetails ) {
System.out.println( "\tservletName: " + branding.getServletName() );
System.out.println( "\tdefaultEntryPoint: "
+ branding.getDefaultEntryPoint() );
System.out.println( "\tthemeId: " + branding.getThemeId() );
System.out.println( "\tid: " + branding.getId() );
}
}
}