package edu.byu.cs.roots.opg.model; public enum PaperWidth{ wd1("8.5\"",8.5*72),wd2("2'", 24*72), wd3("3'", 36*72), wd4("3'6\"", 42*72);//, wd5("Ha!", 48*72); public double width; public String displayName; private PaperWidth(String displayName, double width){ this.displayName = displayName; this.width = width; } public static PaperWidth getLargest(){ return wd3;} public static PaperWidth findClosestSimpleFit(double width){ return findClosestFit(width*72); } public static PaperWidth findClosestFit(double width){ // System.out.println("trying to fit " + width); PaperWidth tempsize = PaperWidth.values()[0]; PaperWidth max = tempsize; for(PaperWidth psize:PaperWidth.values()) if(psize.width > max.width) max = psize; tempsize = max; for(PaperWidth psize:PaperWidth.values()){ if(psize.width >= width && psize.width < tempsize.width) tempsize = psize; } //TODO This causes the max in the paper width if(tempsize.width < width){ System.out.println("Error chart too big, Chart size required " + width + " max available " + tempsize.width); return getLargest(); } else return tempsize; } public static final double minChartWidth = 1728; public static final double maxChartWidth = 3024; public static final double minMargin = 54; public static final double maxMargin = 72; }