Watch, Follow, &
Connect with Us
Public Report
Report From: JBuilder/Components/dbSwing    [ Add a report in this area ]  
Report #:  6551   Status: Closed
JdbNavComboox fails on a navigation cancelation
Project:  JBuilder Build #:  6.0.438
Version:    12 Submitted By:   Neil Renaud
Report Type:  Basic functionality failure Date Reported:  12/3/2003 8:41:54 AM
Severity:    Serious / Highly visible problem Last Updated: 3/20/2012 2:24:39 AM
Platform:    All platforms Internal Tracking #:   193902
Resolution: Fixed (Resolution Comments) Resolved in Build: : 012.000.203.000
Duplicate of:  None
Voting and Rating
Overall Rating: No Ratings Yet
0.00 out of 5
Total Votes: None
Description
When a navigation invoked by a JdbNavComboBox is vetoed or canceled (e.g. by an EditListener on the DataSet) the dataset reverts to the original record but the JdbNavComboBox doesn't change to reflect this.
QC Entry 6551
Steps to Reproduce:
Open attached project or follow these steps:

Create an application with a JdbNavComboBox, JdbTextField
a Database and a QueryDataSet.

Set the QueryDataSet to connect to the database with a valid query
that will return a unique ID (for navigation) and some text (for editing)

To the QueryDataSet add an EditAdapter with the updating method overwritten
as shown...

void queryDataSet1_updating(DataSet dataSet, ReadWriteRow readWriteRow, ReadRow readRow) throws Exception {
    throw new VetoException("Test Veto");
}

ovewrite the updateError method as shown below

void queryDataSet1_updateError(DataSet dataSet, ReadWriteRow readWriteRow, DataSetException dataSetException, ErrorResponse errorResponse) {
    errorResponse.abort();
}

Set the Dataset of the JdbNavComboBox and JdbTextField
to the QueryDataSet and set the columns of each appropriatley

Finally set the JdbTextFields postOnFocusLost to false
jdbTextField1.setPostOnFocusLost(false);

Run the application and the JdbNavComboBox should work as expected
Then edit the data in the text field and attempt to navigate to a
new record. The post should fail due to the exception thrown in the
updating method and the DataSet should revert back to the record
we have just edited for correction. However the JdbNavComboBox is now
blank and doesn't display the currently selected record.

I believe this could be to do with the ignoreNavigation and
ignoreValueChange booleans in the JdbNavComboBox code.

Workarounds
The only workaround I have managed to get to work is to
remove the JdbNavComboBox from its container, set the
object reference to null and then create a new
JdbNavComboBox and rebind it to the DataSet and column

---------

The only workaround I have managed to get to work is to
remove the JdbNavComboBox from its container, set the
object reference to null and then create a new
JdbNavComboBox and rebind it to the DataSet and column
Attachment
None
Comments

None

Server Response from: ETNACODE01