in HSQL/src/org/hsqldb1/util/ZaurusEditor.java [226:374]
public void actionPerformed(ActionEvent e) {
Button button = (Button) e.getSource();
if (button == bSearchRow) {
this.resetLastButtonDelete();
// System.out.println("pressed search");
aktHoldNr = getChoosenTableIndex();
// search all rows
int numberOfRows =
((ZaurusTableForm) vHoldForms.elementAt(aktHoldNr))
.searchRows(this
.getWords(), (gAllWords.getSelectedCheckbox()
.getLabel().equals("all")), (gIgnoreCase
.getSelectedCheckbox().getLabel()
.equals("yes")), (gNoMatchWhole
.getSelectedCheckbox().getLabel().equals("no")));
String tableName = (String) vHoldTableNames.elementAt(aktHoldNr);
if (numberOfRows > 0) {
lForm.show(pForm, tableName);
lButton.show(pButton, "edit");
bPrev.setEnabled(false);
// if there is more than one row, enable the next button
bNext.setEnabled(numberOfRows != 1);
ZaurusEditor.printStatus("found " + numberOfRows
+ " rows in table " + tableName);
} else if (numberOfRows == 0) {
ZaurusEditor.printStatus("no rows found in table "
+ tableName);
// numberOfRows could be -1 as well, if an SQL exception was encountered
} // end of if (numberOfRows > 0)
} else if ((button == bNewRow)) {
// System.out.println("pressed new");
aktHoldNr = getChoosenTableIndex();
lForm.show(pForm, (String) vHoldTableNames.elementAt(aktHoldNr));
lButton.show(pButton, "insert");
((ZaurusTableForm) vHoldForms.elementAt(
aktHoldNr)).insertNewRow();
} else if (button == bNewInsert) {
this.resetLastButtonDelete();
// new search in edit row
if (((ZaurusTableForm) vHoldForms.elementAt(
aktHoldNr)).saveNewRow()) {
// System.out.println("pressed new insert");
((ZaurusTableForm) vHoldForms.elementAt(
aktHoldNr)).insertNewRow();
}
} else if (button == bNewSearch) {
this.resetLastButtonDelete();
// new search in edit row
if (((ZaurusTableForm) vHoldForms.elementAt(
aktHoldNr)).saveChanges()) {
// System.out.println("pressed new search");
lForm.show(pForm, "search");
lButton.show(pButton, "search");
}
} else if (button == bNewSearch1) {
this.resetLastButtonDelete();
// new search in insert row, succeeds if the saving is successfull
if (((ZaurusTableForm) vHoldForms.elementAt(
aktHoldNr)).saveNewRow()) {
// System.out.println("pressed new search");
lForm.show(pForm, "search");
lButton.show(pButton, "search");
}
} else if ((button == bNext)) {
this.resetLastButtonDelete();
ZaurusEditor.clearStatus();
if (((ZaurusTableForm) vHoldForms.elementAt(
aktHoldNr)).saveChanges()) {
bPrev.setEnabled(true);
if (!((ZaurusTableForm) vHoldForms.elementAt(
aktHoldNr)).nextRow()) {
bNext.setEnabled(false);
}
}
} else if ((button == bPrev)) {
this.resetLastButtonDelete();
ZaurusEditor.clearStatus();
if (((ZaurusTableForm) vHoldForms.elementAt(
aktHoldNr)).saveChanges()) {
bNext.setEnabled(true);
if (!((ZaurusTableForm) vHoldForms.elementAt(
aktHoldNr)).prevRow()) {
bPrev.setEnabled(false);
}
}
} else if ((button == bCancel1)) {
// cancel in edit panel
this.resetLastButtonDelete();
((ZaurusTableForm) vHoldForms.elementAt(
aktHoldNr)).cancelChanges();
} else if ((button == bCancel2)) {
this.resetLastButtonDelete();
// cancel in insert panel, just show the search panel again
lForm.show(pForm, "search");
lButton.show(pButton, "search");
} else if (button == bDelete) {
if (lastButtonDelete) {
// delete and determine follow up actions, see comment in ZaurusTableForm.deleteRow()
switch (((ZaurusTableForm) vHoldForms.elementAt(
aktHoldNr)).deleteRow()) {
case 1 :
lForm.show(pForm, "search");
lButton.show(pButton, "search");
break;
case 2 :
bPrev.setEnabled(false);
break;
case 3 :
bNext.setEnabled(false);
break;
default :
break;
} // end of switch (((ZaurusTableForm) vHoldForms.elementAt(aktHoldNr)).deleteRow())
lastButtonDelete = false;
} else {
ZaurusEditor.printStatus(
"Press 'Delete' a second time to delete row.");
lastButtonDelete = true;
} // end of if (lastButtonDelete)
} // end of if (button == Rest)
}