/*******************************************************************************
* Copyright (c) 2001-2005 Sasa Markovic and Ciaran Treanor.
* Copyright (c) 2011 The OpenNMS Group, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*******************************************************************************/
package org.jrobin.graph;
import java.awt.*;
import java.util.Calendar;
import java.util.Locale;
/**
* Class to represent various constants used for graphing. No methods are specified.
*/
public interface RrdGraphConstants {
/**
* Default graph starting time
*/
String DEFAULT_START = "end-1d";
/**
* Default graph ending time
*/
String DEFAULT_END = "now";
/**
* Constant to represent second
*/
int SECOND = Calendar.SECOND;
/**
* Constant to represent minute
*/
int MINUTE = Calendar.MINUTE;
/**
* Constant to represent hour
*/
int HOUR = Calendar.HOUR_OF_DAY;
/**
* Constant to represent day
*/
int DAY = Calendar.DAY_OF_MONTH;
/**
* Constant to represent week
*/
int WEEK = Calendar.WEEK_OF_YEAR;
/**
* Constant to represent month
*/
int MONTH = Calendar.MONTH;
/**
* Constant to represent year
*/
int YEAR = Calendar.YEAR;
/**
* Constant to represent Monday
*/
int MONDAY = Calendar.MONDAY;
/**
* Constant to represent Tuesday
*/
int TUESDAY = Calendar.TUESDAY;
/**
* Constant to represent Wednesday
*/
int WEDNESDAY = Calendar.WEDNESDAY;
/**
* Constant to represent Thursday
*/
int THURSDAY = Calendar.THURSDAY;
/**
* Constant to represent Friday
*/
int FRIDAY = Calendar.FRIDAY;
/**
* Constant to represent Saturday
*/
int SATURDAY = Calendar.SATURDAY;
/**
* Constant to represent Sunday
*/
int SUNDAY = Calendar.SUNDAY;
/**
* Index of the canvas color. Used in {@link RrdGraphDef#setColor(int, java.awt.Paint)}
*/
int COLOR_CANVAS = 0;
/**
* Index of the background color. Used in {@link RrdGraphDef#setColor(int, java.awt.Paint)}
*/
int COLOR_BACK = 1;
/**
* Index of the top-left graph shade color. Used in {@link RrdGraphDef#setColor(int, java.awt.Paint)}
*/
int COLOR_SHADEA = 2;
/**
* Index of the bottom-right graph shade color. Used in {@link RrdGraphDef#setColor(int, java.awt.Paint)}
*/
int COLOR_SHADEB = 3;
/**
* Index of the minor grid color. Used in {@link RrdGraphDef#setColor(int, java.awt.Paint)}
*/
int COLOR_GRID = 4;
/**
* Index of the major grid color. Used in {@link RrdGraphDef#setColor(int, java.awt.Paint)}
*/
int COLOR_MGRID = 5;
/**
* Index of the font color. Used in {@link RrdGraphDef#setColor(int, java.awt.Paint)}
*/
int COLOR_FONT = 6;
/**
* Index of the frame color. Used in {@link RrdGraphDef#setColor(int, java.awt.Paint)}
*/
int COLOR_FRAME = 7;
/**
* Index of the arrow color. Used in {@link RrdGraphDef#setColor(int, java.awt.Paint)}
*/
int COLOR_ARROW = 8;
/**
* Allowed color names which can be used in {@link RrdGraphDef#setColor(String, java.awt.Paint)} method
*/
String[] COLOR_NAMES = {
"canvas", "back", "shadea", "shadeb", "grid", "mgrid", "font", "frame", "arrow"
};
/**
* Default first day of the week (obtained from the default locale)
*/
int FIRST_DAY_OF_WEEK = Calendar.getInstance(Locale.getDefault()).getFirstDayOfWeek();
/**
* Default graph canvas color
*/
Color DEFAULT_CANVAS_COLOR = Color.WHITE;
/**
* Default graph background color
*/
Color DEFAULT_BACK_COLOR = new Color(245, 245, 245);
/**
* Default top-left graph shade color
*/
Color DEFAULT_SHADEA_COLOR = new Color(200, 200, 200);
/**
* Default bottom-right graph shade color
*/
Color DEFAULT_SHADEB_COLOR = new Color(150, 150, 150);
/**
* Default minor grid color
*/
Color DEFAULT_GRID_COLOR = new Color(171, 171, 171, 95);
// Color DEFAULT_GRID_COLOR = new Color(140, 140, 140);
/**
* Default major grid color
*/
Color DEFAULT_MGRID_COLOR = new Color(255, 91, 91, 95);
// Color DEFAULT_MGRID_COLOR = new Color(130, 30, 30);
/**
* Default font color
*/
Color DEFAULT_FONT_COLOR = Color.BLACK;
/**
* Default frame color
*/
Color DEFAULT_FRAME_COLOR = Color.BLACK;
/**
* Default arrow color
*/
Color DEFAULT_ARROW_COLOR = Color.RED;
/**
* Constant to represent left alignment marker
*/
String ALIGN_LEFT_MARKER = "\\l";
/**
* Constant to represent centered alignment marker
*/
String ALIGN_CENTER_MARKER = "\\c";
/**
* Constant to represent right alignment marker
*/
String ALIGN_RIGHT_MARKER = "\\r";
/**
* Constant to represent justified alignment marker
*/
String ALIGN_JUSTIFIED_MARKER = "\\j";
/**
* Constant to represent "glue" marker
*/
String GLUE_MARKER = "\\g";
/**
* Constant to represent vertical spacing marker
*/
String VERTICAL_SPACING_MARKER = "\\s";
/**
* Constant to represent no justification markers
*/
String NO_JUSTIFICATION_MARKER = "\\J";
/**
* Used internally
*/
String[] MARKERS = {
ALIGN_LEFT_MARKER, ALIGN_CENTER_MARKER, ALIGN_RIGHT_MARKER,
ALIGN_JUSTIFIED_MARKER, GLUE_MARKER, VERTICAL_SPACING_MARKER, NO_JUSTIFICATION_MARKER
};
/**
* Constant to represent in-memory image name
*/
String IN_MEMORY_IMAGE = "-";
/**
* Default units length
*/
int DEFAULT_UNITS_LENGTH = 9;
/**
* Default graph width
*/
int DEFAULT_WIDTH = 400;
/**
* Default graph height
*/
int DEFAULT_HEIGHT = 100;
/**
* Default image format
*/
String DEFAULT_IMAGE_FORMAT = "gif";
/**
* Default image quality, used only for jpeg graphs
*/
float DEFAULT_IMAGE_QUALITY = 0.8F; // only for jpegs, not used for png/gif
/**
* Default value base
*/
double DEFAULT_BASE = 1000;
/**
* Default font name, determined based on the current operating system
*/
String DEFAULT_FONT_NAME = System.getProperty("os.name").toLowerCase().contains("windows") ?
"Lucida Sans Typewriter" : "Monospaced";
/**
* Default graph small font
*/
String DEFAULT_MONOSPACE_FONT_FILE = "DejaVuSansMono.ttf";
/**
* Default graph large font
*/
String DEFAULT_PROPORTIONAL_FONT_FILE = "DejaVuSans-Bold.ttf";
/**
* Used internally
*/
double LEGEND_LEADING = 1.2; // chars
/**
* Used internally
*/
double LEGEND_LEADING_SMALL = 0.7; // chars
/**
* Used internally
*/
double LEGEND_BOX_SPACE = 1.2; // chars
/**
* Used internally
*/
double LEGEND_BOX = 0.9; // chars
/**
* Used internally
*/
int LEGEND_INTERSPACING = 2; // chars
/**
* Used internally
*/
int PADDING_LEFT = 10; // pix
/**
* Used internally
*/
int PADDING_TOP = 12; // pix
/**
* Used internally
*/
int PADDING_TITLE = 6; // pix
/**
* Used internally
*/
int PADDING_RIGHT = 16; // pix
/**
* Used internally
*/
int PADDING_PLOT = 2; //chars
/**
* Used internally
*/
int PADDING_LEGEND = 2; // chars
/**
* Used internally
*/
int PADDING_BOTTOM = 6; // pix
/**
* Used internally
*/
int PADDING_VLABEL = 7; // pix
/**
* Stroke used to draw grid
*/
// solid line
Stroke GRID_STROKE = new BasicStroke(1);
// dotted line
// Stroke GRID_STROKE = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1, new float[] {1, 1}, 0);
/**
* Stroke used to draw ticks
*/
Stroke TICK_STROKE = new BasicStroke(1);
/**
* Index of the default font. Used in {@link RrdGraphDef#setFont(int, java.awt.Font)}
*/
int FONTTAG_DEFAULT = 0;
/**
* Index of the title font. Used in {@link RrdGraphDef#setFont(int, java.awt.Font)}
*/
int FONTTAG_TITLE = 1;
/**
* Index of the axis label font. Used in {@link RrdGraphDef#setFont(int, java.awt.Font)}
*/
int FONTTAG_AXIS = 2;
/**
* Index of the vertical unit label font. Used in {@link RrdGraphDef#setFont(int, java.awt.Font)}
*/
int FONTTAG_UNIT = 3;
/**
* Index of the graph legend font. Used in {@link RrdGraphDef#setFont(int, java.awt.Font)}
*/
int FONTTAG_LEGEND = 4;
/**
* Index of the edge watermark font. Used in {@link RrdGraphDef#setFont(int, java.awt.Font)}
*/
int FONTTAG_WATERMARK = 5;
/**
* Allowed font tag names which can be used in {@link RrdGraphDef#setFont(String, java.awt.Font)} method
*/
String[] FONTTAG_NAMES = {
"DEFAULT", "TITLE", "AXIS", "UNIT", "LEGEND", "WATERMARK"
};
}