rcp 常用代码

注册空的弹出菜单

 

MenuManager menuManager=new MenuManager();

Menu menu=menuManager.createContextMenu(treeViewer.getControl());

treeViewer.getControl().setMenu(menu);

 //设置选择提供者和弹出菜单  

      getSite().setSelectionProvider(treeViewer); 

      getSite().registerContextMenu(menuManager, treeViewer); 

 

 

对viewer  实现过来

import java.io.*;
import org.eclipse.jface.viewers.*;
public class AllowOnlyFoldersFilter extends ViewerFilter
{
 public boolean select(Viewer viewer, Object parent, Object element)
 {

   这里我只显示 目录
  return ((File) element).isDirectory();
 }
}

 

为viewer 实现     排序。

 

class NameSorter extends ViewerSorter {

 

@Override

public int compare(Viewer viewer, Object e1, Object e2) {

return e1.toString().compareTo(e2.toString());

//return super.compare(viewer, e1, e2);

}

}

 

 

 

 

 

这里是对数组的排序,这里用到了泛型,可以对任何集合进行排序

Arrays.sort(a, c)

Collections.sort(list, c)

 

 

为属性栏设置 验证。

 

 propertyDescriptor.setValidator(new EmailAddressValidator());

public class EmailAddressValidator1 implements ICellEditorValidator {

    /** 

     * The <code>EmailAddressValidator</code> implementation of this

     * <code>ICellEditorValidator</code> method 

     * determines if the value is a valid email address.

     * (check to see if it is non-null and contains an @)

     */

    public String isValid(Object value) {

        。。没有错误

            return null;

         有错误,返回错误信息

        return MessageUtil

                .getString("email_address_does_not_have_a_valid_format"); //$NON-NLS-1$

    }

}

 

 

 

可以看一下源码

使用rcp内部的类,来实现treeviewer

不过模型要求实现  IWorkbenchAdapter  

    viewer.setContentProvider(new WorkbenchContentProvider());

      viewer.setLabelProvider(new WorkbenchLabelProvider());

内部提供了很多机制。

 

 

ComboBoxPropertyDescriptor  通过 这个类来实现 属性栏下拉列表。

 

public class CustomDescriptor extends PropertyDescriptor {

    //重写

    public CellEditor createPropertyEditor(Composite parent) {

        默认这里是空的,你可以扩展自己的对话框

        CellEditor editor = new ColorCellEditor(parent);

        if (getValidator() != null) {

editor.setValidator(getValidator());

}

        return editor;

    }

}

 

这样结构的可以在 PropertySheet中作为一个page显示。

public class PropertySheetPage extends Page implements IPropertySheetPage, IAdaptable 

 

 

org.eclipse.ui.preferencePages  通过该扩展点 实现首先项的扩展。

public class RootPreferencePage extends PreferencePage

implements IWorkbenchPreferencePage

 

 

打开属性页面的动作

PropertyDialogAction

 

 SamplePropertyPage extends PropertyPage 

 <extension

         point="org.eclipse.ui.propertyPages">

      <page

            name="属性页面test"

            nameFilter="*.*"

            class="plugin.properties.SamplePropertyPage"

            id="plugin.properties.samplePropertyPage">

         <enabledWhen>

            <instanceof

                  value="org.eclipse.core.resources.IFile">

            </instanceof>

         </enabledWhen>

      </page>

   </extension>

学习http://blog.csdn.net/vwpolo/archive/2008/03/04/2147078.aspx

 

 

jface 设计

http://blog.csdn.net/hansoft/archive/2005/06/18/397584.aspx

 

org.eclipse.ui.popupMenus  可以通过该扩展点对eclipse已经有点弹出菜单进行扩展。

 

HandlerUtil   是handler的工具类,很有用。

 

jface已经封装了一个选择文件的一个组件,不需要自己再去写了。

org.eclipse.jface.preference

FileFieldEditor editor = new FileFieldEditor("fileSelect","Select File: ",shell); 

 

IWizard  相关子接口,相关类

INewWizard

WizardNewFileCreationPage  项目中的新建文件 /导入文件 都可以用这个 page通过wizard来实现。

 

org.eclipse.help.toc   实现帮助的扩展点。

 

org.eclipse.ui.decorators 可以根据文件的不同状态,添加对应的图标对原有图标的装饰。

                          svn就是用这种方式实现的。

 

 

 

IResourceChangeListener

ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);

 

FieldEditor  它的子类中封装了常用的一下基本组件。

FieldEditorPreferencePage   可以使用FieldEditor 来实现一个IWorkbenchPreferencePage

 

 

org.eclipse.core.runtime.preferences  初始化IPreferenceStore中的值

 

 

org.eclipse.ui.splashHandlers   AbstractSplashHandler  可以自定义启动界面。

 

 

org.eclipse.ui.intro  org.eclipse.ui.intro.config   来制作欢迎界面。

 

service 扩展点 sourceProvider 子节点  

org.eclipse.ui.internal.services.WorkbenchSourceProvider   

这个类可以在with(这里使用里面的属性名)

例如:with(selection)

http://blog.eclipse-tips.com/2009/02/commands-part-5-authentication-in-rcp.html

 

1、重启RCP应用

  PlatformUI.getWorkbench().restart();

  2、在插件资源库中查找Perspective(其它extend point资源的获得类似)

 

 

IPerspectiveDescriptoripd=PlatformUI.getWorkbench().getPerspectiveRegistry().findPerspectiveWithId(FavoritePerspective.ID); //根据plugin.xml中的ID查找

  3、获得当前RCP应用的shell

  Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();

  4、显示帮助信息

  PlatformUI.getWorkbench().getHelpSystem().displayHelp();

 

 

PlatformUI  Platform  AbstractUIPlugin  WorkbenchPlugin

 

 

org.eclipse.ui.presentationFactories  改变Eclipse的外观

http://blog.csdn.net/bradwoo8621/archive/2007/04/25/1584018.aspx

你可能感兴趣的:(eclipse)