// Copyright (c) 2014 The Chromium Embedded Framework Authors. All rights
// reserved. Use of this source code is governed by a BSD-style license that
// can be found in the LICENSE file.
package tests.detailed.ui;
import java.awt.Component;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.Vector;
import javax.swing.JFileChooser;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import org.cef.browser.CefBrowser;
import org.cef.callback.CefRunFileDialogCallback;
import org.cef.callback.CefStringVisitor;
import org.cef.handler.CefDialogHandler.FileDialogMode;
import org.cef.network.CefCookieManager;
import org.cef.network.CefRequest;
import tests.detailed.dialog.CookieManagerDialog;
import tests.detailed.dialog.DevToolsDialog;
import tests.detailed.dialog.DownloadDialog;
import tests.detailed.dialog.SearchDialog;
import tests.detailed.dialog.ShowTextDialog;
import tests.detailed.dialog.UrlRequestDialog;
import tests.detailed.dialog.WebPluginManagerDialog;
@SuppressWarnings("serial")
public class MenuBar extends JMenuBar {
class SaveAs implements CefStringVisitor {
private PrintWriter fileWriter_;
public SaveAs(String fName) throws FileNotFoundException, UnsupportedEncodingException {
fileWriter_ = new PrintWriter(fName, "UTF-8");
}
@Override
public void visit(String string) {
fileWriter_.write(string);
fileWriter_.close();
}
}
private final Frame owner_;
private final CefBrowser browser_;
private String last_selected_file_ = "";
private final JMenu bookmarkMenu_;
private final ControlPanel control_pane_;
private final DownloadDialog downloadDialog_;
private final CefCookieManager cookieManager_;
public MenuBar(Frame owner,
CefBrowser browser,
ControlPanel control_pane,
DownloadDialog downloadDialog,
CefCookieManager cookieManager) {
owner_ = owner;
browser_ = browser;
control_pane_ = control_pane;
downloadDialog_ = downloadDialog;
cookieManager_ = cookieManager;
setEnabled(browser_ != null);
JMenu fileMenu = new JMenu("File");
JMenuItem openFileItem = new JMenuItem("Open file...");
openFileItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
JFileChooser fc = new JFileChooser(new File(last_selected_file_));
// Show open dialog; this method does not return until the dialog is closed.
fc.showOpenDialog(owner_);
File selectedFile = fc.getSelectedFile();
if (selectedFile != null) {
last_selected_file_ = selectedFile.getAbsolutePath();
browser_.loadURL("file:///" + selectedFile.getAbsolutePath());
}
}
});
fileMenu.add(openFileItem);
JMenuItem openFileDialog = new JMenuItem("Save as...");
openFileDialog.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
CefRunFileDialogCallback callback = new CefRunFileDialogCallback() {
@Override
public void onFileDialogDismissed(int selectedAcceptFilter, Vector<String> filePaths) {
if (!filePaths.isEmpty()) {
try {
SaveAs saveContent = new SaveAs(filePaths.get(0));
browser_.getSource(saveContent);
} catch (FileNotFoundException | UnsupportedEncodingException e) {
browser_.executeJavaScript("alert(\"Can't save file\");", control_pane_.getAddress(), 0);
}
}
}
};
browser_.runFileDialog(FileDialogMode.FILE_DIALOG_SAVE,
owner_.getTitle(),
"index.html",
null,
0,
callback);
}
});
fileMenu.add(openFileDialog);
JMenuItem printItem = new JMenuItem("Print...");
printItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
browser_.print();
}
});
fileMenu.add(printItem);
JMenuItem searchItem = new JMenuItem("Search...");
searchItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
new SearchDialog(owner_, browser_).setVisible(true);
}
});
fileMenu.add(searchItem);
fileMenu.addSeparator();
JMenuItem viewSource = new JMenuItem("View source");
viewSource.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
browser_.viewSource();
}
});
fileMenu.add(viewSource);
JMenuItem getSource = new JMenuItem("Get source...");
getSource.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
ShowTextDialog visitor = new ShowTextDialog(owner_, "Source of \"" + control_pane_.getAddress() + "\"");
browser_.getSource(visitor);
}
});
fileMenu.add(getSource);
JMenuItem getText = new JMenuItem("Get text...");
getText.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
ShowTextDialog visitor = new ShowTextDialog(owner_, "Content of \"" + control_pane_.getAddress() + "\"");
browser_.getText(visitor);
}
});
fileMenu.add(getText);
fileMenu.addSeparator();
JMenuItem showDownloads = new JMenuItem("Show Downloads");
showDownloads.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
downloadDialog_.setVisible(true);
}
});
fileMenu.add(showDownloads);
JMenuItem showCookies = new JMenuItem("Show Cookies");
showCookies.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
CookieManagerDialog cookieManager = new CookieManagerDialog(owner_,
"Cookie Manager",
cookieManager_);
cookieManager.setVisible(true);
}
});
fileMenu.add(showCookies);
JMenuItem showPlugins = new JMenuItem("Show Plugins");
showPlugins.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
WebPluginManagerDialog pluginManager = new WebPluginManagerDialog(owner_,
"Plugin Manager");
pluginManager.setVisible(true);
}
});
fileMenu.add(showPlugins);
fileMenu.addSeparator();
JMenuItem exitItem = new JMenuItem("Exit");
exitItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
owner_.dispatchEvent(new WindowEvent(owner_, WindowEvent.WINDOW_CLOSING));
}
});
fileMenu.add(exitItem);
bookmarkMenu_ = new JMenu("Bookmarks");
JMenuItem addBookmarkItem = new JMenuItem("Add bookmark");
addBookmarkItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
addBookmark(owner_.getTitle(), control_pane_.getAddress());
}
});
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
java cef 调用chrome浏览器 (210个子文件)
snapshot_blob.bin 1.22MB
natives_blob.bin 327KB
UrlRequestDialog.class 10KB
MainFrame.class 9KB
UrlRequestDialogReply.class 7KB
RequestHandler.class 7KB
MenuBar.class 6KB
DownloadDialog$DownloadObject.class 5KB
ControlPanel.class 5KB
ClientSchemeHandler.class 4KB
ContextMenuHandler.class 4KB
SearchDialog.class 3KB
DownloadDialog.class 3KB
WebPluginManagerDialog$PluginTableModel.class 3KB
CookieManagerDialog$CookieTableModel.class 3KB
UrlRequestDialog$TableModel.class 3KB
CookieManagerDialog.class 3KB
MenuBar$16.class 3KB
MainFrame.class 3KB
MainFrame$3.class 3KB
WebPluginManagerDialog.class 3KB
ResourceHandler.class 3KB
MenuBar$18.class 2KB
MessageRouterHandlerEx.class 2KB
UrlRequestDialogReply$3.class 2KB
CookieManagerDialog$2.class 2KB
PasswordDialog.class 2KB
AppHandler.class 2KB
MenuBar$2$1.class 2KB
SearchDialog$1.class 2KB
MenuBar$17.class 2KB
MenuBar$2.class 2KB
JSDialogHandler.class 2KB
MenuBar$1.class 2KB
DownloadDialog$DownloadObject$2.class 2KB
CertErrorDialog.class 2KB
ShowTextDialog.class 2KB
GeolocationHandler$1.class 2KB
SearchSchemeHandler.class 2KB
DevToolsDialog.class 2KB
UrlRequestDialog$4.class 2KB
ControlPanel$3.class 2KB
MenuBar$6.class 2KB
MenuBar$7.class 2KB
SearchDialog$3.class 2KB
SearchDialog$2.class 2KB
MenuBar$19.class 2KB
DownloadDialog$DownloadObject$1.class 2KB
PasswordDialog$2.class 2KB
StatusPanel.class 2KB
MessageRouterHandlerEx$JavaVersionMessageRouter.class 2KB
AppHandler$SchemeHandlerFactory.class 1KB
MainFrame$2.class 1KB
GeolocationHandler.class 1KB
ControlPanel$8.class 1KB
ControlPanel$7.class 1KB
MenuBar$9.class 1KB
MenuBar$15.class 1KB
KeyboardHandler.class 1KB
MenuBar$13.class 1KB
DragHandler.class 1KB
MenuBar$12.class 1KB
MessageRouterHandler.class 1KB
MenuBar$10.class 1KB
MenuBar$4.class 1KB
MenuBar$20.class 1KB
UrlRequestDialog$5.class 1KB
UrlRequestDialog$6.class 1KB
CookieManagerDialog$1.class 1KB
WebPluginManagerDialog$1.class 1KB
MenuBar$14.class 1KB
MenuBar$11.class 1KB
UrlRequestDialogReply$1.class 1KB
PasswordDialog$1.class 1KB
UrlRequestDialogReply$2.class 1024B
ControlPanel$5.class 1018B
MainFrame$2.class 1009B
MenuBar$8.class 1003B
RequestHandler$1.class 1001B
MenuBar$SaveAs.class 995B
MenuBar$21.class 990B
MenuBar$5.class 977B
UrlRequestDialog$1.class 974B
MenuBar$3.class 972B
ControlPanel$6.class 966B
ControlPanel$4.class 966B
UrlRequestDialog$2.class 965B
MainFrame$1.class 943B
ControlPanel$2.class 891B
MenuBar$19$1.class 890B
ControlPanel$1.class 888B
CookieManagerDialog$3.class 879B
WebPluginManagerDialog$2.class 863B
UrlRequestDialog$3.class 858B
ShowTextDialog$1.class 846B
SearchDialog$4.class 844B
DevToolsDialog$1.class 832B
MainFrame$1.class 787B
MainFrame$3.class 768B
MainFrame$4.class 760B
共 210 条
- 1
- 2
- 3
资源评论
wzp646011267
- 粉丝: 13
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功