fixes removing traces

This commit is contained in:
Eyck Jentzsch 2023-02-21 19:24:13 +01:00
parent 0e705ce0e9
commit b809042189
3 changed files with 24 additions and 21 deletions

View File

@ -316,30 +316,25 @@
id="com.minres.scviewer.ui.oneWaveSeleted">
<with
variable="selection">
<and>
<count
value="1">
</count>
<iterate
operator="or">
<instanceof value="com.minres.scviewer.database.IWaveform"/>
</iterate>
</and>
<iterate
ifEmpty="false"
operator="or">
<instanceof
value="com.minres.scviewer.database.ui.TrackEntry">
</instanceof>
</iterate>
</with>
</definition>
<definition
id="com.minres.scviewer.ui.oneTxSeleted">
<with
variable="selection">
<and>
<count
value="1">
</count>
<iterate
operator="or">
<instanceof value="com.minres.scviewer.database.tx.ITx"/>
</iterate>
</and>
<iterate
operator="or">
<instanceof
value="com.minres.scviewer.database.tx.ITx">
</instanceof>
</iterate>
</with>
</definition>
<definition

View File

@ -333,6 +333,10 @@ public class TxEditorPart extends EditorPart implements ITabbedPropertySheetPage
addStreamToList(stream);
}
public void removeStreamFromList(TrackEntry entry){
waveformView.getStreamList().remove(entry);
}
public void removeStreamFromList(IWaveform waveform){
if(getEditorInput() instanceof TxEditorInput && ((TxEditorInput) getEditorInput()).getStreamNames().contains(waveform.getFullName())){
((TxEditorInput) getEditorInput()).getStreamNames().remove(waveform.getFullName());

View File

@ -18,7 +18,7 @@ import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.handlers.HandlerUtil;
import com.minres.scviewer.database.IWaveform;
import com.minres.scviewer.database.ui.TrackEntry;
import com.minres.scviewer.ui.TxEditorPart;
public class RemoveHandler extends AbstractHandler {
@ -29,8 +29,12 @@ public class RemoveHandler extends AbstractHandler {
if(editor instanceof TxEditorPart){
TxEditorPart editorPart = (TxEditorPart) editor;
ISelection selection =editorPart.getSelection();
if(selection instanceof StructuredSelection && ((StructuredSelection)selection).getFirstElement() instanceof IWaveform){
editorPart.removeStreamFromList((IWaveform) ((StructuredSelection)selection).getFirstElement());
if(selection instanceof StructuredSelection) {
for(Object elem:((StructuredSelection) selection).toList()) {
if(elem instanceof TrackEntry){
editorPart.removeStreamFromList((TrackEntry) elem);
}
}
editorPart.setSelection(new StructuredSelection());
}
}