package art.client.GUI.components.devices.window.colors.rtz32.configuration.components; import art.library.gui.FlatGUI; import art.library.gui.flat.FlatButton; import art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration; import art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Group; import art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program; import art.library.model.devices.colors.controller.RTZ32.configuration.constants.RTZ32_Constants_Colors; import art.library.model.devices.colors.controller.RTZ32.types.RTZ32_Distribution_Group_Hidden; import art.library.model.devices.colors.controller.RTZ32.types.RTZ32_Distribution_Group_Segment; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.Stroke; import java.awt.geom.GeneralPath; import java.awt.geom.Line2D; import java.awt.geom.Rectangle2D; import java.util.ArrayList; import javax.swing.JPanel; public class Diagram_Distribution_Bars_Content_Groups extends JPanel { private RTZ32_Configuration configuration = null; private int programNumber = 0; private Diagram_Distribution diagram_Distribution = null; public Diagram_Distribution_Bars_Content_Groups(RTZ32_Configuration configuration, int programNumber, Diagram_Distribution diagram_Distribution) { this.configuration = configuration; this.programNumber = programNumber; this.diagram_Distribution = diagram_Distribution; } public int getCurrentTime(int x) { RTZ32_Configuration_Program program = configuration.getProgram(programNumber); double dx = (double)getWidth()/(double)program.cycle; return (int)Math.round(x/dx); } public int getCurrentBar(int y, int numberBars) { double dy = (int)((double)getHeight()/(double)numberBars); return (1 + (int)(y/dy)); } public RTZ32_Configuration_Group getCurrentGroup(int x, int y, int numberBars) { double dy = (int)((double)getHeight()/(double)numberBars); double currenty = 0; int numberValidsGroups = configuration.getNumberValidGroups(); for (int i=0; i= y1) && (y < y2)) return group; currenty = currenty + dy; } else { for (ArrayList listSegments : diagram_Distribution.distribution.groups.get(i).listBars) { for (RTZ32_Distribution_Group_Segment segment : listSegments) { double y1 = currenty; double y2 = currenty + dy; if ((y >= y1) && (y < y2)) return group; currenty = currenty + dy; } } } } return null; } public RTZ32_Distribution_Group_Hidden getCurrentHidden(int x, int y, int numberBars) { RTZ32_Configuration_Program program = configuration.getProgram(programNumber); double dy = (int)((double)getHeight() / numberBars); double dx = (double)getWidth() / (double)program.cycle; double width = Math.min(dx/1.25, dy/1.25); double currenty = 0; int numberValidsGroups = configuration.getNumberValidGroups(); for (int i=0; i