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

📄 sampleview.java

📁 jsp网络编程从基础到实践源代码
💻 JAVA
字号:
package org.cookbook.ch13.ViewPlugIn.views;import java.util.ArrayList;import org.eclipse.swt.widgets.Composite;import org.eclipse.ui.part.*;import org.eclipse.jface.viewers.*;import org.eclipse.swt.graphics.Image;import org.eclipse.jface.action.*;import org.eclipse.jface.dialogs.MessageDialog;import org.eclipse.ui.*;import org.eclipse.swt.widgets.Menu;import org.eclipse.core.resources.ResourcesPlugin;import org.eclipse.core.runtime.IAdaptable;import org.eclipse.swt.SWT;/** * This sample class demonstrates how to plug-in a new * workbench view. The view shows data obtained from the * model. The sample creates a dummy model on the fly, * but a real implementation would connect to the model * available either in this or another plug-in (e.g. the workspace). * The view is connected to the model using a content provider. * <p> * The view uses a label provider to define how model * objects should be presented in the view. Each * view can present the same model objects using * different labels and icons, if needed. Alternatively, * a single label provider can be shared between views * in order to ensure that objects of the same type are * presented in the same way everywhere. * <p> */public class SampleView extends ViewPart {	private TreeViewer viewer;	private DrillDownAdapter drillDownAdapter;	private Action action1;	private Action action2;	private Action doubleClickAction;	/*	 * The content provider class is responsible for	 * providing objects to the view. It can wrap	 * existing objects in adapters or simply return	 * objects as-is. These objects may be sensitive	 * to the current input of the view, or ignore	 * it and always show the same content 	 * (like Task List, for example).	 */	 	class TreeObject implements IAdaptable {		private String name;		private TreeParent parent;				public TreeObject(String name) {			this.name = name;		}		public String getName() {			return name;		}		public void setParent(TreeParent parent) {			this.parent = parent;		}		public TreeParent getParent() {			return parent;		}		public String toString() {			return getName();		}		public Object getAdapter(Class key) {			return null;		}	}		class TreeParent extends TreeObject {		private ArrayList children;		public TreeParent(String name) {			super(name);			children = new ArrayList();		}		public void addChild(TreeObject child) {			children.add(child);			child.setParent(this);		}		public void removeChild(TreeObject child) {			children.remove(child);			child.setParent(null);		}		public TreeObject [] getChildren() {			return (TreeObject [])children.toArray(new TreeObject[children.size()]);		}		public boolean hasChildren() {			return children.size()>0;		}	}	class ViewContentProvider implements IStructuredContentProvider, 										   ITreeContentProvider {		private TreeParent invisibleRoot;		public void inputChanged(Viewer v, Object oldInput, Object newInput) {		}		public void dispose() {		}		public Object[] getElements(Object parent) {			if (parent.equals(ResourcesPlugin.getWorkspace())) {				if (invisibleRoot==null) initialize();				return getChildren(invisibleRoot);			}			return getChildren(parent);		}		public Object getParent(Object child) {			if (child instanceof TreeObject) {				return ((TreeObject)child).getParent();			}			return null;		}		public Object [] getChildren(Object parent) {			if (parent instanceof TreeParent) {				return ((TreeParent)parent).getChildren();			}			return new Object[0];		}		public boolean hasChildren(Object parent) {			if (parent instanceof TreeParent)				return ((TreeParent)parent).hasChildren();			return false;		}/* * We will set up a dummy model to initialize tree heararchy. * In a real code, you will connect to a real model and * expose its hierarchy. */		private void initialize() {			TreeObject to1 = new TreeObject("Item 1");			TreeObject to2 = new TreeObject("Item 2");			TreeObject to3 = new TreeObject("Item 3");			TreeObject to4 = new TreeObject("Item 4");			TreeParent p1 = new TreeParent("Parent 1");			p1.addChild(to1);			p1.addChild(to2);			p1.addChild(to3);			p1.addChild(to4);						TreeObject to5 = new TreeObject("Item 5");			TreeParent p2 = new TreeParent("Parent 2");			p2.addChild(to5);						TreeParent root = new TreeParent("Root");			root.addChild(p1);			root.addChild(p2);						invisibleRoot = new TreeParent("");			invisibleRoot.addChild(root);		}	}	class ViewLabelProvider extends LabelProvider {		public String getText(Object obj) {			return obj.toString();		}		public Image getImage(Object obj) {			String imageKey = ISharedImages.IMG_OBJ_ELEMENT;			if (obj instanceof TreeParent)			   imageKey = ISharedImages.IMG_OBJ_FOLDER;			return PlatformUI.getWorkbench().getSharedImages().getImage(imageKey);		}	}	class NameSorter extends ViewerSorter {	}	/**	 * The constructor.	 */	public SampleView() {	}	/**	 * This is a callback that will allow us	 * to create the viewer and initialize it.	 */	public void createPartControl(Composite parent) {		viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);		drillDownAdapter = new DrillDownAdapter(viewer);		viewer.setContentProvider(new ViewContentProvider());		viewer.setLabelProvider(new ViewLabelProvider());		viewer.setSorter(new NameSorter());		viewer.setInput(ResourcesPlugin.getWorkspace());		makeActions();		hookContextMenu();		hookDoubleClickAction();		contributeToActionBars();	}	private void hookContextMenu() {		MenuManager menuMgr = new MenuManager("#PopupMenu");		menuMgr.setRemoveAllWhenShown(true);		menuMgr.addMenuListener(new IMenuListener() {			public void menuAboutToShow(IMenuManager manager) {				SampleView.this.fillContextMenu(manager);			}		});		Menu menu = menuMgr.createContextMenu(viewer.getControl());		viewer.getControl().setMenu(menu);		getSite().registerContextMenu(menuMgr, viewer);	}	private void contributeToActionBars() {		IActionBars bars = getViewSite().getActionBars();		fillLocalPullDown(bars.getMenuManager());		fillLocalToolBar(bars.getToolBarManager());	}	private void fillLocalPullDown(IMenuManager manager) {		manager.add(action1);		manager.add(new Separator());		manager.add(action2);	}	private void fillContextMenu(IMenuManager manager) {		manager.add(action1);		manager.add(action2);		manager.add(new Separator());		drillDownAdapter.addNavigationActions(manager);		// Other plug-ins can contribute there actions here		manager.add(new Separator("Additions"));	}		private void fillLocalToolBar(IToolBarManager manager) {		manager.add(action1);		manager.add(action2);		manager.add(new Separator());		drillDownAdapter.addNavigationActions(manager);	}	private void makeActions() {		action1 = new Action() {			public void run() {				showMessage("You selected Action 1");			}		};		action1.setText("Action 1");		action1.setToolTipText("Action 1 tooltip");		action1.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().			getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));				action2 = new Action() {			public void run() {				showMessage("You selected Action 2");			}		};		action2.setText("Action 2");		action2.setToolTipText("Action 2 tooltip");		action2.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().			getImageDescriptor(ISharedImages.IMG_OBJS_TASK_TSK));		doubleClickAction = new Action() {			public void run() {				ISelection selection = viewer.getSelection();				Object obj = ((IStructuredSelection)selection).getFirstElement();				showMessage("You double-clicked " + obj.toString());			}		};	}	private void hookDoubleClickAction() {		viewer.addDoubleClickListener(new IDoubleClickListener() {			public void doubleClick(DoubleClickEvent event) {				doubleClickAction.run();			}		});	}	private void showMessage(String message) {		MessageDialog.openInformation(			viewer.getControl().getShell(),			"Item View",			message);	}	/**	 * Passing the focus request to the viewer's control.	 */	public void setFocus() {		viewer.getControl().setFocus();	}}

⌨️ 快捷键说明

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