001 package org.jgnuplot;
002
003 /**
004 * This class models all possible values for the line style option for a graph
005 * in a plot command.
006 *
007 * @author Pander
008 */
009 public final class LineType {
010 private LineType() {
011 }
012
013 public static final int NOT_SPECIFIED = -2;
014 /**
015 * <font face="Courier New, courier" color="#000000">===========</font> is a
016 * black solid bold line on screen.
017 */
018 public static final int SCREEN_BLACK_SOLID_BOLD = -1;
019 /**
020 * <font face="Courier New, courier" color="#000000">. . . . .</font> is a
021 * black dotted line on screen.
022 */
023 public static final int SCREEN_BLACK_DOTS = 0;
024 /**
025 * <font face="Courier New, courier" color="#ff0000">___________</font> is a
026 * red solid line on screen.
027 */
028 public static final int SCREEN_RED = 1;
029 /**
030 * <font face="Courier New, courier" color="#00ff00">___________</font> is a
031 * green solid line on screen.
032 */
033 public static final int SCREEN_GREEN = 2;
034 /**
035 * <font face="Courier New, courier" color="#0000ff">___________</font> is a
036 * blue solid line on screen.
037 */
038 public static final int SCREEN_BLUE = 3;
039 /**
040 * <font face="Courier New, courier" color="#00ffff">___________</font> is a
041 * magenta solid line on screen.
042 */
043 public static final int SCREEN_MAGENTA = 4;
044 /**
045 * <font face="Courier New, courier" color="#ff00ff">___________</font> is a
046 * cyan solid line on screen.
047 */
048 public static final int SCREEN_CYAN = 5;
049 /**
050 * <font face="Courier New, courier" color="#a0522d">___________</font> is a
051 * brown solid line on screen.
052 */
053 public static final int SCREEN_BROWN = 6;
054 /**
055 * <font face="Courier New, courier" color="#ffa500">___________</font> is
056 * yellow solid line on screen.
057 */
058 public static final int SCREEN_YELLOW = 7;
059 /**
060 * <font face="Courier New, courier" color="#ff7f50">___________</font> is
061 * salmon solid line on screen.
062 */
063 public static final int SCREEN_SALMON = 8;
064 /**
065 * <font face="Courier New, courier">=========</font> is solid bold line on
066 * screen.
067 */
068 public static final int POSTSCRIPT_SOLID_BOLD = -1;
069 /**
070 * <font face="Courier New, courier">. . . . .</font> is a 'dot space' line
071 * in PostScript.
072 */
073 public static final int POSTSCRIPT_DOT_SPACE = 0;
074 /**
075 * <font face="Courier New, courier">_________</font> is a solid line in
076 * PostScript.
077 */
078 public static final int POSTSCRIPT_SOLID = 1;
079 /**
080 * <font face="Courier New, courier">---------</font> is a dashed line in
081 * PostScript.
082 */
083 public static final int POSTSCRIPT_DASHES = 2;
084 /**
085 * <font face="Courier New, courier">- - - - -</font> is a 'dash space' line
086 * in PostScript.
087 */
088 public static final int POSTSCRIPT_DASH_SPACE = 3;
089 /**
090 * <font face="Courier New, courier">.........</font> is a dotted line in
091 * PostScript.
092 */
093 public static final int POSTSCRIPT_DOTS = 4;
094 /**
095 * <font face="Courier New, courier">-.-.-.-.-</font> is a 'dash dot' line
096 * in PostScript.
097 */
098 public static final int POSTSCRIPT_DASH_DOT = 5;
099 /**
100 * <font face="Courier New, courier">- . - . -</font> is a 'dash space dot
101 * space' line in PostScript.
102 */
103 public static final int POSTSCRIPT_DASH_SPACE_DOT_SPACE = 6;
104 /**
105 * <font face="Courier New, courier">-- -- -- </font> is a 'dash dash space'
106 * line in PostScript.
107 */
108 public static final int POSTSCRIPT_DASH_DASH_SPACE = 7;
109 /**
110 * <font face="Courier New, courier">--- --- </font> is a 'dash dash dash
111 * space' line in PostScript.
112 */
113 public static final int POSTSCRIPT_DASH_DASH_DASH_SPACE = 8;
114 /**
115 * <font face="Courier New, courier">---- ----</font> is a 'dash dash dash
116 * dash space' line in PostScript.
117 */
118 public static final int POSTSCRIPT_DASH_DASH_DASH_DASH_SPACE = 9;
119
120 /**
121 * This method converts screen line type to PostScript line type because the
122 * underlying integer values are not identical.
123 *
124 * @param theLineType
125 * screen line type
126 * @return postscript line type.
127 */
128 public static int convertScreenToPostscript(int theLineType) {
129 switch (theLineType) {
130 case SCREEN_BLACK_SOLID_BOLD:
131 return POSTSCRIPT_SOLID;
132 default:
133 return POSTSCRIPT_SOLID; // TODO not all are covered
134 }
135 }
136
137 /**
138 * This method converts PostScript line type to screen line type because the
139 * underlying integer values are not identical.
140 *
141 * @param theLineType
142 * PostScript line type
143 * @return screen line type.
144 */
145 public static int convertPostscriptToScreen(int theLineType) {
146 switch (theLineType) {
147 case POSTSCRIPT_SOLID:
148 return SCREEN_BLACK_SOLID_BOLD;
149 default:
150 return SCREEN_BLACK_SOLID_BOLD; // TODO not all are covered
151 }
152 }
153 }