Eclipse plugin 从eclipse插件编辑器调用firePropertyChange';s drop侦听器
我已经在eclipse插件的编辑器中实现了拖放支持。现在,我想通过从drop侦听器调用firePropertyChange来通知编辑器这些更改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;
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);
将此链接用作参考。
似乎有道理,但由于我们对您的编辑一无所知,所以很难说太多。