package art.client.GUI.components.devices.window.colors.rtz32.configuration.components;
|
|
import art.library.gui.flat.FlatDialog;
|
import art.library.gui.flat.FlatPanel;
|
import art.library.gui.flat.FlatTableInput;
|
import art.library.gui.flat.FlatTextField;
|
import art.library.gui.flat.FlatWindow;
|
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.servers.Shared;
|
import java.awt.BorderLayout;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import javax.swing.SwingConstants;
|
import javax.swing.SwingUtilities;
|
|
|
public class Diagram_Distribution_Times extends FlatPanel
|
{
|
private RTZ32_Configuration configuration = null;
|
private int programNumber = 0;
|
private Diagram_Distribution distribution = null;
|
private FlatPanel panel1 = null;
|
private FlatTableInput table1 = null;
|
private boolean editable = false;
|
private MyActionListener myActionListener = new MyActionListener();
|
|
public Diagram_Distribution_Times(RTZ32_Configuration configuration, int programNumber, Diagram_Distribution distribution)
|
{
|
this.configuration = configuration;
|
this.programNumber = programNumber;
|
this.distribution = distribution;
|
initialise();
|
reevaluate();
|
}
|
|
|
public void editable(boolean value)
|
{
|
this.editable = value;
|
if (table1 != null) table1.setEditable(value);
|
}
|
|
|
|
public void reevaluate()
|
{
|
this.panel1.removeAll();
|
|
try
|
{
|
RTZ32_Configuration_Program program = configuration.getProgram(programNumber);
|
|
table1 = new FlatTableInput(150);
|
|
for (int i=0; i<program.variablePhases.length; i++)
|
{
|
if (program.variablePhases[i].isEmpty() == false)
|
{
|
table1.addNumericTextField(Shared.getMessage("Variable phase") + " " + (i+1), 1, 255, 22);
|
table1.setValue(Shared.getMessage("Variable phase") + " " + (i+1), program.variablePhases[i].getDuration());
|
table1.setMeasurementUnits(Shared.getMessage("Variable phase") + " " + (i+1), "<html><body> " + program.variablePhases[i].startTime + " " + "→" + " " + program.variablePhases[i].endTime + "</body></html>", 125, SwingConstants.LEFT);
|
FlatTextField flatTextField = (FlatTextField)table1.getComponentValue(Shared.getMessage("Variable phase") + " " + (i+1));
|
flatTextField.addActionListener(myActionListener);
|
}
|
}
|
|
table1.revalidate();
|
table1.setEditable(editable);
|
panel1.add(table1.getScrollPane(), BorderLayout.CENTER);
|
panel1.revalidate();
|
|
}
|
catch (Exception exception)
|
{
|
}
|
}
|
|
|
|
public void initialise()
|
{
|
panel1 = new FlatPanel();
|
panel1.setLayout(new BorderLayout());
|
this.setLayout(new BorderLayout());
|
this.add(panel1, BorderLayout.CENTER);
|
}
|
|
|
|
|
private class MyActionListener implements ActionListener
|
{
|
public void actionPerformed(ActionEvent e)
|
{
|
try
|
{
|
RTZ32_Configuration_Program program = configuration.getProgram(programNumber);
|
|
boolean reevaluate = false;
|
|
int previousCycle = program.cycle;
|
|
for (int i=0; i<program.variablePhases.length; i++)
|
{
|
if (program.variablePhases[i].isEmpty() == false)
|
{
|
int duration = Integer.parseInt((String)table1.getValue(Shared.getMessage("Variable phase") + " " + (i+1)));
|
|
if ((duration > 0) && (program.variablePhases[i].getDuration() != duration))
|
{
|
int time1 = program.variablePhases[i].endTime;
|
int time2 = program.variablePhases[i].endTime + (duration - program.variablePhases[i].getDuration());
|
program.redistributeTimes(time1, time2);
|
reevaluate = true;
|
}
|
}
|
}
|
|
|
if (reevaluate == true)
|
{
|
distribution.reevaluate();
|
distribution.diagram_Distribution_Bars.repaint();
|
distribution.diagram_Distribution_Impulses.reevaluate();
|
distribution.diagram_Distribution_Times.reevaluate();
|
distribution.changeMade();
|
|
if (previousCycle != program.cycle)
|
{
|
FlatWindow window = (FlatWindow)SwingUtilities.getRoot(Diagram_Distribution_Times.this);
|
String message = Shared.getMessage("Cycle value has changed from") + " " + previousCycle + " " + Shared.getMessage("to") + " " + program.cycle;
|
FlatDialog.showDialog(window, Shared.getMessage("Time distribution"), message, true, FlatDialog.DIALOG_WARNING);
|
}
|
else
|
{
|
FlatWindow window = (FlatWindow)SwingUtilities.getRoot(Diagram_Distribution_Times.this);
|
String message = Shared.getMessage("The distribution of movement has been applied correctly");
|
FlatDialog.showDialog(window, Shared.getMessage("Time distribution"), message, true, FlatDialog.DIALOG_INFORMATION);
|
}
|
}
|
}
|
catch (Exception exception)
|
{
|
exception.printStackTrace();
|
}
|
}
|
}
|
|
|
|
}
|