2011-09-14 27 views
3

據我瞭解,默認情況下,DialogBox在GWT中是不可更新的(它甚至沒有實現)。通過調整大小,我的意思是點擊DialogBox的邊緣並將其拖大。 我在網上看到過一些自定義的可調整大小的面板,但沒有看到DialogBox。我對如何製作可調整大小的DialogBox有一些想法,只是不想重新發明weel。也許有人知道可調整大小的DialogBox的實現,並可以將我鏈接到源代碼?GWT resizable DialogBox

回答

0

確定經過一番研究後,我得出了一個結論,即由於DialogBox的構建而無法完成。至少在不丟失DialogBox默認行爲的情況下無法完成。所有的鼠標事件都必須被覆蓋。如果我覆蓋所有事件,那麼Google可以在未來改變某些事情時放棄默認行爲。 DialogBox標題不是從DialogBox中自行分開的。在所有鼠標事件上,DialogBox會檢查發件人是否爲Caption,如果不是,則會吞下鼠標事件。這樣DialogBox在屏幕上移動。

1

我做了這樣的事情,它只是在右下角添加一個紅色框,然後您可以將鼠標處理程序添加到該紅色框來調整大小。

public class ThumbnailDialog extends DialogBox { 

    private FocusPanel tab = new FocusPanel(); 

    public ThumbnailDialog() { 
    super(false, false);  
    tab.setPixelSize(4, 4); 
    tab.getElement().getStyle().setBackgroundColor("red"); 
    tab.getElement().getStyle().setPosition(Style.Position.ABSOLUTE); 
    tab.getElement().getStyle().setRight(0, Style.Unit.PX); 
    tab.getElement().getStyle().setBottom(0, Style.Unit.PX); 

    Element tabElement = getCellElement(2, 2); 
    tabElement.getStyle().setOverflow(Style.Overflow.VISIBLE); 
    tabElement.appendChild(tab.getElement()); 
    } 
}