package art.client.GUI.components.devices.window.colors.rtz32.working;
|
|
|
import art.client.GUI.components.devices.window.colors.junction.configuration.PanelConfigurationGeneric;
|
import art.library.gui.flat.FlatDialog;
|
import art.library.gui.flat.FlatPanel;
|
import art.library.gui.flat.FlatTabbedPane;
|
import art.library.gui.flat.FlatTabbedPane.FlatTab;
|
import art.library.gui.flat.FlatWindow;
|
import art.library.interop.InteropParameters;
|
import art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller;
|
import art.library.model.devices.colors.controller.RTZ32.information.RTZ32_Information_Program;
|
import art.library.model.devices.colors.controller.RTZ32.information.RTZ32_Information_Programs;
|
import art.servers.Shared;
|
import art.servers.rtzserver.controller.ListenerImplementation;
|
import java.awt.BorderLayout;
|
import java.awt.Font;
|
import javax.swing.JOptionPane;
|
import javax.swing.SwingUtilities;
|
import javax.swing.event.ChangeEvent;
|
import javax.swing.event.ChangeListener;
|
|
|
public class RTZ32_PanelWorking_Programs extends PanelConfigurationGeneric
|
{
|
private RTZ32_Controller controller = null;
|
private FlatTabbedPane flatTabbedPane = null;
|
private FlatPanel panelSelected = null;
|
|
|
public RTZ32_PanelWorking_Programs(RTZ32_Controller controller)
|
{
|
this.controller = controller;
|
initialise();
|
}
|
|
public void editable(boolean value)
|
{
|
super.editable(value);
|
|
if ((panelSelected != null) && (panelSelected.getComponentCount() == 1))
|
{
|
((RTZ32_PanelWorking_Programs_Program)panelSelected.getComponent(0)).editable(value);
|
}
|
}
|
|
|
|
public void selection()
|
{
|
if ((panelSelected != null) && (panelSelected.getComponentCount() == 1))
|
{
|
// Changed?
|
|
reloadProgram(panelSelected, flatTabbedPane.getSelectedIndex());
|
((RTZ32_PanelWorking_Programs_Program)panelSelected.getComponent(0)).editable(isEditable());
|
((RTZ32_PanelWorking_Programs_Program)panelSelected.getComponent(0)).selection();
|
}
|
}
|
|
|
|
public void deselection()
|
{
|
if ((panelSelected != null) && (panelSelected.getComponentCount() == 1))
|
{
|
((RTZ32_PanelWorking_Programs_Program)panelSelected.getComponent(0)).deselection();
|
}
|
}
|
|
|
|
|
public void reload()
|
{
|
try
|
{
|
flatTabbedPane.removeAll();
|
|
// TODO : Cambiar por invokes (listenerImplementation.xxxxxx)
|
// Y por el id del regulador, no controller-zaragoza-90020
|
|
ListenerImplementation listenerImplementation = (art.servers.rtzserver.controller.ListenerImplementation)art.servers.rtzserver.Shared.controllerListenerHttps.getListenerImplementation();
|
InteropParameters parameters = new InteropParameters();
|
parameters.addParameter("device", "controller-zaragoza-90020");
|
RTZ32_Information_Programs programs_information = listenerImplementation.listPrograms(parameters).getResponse();
|
|
|
for (int i=0; i<controller.getDeviceConfiguration().rtz32.programs.length; i++)
|
{
|
FlatPanel panel = new FlatPanel();
|
panel.setLayout(new BorderLayout());
|
flatTabbedPane.addTab(" " + (i+1) + " ", panel);
|
|
if (programs_information.getProgram(i+1) != null)
|
{
|
FlatTab flatTab = flatTabbedPane.getTab(i);
|
flatTab.label.getLook().font = flatTab.label.getFont().deriveFont(14.0f).deriveFont(Font.BOLD);
|
flatTab.label.revalidate();
|
}
|
else
|
{
|
FlatTab flatTab = flatTabbedPane.getTab(i);
|
flatTab.label.getLook().font = flatTab.label.getFont().deriveFont(11.0f);
|
flatTab.label.revalidate();
|
}
|
}
|
|
}
|
catch (Exception e)
|
{
|
}
|
|
revalidate();
|
repaint();
|
}
|
|
|
|
|
private void initialise()
|
{
|
|
flatTabbedPane = new FlatTabbedPane();
|
{
|
flatTabbedPane.allowTitleChange(false);
|
|
flatTabbedPane.addChangeListener(new ChangeListener()
|
{
|
public void stateChanged(ChangeEvent e)
|
{
|
deselection();
|
panelSelected = (FlatPanel)flatTabbedPane.getSelectedComponent();
|
|
if (panelSelected.getComponentCount() == 0)
|
{
|
loadProgram(panelSelected, flatTabbedPane.getSelectedIndex());
|
}
|
else
|
{
|
RTZ32_PanelWorking_Programs_Program panelWorking_Programs_Program = (RTZ32_PanelWorking_Programs_Program)panelSelected.getComponent(0);
|
panelWorking_Programs_Program.reevaluate();
|
|
}
|
|
selection();
|
}
|
});
|
|
}
|
this.setLayout(new BorderLayout());
|
this.add(flatTabbedPane, BorderLayout.CENTER);
|
reload();
|
}
|
|
|
|
|
private void loadProgram(FlatPanel panel, int index)
|
{
|
try
|
{
|
// TODO : Cambiar por invokes (listenerImplementation.xxxxxx)
|
|
ListenerImplementation listenerImplementation = (art.servers.rtzserver.controller.ListenerImplementation)art.servers.rtzserver.Shared.controllerListenerHttps.getListenerImplementation();
|
InteropParameters parameters = new InteropParameters();
|
parameters.addParameter("device", "controller-zaragoza-90020");
|
parameters.addParameter("program", "" + (index+1));
|
RTZ32_Information_Program program_information = listenerImplementation.getProgram(parameters).getResponse();
|
RTZ32_PanelWorking_Programs_Program panelWorking_Programs_Program = new RTZ32_PanelWorking_Programs_Program(program_information, index + 1);
|
panelWorking_Programs_Program.editable(isEditable());
|
panel.add(panelWorking_Programs_Program, BorderLayout.CENTER);
|
}
|
catch (Exception exception)
|
{
|
panel.removeAll();
|
}
|
}
|
|
|
|
private void reloadProgram(FlatPanel panel, int index)
|
{
|
try
|
{
|
|
// TODO : Cambiar por invokes (listenerImplementation.xxxxxx)
|
|
ListenerImplementation listenerImplementation = (art.servers.rtzserver.controller.ListenerImplementation)art.servers.rtzserver.Shared.controllerListenerHttps.getListenerImplementation();
|
InteropParameters parameters = new InteropParameters();
|
parameters.addParameter("device", "controller-zaragoza-90020");
|
parameters.addParameter("program", "" + (index+1));
|
RTZ32_Information_Program program_information = listenerImplementation.getProgram(parameters).getResponse();
|
|
if (program_information.creation != (((RTZ32_PanelWorking_Programs_Program)panel.getComponent(0)).program_information.creation))
|
{
|
FlatWindow window = (FlatWindow)SwingUtilities.getRoot(this);
|
int answer = FlatDialog.showDialog(window, Shared.getMessage("Copying"), Shared.getMessage("A newer version of was detected. Do you want to reload?"), true, FlatDialog.DIALOG_QUESTION);
|
if (answer == JOptionPane.YES_OPTION)
|
{
|
RTZ32_PanelWorking_Programs_Program panelWorking_Programs_Program = new RTZ32_PanelWorking_Programs_Program(program_information, index + 1);
|
panelWorking_Programs_Program.editable(isEditable());
|
panel.removeAll();
|
panel.add(panelWorking_Programs_Program, BorderLayout.CENTER);
|
|
FlatTab flatTab = flatTabbedPane.getTab(index);
|
flatTab.label.getLook().font = flatTab.label.getFont().deriveFont(14.0f).deriveFont(Font.BOLD);
|
flatTab.label.revalidate();
|
}
|
}
|
}
|
catch (Exception exception)
|
{
|
}
|
}
|
|
|
|
}
|