1

我的 RCP 应用程序中有一个xml文件。我正在使用FormEditor.

public class MyFormEditor extends FormEditor implements IResourceChangeListener{
    public MyFormEditor(){
        ResourcePlugin.getWorkspace.addResourceChangeListener(this);
        ...
    }

    @Override
    public void resourceChanged(IResourceChangeEvent event){
        int type = event.getType();

        switch(type){
            IResourceChangeEvent.PRE_DELETE:
            IResourceChangeEvent.PRE_CLOSE:
                this.close(true);
                break;
            IResourceChangeEvent.POST_CHANGE:
                System.out.println("Resource is change.");
                break;
            default:
                break;
        }
    }

    @Override
    public void dispose(){
        ResourcePlugin.getWorkspace.removeResourceChangeListener(this);
        super.dispose();
    }
}

IResourceChange.POST_CHANGE当我保存资源或从 SVN 存储库更新资源时触发事件。

IResourceChange.POST_CHANGE如何判断资源是从SVN更新的?

我尝试了以下事情,但它对我不起作用。

IResourceDelta delta = event.getDelta;
int flags = delta.getFlags();
boolean sync = (flags & IResourceDelta.SYNC) != 0;
if(sync){
    System.out.println("Resource updated from server.");
}

如果您需要任何其他信息,请告诉我。

4

0 回答 0