package org.celllife.idart.gui.utils;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.log4j.Logger;
import org.eclipse.jface.resource.ColorRegistry;
import org.eclipse.jface.resource.FontRegistry;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
/**
* Utility class used to store an instance of a FontRegisty, a ColorRegistry and
* an ImageRegistry.
*
* @see ImageRegistry
* @see FontRegistry
* @see ColorRegistry
*/
public class ResourceUtils {
/**
* private constructor to prevent instantiation
*/
private ResourceUtils() {
}
private static final FontRegistry fontRegistry = new FontRegistry();
private static final ColorRegistry colorRegistry = new ColorRegistry();
private static final ImageRegistry imageRegistry = new ImageRegistry();
private static Logger log = Logger.getLogger(ResourceUtils.class);
static {
createFontRegisty();
createColorRegistry();
createImageRegistry();
}
private static void createFontRegisty() {
fontRegistry.put(iDartFont.VERASANS_8.name(),
new FontData[] { new FontData("Bitstream Vera Sans", 8,
SWT.NORMAL) });
fontRegistry.put(iDartFont.VERASANS_8_ITALIC.name(),
new FontData[] { new FontData("Bitstream Vera Sans", 8,
SWT.ITALIC) });
fontRegistry.put(iDartFont.VERASANS_8_BOLD.name(),
new FontData[] { new FontData("Bitstream Vera Sans", 8,
SWT.BOLD) });
fontRegistry.put(iDartFont.VERASANS_10.name(),
new FontData[] { new FontData("Bitstream Vera Sans", 10,
SWT.NORMAL) });
fontRegistry.put(iDartFont.VERASANS_10_ITALIC.name(),
new FontData[] { new FontData("Bitstream Vera Sans", 10,
SWT.ITALIC) });
fontRegistry.put(iDartFont.VERASANS_10_BOLD.name(),
new FontData[] { new FontData("Bitstream Vera Sans", 10,
SWT.BOLD) });
fontRegistry.put(iDartFont.VERASANS_11.name(),
new FontData[] { new FontData("Bitstream Vera Sans", 11,
SWT.NORMAL) });
fontRegistry.put(iDartFont.VERASANS_12.name(),
new FontData[] { new FontData("Bitstream Vera Sans", 12,
SWT.NORMAL) });
fontRegistry.put(iDartFont.VERASANS_12_ITALIC.name(),
new FontData[] { new FontData("Bitstream Vera Sans", 12,
SWT.ITALIC) });
fontRegistry.put(iDartFont.VERASANS_12_BOLDITALIC.name(),
new FontData[] { new FontData("Bitstream Vera Sans", 12,
SWT.ITALIC | SWT.BOLD) });
fontRegistry.put(iDartFont.VERASANS_14.name(),
new FontData[] { new FontData("Bitstream Vera Sans", 14,
SWT.NORMAL) });
fontRegistry.put(iDartFont.VERASANS_16.name(),
new FontData[] { new FontData("Bitstream Vera Sans", 16,
SWT.NORMAL) });
fontRegistry.put(iDartFont.VERASANS_20.name(),
new FontData[] { new FontData("Bitstream Vera Sans", 20,
SWT.NORMAL) });
fontRegistry.put(iDartFont.VERASANS_24.name(),
new FontData[] { new FontData("Bitstream Vera Sans", 24,
SWT.NORMAL) });
}
private static void createColorRegistry() {
colorRegistry.put(iDartColor.RED.name(), Display.getDefault()
.getSystemColor(SWT.COLOR_RED).getRGB());
colorRegistry.put(iDartColor.GREEN.name(), Display.getDefault()
.getSystemColor(SWT.COLOR_GREEN).getRGB());
colorRegistry.put(iDartColor.YELLOW.name(), Display.getDefault()
.getSystemColor(SWT.COLOR_YELLOW).getRGB());
colorRegistry.put(iDartColor.BLACK.name(), Display.getDefault()
.getSystemColor(SWT.COLOR_BLACK).getRGB());
colorRegistry.put(iDartColor.GRAY.name(), Display.getDefault()
.getSystemColor(SWT.COLOR_GRAY).getRGB());
colorRegistry.put(iDartColor.WHITE.name(), Display.getDefault()
.getSystemColor(SWT.COLOR_WHITE).getRGB());
colorRegistry.put(iDartColor.BLUE.name(), Display.getDefault()
.getSystemColor(SWT.COLOR_BLUE).getRGB());
colorRegistry.put(iDartColor.LIST_BACKGROUND.name(), Display
.getDefault().getSystemColor(SWT.COLOR_LIST_BACKGROUND)
.getRGB());
colorRegistry.put(iDartColor.WIDGET_BACKGROUND.name(), Display
.getDefault().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)
.getRGB());
colorRegistry.put(iDartColor.WIDGET_NORMAL_SHADOW_BACKGROUND.name(),
Display.getDefault().getSystemColor(
SWT.COLOR_WIDGET_NORMAL_SHADOW).getRGB());
colorRegistry.put(iDartColor.WIDGET_LIGHT_SHADOW_BACKGROUND.name(),
Display.getDefault().getSystemColor(
SWT.COLOR_WIDGET_LIGHT_SHADOW).getRGB());
colorRegistry.put(iDartColor.WIDGET_TITLE_INACTIVE_FOREGROUND.name(),
Display.getDefault().getSystemColor(
SWT.COLOR_TITLE_INACTIVE_FOREGROUND).getRGB());
colorRegistry.put(iDartColor.PALE_PEACH.name(), new Color(Display
.getDefault(), 239, 217, 172).getRGB());
}
private static void createImageRegistry() {
try {
URL baseDir = (new File("img" + File.separator)).toURI().toURL();
imageRegistry.put(iDartImage.ARROWLEFT_40X34.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"ArrowLeft_40x34.jpg")));
imageRegistry.put(iDartImage.ARROWLEFT.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "ArrowLeft.jpg")));
imageRegistry.put(iDartImage.ARROWRIGHT_40X34.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"ArrowRight_40x34.jpg")));
imageRegistry.put(iDartImage.ARROWRIGHT.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "ArrowRight.jpg")));
imageRegistry.put(iDartImage.ARVSTARTDATE_50X43.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"ARVStartDate_50x43.jpg")));
imageRegistry.put(iDartImage.BACKARROW.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "BackArrow.jpg")));
imageRegistry.put(iDartImage.CHILD_30X26.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "Child_30x26.jpg")));
imageRegistry.put(iDartImage.CHILD_50X43.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "Child_50x43.jpg")));
imageRegistry.put(iDartImage.CLINIC.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "Clinic.jpg")));
imageRegistry.put(iDartImage.DISPENSEPACKAGE.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"DispensePackage.jpg")));
imageRegistry.put(iDartImage.DISPENSEPACKAGENOW_40X34.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"DispensePackageNow_40x34.jpg")));
imageRegistry.put(iDartImage.DISPENSEPACKAGES.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"DispensePackages.jpg")));
imageRegistry.put(iDartImage.DOCTOR_30X26.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "Doctor_30x26.jpg")));
imageRegistry.put(iDartImage.DOCTOR.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "Doctor.jpg")));
imageRegistry.put(iDartImage.DOWNARROW_30X26.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"DownArrow_30x26.jpg")));
imageRegistry.put(iDartImage.DRUG_30X26.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "Drug_30x26.jpg")));
imageRegistry.put(iDartImage.DRUG_40X34.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "Drug_40x34.jpg")));
imageRegistry.put(iDartImage.DRUGALLERGY.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "DrugAllergy.jpg")));
imageRegistry.put(iDartImage.DRUGGROUP.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "DrugGroup.jpg")));
imageRegistry.put(iDartImage.DRUG.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "Drug.jpg")));
imageRegistry.put(iDartImage.FINAL_LOGO.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "final_logo.png")));
imageRegistry.put(iDartImage.GENERALADMIN.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "GeneralAdmin.jpg")));
imageRegistry.put(iDartImage.HELP.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "Help.jpg")));
imageRegistry.put(iDartImage.HOURGLASS.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "Hourglass.jpg")));
imageRegistry.put(iDartImage.LEFTARROW_30X26.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"LeftArrow_30x26.jpg")));
imageRegistry.put(iDartImage.LOGO_GRAPHIC.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "logo_graphic.png")));
imageRegistry.put(iDartImage.LOGO_IDART.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "Logo_iDART.png")));
imageRegistry.put(iDartImage.OUTGOINGPACKAGES.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"OutgoingPackages.jpg")));
imageRegistry.put(iDartImage.PACKAGEDELETE.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "PackageDelete.jpg")));
imageRegistry.put(iDartImage.PACKAGERETURN.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "PackageReturn.jpg")));
imageRegistry.put(iDartImage.PACKAGESARRIVE.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "PackagesArrive.jpg")));
imageRegistry.put(iDartImage.PACKAGESAWAITINGPICKUP_40X34.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"PackagesAwaitingPickup_40x34.jpg")));
imageRegistry.put(iDartImage.PACKAGESAWAITINGPICKUP.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"PackagesAwaitingPickup.jpg")));
imageRegistry.put(iDartImage.PATIENTADMIN.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "PatientAdmin.jpg")));
imageRegistry.put(iDartImage.PATIENTARRIVES.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "PatientArrives.jpg")));
imageRegistry.put(iDartImage.PATIENTDUPLICATES_30X26.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"PatientDuplicates_30x26.jpg")));
imageRegistry.put(iDartImage.PATIENTDUPLICATES.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"PatientDuplicates.jpg")));
imageRegistry.put(iDartImage.PATIENTINFOLABEL_40X34.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"PatientInfoLabel_40x34.jpg")));
imageRegistry.put(iDartImage.PATIENTINFOLABEL.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"PatientInfoLabel.jpg")));
imageRegistry.put(iDartImage.PATIENTNEW.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "PatientNew.jpg")));
imageRegistry.put(iDartImage.PATIENTUPDATE.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "PatientUpdate.jpg")));
imageRegistry.put(iDartImage.PATIENTUPDATE.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "PatientUpdate.PNG")));
imageRegistry.put(iDartImage.PAVAS.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "PAVAS.jpg")));
imageRegistry.put(iDartImage.PAVASVISITS.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "PAVASVisits.jpg")));
imageRegistry.put(iDartImage.PAVASSTATS.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "PAVASStats.jpg")));
imageRegistry.put(iDartImage.PHARMACYUSER.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "PharmacyUser.jpg")));
imageRegistry.put(iDartImage.PRESCRIPTIONADDDRUG_30X26.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"PrescriptionAddDrug_30x26.jpg")));
imageRegistry.put(iDartImage.PRESCRIPTIONADDDRUG.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"PrescriptionAddDrug.jpg")));
imageRegistry.put(iDartImage.PRESCRIPTIONDELETE.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"PrescriptionDelete.jpg")));
imageRegistry.put(iDartImage.PRESCRIPTIONNEW_30X26.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"PrescriptionNew_30x26.jpg")));
imageRegistry.put(iDartImage.PRESCRIPTIONNEW.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"PrescriptionNew.jpg")));
imageRegistry.put(iDartImage.REDOPACKAGE_40X34.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"RedoPackage_40x34.jpg")));
imageRegistry.put(iDartImage.REDOPACKAGE.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "RedoPackage.jpg")));
imageRegistry.put(iDartImage.REPORT_ACTIVEPATIENTS.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"Report_ActivePatients.jpg")));
imageRegistry.put(iDartImage.REPORT_OUTGOINGPACKAGES.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"Report_OutgoingPackages.jpg")));
imageRegistry.put(iDartImage.REPORT_PACKAGESARRIVE.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"Report_PackagesArrive.jpg")));
imageRegistry.put(iDartImage.REPORT_PACKAGESSCANNEDIN.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"Report_PackagesScannedIn.jpg")));
imageRegistry.put(iDartImage.REPORT_PACKAGESSCANNEDOUT.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"Report_PackagesScannedOut.jpg")));
imageRegistry.put(iDartImage.REPORT_PACKAGETRACKING.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"Report_PackageTracking.jpg")));
imageRegistry.put(iDartImage.REPORT_PATIENTDEFAULTERS.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"Report_PatientDefaulters.jpg")));
imageRegistry.put(iDartImage.REPORT_PATIENTHISTORY_30X26.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"Report_PatientHistory_30x26.jpg")));
imageRegistry.put(iDartImage.REPORT_PATIENTHISTORY.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"Report_PatientHistory.jpg")));
imageRegistry.put(iDartImage.REPORTS.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "Reports.jpg")));
imageRegistry.put(iDartImage.REPORT_STOCKCONTROLPERCLINIC.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"Report_StockControlPerClinic.jpg")));
imageRegistry.put(iDartImage.REPORT_STOCKCONTROLPERDRUG.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"Report_StockControlPerDrug.jpg")));
imageRegistry.put(iDartImage.RIGHTARROW_30X26.name(),
ImageDescriptor.createFromURL(new URL(baseDir,
"RightArrow_30x26.jpg")));
imageRegistry.put(iDartImage.SPLASH.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "splash.png")));
imageRegistry.put(iDartImage.STOCKCONTROL.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "StockControl.jpg")));
imageRegistry.put(iDartImage.STOCKDELETE.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "StockDelete.jpg")));
imageRegistry.put(iDartImage.UNUSED.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "Unused.jpg")));
imageRegistry.put(iDartImage.UPARROW_30X26.name(), ImageDescriptor
.createFromURL(new URL(baseDir, "UpArrow_30x26.jpg")));
} catch (MalformedURLException m) {
log.error(m);
}
}
/**
* Returns a Font object that can be used by an interface element. Fonts are
* stored in a FontRegistry and therefore do not have to be disposed outside
* of this class.
*
* @param theFont
* iDartFont
* @return the Font specified by the iDartFont enum.
*/
public static Font getFont(iDartFont theFont) {
if (!fontRegistry.hasValueFor(theFont.name())) {
log.warn("No font defined for fontKey: " + theFont.name());
}
return fontRegistry.get(theFont.name());
}
/**
* Returns a Color object that can be used by an interface element. Colors
* are stored in a ColorRegistry and therefore do not have to be disposed
* outside of this class.
*
* @param theColor
* iDartColor
* @return the Color specified by the iDartColor enum.
*/
public static Color getColor(iDartColor theColor) {
if (!colorRegistry.hasValueFor(theColor.name())) {
log.warn("No color defined for colorKey: " + theColor.name());
}
return colorRegistry.get(theColor.name());
}
/**
* Returns a Image object that can be used by an interface element. Images
* are stored in a ImageRegistry and therefore do not have to be disposed
* outside of this class.
*
* @param theiDartImage
* iDartImage
* @return the Image specified by iDartImage enum.
*/
public static Image getImage(iDartImage theiDartImage) {
Image theImage = imageRegistry.get(theiDartImage.name());
if (theImage == null) {
log.warn("No image defined for imageKey: " + theiDartImage.name());
}
return theImage;
}
}