/* * codjo.net * * Common Apache License 2.0 */ package net.codjo.segmentation.gui.results; import net.codjo.gui.toolkit.util.ErrorDialog; import net.codjo.mad.client.request.RequestException; import net.codjo.mad.client.request.Row; import net.codjo.mad.gui.framework.GuiContext; import net.codjo.mad.gui.request.RequestComboBox; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JTextField; /** * Classe permettant de Manipuler les listener sur ClassificationResultWindowGui. */ public class ClassificationResultWindowLogic { private final ClassificationResultWindowGui gui; private GuiContext guiContext; private FilterActionListener filterActionListener = new FilterActionListener(); public ClassificationResultWindowLogic(GuiContext guiContext) throws Exception { this.guiContext = guiContext; gui = new ClassificationResultWindowGui(guiContext); gui.getAnomalyFilter().addActionListener(filterActionListener); gui.getAxeFilter().addActionListener(filterActionListener); RequestComboBox combo = gui.getAxeFilter(); combo.setColumns(new String[]{"classificationId", "classificationName", "classificationType"}); combo.setRendererFieldName("classificationName"); combo.setModelFieldName("classificationId"); combo.setSelectFactoryId("selectAllClassification"); combo.load(); } protected GuiContext getGuiContext() { return guiContext; } protected void addCustomFilterField(String label, JTextField component) { component.addActionListener(filterActionListener); gui.addCustomField(label, component); } public ClassificationResultWindowGui getGui() { return gui; } protected void reloadRequestTable() throws RequestException { Row selectedRow = gui.getAxeFilter().getDataSource().getSelectedRow(); if (selectedRow == null) { gui.getClassificationResultTable().getDataSource().clear(); } } private class FilterActionListener implements ActionListener { public void actionPerformed(ActionEvent event) { try { reloadRequestTable(); } catch (RequestException e1) { ErrorDialog.show(guiContext.getDesktopPane(), "Erreur de load", e1); } } } }