1 /* ============================================================
2 * JRobin : Pure java implementation of RRDTool's functionality
3 * ============================================================
4 *
5 * Project Info: http://www.jrobin.org
6 * Project Lead: Sasa Markovic (saxon@jrobin.org)
7 *
8 * Developers: Sasa Markovic (saxon@jrobin.org)
9 *
10 *
11 * (C) Copyright 2003-2005, by Sasa Markovic.
12 *
13 * This library is free software; you can redistribute it and/or modify it under the terms
14 * of the GNU Lesser General Public License as published by the Free Software Foundation;
15 * either version 2.1 of the License, or (at your option) any later version.
16 *
17 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
18 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19 * See the GNU Lesser General Public License for more details.
20 *
21 * You should have received a copy of the GNU Lesser General Public License along with this
22 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
23 * Boston, MA 02111-1307, USA.
24 */
25 package org.jrobin.graph;
26
27 import org.jrobin.core.RrdException;
28 import org.jrobin.data.DataProcessor;
29
30 class CommentText implements RrdGraphConstants {
31 private final String text; // original text
32
33 String resolvedText; // resolved text
34 String marker; // end-of-text marker
35 boolean enabled; // hrule and vrule comments can be disabled at runtime
36 int x, y; // coordinates, evaluated later
37
38 CommentText(String text) {
39 this.text = text;
40 }
41
42 void resolveText(DataProcessor dproc, ValueScaler valueScaler) throws RrdException {
43 resolvedText = text;
44 marker = "";
45 if (resolvedText != null) {
46 for (String mark : MARKERS) {
47 if (resolvedText.endsWith(mark)) {
48 marker = mark;
49 resolvedText = resolvedText.substring(0, resolvedText.length() - marker.length());
50 trimIfGlue();
51 break;
52 }
53 }
54 }
55 enabled = resolvedText != null;
56 }
57
58 void trimIfGlue() {
59 if (marker.equals(GLUE_MARKER)) {
60 resolvedText = resolvedText.trim();
61 }
62 }
63
64 boolean isPrint() {
65 return false;
66 }
67
68 boolean isValidGraphElement() {
69 return !isPrint() && enabled;
70 }
71 }