fix Sonarlint warnings

This commit is contained in:
2021-01-09 22:23:38 +01:00
parent 73b21cb80b
commit 45e1031e5e
5 changed files with 674 additions and 548 deletions

View File

@ -16,11 +16,13 @@ import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -355,8 +357,10 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
case SWT.ARROW_DOWN:
waveformPane.moveSelection(GotoDirection.DOWN);
return;
case SWT.HOME: return; //TODO: should be handled
case SWT.END: return; //TODO: should be handled
case SWT.HOME:
return;
case SWT.END:
return;
default:
break;
}
@ -763,25 +767,25 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
*/
protected void restoreWaveformViewerState(Map<String, String> state) {
Integer waves = state.containsKey(SHOWN_WAVEFORM+"S") ? Integer.parseInt(state.get(SHOWN_WAVEFORM + "S")):0; //$NON-NLS-1$ //$NON-NLS-2$
List<TrackEntry> res = new LinkedList<>();
List<TrackEntry> trackEntries = new LinkedList<>();
for (int i = 0; i < waves; i++) {
IWaveform waveform = database.getStreamByName(state.get(SHOWN_WAVEFORM + i));
if (waveform != null) {
TrackEntry t = waveformPane.addWaveform(waveform, -1);
TrackEntry trackEntry = waveformPane.addWaveform(waveform, -1);
//check if t is selected
boolean isSelected = Boolean.parseBoolean(state.get(SHOWN_WAVEFORM + i + WAVEFORM_SELECTED));
if(isSelected) {
t.selected = true;
trackEntry.selected = true;
} else {
t.selected = false;
trackEntry.selected = false;
}
res.add(t);
trackEntries.add(trackEntry);
String v = state.get(SHOWN_WAVEFORM + i + VALUE_DISPLAY);
if(v!=null)
t.valueDisplay=ValueDisplay.valueOf(v);
trackEntry.valueDisplay=ValueDisplay.valueOf(v);
String s = state.get(SHOWN_WAVEFORM + i + WAVE_DISPLAY);
if(s!=null)
t.waveDisplay=WaveDisplay.valueOf(s);
trackEntry.waveDisplay=WaveDisplay.valueOf(s);
}
}
Integer cursorLength = state.containsKey(SHOWN_CURSOR+"S")?Integer.parseInt(state.get(SHOWN_CURSOR + "S")):0; //$NON-NLS-1$ //$NON-NLS-2$
@ -810,32 +814,11 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
try {
Long txId = Long.parseLong(state.get(SELECTED_TX_ID));
String trackentryName = state.get(SELECTED_TRACKENTRY_NAME);
//get TrackEntry Object based on name and TX Object by id and put into selectionList
for(TrackEntry te : res) {
if(te.waveform.getFullName().compareTo(trackentryName)==0) {
boolean found = false;
// TODO: find transaction by time? To avoid 3x for-loop
for( IEvent[] lev : te.waveform.getEvents().values() ) {
if(lev != null)
for(IEvent itxe : lev) {
if(itxe instanceof ITxEvent) {
ITx itx = ((ITxEvent)itxe).getTransaction();
if(itx.getId().equals(txId)) {
found = true;
ArrayList<Object> selectionList = new ArrayList<>();
selectionList.add(te);
selectionList.add(itx);
waveformPane.setSelection(new StructuredSelection (selectionList));
break;
}
}
}
if(found) break;
}
break;
}
}
trackEntries.stream().filter(e->trackentryName.equals(e.waveform.getFullName())).forEach(trackEntry ->
trackEntry.waveform.getEvents().values().stream().filter(Objects::nonNull).forEach(entries->
Arrays.stream(entries).filter(e->e instanceof ITxEvent && txId.equals(((ITxEvent)e).getTransaction().getId())).forEach(event ->
waveformPane.setSelection(new StructuredSelection(new Object[] {((ITxEvent)event).getTransaction(), trackEntry})))));
} catch (NumberFormatException e) {
}
}