package edu.ualberta.med.biobank.gui.common;
import java.net.URL;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.eclipse.ui.services.ISourceProviderService;
import org.osgi.framework.BundleContext;
/**
* The activator class controls the plug-in life cycle
*/
public class BgcPlugin extends AbstractUIPlugin {
public static final String IMG_DIALOGS = "dialogs"; //$NON-NLS-1$
public static final String IMG_ADD = "add"; //$NON-NLS-1$
public static final String IMG_ARROW_LEFT = "arrow_left"; //$NON-NLS-1$
public static final String IMG_ARROW_LEFT2 = "arrow_left2"; //$NON-NLS-1$
public static final String IMG_ARROW_RIGHT = "arrow_right"; //$NON-NLS-1$
public static final String IMG_2_ARROW_LEFT = "2_arrow_left"; //$NON-NLS-1$
public static final String IMG_2_ARROW_RIGHT = "2_arrow_right"; //$NON-NLS-1$
public static final String IMG_BIN = "bin"; //$NON-NLS-1$
public static final String IMG_BOX = "box"; //$NON-NLS-1$
public static final String IMG_CABINET = "cabinet"; //$NON-NLS-1$
public static final String IMG_CABINET_LINK_ASSIGN = "cabinetLinkAssign"; //$NON-NLS-1$
public static final String IMG_CANCEL_FORM = "cancelForm"; //$NON-NLS-1$
public static final String IMG_CLINIC = "clinic"; //$NON-NLS-1$
public static final String IMG_CLINICS = "clinics"; //$NON-NLS-1$
public static final String IMG_LOGINWIZ = "computerKey"; //$NON-NLS-1$
public static final String IMG_CONFIRM_FORM = "confirmForm"; //$NON-NLS-1$
public static final String IMG_CONTAINERS = "containers"; //$NON-NLS-1$
public static final String IMG_CONTAINER_TYPES = "containerTypes"; //$NON-NLS-1$
public static final String IMG_DELETE = "delete"; //$NON-NLS-1$
public static final String IMG_DRAWER = "drawer"; //$NON-NLS-1$
public static final String IMG_EDIT_FORM = "editForm"; //$NON-NLS-1$
public static final String IMG_FORM_BG = "formBg"; //$NON-NLS-1$
public static final String IMG_FREEZER = "freezer"; //$NON-NLS-1$
public static final String IMG_HOTEL = "hotel"; //$NON-NLS-1$
public static final String IMG_MAIN_PERSPECTIVE = "mainPerspective"; //$NON-NLS-1$
public static final String IMG_PALLET = "pallet"; //$NON-NLS-1$
public static final String IMG_PATIENT = "patient"; //$NON-NLS-1$
public static final String IMG_COLLECTION_EVENT = "collectionEvent"; //$NON-NLS-1$
public static final String IMG_PRINTER = "printer"; //$NON-NLS-1$
public static final String IMG_RELOAD_FORM = "reloadForm"; //$NON-NLS-1$
public static final String IMG_RESET_FORM = "resetForm"; //$NON-NLS-1$
public static final String IMG_RESULTSET_FIRST = "resultsetFirst"; //$NON-NLS-1$
public static final String IMG_RESULTSET_LAST = "resultsetLast"; //$NON-NLS-1$
public static final String IMG_RESULTSET_NEXT = "resultsetNext"; //$NON-NLS-1$
public static final String IMG_RESULTSET_PREV = "resultsetPrev"; //$NON-NLS-1$
public static final String IMG_SCAN_ASSIGN = "scanAssign"; //$NON-NLS-1$
public static final String IMG_SCAN_LINK = "scanLink"; //$NON-NLS-1$
public static final String IMG_SESSIONS = "sessions"; //$NON-NLS-1$
public static final String IMG_CLINIC_SHIPMENT = "shipment"; //$NON-NLS-1$
public static final String IMG_DISPATCH_SHIPMENT = "dispatch"; //$NON-NLS-1$
public static final String IMG_DISPATCH_SHIPMENT_CREATION =
"dispatchCreation"; //$NON-NLS-1$
public static final String IMG_DISPATCH_SHIPMENT_TRANSIT =
"dispatchTransit"; //$NON-NLS-1$
public static final String IMG_DISPATCH_SHIPMENT_RECEIVING =
"dispatchReceiving"; //$NON-NLS-1$
public static final String IMG_DISPATCH_SHIPMENT_ERROR = "dispatchError"; //$NON-NLS-1$
public static final String IMG_DISPATCH_SHIPMENT_ADD_SPECIMEN =
"dispatchAddSpecimen"; //$NON-NLS-1$
public static final String IMG_SITE = "site"; //$NON-NLS-1$
public static final String IMG_SITES = "sites"; //$NON-NLS-1$
public static final String IMG_STUDIES = "studies"; //$NON-NLS-1$
public static final String IMG_STUDY = "study"; //$NON-NLS-1$
public static final String IMG_USER_ADD = "userAdd"; //$NON-NLS-1$
public static final String IMG_EMAIL = "email"; //$NON-NLS-1$
public static final String IMG_EMAIL_BANNER = "emailBanner"; //$NON-NLS-1$
public static final String IMG_SEARCH = "search"; //$NON-NLS-1$
public static final String IMG_TODAY = "today"; //$NON-NLS-1$
public static final String IMG_CALENDAR = "calendar"; //$NON-NLS-1$
public static final String IMG_BULLET = "bullet"; //$NON-NLS-1$
public static final String IMG_SCAN_EDIT = "scanEdit"; //$NON-NLS-1$
public static final String IMG_SCAN_CLOSE_EDIT = "scanCloseEdit"; //$NON-NLS-1$
public static final String IMG_RECEIVED = "received"; //$NON-NLS-1$
public static final String IMG_SENT = "sent"; //$NON-NLS-1$
public static final String IMG_REQUEST = "request"; //$NON-NLS-1$
public static final String IMG_REQUEST_EDIT = "request_edit"; //$NON-NLS-1$
public static final String IMG_REQUEST_SHIPPED = "request_shipped"; //$NON-NLS-1$
public static final String IMG_REQUEST_FILLED = "request_filled"; //$NON-NLS-1$
public static final String IMG_SPECIMEN = "specimen"; //$NON-NLS-1$
public static final String IMG_LOCK = "lock"; //$NON-NLS-1$
public static final String IMG_UP = "bullet_arrow_up"; //$NON-NLS-1$
public static final String IMG_DOWN = "bullet_arrow_down"; //$NON-NLS-1$
public static final String IMG_REMOVE = "remove"; //$NON-NLS-1$
public static final String IMG_WAND = "wand"; //$NON-NLS-1$
public static final String IMG_HOURGLASS = "hourglass"; //$NON-NLS-1$
public static final String IMG_LOGGING = "logging"; //$NON-NLS-1$
public static final String IMG_PROCESSING = "processing"; //$NON-NLS-1$
public static final String IMG_SAVE_AS_NEW = "saveAsNew"; //$NON-NLS-1$
public static final String IMG_PROCESSING_EVENT = "processingEvent"; //$NON-NLS-1$
public static final String IMG_CHECK = "check"; //$NON-NLS-1$
public static final String IMG_UNCHECK = "uncheck"; //$NON-NLS-1$
public static final String IMG_RESEARCH_GROUP = "research_group"; //$NON-NLS-1$
public static final String IMG_RESEARCH_GROUPS = "research_groups"; //$NON-NLS-1$
public static final String IMG_ERROR = "error"; //$NON-NLS-1$
public static final String IMG_ADMIN = "admin"; //$NON-NLS-1$
private static BgcLogger logger = BgcLogger.getLogger(BgcPlugin.class
.getName());
// The plug-in ID
public static final String PLUGIN_ID = "biobank.gui.common"; //$NON-NLS-1$
// The shared instance
private static BgcPlugin plugin;
/**
* The constructor
*/
public BgcPlugin() {
}
@Override
protected void initializeImageRegistry(ImageRegistry registry) {
registerImage(registry, IMG_DIALOGS, "dialogs.png"); //$NON-NLS-1$
registerImage(registry, IMG_ADD, "add.png"); //$NON-NLS-1$
registerImage(registry, IMG_ARROW_LEFT, "arrow_left.png"); //$NON-NLS-1$
registerImage(registry, IMG_ARROW_LEFT2, "arrow_left2.png"); //$NON-NLS-1$
registerImage(registry, IMG_ARROW_RIGHT, "arrow_right.png"); //$NON-NLS-1$
registerImage(registry, IMG_2_ARROW_LEFT, "2left_arrow.png"); //$NON-NLS-1$
registerImage(registry, IMG_2_ARROW_RIGHT, "2right_arrow.png"); //$NON-NLS-1$
registerImage(registry, IMG_BIN, "bin.png"); //$NON-NLS-1$
registerImage(registry, IMG_BULLET, "bullet.png"); //$NON-NLS-1$
registerImage(registry, IMG_BOX, "bin.png"); //$NON-NLS-1$
registerImage(registry, IMG_CABINET, "cabinet.png"); //$NON-NLS-1$
registerImage(registry, IMG_CABINET_LINK_ASSIGN,
"cabinetLinkAssign.png"); //$NON-NLS-1$
registerImage(registry, IMG_CALENDAR, "calendar.png"); //$NON-NLS-1$
registerImage(registry, IMG_CANCEL_FORM, "cancel.png"); //$NON-NLS-1$
registerImage(registry, IMG_CLINIC, "clinic.png"); //$NON-NLS-1$
registerImage(registry, IMG_CLINICS, "clinics.png"); //$NON-NLS-1$
registerImage(registry, IMG_LOGINWIZ, "loginWiz.png"); //$NON-NLS-1$
registerImage(registry, IMG_CONFIRM_FORM, "confirm.png"); //$NON-NLS-1$
registerImage(registry, IMG_CONTAINERS, "containers.png"); //$NON-NLS-1$
registerImage(registry, IMG_CONTAINER_TYPES, "containerTypes.png"); //$NON-NLS-1$
registerImage(registry, IMG_DELETE, "delete.png"); //$NON-NLS-1$
registerImage(registry, IMG_DRAWER, "drawer.png"); //$NON-NLS-1$
registerImage(registry, IMG_EDIT_FORM, "edit.png"); //$NON-NLS-1$
registerImage(registry, IMG_FORM_BG, "form_banner.bmp"); //$NON-NLS-1$
registerImage(registry, IMG_FREEZER, "freezer.png"); //$NON-NLS-1$
registerImage(registry, IMG_HOTEL, "hotel.png"); //$NON-NLS-1$
registerImage(registry, IMG_MAIN_PERSPECTIVE, "mainPerspective.png"); //$NON-NLS-1$
registerImage(registry, IMG_PALLET, "pallet.png"); //$NON-NLS-1$
registerImage(registry, IMG_PATIENT, "patient.png"); //$NON-NLS-1$
registerImage(registry, IMG_COLLECTION_EVENT, "collectionEvent.png"); //$NON-NLS-1$
registerImage(registry, IMG_PRINTER, "printer.png"); //$NON-NLS-1$
registerImage(registry, IMG_RELOAD_FORM, "reload.png"); //$NON-NLS-1$
registerImage(registry, IMG_RESET_FORM, "reset.png"); //$NON-NLS-1$
registerImage(registry, IMG_RESULTSET_FIRST, "resultset_first.png"); //$NON-NLS-1$
registerImage(registry, IMG_RESULTSET_LAST, "resultset_last.png"); //$NON-NLS-1$
registerImage(registry, IMG_RESULTSET_NEXT, "resultset_next.png"); //$NON-NLS-1$
registerImage(registry, IMG_RESULTSET_PREV, "resultset_previous.png"); //$NON-NLS-1$
registerImage(registry, IMG_SCAN_ASSIGN, "scanAssign.png"); //$NON-NLS-1$
registerImage(registry, IMG_SCAN_LINK, "scanLink.png"); //$NON-NLS-1$
registerImage(registry, IMG_SCAN_EDIT, "scan_edit.png"); //$NON-NLS-1$
registerImage(registry, IMG_SCAN_CLOSE_EDIT, "scan_close_edit.png"); //$NON-NLS-1$
registerImage(registry, IMG_SESSIONS, "sessions.png"); //$NON-NLS-1$
registerImage(registry, IMG_CLINIC_SHIPMENT, "shipment.png"); //$NON-NLS-1$
registerImage(registry, IMG_DISPATCH_SHIPMENT, "dispatch.png"); //$NON-NLS-1$
registerImage(registry, IMG_DISPATCH_SHIPMENT_CREATION,
"dispatch_creation.png"); //$NON-NLS-1$
registerImage(registry, IMG_DISPATCH_SHIPMENT_TRANSIT,
"dispatch_transit.png"); //$NON-NLS-1$
registerImage(registry, IMG_DISPATCH_SHIPMENT_RECEIVING,
"dispatch_receiving.png"); //$NON-NLS-1$
registerImage(registry, IMG_DISPATCH_SHIPMENT_ERROR,
"dispatch_error.png"); //$NON-NLS-1$
registerImage(registry, IMG_DISPATCH_SHIPMENT_ADD_SPECIMEN,
"dispatchScanAdd.png"); //$NON-NLS-1$
registerImage(registry, IMG_REQUEST, "request.png"); //$NON-NLS-1$
registerImage(registry, IMG_REQUEST_EDIT, "request_edit.png"); //$NON-NLS-1$
registerImage(registry, IMG_REQUEST_SHIPPED, "request_shipped.png"); //$NON-NLS-1$
registerImage(registry, IMG_REQUEST_FILLED, "request_filled.png"); //$NON-NLS-1$
registerImage(registry, IMG_SITE, "site.png"); //$NON-NLS-1$
registerImage(registry, IMG_SITES, "sites.png"); //$NON-NLS-1$
registerImage(registry, IMG_STUDIES, "studies.png"); //$NON-NLS-1$
registerImage(registry, IMG_STUDY, "study.png"); //$NON-NLS-1$
registerImage(registry, IMG_EMAIL, "email.png"); //$NON-NLS-1$
registerImage(registry, IMG_EMAIL_BANNER, "email_banner.png"); //$NON-NLS-1$
registerImage(registry, IMG_SEARCH, "search.png"); //$NON-NLS-1$
registerImage(registry, IMG_TODAY, "today.png"); //$NON-NLS-1$
registerImage(registry, IMG_RECEIVED, "received.png"); //$NON-NLS-1$
registerImage(registry, IMG_SENT, "sent.png"); //$NON-NLS-1$
registerImage(registry, IMG_SPECIMEN, "specimen.png"); //$NON-NLS-1$
registerImage(registry, IMG_LOCK, "lock.png"); //$NON-NLS-1$
registerImage(registry, IMG_UP, "bullet_arrow_up.png"); //$NON-NLS-1$
registerImage(registry, IMG_DOWN, "bullet_arrow_down.png"); //$NON-NLS-1$
registerImage(registry, IMG_REMOVE, "remove.png"); //$NON-NLS-1$
registerImage(registry, IMG_WAND, "wand.png"); //$NON-NLS-1$
registerImage(registry, IMG_HOURGLASS, "hourglass.png"); //$NON-NLS-1$
registerImage(registry, IMG_LOGGING, "table_row_delete.png"); //$NON-NLS-1$
registerImage(registry, IMG_PROCESSING, "processingView.png"); //$NON-NLS-1$
registerImage(registry, IMG_PROCESSING_EVENT,
"processingPerspective.png"); //$NON-NLS-1$
registerImage(registry, IMG_SAVE_AS_NEW, "application_form_add.png"); //$NON-NLS-1$
registerImage(registry, IMG_CHECK, "checked.gif"); //$NON-NLS-1$
registerImage(registry, IMG_UNCHECK, "unchecked.gif"); //$NON-NLS-1$
registerImage(registry, IMG_RESEARCH_GROUPS, "research_groups.png"); //$NON-NLS-1$
registerImage(registry, IMG_RESEARCH_GROUP, "research_group.png"); //$NON-NLS-1$
registerImage(registry, IMG_ERROR, "error.png"); //$NON-NLS-1$
registerImage(registry, IMG_ADMIN, "superAdmin.png"); //$NON-NLS-1$
}
public void registerImage(ImageRegistry registry, String key,
String fileName) {
try {
IPath path = new Path("icons/" + fileName); //$NON-NLS-1$
URL url = FileLocator.find(getBundle(), path, null);
if (url != null) {
ImageDescriptor desc = ImageDescriptor.createFromURL(url);
registry.put(key, desc);
} else {
logger.error("Could not get URL for image: key" + key //$NON-NLS-1$
+ ", filname " + fileName); //$NON-NLS-1$
}
} catch (Exception e) {
logger.error("Error registering an image", e); //$NON-NLS-1$
}
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
* )
*/
@Override
public void start(BundleContext context) throws Exception {
super.start(context);
plugin = this;
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
* )
*/
@Override
public void stop(BundleContext context) throws Exception {
plugin = null;
super.stop(context);
}
/**
* Returns the shared instance
*
* @return the shared instance
*/
public static BgcPlugin getDefault() {
return plugin;
}
/**
* Display an information message
*/
public static void openMessage(String title, String message) {
MessageDialog.openInformation(PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getShell(), title, message);
}
/**
* Display an information message
*/
public static boolean openConfirm(String title, String message) {
return MessageDialog.openConfirm(PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getShell(), title, message);
}
/**
* Display an error message
*/
public static void openError(String title, String message) {
openError(title, message, null, null);
}
/**
* Display an error message with exception message and log the exception
*/
public static void openError(String title, Exception e) {
openError(title, null, e, null);
}
/**
* Display an error message with exception message and log the exception
*/
public static void openError(String title, String message, Exception e) {
openError(title, message, e, null);
}
/**
* Display an error message with exception message and log the exception
*/
public static void openError(String title, String message, Exception e,
String secondMessage) {
String msg = message;
if ((msg == null) && (e != null)) {
msg = e.getMessage();
if (((msg == null) || msg.isEmpty()) && (e.getCause() != null)) {
msg = e.getCause().getMessage();
}
}
if (msg == null) {
msg = ""; //$NON-NLS-1$
}
if (secondMessage != null) {
if (!msg.isEmpty()) {
msg += "\n"; //$NON-NLS-1$
}
msg += secondMessage;
}
MessageDialog.openError(PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getShell(), title, msg);
if (e != null)
logger.error(title, e);
}
/**
* Display an error message asynchronously
*/
public static void openAsyncError(final String title, final String message,
final Exception e, final String secondMessage) {
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
openError(title, message, e, secondMessage);
}
});
}
public static void openAsyncError(final String title, final String message) {
openAsyncError(title, message, null, null);
}
public static void openAsyncError(final String title, final String message,
final Exception e) {
openAsyncError(title, message, e, null);
}
public static void openAsyncError(String title, Exception e,
String secondMessage) {
openAsyncError(title, null, e, secondMessage);
}
public static void openAsyncError(String title, Exception e) {
openAsyncError(title, null, e, null);
}
/**
* Display an info message
*/
public static void openInformation(String title, String message) {
MessageDialog.openInformation(PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getShell(), title, message);
}
public static void openAsyncInformation(final String title,
final String message) {
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
MessageDialog.openInformation(PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getShell(), title, message);
}
});
}
/**
* Display remote access error message
*/
public static void openRemoteAccessErrorMessage(Throwable ex) {
openAsyncError(Messages.BgcPlugin_connection_error_title,
Messages.BgcPlugin_database_error_msg);
if (ex != null) {
logger.error(Messages.BgcPlugin_connection_error_title, ex);
}
}
/**
* Display remote connect error message
*/
public static void openRemoteConnectErrorMessage(Throwable ex) {
openAsyncError(Messages.BgcPlugin_connection_error_title,
Messages.BgcPlugin_connection_error_msg);
if (ex != null) {
logger.error(Messages.BgcPlugin_connection_error_title, ex);
}
}
public static void openAccessDeniedErrorMessage() {
openAccessDeniedErrorMessage(null);
}
/**
* Display remote access error message
*/
public static void openAccessDeniedErrorMessage(Throwable ex) {
openAsyncError(Messages.BgcPlugin_access_denied_error_title,
Messages.BgcPlugin_access_denied_error_msg);
if (ex != null) {
logger.error(Messages.BgcPlugin_connection_error_title, ex);
}
}
public static LoginPermissionSessionState getLoginStateSourceProvider() {
IWorkbenchWindow window = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow();
ISourceProviderService service = (ISourceProviderService) window
.getService(ISourceProviderService.class);
return (LoginPermissionSessionState) service
.getSourceProvider(LoginPermissionSessionState.LOGIN_STATE_SOURCE_NAME);
}
}