我想添加一個dropListener這樣我就可以刪除並文成Draw2D的標籤,在GEF編輯砸文字,誰能幫助我如何能做到這一點。一個例子會很棒。如何添加DropListener在Draw2D的標籤
0
A
回答
0
爲了應對砸你必須安裝在瀏覽器本身的org.eclipse.jface.util.TransferDropTargetListener
的實現,理解org.eclipse.swt.dnd.TextTransfer
類型的轉移和創建某種org.eclipse.gef.Request
可以通過安裝在一個org.eclipse.gef.EditPolicy
被處理的GEF編輯部分觀衆的事件目標org.eclipse.gef.EditPart
。
您必須明白,Request
和EditPolicy
都允許您以EditPart
爲基礎自定義丟棄行爲。因此,我可以告訴你一個例子,實際上是全功能的,但隨意定製,以您的實際需要。
首先創建TransferDropTargetListener
:
public class TextTransferDropTargetListener extends AbstractTransferDropTargetListener {
public TextTransferDropTargetListener(EditPartViewer viewer) {
super(viewer, TextTransfer.getInstance());
}
@Override
protected void handleDragOver() {
getCurrentEvent().feedback = DND.FEEDBACK_SCROLL | DND.FEEDBACK_EXPAND;
super.handleDragOver();
}
@Override
protected Request createTargetRequest() {
return new ChangeBoundsRequest(REQ_ADD);
}
@Override
protected void updateTargetRequest() {
ChangeBoundsRequest request = (ChangeBoundsRequest) getTargetRequest();
request.setEditParts(Collections.EMPTY_LIST);
request.setLocation(getDropLocation());
}
@Override
protected void handleDrop() {
super.handleDrop();
if (getCurrentEvent().detail != DND.DROP_NONE) {
getViewer().setSelection(StructuredSelection.EMPTY);
getViewer().getControl().setFocus();
}
}
@Override
protected Command getCommand() {
String text = (String) getCurrentEvent().data;
List<IEntityPart> editParts = new ArrayList<IEntityPart>();
//
// using the 'text' variable you have to create
// a new EditPart that would eventually replace the old one.
//
editParts.add(createNewLabelPart());
ChangeBoundsRequest request = (ChangeBoundsRequest) getTargetRequest();
request.setEditParts(editParts);
return super.getCommand();
}
}
然後使用下面的語句安裝在圖形瀏覽器構造的聽衆:
addDropTargetListener(new TextTransferDropTargetListener(this));
終於確保了EditPolicy
,理解REQ_ADD
類型的請求(也許你已經增加了一個延伸LayoutEditPolicy
或ContainerEditPolicy
)被安裝在目標EditPart
,這是通常的在AbstractEditPart.createEditPolicies()
LY完成。
爲了更好地理解責任的鏈條,我建議你看看超級實現TransferDropTargetListener.getCommand()
方法。
相關問題
- 1. Draw2D的JavaScript庫 - 多標籤
- 2. 如何爲標籤添加標籤
- 3. 如何在draw2d中垂直和水平放置標籤圖?
- 4. 如何添加標籤欄?
- 5. 如何在draw2d的特定位置添加圖形?
- 6. 如何在textarea的第一行添加標籤標籤?
- 7. ,如何在現有的標籤中添加標籤?
- 8. 如何在Ckeditor中添加span標籤?
- 9. 如何在Tumblr上添加標籤雲?
- 10. 如何在asp.net中添加標籤TextBox
- 11. 如何在標籤上添加動畫?
- 12. 如何在ScrollView中添加標籤
- 13. 如何在圖片上添加標籤?
- 14. 如何在navgrid中添加標籤
- 15. 如何在Ajax中添加DIV標籤
- 16. 如何在draw2d中添加強制換行符TextFlow
- 17. 如何在Facebook Open Graph中添加多個標籤(article:標籤)?
- 18. 我們如何在Titanium中添加HTML標籤iOS標籤
- 19. 我們如何在html標籤中添加div標籤?
- 20. 如何在進度條標籤內添加標籤?
- 21. 如何使用jquery在div標籤中添加span標籤?
- 22. 如何在ActiveAdmin視圖中添加標籤標籤?
- 23. 如何在prometheus重新標籤步驟中添加標籤?
- 24. 如何添加單個標籤的類?
- 25. 如何添加不重疊的標籤
- 26. 如何添加標籤的ODRefeshControl
- 27. 添加標籤
- 28. 如何在R標籤中添加任何語言的標記
- 29. 如何將標籤添加到沒有標籤的解析樹?
- 30. 如何添加標籤自動完成標籤,它的插件