📄 mainmenu.java
字号:
itemStopAll.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event arg0) {
ManagerUtils.asyncStopAll();
}
});
itemPause.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event arg0)
{
ManagerUtils.asyncPause();
}
});
itemResume.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event arg0)
{
core.getGlobalManager().resumeDownloads();
}
});
transferMenu.addMenuListener(
new MenuListener() {
public void
menuShown(MenuEvent menu)
{
itemPause.setEnabled( core.getGlobalManager().canPauseDownloads() );
itemResume.setEnabled( core.getGlobalManager().canResumeDownloads() );
}
public void
menuHidden(MenuEvent menu )
{
}
});
}
private void addViewMenu(final Shell parent, boolean notMainWindow)
{
// ******** The View Menu
MenuItem viewItem = new MenuItem(menuBar, SWT.CASCADE);
Messages.setLanguageText(viewItem, "MainWindow.menu.view"); //$NON-NLS-1$
viewMenu = new Menu(parent, SWT.DROP_DOWN);
viewItem.setMenu(viewMenu);
if(notMainWindow) {performOneTimeDisable(viewItem, true);}
addMenuItemLabel(viewMenu, "MainWindow.menu.view.show");
indent(addMyTorrentsMenuItem(viewMenu));
indent(addMyTrackerMenuItem(viewMenu));
indent(addMySharesMenuItem(viewMenu));
indent(addViewToolbarMenuItem(viewMenu));
if(Constants.isOSX) {
indent(addConsoleMenuItem(viewMenu));
indent(addStatisticsMenuItem(viewMenu));
}
}
protected void addPluginView(final String sViewID, final UISWTViewEventListener l) {
Utils.execSWTThread(new AERunnable() {
public void runSupport() {
String sResourceID = UISWTViewImpl.CFG_PREFIX + sViewID + ".title";
boolean bResourceExists = MessageText.keyExists(sResourceID);
String name;
if (bResourceExists){
name = MessageText.getString(sResourceID);
}else{
// try plain resource
sResourceID = sViewID;
bResourceExists = MessageText.keyExists(sResourceID);
if ( bResourceExists){
name = MessageText.getString(sResourceID);
}else{
name = sViewID.replace('.', ' ' ); // support old plugins
}
}
Menu menu = (l instanceof BasicPluginViewImpl) ? pluginLogsMenu : pluginMenu;
MenuItem[] items = menu.getItems();
int insert_at = items.length;
for (int i = 0; i < items.length; i++) {
if (items[i].getData("EOL") != null
|| name.compareTo(items[i].getText()) < 0) {
insert_at = i;
break;
}
}
MenuItem item = new MenuItem(menu, SWT.NULL, insert_at);
item.setData("ViewID", sViewID);
if (bResourceExists)
Messages.setLanguageText(item, sResourceID);
else
item.setText(name);
item.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
UIFunctionsSWT uiFunctions = UIFunctionsManagerSWT.getUIFunctionsSWT();
if (uiFunctions != null) {
uiFunctions.openPluginView(UISWTInstance.VIEW_MAIN, sViewID, l,
null, true);
}
}
});
menu_plugin.setEnabled(true);
}
});
}
protected void removePluginViews(final String sViewID) {
Utils.execSWTThread(new AERunnable() {
public void runSupport() {
MenuItem[] items = pluginMenu.getItems();
for (int i = 0; i < items.length; i++) {
String sID = (String)items[i].getData("ViewID");
if (sID != null && sID.equals(sViewID)) {
items[i].dispose();
}
}
items = pluginLogsMenu.getItems();
for (int i = 0; i < items.length; i++) {
String sID = (String)items[i].getData("ViewID");
if (sID != null && sID.equals(sViewID)) {
items[i].dispose();
}
}
UIFunctionsSWT uiFunctions = UIFunctionsManagerSWT.getUIFunctionsSWT();
if (uiFunctions != null) {
uiFunctions.closePluginViews(sViewID);
}
}
});
}
protected void
addPluginView(
final AbstractIView view,
final String name )
{
Utils.execSWTThread(new AERunnable() {
public void runSupport()
{
if (pluginMenu == null || pluginMenu.isDisposed())
return;
MenuItem[] items = pluginMenu.getItems();
int insert_at = items.length;
for (int i=0;i<items.length;i++){
if (items[i].getData("EOL") != null ||
name.compareTo(items[i].getText()) < 0 ){
insert_at = i;
break;
}
}
MenuItem item = new MenuItem(pluginMenu,SWT.NULL,insert_at);
item.setText( name );
item.addListener(SWT.Selection,new Listener() {
public void handleEvent(Event e) {
UIFunctionsSWT uiFunctions = UIFunctionsManagerSWT.getUIFunctionsSWT();
if (uiFunctions != null) {
uiFunctions.openPluginView(view, name);
}
}
});
menu_plugin.setEnabled(true);
}
});
}
protected void
removePluginView(
final AbstractIView view,
final String name )
{
Utils.execSWTThread(new AERunnable() {
public void runSupport()
{
if (pluginMenu == null || pluginMenu.isDisposed())
return;
MenuItem[] items = pluginMenu.getItems();
boolean others = false;
for (int i=0;i<items.length;i++){
MenuItem item = items[i];
if ( item.getStyle() == SWT.SEPARATOR ){
}else if ( item.getText().equals( name )){
item.dispose();
UIFunctionsSWT uiFunctions = UIFunctionsManagerSWT.getUIFunctionsSWT();
if (uiFunctions != null) {
uiFunctions.closePluginView(view);
}
}else{
others = true;
}
}
menu_plugin.setEnabled(others);
}
});
}
/**
* Appends the list of opened interactive windows to the bottom of the specified parent menu
* @param windowMenu The parent menu
*/
private void appendWindowMenuItems(final Menu windowMenu)
{
final int numTopItems = windowMenu.getItemCount();
Listener rebuild = new Listener() {
public void handleEvent(Event event) {
try {
if(windowMenu.isDisposed() || attachedShell.isDisposed())
return;
final int size = ShellManager.sharedManager().getSize();
if(size == windowMenu.getItemCount() - numTopItems)
{
for(int i = numTopItems; i < windowMenu.getItemCount(); i++)
{
final MenuItem item = windowMenu.getItem(i);
item.setSelection(item.getData() == attachedShell);
}
return;
}
for(int i = numTopItems; i < windowMenu.getItemCount();)
windowMenu.getItem(i).dispose();
Iterator iter = ShellManager.sharedManager().getWindows();
for(int i = 0; i < size; i++)
{
final Shell sh = (Shell)iter.next();
if(sh.isDisposed() || sh.getText().length() == 0)
continue;
final MenuItem item = new MenuItem(windowMenu, SWT.CHECK);
item.setText(sh.getText());
item.setSelection(attachedShell == sh);
item.setData(sh);
item.addSelectionListener(new SelectionAdapter()
{
public void widgetSelected(SelectionEvent event)
{
if(event.widget.isDisposed() || sh.isDisposed())
return;
if(sh.getMinimized())
sh.setMinimized(false);
sh.open();
}
});
}
} catch (Exception e) {
Logger.log(new LogEvent(LogIDs.GUI, "rebuild menu error", e));
}
}
};
ShellManager.sharedManager().addWindowAddedListener(rebuild);
ShellManager.sharedManager().addWindowRemovedListener(rebuild);
attachedShell.addListener(SWT.FocusIn, rebuild);
windowMenu.addListener(SWT.Show, rebuild);
}
// individual menu items
private static final MenuItem addMenuItem(Menu menu, String localizationKey, Listener selListener) {
return addMenuItem(menu, SWT.NONE, localizationKey, selListener);
}
private static final MenuItem addMenuItem(Menu menu, int style, String localizationKey, Listener selListener) {
MenuItem item = new MenuItem(menu, style);
Messages.setLanguageText(item, localizationKey);
KeyBindings.setAccelerator(item, localizationKey);
item.addListener(SWT.Selection, selListener);
return item;
}
private static final void indent(MenuItem item) {
item.setData("IndentItem", "YES");
item.setText(" " + item.getText());
}
private static final MenuItem addMenuItemLabel(Menu menu, String localizationKey) {
MenuItem item = new MenuItem(menu, SWT.NULL);
Messages.setLanguageText(item, localizationKey);
item.setEnabled(false);
return item;
}
private MenuItem addMyTorrentsMenuItem(Menu menu) {
return addMenuItem(menu, "MainWindow.menu.view.mytorrents", new Listener() {
public void handleEvent(Event e) {
UIFunctions uiFunctions = UIFunctionsManager.getUIFunctions();
if (uiFunctions != null) {
uiFunctions.showMyTorrents();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -