00001 00004 package edu.stanford.hci.r3.units; 00005 00006 import edu.stanford.hci.r3.config.Configuration; 00007 00019 public class Pixels extends Units { 00020 00024 public static final String CONFIG_FILE_KEY = "pixels.pixelsperinch.file"; 00025 00026 public static final String CONFIG_FILE_VALUE = "/config/PixelsPerInch.xml"; 00027 00028 private static final double DEFAULT_PIXELS_PER_INCH = readPixelsPerInchFromConfigFile(); 00029 00033 public static final Pixels ONE = new Pixels(1); 00034 00038 private static final String PROPERTY_NAME = "pixelsPerInch"; 00039 00044 public static Pixels getPixelsPerInchObject(int ppi) { 00045 return new Pixels(1, ppi); 00046 } 00047 00054 private static double readPixelsPerInchFromConfigFile() { 00055 final String property = Configuration.getPropertyFromConfigFile(PROPERTY_NAME, 00056 CONFIG_FILE_KEY); 00057 final double ppi = Double.parseDouble(property); 00058 return ppi; 00059 } 00060 00064 private double pixelsPerInch = DEFAULT_PIXELS_PER_INCH; 00065 00069 public Pixels() { 00070 super(1); 00071 } 00072 00076 public Pixels(double numPixels) { 00077 super(numPixels); 00078 } 00079 00083 public Pixels(double numPixels, double pixPerInch) { 00084 super(numPixels); 00085 pixelsPerInch = pixPerInch; 00086 } 00087 00091 @Override 00092 protected double getNumberOfUnitsInOneInch() { 00093 return pixelsPerInch; 00094 } 00095 00100 public double getPixelsPerInch() { 00101 return pixelsPerInch; 00102 } 00103 }