/* * 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.intro; import java.io.IOException; import java.net.URL; import net.rim.ejde.internal.core.ContextManager; import net.rim.ejde.internal.core.IConstants; import org.apache.log4j.Logger; import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Platform; import org.eclipse.swt.SWT; import org.eclipse.swt.browser.Browser; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.part.IntroPart; import org.osgi.framework.Bundle; /** * BlackBerry Java Plug-in for Eclipse Welcome page. * * @author dmeng * */ public class BlackBerryIntroPart extends IntroPart { private static final Logger _logger = Logger.getLogger( BlackBerryIntroPart.class ); @Override public void createPartControl( Composite parent ) { Browser browser = new Browser( parent, SWT.NONE ); // Startup page resides in the net.rim.ejde.doc plug-in Bundle bundle = Platform.getBundle( ContextManager.PLUGIN_ID); //IConstants.DOC_PLUGIN_ID ); IPath pagePath = new Path( IConstants.START_UP_PAGE ); IPath folderPath = new Path( IConstants.START_UP_FOLDER ); IPath htmlFolderPath = new Path( IConstants.HTML_PAGE_FOLDER ); URL pageUrl = FileLocator.find( bundle, pagePath, null ); URL folderUrl = FileLocator.find( bundle, folderPath, null ); URL htmlFolderUrl = FileLocator.find( bundle, htmlFolderPath, null ); try { // Extract necessary files from jar into a cache, otherwise the images will not be // displayed properly FileLocator.toFileURL( folderUrl ); // Since startup page links to HTML page, we need to extract HTML content as well FileLocator.toFileURL( htmlFolderUrl ); pageUrl = FileLocator.toFileURL( pageUrl ); boolean success = browser.setUrl( pageUrl.toExternalForm() ); if( !success ) { _logger.error( "Unable to open page:" + pageUrl ); } } catch( IOException e ) { _logger.error( "Unable to convert URL", e ); //$NON-NLS-1$ } } @Override public void standbyStateChanged( boolean standby ) { // do nothing } @Override public void setFocus() { // do nothing } }