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

📄 browseractionbaradvisor.java

📁 这是用eclipse的rcp写成的一个浏览器的离子
💻 JAVA
字号:
/*******************************************************************************
 * Copyright (c) 2005 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.ui.examples.rcp.browser;

import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.ICoolBarManager;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.action.ToolBarContributionItem;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.swt.SWT;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.actions.RetargetAction;
import org.eclipse.ui.application.ActionBarAdvisor;
import org.eclipse.ui.application.IActionBarConfigurer;

/**
 * Builds the actions and populates the menubar and toolbar when a new window
 * is opened.
 * This work is factored into a separate class to avoid cluttering 
 * <code>BrowserAdvisor</code>
 * <p>
 * This adds several actions to the menus and toolbar that are typical for 
 * web browsers (e.g. Back, Forward, Stop, Refresh).  These are defined as 
 * retargetable actions, for which the <code>BrowserView</code> registers 
 * handling actions.
 * 
 * @since 3.1
 */
public class BrowserActionBarAdvisor extends ActionBarAdvisor {

	private IAction newWindowAction, newTabAction, quitAction, historyAction, aboutAction;
    private RetargetAction backAction, forwardAction, stopAction, refreshAction; 

    public BrowserActionBarAdvisor(IActionBarConfigurer configurer) {
        super(configurer);
	}
    
	protected void makeActions(final IWorkbenchWindow window) {
        ISharedImages images = window.getWorkbench().getSharedImages();
		
		newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window);
        newWindowAction.setText("&New Window");
        register(newWindowAction);
		
		newTabAction = new Action("New &Tab") { //$NON-NLS-1$
		    int counter = 0;
		    { setId("newTab");
              setActionDefinitionId(IBrowserConstants.COMMAND_PREFIX + "newTab"); } //$NON-NLS-1$
            public void run() {
                try {
                    String secondaryId = Integer.toString(++counter);
                    IWorkbenchPage page = window.getActivePage();
                    if (page != null) {
                        page.showView(IBrowserConstants.BROWSER_VIEW_ID, secondaryId, IWorkbenchPage.VIEW_ACTIVATE);
                    }
                } catch (PartInitException e) {
                    e.printStackTrace();
                }
            }
		};
        register(newTabAction);
		
		quitAction = ActionFactory.QUIT.create(window);
        register(quitAction);
		
        backAction = new RetargetAction("back", "&Back");
        backAction.setActionDefinitionId(IBrowserConstants.COMMAND_PREFIX + "back"); //$NON-NLS-1$
		backAction.setToolTipText("Back");
		backAction.setImageDescriptor(images.getImageDescriptor(ISharedImages.IMG_TOOL_BACK));
		window.getPartService().addPartListener(backAction);
        register(backAction);
		
        forwardAction = new RetargetAction("forward", "&Forward");
        forwardAction.setActionDefinitionId(IBrowserConstants.COMMAND_PREFIX + "forward"); //$NON-NLS-1$
		forwardAction.setToolTipText("Forward");
		forwardAction.setImageDescriptor(images.getImageDescriptor(ISharedImages.IMG_TOOL_FORWARD));
		window.getPartService().addPartListener(forwardAction);
		register(forwardAction);
		
		stopAction = new RetargetAction("stop", "Sto&p");
        stopAction.setActionDefinitionId(IBrowserConstants.COMMAND_PREFIX + "stop"); //$NON-NLS-1$
		stopAction.setToolTipText("Stop");
		window.getPartService().addPartListener(stopAction);
		register(stopAction);
		
		refreshAction = new RetargetAction("refresh", "&Refresh");
        refreshAction.setActionDefinitionId(IBrowserConstants.COMMAND_PREFIX + "refresh"); //$NON-NLS-1$
		refreshAction.setToolTipText("Refresh");
		window.getPartService().addPartListener(refreshAction);
		register(refreshAction);
		
		historyAction = new Action("History", IAction.AS_CHECK_BOX) { //$NON-NLS-1$
		    { setId("history");
              setActionDefinitionId(IBrowserConstants.COMMAND_PREFIX + "history"); } //$NON-NLS-1$
		    public void run() {
		        try {
		            IWorkbenchPage page = window.getActivePage();
		            if (page != null) {
		                IViewPart historyView = page.findView(IBrowserConstants.HISTORY_VIEW_ID);
		                if (historyView == null) {
		                    page.showView(IBrowserConstants.HISTORY_VIEW_ID);
		                    setChecked(true);
		                }
		                else {
		                    page.hideView(historyView);
		                    setChecked(false);
		                }
		            }
                } catch (PartInitException e) {
                    e.printStackTrace();
                }
		    }
		};
        register(historyAction);

		aboutAction = ActionFactory.ABOUT.create(window);
        register(aboutAction);
	}

	protected void fillMenuBar(IMenuManager menuBar) {
		IMenuManager fileMenu = new MenuManager("&File", "file");  //$NON-NLS-2$
		menuBar.add(fileMenu);
        fileMenu.add(newWindowAction);
        fileMenu.add(newTabAction);
		fileMenu.add(new Separator());
        fileMenu.add(quitAction);
		
		IMenuManager viewMenu = new MenuManager("&View", "view");  //$NON-NLS-2$
		menuBar.add(viewMenu);
        viewMenu.add(backAction);
        viewMenu.add(forwardAction);
        viewMenu.add(stopAction);
        viewMenu.add(refreshAction);
		viewMenu.add(new Separator("views")); //$NON-NLS-1$
        viewMenu.add(historyAction);

		IMenuManager helpMenu = new MenuManager("&Help", "help");  //$NON-NLS-2$
		menuBar.add(helpMenu);
        helpMenu.add(aboutAction);
	}

	protected void fillCoolBar(ICoolBarManager coolBar) {
		IToolBarManager toolBar = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
		coolBar.add(new ToolBarContributionItem(toolBar, "standard")); //$NON-NLS-1$
		
		// For the Back and Forward actions, force their text to be shown on the toolbar,
		// not just their image.  For the remaining actions, the ActionContributionItem
		// is created implicitly with the default presentation mode.
		ActionContributionItem backCI = new ActionContributionItem(backAction);
		backCI.setMode(ActionContributionItem.MODE_FORCE_TEXT);
		toolBar.add(backCI);
		
		ActionContributionItem forwardCI = new ActionContributionItem(forwardAction);
		forwardCI.setMode(ActionContributionItem.MODE_FORCE_TEXT);
		toolBar.add(forwardCI);

        toolBar.add(stopAction);
        toolBar.add(refreshAction);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -