feature[ats_AMS1190]: Fixed element viewer not saving columns correctly Signed-off-by: Jonathon Fidiam <Jonathon.Fidiam@boeing.com> Change-Id: I7167a46ae97331bc6b068a44f0b9da8eb73091ee
diff --git a/org.eclipse.ote.ui.eviewer/src/org/eclipse/ote/ui/eviewer/view/ElementContentProvider.java b/org.eclipse.ote.ui.eviewer/src/org/eclipse/ote/ui/eviewer/view/ElementContentProvider.java index acbd372..2b8aa5c 100644 --- a/org.eclipse.ote.ui.eviewer/src/org/eclipse/ote/ui/eviewer/view/ElementContentProvider.java +++ b/org.eclipse.ote.ui.eviewer/src/org/eclipse/ote/ui/eviewer/view/ElementContentProvider.java
@@ -24,7 +24,6 @@ import java.util.Map; import java.util.concurrent.locks.ReentrantLock; import java.util.logging.Level; - import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.Viewer; @@ -213,10 +212,10 @@ streamWriteLock.lock(); if (streamToFileWriter != null) { int i; -// streamToFileWriter.append(Long.toString(timeColumn.getLong())); -// streamToFileWriter.append(','); -// streamToFileWriter.append(Long.toString(timeDeltaColumn.getLong())); -// streamToFileWriter.append(','); + // streamToFileWriter.append(Long.toString(timeColumn.getLong())); + // streamToFileWriter.append(','); + // streamToFileWriter.append(Long.toString(timeDeltaColumn.getLong())); + // streamToFileWriter.append(','); for (i = 0; i < viewerColumns.size() - 1; i++) { Object o = update.getValue(viewerColumns.get(i)); if (o != null) { @@ -343,14 +342,14 @@ viewer.getTable().setRedraw(true); updateInternalFile(); } - + public void setEnumOutputNumber(boolean isNumber){ for(ViewerColumnElement col:elementColumns){ col.setEnumOutputNumber(isNumber); } this.showEnumAsNumber = isNumber; } - + public boolean updateInternalFile() { try { saveColumnsToFile(OseeData.getFile(Constants.INTERNAL_FILE_NAME)); @@ -366,9 +365,11 @@ if (viewerColumns.isEmpty()) { return; } - int i; - for (i = 0; i < elementColumns.size(); i++) { - ViewerColumnElement column = elementColumns.get(i); + int[] ordering = viewer.getTable().getColumnOrder(); + for (int i = 0; i < elementColumns.size(); i++) { + // the indices for the actual ordering are 2 over from where you would expect (think 2-indexed instead of 0) + // but the elementColumns is a 0-indexed data structure. + ViewerColumnElement column = elementColumns.get((ordering[i+2] - 2)); writer.write(column.getColumnElement().getElementPath().encode()); writer.write('='); writer.write(column.isActive() ? "active" : "inactive"); @@ -378,10 +379,13 @@ writer.write('\n'); } } + writer.flush(); + } finally { writer.close(); } + } public void loadColumns(List<ColumnEntry> columnEntries) { @@ -407,7 +411,7 @@ } public synchronized void removeAll() { - refresher.clearUpdates(); + refresher.clearUpdates(); disposeAllColumns(); updateInternalFile(); } @@ -419,9 +423,9 @@ details.dispose(); } subscriptions.clear(); - + elementColumns.clear(); - + viewerColumns.clear(); viewerColumns.add(timeColumn); viewerColumns.add(timeDeltaColumn); @@ -455,16 +459,16 @@ streamToFileWriter = new PrintWriter(new FileOutputStream(file)); int i; -// streamToFileWriter.write(timeColumn.getName()); -// streamToFileWriter.write(','); -// streamToFileWriter.write(timeDeltaColumn.getName()); -// streamToFileWriter.write(','); + // streamToFileWriter.write(timeColumn.getName()); + // streamToFileWriter.write(','); + // streamToFileWriter.write(timeDeltaColumn.getName()); + // streamToFileWriter.write(','); for (i = 0; i < viewerColumns.size() - 1; i++) { streamToFileWriter.write(viewerColumns.get(i).getVerboseName()); streamToFileWriter.write(','); } if (viewerColumns.size() > 0) { - + streamToFileWriter.write(viewerColumns.get(i).getVerboseName()); streamToFileWriter.write('\n'); }