htmlhelpdialog.java
来自「mywork是rcp开发的很好的例子」· Java 代码 · 共 67 行
JAVA
67 行
package net.sf.component;
import java.io.IOException;
import java.net.URL;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Shell;
/**
* 抽取通用的help显示对话框,约定显示指定插件的docs/manual.htm
* @author levin
* @since 2007-11-20 下午07:59:11
*/
public class HtmlHelpDialog extends MessageDialog {
private String bundleName;
public HtmlHelpDialog(Shell shell,String title,String bundleName){
super(shell,title, null,"欢迎使用\n hlstudio@gmail.com http://mywork.sf.net\n\n", MessageDialog.INFORMATION, new String[]{IDialogConstants.OK_LABEL}, 0);
this.bundleName=bundleName;
}
//显示帮助,一个辅助方法
public static void showHelp(Shell shell,String title,String bundleName){
HtmlHelpDialog dialog=new HtmlHelpDialog(shell,title,bundleName);
dialog.open();
}
@Override
protected Point getInitialLocation(Point initialSize) {
Point p=super.getInitialLocation(initialSize);
//让弹出窗口在主窗口的下方,缺省在上方
return new Point(p.x,p.y*2);
}
protected Control createCustomArea(Composite composite) {
Composite parent = new Composite(composite, SWT.NULL);
Browser browser = new Browser(parent, SWT.WRAP | SWT.READ_ONLY);
browser.setSize(620, 400);
Menu menu = new Menu(browser.getShell(), SWT.POP_UP);
browser.setMenu(menu);
URL helpfile = FileLocator.find(Platform.getBundle(bundleName), new Path("docs/manual.htm"), null);
try {
browser.setUrl(toFilePath(helpfile));
} catch (Exception e) {
e.printStackTrace();
}
return browser;
}
// 取文件的url,win32平台下可能会多一个/
private static String toFilePath(URL url) throws IOException {
String path = FileLocator.toFileURL(url).getPath();
if ("win32".equals(SWT.getPlatform()) && path.startsWith("/"))
path = path.substring(1);
return path;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?