add help browser window instead of dialog
This commit is contained in:
parent
a52efd1a12
commit
4a315722b1
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<application:Application xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:advanced="http://www.eclipse.org/ui/2010/UIModel/application/ui/advanced" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/ui/basic" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmlns:ui="http://www.eclipse.org/ui/2010/UIModel/application/ui" xmi:id="_95PfsHNmEeWBq8z1Dv39LA" elementId="org.eclipse.e4.ide.application" bindingContexts="_95PfuXNmEeWBq8z1Dv39LA">
|
<application:Application xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:advanced="http://www.eclipse.org/ui/2010/UIModel/application/ui/advanced" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/ui/basic" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmlns:ui="http://www.eclipse.org/ui/2010/UIModel/application/ui" xmi:id="_95PfsHNmEeWBq8z1Dv39LA" elementId="org.eclipse.e4.ide.application" bindingContexts="_95PfuXNmEeWBq8z1Dv39LA">
|
||||||
<children xsi:type="basic:TrimmedWindow" xmi:id="_95PfsXNmEeWBq8z1Dv39LA" label="SC Viewer" bindingContexts="_95PfunNmEeWBq8z1Dv39LA" width="1280" height="700">
|
<children xsi:type="basic:TrimmedWindow" xmi:id="_95PfsXNmEeWBq8z1Dv39LA" elementId="com.minres.scviewer.e4.application.trimmedwindow.main" label="SC Viewer" bindingContexts="_95PfunNmEeWBq8z1Dv39LA" width="1280" height="700">
|
||||||
<children xsi:type="advanced:PerspectiveStack" xmi:id="_95QGxnNmEeWBq8z1Dv39LA">
|
<children xsi:type="advanced:PerspectiveStack" xmi:id="_95QGxnNmEeWBq8z1Dv39LA">
|
||||||
<children xsi:type="advanced:Perspective" xmi:id="_95QGx3NmEeWBq8z1Dv39LA">
|
<children xsi:type="advanced:Perspective" xmi:id="_95QGx3NmEeWBq8z1Dv39LA">
|
||||||
<children xsi:type="basic:PartStack" xmi:id="_95QGyXNmEeWBq8z1Dv39LA" elementId="org.eclipse.editorss" containerData="7500">
|
<children xsi:type="basic:PartStack" xmi:id="_95QGyXNmEeWBq8z1Dv39LA" elementId="org.eclipse.editorss" containerData="7500">
|
||||||
|
@ -134,6 +134,9 @@
|
||||||
</children>
|
</children>
|
||||||
</trimBars>
|
</trimBars>
|
||||||
</children>
|
</children>
|
||||||
|
<children xsi:type="basic:Window" xmi:id="_Gm0qAEamEeyPDuc8x6Ggxw" elementId="com.minres.scviewer.e4.application.window.help" toBeRendered="false" selectedElement="_M5eT0EamEeyPDuc8x6Ggxw" label="SC Viewer Help" width="800" height="600">
|
||||||
|
<children xsi:type="basic:Part" xmi:id="_M5eT0EamEeyPDuc8x6Ggxw" elementId="com.minres.scviewer.e4.application.part.container" contributionURI="bundleclass://com.minres.scviewer.e4.application/com.minres.scviewer.e4.application.parts.help.HelpBrowser"/>
|
||||||
|
</children>
|
||||||
<handlers xmi:id="_95PfvXNmEeWBq8z1Dv39LA" elementId="com.minres.scviewer.e4.application.handler.quitCommand" contributionURI="bundleclass://com.minres.scviewer.e4.application/com.minres.scviewer.e4.application.handlers.QuitHandler" command="_95PfvHNmEeWBq8z1Dv39LA"/>
|
<handlers xmi:id="_95PfvXNmEeWBq8z1Dv39LA" elementId="com.minres.scviewer.e4.application.handler.quitCommand" contributionURI="bundleclass://com.minres.scviewer.e4.application/com.minres.scviewer.e4.application.handlers.QuitHandler" command="_95PfvHNmEeWBq8z1Dv39LA"/>
|
||||||
<handlers xmi:id="_95PfwXNmEeWBq8z1Dv39LA" elementId="com.minres.scviewer.e4.application.handler.openCommand" contributionURI="bundleclass://com.minres.scviewer.e4.application/com.minres.scviewer.e4.application.handlers.OpenHandler" command="_95PfwHNmEeWBq8z1Dv39LA"/>
|
<handlers xmi:id="_95PfwXNmEeWBq8z1Dv39LA" elementId="com.minres.scviewer.e4.application.handler.openCommand" contributionURI="bundleclass://com.minres.scviewer.e4.application/com.minres.scviewer.e4.application.handlers.OpenHandler" command="_95PfwHNmEeWBq8z1Dv39LA"/>
|
||||||
<handlers xmi:id="_95PfxHNmEeWBq8z1Dv39LA" elementId="com.minres.scviewer.e4.application.handler.saveCommand" contributionURI="bundleclass://com.minres.scviewer.e4.application/com.minres.scviewer.e4.application.handlers.SaveHandler" command="_95Pfw3NmEeWBq8z1Dv39LA"/>
|
<handlers xmi:id="_95PfxHNmEeWBq8z1Dv39LA" elementId="com.minres.scviewer.e4.application.handler.saveCommand" contributionURI="bundleclass://com.minres.scviewer.e4.application/com.minres.scviewer.e4.application.handlers.SaveHandler" command="_95Pfw3NmEeWBq8z1Dv39LA"/>
|
||||||
|
|
|
@ -38,5 +38,6 @@ Require-Bundle: javax.inject;bundle-version="1.0.0",
|
||||||
org.eclipse.equinox.p2.metadata.repository;bundle-version="1.3.400"
|
org.eclipse.equinox.p2.metadata.repository;bundle-version="1.3.400"
|
||||||
Bundle-RequiredExecutionEnvironment: JavaSE-11
|
Bundle-RequiredExecutionEnvironment: JavaSE-11
|
||||||
Import-Package: com.minres.scviewer.database,
|
Import-Package: com.minres.scviewer.database,
|
||||||
|
javax.annotation;version="1.0.0";resolution:=optional,
|
||||||
javax.inject;version="1.0.0"
|
javax.inject;version="1.0.0"
|
||||||
Automatic-Module-Name: com.minres.scviewer.e4.application
|
Automatic-Module-Name: com.minres.scviewer.e4.application
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 781 B |
Binary file not shown.
After Width: | Height: | Size: 625 B |
Binary file not shown.
After Width: | Height: | Size: 685 B |
Binary file not shown.
After Width: | Height: | Size: 631 B |
|
@ -83,6 +83,8 @@ public class Messages extends NLS {
|
||||||
public static String cursor;
|
public static String cursor;
|
||||||
public static String cursor_drag;
|
public static String cursor_drag;
|
||||||
public static String cursor_text;
|
public static String cursor_text;
|
||||||
|
public static String HelpBrowser_7;
|
||||||
|
public static String HelpBrowser_8;
|
||||||
public static String HelpDialog_0;
|
public static String HelpDialog_0;
|
||||||
public static String HelpDialog_1;
|
public static String HelpDialog_1;
|
||||||
public static String HelpDialog_2;
|
public static String HelpDialog_2;
|
||||||
|
|
|
@ -12,20 +12,21 @@ package com.minres.scviewer.e4.application.handlers;
|
||||||
|
|
||||||
import org.eclipse.e4.core.di.annotations.Execute;
|
import org.eclipse.e4.core.di.annotations.Execute;
|
||||||
import org.eclipse.e4.ui.model.application.MApplication;
|
import org.eclipse.e4.ui.model.application.MApplication;
|
||||||
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
|
import org.eclipse.e4.ui.model.application.ui.MUIElement;
|
||||||
import org.eclipse.e4.ui.model.application.ui.basic.MWindow;
|
|
||||||
import org.eclipse.e4.ui.workbench.modeling.EModelService;
|
import org.eclipse.e4.ui.workbench.modeling.EModelService;
|
||||||
import org.eclipse.swt.widgets.Shell;
|
|
||||||
|
|
||||||
public class HelpHandler {
|
public class HelpHandler {
|
||||||
|
|
||||||
static final String DIALOG_ID="com.minres.scviewer.e4.application.dialog.onlinehelp";
|
static final String DIALOG_ID="com.minres.scviewer.e4.application.dialog.onlinehelp"; //$NON-NLS-1$
|
||||||
|
static final String WINDOW_ID="com.minres.scviewer.e4.application.window.help"; //$NON-NLS-1$
|
||||||
|
|
||||||
@Execute
|
@Execute
|
||||||
public void execute(Shell shell, MApplication app, MWindow window, EModelService ms /*@Named("mdialog01.dialog.0") MDialog dialog*/) {
|
public void execute(MApplication app, /*MWindow window,*/ EModelService ms /*@Named("mdialog01.dialog.0") MDialog dialog*/) {
|
||||||
MPart mel = (MPart) ms.find(DIALOG_ID, app); //$NON-NLS-1$
|
// MPart mel = (MPart) ms.find(DIALOG_ID, app); //$NON-NLS-1$
|
||||||
mel.setToBeRendered(true);
|
// mel.setToBeRendered(true);
|
||||||
mel.setToBeRendered(false);
|
// mel.setToBeRendered(false);
|
||||||
|
MUIElement w = ms.find(WINDOW_ID, app);
|
||||||
|
if(w!=null) w.setToBeRendered(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,6 +77,8 @@ signal_nan=Signal NaN Value
|
||||||
cursor=Cursor
|
cursor=Cursor
|
||||||
cursor_drag=dragged Cursor
|
cursor_drag=dragged Cursor
|
||||||
cursor_text=Cursor Text
|
cursor_text=Cursor Text
|
||||||
|
HelpBrowser_7=Error initializing help browser
|
||||||
|
HelpBrowser_8=An error occurred while initializing the help browser:
|
||||||
HelpDialog_0=Back
|
HelpDialog_0=Back
|
||||||
HelpDialog_1=Forward
|
HelpDialog_1=Forward
|
||||||
HelpDialog_2=Stop
|
HelpDialog_2=Stop
|
||||||
|
|
|
@ -0,0 +1,152 @@
|
||||||
|
package com.minres.scviewer.e4.application.parts.help;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
import javax.annotation.PostConstruct;
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
|
||||||
|
import org.eclipse.jface.dialogs.Dialog;
|
||||||
|
import org.eclipse.jface.dialogs.IDialogConstants;
|
||||||
|
import org.eclipse.jface.dialogs.MessageDialog;
|
||||||
|
import org.eclipse.jface.resource.ImageDescriptor;
|
||||||
|
import org.eclipse.jface.resource.ResourceLocator;
|
||||||
|
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.Image;
|
||||||
|
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 HelpBrowser {
|
||||||
|
|
||||||
|
private static void decorateItem(ToolItem item, String label, String imageName) {
|
||||||
|
String fullpath = File.separator+"icons"+File.separator+imageName; //$NON-NLS-1$
|
||||||
|
ImageDescriptor descr = ResourceLocator.imageDescriptorFromBundle("com.minres.scviewer.e4.application", fullpath).orElse(null); //$NON-NLS-1$
|
||||||
|
if(descr == null) {
|
||||||
|
item.setText(label);
|
||||||
|
} else {
|
||||||
|
item.setImage(descr.createImage());
|
||||||
|
item.setToolTipText(label);
|
||||||
|
}
|
||||||
|
item.setData(label);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public HelpBrowser() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostConstruct
|
||||||
|
protected Control createComposite(Composite container) {
|
||||||
|
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$
|
||||||
|
ToolItem itemForward = new ToolItem(toolbar, SWT.PUSH);
|
||||||
|
decorateItem(itemForward, Messages.HelpDialog_1, "arrow_redo.png"); //$NON-NLS-1$
|
||||||
|
ToolItem itemStop = new ToolItem(toolbar, SWT.PUSH);
|
||||||
|
decorateItem(itemStop, Messages.HelpDialog_2, "cross.png"); //$NON-NLS-1$
|
||||||
|
ToolItem itemRefresh = new ToolItem(toolbar, SWT.PUSH);
|
||||||
|
decorateItem(itemRefresh, Messages.HelpDialog_3, "arrow_refresh.png"); //$NON-NLS-1$
|
||||||
|
ToolItem itemGo = new ToolItem(toolbar, SWT.PUSH);
|
||||||
|
decorateItem(itemGo, Messages.HelpDialog_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);
|
||||||
|
|
||||||
|
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 = (String) item.getData();
|
||||||
|
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) {
|
||||||
|
MessageDialog.openWarning(container.getDisplay().getActiveShell(), Messages.HelpBrowser_7,Messages.HelpBrowser_8+e.getMessage());
|
||||||
|
}
|
||||||
|
return container;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue