Hi Michel,
My development was similar to the LoginPanel, and I have converted
most of my code to 2.0.
Below is what my converted code looks like...
I do have a few bugs that I haven't figured out yet though....
1. I must click on the "Login / Register" button twice in order for
the window to appear.
2. When you press "Cancel" on the popup window, it disappears but
leaves a blue square in it's place.
3. Then I can't get the login window to appear again unless I
refresh the page.
I hope that this code gets you a little further along in your
conversion to 2.0. I would love to see the LoginDialog in Showcase2.0
as well since I'm still trying to work out a few bugs here.
LoginDialogPanel.java ....
public Panel getViewPanel() {
final Window dialog = new Window();
dialog.setTitle("Sign In");
dialog.setClosable(true);
dialog.setWidth(500);
dialog.setHeight(400);
dialog.setPlain(true);
dialog.setLayout(new BorderLayout());
dialog.setCloseAction(Window.HIDE);
dialog.setShadow(true);
final Button signInBtn = new Button("Sign In");
signInBtn.addListener(new ButtonListenerAdapter() {
public void onClick(Button button, EventObject e) {
// do stuff here
}
});
final Button registerBtn = new Button("Register");
registerBtn.addListener(new ButtonListenerAdapter() {
public void onClick(Button button, EventObject e) {
/// do stuff here
}
});
dialog.addButton(signInBtn);
dialog.addButton(registerBtn);
Button cancelBtn = new Button("Cancel");
cancelBtn.addListener(new ButtonListenerAdapter() {
public void onClick(Button button, EventObject e) {
dialog.hide();
}
});
dialog.addButton(cancelBtn);
TabPanel tabPanel = new TabPanel();
tabPanel.setBodyBorder(false);
tabPanel.setEnableTabScroll(true);
tabPanel.setAutoScroll(true);
tabPanel.setAutoDestroy(false);
tabPanel.setActiveTab(0);
// Sign In Tab Contents
signInTab = new FormPanel();
signInTab.setTitle("Sign In");
signInTab.setFrame(true);
signInTab.setIconCls("tab-icon");
signInTab.setAutoScroll(true);
signInTab.setClosable(false);
signInTab.setWidth(300);
signInTab.setLabelWidth(75);
signInTab.setAutoHeight(true);
signInTab.setPaddings(10);
FieldSet signInFieldSet = new FieldSet("Sign In"); // FieldSet
puts that line border around the set of objects it contains.
TextField email = new TextField("Email", "email", 230);
email.setVtype(VType.EMAIL);
email.setAllowBlank(false);
signInFieldSet.add(email);
TextField password = new TextField("Password", "password",
230);
password.setAllowBlank(false);
password.setPassword(true);
signInFieldSet.add(password);
signInTab.add(signInFieldSet);
// Register Tab Contents
FormPanel registerTab = new FormPanel();
registerTab.setTitle("Register");
registerTab.setFrame(true);
registerTab.setIconCls("tab-icon");
registerTab.setAutoScroll(true);
registerTab.setClosable(false);
registerTab.setAutoHeight(true);
registerTab.setPaddings(10);
registerTab.setWidth(300);
registerTab.setLabelWidth(75);
registerTab.setBorder(true);
FieldSet registerFieldSet = new FieldSet("Register");
TextField registerEmail = new TextField("Email", "email",
200);
registerEmail.setVtype(VType.EMAIL);
registerEmail.setAllowBlank(false);
registerFieldSet.add(registerEmail);
TextField registerPassword = new TextField("Password",
"password", 200);
password.setAllowBlank(false);
password.setPassword(true);
registerFieldSet.add(registerPassword);
TextField firstName = new TextField("First Name", "firstName",
200);
firstName.setAllowBlank(true);
registerFieldSet.add(firstName);
TextField lastName = new TextField("Last Name", "lastName",
200);
lastName.setAllowBlank(true);
registerFieldSet.add(lastName);
// add more register fields if you want to...
registerTab.add(registerFieldSet);
// Info Tab Contents
FormPanel infoTab = new FormPanel();
infoTab.setTitle("Title of Information Tab");
infoTab.setIconCls("tab-icon");
infoTab.setAutoScroll(true);
infoTab.setClosable(false);
infoTab.setFrame(true);
infoTab.setPaddings(10);
infoTab.setWidth(300);
infoTab.setAutoHeight(true);
registerTab.setBorder(true);
FieldSet infoSet = new FieldSet();
infoSet.setTitle("Information");
infoSet.add(new Label("There has to be an object in this tab
or else the tabs won't work properly."));
infoTab.add(infoSet);
// add all three tabs to the tab panel
tabPanel.add(signInTab);
tabPanel.add(registerTab);
tabPanel.add(infoTab);
//hide the panel when the tab is closed
tabPanel.addListener(new TabPanelListenerAdapter() {
public void onTabChange(TabPanel source, Panel tab) {
if (tab.getTitle().equals("Sign In")) {
signInBtn.show();
registerBtn.hide();
}
else if (tab.getTitle().equals("Register")) {
registerBtn.show();
signInBtn.hide();
}
else { // don't show these buttons if the info tab is
showing.
registerBtn.hide();
signInBtn.hide();
}
}
});
tabPanel.setLayoutOnTabChange(true);
tabPanel.setTitle("Sign In");
dialog.add(tabPanel);
Button button = new Button("Login / Register");
ButtonListenerAdapter listener = new ButtonListenerAdapter() {
public void onClick(Button button, EventObject e) {
dialog.show();
}
};
button.addListener(listener);
dialog.setAnimateTarget(button.getId());
Panel vp = new Panel();
vp.setPaddings(15);
vp.add(new HTML("<h1>Please login or register to begin.</
h1>"));
vp.add(button);
// vp.add(lblServerReply);
return vp;
}
Wendy