gef直接編輯的思路

2021-08-31 11:18:38 字數 1227 閱讀 2351

攔截編輯的事件,在同樣的位置,同樣的大小,用text來覆蓋。

首先需要在原有的基礎上多加兩個類

edirecteditmanager   直接編輯管理類 

ecelleditorlocator   單元格的編輯的位置 

public class ecelleditorlocator  implements celleditorlocator{

private ifigure figure;

public ecelleditorlocator(ifigure figure)

this.figure=figure;

@override

public void relocate(celleditor celleditor) {

更具figure的位置大小,顯示 widget text。其實就是用text 來覆蓋 figure。

這裡你也可以顯示table,tree都可以。更具你的需要

text text= (text) celleditor.getcontrol();

rectangle rct=  figure.getbounds().getcopy();

figure.translatetoabsolute(rct);

text.setbounds(rct.x, rct.y, rct.width, rct.height);

在你需要編輯的part中填寫以下**。

@override

public void performrequest(request req) {

if(req.gettype().equals(requestconstants.req_direct_edit))

performdirectedit();

return;

super.performrequest(req);

private void performdirectedit()

// 關鍵是這裡,。。。,用 ecelleditorlocator    建立edirecteditmanager   。並顯示 edirecteditmanager .show();

if(directmanager==null)

directmanager=new edirecteditmanager(this, textcelleditor.class, new ecelleditorlocator(getfigure()));

directmanager.show();

GEF編輯器的深入應用

最近,由於專案工作較忙,寫作很少,但是通過專案的應用,對gef進行了深度研究,主要內容如下 一 gef編輯器中網格線線型的調整 背景顏色的改變等等 gef編輯器中,網格線作為輔助實現節點定位 相鄰節點之間自動對齊調整等功能,具有重要意義。但是,gef網格確省網格線留給我們的調整餘地只有單元格的間距,...

GEF編輯器的區域及滾動條

gef編輯器是構架在draw2d的figurecanvas上的,而figurecanvas是swt中canvas的子類.當得到figurecanvas之後,就可以得到gef編輯器的區域和gef編輯器內部畫布的大小 編輯器區域大小 figurecanvas.getbounds 這是運用了figurec...

約瑟夫問題直接求取結果的思路

本人比較笨,約瑟夫問題的求解方法想了好久才想通,在這裡留一篇文章,記錄一下。約瑟夫問題 n個人,數m,列出順序。1,用演算法模擬數數過程,通過乙個乙個的排除,最後得到最終的結果 首先解決思路問題,每次數數m個,一共數n次,所以一共經過n m次,然後定義乙個int t,用來算作每個人報數的時候報出的數...