/* * codjo.net * * Common Apache License 2.0 */ package net.codjo.dataprocess.gui.tables; import net.codjo.mad.client.request.RequestException; import net.codjo.mad.gui.framework.GuiContext; import net.codjo.mad.gui.request.Preference; import net.codjo.mad.gui.request.RequestTable; import net.codjo.mad.gui.request.RequestToolBar; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.InputMap; import javax.swing.JComponent; import javax.swing.JInternalFrame; import javax.swing.JScrollPane; import javax.swing.KeyStroke; import javax.swing.ListSelectionModel; /** * */ public abstract class AbstractWindowTable extends JInternalFrame { private JScrollPane scrollPane = new JScrollPane(); private RequestTable requestTable = new RequestTable(); private RequestToolBar toolBar = new RequestToolBar(); protected AbstractWindowTable(GuiContext ctxt, String title, boolean editable) throws RequestException { super(title, true, true, true, true); jbInit(); setPreferredSize(new Dimension(1100, 700)); requestTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); requestTable.setEditable(editable); requestTable.setPreference(getRequestTablePreference()); doInitStuff(); if (editable) { toolBar.setHasUndoRedoButtons(true); } toolBar.setHasValidationButton(true); toolBar.setHasRecordCountField(true); toolBar.setHasExcelButton(true); toolBar.setHasNavigatorButton(true); toolBar.init(ctxt, requestTable); requestTable.load(); } RequestTable getRequestTable() { return requestTable; } protected void doInitStuff() { } protected abstract Preference getRequestTablePreference(); private void jbInit() { getContentPane().setLayout(new BorderLayout()); getContentPane().add(scrollPane, BorderLayout.CENTER); getContentPane().add(toolBar, BorderLayout.SOUTH); scrollPane.getViewport().add(requestTable, null); InputMap inputMap = getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); inputMap.put(KeyStroke.getKeyStroke("ESCAPE"), "cancel"); getActionMap().put("cancel", new AbstractAction() { public void actionPerformed(ActionEvent evt) { dispose(); } }); } }