Skip to content

Commit

Permalink
fix 49533 Excel ODA Data Set Design has a Changed State even when no
Browse files Browse the repository at this point in the history
edit changes were made
fix 49568 Editing an Excel ODA Data Set gets "Query command is empty"
exception stack trace in console
code reviewer: Bin Feng 
Test Description: Manual Test
  • Loading branch information
pshi authored and mwu committed May 9, 2012
1 parent c111837 commit f0e9792
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 14 deletions.
Expand Up @@ -140,7 +140,7 @@ public class ExcelFileSelectionWizardPage extends DataSetWizardPage implements
/** store latest selected sheet name */
private String currentSheetName;


private boolean flag = false;
private java.util.List<String[]> originalFileColumnsInfoList = new ArrayList<String[]>();
private java.util.List<String[]> savedSelectedColumnsInfoList = new ArrayList<String[]>();

Expand Down Expand Up @@ -796,20 +796,31 @@ else if ( obj instanceof URI)
* org.eclipse.jface.viewers.SelectionChangedEvent)
*/
public void selectionChanged(SelectionChangedEvent event) {

String sheetName = (String) ((IStructuredSelection) event
.getSelection()).getFirstElement();

if (sheetName.equalsIgnoreCase(currentSheetName))
String queryText = this.getInitializationDesign( ).getQueryText( );
if ( sheetName.equalsIgnoreCase( currentSheetName ) && isNewFile( queryText, getFileName( selectedFile ) ))
{
flag = false;
return;

}
else if (flag)
{
flag = false;
return;
}

if (currentSheetName != null && !MessageDialog.openConfirm(worksheetsCombo.getControl()
.getShell(), Messages
.getString("confirm.reselectWorksheetTitle"), //$NON-NLS-1$
Messages.getString("confirm.reselectWorksheetMessage"))) //$NON-NLS-1$
{
flag = true;
worksheetsCombo.setSelection(new StructuredSelection(
currentSheetName));

return;
}

Expand Down Expand Up @@ -841,8 +852,22 @@ public void selectionChanged(SelectionChangedEvent event) {
.endsWith(ExcelODAConstants.XLSX_FORMAT))) {
setMessage(Messages.getString("warning.fileExtensionInvalid"), //$NON-NLS-1$
WARNING);
} else
setMessage(DEFAULT_MESSAGE);
}
else
{
if (selectedColumnsViewer.getTable().getItemCount() == 0)
{
String errMsg = currentSheetName == null ?
Messages.getString("error.selectWorksheet") : //$NON-NLS-1$
Messages.getString("error.selectColumns"); //$NON-NLS-1$
setMessage( errMsg, ERROR );
}
else
{
setMessage(DEFAULT_MESSAGE);
}
}

}

// reset cursor back to normal state
Expand Down Expand Up @@ -902,6 +927,10 @@ public boolean accept(File dir, String fileName) {
}
}

private boolean isNewFile(String queryText, String selectedFile)
{
return queryText.contains( selectedFile );
}
/**
* Update file list in combo viewer
*/
Expand Down Expand Up @@ -959,10 +988,12 @@ private void updateFileList( )
try
{
populateWorkSheetCombo( );
if( currentSheetName != null )
String queryText = getInitializationDesign().getQueryText();
if ( currentSheetName != null
&& isNewFile(queryText, getFileName( selectedFile ) ) )
{
String[] columnNames = getFileColumnNames(selectedFile);
availableList.setItems( columnNames );
String[] columnNames = getFileColumnNames( selectedFile );
availableList.setItems( columnNames );
}
}
catch ( Exception e )
Expand Down Expand Up @@ -1294,11 +1325,18 @@ private void updateValuesFromQuery(String queryText) {
validateHasSelectedColumns();
return;
}

updateColumnsFromQuery(queryText, selectedFile);
if ( isNewFile( queryText, getFileName( selectedFile ) ) )
{
updateColumnsFromQuery(queryText, selectedFile);
}


if (selectedColumnsViewer.getTable().getItemCount() == 0) {
setPageComplete(false);
String errMsg = currentSheetName == null ?
Messages.getString("error.selectWorksheet") : //$NON-NLS-1$
Messages.getString("error.selectColumns"); //$NON-NLS-1$
setMessage( errMsg, ERROR );
}
}

Expand Down Expand Up @@ -1496,6 +1534,10 @@ private void removeColumns() {

if (selectedColumnsViewer.getTable().getItemCount() == 0) {
setPageComplete(false);
String errMsg = currentSheetName == null ?
Messages.getString("error.selectWorksheet") : //$NON-NLS-1$
Messages.getString("error.selectColumns"); //$NON-NLS-1$
setMessage( errMsg, ERROR );
}
}

Expand Down Expand Up @@ -1534,8 +1576,8 @@ private void removeItemsFromSelectedOnes(
*/
private void savePage(DataSetDesign dataSetDesign) {
String queryText = getQueryText();
/*if (queryText.equals(dataSetDesign.getQueryText()))
return;*/
if (queryText.equals(dataSetDesign.getQueryText()))
return;
dataSetDesign.setQueryText(queryText);
savePublicProperties(dataSetDesign);

Expand Down Expand Up @@ -1726,7 +1768,9 @@ private void populateWorkSheetCombo() throws IOException {
.getSheetNamesInExcelFile(selectedFile);
worksheetsCombo.setInput(sheetNameList.toArray());
for (String sheet : sheetNameList) {
if (sheet.equals(currentSheetName))
String queryText = getInitializationDesign().getQueryText();
if ( sheet.equals( currentSheetName )
&& isNewFile( queryText, getFileName( selectedFile ) ) )
worksheetsCombo.setSelection(new StructuredSelection(
currentSheetName));
}
Expand Down
Expand Up @@ -167,6 +167,9 @@ private void initialise() throws IOException, OdaException {
.createFormulaEvaluator();
workBook.setMissingCellPolicy(Row.RETURN_NULL_AND_BLANK);
sheet = workBook.getSheet(workSheetList.get(currentSheetIndex));
if (sheet == null)
throw new OdaException(
Messages.getString("invalid_sheet_name"));
maxRowsInThisSheet = sheet.getPhysicalNumberOfRows();

for (String sheetName : workSheetList) {
Expand Down

0 comments on commit f0e9792

Please sign in to comment.