package demo46; import javax.swing.*; import org.openswing.swing.client.*; import java.awt.*; import org.openswing.swing.table.columns.client.*; import org.openswing.swing.lookup.client.LookupController; import java.sql.*; import java.awt.event.*; import org.openswing.swing.table.java.*; import java.awt.event.ActionEvent; import javax.swing.ListSelectionModel; import org.openswing.swing.util.client.ClientSettings; import org.openswing.swing.customvo.client.*; import org.openswing.swing.customvo.java.*; import org.openswing.swing.customvo.server.*; import java.util.ArrayList; /** * <p>Title: OpenSwing Framework</p> * <p>Description: Frame that contains a grid defined at run time.</p> * <p>Copyright: Copyright (C) 2006 Mauro Carniel</p> * <p> </p> * @author Mauro Carniel * @version 1.0 */ public class GridFrame extends JFrame { private CustomGridControl grid = null; JPanel buttonsPanel = new JPanel(); ReloadButton reloadButton = new ReloadButton(); DeleteButton deleteButton = new DeleteButton(); FlowLayout flowLayout1 = new FlowLayout(); InsertButton insertButton = new InsertButton(); private Connection conn = null; EditButton editButton = new EditButton(); SaveButton saveButton = new SaveButton(); CopyButton copyButton = new CopyButton(); ExportButton exportButton = new ExportButton(); FilterButton filterButton = new FilterButton(); private String sql = null; public GridFrame(Connection conn,String sql) { this.conn = conn; this.sql = sql; try { this.setDefaultCloseOperation(this.DISPOSE_ON_CLOSE); // fetch "customFields" list of CustomFieldVO objects... ArrayList customFields = CustomValueObjectUtils.getCustomFields(conn,sql,new ArrayList()); // create grid controller... GridFrameController controller = new GridFrameController(conn,customFields,this); // create custom grid... grid = new CustomGridControl(controller); grid.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); grid.setCopyButton(copyButton); grid.setDeleteButton(deleteButton); grid.setEditButton(editButton); grid.setInsertRowsOnTop(false); grid.setExportButton(exportButton); grid.setMaxNumberOfRowsOnInsert(50); grid.setAllowInsertInEdit(true); grid.setInsertButton(insertButton); grid.setFilterButton(filterButton); grid.setReloadButton(reloadButton); grid.setSaveButton(saveButton); grid.setValueObjectClassName("org.openswing.swing.customvo.java.CustomValueObject"); // add grid to frame... this.getContentPane().add(grid, BorderLayout.CENTER); jbInit(); setSize(750,400); setTitle(ClientSettings.getInstance().getResources().getResource("dynamic grid")); setVisible(true); } catch(Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { buttonsPanel.setLayout(flowLayout1); flowLayout1.setAlignment(FlowLayout.LEFT); this.getContentPane().add(buttonsPanel, BorderLayout.NORTH); buttonsPanel.add(insertButton, null); buttonsPanel.add(copyButton, null); buttonsPanel.add(editButton, null); buttonsPanel.add(reloadButton, null); buttonsPanel.add(saveButton, null); buttonsPanel.add(exportButton, null); buttonsPanel.add(deleteButton, null); buttonsPanel.add(filterButton, null); } public String getSQL() { return sql; } public CustomGridControl getGrid() { return grid; } }