public TrophyDetail(Trophy trophy) { setCellSpacing(0); setCellPadding(0); setStyleName("trophyDetail"); if (trophy != null) { setWidget( 0, 0, MediaUtil.createMediaView(trophy.trophyMedia, MediaDescSize.THUMBNAIL_SIZE)); setText(0, 1, trophy.name); if (trophy.description == null) { setText(1, 0, _msgs.gameTrophySecret()); getFlexCellFormatter().setStyleName(1, 0, "Italic"); } else { setText(1, 0, trophy.description); } if (trophy.whenEarned != null) { Date date = new Date(trophy.whenEarned.longValue()); setText(2, 0, _msgs.gameTrophyEarnedOn(DateUtil.formatDate(date, false))); getFlexCellFormatter().setStyleName(2, 0, "Earned"); } } getFlexCellFormatter().setStyleName(0, 0, "Image"); getFlexCellFormatter().setStyleName(0, 1, "Name"); getFlexCellFormatter().setVerticalAlignment(1, 0, HasAlignment.ALIGN_TOP); getFlexCellFormatter().setRowSpan(0, 0, getRowCount()); }
protected void displaySearchResults(final List<VizMemberName> members) { if (_medals == null) { // we need _medals to be valid before we can proceed with this operation. _medalsValidCommand = new Command() { public void execute() { displaySearchResults(members); } }; return; } if (members.size() == 0) { MsoyUI.info(_msgs.awardMedalsNoMembersFound()); return; } for (final VizMemberName member : members) { HorizontalPanel row = new HorizontalPanel(); row.setSpacing(10); row.add(MediaUtil.createMediaView(member.getPhoto(), MediaDescSize.HALF_THUMBNAIL_SIZE)); row.add(Link.create(member.toString(), Pages.PEOPLE, "" + member.getId())); // TODO: this will be really inefficient for groups that have a ton of Medals. This // UI should contain only one drop down if at all possible. final ListBox awardDrop = createDropDown(); row.add(awardDrop); row.add( new Button( _msgs.awardMedalsAward(), new ClickHandler() { public void onClick(ClickEvent event) { int selected = Math.max(0, awardDrop.getSelectedIndex()); Medal medal = awardDrop.getItemCount() < 0 ? null : _medalMap.get(awardDrop.getValue(selected)); grantMedal(member, medal); } })); add(row); } }