/*****************************************************************************
* Copyright (c) 2006, 2007 g-Eclipse Consortium
* 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
*
* Initial development of the original code was made for the
* g-Eclipse project founded by European Union
* project number: FP6-IST-034327 http://www.geclipse.eu/
*
* Contributors:
* Mathias Stuempert - initial API and implementation
*****************************************************************************/
package eu.geclipse.ui.internal;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.dialogs.MessageDialogWithToggle;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.forms.FormColors;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
import eu.geclipse.ui.internal.actions.UpdateJobStatusAction;
import eu.geclipse.ui.internal.preference.PerspectivePreferencePage;
import eu.geclipse.ui.internal.transfer.TransferResumer;
import eu.geclipse.ui.properties.PropertiesAdapterFactory;
/**
* The activator class controls the plug-in life cycle
*/
public class Activator extends AbstractUIPlugin {
/**
* The plug-in ID of g-Eclipse UI
* */
public static final String PLUGIN_ID = "eu.geclipse.ui"; //$NON-NLS-1$
/**
* The id of the id project view.
*/
public static final String ID_GPROJECT_VIEW
= "eu.geclipse.ui.views.gridProjectView"; //$NON-NLS-1$
/**
* The id of the authentication token management view.
*/
public static final String ID_AUTH_VIEW
= "eu.geclipse.ui.views.authenticationTokenView"; //$NON-NLS-1$
/**
* The id of the connection view.
*/
public static final String ID_CONNECTION_VIEW
= "eu.geclipse.ui.views.connectionView"; //$NON-NLS-1$
/**
* The id of the job view.
*/
public static final String ID_JOB_VIEW
= "eu.geclipse.ui.views.jobView"; //$NON-NLS-1$
/**
* The id of the GlueInfoViewer.
*/
public static final String ID_GLUE_INFO_VIEW
= "eu.geclipse.info.ui.GlueInfoViewer"; //$NON-NLS-1$
/**
* The id of the Grid3DView.
*/
//public static final String ID_GRID_3D_VIEW
// = "eu.geclipse.gridbench.views.Grid3DView"; //$NON-NLS-1$
/**
* The id of the GVid view.
*/
public static final String ID_GVID_VIEW
= "eu.geclipse.gvid.views.GVidView"; //$NON-NLS-1$
/**
* The id of the terminal view.
*/
public static final String ID_TERMINAL_VIEW
= "eu.geclipse.terminal.views.TerminalView"; //$NON-NLS-1$
/**
* The id of the web view.
*/
public static final String ID_WEB_VIEW
= "eu.geclipse.webview.views.WebView"; //$NON-NLS-1$
/**
* The id of the jobs view.
*/
public static final String ID_JOBS_VIEW
= "eu.geclipse.ui.views.jobView"; //$NON-NLS-1$
/**
* The id of the job details view.
*/
public static final String ID_JOBDETAILS_VIEW
= "eu.geclipse.ui.views.jobdetails.JobDetailsView"; //$NON-NLS-1$
/**
* The id of the grid project wizard.
*/
public static final String ID_PROJECT_WIZARD
= "eu.geclipse.ui.wizards.gridProjectWizard"; //$NON-NLS-1$
/**
* The id of the connection wizard.
*/
public static final String ID_CONNECTION_WIZARD
= "eu.geclipse.ui.wizards.connectionWizard"; //$NON-NLS-1$
/**
* The id of the workflow wizard.
*/
public static final String ID_WORKFLOW_WIZARD
= "eu.geclipse.workflow.ui.part.WorkflowCreationWizardID"; //$NON-NLS-1$
/**
* The id of the Grid user perspective.
*/
public static final String ID_USER_PERSPECTIVE
= "eu.geclipse.ui.userPerspective"; //$NON-NLS-1$
/**
* The id of the Grid operator perspective.
*/
public static final String ID_OPERATOR_PERSPECTIVE
= "eu.geclipse.ui.operatorPerspective"; //$NON-NLS-1$
/**
* The id of the Grid developer perspective.
*/
public static final String ID_DEVELOPER_PERSPECTIVE
= "eu.geclipse.ui.developerPerspective"; //$NON-NLS-1$
/**
* The id of the Grid explorer perspective.
*/
public static final String ID_EXPLORER_PERSPECTIVE
= "eu.geclipse.ui.explorerPerspective"; //$NON-NLS-1$
/**
* Image for action Refresh
*/
public static final String IMG_REFRESH = "refresh"; //$NON-NLS-1$
/**
* Image for action DownloadJobOutputsAction
*/
public static final String IMG_DOWNLOAD_JOB_OUTPUT = "DownloadJobOutput"; //$NON-NLS-1$
/**
* Image for action {@link UpdateJobStatusAction}
*/
public static final String IMG_UPDATE_JOB_STATUS = "UpdateJobStatus"; //$NON-NLS-1$
/**
* Image for actions "See details", "see more" etc
*/
public static final String IMG_SEE = "See"; //$NON-NLS-1$
/**
* The shared instance.
*/
private static Activator plugin;
/**
* Handles Form Colors that share colors between editors.
*/
private FormColors formColors;
/**
* The constructor
*/
public Activator() {
plugin = this;
}
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
*/
@Override
public void start( final BundleContext context ) throws Exception
{
super.start( context );
PropertiesAdapterFactory.register();
setPreferencesDefaults();
TransferResumer resumer = new TransferResumer( "Transfer resume" );
resumer.schedule( 25000 );
}
private void setPreferencesDefaults() {
IPreferenceStore preferenceStore = Activator.getDefault()
.getPreferenceStore();
preferenceStore.setDefault( PerspectivePreferencePage.KEY_NOT_SWITCH_FROM_GECLIPSE_PERSPECTIVE, true );
preferenceStore.setDefault( PerspectivePreferencePage.KEY_DEFAULT_PERSPECTIVE, Activator.ID_USER_PERSPECTIVE );
preferenceStore.setDefault( PerspectivePreferencePage.KEY_REMEMBER_SWITCHING, MessageDialogWithToggle.PROMPT );
}
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
*/
@Override
public void stop( final BundleContext context ) throws Exception
{
PropertiesAdapterFactory.unregister();
plugin = null;
super.stop( context );
}
/**
* Returns the shared instance
*
* @return the shared instance
*/
public static Activator getDefault() {
return plugin;
}
/**
* Logs an exception to the eclipse logger.
*
* @param exc The exception to be logged.
*/
public static void logException( final Throwable exc ) {
String message = exc.getLocalizedMessage();
if ( message == null ) {
message = exc.getClass().getName();
}
IStatus status = new Status( IStatus.ERROR,
PLUGIN_ID,
IStatus.OK,
message,
exc );
getDefault().getLog().log( status );
}
/**
* Logs a status object to the eclipse logger.
*
* @param status The status to be logged.
*/
public static void logStatus( final IStatus status ) {
getDefault().getLog().log( status );
}
/**
* Get the form colors for the specified display.
*
* @param display The {@link Display} for which to create the form colors.
* @return The {@link FormColors} for the specified display.
*/
public FormColors getFormColors( final Display display) {
if (this.formColors == null) {
this.formColors = new FormColors(display);
this.formColors.markShared();
}
return this.formColors;
}
@Override
protected void initializeImageRegistry( final ImageRegistry reg )
{
String[][] images = {
{ "activestate", "icons/elcl16/activate.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
{ "computing", "icons/obj16/computing_obj.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
{ "filesystem", "icons/obj16/filesystem_obj.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
{ "geclipse_logo_prefs", "icons/extras/geclipse_logo_prefs.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
{ "inactivestate", "icons/elcl16/deactivate.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
{ "invalidelement", "icons/obj16/invalid_element_obj.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
{ "job", "icons/obj16/job_file_obj.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
{ "jobdescription", "icons/obj16/jsdl_file_obj.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
// { "lightbulb_green", "icons/lightbulb_green_16.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
// { "lightbulb_red", "icons/lightbulb_red_16.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
// { "lightbulb_white", "icons/lightbulb_white_16.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
{ "reason", "icons/obj16/ihigh_obj.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
{ "refresh", "icons/elcl16/refresh_nav.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
{ "service", "icons/obj16/service_obj.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
{ "service_unsupported", "icons/obj16/service_unsupported_obj.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
{ "storage", "icons/obj16/storage_obj.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
{ "solution", "icons/obj16/quickassist_obj.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
// { "view_flat", "icons/view_flat.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
// { "view_hierarchical", "icons/view_hierarchical.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
{ "virtualfile", "icons/obj16/virtual_file_obj.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
{ "virtualfolder", "icons/obj16/virtual_folder_obj.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
{ "vo", "icons/obj16/vo_obj.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
{ "formsbackground", "icons/form_banner.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
{ "configure_filters", "icons/obj16/filter_ps.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
{ "configure_filters_on", "icons/obj16/filter_on.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
{ "helplink", "icons/elcl16/linkto_help.gif" }, //$NON-NLS-1$ //$NON-NLS-2$
{ "calendar", "icons/calendar.gif" }, //$NON-NLS-1$//$NON-NLS-2$
{ IMG_REFRESH, "icons/eview16/refresh.gif" }, //$NON-NLS-1$
{ IMG_DOWNLOAD_JOB_OUTPUT, "icons/DownloadJobOutput.gif" }, //$NON-NLS-1$
{ IMG_UPDATE_JOB_STATUS, "icons/UpdateJobStatus.gif" }, //$NON-NLS-1$
{ IMG_SEE, "icons/obj16/see.gif" }, //$NON-NLS-1$
{ "emptyfoldermarker", "icons/obj16/ihigh_obj.gif" }, //$NON-NLS-1$//$NON-NLS-2$
{ "toggleTabBtn", "icons/main_tab.gif" }, //$NON-NLS-1$//$NON-NLS-2$
};
ImageDescriptor imgDsc = null;
for( String[] image : images ) {
imgDsc = imageDescriptorFromPlugin( PLUGIN_ID, image[ 1 ] );
reg.put( image[ 0 ], imgDsc );
}
}
}