@SuppressWarnings("serial") @HibernateRead private void adminSwitchAuthorsTL(Button butt, final CardPlayHandler coroutine) { ArrayList<User> meLis = new ArrayList<User>(1); meLis.add(coroutine.author); User me = User.getTL(Mmowgli2UI.getGlobals().getUserID()); final AddAuthorDialog dial = new AddAuthorDialog(meLis, true); StringBuilder sb = new StringBuilder("As adminstrator, <b>"); sb.append(me.getUserName()); sb.append("</b>, you may choose another player to be card author."); dial.infoLabel.setValue(sb.toString()); dial.setCaption("Select Proxy Author"); dial.setMultiSelect(false); dial.cancelButt.setCaption("Use myself"); dial.addButt.setCaption("Use selected"); // Rearrange buttons, add real cancel butt. // ------------------- HorizontalLayout buttonHL = dial.getButtonHorizontalLayout(); Iterator<Component> itr = buttonHL.iterator(); Vector<Component> v = new Vector<Component>(); while (itr.hasNext()) { Component component = itr.next(); if (component instanceof Button) v.add(component); } buttonHL.removeAllComponents(); itr = v.iterator(); while (itr.hasNext()) { buttonHL.addComponent(itr.next()); } Label sp = null; buttonHL.addComponent(sp = new Label()); sp.setWidth("1px"); buttonHL.setExpandRatio(sp, 1.0f); Button cancelButt = null; buttonHL.addComponent(cancelButt = new Button("Cancel")); cancelButt.addClickListener( new ClickListener() { @Override public void buttonClick(ClickEvent event) { UI.getCurrent().removeWindow(dial); // dial.getParent().removeWindow(dial); coroutine.resetCoroutine(); } }); // ------------------- dial.selectItemAt(0); dial.addListener( new CloseListener() { @Override @MmowgliCodeEntry @HibernateOpened @HibernateClosed @HibernateUserRead public void windowClose(CloseEvent e) { HSess.init(); if (dial.addClicked) { Object o = dial.getSelected(); if (o instanceof User) { coroutine.author = (User) o; } else if (o instanceof QuickUser) { QuickUser qu = (QuickUser) o; coroutine.author = User.getTL(qu.id); } } coroutine.run(); // finish up HSess.close(); } }); UI.getCurrent().addWindow(dial); dial.center(); }
@HibernateSessionThreadLocalConstructor @SuppressWarnings("serial") public MapGameDesignPanel(GameDesignGlobals globs) { super(false, globs); Game g = Game.getTL(); TextArea titleTA; final Serializable uid = Mmowgli2UI.getGlobals().getUserID(); titleTA = (TextArea) addEditLine("Map Title", "Game.mapTitle", g, g.getId(), "MapTitle").ta; titleTA.setValue(g.getMapTitle()); titleTA.setRows(1); latTA = addEditLine("Map Initial Latitude", "Game.mmowgliMapLatitude"); boolean lastRO = latTA.isReadOnly(); latTA.setReadOnly(false); latTA.setValue("" + g.getMapLatitude()); latTA.setRows(1); latTA.setReadOnly(lastRO); latTA.addValueChangeListener( new Property.ValueChangeListener() { @Override @MmowgliCodeEntry @HibernateOpened @HibernateClosed public void valueChange(ValueChangeEvent event) { HSess.init(); try { String val = event.getProperty().getValue().toString(); double lat = Double.parseDouble(val); Game g = Game.getTL(); g.setMapLatitude(lat); Game.updateTL(); GameEventLogger.logGameDesignChangeTL("Map latitude", val, uid); } catch (Exception ex) { new Notification( "Parameter error", "<html>Check for proper decimal format.</br>New value not committed.", Notification.Type.WARNING_MESSAGE, true) .show(Page.getCurrent()); } HSess.close(); } }); lonTA = addEditLine("Map Initial Longitude", "Game.mmowgliMapLongitude"); lastRO = lonTA.isReadOnly(); lonTA.setReadOnly(false); lonTA.setValue("" + g.getMapLongitude()); lonTA.setRows(1); lonTA.setReadOnly(lastRO); lonTA.addValueChangeListener( new Property.ValueChangeListener() { @Override @MmowgliCodeEntry @HibernateOpened @HibernateClosed public void valueChange(ValueChangeEvent event) { // System.out.println("lon valueChange"); HSess.init(); try { String val = event.getProperty().getValue().toString(); double lon = Double.parseDouble(val); Game g = Game.getTL(); g.setMapLongitude(lon); Game.updateTL(); GameEventLogger.logGameDesignChangeTL("Map longitude", val, uid); } catch (Exception ex) { new Notification( "Parameter error", "<html>Check for proper decimal format.</br>New value not committed.", Notification.Type.WARNING_MESSAGE, true) .show(Page.getCurrent()); } HSess.close(); } }); zoomTA = addEditLine("Map Initial Zoom", "Game.mmowgliMapZoom"); lastRO = zoomTA.isReadOnly(); zoomTA.setReadOnly(false); zoomTA.setValue("" + g.getMapZoom()); zoomTA.setRows(1); zoomTA.setReadOnly(lastRO); zoomTA.addValueChangeListener( new Property.ValueChangeListener() { @Override @MmowgliCodeEntry @HibernateOpened @HibernateClosed public void valueChange(ValueChangeEvent event) { HSess.init(); try { String val = event.getProperty().getValue().toString(); int zoom = Integer.parseInt(val); Game g = Game.getTL(); g.setMapZoom(zoom); Game.updateTL(); GameEventLogger.logGameDesignChangeTL("Map zoom", val, uid); } catch (Exception ex) { new Notification( "Parameter error", "Check for proper integer format.</br>New value not committed.", Notification.Type.WARNING_MESSAGE, true) .show(Page.getCurrent()); } HSess.close(); } }); Button b; this.addComponentLine( b = new Button("Set to generic Mmowgli Map Defaults", new MapDefaultSetter())); b.setEnabled(!globs.readOnlyCheck(false)); }