package org.csstudio.swt.xygraph.util; import org.csstudio.swt.xygraph.figures.XYGraph; import org.eclipse.core.resources.IFile; import org.eclipse.swt.graphics.Cursor; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.ImageData; import org.eclipse.swt.graphics.RGB; import org.eclipse.swt.widgets.Display; public abstract class SingleSourceHelper { private static final SingleSourceHelper IMPL; static { IMPL = (SingleSourceHelper)ImplementationLoader.newInstance(SingleSourceHelper.class); } public static Cursor createCursor( Display display, ImageData imageData, int width, int height, int backUpSWTCursorStyle){ return IMPL.createInternalCursor(display, imageData, width, height, backUpSWTCursorStyle); } public static Image createVerticalTextImage(String text, Font font, RGB color, boolean upToDown){ return IMPL.createInternalVerticalTextImage(text, font, color, upToDown); } public static Image getXYGraphSnapShot(XYGraph xyGraph){ return IMPL.getInternalXYGraphSnapShot(xyGraph); } public static String getImageSavePath(){ return IMPL.getInternalImageSavePath(null); } public static String getImageSavePath(String[] filter){ return IMPL.getInternalImageSavePath(filter); } public static IFile getProjectSaveFileLocation(String name){ return IMPL.getProjectSaveFilePath(name); } protected abstract String getInternalImageSavePath(final String[] filterExtensions); protected abstract IFile getProjectSaveFilePath(String name); protected abstract Cursor createInternalCursor( Display display, ImageData imageData, int width, int height,int backUpSWTCursorStyle); protected abstract Image createInternalVerticalTextImage( String text, Font font, RGB color, boolean upToDown); protected abstract Image getInternalXYGraphSnapShot(XYGraph xyGraph); }