From ec471348f6a573610b62dc5d5852c69ba84dd8a1 Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Tue, 28 Feb 2023 07:06:48 +0100 Subject: [PATCH] adds binary render option --- .../scviewer/database/ui/TrackEntry.java | 2 +- .../ui/swt/internal/SignalPainter.java | 3 ++ .../ui/swt/internal/WaveformView.java | 3 ++ .../scviewer/e4/application/Messages.java | 11 ++++++ .../WaveformPopupMenuContribution.java | 35 ++++++++++--------- .../e4/application/messages.properties | 11 ++++++ 6 files changed, 48 insertions(+), 17 deletions(-) diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/TrackEntry.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/TrackEntry.java index eeec8d0..d528d35 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/TrackEntry.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/TrackEntry.java @@ -18,7 +18,7 @@ public class TrackEntry { IWaveformStyleProvider styleProvider; public enum ValueDisplay { - DEFAULT, SIGNED, UNSIGNED + DEFAULT, BINARY, SIGNED, UNSIGNED } diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/SignalPainter.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/SignalPainter.java index 280c1d3..3078fdc 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/SignalPainter.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/SignalPainter.java @@ -219,6 +219,9 @@ public class SignalPainter extends TrackPainter { case UNSIGNED: label=Long.toString(last.toUnsignedValue()); break; + case BINARY: + label=last.toString(); + break; default: label="h'"+last.toHexString(); } diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/WaveformView.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/WaveformView.java index 691fef4..ace49ff 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/WaveformView.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/WaveformView.java @@ -617,6 +617,9 @@ public class WaveformView implements IWaveformView { case UNSIGNED: entry.currentValue = Long.toString(bv.toUnsignedValue()); break; + case BINARY: + entry.currentValue=bv.toString(); + break; default: entry.currentValue = "h'" + bv.toHexString(); } diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/Messages.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/Messages.java index 1b1eee8..991dd29 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/Messages.java +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/Messages.java @@ -43,6 +43,17 @@ public class Messages extends NLS { public static String TransactionDetails_21; public static String TransactionDetails_3; public static String TransactionDetails_4; + public static String WaveformPopupMenuContribution_0; + public static String WaveformPopupMenuContribution_1; + public static String WaveformPopupMenuContribution_10; + public static String WaveformPopupMenuContribution_12; + public static String WaveformPopupMenuContribution_15; + public static String WaveformPopupMenuContribution_2; + public static String WaveformPopupMenuContribution_3; + public static String WaveformPopupMenuContribution_4; + public static String WaveformPopupMenuContribution_5; + public static String WaveformPopupMenuContribution_6; + public static String WaveformPopupMenuContribution_7; public static String WaveformPreferencesPage_description; public static String WaveformPreferencesPage_1; public static String WaveformViewer_13; diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/elements/WaveformPopupMenuContribution.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/elements/WaveformPopupMenuContribution.java index b85191a..1b67efd 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/elements/WaveformPopupMenuContribution.java +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/elements/WaveformPopupMenuContribution.java @@ -20,11 +20,13 @@ import org.eclipse.e4.ui.model.application.ui.menu.MMenuFactory; import org.eclipse.e4.ui.workbench.modeling.EModelService; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.osgi.util.NLS; import com.minres.scviewer.database.BitVector; import com.minres.scviewer.database.DoubleVal; import com.minres.scviewer.database.WaveformType; import com.minres.scviewer.database.ui.TrackEntry; +import com.minres.scviewer.e4.application.Messages; import com.minres.scviewer.e4.application.parts.WaveformViewer; public class WaveformPopupMenuContribution { @@ -86,14 +88,15 @@ public class WaveformPopupMenuContribution { ISelection sel = wfv.getSelection(); TrackEntry elem = getSingleTrackEntry(sel); if(selHasBitVector(sel, false)) { - addValueMenuItem(items, application, modelService, "hex", TrackEntry.ValueDisplay.DEFAULT, elem); - addValueMenuItem(items, application, modelService, "unsigned", TrackEntry.ValueDisplay.UNSIGNED, elem); - addValueMenuItem(items, application, modelService, "signed", TrackEntry.ValueDisplay.SIGNED, elem); + addValueMenuItem(items, application, modelService, Messages.WaveformPopupMenuContribution_0, TrackEntry.ValueDisplay.BINARY, elem); + addValueMenuItem(items, application, modelService, Messages.WaveformPopupMenuContribution_1, TrackEntry.ValueDisplay.DEFAULT, elem); + addValueMenuItem(items, application, modelService, Messages.WaveformPopupMenuContribution_2, TrackEntry.ValueDisplay.UNSIGNED, elem); + addValueMenuItem(items, application, modelService, Messages.WaveformPopupMenuContribution_3, TrackEntry.ValueDisplay.SIGNED, elem); items.add(MMenuFactory.INSTANCE.createMenuSeparator()); - addWaveMenuItem(items, application, modelService, "bit vector", TrackEntry.WaveDisplay.DEFAULT, elem); + addWaveMenuItem(items, application, modelService, Messages.WaveformPopupMenuContribution_4, TrackEntry.WaveDisplay.DEFAULT, elem); } - addWaveMenuItem(items, application, modelService, "analog step-wise", TrackEntry.WaveDisplay.STEP_WISE, elem); - addWaveMenuItem(items, application, modelService, "analog continous", TrackEntry.WaveDisplay.CONTINOUS, elem); + addWaveMenuItem(items, application, modelService, Messages.WaveformPopupMenuContribution_5, TrackEntry.WaveDisplay.STEP_WISE, elem); + addWaveMenuItem(items, application, modelService, Messages.WaveformPopupMenuContribution_6, TrackEntry.WaveDisplay.CONTINOUS, elem); } } @@ -102,13 +105,13 @@ public class WaveformPopupMenuContribution { MHandledMenuItem item = MMenuFactory.INSTANCE.createHandledMenuItem(); item.setType(ItemType.RADIO); item.setSelected(elem != null && elem.valueDisplay == value); - item.setLabel("Show as "+label); - item.setContributorURI("platform:/plugin/com.minres.scviewer.e4.application"); - List cmds = modelService.findElements(application, "com.minres.scviewer.e4.application.command.changevaluedisplay", MCommand.class, null); - if(cmds.size()!=1) System.err.println("No command found!"); + item.setLabel(NLS.bind(Messages.WaveformPopupMenuContribution_7, label)); + item.setContributorURI("platform:/plugin/com.minres.scviewer.e4.application"); //$NON-NLS-1$ + List cmds = modelService.findElements(application, "com.minres.scviewer.e4.application.command.changevaluedisplay", MCommand.class, null); //$NON-NLS-1$ + if(cmds.size()!=1) System.err.println(Messages.WaveformPopupMenuContribution_10); else item.setCommand(cmds.get(0)); MParameter param = MCommandsFactory.INSTANCE.createParameter(); - param.setName("com.minres.scviewer.e4.application.commandparameter.changevaluedisplay"); + param.setName("com.minres.scviewer.e4.application.commandparameter.changevaluedisplay"); //$NON-NLS-1$ param.setValue(value.toString()); item.getParameters().add(param); items.add(item); @@ -119,13 +122,13 @@ public class WaveformPopupMenuContribution { MHandledMenuItem item = MMenuFactory.INSTANCE.createHandledMenuItem(); item.setType(ItemType.RADIO); item.setSelected(elem != null && elem.waveDisplay==value); - item.setLabel("Render "+label); - item.setContributorURI("platform:/plugin/com.minres.scviewer.e4.application"); - List cmds = modelService.findElements(application, "com.minres.scviewer.e4.application.command.changewavedisplay", MCommand.class, null); - if(cmds.size()!=1) System.err.println("No command found!"); + item.setLabel(NLS.bind(Messages.WaveformPopupMenuContribution_12, label)); + item.setContributorURI("platform:/plugin/com.minres.scviewer.e4.application"); //$NON-NLS-1$ + List cmds = modelService.findElements(application, "com.minres.scviewer.e4.application.command.changewavedisplay", MCommand.class, null); //$NON-NLS-1$ + if(cmds.size()!=1) System.err.println(Messages.WaveformPopupMenuContribution_15); else item.setCommand(cmds.get(0)); MParameter param = MCommandsFactory.INSTANCE.createParameter(); - param.setName("com.minres.scviewer.e4.application.commandparameter.changewavedisplay"); + param.setName("com.minres.scviewer.e4.application.commandparameter.changewavedisplay"); //$NON-NLS-1$ param.setValue(value.toString()); item.getParameters().add(param); items.add(item); diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/messages.properties b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/messages.properties index 68e62b7..460b23a 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/messages.properties +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/messages.properties @@ -37,6 +37,17 @@ TransactionDetails_20=Time TransactionDetails_21=End time TransactionDetails_3=Value TransactionDetails_4=Relation +WaveformPopupMenuContribution_0=bin +WaveformPopupMenuContribution_1=hex +WaveformPopupMenuContribution_2=unsigned int +WaveformPopupMenuContribution_3=signed int +WaveformPopupMenuContribution_4=bit vector +WaveformPopupMenuContribution_5=analog step-wise +WaveformPopupMenuContribution_6=analog continous +WaveformPopupMenuContribution_7=Show as {0} +WaveformPopupMenuContribution_10=No command found\! +WaveformPopupMenuContribution_12=Render {0} +WaveformPopupMenuContribution_15=No command found\! WaveformPreferencesPage_description=Default Waveform Window Settings WaveformPreferencesPage_1=Color for WaveformViewer_13=Database Load Status