diff --git a/plugins/com.minres.scviewer.e4.application/Application.e4xmi b/plugins/com.minres.scviewer.e4.application/Application.e4xmi
index cc44340..d8ea1ab 100644
--- a/plugins/com.minres.scviewer.e4.application/Application.e4xmi
+++ b/plugins/com.minres.scviewer.e4.application/Application.e4xmi
@@ -121,7 +121,7 @@
type:user
-
+
@@ -253,6 +253,9 @@
+
+
+
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
index d673ba0..fc1969a 100644
--- 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
@@ -1,15 +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 {
- @Execute
- public void execute() throws Exception {
+
+ 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);
- }
+ // 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 eb00b3a..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;
@@ -19,15 +20,19 @@ import org.eclipse.e4.ui.workbench.modeling.EModelService;
public class HelpHandler {
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