package art.client.GUI.components.devices.window.colors.rtz32.realtime.components.distribution; import art.library.gui.FlatGUI; import art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller; import art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration; 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_Realtime_Header_X extends JPanel { private RTZ32_Controller rtz32 = null; private RTZ32_Distribution distribution = null; private int duration = 0; public Diagram_Distribution_Realtime_Header_X(RTZ32_Controller rtz32, int duration) { this.rtz32 = rtz32; this.duration = duration; } public void setDuration(int duration) { this.duration = duration; } public void paintTimeline(Graphics2D g2) { try { RTZ32_Configuration configuration = rtz32.getDeviceConfiguration().rtz32; int w = getWidth(); int h = getHeight(); double h1 = 25; double dx = (double)w / (double)duration; 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<=duration; 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)duration; 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_Realtime.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) { } } }