View Javadoc

1   // Copyright 2000, CERN, Geneva, Switzerland and University of Santa Cruz, California, U.S.A.
2   package org.freehep.graphicsio;
3   
4   import java.awt.Dimension;
5   import java.awt.Insets;
6   import java.util.HashMap;
7   import java.util.Map;
8   
9   /**
10   * This class defines a set of constants which describe a page. Convenience
11   * objects are provided for various margins, orientations, rescaling, and
12   * standard page sizes.
13   * 
14   * @author Charles Loomis
15   * @author Mark Donszelmann
16   * @version $Id: PageConstants.java 10233 2007-01-03 18:59:24Z duns $
17   */
18  public class PageConstants {
19  
20      private PageConstants() {
21      }
22  
23      // Orientation
24      public static final String ORIENTATION = "Orientation";
25  
26      public static final String PORTRAIT = "Portrait";
27  
28      public static final String LANDSCAPE = "Landscape";
29  
30      public static final String BEST_FIT = "Best Fit";
31  
32      public final static String[] getOrientationList() {
33          return new String[] { PORTRAIT, LANDSCAPE, /* BEST_FIT */};
34      }
35  
36      // Page Sizes
37      public static final String PAGE_SIZE = "PageSize";
38  
39      public static final String INTERNATIONAL = "International";
40  
41      public static final String A3 = "A3";
42  
43      public static final String A4 = "A4";
44  
45      public static final String A5 = "A5";
46  
47      public static final String A6 = "A6";
48  
49      /**
50       * Value for CUSTOM_PAGE_SIZE and Key for a Dimension
51       * object if custom size is used
52       */
53      public static final String CUSTOM_PAGE_SIZE = "Custom PageSize";
54  
55      public static final String LETTER = "Letter";
56  
57      public static final String LEGAL = "Legal";
58  
59      public static final String EXECUTIVE = "Executive";
60  
61      public static final String LEDGER = "Ledger";
62  
63      public static final String[] getSizeList() {
64          return new String[] { INTERNATIONAL, A4, LETTER, A3, LEGAL, A5, A6,
65                  EXECUTIVE, LEDGER };
66      }
67  
68      public static final Dimension getSize(String size) {
69          return getSize(size, PORTRAIT);
70      }
71  
72      public static final Dimension getSize(String size, String orientation) {
73          Dimension d = (Dimension) sizeTable.get(size);
74          if (orientation.equals(PORTRAIT)) {
75              return d;
76          } else {
77              return new Dimension(d.height, d.width);
78          }
79      }
80  
81      private static final Map sizeTable = new HashMap();
82      static {
83          sizeTable.put(INTERNATIONAL, new Dimension(595, 791));
84          sizeTable.put(A3, new Dimension(842, 1191));
85          sizeTable.put(A4, new Dimension(595, 842));
86          sizeTable.put(A5, new Dimension(420, 595));
87          sizeTable.put(A6, new Dimension(298, 420));
88          sizeTable.put(LETTER, new Dimension(612, 791));
89          sizeTable.put(LEGAL, new Dimension(612, 1009));
90          sizeTable.put(EXECUTIVE, new Dimension(539, 720));
91          sizeTable.put(LEDGER, new Dimension(791, 1225));
92      }
93  
94      // Margins
95      public static final String PAGE_MARGINS = "PageMargins";
96  
97      public static final String SMALL = "Small";
98  
99      public static final String MEDIUM = "Medium";
100 
101     public static final String LARGE = "Large";
102 
103     private static final Map marginTable = new HashMap();
104     static {
105         marginTable.put(SMALL, new Insets(20, 20, 20, 20));
106         marginTable.put(MEDIUM, new Insets(30, 30, 30, 30));
107         marginTable.put(LARGE, new Insets(40, 40, 40, 40));
108     }
109 
110     public static final Insets getMargins(String size) {
111         return (Insets) marginTable.get(size);
112     }
113 
114     public static final Insets getMargins(Insets insets, String orientation) {
115         if (orientation.equals(PORTRAIT)) {
116             return insets;
117         } else {
118             // turn page to right
119             return new Insets(insets.left, insets.bottom, insets.right,
120                     insets.top);
121         }
122     }
123 
124     // Fit
125     public static final String FIT_TO_PAGE = "FitToPage";
126 
127     // FIXME: should move?
128     public static final String TRANSPARENT = "Transparent";
129 
130     public static final String BACKGROUND = "Background";
131 
132     public static final String BACKGROUND_COLOR = "BackgroundColor";
133 }