package demo9;
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 java.util.ArrayList;
import org.openswing.swing.message.send.java.FilterWhereClause;
import org.openswing.swing.util.java.Consts;
/**
* <p>Title: OpenSwing Framework</p>
* <p>Description: Grid Frame where the user can insert more than one row at a time.</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();
DeleteButton deleteButton = new DeleteButton();
FlowLayout flowLayout1 = new FlowLayout();
TextColumn colText = new TextColumn();
IntegerColumn colInt = new IntegerColumn();
DecimalColumn colDecimal = new DecimalColumn();
CurrencyColumn colCurrency = new CurrencyColumn();
DateColumn colDate = new DateColumn();
ComboColumn colCombo = new ComboColumn();
CodLookupColumn colLookup = new CodLookupColumn();
TextColumn textColumn1 = new TextColumn();
CheckBoxColumn colCheck = new CheckBoxColumn();
InsertButton insertButton = new InsertButton();
private Connection conn = null;
EditButton editButton = new EditButton();
SaveButton saveButton = new SaveButton();
CopyButton copyButton = new CopyButton();
ExportButton exportButton = new ExportButton();
ButtonColumn colButton = new ButtonColumn();
FilterButton filterButton = new FilterButton();
JPanel topPanel = new JPanel();
MultiLookupControl multiLookupControl1 = new MultiLookupControl(new LookupController(),new String[] {"lookupValue","descrLookupValue"}," - ");
GridBagLayout gridBagLayout1 = new GridBagLayout();
JButton searchButton = new JButton();
public GridFrame(Connection conn,GridFrameController controller) {
super.setDefaultCloseOperation(super.EXIT_ON_CLOSE);
this.conn = conn;
try {
jbInit();
setSize(750,500);
grid.setController(controller);
grid.setGridDataLocator(controller);
LookupController lookupController = new DemoLookupController(conn);
colLookup.setLookupController(lookupController);
// setup multi code lookup...
multiLookupControl1.setController(new DemoLookupController(conn));
// grid.setLockedColumns(2);
setVisible(true);
}
catch(Exception e) {
e.printStackTrace();
}
}
public void reloadData() {
grid.reloadData();
}
private void jbInit() throws Exception {
grid.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
grid.setHeaderHeight(40);
buttonsPanel.setLayout(flowLayout1);
flowLayout1.setAlignment(FlowLayout.LEFT);
grid.setMaxSortedColumns(1);
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("demo9.TestVO");
colText.setColumnFilterable(true);
colText.setColumnName("stringValue");
colText.setColumnSortable(true);
colText.setEditableOnInsert(true);
colText.setMaxCharacters(5);
colText.setTrimText(true);
colText.setUpperCase(true);
colDecimal.setDecimals(2);
colDecimal.setColumnDuplicable(true);
colDecimal.setColumnName("numericValue");
colDecimal.setColumnRequired(false);
colDecimal.setEditableOnEdit(true);
colDecimal.setEditableOnInsert(true);
colInt.setColumnFilterable(true);
colInt.setColumnSortable(true);
colInt.setColumnDuplicable(true);
colInt.setColumnName("intValue");
colInt.setColumnRequired(false);
colInt.setEditableOnEdit(true);
colInt.setEditableOnInsert(true);
colCurrency.setColumnDuplicable(true);
colCurrency.setColumnName("currencyValue");
colCurrency.setColumnRequired(false);
colCurrency.setDecimals(3);
colCurrency.setEditableOnEdit(true);
colCurrency.setEditableOnInsert(true);
colDate.setColumnDuplicable(true);
colDate.setColumnName("dateValue");
colDate.setColumnRequired(false);
colDate.setEditableOnEdit(true);
colDate.setEditableOnInsert(true);
colCombo.setDomainId("ORDERSTATE");
colCombo.setColumnDuplicable(true);
colCombo.setColumnName("comboValue");
colCombo.setColumnRequired(false);
colCombo.setEditableOnEdit(true);
colCombo.setEditableOnInsert(true);
colLookup.setColumnDuplicable(true);
colLookup.setColumnName("lookupValue");
colLookup.setPreferredWidth(60);
colLookup.setEditableOnEdit(true);
colLookup.setEditableOnInsert(true);
colLookup.setMaxCharacters(5);
textColumn1.setColumnDuplicable(true);
textColumn1.setColumnName("descrLookupValue");
textColumn1.setColumnRequired(false);
textColumn1.setPreferredWidth(150);
colCheck.setColumnDuplicable(true);
colCheck.setColumnName("checkValue");
colCheck.setEnableInReadOnlyMode(true);
colCheck.setColumnRequired(false);
colCheck.setEditableOnEdit(true);
colCheck.setEditableOnInsert(true);
insertButton.setText("insertButton1");
editButton.setText("editButton1");
saveButton.setText("saveButton1");
colButton.setColumnName("button");
colButton.setHeaderColumnName("button");
colButton.setPreferredWidth(50);
colButton.setEditableOnEdit(true);
colButton.setEditableOnInsert(true);
colButton.setEnableInReadOnlyMode(true);
// colButton.setIconName("chiuso.gif");
// colButton.setText("");
colButton.setShowAttributeValue(true);
topPanel.setLayout(gridBagLayout1);
searchButton.setMnemonic('S');
searchButton.setText("Search");
searchButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
searchButton_actionPerformed(e);
}
});
this.getContentPane().add(grid, BorderLayout.CENTER);
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);
topPanel.add(searchButton, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0
,GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
this.getContentPane().add(topPanel, BorderLayout.NORTH);
topPanel.add(multiLookupControl1, new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0
,GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(5, 5, 0, 5), 0, 0));
topPanel.add(buttonsPanel, new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0
,GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 0));
grid.getColumnContainer().add(colText, null);
grid.getColumnContainer().add(colInt, null);
grid.getColumnContainer().add(colDecimal, null);
grid.getColumnContainer().add(colCurrency, null);
grid.getColumnContainer().add(colDate, null);
grid.getColumnContainer().add(colCombo, null);
grid.getColumnContainer().add(colButton, null);
grid.getColumnContainer().add(colLookup, null);
grid.getColumnContainer().add(textColumn1, null);
grid.getColumnContainer().add(colCheck, null);
colButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// do something...
System.out.println("button pressed");
}
});
}
public GridControl getGrid() {
return grid;
}
void searchButton_actionPerformed(ActionEvent e) {
ArrayList vos = multiLookupControl1.getSelectedVOs();
if (vos.size()==0)
grid.getQuickFilterValues().remove("lookupValue");
else {
ArrayList list = new ArrayList();
TestLookupVO vo = null;
for(int i=0;i<vos.size();i++) {
vo = (TestLookupVO)vos.get(i);
list.add(vo.getLookupValue());
}
FilterWhereClause f = new FilterWhereClause("lookupValue",Consts.IN,list);
grid.getQuickFilterValues().put("lookupValue",new FilterWhereClause[]{f,null});
}
grid.reloadData();
}
}