package org.openlca.app.rcp;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.application.IWorkbenchConfigurer;
import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
import org.eclipse.ui.application.WorkbenchAdvisor;
import org.eclipse.ui.application.WorkbenchWindowAdvisor;
import org.eclipse.ui.internal.IWorkbenchGraphicConstants;
import org.eclipse.ui.internal.WorkbenchImages;
import org.openlca.app.logging.Console;
import org.openlca.app.logging.LoggerPreference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@SuppressWarnings("restriction")
public class RcpWorkbenchAdvisor extends WorkbenchAdvisor {
private static final String PERSPECTIVE_ID = "perspectives.standard";
@Override
public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(
IWorkbenchWindowConfigurer configurer) {
return new RcpWindowAdvisor(configurer);
}
@Override
public String getInitialWindowPerspectiveId() {
return PERSPECTIVE_ID;
}
@Override
public void initialize(IWorkbenchConfigurer configurer) {
super.initialize(configurer);
configurer.setSaveAndRestore(false);
if (LoggerPreference.getShowConsole()) {
Console.show();
}
changeWorkbenchImages();
}
/**
* There is no official method/extension point for replacing the shared
* workbench images. Thus, we access the internal WorkbenchImages class here
* and replace some images with our own here.
*/
private void changeWorkbenchImages() {
try {
WorkbenchImages.declareImage(
IWorkbenchGraphicConstants.IMG_WIZBAN_IMPORT_WIZ,
RcpActivator.getImageDescriptor("icons/wizard/import.png"),
true);
WorkbenchImages.declareImage(
IWorkbenchGraphicConstants.IMG_WIZBAN_EXPORT_WIZ,
RcpActivator.getImageDescriptor("icons/wizard/export.png"),
true);
WorkbenchImages.declareImage(
ISharedImages.IMG_OBJ_FOLDER,
RcpActivator.getImageDescriptor("icons/folder_open.png"),
true);
} catch (Exception e) {
Logger log = LoggerFactory.getLogger(getClass());
log.error("failed to patch workbench images", e);
}
}
}