RCP --> JFace --> 小结

Copy Project:

1.       Project菜单添加步骤:

a)         Extensions àorg.eclipse.ui.popupMenu ànew menu;

b)         Action,Implementationà org.eclipse.ui.IWorkbenchWindowActionDelegate;

2.       导入/WorkSpaceProject,工作空间都是WorkSpace

a)         共同的rootResourcesPlugin.getWorkSpace().getRoot();

b)         Root path ResourcesPlugin.getWorkSpace().getRoot().getLocation().toString();

c)         IProjectDescription ResourcesPlugin.getWorkSpace().loadProjectDescription(.projectIPath);该对象可以获得.project文件信息

                                       i.              IPath new Path(String fullPath);

                                     ii.              IPath IProject.getFile(“.project”).getLocation();

                                    iii.              IFile IProject.getFile(fileName);

d)         After Copy modify DBCLauncher.path 保存路径由此改变,操作对象不变;

3.       创建Project

a)         àIProject       iProject   = ResourcesPlugin.getWorkSpace().getRoot().getProject(newProjectName);

b)         à if (!iProject.exists()){  iProject.create(null); }

c)         àif (!iProject.isOpen()){ iProject.open(null); }

4.       创建文件

a)         IFile iFile = iProject.getFile(new Path(filePath));

b)         InputStream   inputStream = new ByteArrayInputStream(String.getBytes());

c)         If (iFile.exists()) iFile.setContents(inputStream,true,false,null);

d)         Else iFile.create(inputStream,false,null);

 

 

 

Refresh Viewer/Editor

1.       Extends ViewPart:

a)         IWorkbenchPage page   = 1.PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();  2.this.getSite().getWorkbenchWindow().getActivePage();

b)         àpage.hideView(page.findView(ViewPart.ID));

c)         à page.showView(ViewPart.ID);

2.       Extends EditorPart:

a)         IWorkbenchPage page   =

1.PlatFormUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();

2.this.getSite().getWorkbenchWindow().getActivePage();

b)         àpage.closeEditor(page.findEditor(EditorInput));

c)         àpage.openEditor(EditorInput,Editor.ID);

 

 

 

 

Content  Type:

1.   用户自定义类型,注册编辑器联系在一起

2.  àExtensionsàorg.eclipse.core.runtime.contenttype.contentTypes

3.       àorg.eclipse.ui.editorsànew Editorànew contentTypeBinding

 

 

Create A Editor Steps:

1.         àEditor  extends  EditorPart

a)         Init():setSite();setInput(); 初始化

b)         isDirty();firePropertyChange(IeditorPart.PROP_DIRTY); 更改提示

c)         createPartControl();setContentProvider();setLabelProvider;setInput();setFilter;主要是设置大致布局

2.         àContentProvider          implements      IStructuredContentProvider

a)         主要getElementsObject   inputElement toArray(); 返回数组类型

3.         àLabelProvider      extends    LabelProvider  implements   ItableLabelProvider,ItableColorProvider  or  StyledCellLabelProvider

a)         extends  LabelProvide   à createTableColumns,setColumnEditor,getImage(),getText();                   创建列,列可编辑,获得图片,文本

b)         implements ItableLabelPovider,ItableColorProviderà 同上功能,同时具备设置行颜色

c)         extends    StyledCellLabelProvider à update(ViewerCell     cell) 高亮,替换都可

d)         table.addListener(SWT.MeasureItem,new Listener(){

public void handleEvent(Event         event){

         event.height   = (int)Math.floor(event.gc.getFontMetrics().getHeight()*1.5);

}

})

Table.setHeaderVisible();table.setLinesVisible(true);

4.         àEditorInput          implements      IEditorInput

a)         Object      getter/setter  getName()/getToolTipText ()                                 

5.         àEditing  extends                  EditingSupport

a)         canEdit(){ return true; }  //设置可以编辑

b)         getValue(),setValue();//获得、设置 对象值

c)         getCellEditor(){} ,CellEditor types:àTextCellEditor,ComboBoxCellEditor

 

 

一,Editor有时出现数据粘连,是因为返回结果是null的缘故,判断null返回“”;

二,ComboBoxCellEditor 使用时,getValue()返回Integer,有String[]与之对应;

 

 

 

 

 

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值