package art.client.GUI.components.devices.window.colors.rtz32.configuration.components; import art.library.gui.flat.FlatPanel; 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 art.library.model.devices.colors.controller.RTZ32.types.RTZ32_Distribution_Group; import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.util.ArrayList; import java.util.List; public class Diagram_Distribution_Impulses extends FlatPanel { private RTZ32_Configuration configuration = null; private int programNumber = 0; private RTZ32_Distribution distribution = null; private List diagram_Distribution_Impulses_Groups = null; private Diagram_Distribution_Bars diagram_Distribution_Bars = null; private FlatPanel panel1 = null; private boolean editable = false; public Diagram_Distribution_Impulses(RTZ32_Configuration configuration, int programNumber, RTZ32_Distribution distribution) { this.configuration = configuration; this.programNumber = programNumber; this.distribution = distribution; initialise(); } public void setDiagram(Diagram_Distribution_Bars diagram_Distribution_Bars) { this.diagram_Distribution_Bars = diagram_Distribution_Bars; for (Diagram_Distribution_Impulses_Group diagram : diagram_Distribution_Impulses_Groups) { diagram.setDiagram(diagram_Distribution_Bars); } } public void editable(boolean value) { this.editable = value; // TODO check permissions for (Diagram_Distribution_Impulses_Group diagram_Distribution_Impulses_Group : diagram_Distribution_Impulses_Groups) { diagram_Distribution_Impulses_Group.editable(value); } } public void reevaluate() { if (panel1 != null) panel1.removeAll(); RTZ32_Configuration_Program program = configuration.getProgram(programNumber); diagram_Distribution_Impulses_Groups = new ArrayList(); int maxImpulses = 0; for (RTZ32_Distribution_Group group : distribution.groups) { maxImpulses = Math.max(maxImpulses, group.getNumberImpulses()); } for (RTZ32_Distribution_Group distributionGroup : distribution.groups) { if (distributionGroup.listImpulses.isEmpty()) { Diagram_Distribution_Impulses_Group diagram_Distribution_Impulses_Group = new Diagram_Distribution_Impulses_Group(program, distributionGroup, maxImpulses); diagram_Distribution_Impulses_Groups.add(diagram_Distribution_Impulses_Group); panel1.add(diagram_Distribution_Impulses_Group); } else { for (int i=0; i