package art.client.GUI.components.devices.window.colors.rtz32.configuration.components;
|
|
import art.library.gui.FlatGUI;
|
import art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration;
|
import art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program;
|
import art.library.model.devices.colors.controller.RTZ32.types.RTZ32_Distribution;
|
import java.awt.BasicStroke;
|
import java.awt.Font;
|
import java.awt.Graphics2D;
|
import java.awt.geom.Line2D;
|
import java.awt.geom.Rectangle2D;
|
import javax.swing.JPanel;
|
|
public class Diagram_Distribution_Bars_Header_Timeline extends JPanel
|
{
|
private RTZ32_Configuration configuration = null;
|
private int programNumber = 0;
|
private RTZ32_Distribution distribution = null;
|
|
|
public Diagram_Distribution_Bars_Header_Timeline(RTZ32_Configuration configuration, int programNumber)
|
{
|
this.configuration = configuration;
|
this.programNumber = programNumber;
|
}
|
|
|
|
|
|
public void paintTimeline(Graphics2D g2)
|
{
|
try
|
{
|
RTZ32_Configuration_Program program = configuration.getProgram(programNumber);
|
|
Diagram_Distribution.format(g2);
|
int w = getWidth();
|
int h = getHeight();
|
|
double h1 = 25;
|
|
double dx = (double)w / (double)program.cycle;
|
|
int scale = 0;
|
|
for (int i=0; i<10; i++)
|
{
|
int width = g2.getFontMetrics().stringWidth("999");
|
|
if (width < (dx + (dx * i * 5)))
|
{
|
scale = i * 5;
|
break;
|
}
|
}
|
scale = Math.max(scale,5);
|
|
|
|
// Seconds lines
|
|
g2.setColor(FlatGUI.lookDesign.getColor("label.color.foreground").brighter().brighter().brighter());
|
g2.setStroke(new BasicStroke(1.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0.0f, new float[]{1f,3f}, 0.0f));
|
|
for (double i=0; i<=program.cycle; i=i+1)
|
{
|
g2.draw(new Line2D.Double(dx * i, h1, dx * i, h));
|
}
|
|
|
// n seconds (scale) lines
|
|
g2.setStroke(new BasicStroke(1.0f));
|
Font font = FlatGUI.lookDesign.getFont("label.font").deriveFont((float)(FlatGUI.lookDesign.getFont("label.font").getSize()-2.5f));
|
|
for (double i=0; i<=(double)program.cycle; i=i+scale)
|
{
|
g2.setColor(FlatGUI.lookDesign.getColor("label.color.background").darker());
|
g2.draw(new Line2D.Double(dx * i, 0, dx * i, h));
|
g2.setColor(FlatGUI.lookDesign.getColor("label.color.foreground"));
|
Diagram_Distribution.drawRightString(g2, "" + (int)(i + scale), new Rectangle2D.Double(dx * i, 0, dx * scale, h1), font);
|
}
|
|
|
g2.setColor(FlatGUI.lookDesign.getColor("label.color.background").darker());
|
g2.draw(new Rectangle2D.Double(0,0,w,h1));
|
g2.draw(new Rectangle2D.Double(0,0,w,h));
|
}
|
catch (Exception exception)
|
{
|
}
|
}
|
|
|
|
|
}
|