⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainmenu.java

📁 这是一个基于java编写的torrent的P2P源码
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
      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 + -