Я пытаюсь создать собственный виджет GWT. Я выбираю композитный способ его построения. Но у меня есть проблема, виджет не видел на экране. Вот код составного виджета:
public class LoginPanel extends Composite {
private static final String DEFAULT_STYLENAME = "LoginPanel";
private TextBox nameField;
private PasswordTextBox passField;
private Button loginButton;
private Label errorLbl;
private DecoratedPopupPanel decoratedPopupPanel;
public LoginPanel() {
nameField = new TextBox();
passField = new PasswordTextBox();
loginButton = new Button("Login");
loginButton.getElement().setId("loginButton");
errorLbl = new Label();
Grid grid = new Grid(4, 2);
grid.setWidget(0,0, errorLbl);
grid.setWidget(1,0, new Label("Name"));
grid.setWidget(1,1, nameField);
grid.setWidget(2,0, new Label("Password"));
grid.setWidget(2,1, passField);
grid.setWidget(3,1, loginButton);
decoratedPopupPanel = new DecoratedPopupPanel();
initWidget(decoratedPopupPanel);
//decoratedPopupPanel.setAnimationEnabled(true);
decoratedPopupPanel.setWidget(grid);
//decoratedPopupPanel.setAnimationEnabled(true);
decoratedPopupPanel.setPopupPositionAndShow(new PopupPanel.PositionCallback() {
public void setPosition(int i, int i1) {
decoratedPopupPanel.setPopupPosition(Window.getClientWidth()/2, Window.getClientHeight()/2);
}
});
}
}
В функции начального класса onModuleLoad()
У меня есть этот код:
LoginPanel lp = new LoginPanel();
RootPanel.get().add(lp);
Когда я удаляю в LoginPanel
строки класса за функцией initWidget()
, тогда все в порядке, но виджет не центрируется. Кто-нибудь может мне помочь?