2010-03-17 3 views
0

Я хочу, чтобы получить доступ к текстовым элементам внутри этого текстового поля в GWT от основного метода (где я называю это так)обращающихся виджеты внутри элемента GWT

DialogBox aBox = newCandidatePop.buildNewElecPopup(); 
    aBox.center(); 
    aBox.getWidget(); 

    MiscUiTools.newCandidateHandler(aBox.firstName, aBox.surName); 

в newCandidateHandler я хочу, чтобы присоединить обработчик щелчка к два текстовых поля

Однако вышеизложенное не работает - я не могу получить доступ к элементам aBox.firstName, потому что они являются статическими методами. Мне интересно, что лучше всего подходит, как бы вы закодировали что-то подобное?

static TextBox firstName = new TextBox(); 
    static TextBox surName = new TextBox(); 
    static DialogBox box; 

// public newCandidatePop() { 
//  box = buildNewElecPopup(); 
// } 

    static public DialogBox buildNewElecPopup() { 

     DialogBox box = new DialogBox(); 
     box.setAutoHideEnabled(true); 

     box.setText("Add a New Candidate"); 
     box.setAnimationEnabled(true); 
     box.setGlassEnabled(true); 

     Grid dialogGrid = new Grid(2, 3); 
     dialogGrid.setPixelSize(250 , 125); 
     dialogGrid.setCellPadding(10); 
     dialogGrid.setWidget(0, 0, new HTML("<strong>First Name</strong>")); 
     dialogGrid.setWidget(0, 1, firstName); 

     dialogGrid.setWidget(1, 0, new HTML("<strong>Surname</strong>")); 
     dialogGrid.setWidget(1, 1, surName); 

     box.add(dialogGrid); 

    return box; 
    } 

ответ

1

Почему текстовые элементы статичны вообще?

public class MyDialogBox extends DialogBox { 
    private final TextBox firstName; 
    private final TextBox surName; 
    public MyDialogBox() { 
    firstName = new TextBox(); 
    surName = new TextBox(); 

    DialogGrid dialogGrid = new Grid(2, 3); 
    // do all your stuff with the grid, add TextBoxes, etc. 
    add(dialogGrid); 

    setAutoHideEnabled(true); 
    // set all the properties of your DialogBox 
    } 

    public TextBox getFirstNameTextBox() { 
    return firstName; 
    } 
    // same with surName... 
} 
+0

хорошая точка - там не должно быть. спасибо! – malangi

Смежные вопросы