List of usage examples for org.apache.wicket.request.resource ByteArrayResource ByteArrayResource
public ByteArrayResource(final String contentType, final byte[] array)
From source file:com.evolveum.midpoint.web.component.FocusSummaryPanel.java
License:Apache License
@Override protected IModel<AbstractResource> getPhotoModel() { return new AbstractReadOnlyModel<AbstractResource>() { private static final long serialVersionUID = 1L; @Override// w ww .jav a 2s.c om public AbstractResource getObject() { byte[] jpegPhoto = null; O object = getModel().getObject(); if (object instanceof FocusType) { jpegPhoto = ((FocusType) object).getJpegPhoto(); } if (jpegPhoto == null) { return null; } else { return new ByteArrayResource("image/jpeg", jpegPhoto); } } }; }
From source file:com.evolveum.midpoint.web.component.menu.UserMenuPanel.java
License:Apache License
private void initLayout() { WebMarkupContainer iconBox = new WebMarkupContainer(ID_ICON_BOX); add(iconBox);/*from ww w .ja v a2 s. co m*/ NonCachingImage img = new NonCachingImage(ID_PHOTO, new AbstractReadOnlyModel<AbstractResource>() { @Override public AbstractResource getObject() { if (jpegPhoto == null) { return null; } else { return new ByteArrayResource("image/jpeg", jpegPhoto); } } }); img.add(new VisibleEnableBehaviour() { @Override public boolean isVisible() { if (userModel != null && userModel.getObject() == null) { loadModel(null); } return jpegPhoto != null; } }); iconBox.add(img); ContextImage icon = new ContextImage(ID_ICON, "img/placeholder.png"); icon.add(new VisibleEnableBehaviour() { @Override public boolean isVisible() { if (userModel != null && userModel.getObject() == null) { loadModel(null); } return jpegPhoto == null; } }); iconBox.add(icon); Label usernameLink = new Label(ID_USERNAME_LINK, new AbstractReadOnlyModel<String>() { @Override public String getObject() { return getShortUserName(); } }); add(usernameLink); WebMarkupContainer panelIconBox = new WebMarkupContainer(ID_PANEL_ICON_BOX); add(panelIconBox); NonCachingImage panelImg = new NonCachingImage(ID_PANEL_PHOTO, new AbstractReadOnlyModel<AbstractResource>() { @Override public AbstractResource getObject() { if (jpegPhoto == null) { return null; } else { return new ByteArrayResource("image/jpeg", jpegPhoto); } } }); panelImg.add(new VisibleEnableBehaviour() { @Override public boolean isVisible() { if (userModel != null && userModel.getObject() == null) { loadModel(null); } return jpegPhoto != null; } }); panelIconBox.add(panelImg); ContextImage panelIcon = new ContextImage(ID_PANEL_ICON, "img/placeholder.png"); panelIcon.add(new VisibleEnableBehaviour() { @Override public boolean isVisible() { if (userModel != null && userModel.getObject() == null) { loadModel(null); } return jpegPhoto == null; } }); panelIconBox.add(panelIcon); Label username = new Label(ID_USERNAME, new AbstractReadOnlyModel<String>() { @Override public String getObject() { return getShortUserName(); } }); username.setRenderBodyOnly(true); add(username); ExternalLink logoutLink = new ExternalLink(ID_LOGOUT_LINK, new Model<>(RequestCycle.get().getRequest().getContextPath() + "/j_spring_security_logout"), createStringResource("UserMenuPanel.logout")); add(logoutLink); AjaxButton editPasswordQ = new AjaxButton(ID_PASSWORD_QUESTIONS, createStringResource("UserMenuPanel.editPasswordQuestions")) { @Override public void onClick(AjaxRequestTarget target) { PageMyPasswordQuestions myPasswordQuestions = new PageMyPasswordQuestions( passwordQuestionsDtoIModel); setResponsePage(myPasswordQuestions); } }; add(editPasswordQ); if (!isPasswordModelLoaded) { passwordQuestionsDtoIModel = new LoadableModel<PasswordQuestionsDto>(false) { private static final long serialVersionUID = 1L; @Override protected PasswordQuestionsDto load() { return loadModel(null); } }; isPasswordModelLoaded = true; } securityPolicyQuestionsModel = new LoadableModel<List<SecurityQuestionDefinitionType>>(false) { @Override protected List<SecurityQuestionDefinitionType> load() { return loadSecurityPloicyQuestionsModel(); } }; editPasswordQ.add(new VisibleEnableBehaviour() { @Override public boolean isVisible() { if (securityPolicyQuestionsModel == null || securityPolicyQuestionsModel.getObject() == null) { loadSecurityPloicyQuestionsModel(); } return hasQuestions() || (securityPolicyQuestionsModel.getObject() != null && securityPolicyQuestionsModel.getObject().size() > 0); } }); }
From source file:com.evolveum.midpoint.web.page.admin.resources.PageResourceVisualizationCytoscape.java
License:Apache License
private void initLayout(PrismObject<ResourceType> resourceObject) { retrievalBehavior = new AbstractAjaxBehavior() { @Override/*from w w w. jav a 2 s.c o m*/ public void onRequest() { System.out.println("retrieve CS data: starting"); RequestCycle requestCycle = getRequestCycle(); requestCycle.scheduleRequestHandlerAfterCurrent(null); MidPointApplication app = (MidPointApplication) MidPointApplication.get(); TaskManager taskManager = app.getTaskManager(); Task task = taskManager.createTaskInstance(PageResourceVisualizationCytoscape.class + ".onRequest"); String jsonData; try { jsonData = app.getModelDiagnosticService().exportDataModel(resourceObject.asObjectable(), DataModelVisualizer.Target.CYTOSCAPE, task, task.getResult()); System.out.println("JSON Cytoscape Data:\n" + jsonData); } catch (CommonException | RuntimeException e) { LoggingUtils.logUnexpectedException(LOGGER, "Couldn't visualize resource {}", e, resourceObject); jsonData = "{\"nodes\":[], \"edges\":[]}"; // TODO better error handling } IResource jsonResource = new ByteArrayResource("application/json", jsonData.getBytes()); IRequestHandler requestHandler = new ResourceRequestHandler(jsonResource, null); requestHandler.respond(requestCycle); System.out.println("retrieve CS data: response written"); } }; add(retrievalBehavior); deletionBehavior = new AbstractAjaxBehavior() { @Override public void onRequest() { System.out.println("deleteAttribute: starting"); RequestCycle requestCycle = getRequestCycle(); requestCycle.scheduleRequestHandlerAfterCurrent(null); MidPointApplication app = (MidPointApplication) MidPointApplication.get(); TaskManager taskManager = app.getTaskManager(); Task task = taskManager.createTaskInstance(PageResourceVisualizationCytoscape.class + ".onRequest"); try { IRequestParameters parameters = requestCycle.getRequest().getQueryParameters(); String resourceOid = parameters.getParameterValue("resourceOid").toString(); String kind = parameters.getParameterValue("kind").toString(); String intent = parameters.getParameterValue("intent").toString(); String objectClass = parameters.getParameterValue("objectClass").toString(); String attributeName = parameters.getParameterValue("attributeName").toString(); System.out.println("ResourceOid: " + resourceOid + ", kind: " + kind + ", intent: " + intent + ", objectClass: " + objectClass + ", attributeName: " + attributeName); } catch (RuntimeException e) { LoggingUtils.logUnexpectedException(LOGGER, "Couldn't delete attribute", e); } IResource resource = new ByteArrayResource("text/plain", "OK".getBytes()); IRequestHandler requestHandler = new ResourceRequestHandler(resource, null); requestHandler.respond(requestCycle); System.out.println("deleteAttribute: finished"); } }; add(deletionBehavior); }
From source file:com.evolveum.midpoint.web.page.admin.users.PageUser.java
License:Apache License
private void initSummaryInfo(Form mainForm) { WebMarkupContainer summaryContainer = new WebMarkupContainer(ID_SUMMARY_PANEL); summaryContainer.setOutputMarkupId(true); summaryContainer.add(new VisibleEnableBehaviour() { @Override/*w w w .j ava 2 s . c o m*/ public boolean isVisible() { if (getPageParameters().get(OnePageParameterEncoder.PARAMETER).isEmpty()) { return false; } else { return true; } } }); mainForm.add(summaryContainer); summaryUser = new AbstractReadOnlyModel<PrismObject<UserType>>() { @Override public PrismObject<UserType> getObject() { ObjectWrapper user = userModel.getObject(); return user.getObject(); } }; summaryContainer .add(new Label(ID_SUMMARY_NAME, new PrismPropertyModel<UserType>(summaryUser, UserType.F_NAME))); summaryContainer.add(new Label(ID_SUMMARY_FULL_NAME, new PrismPropertyModel<UserType>(summaryUser, UserType.F_FULL_NAME))); summaryContainer.add(new Label(ID_SUMMARY_GIVEN_NAME, new PrismPropertyModel<UserType>(summaryUser, UserType.F_GIVEN_NAME))); summaryContainer.add(new Label(ID_SUMMARY_FAMILY_NAME, new PrismPropertyModel<UserType>(summaryUser, UserType.F_FAMILY_NAME))); Image img = new Image(ID_SUMMARY_PHOTO, new AbstractReadOnlyModel<AbstractResource>() { @Override public AbstractResource getObject() { if (summaryUser.getObject().asObjectable().getJpegPhoto() != null) { return new ByteArrayResource("image/jpeg", summaryUser.getObject().asObjectable().getJpegPhoto()); } else { return new ContextRelativeResource("img/placeholder.png"); } } }); summaryContainer.add(img); }
From source file:com.tysanclan.site.projectewok.components.AchievementsPanel.java
License:Open Source License
public AchievementsPanel(String id, User user) { super(id);/*from w w w.j av a2 s . c om*/ List<Achievement> achievements = new LinkedList<Achievement>(); achievements.addAll(user.getAchievements()); Collections.sort(achievements, AchievementComparator.INSTANCE); add(new ListView<Achievement>("achievements", ModelMaker.wrap(achievements)) { private static final long serialVersionUID = 1L; @Override protected void populateItem(final ListItem<Achievement> item) { Achievement a = item.getModelObject(); AchievementIcon icon = a.getIcon(); item.add(new Image("achievement", new ByteArrayResource(ImageUtil.getMimeType(icon.getImage()), icon.getImage()))); item.add(new Label("name", a.getName())); item.add(new Label("group", a.getGroup() != null ? a.getGroup().getName() : "")); Game game = a.getGame(); byte[] gameImage = game != null ? game.getImage() : new byte[0]; item.add(new Image("game", new ByteArrayResource(ImageUtil.getMimeType(gameImage), gameImage)) .setVisible(game != null)); item.add(new BBCodePanel("description", a.getDescription())); } }); }
From source file:com.tysanclan.site.projectewok.components.RealmGamePanel.java
License:Open Source License
/** * //from ww w . ja v a 2 s . co m */ public RealmGamePanel(String id, Realm realm, Game game) { super(id); add(new Label("name", game.getName())); add(new Image("icon", new ByteArrayResource(ImageUtil.getMimeType(game.getImage()), game.getImage()))); UserGameRealmFilter filter = new UserGameRealmFilter(); filter.setRealm(realm); filter.setGame(game); List<UserGameRealm> ugrs = new LinkedList<UserGameRealm>(); ugrs.addAll(userGameRealmDAO.findByFilter(filter)); Set<UserGameRealm> removeUGR = new HashSet<UserGameRealm>(); for (UserGameRealm ugr : ugrs) { if (!MemberUtil.isMember(ugr.getUser())) { removeUGR.add(ugr); } } ugrs.removeAll(removeUGR); if (ugrs.isEmpty()) { setVisible(false); } Collections.sort(ugrs, new Comparator<UserGameRealm>() { /** * @see java.util.Comparator#compare(java.lang.Object, * java.lang.Object) */ @Override public int compare(UserGameRealm o1, UserGameRealm o2) { return o1.getUser().getUsername().compareToIgnoreCase(o2.getUser().getUsername()); } }); add(new Label("count", new Model<Integer>(ugrs.size()))); add(new ListView<UserGameRealm>("members", ModelMaker.wrap(ugrs)) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<UserGameRealm> item) { UserGameRealm ugr = item.getModelObject(); item.add(new MemberListItem("user", ugr.getUser())); StringBuilder builder = new StringBuilder(); for (GameAccount account : ugr.getAccounts()) { if (builder.length() > 0) { builder.append(", "); } builder.append(account.toString()); } if (builder.length() == 0) { builder.append('-'); } item.add(new Label("accounts", builder.toString())); } }); List<GamingGroup> groups = new LinkedList<GamingGroup>(); groups.addAll(realm.getGroups()); groups.retainAll(game.getGroups()); WebMarkupContainer container = new WebMarkupContainer("container"); container.setVisible(!groups.isEmpty()); add(container); container.add(new ListView<GamingGroup>("gaminggroups", ModelMaker.wrap(groups)) { private static final long serialVersionUID = 1L; /** * @see org.apache.wicket.markup.html.list.ListView#populateItem(org.apache.wicket.markup.html.list.ListItem) */ @Override protected void populateItem(ListItem<GamingGroup> item) { GamingGroup gg = item.getModelObject(); item.add(new AutoGroupLink("grouplink", gg)); } }); }
From source file:com.tysanclan.site.projectewok.pages.AboutPage.java
License:Open Source License
public AboutPage() { super("About"); UserFilter chancellorFilter = new UserFilter(); chancellorFilter.addRank(Rank.CHANCELLOR); List<User> users = userDAO.findByFilter(chancellorFilter); User leader = null;//w w w . j av a 2s. c o m if (!users.isEmpty()) { leader = users.get(0); add(new MemberListItem("leader", leader)); } else { add(new Label("leader", "<i>None</i>").setEscapeModelStrings(false)); } UserFilter senateFilter = new UserFilter(); senateFilter.addRank(Rank.SENATOR); List<User> senate = userDAO.findByFilter(senateFilter); add(new ListView<User>("senate", ModelMaker.wrap(senate)) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<User> item) { User user = item.getModelObject(); item.add(new MemberListItem("member", user)); } }); add(new ListView<Game>("games", ModelMaker.wrap(gameDAO.findAll())) { private static final long serialVersionUID = 1L; /** * @see org.apache.wicket.markup.html.list.ListView#populateItem(org.apache.wicket.markup.html.list.ListItem) */ @Override protected void populateItem(final ListItem<Game> item) { Game game = item.getModelObject(); final int rowCount = game.getRealms().size(); final String gameName = game.getName(); item.add(new ListView<Realm>("realms", ModelMaker.wrap(game.getRealms())) { private static final long serialVersionUID = 1L; @SpringBean private GameService gameService; /** * @see org.apache.wicket.markup.html.list.ListView#populateItem(org.apache.wicket.markup.html.list.ListItem) */ @Override protected void populateItem(ListItem<Realm> innerItem) { WebMarkupContainer iconContainer = new WebMarkupContainer("iconcontainer"); WebMarkupContainer supervisorContainer = new WebMarkupContainer("supervisorcontainer"); Label gameNameLabel = new Label("name", gameName); if (innerItem.getIndex() != 0) { iconContainer.setVisible(false); gameNameLabel.setVisible(false); supervisorContainer.setVisible(false); } else { AttributeModifier mod = AttributeModifier.replace("rowspan", Integer.toString(rowCount)); iconContainer.add(mod); gameNameLabel.add(mod); supervisorContainer.add(mod); } innerItem.add(iconContainer); innerItem.add(gameNameLabel); innerItem.add(supervisorContainer); Realm realm = innerItem.getModelObject(); Game _game = item.getModelObject(); PageParameters params = new PageParameters(); params.add("id", Long.toString(realm.getId())); Link<Realm> realmLink = new BookmarkablePageLink<Realm>("realm", RealmPage.class, params); realmLink.add(new Label("name", realm.getName())); innerItem.add( new Label("playercount", Integer.toString(gameService.countPlayers(_game, realm)))); innerItem.add(realmLink); iconContainer.add(new Image("icon", new ByteArrayResource(ImageUtil.getMimeType(_game.getImage()), _game.getImage()))); if (_game.getCoordinator() != null) { supervisorContainer.add(new MemberListItem("supervisor", _game.getCoordinator())); } else { supervisorContainer.add(new Label("supervisor", "-")); } } }); } }); UserFilter activeMemberFilter = new UserFilter(); activeMemberFilter.addRank(Rank.CHANCELLOR); activeMemberFilter.addRank(Rank.SENATOR); activeMemberFilter.addRank(Rank.TRUTHSAYER); activeMemberFilter.addRank(Rank.REVERED_MEMBER); activeMemberFilter.addRank(Rank.SENIOR_MEMBER); activeMemberFilter.addRank(Rank.FULL_MEMBER); activeMemberFilter.addRank(Rank.JUNIOR_MEMBER); activeMemberFilter.addRank(Rank.TRIAL); activeMemberFilter.setRetired(false); add(new Label("activecount", new Model<Long>(userDAO.countByFilter(activeMemberFilter)))); UserFilter allMemberFilter = new UserFilter(); allMemberFilter.addRank(Rank.CHANCELLOR); allMemberFilter.addRank(Rank.SENATOR); allMemberFilter.addRank(Rank.TRUTHSAYER); allMemberFilter.addRank(Rank.REVERED_MEMBER); allMemberFilter.addRank(Rank.SENIOR_MEMBER); allMemberFilter.addRank(Rank.FULL_MEMBER); allMemberFilter.addRank(Rank.JUNIOR_MEMBER); allMemberFilter.addRank(Rank.TRIAL); add(new Label("membercount", new Model<Long>(userDAO.countByFilter(allMemberFilter)))); addRank(Rank.CHANCELLOR, "The leader of the Clan, has executive power"); addRank(Rank.SENATOR, "A member of the Senate, has legislative power"); addRank(Rank.TRUTHSAYER, "Upholder of justice, has judiciary power"); addRank(Rank.REVERED_MEMBER, "A member who has been with Tysan for more than 5 years"); addRank(Rank.SENIOR_MEMBER, "A member who has been with Tysan for more than 2 years"); addRank(Rank.FULL_MEMBER, "A member who has been with Tysan for more than 4 months"); addRank(Rank.JUNIOR_MEMBER, "A member who has passed his Trial period and gained at least 60% votes in favor"); addRank(Rank.TRIAL, "A member who is currently in his Trial period"); add(new ListView<Rank>("ranks", ranks) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<Rank> item) { Rank rank = item.getModelObject(); item.add(new RankIcon("icon", rank)); item.add(new Label("name", rank.toString())); item.add(new Label("description", rankDescriptions.get(rank))); } }); UserFilter heroFilter = new UserFilter(); heroFilter.addRank(Rank.HERO); List<User> heroes = userDAO.findByFilter(heroFilter); add(new ListView<User>("heroes", heroes) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<User> item) { item.add(new MemberListItem("user", item.getModelObject())); } }.setVisible(!heroes.isEmpty())); }
From source file:com.tysanclan.site.projectewok.pages.member.ChancellorAchievementPage.java
License:Open Source License
public ChancellorAchievementPage() { super("Pending achievement proposals"); AchievementProposalFilter filter = new AchievementProposalFilter(); filter.setVetoUndecided(true);/*from w ww . ja va 2 s .c om*/ add(new DataView<AchievementProposal>("proposals", FilterDataProvider.of(filter, achievementProposalDAO)) { private static final long serialVersionUID = 1L; @Override protected void populateItem(final Item<AchievementProposal> item) { AchievementProposal proposal = item.getModelObject(); AchievementIcon icon = proposal.getIcon(); Game game = proposal.getGame(); item.add(new Label("name", proposal.getName())); item.add(new Image("icon", new ByteArrayResource(ImageUtil.getMimeType(icon.getImage()), icon.getImage()))); byte[] gameImage = game != null ? game.getImage() : new byte[0]; item.add(new Image("game", new ByteArrayResource(ImageUtil.getMimeType(gameImage), gameImage)) .setVisible(game != null)); boolean hasGroup = proposal.getGroup() != null; item.add(new Label("group", hasGroup ? proposal.getGroup().getName() : "-").setVisible(hasGroup)); item.add(new Label("description", proposal.getDescription()).setEscapeModelStrings(false)); item.add(new IconLink.Builder("images/icons/tick.png", new DefaultClickResponder<AchievementProposal>(ModelMaker.wrap(proposal)) { private static final long serialVersionUID = 1L; @Override public void onClick() { service.checkProposal(getUser(), getModelObject()); setResponsePage(new ChancellorAchievementPage()); } }).setText("Yes, this achievement is fine with me").newInstance("yes")); item.add(new IconLink.Builder("images/icons/cross.png", new DefaultClickResponder<AchievementProposal>(ModelMaker.wrap(proposal)) { private static final long serialVersionUID = 1L; @Override public void onClick() { service.vetoProposal(getUser(), getModelObject()); setResponsePage(new ChancellorAchievementPage()); } }).setText("No, this achievement would not be a good addition").newInstance("no")); } }); }
From source file:com.tysanclan.site.projectewok.pages.member.GameManagementPage.java
License:Open Source License
public GameManagementPage() { super("Game Management"); add(new ListView<Game>("games", ModelMaker.wrap(gameDAO.findAll())) { private static final long serialVersionUID = 1L; @Override//from w ww . jav a2 s .c o m protected void populateItem(ListItem<Game> item) { Game game = item.getModelObject(); item.add(new Label("name", game.getName())); item.add(new Image("icon", new ByteArrayResource(ImageUtil.getMimeType(game.getImage()), game.getImage()))); if (game.getCoordinator() != null) { item.add(new MemberListItem("coordinator", game.getCoordinator())); IconLink.Builder builder = new IconLink.Builder("images/icons/user_edit.png", new DefaultClickResponder<Game>(ModelMaker.wrap(game)) { private static final long serialVersionUID = 1L; @Override public void onClick() { setResponsePage(new EditGameSupervisorPage(getModelObject())); } }); item.add(builder.newInstance("edit")); } else { item.add(new WebMarkupContainer("edit").setVisible(false)); IconLink.Builder builder = new IconLink.Builder("images/icons/user_add.png", new DefaultClickResponder<Game>(ModelMaker.wrap(game)) { private static final long serialVersionUID = 1L; @Override public void onClick() { setResponsePage(new EditGameSupervisorPage(getModelObject())); } }); item.add(builder.newInstance("coordinator")); } item.add(new Label("realmcount", new Model<Integer>(game.getRealms().size()))); item.add(new Label("playercount", new Model<Integer>(gameService.countActivePlayers(game)))); item.add(new Label("groupcount", new Model<Integer>(game.getGroups().size()))); IconLink.Builder builder = new IconLink.Builder("images/icons/cross.png", new DefaultClickResponder<Game>(ModelMaker.wrap(game)) { private static final long serialVersionUID = 1L; /** * @see com.tysanclan.site.projectewok.components.IconLink.DefaultClickResponder#onClick() */ @Override public void onClick() { Game g = getModelObject(); if (gameService.isGameInactive(g)) { gameService.deleteGame(getUser(), g); } setResponsePage(new RealmManagementPage()); } }); builder.setImageVisible(gameService.isGameInactive(game)); item.add(builder.newInstance("remove")); } }); }
From source file:com.tysanclan.site.projectewok.pages.member.GroupRequestApprovalPage.java
License:Open Source License
/** * /* www .j a va 2s . c o m*/ */ public GroupRequestApprovalPage() { super("Group Request Approval"); List<GroupCreationRequest> requests = groupCreationRequestDAO.findAll(); String intro = (requests.size() == 0) ? "There are no pending group creation requests" : "There are " + requests.size() + " pending group creation requests:"; add(new Label("pendingtext", intro)); add(new ListView<GroupCreationRequest>("pending", ModelMaker.wrap(requests)) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<GroupCreationRequest> item) { GroupCreationRequest request = item.getModelObject(); boolean social = request.getGame() == null; item.add(new Label("name", request.getName())); item.add(new Label("type", social ? "Social Group" : "Gaming Group")); item.add(new MemberListItem("leader", request.getRequester())); if (social) { item.add(new ContextImage("icon", "images/icons/group.png")); } else { item.add(new Image("icon", new ByteArrayResource("image/gif", request.getGame().getImage()))); } item.add(new Label("description", request.getDescription()).setEscapeModelStrings(false)); item.add(new Label("motivation", request.getMotivation()).setEscapeModelStrings(false)); Link<GroupCreationRequest> yesLink = new Link<GroupCreationRequest>("yes", ModelMaker.wrap(request)) { private static final long serialVersionUID = 1L; @SpringBean private GroupService groupService; /** * @see org.apache.wicket.markup.html.link.Link#onClick() */ @Override public void onClick() { groupService.acceptRequest(getUser(), getModelObject()); setResponsePage(new GroupRequestApprovalPage()); } }; Link<GroupCreationRequest> noLink = new Link<GroupCreationRequest>("no", ModelMaker.wrap(request)) { private static final long serialVersionUID = 1L; @SpringBean private GroupService groupService; /** * @see org.apache.wicket.markup.html.link.Link#onClick() */ @Override public void onClick() { groupService.declineRequest(getUser(), getModelObject()); setResponsePage(new GroupRequestApprovalPage()); } }; yesLink.add(new ContextImage("icon", "images/icons/tick.png")); noLink.add(new ContextImage("icon", "images/icons/cross.png")); item.add(yesLink); item.add(noLink); } }); }