package demo40;
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 org.openswing.swing.message.receive.java.Response;
import java.util.Map;
import java.util.ArrayList;
import org.openswing.swing.message.receive.java.VOListResponse;
import java.math.BigDecimal;
import org.openswing.swing.table.client.GridController;
import javax.swing.text.MaskFormatter;
import javax.swing.text.DefaultFormatter;
import java.text.ParseException;
import org.openswing.swing.table.model.client.VOListTableModel;
import org.openswing.swing.message.receive.java.ValueObject;
/**
* <p>Title: OpenSwing Framework</p>
* <p>Description: Grid Frame</p>
* <p>Copyright: Copyright (C) 2006 Mauro Carniel</p>
* <p> </p>
* @author Mauro Carniel
* @version 1.0
*/
public class GridFrame extends JFrame {
GridControl grid = new GridControl();
JPanel buttonsPanel = new JPanel();
ReloadButton reloadButton = new ReloadButton();
FlowLayout flowLayout1 = new FlowLayout();
IntegerColumn colOrderNUmber = new IntegerColumn();
IntegerColumn colYear = new IntegerColumn();
TextColumn colCustomerId = new TextColumn();
CurrencyColumn colTotal = new CurrencyColumn();
private Connection conn = null;
ExportButton exportButton = new ExportButton();
NavigatorBar navigatorBar1 = new NavigatorBar();
DateColumn colOrderDate = new DateColumn();
public GridFrame(Connection conn,GridFrameController controller) {
super.setDefaultCloseOperation(super.EXIT_ON_CLOSE);
this.conn = conn;
try {
jbInit();
setSize(550,400);
grid.setController(controller);
grid.setGridDataLocator(controller);
setVisible(true);
}
catch(Exception e) {
e.printStackTrace();
}
}
public void reloadData() {
grid.reloadData();
}
private void jbInit() throws Exception {
buttonsPanel.setLayout(flowLayout1);
flowLayout1.setAlignment(FlowLayout.LEFT);
grid.setExpandableColumn(1);
grid.setExportButton(exportButton);
grid.setNavBar(navigatorBar1);
grid.setReloadButton(reloadButton);
grid.setValueObjectClassName("demo40.OrderVO");
colOrderNUmber.setColumnName("orderNumber");
colOrderNUmber.setColumnSortable(true);
colOrderNUmber.setHeaderColumnName("Order Nr.");
colOrderNUmber.setPreferredWidth(70);
colOrderNUmber.setSortingOrder(2);
colOrderNUmber.setSortVersus(org.openswing.swing.util.java.Consts.ASC_SORTED);
colYear.setColumnName("orderYear");
colYear.setSortingOrder(1);
colYear.setColumnSortable(true);
colYear.setHeaderColumnName("Year");
colYear.setPreferredWidth(60);
colYear.setSortVersus(org.openswing.swing.util.java.Consts.ASC_SORTED);
colCustomerId.setColumnName("customerId");
colCustomerId.setHeaderColumnName("Customer Id");
colCustomerId.setPreferredWidth(150);
colTotal.setColumnName("total");
colTotal.setGrouping(true);
colTotal.setHeaderColumnName("Total Amount");
colOrderDate.setColumnName("orderDate");
colOrderDate.setHeaderColumnName("Order Date");
this.getContentPane().add(grid, BorderLayout.CENTER);
this.getContentPane().add(buttonsPanel, BorderLayout.NORTH);
buttonsPanel.add(reloadButton, null);
buttonsPanel.add(exportButton, null);
buttonsPanel.add(navigatorBar1, null);
grid.getColumnContainer().add(colYear, null);
grid.getColumnContainer().add(colOrderNUmber, null);
grid.getColumnContainer().add(colOrderDate, null);
grid.getColumnContainer().add(colCustomerId, null);
grid.getColumnContainer().add(colTotal, null);
grid.setExpandableRowController(new ExpandableRowController() {
/**
* @param model grid model
* @param vo value object related to the current row
* @param rowNum the current row number
* @return <code>true</code> if the current row must be expanded, <code>false</code> otherwise
*/
public boolean isRowExpandable(VOListTableModel model,ValueObject vo,int rowNum) {
return ((OrderVO)vo).isHasOrderRows();
}
/**
* @param model grid model
* @param vo value object related to the current row
* @param rowNum the current row number
* @return JComponent to show when expanding row; null to do not show anything
*/
public JComponent getComponentToShow(VOListTableModel model,ValueObject vo,int rowNum) {
return null;
}
});
}
public GridControl getGrid() {
return grid;
}
}