分享

使用Eclipse中的更新配置界面

 江江385 2013-04-02

在Eclipse中的众多特性中有一条可以自动更新的功能,

 

我们可能在实际使用中也需要Eclipse那样的更新功能,而Eclipse提供了更新和管理插件的配置对话框,在这里我们可用发扬发扬"拿来主义",直接拿过来用,过程很简单,步骤如下

新建一个插件项目,然后打开 plugin.xml 文件,切换到 Extensions 选项卡,增加"org.eclipse.ui.actionSets" 扩展点,然后新建如下节点

下面是整个plugin.xml 文件内容

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>

   
<extension
         
id="application"

         point
="org.eclipse.core.runtime.applications">
      
<application>
         
<run
               
class="updateandinstall.Application">

         
</run>
      
</application>
   
</extension>
   
<extension
         
point="org.eclipse.ui.perspectives">

      
<perspective
            
name="Perspective"

            class
="updateandinstall.Perspective"
            id
="UpdateAndInstall.perspective">
      
</perspective>
   
</extension>
   
<extension
         
point="org.eclipse.ui.views">

      
<view
            
name="View"

            class
="updateandinstall.View"
            id
="UpdateAndInstall.view">
      
</view>
   
</extension>
   
<extension
         
point="org.eclipse.ui.actionSets">

      
<actionSet
            
id="SMS.actionSet1"

            label
="软件更新">
         
<menu
               
id="SMS.menu3"

               label
="软件更新">
            
<separator
                  
name="group0">

            
</separator>
            
<separator
                  
name="group1">

            
</separator>
         
</menu>
         
<action
               
class="updateandinstall.actions.InstallWizardAction"

               disabledIcon
="icons/update/usearch_obj.gif"
               icon
="icons/update/usearch_obj.gif"
               id
="SMS.action3"
               label
="查找并安装"
               style
="push">
         
</action>
         
<action
               
class="updateandinstall.actions.ConfigurationManagerAction"

               disabledIcon
="icons/update/configs.gif"
               icon
="icons/update/configs.gif"
               id
="SMS.action4"
               label
="配置管理"
               style
="push">
         
</action>
      
</actionSet>
   
</extension>

</plugin>
    

 我们要使这个扩展菜单项生效,必须要新建对应的Action类来负责执行操作,先来看"查找并安装"对应的Action类  InstallWizardAction .java

package updateandinstall.actions;

import
 org.eclipse.jface.action.Action;
import
 org.eclipse.jface.action.IAction;
import
 org.eclipse.jface.viewers.ISelection;
import
 org.eclipse.swt.custom.BusyIndicator;
import
 org.eclipse.ui.IWorkbenchWindow;
import
 org.eclipse.ui.IWorkbenchWindowActionDelegate;
import
 org.eclipse.ui.PlatformUI;
import
 org.eclipse.update.ui.UpdateManagerUI;

public class InstallWizardAction extends Action implements
 IWorkbenchWindowActionDelegate{

    
private
 IWorkbenchWindow window;
    
    
public
 InstallWizardAction(){
        
    }
    
public void
 dispose() {
        
// TODO 自动生成方法存根

        
    }

    
public void
 init(IWorkbenchWindow window) {
        
this.window=
window;
    }

    
public void
 run(IAction action) {
        openInstaller(PlatformUI.getWorkbench().getActiveWorkbenchWindow());
    }

    
public void
 selectionChanged(IAction action, ISelection selection) {
        
// TODO 自动生成方法存根

        
    }
    
    
private void openInstaller(final
 IWorkbenchWindow window){
        BusyIndicator.showWhile(window.getShell().getDisplay(),
new
 Runnable(){
            
public void
 run(){
                UpdateManagerUI.openInstaller(window.getShell());
            }
        });
    }
}    

我们通过这个类直接调用更新管理器中提供的API就行了

"配置管理" 对应的Action类  ConfigurationManagerAction .java

package updateandinstall.actions;

import
 org.eclipse.jface.action.IAction;
import
 org.eclipse.jface.viewers.ISelection;
import
 org.eclipse.swt.custom.BusyIndicator;
import
 org.eclipse.ui.IWorkbenchWindow;
import
 org.eclipse.ui.IWorkbenchWindowActionDelegate;
import
 org.eclipse.update.ui.UpdateManagerUI;

public class ConfigurationManagerAction implements
 IWorkbenchWindowActionDelegate{

    private
 IWorkbenchWindow window;

    public void
 dispose() {
        // TODO 自动生成方法存根

        
    }

    public void
 init(IWorkbenchWindow window) {
        this.window=
window;
    }

    public void
 run(IAction action) {
        BusyIndicator.showWhile(window.getShell().getDisplay(),new
 Runnable(){
            public void
 run(){
                UpdateManagerUI.openConfigurationManager(window.getShell());
            }
        });
    }

    public void
 selectionChanged(IAction action, ISelection selection) {
        // TODO 自动生成方法存根

    }
}    

  这样的话我们就可以使用Eclipse中更新管理器中的更新功能了,在程序打包的时候好记得把关于更新的插件给打包进去就行了

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多