List of usage examples for com.vaadin.ui Window setModal
public void setModal(boolean modal)
From source file:edu.nps.moves.mmowgli.AbstractMmowgliControllerHelper.java
License:Open Source License
public void handleShowTotalRegisteredTL(MenuBar mbar) { Criteria criteria = HSess.get().createCriteria(User.class); criteria.setProjection(Projections.rowCount()); criteria.add(Restrictions.eq("accountDisabled", false)); int count = ((Long) criteria.list().get(0)).intValue(); criteria.add(Restrictions.eq("gameMaster", true)); int gmCount = ((Long) criteria.list().get(0)).intValue(); Criteria adminCrit = HSess.get().createCriteria(User.class); adminCrit.setProjection(Projections.rowCount()); adminCrit.add(Restrictions.eq("accountDisabled", false)); adminCrit.add(Restrictions.eq("administrator", true)); int adminCount = ((Long) adminCrit.list().get(0)).intValue(); // Create the window... Window countWin = new Window("Display Registered User Counts"); countWin.setModal(true); VerticalLayout layout = new VerticalLayout(); layout.setMargin(true);/*from ww w.ja v a 2s. c o m*/ layout.setSpacing(true); layout.setWidth("99%"); countWin.setContent(layout); layout.addComponent(makeHL("Number of registered players:", count)); layout.addComponent(makeHL("Number of registered game masters:", gmCount)); layout.addComponent(makeHL("Number of registered game administrators:", adminCount)); layout.addComponent(makeHL("Total, excluding disabled accounts:", count + gmCount + adminCount)); countWin.setWidth("415px"); UI.getCurrent().addWindow(countWin); countWin.center(); }
From source file:edu.nps.moves.mmowgli.AbstractMmowgliControllerHelper.java
License:Open Source License
public void handleLoginLimitActionTL() { // Create the window... final Window loginWin = new Window("Change Session Login Limit"); loginWin.setModal(true); VerticalLayout layout = new VerticalLayout(); loginWin.setContent(layout);/*from ww w . ja va 2s .com*/ layout.setMargin(true); layout.setSpacing(true); layout.setWidth("99%"); HorizontalLayout hl = new HorizontalLayout(); hl.setSpacing(true); hl.addComponent(new Label("Max users to be logged in")); final TextField utf = new TextField(); utf.setColumns(10); final int oldVal = Game.getTL().getMaxUsersOnline(); utf.setValue("" + oldVal); hl.addComponent(utf); layout.addComponent(hl); HorizontalLayout buttHl = new HorizontalLayout(); // LLListener llis = new LLListener(loginWin); final Button cancelButt = new Button("Cancel"); buttHl.addComponent(cancelButt); final Button okButt = new Button("Save"); buttHl.addComponent(okButt); layout.addComponent(buttHl); layout.setComponentAlignment(buttHl, Alignment.TOP_RIGHT); layout.addComponent(new Label("Use with great deliberation!")); loginWin.setWidth("320px"); UI.getCurrent().addWindow(loginWin); loginWin.center(); @SuppressWarnings("serial") ClickListener llis = new ClickListener() { @Override public void buttonClick(ClickEvent event) { if (event.getButton() == cancelButt) { } else if (event.getButton() == okButt) { HSess.init(); try { int i = Integer.parseInt(utf.getValue().toString()); Game g = Game.getTL(); g.setMaxUsersOnline(i); Game.updateTL(); GameEventLogger.logLoginLimitChangeTL(oldVal, i); } catch (Throwable t) { Notification.show("Error", "Invalid integer", Notification.Type.ERROR_MESSAGE); HSess.close(); return; } HSess.close(); } loginWin.close(); } }; cancelButt.addClickListener(llis); okButt.addClickListener(llis); }
From source file:edu.nps.moves.mmowgli.AbstractMmowgliControllerHelper.java
License:Open Source License
public void handleDumpEmailsTL() { final TextField tf; final Window dialog = new Window("Filter Player Email Dump"); dialog.setModal(true); VerticalLayout layout = new VerticalLayout(); dialog.setContent(layout);/*from www .j a v a 2s . com*/ layout.setMargin(true); layout.setSpacing(true); final OptionGroup radios = new OptionGroup(null, Arrays.asList(opts)); layout.addComponent(radios); layout.addComponent(tf = new MTextField().withWidth("50%")); tf.setCaption("value"); Label lab; layout.addComponent(lab = new Label()); lab.setHeight("10px"); radios.setNullSelectionAllowed(false); // user can not 'unselect' radios.select(allp); // select this by default radios.setImmediate(false); // don't send the change to the server at once radios.setMultiSelect(false); HorizontalLayout hl = new HorizontalLayout(); hl.setSpacing(true); @SuppressWarnings("serial") Button cancelButt = new Button("Cancel", new Button.ClickListener() { public void buttonClick(ClickEvent event) { dialog.close(); } }); @SuppressWarnings("serial") Button addButt = new Button("Dump", new Button.ClickListener() { public void buttonClick(ClickEvent event) { Float val = null; String valS = ""; boolean parseError = false; try { val = Float.parseFloat(tf.getValue()); valS = formatter.valueToString(val); } catch (Exception ex) { parseError = true; } HSess.init(); Object sel = radios.getValue(); Criteria crit = null; String windowTitle = ""; boolean isExpl = true; if (sel == allp) { crit = HSess.get().createCriteria(User.class); windowTitle = new String("All users"); isExpl = true; if (parseError) { Notification.show("Value ignored", Notification.Type.WARNING_MESSAGE); System.out.println("Tried to show a Notification"); } } else if (sel == grex) { crit = getExplorationGreaterThanTL(val); windowTitle = "Users with exploration points greater than " + valS; isExpl = true; } else if (sel == lsex) { crit = getExplorationLessThanTL(val); windowTitle = "Users with exploration points less than " + valS; isExpl = true; } else if (sel == grim) { crit = getImplementationGreaterThanTL(val); windowTitle = "Users with implementation points greater than " + valS; isExpl = false; } else if (sel == lsim) { crit = getImplementationLessThanTL(val); windowTitle = "Users with implementation points less than " + valS; isExpl = false; } if (crit != null) { @SuppressWarnings("unchecked") List<User> lis = (List<User>) crit.list(); StringBuilder sb = new StringBuilder(); handleEmailListNoHeader(lis, sb, isExpl); String title = windowTitle + " - " + UUID.randomUUID(); BrowserWindowOpener.openWithInnerHTML(sb.toString(), title, "_blank"); } else { Notification.show("Invalid value", Notification.Type.ERROR_MESSAGE); HSess.close(); return; } dialog.close(); HSess.close(); } }); hl.addComponent(cancelButt); hl.addComponent(addButt); hl.setComponentAlignment(cancelButt, Alignment.MIDDLE_RIGHT); hl.setExpandRatio(cancelButt, 1.0f); layout.addComponent(hl); hl.setWidth("100%"); layout.addComponent(lab = new Label()); layout.setExpandRatio(lab, 1.0f); UI.getCurrent().addWindow(dialog); dialog.center(); }
From source file:edu.nps.moves.mmowgli.export.BaseExporter.java
License:Open Source License
protected void getMetaStringOrCancel(final MetaListener lis, String title, final Map<String, String> params) { final Window dialog = new Window(title); final TextField[] parameterFields; dialog.setModal(true); VerticalLayout layout = new VerticalLayout(); layout.setMargin(true);// www .j a v a 2 s. c om layout.setSpacing(true); layout.setSizeFull(); dialog.setContent(layout); final TextArea ta = new TextArea(); ta.setWidth("100%"); ta.setInputPrompt("Type a description of this data, or the game which generated this data (optional)"); ta.setImmediate(true); layout.addComponent(ta); Set<String> keySet = params.keySet(); parameterFields = new TextField[keySet.size()]; int i = 0; GridLayout pGL = new GridLayout(); pGL.addStyleName("m-greyborder"); pGL.setColumns(2); Label hdr = new HtmlLabel("<b>Parameters</b>"); hdr.addStyleName("m-textaligncenter"); pGL.addComponent(hdr, 0, 0, 1, 0); // top row pGL.setComponentAlignment(hdr, Alignment.MIDDLE_CENTER); pGL.setSpacing(false); for (String key : keySet) { pGL.addComponent(new HtmlLabel(" " + key + " ")); pGL.addComponent(parameterFields[i] = new TextField()); parameterFields[i++].setValue(params.get(key)); } if (i > 0) { layout.addComponent(pGL); layout.setComponentAlignment(pGL, Alignment.TOP_CENTER); } HorizontalLayout hl = new HorizontalLayout(); hl.setSpacing(true); @SuppressWarnings("serial") Button cancelButt = new Button("Cancel", new Button.ClickListener() { public void buttonClick(ClickEvent event) { dialog.close(); lis.continueOrCancel(null); } }); @SuppressWarnings("serial") Button exportButt = new Button("Export", new Button.ClickListener() { public void buttonClick(ClickEvent event) { dialog.close(); Set<String> keySet = params.keySet(); int i = 0; for (String key : keySet) params.put(key, parameterFields[i++].getValue().toString()); lis.continueOrCancel(ta.getValue().toString()); } }); hl.addComponent(cancelButt); hl.addComponent(exportButt); hl.setComponentAlignment(cancelButt, Alignment.MIDDLE_RIGHT); hl.setExpandRatio(cancelButt, 1.0f); // The components added to the window are actually added to the window's // layout; you can use either. Alignments are set using the layout layout.addComponent(hl); dialog.setWidth("385px"); dialog.setHeight("310px"); hl.setWidth("100%"); ta.setWidth("100%"); ta.setHeight("100%"); layout.setExpandRatio(ta, 1.0f); UI.getCurrent().addWindow(dialog); }
From source file:edu.nps.moves.mmowgli.MmowgliMessageBroadcaster.java
License:Open Source License
private static void _postGameEvent(String title, final GameEvent.EventType typ, String buttName, boolean doWarning) { // Create the window... final Window bcastWindow = new Window(title); bcastWindow.setModal(true); VerticalLayout layout = new VerticalLayout(); bcastWindow.setContent(layout);/*from w w w . j a va2 s.co m*/ layout.setMargin(true); layout.setSpacing(true); layout.setWidth("99%"); layout.addComponent(new Label("Compose message (255 char limit):")); final TextArea ta = new TextArea(); ta.setRows(5); ta.setWidth("99%"); layout.addComponent(ta); HorizontalLayout buttHl = new HorizontalLayout(); final Button bcancelButt = new Button("Cancel"); buttHl.addComponent(bcancelButt); Button bokButt = new Button(buttName); buttHl.addComponent(bokButt); layout.addComponent(buttHl); layout.setComponentAlignment(buttHl, Alignment.TOP_RIGHT); if (doWarning) layout.addComponent(new Label("Use with great deliberation!")); bcastWindow.setWidth("320px"); UI.getCurrent().addWindow(bcastWindow); bcastWindow.setPositionX(0); bcastWindow.setPositionY(0); ta.focus(); @SuppressWarnings("serial") ClickListener lis = new ClickListener() { @Override @MmowgliCodeEntry @HibernateOpened @HibernateClosed @HibernateUserRead public void buttonClick(ClickEvent event) { if (event.getButton() == bcancelButt) ; // nothin else { // This check is now done in GameEvent.java, but should ideally prompt the user. HSess.init(); String msg = ta.getValue().toString().trim(); if (msg.length() > 0) { if (msg.length() > 255) // clamp to 255 to avoid db exception msg = msg.substring(0, 254); Serializable uid = Mmowgli2UI.getGlobals().getUserID(); User u = User.getTL(uid); if (typ == GameEvent.EventType.GAMEMASTERNOTE) GameEventLogger.logGameMasterCommentTL(msg, u); else GameEventLogger.logGameMasterBroadcastTL(typ, msg, u); // GameEvent.save(new GameEvent(typ,msg)); HSess.close(); } } bcastWindow.close(); } }; bcancelButt.addClickListener(lis); bokButt.addClickListener(lis); }
From source file:edu.nps.moves.mmowgli.modules.gamemaster.UserAdminPanel.java
License:Open Source License
@SuppressWarnings("serial") Table createTable(TableFiller filler) {/* w ww. ja v a2 s . c om*/ final Table tab = new Table(); tab.setStyleName("m-useradmintable"); tab.setWidth("920px"); tab.setHeight("100%"); tab.setPageLength(40); // Special column renderers Table.ColumnGenerator colGen = new columnCustomizer(); tab.addGeneratedColumn(USER_ID_COL, colGen); tab.addGeneratedColumn(ADMIN_COL, colGen); tab.addGeneratedColumn(DESIGNER_COL, colGen); tab.addGeneratedColumn(LOCKEDOUT_COL, colGen); tab.addGeneratedColumn(TWEETER_COL, colGen); tab.addGeneratedColumn(GAMEMASTER_COL, colGen); tab.addGeneratedColumn(EMAIL_COL, colGen); tab.addGeneratedColumn(CONFIRMED_COL, colGen); filler.fillTable(tab); tab.setColumnWidth(USER_ID_COL, 25); tab.setColumnWidth(ADMIN_COL, 25); tab.setColumnWidth(GAMEMASTER_COL, 25); tab.setColumnWidth(DESIGNER_COL, 25); tab.setColumnWidth(LOCKEDOUT_COL, 43); tab.setColumnWidth(TWEETER_COL, 50); tab.setColumnWidth(UNAME_COL, 120); tab.setColumnWidth(FIRSTNAME_COL, 108); //128); tab.setColumnWidth(LASTNAME_COL, 108); //128); tab.setColumnWidth(EMAIL_COL, 190); tab.setColumnWidth(CONFIRMED_COL, 67); tab.setEditable(false); tab.setSelectable(true); tab.setImmediate(true); // to immed update view tab.setNullSelectionAllowed(false); // can't deselect a row tab.addItemClickListener(new ItemClickListener() { EditPanel ep; @Override @MmowgliCodeEntry @HibernateOpened @HibernateClosed @HibernateUserRead public void itemClick(ItemClickEvent event) { if (event.isDoubleClick()) { HSess.init(); Window w = new Window("Edit Player Account"); w.setWidth("620px"); w.setHeight("505px"); w.setModal(true); @SuppressWarnings({ "unchecked" }) final QuickUser qu = (QuickUser) ((BeanItem<QuickUser>) event.getItem()).getBean(); User u = User.getTL(qu.getId()); if (u == null) { // This has been happening infrequently...some error on signup where (maybe) a user object gets created // but doesn't make it into the db. Notification.show("Woops, database error!", "A player account identified by id = " + qu.getId() + " is not in the database.", Notification.Type.ERROR_MESSAGE); HSess.close(); return; } VerticalLayout vl = new VerticalLayout(); w.setContent(vl); vl.addComponent(ep = new EditPanel(w, qu.getId())); ep.setWidth("100%"); UI.getCurrent().addWindow(w); w.center(); w.addCloseListener(new CloseListener() { @Override public void windowClose(CloseEvent e) { if (ep.user != null) { BeanItem<QuickUser> bi = lastTableFiller.getContainer().getItem(ep.user.getId()); QuickUser qu = bi.getBean(); qu.update(ep.user); tab.refreshRowCache(); } } }); HSess.close(); } } }); return tab; }
From source file:edu.nps.moves.mmowgli.modules.registrationlogin.PasswordResetPopup.java
License:Open Source License
private void makeResetAnnounceDialogTL_5(String email, ArrayList<User> aLis) { UI myUI = getUI();//from w w w . j a v a2 s.c o m myUI.removeWindow(PasswordResetPopup.this); final Window resetAnnounceDialog = new Window("Password Reset Announcement"); resetAnnounceDialog.setModal(true); resetAnnounceDialog.setClosable(false); VerticalLayout vLay = new VerticalLayout(); resetAnnounceDialog.setContent(vLay); vLay.setMargin(true); vLay.setSpacing(true); vLay.setSizeUndefined(); vLay.setWidth("400px"); Label message = new HtmlLabel("An email has been sent to <b>" + email + "</b>."); vLay.addComponent(message); message = new Label( "Follow the link in the message to confirm your password reset request to enable login to your mmowgli player account."); vLay.addComponent(message); message = new Label( "Please be advised that you will only have three hours to complete this process, after which time " + "you will have to re-initiate a new password reset process from the game login page."); vLay.addComponent(message); message = new HtmlLabel( "Now, press <b>Homepage -- Return to login</b> after receiving a reset request confirmation email."); vLay.addComponent(message); @SuppressWarnings("serial") Button laterButt = new Button("Homepage -- Return to login", new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent event) { HSess.init(); Mmowgli2UI.getAppUI().quitAndGoTo(GameLinks.getTL().getGameHomeUrl()); HSess.close(); } }); vLay.addComponent(laterButt); @SuppressWarnings("serial") Button troubleButt = new Button("Send trouble report", new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent event) { HSess.init(); Mmowgli2UI.getAppUI().quitAndGoTo(GameLinks.getTL().getTroubleLink()); HSess.close(); } }); vLay.addComponent(troubleButt); myUI.addWindow(resetAnnounceDialog); resetAnnounceDialog.center(); // This process generates unique uId for th3 reset process that will // need to be confirmed once the user receives a confirmation email and // click on the link containing the uId Iterator<User> itr = aLis.iterator(); // sends email to all user accounts (which are at the same email address) // if a game name was entered, only that account receives the email while (itr.hasNext()) { User usr = itr.next(); PasswordReset pr = new PasswordReset(usr); PasswordReset.saveTL(pr); String confirmUrl = buildConfirmUrl(pr); AppMaster.instance().getMailManager().sendPasswordResetEmailTL(email, usr.getUserName(), confirmUrl); } }
From source file:edu.nps.moves.mmowgli.modules.registrationlogin.RegistrationPageBase.java
License:Open Source License
@SuppressWarnings("serial") public static void openPopupWindow(final UI browserWindow, Window popup, int topOffset) { popup.setModal(true); browserWindow.addWindow(popup);//ww w. j ava 2 s .com popup.center(); browserWindow.setScrollTop(topOffset); popup.addCloseListener(new CloseListener() { @Override public void windowClose(CloseEvent e) { browserWindow.setScrollTop(0); } }); }
From source file:edu.nps.moves.mmowgli.modules.registrationlogin.RegistrationPageBase.java
License:Open Source License
@SuppressWarnings("serial") private void wereInTL(User _usr) { Game g = Game.getTL();/* www . j a va 2s. c o m*/ if (!g.isEmailConfirmation()/* && !g.isSMSConfirmation()*/) { _usr.setEmailConfirmed(true); // confirmation didn't happen, but they want to login wereInReallyTL(_usr); // will do update } /* else if(g.isSMSConfirmation()) { // if both are selected, only sms is done } */ else { List<String> sLis = VHibPii.getUserPiiEmails(_usr.getId()); String email = sLis.get(0); final Window emailDialog = new Window("Email Confirmation"); emailDialog.setModal(true); emailDialog.setClosable(false); VerticalLayout vLay = new VerticalLayout(); emailDialog.setContent(vLay); vLay.setMargin(true); vLay.setSpacing(true); vLay.setSizeUndefined(); vLay.setWidth("400px"); Label message = new HtmlLabel("A confirmation email has been sent to <b>" + email + "</b>."); vLay.addComponent(message); message = new Label("Follow the link in the message " + "to confirm your registration and unlock your mmowgli user account."); vLay.addComponent(message); message = new HtmlLabel("Press the <b>Am I confirmed yet?</b> button " + "to play if ready."); vLay.addComponent(message); message = new HtmlLabel( "Alternatively, press <b>Quit -- I'll come back later</b> to login at a future time."); vLay.addComponent(message); GridLayout grid = new GridLayout(); vLay.addComponent(grid); MSysOut.println(NEWUSER_CREATION_LOGS, "email confirmation dialog displayed, user " + _usr.getUserName()); final Button contButt = new Button("Am I confirmed yet?", new ClickListener() { boolean confirmed = false; @Override @HibernateUpdate @HibernateUserUpdate public void buttonClick(ClickEvent event) { MSysOut.println(DEBUG_LOGS, "\"Am I confirmed?\" button handler entered"); HSess.init(); User u = User.getTL(userId); MSysOut.println(NEWUSER_CREATION_LOGS, "\"Am I confirmed?\" clicked, user " + u.getUserName()); if (confirmed) { closePopup(emailDialog); wereInReallyTL(u); // @HibernateUserUpdate //@HibernateUserRead MSysOut.println(NEWUSER_CREATION_LOGS, "\"Am I confirmed?\", positive confirmation, user " + u.getUserName()); } else { MSysOut.println(DEBUG_LOGS, "User.getTL() in RegistrationPageBase.wereInTL()"); //User locUsr = User.getTL(userId); why necessary? //if(locUsr.isEmailConfirmed()) { if (u.isEmailConfirmed()) { confirmed = true; event.getButton().setCaption("I'm ready to play mmowgli!"); } else { MSysOut.println(NEWUSER_CREATION_LOGS, "\"Am I confirmed?\", negative confirmation, user " + u.getUserName()); Notification.show("Your email is not yet confirmed"); } } HSess.close(); } }); grid.addComponent(contButt); contButt.setImmediate(true); Button laterButt = new Button("Quit -- I'll come back later", new ClickListener() { @Override public void buttonClick(ClickEvent event) { MSysOut.println(DEBUG_LOGS, "\"Quit -- I'll come back later\" button handler entered"); HSess.init(); Mmowgli2UI.getAppUI().quitAndGoTo(GameLinks.getTL().getThanksForInterestLink()); HSess.close(); } }); grid.addComponent(laterButt); Button troubleButt = new Button("Send trouble report", new ClickListener() { @Override @MmowgliCodeEntry @HibernateOpened @HibernateClosed public void buttonClick(ClickEvent event) // no need for HSess { MSysOut.println(DEBUG_LOGS, "\"Send trouble report\" button handler entered"); HSess.init(); Mmowgli2UI.getAppUI().quitAndGoTo(GameLinks.getTL().getTroubleLink()); HSess.close(); } }); grid.addComponent(troubleButt); openPopupWindowInMainWindow(emailDialog, 500); EmailConfirmation ec = new EmailConfirmation(_usr); EmailConfirmation.saveTL(ec); String confirmUrl = buildConfirmUrl(ec); AppMaster.instance().getMailManager().sendEmailConfirmationTL(email, _usr.getUserName(), confirmUrl); } // else weren't confirmed }
From source file:edu.nps.moves.mmowgli.modules.registrationlogin.RegistrationPageBase.java
License:Open Source License
@SuppressWarnings("serial") @HibernateUserRead// ww w . j a v a 2 s .co m public void checkUserLimitsTL() { Serializable uid = Mmowgli2UI.getGlobals().getUserID(); if (uid != NO_LOGGEDIN_USER_ID) { // can't do this check if we don't have a user yet MSysOut.println(DEBUG_LOGS, "User.getTL() in RegistrationPageBase.checkUserLimitsTL()"); User u = User.getTL(uid); if (u != null) // why should it be? if (u.getUserName() != null) // why should it be? if (u.isGameMaster())//getUserName().toLowerCase().startsWith("gm_")) return; } int maxIn = Game.getTL().getMaxUsersOnline(); // List<User> lis = (List<User>)HibernateContainers.getSession().createCriteria(User.class).add(Restrictions.eq("online", true)).list(); // if(lis.size()>=maxIn) { if (Mmowgli2UI.getGlobals().getSessionCount() >= maxIn) { // new improved lockedOut = true; VerticalLayout vl = new VerticalLayout(); vl.setWidth("325px"); vl.addStyleName("m-errorNotificationEquivalent"); vl.setSpacing(false); vl.setMargin(true); Label lab = new Label("We're loaded to the max with players right now."); lab.setSizeUndefined(); vl.addComponent(lab); lab = new Label("Idle players are timed-out after 15 minutes."); lab.setSizeUndefined(); vl.addComponent(lab); lab = new Label("Please try again later."); lab.setSizeUndefined(); vl.addComponent(lab); Window win = new Window("Sorry, but...."); win.setSizeUndefined(); win.addStyleName("m-transparent"); win.setWidth("308px"); win.setResizable(false); win.setContent(vl); openPopupWindowInMainWindow(win, 400); win.setModal(false); win.addCloseListener(new CloseListener() { @Override @MmowgliCodeEntry @HibernateOpened @HibernateClosed public void windowClose(CloseEvent e) { HSess.init(); Mmowgli2UI.getAppUI().quitAndGoTo(GameLinks.getTL().getGameFullLink()); HSess.close(); } }); } }