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[i].startTime + " " + "→" + " " + program.variablePhases[i].endTime + "", 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 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(); } } } }