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_Group> 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<Diagram_Distribution_Impulses_Group>();
|
|
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<distributionGroup.listImpulses.size(); i++)
|
{
|
Diagram_Distribution_Impulses_Group diagram_Distribution_Impulses_Group = new Diagram_Distribution_Impulses_Group(program, distributionGroup, i, maxImpulses);
|
diagram_Distribution_Impulses_Groups.add(diagram_Distribution_Impulses_Group);
|
panel1.add(diagram_Distribution_Impulses_Group);
|
}
|
}
|
}
|
|
|
setDiagram(diagram_Distribution_Bars);
|
editable(this.editable);
|
resized();
|
}
|
|
|
|
private void initialise()
|
{
|
panel1 = new FlatPanel();
|
panel1.setLayout(null);
|
panel1.setBackground(Color.white);
|
reevaluate();
|
this.setLayout(new BorderLayout());
|
this.add(panel1, BorderLayout.CENTER);
|
|
|
this.addComponentListener(new ComponentAdapter()
|
{
|
@Override
|
public void componentResized(ComponentEvent e)
|
{
|
resized();
|
}
|
});
|
}
|
|
|
|
private void resized()
|
{
|
try
|
{
|
int w = panel1.getWidth();
|
int h = (int)((double)panel1.getHeight() / (double)diagram_Distribution_Impulses_Groups.size());
|
|
for (int i=0; i<diagram_Distribution_Impulses_Groups.size(); i++)
|
{
|
diagram_Distribution_Impulses_Groups.get(i).setBounds(0, i * h, w, h);
|
diagram_Distribution_Impulses_Groups.get(i).revalidate();
|
}
|
}
|
catch (Exception exception)
|
{
|
}
|
|
panel1.revalidate();
|
}
|
|
}
|