diff --git a/doc/com.minres.scviewer.doc/.gitignore b/doc/com.minres.scviewer.doc/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/doc/com.minres.scviewer.doc/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/doc/com.minres.scviewer.doc/.project b/doc/com.minres.scviewer.doc/.project
new file mode 100644
index 0000000..f250ef1
--- /dev/null
+++ b/doc/com.minres.scviewer.doc/.project
@@ -0,0 +1,11 @@
+
+
+ com.minres.scviewer.doc
+
+
+
+
+
+
+
+
diff --git a/doc/com.minres.scviewer.doc/pom.xml b/doc/com.minres.scviewer.doc/pom.xml
new file mode 100644
index 0000000..85f68e7
--- /dev/null
+++ b/doc/com.minres.scviewer.doc/pom.xml
@@ -0,0 +1,182 @@
+
+ 4.0.0
+ com.minres.scviewer.doc
+ 1.0.0-SNAPSHOT
+ pom
+
+ com.minres.scviewer
+ com.minres.scviewer.parent
+ 2.15.1
+ ../..
+
+
+
+ UTF-8
+ 1.5.6
+ 1.5.0-alpha.16
+ 1.5.6
+ 1.7.26
+ ../../plugins/com.minres.scviewer.e4.application.help
+
+
+
+
+
+ org.asciidoctor
+ asciidoctor-maven-plugin
+ ${asciidoctor.maven.plugin.version}
+
+
+ org.asciidoctor
+ asciidoctorj-pdf
+ ${asciidoctorj.pdf.version}
+
+
+
+ org.jruby
+ jruby-complete
+ ${jruby.version}
+
+
+
+ org.asciidoctor
+ asciidoctorj
+ ${asciidoctorj.version}
+
+
+
+ src/asciidoc
+ SCViewerHelp.adoc
+ true
+
+
+
+ output-html
+ generate-resources
+
+ process-asciidoc
+
+
+ coderay
+ html
+
+
+ false
+
+
+
+
+ output-docbook
+ generate-resources
+
+ process-asciidoc
+
+
+ docbook
+
+
+
+ output-pdf
+ generate-resources
+
+ process-asciidoc
+
+
+ pdf
+ coderay
+
+ font
+
+
+
+ -
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+ 2.6
+
+
+ copy-asciidoc-resources
+ generate-resources
+
+ copy-resources
+
+
+
+
+ target/generated-docs/
+
+ SCViewerHelp.xml
+ **/*.jpg
+ **/*.png
+ **/*.svg
+
+
+
+ src/docbkx
+
+
+
+
+
+ com.agilejava.docbkx
+ docbkx-maven-plugin
+ 2.0.17
+
+
+
+ generate-resources
+
+ generate-eclipse
+
+
+
+
+
+ org.docbook
+ docbook-xml
+ 4.4
+ runtime
+
+
+
+ src/docbkx
+ ${help.plugin.target.dir}
+
+
+
+
+
+
+
+
+ ./
+
+ 1
+ 1
+ java
+ 1
+ A4
+
+
+
+
+ css/narrow_style.css
+
+ SCViewerHelp.xml
+ true
+ true
+
+ com.minres.scviewer.doc
+
+
+
+
+
diff --git a/doc/com.minres.scviewer.doc/src/asciidoc/Overview.adoc b/doc/com.minres.scviewer.doc/src/asciidoc/Overview.adoc
new file mode 100644
index 0000000..3599325
--- /dev/null
+++ b/doc/com.minres.scviewer.doc/src/asciidoc/Overview.adoc
@@ -0,0 +1,27 @@
+// ///////////////////////////////////////////////////////////////////////////////////////////////////// OVERVIEW ///////////////////////////////////////////////////////
+
+[#_introduction]
+== Introduction
+
+[#_overview]
+=== SCViewer overview
+
+SCViewer is composed of a set of eclipse plugins to display VCD and transaction streams
+created by the SystemC VCD trace implementation and the SystemC Verification Library (SCV).
+For further description of the SCV please refer to
+http://www.accellera.org/activities/committees/systemc-verification.
+
+
+[#_features]
+=== SCViewer features
+
+Features include:
+
+* support of VCD files (compressed and uncompressed)
+** real numbers
+** showing vectors and real numbers as analog (step-wise & continuous)
+* various value representations of bit vectors
+* support of SCV transaction recordings in various formats
+** text log files (compressed and uncompressed)
+** sqlite based
+** visualization of transaction relations
diff --git a/doc/com.minres.scviewer.doc/src/asciidoc/Reference.adoc b/doc/com.minres.scviewer.doc/src/asciidoc/Reference.adoc
new file mode 100644
index 0000000..71beeaf
--- /dev/null
+++ b/doc/com.minres.scviewer.doc/src/asciidoc/Reference.adoc
@@ -0,0 +1,40 @@
+// ///////////////////////////////////////////////////////////////////////////////////////////////////// Reference //////////////////////////////////////////////////////
+
+[#_reference]
+== Reference
+
+In this section you will find detailed descriptions of all GUI and menu elements of the SCViewer including their functions and keyboard shortcuts.
+
+[#_keybindings]
+=== Key Shortcuts
+
+Legend:
+
+* Left Mouse Button: LMB
+* Middle Mouse Button: MMB
+* Mouse Scroll wheel: MScrl
+* Context any means Name List, Value List or Waveform
+
+[cols="1,1,1,4",options="header"]
+|===
+| Input | Modifier | Context | Action
+| LMB klick | | any | select
+| LMB klick | Shift | Waveform | move selected marker to position
+| LMB klick | Control | Waveform | move cursor to position
+| LMB drag | | Waveform | zoom to range
+| MMB klick | | Waveform | move selected marker to position
+| MScrl | | any | scroll window up/down
+| MScrl | Shift | any | scroll window left/right
+| Key left | | Waveform | scroll window to the left (slow)
+| Key right | | Waveform | scroll window to the right (slow)
+| Key left | Shift | Waveform | scroll window to the left (fast)
+| Key right | Shift | Waveform | scroll window to the right (fast)
+| Key up | | Waveform | move selection up
+| Key down | | Waveform | move selection down
+| Key up | Control | Waveform | move selected track up
+| Key down | Control | Waveform | move selected track down
+| Key + | Control | Waveform | zoom in
+| Key - | Control | Waveform | zoom out
+| Key Pos1 | | Waveform | jump to selected marker
+| Key End | | Waveform | jump to cursor
+| Key Del | | any | delete selected entries
diff --git a/doc/com.minres.scviewer.doc/src/asciidoc/SCViewerHelp.adoc b/doc/com.minres.scviewer.doc/src/asciidoc/SCViewerHelp.adoc
new file mode 100644
index 0000000..3c3e6e9
--- /dev/null
+++ b/doc/com.minres.scviewer.doc/src/asciidoc/SCViewerHelp.adoc
@@ -0,0 +1,28 @@
+[#_start]
+= SCViewer User Guide
+:doctype: book
+:source-highlighter: coderay
+:coderay-linenums-mode: inline
+:coderay-css: class
+:listing-caption: Listing
+:icons: font
+//add table-of-contents (toc) and set its depth
+:toc:
+:toclevels: 6
+//set directories
+:imagesdir: ./images
+:iconsdir: ./icons
+:stylesdir: ./styles
+:scriptsdir: ./js
+:title-logo-image: image:Minres_logo_square.png[]
+//add math support, also do via cmd-line a 'gem install asciimath'
+:stem:
+
+// unset toc, otherwise it appears in table cells -> known bug, should be fixed in later versions!
+:toc!:
+
+// ///////////////////////////////////////////////////////////////////////////////////////////////////// OVERVIEW ///////////////////////////////////////////////////////
+include::Overview.adoc[]
+
+// ///////////////////////////////////////////////////////////////////////////////////////////////////// Reference //////////////////////////////////////////////////////
+include::Reference.adoc[]
diff --git a/doc/com.minres.scviewer.doc/src/asciidoc/images/Minres_logo_square.png b/doc/com.minres.scviewer.doc/src/asciidoc/images/Minres_logo_square.png
new file mode 100644
index 0000000..981da5e
Binary files /dev/null and b/doc/com.minres.scviewer.doc/src/asciidoc/images/Minres_logo_square.png differ
diff --git a/doc/com.minres.scviewer.doc/src/docbkx/.gitignore b/doc/com.minres.scviewer.doc/src/docbkx/.gitignore
new file mode 100644
index 0000000..467e3a2
--- /dev/null
+++ b/doc/com.minres.scviewer.doc/src/docbkx/.gitignore
@@ -0,0 +1 @@
+/SCViewerHelp.xml
diff --git a/doc/com.minres.scviewer.doc/src/docbkx/css/narrow_style.css b/doc/com.minres.scviewer.doc/src/docbkx/css/narrow_style.css
new file mode 100644
index 0000000..e3ffd53
--- /dev/null
+++ b/doc/com.minres.scviewer.doc/src/docbkx/css/narrow_style.css
@@ -0,0 +1,124 @@
+P.Code {
+ display: block;
+ text-align: left;
+ text-indent: 0.00pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 1.5em;
+ font-size: 100%;
+ font-weight: medium;
+ font-style: Regular;
+ color: #4444CC;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+H6.CaptionFigColumn {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 0.3em;
+ margin-bottom: 1.1em;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 90%;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Note {
+ display: block;
+ text-align: left;
+ text-indent: 0pt;
+ margin-top: 1.95em;
+ margin-bottom: 1.95em;
+ margin-right: 0.000000pt;
+ margin-left: 3.0em;
+ font-size: 110%;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.UILabel {
+ font-weight: Bold;
+ font-style: Regular;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+}
+EM.CodeName {
+ font-weight: Bold;
+ font-style: Regular;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family:"Courier New";
+}
+
+
+
+body, html { border: 0px }
+
+/* following font face declarations need to be removed for DBCS */
+
+body, h1, h2, h3, h4, h5, h6, p, table, td, caption, th, ul, ol, dl, li, dd, dt {font: message-box; color: #000000}
+pre { font-family: Courier, monospace}
+
+/* end font face declarations */
+
+/* following font size declarations should be OK for DBCS */
+body, h1, h2, h3, h4, h5, h6, p, table, td, caption, th, ul, ol, dl, li, dd, dt {font: message-box; }
+pre { font-size: 100% }
+code,samp { font-size: 100%; }
+
+/* end font size declarations */
+
+body { background: #FFFFFF}
+h1 { font-size: 180%; font-weight: medium; margin-top: 0.28em; margin-bottom: 0.05em; color: Highlight }
+h2 { font-size: 140%; font-weight: bold; margin-top: 0.22em; margin-bottom: 3; color: Highlight }
+h3 { font-size: 110%; font-weight: bold; margin-top: 0.18em; margin-bottom: 3 }
+h4 { font-size: 100%; font-weight: bold; margin-top: 0.2em; margin-bottom: 3; font-style: italic }
+p { margin-top: 1.0em; margin-bottom: 1.0em }
+pre { margin-left: 6; font-size: 90% }
+a:link { color: #0000FF }
+a:hover { color: #000080 }
+a:visited { text-decoration: underline }
+ul { margin-top: 0;
+ margin-bottom: 1.0em;
+ margin-left : 1.0em;
+ padding-left: 0;
+ }
+li { margin-top: 0;
+ margin-bottom: 0;
+ padding-left: 0;
+ margin-left: 0;
+ }
+li p { margin-top: 0; margin-bottom: 0 }
+ol { margin-top: 0;
+ margin-bottom: 10;
+ padding-left: 0;
+ margin-left: 1.4em }
+dl { margin-top: 0; margin-bottom: 10 }
+dt { margin-top: 0; margin-bottom: 0; font-weight: bold }
+dd { margin-top: 0; margin-bottom: 0 }
+strong { font-weight: bold}
+em { font-style: italic}
+var { font-style: italic}
+div.revision { border-left-style: solid; border-left-width: thin;
+ border-left-color: #7B68EE; padding-left:5 }
+th { font-weight: bold }
+
+.figure-contents .mediaobject img {
+ width: 100%;
+ heigth: auto;
+}
diff --git a/doc/com.minres.scviewer.doc/src/docbkx/images/.gitignore b/doc/com.minres.scviewer.doc/src/docbkx/images/.gitignore
new file mode 100644
index 0000000..824134a
--- /dev/null
+++ b/doc/com.minres.scviewer.doc/src/docbkx/images/.gitignore
@@ -0,0 +1 @@
+/Minres_logo_square.png
diff --git a/features/com.minres.scviewer.e4.help.feature/.gitignore b/features/com.minres.scviewer.e4.help.feature/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/features/com.minres.scviewer.e4.help.feature/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/features/com.minres.scviewer.e4.help.feature/.project b/features/com.minres.scviewer.e4.help.feature/.project
new file mode 100644
index 0000000..5f245e2
--- /dev/null
+++ b/features/com.minres.scviewer.e4.help.feature/.project
@@ -0,0 +1,17 @@
+
+
+ com.minres.scviewer.e4.help.feature
+
+
+
+
+
+ org.eclipse.pde.FeatureBuilder
+
+
+
+
+
+ org.eclipse.pde.FeatureNature
+
+
diff --git a/features/com.minres.scviewer.e4.help.feature/build.properties b/features/com.minres.scviewer.e4.help.feature/build.properties
new file mode 100644
index 0000000..64f93a9
--- /dev/null
+++ b/features/com.minres.scviewer.e4.help.feature/build.properties
@@ -0,0 +1 @@
+bin.includes = feature.xml
diff --git a/features/com.minres.scviewer.e4.help.feature/feature.xml b/features/com.minres.scviewer.e4.help.feature/feature.xml
new file mode 100644
index 0000000..d9d9fb0
--- /dev/null
+++ b/features/com.minres.scviewer.e4.help.feature/feature.xml
@@ -0,0 +1,204 @@
+
+
+
+
+ [Enter Feature Description here.]
+
+
+
+ [Enter Copyright Description here.]
+
+
+
+ [Enter License Description here.]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/features/com.minres.scviewer.e4.help.feature/pom.xml b/features/com.minres.scviewer.e4.help.feature/pom.xml
new file mode 100644
index 0000000..a6a6050
--- /dev/null
+++ b/features/com.minres.scviewer.e4.help.feature/pom.xml
@@ -0,0 +1,12 @@
+
+ 4.0.0
+ com.minres.scviewer.e4.help.feature
+ eclipse-feature
+
+ com.minres.scviewer
+ com.minres.scviewer.parent
+ 2.15.1
+ ../..
+
+ 1.0.0-SNAPSHOT
+
diff --git a/plugins/com.minres.scviewer.e4.application.help/.classpath b/plugins/com.minres.scviewer.e4.application.help/.classpath
new file mode 100644
index 0000000..e801ebf
--- /dev/null
+++ b/plugins/com.minres.scviewer.e4.application.help/.classpath
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/plugins/com.minres.scviewer.e4.application.help/.gitignore b/plugins/com.minres.scviewer.e4.application.help/.gitignore
new file mode 100644
index 0000000..187a545
--- /dev/null
+++ b/plugins/com.minres.scviewer.e4.application.help/.gitignore
@@ -0,0 +1,4 @@
+/target/
+/css/
+/images/
+/*.html
diff --git a/plugins/com.minres.scviewer.e4.application.help/.project b/plugins/com.minres.scviewer.e4.application.help/.project
new file mode 100644
index 0000000..6204755
--- /dev/null
+++ b/plugins/com.minres.scviewer.e4.application.help/.project
@@ -0,0 +1,28 @@
+
+
+ com.minres.scviewer.e4.application.help
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.pde.ManifestBuilder
+
+
+
+
+ org.eclipse.pde.SchemaBuilder
+
+
+
+
+
+ org.eclipse.pde.PluginNature
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/plugins/com.minres.scviewer.e4.application.help/.settings/org.eclipse.jdt.core.prefs b/plugins/com.minres.scviewer.e4.application.help/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..c9545f0
--- /dev/null
+++ b/plugins/com.minres.scviewer.e4.application.help/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,9 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.compliance=11
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/plugins/com.minres.scviewer.e4.application.help/META-INF/MANIFEST.MF b/plugins/com.minres.scviewer.e4.application.help/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..9b463f6
--- /dev/null
+++ b/plugins/com.minres.scviewer.e4.application.help/META-INF/MANIFEST.MF
@@ -0,0 +1,8 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: SCViewer Help
+Bundle-SymbolicName: com.minres.scviewer.e4.application.help;singleton:=true
+Bundle-Version: 2.15.1
+Bundle-Vendor: MINRES Technologies GmbH
+Automatic-Module-Name: com.minres.scviewer.e4.application.help
+Bundle-RequiredExecutionEnvironment: JavaSE-11
diff --git a/plugins/com.minres.scviewer.e4.application.help/OSGI-INF/l10n/bundle.properties b/plugins/com.minres.scviewer.e4.application.help/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..91ef34c
--- /dev/null
+++ b/plugins/com.minres.scviewer.e4.application.help/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,5 @@
+#Properties file for com.minres.scviewer.e4.application
+Bundle-Vendor = MINRES Technologies GmbH
+Bundle-Name = Application Help
+product.description = SystemC Transaction and Waveform Viewer
+product.name = SCViewer
\ No newline at end of file
diff --git a/plugins/com.minres.scviewer.e4.application.help/build.properties b/plugins/com.minres.scviewer.e4.application.help/build.properties
new file mode 100644
index 0000000..b439b53
--- /dev/null
+++ b/plugins/com.minres.scviewer.e4.application.help/build.properties
@@ -0,0 +1,10 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+ META-INF/,\
+ .,\
+ images/,\
+ css/,\
+ *.html,\
+ *.xml,\
+ OSGI-INF/
diff --git a/plugins/com.minres.scviewer.e4.application.help/index.xml b/plugins/com.minres.scviewer.e4.application.help/index.xml
new file mode 100644
index 0000000..1030b6d
--- /dev/null
+++ b/plugins/com.minres.scviewer.e4.application.help/index.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/plugins/com.minres.scviewer.e4.application.help/plugin.xml b/plugins/com.minres.scviewer.e4.application.help/plugin.xml
new file mode 100644
index 0000000..54d61bf
--- /dev/null
+++ b/plugins/com.minres.scviewer.e4.application.help/plugin.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/com.minres.scviewer.e4.application.help/pom.xml b/plugins/com.minres.scviewer.e4.application.help/pom.xml
new file mode 100644
index 0000000..614de66
--- /dev/null
+++ b/plugins/com.minres.scviewer.e4.application.help/pom.xml
@@ -0,0 +1,13 @@
+
+ 4.0.0
+ com.minres.scviewer.e4.application.help
+
+ com.minres.scviewer
+ com.minres.scviewer.parent
+ 2.15.1
+ ../..
+
+ eclipse-plugin
+
diff --git a/plugins/com.minres.scviewer.e4.application.help/toc.xml b/plugins/com.minres.scviewer.e4.application.help/toc.xml
new file mode 100644
index 0000000..3e9aedd
--- /dev/null
+++ b/plugins/com.minres.scviewer.e4.application.help/toc.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/com.minres.scviewer.e4.application/Application.e4xmi b/plugins/com.minres.scviewer.e4.application/Application.e4xmi
index 56d12d1..d8ea1ab 100644
--- a/plugins/com.minres.scviewer.e4.application/Application.e4xmi
+++ b/plugins/com.minres.scviewer.e4.application/Application.e4xmi
@@ -57,7 +57,8 @@
-
+
+
@@ -113,13 +114,14 @@
-
+
+
type:user
-
+
@@ -248,9 +250,12 @@
-
+
+
+
+
@@ -292,12 +297,13 @@
-
-
-
+
+
+
+
diff --git a/plugins/com.minres.scviewer.e4.application/META-INF/MANIFEST.MF b/plugins/com.minres.scviewer.e4.application/META-INF/MANIFEST.MF
index 86e2263..cfc1e01 100644
--- a/plugins/com.minres.scviewer.e4.application/META-INF/MANIFEST.MF
+++ b/plugins/com.minres.scviewer.e4.application/META-INF/MANIFEST.MF
@@ -35,7 +35,11 @@ Require-Bundle: javax.inject;bundle-version="1.0.0",
org.eclipse.equinox.p2.core;bundle-version="2.6.300",
org.eclipse.equinox.p2.engine;bundle-version="2.6.600",
org.eclipse.equinox.p2.operations;bundle-version="2.5.700",
- org.eclipse.equinox.p2.metadata.repository;bundle-version="1.3.400"
+ org.eclipse.equinox.p2.metadata.repository;bundle-version="1.3.400",
+ org.eclipse.help;bundle-version="3.8.700",
+ org.eclipse.help.webapp;bundle-version="3.9.800",
+ org.eclipse.help.base;bundle-version="4.2.900",
+ com.minres.scviewer.e4.application.help;bundle-version="1.0.0"
Bundle-RequiredExecutionEnvironment: JavaSE-11
Import-Package: com.minres.scviewer.database,
javax.annotation;version="1.0.0";resolution:=optional,
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 3d88974..6e683f4 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
@@ -83,16 +83,14 @@ public class Messages extends NLS {
public static String cursor;
public static String cursor_drag;
public static String cursor_text;
+ public static String HelpBrowser_0;
+ public static String HelpBrowser_1;
+ public static String HelpBrowser_2;
+ public static String HelpBrowser_3;
+ public static String HelpBrowser_4;
+ public static String HelpBrowser_5;
public static String HelpBrowser_7;
public static String HelpBrowser_8;
- public static String HelpDialog_0;
- public static String HelpDialog_1;
- public static String HelpDialog_2;
- public static String HelpDialog_3;
- public static String HelpDialog_4;
- public static String HelpDialog_5;
- public static String HelpDialog_6;
- public static String HelpDialog_7;
public static String marker;
public static String marker_text;
public static String rel_arrow;
diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/HelpContentsHandler.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/HelpContentsHandler.java
new file mode 100644
index 0000000..fc1969a
--- /dev/null
+++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/HelpContentsHandler.java
@@ -0,0 +1,34 @@
+package com.minres.scviewer.e4.application.handlers;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.model.application.MApplication;
+import org.eclipse.e4.ui.model.application.ui.basic.MWindow;
+import org.eclipse.e4.ui.workbench.modeling.EModelService;
+import org.eclipse.help.internal.base.BaseHelpSystem;
+import org.eclipse.help.internal.server.WebappManager;
+
+public class HelpContentsHandler {
+
+ static final String WINDOW_ID="com.minres.scviewer.e4.application.window.help_content"; //$NON-NLS-1$
+
+ @CanExecute
+ public boolean canExecute(MApplication app) {
+ return !app.getChildren().stream().filter(e -> e.getElementId().equals(WINDOW_ID)).findFirst().isPresent();
+ }
+
+ @Execute
+ public void execute(MApplication app, EModelService modelService /*@Named("mdialog01.dialog.0") MDialog dialog*/) {
+ BaseHelpSystem.ensureWebappRunning();
+ String helpURL = "http://" //$NON-NLS-1$
+ + WebappManager.getHost() + ":" //$NON-NLS-1$
+ + WebappManager.getPort() + "/help/index.jsp"; //$NON-NLS-1$
+ // BaseHelpSystem.getHelpBrowser(false).displayURL(helpURL);
+ MWindow newWin = (MWindow)modelService.cloneSnippet(app, WINDOW_ID, null);
+ final IEclipseContext ctx=app.getContext();
+ if(ctx.containsKey("help_url"))
+ ctx.remove("help_url");
+ ctx.modify("help_url", helpURL);
+ app.getChildren().add(newWin);
+ }
+}
\ No newline at end of file
diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/HelpHandler.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/HelpHandler.java
index 187c7d7..bd6292e 100644
--- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/HelpHandler.java
+++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/HelpHandler.java
@@ -10,6 +10,7 @@
*******************************************************************************/
package com.minres.scviewer.e4.application.handlers;
+import org.eclipse.e4.core.contexts.IEclipseContext;
import org.eclipse.e4.core.di.annotations.CanExecute;
import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.ui.model.application.MApplication;
@@ -18,16 +19,20 @@ import org.eclipse.e4.ui.workbench.modeling.EModelService;
public class HelpHandler {
- static final String WINDOW_ID="com.minres.scviewer.e4.application.window.help"; //$NON-NLS-1$
+ static final String WINDOW_ID="com.minres.scviewer.e4.application.window.web_help"; //$NON-NLS-1$
+
@CanExecute
public boolean canExecute(MApplication app) {
return !app.getChildren().stream().filter(e -> e.getElementId().equals(WINDOW_ID)).findFirst().isPresent();
}
@Execute
- public void execute(MApplication app, MWindow window, EModelService modelService /*@Named("mdialog01.dialog.0") MDialog dialog*/) {
+ public void execute(MApplication app, EModelService modelService /*@Named("mdialog01.dialog.0") MDialog dialog*/) {
MWindow newWin = (MWindow)modelService.cloneSnippet(app, WINDOW_ID, null);
+ final IEclipseContext ctx=app.getContext();
+ if(ctx.containsKey("help_url"))
+ ctx.remove("help_url");
+ ctx.modify("help_url", "https://minres.github.io/SCViewer/#key-shortcuts");
app.getChildren().add(newWin);
}
-
}
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 6c98d1c..1266f5a 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
@@ -77,16 +77,14 @@ signal_nan=Signal NaN Value
cursor=Cursor
cursor_drag=dragged Cursor
cursor_text=Cursor Text
+HelpBrowser_0=Back
+HelpBrowser_1=Forward
+HelpBrowser_2=Stop
+HelpBrowser_3=Refresh
+HelpBrowser_4=Go
+HelpBrowser_5=Address
HelpBrowser_7=Error initializing help browser
HelpBrowser_8=An error occurred while initializing the help browser:
-HelpDialog_0=Back
-HelpDialog_1=Forward
-HelpDialog_2=Stop
-HelpDialog_3=Refresh
-HelpDialog_4=Go
-HelpDialog_5=Address
-HelpDialog_6=https://minres.github.io/SCViewer/#key-shortcuts
-HelpDialog_7=Could not instantiate Browser:
marker=Marker
marker_text=Marker TExt
rel_arrow=Relation arrow
diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/HelpDialog.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/HelpDialog.java
deleted file mode 100644
index 749ab42..0000000
--- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/HelpDialog.java
+++ /dev/null
@@ -1,177 +0,0 @@
-package com.minres.scviewer.e4.application.parts;
-
-import javax.annotation.PostConstruct;
-import javax.inject.Inject;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.browser.LocationListener;
-import org.eclipse.swt.browser.ProgressEvent;
-import org.eclipse.swt.browser.ProgressListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.ProgressBar;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-
-import com.minres.scviewer.e4.application.Messages;
-
-public class HelpDialog extends Dialog {
- /**
- * Create the dialog.
- *
- * @param parentShell the parent shell
- */
- @Inject
- public HelpDialog(Shell parentShell) {
- super(parentShell);
- setShellStyle(getShellStyle() | SWT.MODELESS | SWT.MAX | SWT.BORDER | SWT.TITLE);
- setBlockOnOpen(false);
- }
-
- @Override
- protected boolean isResizable() {
- return true;
- }
-
- @Override
- protected Point getInitialSize() {
- return new Point(800, 600);
- }
-
- /**
- * Create contents of the dialog.
- *
- * @param parent the parent
- * @return the control
- */
- @Override
- protected Control createDialogArea(Composite parent) {
- Composite container = (Composite) super.createDialogArea(parent);
- GridLayout gridLayout = new GridLayout();
- gridLayout.numColumns = 3;
- container.setLayout(gridLayout);
- ToolBar toolbar = new ToolBar(container, SWT.NONE);
- ToolItem itemBack = new ToolItem(toolbar, SWT.PUSH);
- itemBack.setText(Messages.HelpDialog_0);
- ToolItem itemForward = new ToolItem(toolbar, SWT.PUSH);
- itemForward.setText(Messages.HelpDialog_1);
- ToolItem itemStop = new ToolItem(toolbar, SWT.PUSH);
- itemStop.setText(Messages.HelpDialog_2);
- ToolItem itemRefresh = new ToolItem(toolbar, SWT.PUSH);
- itemRefresh.setText(Messages.HelpDialog_3);
- ToolItem itemGo = new ToolItem(toolbar, SWT.PUSH);
- itemGo.setText(Messages.HelpDialog_4);
-
- GridData data = new GridData();
- data.horizontalSpan = 3;
- toolbar.setLayoutData(data);
-
- Label labelAddress = new Label(container, SWT.NONE);
- labelAddress.setText(Messages.HelpDialog_5);
-
- final Text location = new Text(container, SWT.BORDER);
- data = new GridData();
- data.horizontalAlignment = GridData.FILL;
- data.horizontalSpan = 2;
- data.grabExcessHorizontalSpace = true;
- location.setLayoutData(data);
-
- final Browser browser;
- try {
- browser = new Browser(container, SWT.NONE);
- data = new GridData();
- // data.widthHint = 800;
- // data.heightHint =600;
- data.horizontalAlignment = GridData.FILL;
- data.verticalAlignment = GridData.FILL;
- data.horizontalSpan = 3;
- data.grabExcessHorizontalSpace = true;
- data.grabExcessVerticalSpace = true;
- browser.setLayoutData(data);
-
- final Label status = new Label(container, SWT.NONE);
- data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 2;
- status.setLayoutData(data);
-
- final ProgressBar progressBar = new ProgressBar(container, SWT.NONE);
- data = new GridData();
- data.horizontalAlignment = GridData.END;
- progressBar.setLayoutData(data);
-
- /* event handling */
- Listener listener = event -> {
- ToolItem item = (ToolItem) event.widget;
- String string = item.getText();
- if (string.equals(Messages.HelpDialog_0))
- browser.back();
- else if (string.equals(Messages.HelpDialog_1))
- browser.forward();
- else if (string.equals(Messages.HelpDialog_2))
- browser.stop();
- else if (string.equals(Messages.HelpDialog_3))
- browser.refresh();
- else if (string.equals(Messages.HelpDialog_4))
- browser.setUrl(location.getText());
- };
- browser.addProgressListener(new ProgressListener() {
- @Override
- public void changed(ProgressEvent event) {
- if (event.total == 0) return;
- int ratio = event.current * 100 / event.total;
- progressBar.setSelection(ratio);
- }
- @Override
- public void completed(ProgressEvent event) {
- progressBar.setSelection(0);
- }
- });
- browser.addStatusTextListener(event -> status.setText(event.text));
- browser.addLocationListener(LocationListener.changedAdapter(event -> {
- if (event.top) location.setText(event.location);
- }
- ));
- itemBack.addListener(SWT.Selection, listener);
- itemForward.addListener(SWT.Selection, listener);
- itemStop.addListener(SWT.Selection, listener);
- itemRefresh.addListener(SWT.Selection, listener);
- itemGo.addListener(SWT.Selection, listener);
- location.addListener(SWT.DefaultSelection, e -> browser.setUrl(location.getText()));
-
- browser.setUrl(Messages.HelpDialog_6);
- } catch (SWTError e) {
- System.out.println(Messages.HelpDialog_7 + e.getMessage());
- }
- return container;
- }
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite)
- */
- @Override
- protected void createButtonsForButtonBar(Composite parent) {
- // create OK button
- createButton(parent, IDialogConstants.OK_ID, IDialogConstants.CLOSE_LABEL, true);
- }
-
- /**
- * Open the dialog.
- * @return the result
- */
- @PostConstruct
- @Override
- public int open() {
- return super.open();
- }
-
-}
\ No newline at end of file
diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/help/HelpBrowser.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/help/HelpBrowser.java
index d962fbb..7f64fe4 100644
--- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/help/HelpBrowser.java
+++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/help/HelpBrowser.java
@@ -4,6 +4,7 @@ import java.io.File;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
+import javax.inject.Named;
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.eclipse.e4.ui.model.application.ui.MUIElement;
@@ -48,32 +49,28 @@ public class HelpBrowser {
}
@PostConstruct
- protected Control createComposite(Composite container) {
-// container.getShell().addListener(SWT.Close, e -> {
-// e.doit= false;
-// element.setVisible(false);
-// });
+ protected Control createComposite(Composite container, @Named("help_url") String helpUrl) {
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 3;
container.setLayout(gridLayout);
ToolBar toolbar = new ToolBar(container, SWT.NONE);
ToolItem itemBack = new ToolItem(toolbar, SWT.PUSH);
- decorateItem(itemBack, Messages.HelpDialog_0, "arrow_undo.png"); //$NON-NLS-1$
+ decorateItem(itemBack, Messages.HelpBrowser_0, "arrow_undo.png"); //$NON-NLS-1$
ToolItem itemForward = new ToolItem(toolbar, SWT.PUSH);
- decorateItem(itemForward, Messages.HelpDialog_1, "arrow_redo.png"); //$NON-NLS-1$
+ decorateItem(itemForward, Messages.HelpBrowser_1, "arrow_redo.png"); //$NON-NLS-1$
ToolItem itemStop = new ToolItem(toolbar, SWT.PUSH);
- decorateItem(itemStop, Messages.HelpDialog_2, "cross.png"); //$NON-NLS-1$
+ decorateItem(itemStop, Messages.HelpBrowser_2, "cross.png"); //$NON-NLS-1$
ToolItem itemRefresh = new ToolItem(toolbar, SWT.PUSH);
- decorateItem(itemRefresh, Messages.HelpDialog_3, "arrow_refresh.png"); //$NON-NLS-1$
+ decorateItem(itemRefresh, Messages.HelpBrowser_3, "arrow_refresh.png"); //$NON-NLS-1$
ToolItem itemGo = new ToolItem(toolbar, SWT.PUSH);
- decorateItem(itemGo, Messages.HelpDialog_4, "accept.png"); //$NON-NLS-1$
+ decorateItem(itemGo, Messages.HelpBrowser_4, "accept.png"); //$NON-NLS-1$
GridData data = new GridData();
data.horizontalSpan = 3;
toolbar.setLayoutData(data);
Label labelAddress = new Label(container, SWT.NONE);
- labelAddress.setText(Messages.HelpDialog_5);
+ labelAddress.setText(Messages.HelpBrowser_5);
final Text location = new Text(container, SWT.BORDER);
data = new GridData();
@@ -81,10 +78,8 @@ public class HelpBrowser {
data.horizontalSpan = 2;
data.grabExcessHorizontalSpace = true;
location.setLayoutData(data);
-
- final Browser browser;
try {
- browser = new Browser(container, SWT.NONE);
+ final Browser browser = new Browser(container, SWT.NONE);
data = new GridData();
// data.widthHint = 800;
// data.heightHint =600;
@@ -109,15 +104,15 @@ public class HelpBrowser {
Listener listener = event -> {
ToolItem item = (ToolItem) event.widget;
String string = (String) item.getData();
- if (string.equals(Messages.HelpDialog_0))
+ if (string.equals(Messages.HelpBrowser_0))
browser.back();
- else if (string.equals(Messages.HelpDialog_1))
+ else if (string.equals(Messages.HelpBrowser_1))
browser.forward();
- else if (string.equals(Messages.HelpDialog_2))
+ else if (string.equals(Messages.HelpBrowser_2))
browser.stop();
- else if (string.equals(Messages.HelpDialog_3))
+ else if (string.equals(Messages.HelpBrowser_3))
browser.refresh();
- else if (string.equals(Messages.HelpDialog_4))
+ else if (string.equals(Messages.HelpBrowser_4))
browser.setUrl(location.getText());
};
browser.addProgressListener(new ProgressListener() {
@@ -140,14 +135,10 @@ public class HelpBrowser {
itemRefresh.addListener(SWT.Selection, listener);
itemGo.addListener(SWT.Selection, listener);
location.addListener(SWT.DefaultSelection, e -> browser.setUrl(location.getText()));
- browser.setUrl(Messages.HelpDialog_6);
+ browser.setUrl(helpUrl);
} catch (SWTError e) {
MessageDialog.openWarning(container.getDisplay().getActiveShell(), Messages.HelpBrowser_7,Messages.HelpBrowser_8+e.getMessage());
}
return container;
}
-
- void handleShellCloseEvent(){
-
- }
}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 848bb7d..ff64bd9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,6 +8,7 @@
pom
releng/com.minres.scviewer.target
+ doc/com.minres.scviewer.doc
plugins/com.minres.scviewer.database
plugins/com.minres.scviewer.database.sqlite
plugins/com.minres.scviewer.database.text
@@ -15,12 +16,14 @@
tests/com.minres.scviewer.database.test
plugins/com.minres.scviewer.database.ui.swt
plugins/com.minres.scviewer.e4.application
+ plugins/com.minres.scviewer.e4.application.help
plugins/com.minres.scviewer.ui
features/com.minres.scviewer.database.feature
features/com.minres.scviewer.ui.feature
features/com.minres.scviewer.feature
features/com.minres.scviewer.e4.platform.feature
features/com.minres.scviewer.e4.feature
+ features/com.minres.scviewer.e4.help.feature
releng/com.minres.scviewer.updateSite
products/com.minres.scviewer.e4.product
diff --git a/products/com.minres.scviewer.e4.product/scviewer.product b/products/com.minres.scviewer.e4.product/scviewer.product
index 3e2be35..aed1aa7 100644
--- a/products/com.minres.scviewer.e4.product/scviewer.product
+++ b/products/com.minres.scviewer.e4.product/scviewer.product
@@ -3,7 +3,6 @@
-
@@ -18,7 +17,6 @@
-
@@ -35,7 +33,6 @@
-
org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11
org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11
@@ -65,6 +62,7 @@
+