package demo17;
import javax.swing.*;
import org.openswing.swing.client.*;
import java.awt.*;
import org.openswing.swing.table.columns.client.*;
import org.openswing.swing.mdi.client.InternalFrame;
import org.openswing.swing.mdi.client.MDIFrame;
import org.openswing.swing.util.client.ClientSettings;
import java.awt.event.*;
import javax.swing.text.MaskFormatter;
import java.text.ParseException;
/**
* <p>Title: OpenSwing Framework</p>
* <p>Description: Grid Frame for Departments.</p>
* <p>Copyright: Copyright (C) 2006 Mauro Carniel</p>
* <p> </p>
* @author Mauro Carniel
* @version 1.0
*/
public class DeptGridFrame extends InternalFrame {
GridControl grid = new GridControl();
JPanel buttonsPanel = new JPanel();
ReloadButton reloadButton = new ReloadButton();
DeleteButton deleteButton = new DeleteButton();
FlowLayout flowLayout1 = new FlowLayout();
TextColumn colDeptCode = new TextColumn();
TextColumn colDescription = new TextColumn();
// IntegerColumn colPhone = new IntegerColumn();
FormattedTextColumn colPhone = new FormattedTextColumn();
InsertButton insertButton = new InsertButton();
EditButton editButton = new EditButton();
SaveButton saveButton = new SaveButton();
ExportButton exportButton = new ExportButton();
NavigatorBar navigatorBar1 = new NavigatorBar();
private DeptGridFrameController controller = null;
public DeptGridFrame(DeptGridFrameController controller) {
this.controller = controller;
try {
jbInit();
setSize(620,300);
grid.setController(controller);
grid.setGridDataLocator(controller);
MDIFrame.add(this);
setTitle(ClientSettings.getInstance().getResources().getResource("departments"));
}
catch(Exception e) {
e.printStackTrace();
}
}
public void reloadData() {
grid.reloadData();
}
private void jbInit() throws Exception {
buttonsPanel.setLayout(flowLayout1);
flowLayout1.setAlignment(FlowLayout.LEFT);
grid.setDeleteButton(deleteButton);
grid.setEditButton(editButton);
grid.setExportButton(exportButton);
grid.setNavBar(navigatorBar1);
grid.setReloadButton(reloadButton);
grid.setSaveButton(saveButton);
grid.setValueObjectClassName("demo17.DeptVO");
colDeptCode.setColumnFilterable(true);
colDeptCode.setColumnName("deptCode");
colDeptCode.setColumnSortable(true);
colDeptCode.setEditableOnInsert(true);
colDeptCode.setMaxCharacters(5);
colDeptCode.setTrimText(true);
colDeptCode.setUpperCase(true);
colDescription.setColumnDuplicable(true);
colDescription.setColumnFilterable(true);
colDescription.setColumnName("description");
colDescription.setColumnSortable(true);
colDescription.setEditableOnEdit(true);
colDescription.setEditableOnInsert(true);
colDescription.setPreferredWidth(350);
colPhone.setColumnName("address.phone");
colPhone.setColumnFilterable(true);
colPhone.setColumnSortable(true);
JFormattedTextField.AbstractFormatter formatter = new JFormattedTextField.AbstractFormatter() {
/**
* Parses <code>text</code> returning an arbitrary Object. Some
* formatters may return null.
*
* @throws ParseException if there is an error in the conversion
* @param text String to convert
* @return Object representation of text
*/
public Object stringToValue(String text) throws ParseException {
if (text==null || text.equals(""))
return null;
String t = "";
for(int i=0;i<text.length();i++)
if (Character.isDigit(text.charAt(i)))
t += text.charAt(i);
else
if (!( text.charAt(i)=='-' && (i==3 || i==6) ))
throw new ParseException("Invalid pattern!",i);
return new Integer(t);
}
/**
* Returns the string value to display for <code>value</code>.
*
* @throws ParseException if there is an error in the conversion
* @param value Value to convert
* @return String representation of value
*/
public String valueToString(Object value) throws ParseException {
if (value==null)
return null;
String t = value.toString();
if (t.length()!=9)
throw new ParseException("Invalid pattern!",t.length()-1);
t = t.substring(0,3)+"-"+t.substring(3,5)+"-"+t.substring(5);
return t;
}
};
colPhone.setFormatter(formatter);
insertButton.setText("insertButton1");
insertButton.addActionListener(new DeptGridFrame_insertButton_actionAdapter(this));
editButton.setText("editButton1");
saveButton.setText("saveButton1");
this.getContentPane().add(grid, BorderLayout.CENTER);
this.getContentPane().add(buttonsPanel, BorderLayout.NORTH);
buttonsPanel.add(insertButton, null);
buttonsPanel.add(editButton, null);
buttonsPanel.add(reloadButton, null);
buttonsPanel.add(saveButton, null);
buttonsPanel.add(exportButton, null);
buttonsPanel.add(deleteButton, null);
buttonsPanel.add(navigatorBar1, null);
grid.getColumnContainer().add(colDeptCode, null);
grid.getColumnContainer().add(colDescription, null);
grid.getColumnContainer().add(colPhone, null);
}
void insertButton_actionPerformed(ActionEvent e) {
new DeptDetailFrameController(this,null,controller.getSessions());
}
public GridControl getGrid() {
return grid;
}
}
class DeptGridFrame_insertButton_actionAdapter implements java.awt.event.ActionListener {
DeptGridFrame adaptee;
DeptGridFrame_insertButton_actionAdapter(DeptGridFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.insertButton_actionPerformed(e);
}
}