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

📄 sampleview.java

📁 简单地讲, 一个RCP应用就是一个可独立于Eclispe IDE开发环境运行的Eclipse 插件. 下面我们以一个简单的例子开始我们的RCP旅
💻 JAVA
字号:
package simplebrowser.views;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.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 TableViewer viewer;	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 ViewContentProvider implements IStructuredContentProvider {		public void inputChanged(Viewer v, Object oldInput, Object newInput) {		}		public void dispose() {		}		public Object[] getElements(Object parent) {			return new String[] { "One", "Two", "Three" };		}	}	class ViewLabelProvider extends LabelProvider implements ITableLabelProvider {		public String getColumnText(Object obj, int index) {			return getText(obj);		}		public Image getColumnImage(Object obj, int index) {			return getImage(obj);		}		public Image getImage(Object obj) {			return PlatformUI.getWorkbench().					getSharedImages().getImage(ISharedImages.IMG_OBJ_ELEMENT);		}	}	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 TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);		viewer.setContentProvider(new ViewContentProvider());		viewer.setLabelProvider(new ViewLabelProvider());		viewer.setSorter(new NameSorter());		viewer.setInput(getViewSite());		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);		// Other plug-ins can contribute there actions here		manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));	}		private void fillLocalToolBar(IToolBarManager manager) {		manager.add(action1);		manager.add(action2);	}	private void makeActions() {		action1 = new Action() {			public void run() {				showMessage("Action 1 executed");			}		};		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("Action 2 executed");			}		};		action2.setText("Action 2");		action2.setToolTipText("Action 2 tooltip");		action2.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().				getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));		doubleClickAction = new Action() {			public void run() {				ISelection selection = viewer.getSelection();				Object obj = ((IStructuredSelection)selection).getFirstElement();				showMessage("Double-click detected on "+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(),			"Sample 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 + -