使用Eclipse RCP进行桌面程序开发(三):视图和透视图
时间:2011-04-13 海边沫沫
Eclipse RCP开发中,和用户进行交互最多的界面,应该是视图了,而透视图就是将已有 的视图、菜单、工具栏、编辑器等等进行组合和布局。看完这一节,我们就可以建立如下图 这样的程序界面了。
首先我们来介绍一下视图,建立一个视图其实非常简单,只要从 org.eclipse.ui.part.ViewPart继承一个类,然后在plugin.xml中进行视图的配置。其中, 向视图中添加控件的操作,我们即可以手工编写,也可以使用Designer插件,我这里推荐大 家使用Designer插件,该插件对RCP提供功能非常强大的支持,如果使用Designer插件开发视 图,则plugin.xml文件也不需要我们手动修改了。
比如我们上图中的第一个视图,就是从ViewPart继承一个类,然后在上面加入了几个swt 的控件,做得非常得简单,而它的配置文件如下:
1<extension
2 point="org.eclipse.ui.views">
3 <view
4 class="cn.blogjava.youxia.views.FirstView"
5 id="cn.blogjava.youxia.views.FirstView"
6 name="第一个View"/>
7</extension>
使用Eclipse RCP进行桌面程序开发(三):视图和透视图(2)
时间:2011-04-13 海边沫沫
可以看到,实现这个视图的class为cn.blogjava.youxia.views.FirstView,那么我们看 看FirstView.java吧:
1package cn.blogjava.youxia.views;
2
3import org.eclipse.jface.action.IMenuManager;
4import org.eclipse.jface.action.IToolBarManager;
5import org.eclipse.jface.viewers.TableViewer;
6import org.eclipse.swt.SWT;
7import org.eclipse.swt.widgets.Composite;
8import org.eclipse.swt.widgets.Label;
9import org.eclipse.swt.widgets.Table;
10import org.eclipse.swt.widgets.Text;
11import org.eclipse.ui.part.ViewPart;
12
13public class FirstView extends ViewPart {
14
15 private Table table;
16 private Text text_1;
17 private Text text;
18 public static final String ID = "cn.blogjava.youxia.views.FirstView"; // $NON-NLS-1$
19
20 /** *//**
21 * Create contents of the view part
22 * @param parent
23 */
24 @Override
25 public void createPartControl(Composite parent) {
26 Composite container = new Composite(parent, SWT.NONE);
27
28 final Label label = new Label(container, SWT.NONE);
29 label.setText("姓名:");
30 label.setBounds(56, 41, 36, 12);
31
32 text = new Text(container, SWT.BORDER);
33 text.setBounds(98, 38, 80, 15);
34
35 final Label label_1 = new Label(container, SWT.NONE);
36 label_1.setText("性别:");
37 label_1.setBounds(212, 41, 30, 12);
38
39 text_1 = new Text(container, SWT.BORDER);
40 text_1.setBounds(252, 38, 80, 15);
41
42 final TableViewer tableViewer = new TableViewer(container, SWT.BORDER);
43 //tableViewer.setInput(new Object());
44 table = tableViewer.getTable();
45 table.setBounds(56, 75, 374, 143);
46 table.setItemCount(10);
47 table.setLinesVisible(true);
48 //
49 createActions();
50 initializeToolBar();
51 initializeMenu();
52 }
53
|