package art.servers.colorsserver.M.gui.diagrams;
|
|
import java.awt.BasicStroke;
|
import java.awt.Color;
|
import java.awt.Graphics;
|
import java.awt.Graphics2D;
|
import java.awt.RenderingHints;
|
import java.awt.Stroke;
|
import java.awt.geom.Line2D;
|
import java.awt.geom.Rectangle2D;
|
import javax.swing.JLabel;
|
import art.library.gui.FlatGUI;
|
|
|
|
public class DiagramColors extends JLabel
|
{
|
private int color = 0;
|
public static final String textColors[] = new String[25];
|
private static final float[] dashFast = {1.5f, 1.5f};
|
private static final float[] dashSlow = {3.0f, 3.0f};
|
private static final float[] dashDouble = {4.0f, 2.0f, 8.0f, 2.0f};
|
|
|
public DiagramColors(int color)
|
{
|
this.color = color;
|
}
|
|
|
public void paint (Graphics g)
|
{
|
Graphics2D g2 = (Graphics2D)g;
|
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
|
g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
|
g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
|
g2.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_DEFAULT);
|
g2.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
|
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR);
|
g2.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
|
g2.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
|
g2.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_NORMALIZE);
|
DiagramColors.paint(g2, 0, 0, getWidth(), getHeight(), color);
|
}
|
|
|
|
public static void paint (Graphics2D g2, double x, double y, double w, double h, int color)
|
{
|
y = y + 3;
|
h = h - 6;
|
double centery = y + (h/2);
|
float height1 = (float)(h * 0.60f);
|
float height2 = (float)(h * 0.40f);
|
|
try
|
{
|
Color colorA = null;
|
Color colorB = null;
|
Color colorC = null;
|
Stroke strokeA = null;
|
Stroke strokeB = null;
|
Stroke strokeC = null;
|
|
Stroke strokeNone1 = new BasicStroke(height1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL);
|
Stroke strokeFast1 = new BasicStroke(height1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0.0f, dashFast, 0.0f);
|
Stroke strokeSlow1 = new BasicStroke(height1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0.0f, dashSlow, 0.0f);
|
Stroke strokeDouble1 = new BasicStroke(height1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0.0f, dashDouble, 0.0f);
|
|
Stroke strokeNone2 = new BasicStroke(height2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL);
|
Stroke strokeFast2 = new BasicStroke(height2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0.0f, dashFast, 0.0f);
|
Stroke strokeSlow2 = new BasicStroke(height2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0.0f, dashSlow, 0.0f);
|
Stroke strokeDouble2 = new BasicStroke(height2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0.0f, dashDouble, 0.0f);
|
|
switch (color)
|
{
|
|
case 0 : colorA = Color.lightGray; strokeA = strokeNone1; break;
|
case 1 : colorA = Color.green; strokeA = strokeNone1; break;
|
case 2 : colorA = Color.yellow; strokeA = strokeNone1; break;
|
case 3 : colorA = Color.red; strokeA = strokeNone1; break;
|
case 4 : colorA = Color.green; strokeA = strokeSlow1; break;
|
case 5 : colorA = Color.yellow; strokeA = strokeSlow1; break;
|
case 12 : colorA = Color.white; strokeA = strokeNone1; break;
|
case 13 : colorA = Color.white; strokeA = strokeNone1; break;
|
case 14 : colorA = Color.white; strokeA = strokeNone1; break;
|
case 15 : colorA = Color.white; strokeA = strokeNone1; break;
|
case 16 : colorA = Color.white; strokeA = strokeNone1; break;
|
case 17 : colorA = Color.green; strokeA = strokeSlow1; break;
|
case 18 : colorA = Color.red; strokeA = strokeSlow1; break;
|
|
case 6 : colorA = Color.green; strokeA = strokeNone2; colorB = Color.yellow; strokeB = strokeDouble2; break;
|
case 7 : colorA = Color.green; strokeA = strokeNone2; colorB = Color.red; strokeB = strokeFast2; break;
|
case 8 : colorA = Color.red; strokeA = strokeNone2; colorB = Color.yellow; strokeB = strokeNone2; break;
|
case 9 : colorA = Color.green; strokeA = strokeNone2; colorB = Color.yellow; strokeB = strokeSlow2; break;
|
case 10 : colorA = Color.green; strokeA = strokeFast2; colorB = Color.yellow; strokeB = strokeSlow2; break;
|
case 11 : colorA = Color.red; strokeA = strokeNone2; colorB = Color.yellow; strokeB = strokeSlow2; break;
|
case 20 : colorA = Color.red; strokeA = strokeFast2; colorB = Color.yellow; strokeB = strokeSlow2; break;
|
case 23 : colorA = Color.green; strokeA = strokeNone2; colorB = Color.yellow; strokeB = strokeNone2; break;
|
|
case 19 : colorA = Color.yellow; strokeA = strokeDouble1; colorC = Color.red; strokeB = strokeNone1; break;
|
case 21 : colorA = Color.yellow; strokeA = strokeDouble1; colorC = Color.green; strokeB = strokeNone1; break;
|
|
case 22 : colorA = Color.green; strokeA = strokeNone2; colorB = Color.red; strokeB = strokeNone2; colorC = Color.yellow; strokeC = strokeDouble2; break;
|
|
default : colorA = Color.magenta; strokeA = strokeNone1; break;
|
}
|
|
if ((colorB == null) && (colorC == null))
|
{
|
g2.setColor(colorA);
|
g2.setStroke(strokeA);
|
g2.draw(new Line2D.Double(x, centery, x + w, centery));
|
|
g2.setStroke(new BasicStroke(1.0f));
|
g2.setColor(FlatGUI.lookDesign.getColor("label.color.background").darker());
|
g2.draw(new Line2D.Double(x, centery - height1/2, x + w, centery - height1/2));
|
g2.draw(new Line2D.Double(x, centery + height1/2, x + w, centery + height1/2));
|
|
}
|
else if ((colorB != null) && (colorC == null))
|
{
|
g2.setColor(colorA);
|
g2.setStroke(strokeA);
|
g2.draw(new Line2D.Double(x, centery - height2/2, x + w, centery - height2/2));
|
|
g2.setColor(colorB);
|
g2.setStroke(strokeB);
|
g2.draw(new Line2D.Double(x, centery + height2/2, x + w, centery + height2/2));
|
|
g2.setStroke(new BasicStroke(1.0f));
|
g2.setColor(FlatGUI.lookDesign.getColor("label.color.background").darker());
|
g2.draw(new Line2D.Double(x, centery - height2, x + w, centery - height2));
|
g2.draw(new Line2D.Double(x, centery + height2, x + w, centery + height2));
|
|
}
|
else if ((colorB == null) && (colorC != null))
|
{
|
g2.setColor(colorC);
|
g2.setStroke(strokeB);
|
g2.draw(new Line2D.Double(x, centery, x + w, centery));
|
|
g2.setColor(colorA);
|
g2.setStroke(strokeA);
|
g2.draw(new Line2D.Double(x, centery, x + w, centery));
|
|
g2.setStroke(new BasicStroke(1.0f));
|
g2.setColor(FlatGUI.lookDesign.getColor("label.color.background").darker());
|
g2.draw(new Line2D.Double(x, centery - height1/2, x + w, centery - height1/2));
|
g2.draw(new Line2D.Double(x, centery, x + w, centery));
|
g2.draw(new Line2D.Double(x, centery + height1/2, x + w, centery + height1/2));
|
}
|
else
|
{
|
g2.setColor(colorA);
|
g2.setStroke(strokeA);
|
g2.draw(new Line2D.Double(x, centery - height2/2, x + w, centery - height2/2));
|
|
g2.setColor(colorB);
|
g2.setStroke(strokeB);
|
g2.draw(new Line2D.Double(x, centery + height2/2, x + w, centery + height2/2));
|
|
g2.setColor(colorC);
|
g2.setStroke(strokeC);
|
g2.draw(new Line2D.Double(x, centery + height2/2, x + w, centery + height2/2));
|
|
g2.setStroke(new BasicStroke(1.0f));
|
g2.setColor(FlatGUI.lookDesign.getColor("label.color.background").darker());
|
g2.draw(new Line2D.Double(x, centery - height2, x + w, centery - height2));
|
g2.draw(new Line2D.Double(x, centery, x + w, centery));
|
g2.draw(new Line2D.Double(x, centery + height2, x + w, centery + height2));
|
}
|
}
|
catch (Exception e)
|
{
|
g2.setBackground(Color.magenta);
|
g2.draw(new Rectangle2D.Double(x, y, w, h));
|
}
|
}
|
|
|
}
|