* getfont, getmark, getlinestyle and getsymbol removed. Please use ged instead.
[scilab.git] / scilab / modules / graph / src / java / org / scilab / modules / graph / utils / Font.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) DIGITEO - 2010-2010 - Clement DAVID <clement.david@scilab.org>
4  *
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at
9  * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
10  *
11  */
12
13 package org.scilab.modules.graph.utils;
14
15 import java.awt.Color;
16
17 import com.mxgraph.util.mxConstants;
18
19 /**
20  * Font list from Scilab xlfont().
21  */
22 public enum Font {
23     /** xlfont(0) */
24     COURIER(java.awt.Font.MONOSPACED),
25     /** xlfont(1) */
26     SYMBOL(java.awt.Font.DIALOG),
27     /** xlfont(2) */
28     SERIF(java.awt.Font.SERIF),
29     /** xlfont(3) */
30     SERIF_ITALIC(java.awt.Font.SERIF, mxConstants.FONT_ITALIC),
31     /** xlfont(4) */
32     SERIF_BOLD(java.awt.Font.SERIF, mxConstants.FONT_BOLD),
33     /** xlfont(5) */
34     SERIF_BOLD_ITALIC(java.awt.Font.SERIF, mxConstants.FONT_BOLD
35     + mxConstants.FONT_ITALIC),
36     /** xlfont(6) */
37     SANS_SERIF(java.awt.Font.SANS_SERIF),
38     /** xlfont(7) */
39     SANS_SERIF_ITALIC(java.awt.Font.SANS_SERIF, mxConstants.FONT_ITALIC),
40     /** xlfont(8) */
41     SANS_SERIF_BOLD(java.awt.Font.SANS_SERIF, mxConstants.FONT_BOLD),
42     /** xlfont(9) */
43     SANS_SERIF_BOLD_ITALIC(java.awt.Font.SANS_SERIF, mxConstants.FONT_BOLD
44     + mxConstants.FONT_ITALIC);
45
46     private static final Color[] COLORMAP = new Color[] {
47         Color.BLACK,
48         Color.BLUE, Color.GREEN, Color.CYAN, Color.RED, Color.MAGENTA,
49         Color.YELLOW, Color.WHITE, new Color(0, 0, 144),
50         new Color(0, 0, 176), new Color(0, 0, 208),
51         new Color(135, 206, 255), new Color(0, 144, 0),
52         new Color(0, 176, 0), new Color(0, 208, 0), new Color(0, 144, 0),
53         new Color(0, 144, 144), new Color(0, 176, 176),
54         new Color(0, 208, 208), new Color(144, 0, 0), new Color(176, 0, 0),
55         new Color(208, 0, 0), new Color(144, 0, 144),
56         new Color(176, 0, 176), new Color(208, 0, 208),
57         new Color(128, 48, 0), new Color(160, 64, 0),
58         new Color(192, 96, 0), new Color(255, 128, 128),
59         new Color(255, 160, 160), new Color(255, 192, 192),
60         new Color(255, 224, 224), new Color(255, 215, 0)
61     };
62
63     private final String name;
64     private final int modifiers;
65
66     /**
67      * Default constructor.
68      *
69      * @param name
70      *            the name of the font
71      */
72     private Font(String name) {
73         this(name, 0);
74     }
75
76     /**
77      * Cstr
78      *
79      * @param name
80      *            the name of the font
81      * @param modifiers
82      *            the modifiers value
83      */
84     private Font(String name, int modifiers) {
85         this.name = name;
86         this.modifiers = modifiers;
87     }
88
89     /*
90      * Static methods
91      */
92
93     /**
94      * Return the Font for a given Scilab index
95      *
96      * @param index
97      *            the index
98      * @return the associated font
99      */
100     public static Font getFont(int index) {
101         return Font.values()[index % Font.values().length];
102     }
103
104     /**
105      * Map a Scilab size to a Java font size.
106      *
107      * @param scilabSize
108      *            the size of the font (using getfont)
109      * @return the corresponding java size
110      */
111     // CSOFF: MagicNumber
112     public static int getSize(int scilabSize) {
113         final int ret;
114         if (scilabSize <= 0) {
115             ret = 0;
116         } else if (scilabSize < 1) {
117             ret = (13 * scilabSize);
118         } else if (scilabSize > 4) {
119             ret = (7 * (scilabSize - 4) + 17);
120         } else {
121             ret = (int) (13 + 1.2 * (scilabSize - 1));
122         }
123         return ret;
124     }
125
126     // CSON: MagicNumber
127
128     /**
129      * Map a Scilab color to a Java color.
130      *
131      * @param scilabColor
132      *            the color of the font (using getcolor)
133      * @return the corresponding java color
134      */
135     // CSOFF: MagicNumber
136     public static Color getColor(int scilabColor) {
137         return COLORMAP[scilabColor % COLORMAP.length];
138     }
139
140     // CSON: MagicNumber
141
142     /**
143      * Map a Scilab size to a Java font size.
144      *
145      * @param scilabSize
146      *            the size of the font (using getfont)
147      * @return the corresponding java size
148      */
149     public static int getSize(String scilabSize) {
150         return getSize(Integer.parseInt(scilabSize));
151     }
152
153     /**
154      * Map a Scilab color to a Java color.
155      *
156      * @param scilabColor
157      *            the color of the font (using getcolor)
158      * @return the corresponding java color
159      */
160     public static Color getColor(String scilabColor) {
161         return getColor(Integer.parseInt(scilabColor));
162     }
163
164     /*
165      * Accessors
166      */
167
168     /**
169      * @return the name of the font
170      */
171     public String getName() {
172         return name;
173     }
174
175     /**
176      * @return the modifiers
177      */
178     public int getModifiers() {
179         return modifiers;
180     }
181 }