2011-09-12 90 views
1

我有大約有70-100小部件(文本框,列表框,用戶控件等)GWT形式問題

我想實現CUT的功能,COPY這種形式。對於這一點,我有一個GWT形式2個按鈕位於表單頂部。

現在我遇到的問題是,當我點擊複製按鈕時,在表單中聚焦的小部件失去了焦點,我不知道要複製哪些文本(或者哪個小部件在焦點到達前複製按鈕)

我打算在所有小部件上實現模糊處理程序,但我覺得是一個非常費力而不是一個好的解決方案。

我該如何解決這個問題?

感謝

回答

2

也許有人有更深入的瞭解可能會提供一個更好的方法,但我beleive添加模糊處理程序是完全合法的。我不太明白爲什麼你認爲這會很費力,畢竟你不需要爲每個小部件使用不同的處理程序,只能使用一個(最多隻能用於一對夫婦的各種控件..),這裏是一個非常簡單的例子,

public class CustomBlurHandler implements BlurHandler{ 
    Object lastSource; 
    String text;  
    @Override 
    public void onBlur(BlurEvent event) { 
     if (event.getSource() instanceof TextBox) {    
      lastSource = event.getSource(); 
      text = textBox.getSelectedText(); 
     }  
    } 
    public Object getLastSource() { 
     return lastSource; 
    } 
    public String getText() { 
     return text; 
    } 
} 

和onModuleLoad:

public class Test implements EntryPoint {  
    CustomBlurHandler handler = new CustomBlurHandler();   
    public void onModuleLoad() { 
     TextBox text1 = new TextBox(); 
     TextBox text2 = new TextBox();   
     text1.addBlurHandler(handler); 
     text2.addBlurHandler(handler);  
     Button b = new Button("Get last selected text"); 
     b.addClickHandler(new ClickHandler() { 
      @Override 
      public void onClick(ClickEvent event) { 
       Window.alert(handler.getLastSource()+ " " + handler.getText()); 
      } 
     }); 
     RootPanel.get().add(text1); 
     RootPanel.get().add(text2); 
     RootPanel.get().add(b);   
    } 
} 
+0

我用你的想法在一定程度上。在我的小部件中放入一個靜態變量,只要文本框中的某些文本發生更改就會更新。爲該靜態文本添加getter和setter,並且工作出色! – Barry