eclipse 插件开发基本操作

菜单详解http://www.itpub.net/showthread.php?threadid=1226436

1.给edit里写东西
 public void run(IAction action) {
  IEditorReference[] editors = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getEditorReferences();
  int length = editors.length;
  TextFileDocumentProvider tfdp = null;
  FileEditorInput input = null;
  System.out.println("editos amount is -->"+length);
  for (int i = 0; i < length; ++i){
    IEditorPart editor = editors[i].getEditor(false);
   input = (FileEditorInput)editor.getEditorInput();
    tfdp = ((TextFileDocumentProvider)((ITextEditor)editor).getDocumentProvider());//.connectToXCDE(input);
    MessageDialog.openInformation(shell, "Ex", "Test Action was executed.");
    String path = input.getFile().getFullPath().toString();
    System.out.println("path--------------------->"+path);
    IDocument document = tfdp.getDocument(input);
    try {
     document.replace(2, 6, "zouweizouwei");
    
    } catch (BadLocationException e) {
     e.printStackTrace();
    }
  }
  
 }
2.视图(view)里打开东西
  2.1 打开本地的文件,参考了挂eclipse线程的机制
 private static void openlocalFiles(IWorkbenchPage page,String filterPath) {
 
    IFileStore fileStore =  EFS.getLocalFileSystem().getStore(new Path(filterPath));
    System.out.println("fileStore.getName()===>"+fileStore.getName());
   // fileStore =  fileStore.getChild(names[i]);
    IFileInfo fetchInfo = fileStore.fetchInfo();
    if (!fetchInfo.isDirectory() && fetchInfo.exists()) {
     //IWorkbenchPage page =  window.getActivePage();
     try {
      IDE.openEditorOnFileStore(page, fileStore);
     } catch (PartInitException e) {
      String msg =  NLS.bind(IDEWorkbenchMessages.OpenLocalFileAction_message_errorOnOpen, fileStore.getName());
      IDEWorkbenchPlugin.log(msg,e.getStatus());
      MessageDialog.open(MessageDialog.ERROR,new Shell(), IDEWorkbenchMessages.OpenLocalFileAction_title, msg, SWT.SHEET);
     }
    }
  }
  2.2 打开工作视图中的文件
       IDE.openEditor(page, file);

JD-Eclipse 很好的反编译plugins

一类,已在哪些地方引用? 
ctrl+Shift+g
 
2010.1.14
eclipse 规定display 与其上的控件必需在一个thread上,所以用display.asyncExec(eclipse插件开发笔记 wizards)
如果不同编辑器对应的模型实在是整不一起去还可以用适配器,当模型变化时,编辑器肯定会收到通知,这样就更新编辑器了
2010.1.15
想出一个很好的方法去查看eclipse 的相关功能点:alt+shilf+F1,alt+shilf+F2设断点,然后调试。
newWizard加入一些文件和jar到classpath里已解决。
GMF的一个操作视频
关键字: gmf demo video 视频
视频地址:
http://www.eclipse.org/gmf/tutorial/viewlets/tutorial.html


GMF的mindMap、TaiPan等demo的CVS下载地址:
:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling


-------------------------------------
将应用默认使用XP风格
文章分类:Java编程 关键字: 将应用默认使用xp风格
http://www.eclipse.org/swt/javaw.exe.manifest这个链接上下载javaw.exe.manifest文件,放在jre下的bin目录里面就OK了
http://msdn.microsoft.com/en-us/library/ms997646.aspx这里有解释 

OverrideMethodsAction
刷新文件
IResource res = ResourcesPlugin.getWorkspace().getRoot();
   try {
    res.refreshLocal(IResource.DEPTH_INFINITE, null);
   } catch (CoreException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }

2010.02.02
eclipse 取图片的几种方法.
1.直接在xml里配
2.Activor里有getImageDescriptor(String path);更好的是通过其写一个缓冲类。
3. URL url = FileLocator.find(Platform.getBundle("org.zte.conn"),
    new Path(path), null);
  ImageDescriptor contributedImageDescriptor=  ImageDescriptor.createFromURL(url);


IFile eclipseFile = ResourcesPlugin.getWorkspace().getRoot().getProject("project").getFile(new Path("folder/file.txt"));
   IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();

图片在树里要从小到大,不然会很不好看,会接伸

new Image(Display.getCurrent(), getClass().getResourceAsStream("/org/zw/bpel/image/remove.gif"))

 

2010.03.10

 

public Object execute(ExecutionEvent event) throws ExecutionException {
IStructuredSelection selection = (IStructuredSelection) HandlerUtil
.getActiveMenuSelection(event);
HandlerUtil.getActiveShell(event)

IStructuredSelection selection = (IStructuredSelection) HandlerUtil
.getActiveSite(event).getSelectionProvider().getSelection();
   IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();

IPreferenceStore store = ClassFTPPlugin.getDefault().getPreferenceStore();

 IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);

 Object active_part = HandlerUtil.getActivePart(event);
   Object editor = HandlerUtil.getActiveEditor(event);

 

IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
  
      Object active_part = HandlerUtil.getActivePart(event);
   Object editor = HandlerUtil.getActiveEditor(event);
   
   // Check to see if the command was fired from the Editor..
   if(active_part == editor)
   {
    Object obj = HandlerUtil.getActiveEditor(event).getEditorInput();
    if(obj instanceof IFileEditorInput)
    {
     IFileEditorInput f = (IFileEditorInput) obj;
     IFile file= f.getFile();
     System.out.println(file.getProjectRelativePath());
     IFile[] files = new IFile[]{file};

得到eclipse的版本号

EclipseVersionRetriever.getMajorVersionNumber() >= 3

ve里边很好的dialog

IStructuredSelection selection = (IStructuredSelection) HandlerUtil
  .getActiveSite(event).getSelectionProvider().getSelection();
   Object obj =   selection.getFirstElement();
   if(obj instanceof IProject){
  ImageDialog image = new ImageDialog(window.getShell(),(IProject)obj);
  image.open();}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值