Eclipse plugin 从eclipse插件编辑器调用firePropertyChange';s drop侦听器

Eclipse plugin 从eclipse插件编辑器调用firePropertyChange';s drop侦听器,eclipse-plugin,eclipse-rcp,Eclipse Plugin,Eclipse Rcp,我已经在eclipse插件的编辑器中实现了拖放支持。现在,我想通过从drop侦听器调用firePropertyChange来通知编辑器这些更改 firePropertyChange(IEditorPart.PROP_DIRTY); 这样做对吗?或者还有其他选择吗 DropListener代码: public class DropListener extends ViewerDropAdapter { private final TableViewer viewer;

我已经在eclipse插件的编辑器中实现了拖放支持。现在,我想通过从drop侦听器调用firePropertyChange来通知编辑器这些更改

firePropertyChange(IEditorPart.PROP_DIRTY);
这样做对吗?或者还有其他选择吗

DropListener代码:

    public class DropListener extends ViewerDropAdapter {

    private final TableViewer viewer;

    private AbstractCSVFile model;

     private CSVRow target ;

     private final PropertyChangeSupport propertySupport = new PropertyChangeSupport(this);

    public  DropListener(TableViewer viewer) {
        super(viewer);
        this.viewer = viewer;
        // TODO Auto-generated constructor stub
    }

    @Override
      public void drop(DropTargetEvent event) {
        int location = this.determineLocation(event);
        target = (CSVRow) determineTarget(event);
        String translatedLocation ="";

        switch (location){
        case 1 :
          translatedLocation = "Dropped before the target ";
          break;
        case 2 :
          translatedLocation = "Dropped after the target ";
          break;
        case 3 :
          translatedLocation = "Dropped on the target ";
          break;
        case 4 :
          translatedLocation = "Dropped into nothing ";
          break;
        }
        System.out.println(translatedLocation);
        System.out.println("The drop was done on the element: " + target);
        super.drop(event);
      }

    @Override
    public boolean performDrop(Object data) {

        System.out.println("Drop to be performed with the event data > " + data.toString());

        if (target != null) {

            model = (AbstractCSVFile)getViewer().getInput();

            System.out.println("viewer input >>>>" +getViewer().getInput());


            model.addObjectRowAfterElement(target, data.toString());

            //notify editor here ....

            viewer.refresh();
        }




        return false;
    }

    @Override
    public boolean validateDrop(Object target, int operation, TransferData transferType) {
        // TODO Auto-generated method stub
        return true;
    }

}

我添加了DropListener作为编辑器的内部类,并在其中调用了属性:

firePropertyChange(IEditorPart.PROP_DIRTY);
将此链接用作参考。

似乎有道理,但由于我们对您的编辑一无所知,所以很难说太多。