List of usage examples for org.apache.wicket.markup.html.link Link Link
public Link(final String id)
From source file:com.gitblit.wicket.panels.RepositoriesPanel.java
License:Apache License
public RepositoriesPanel(String wicketId, final boolean showAdmin, final boolean showManagement, List<RepositoryModel> models, boolean enableLinks, final Map<AccessRestrictionType, String> accessRestrictionTranslations) { super(wicketId); final boolean linksActive = enableLinks; final boolean showSize = app().settings().getBoolean(Keys.web.showRepositorySizes, true); final UserModel user = GitBlitWebSession.get().getUser(); final IDataProvider<RepositoryModel> dp; Fragment managementLinks;//w w w .j a va 2 s . c o m if (showAdmin) { // user is admin managementLinks = new Fragment("managementPanel", "adminLinks", RepositoriesPanel.this); managementLinks.add(new Link<Void>("clearCache") { private static final long serialVersionUID = 1L; @Override public void onClick() { app().repositories().resetRepositoryListCache(); setResponsePage(RepositoriesPage.class); } }.setVisible(app().settings().getBoolean(Keys.git.cacheRepositoryList, true))); managementLinks.add(new BookmarkablePageLink<Void>("newRepository", app().getNewRepositoryPage())); add(managementLinks); } else if (showManagement && user != null && user.canCreate()) { // user can create personal repositories managementLinks = new Fragment("managementPanel", "personalLinks", RepositoriesPanel.this); managementLinks.add(new BookmarkablePageLink<Void>("newRepository", app().getNewRepositoryPage())); add(managementLinks); } else { // user has no management permissions add(new Label("managementPanel").setVisible(false)); } if (app().settings().getString(Keys.web.repositoryListType, "flat").equalsIgnoreCase("grouped")) { List<RepositoryModel> rootRepositories = new ArrayList<RepositoryModel>(); Map<String, List<RepositoryModel>> groups = new HashMap<String, List<RepositoryModel>>(); for (RepositoryModel model : models) { String rootPath = StringUtils.getRootPath(model.name); if (StringUtils.isEmpty(rootPath)) { // root repository rootRepositories.add(model); } else { // non-root, grouped repository if (!groups.containsKey(rootPath)) { groups.put(rootPath, new ArrayList<RepositoryModel>()); } groups.get(rootPath).add(model); } } List<String> roots = new ArrayList<String>(groups.keySet()); Collections.sort(roots); if (rootRepositories.size() > 0) { // inject the root repositories at the top of the page roots.add(0, ""); groups.put("", rootRepositories); } List<RepositoryModel> groupedModels = new ArrayList<RepositoryModel>(); for (String root : roots) { List<RepositoryModel> subModels = groups.get(root); ProjectModel project = app().projects().getProjectModel(root); GroupRepositoryModel group = new GroupRepositoryModel(project == null ? root : project.name, subModels.size()); if (project != null) { group.title = project.title; group.description = project.description; } groupedModels.add(group); Collections.sort(subModels); groupedModels.addAll(subModels); } dp = new ListDataProvider<RepositoryModel>(groupedModels); } else { dp = new SortableRepositoriesProvider(models); } final boolean showSwatch = app().settings().getBoolean(Keys.web.repositoryListSwatches, true); DataView<RepositoryModel> dataView = new DataView<RepositoryModel>("row", dp) { private static final long serialVersionUID = 1L; int counter; String currGroupName; @Override protected void onBeforeRender() { super.onBeforeRender(); counter = 0; } @Override public void populateItem(final Item<RepositoryModel> item) { final RepositoryModel entry = item.getModelObject(); if (entry instanceof GroupRepositoryModel) { GroupRepositoryModel groupRow = (GroupRepositoryModel) entry; currGroupName = entry.name; Fragment row = new Fragment("rowContent", "groupRepositoryRow", RepositoriesPanel.this); item.add(row); String name = groupRow.name; if (name.startsWith(ModelUtils.getUserRepoPrefix())) { // user page String username = ModelUtils.getUserNameFromRepoPath(name); UserModel user = app().users().getUserModel(username); row.add(new LinkPanel("groupName", null, (user == null ? username : user.getDisplayName()) + " (" + groupRow.count + ")", UserPage.class, WicketUtils.newUsernameParameter(username))); row.add(new Label("groupDescription", getString("gb.personalRepositories"))); } else { // project page row.add(new LinkPanel("groupName", null, groupRow.toString(), ProjectPage.class, WicketUtils.newProjectParameter(entry.name))); row.add(new Label("groupDescription", entry.description == null ? "" : entry.description)); } WicketUtils.setCssClass(item, "group"); // reset counter so that first row is light background counter = 0; return; } Fragment row = new Fragment("rowContent", "repositoryRow", RepositoriesPanel.this); item.add(row); // show colored repository type icon Fragment iconFragment; if (entry.isMirror) { iconFragment = new Fragment("repoIcon", "mirrorIconFragment", RepositoriesPanel.this); } else if (entry.isFork()) { iconFragment = new Fragment("repoIcon", "forkIconFragment", RepositoriesPanel.this); } else if (entry.isBare) { iconFragment = new Fragment("repoIcon", "repoIconFragment", RepositoriesPanel.this); } else { iconFragment = new Fragment("repoIcon", "cloneIconFragment", RepositoriesPanel.this); } if (showSwatch) { WicketUtils.setCssStyle(iconFragment, "color:" + StringUtils.getColor(entry.toString())); } row.add(iconFragment); // try to strip group name for less cluttered list String repoName = entry.toString(); if (!StringUtils.isEmpty(currGroupName) && (repoName.indexOf('/') > -1)) { repoName = repoName.substring(currGroupName.length() + 1); } if (linksActive) { Class<? extends BasePage> linkPage = SummaryPage.class; PageParameters pp = WicketUtils.newRepositoryParameter(entry.name); row.add(new LinkPanel("repositoryName", "list", repoName, linkPage, pp)); row.add(new LinkPanel("repositoryDescription", "list", entry.description, linkPage, pp)); } else { // no links like on a federation page row.add(new Label("repositoryName", repoName)); row.add(new Label("repositoryDescription", entry.description)); } if (entry.hasCommits) { // Existing repository row.add(new Label("repositorySize", entry.size).setVisible(showSize)); } else { // New repository row.add(new Label("repositorySize", "<span class='empty'>(" + getString("gb.empty") + ")</span>") .setEscapeModelStrings(false)); } if (entry.isSparkleshared()) { row.add(WicketUtils.newImage("sparkleshareIcon", "star_16x16.png", getString("gb.isSparkleshared"))); } else { row.add(WicketUtils.newClearPixel("sparkleshareIcon").setVisible(false)); } if (!entry.isMirror && entry.isFrozen) { row.add(WicketUtils.newImage("frozenIcon", "cold_16x16.png", getString("gb.isFrozen"))); } else { row.add(WicketUtils.newClearPixel("frozenIcon").setVisible(false)); } if (entry.isFederated) { row.add(WicketUtils.newImage("federatedIcon", "federated_16x16.png", getString("gb.isFederated"))); } else { row.add(WicketUtils.newClearPixel("federatedIcon").setVisible(false)); } if (entry.isMirror) { row.add(WicketUtils.newImage("accessRestrictionIcon", "mirror_16x16.png", getString("gb.isMirror"))); } else { switch (entry.accessRestriction) { case NONE: row.add(WicketUtils.newBlankImage("accessRestrictionIcon")); break; case PUSH: row.add(WicketUtils.newImage("accessRestrictionIcon", "lock_go_16x16.png", accessRestrictionTranslations.get(entry.accessRestriction))); break; case CLONE: row.add(WicketUtils.newImage("accessRestrictionIcon", "lock_pull_16x16.png", accessRestrictionTranslations.get(entry.accessRestriction))); break; case VIEW: row.add(WicketUtils.newImage("accessRestrictionIcon", "shield_16x16.png", accessRestrictionTranslations.get(entry.accessRestriction))); break; default: row.add(WicketUtils.newBlankImage("accessRestrictionIcon")); } } String owner = ""; if (!ArrayUtils.isEmpty(entry.owners)) { // display first owner for (String username : entry.owners) { UserModel ownerModel = app().users().getUserModel(username); if (ownerModel != null) { owner = ownerModel.getDisplayName(); break; } } if (entry.owners.size() > 1) { owner += ", ..."; } } Label ownerLabel = new Label("repositoryOwner", owner); WicketUtils.setHtmlTooltip(ownerLabel, ArrayUtils.toString(entry.owners)); row.add(ownerLabel); String lastChange; if (entry.lastChange.getTime() == 0) { lastChange = "--"; } else { lastChange = getTimeUtils().timeAgo(entry.lastChange); } Label lastChangeLabel = new Label("repositoryLastChange", lastChange); row.add(lastChangeLabel); WicketUtils.setCssClass(lastChangeLabel, getTimeUtils().timeAgoCss(entry.lastChange)); if (!StringUtils.isEmpty(entry.lastChangeAuthor)) { WicketUtils.setHtmlTooltip(lastChangeLabel, getString("gb.author") + ": " + entry.lastChangeAuthor); } WicketUtils.setAlternatingBackground(item, counter); counter++; } }; add(dataView); if (dp instanceof SortableDataProvider<?, ?>) { // add sortable header SortableDataProvider<?, ?> sdp = (SortableDataProvider<?, ?>) dp; Fragment fragment = new Fragment("headerContent", "flatRepositoryHeader", RepositoriesPanel.this); fragment.add(newSort("orderByRepository", SortBy.repository, sdp, dataView)); fragment.add(newSort("orderByDescription", SortBy.description, sdp, dataView)); fragment.add(newSort("orderByOwner", SortBy.owner, sdp, dataView)); fragment.add(newSort("orderByDate", SortBy.date, sdp, dataView)); add(fragment); } else { // not sortable Fragment fragment = new Fragment("headerContent", "groupRepositoryHeader", RepositoriesPanel.this); add(fragment); } }
From source file:com.gitblit.wicket.panels.TeamsPanel.java
License:Apache License
public TeamsPanel(String wicketId, final boolean showAdmin) { super(wicketId); Fragment adminLinks = new Fragment("adminPanel", "adminLinks", TeamsPanel.this); adminLinks.add(new BookmarkablePageLink<Void>("newTeam", EditTeamPage.class)); add(adminLinks.setVisible(showAdmin)); final List<TeamModel> teams = app().users().getAllTeams(); DataView<TeamModel> teamsView = new DataView<TeamModel>("teamRow", new ListDataProvider<TeamModel>(teams)) { private static final long serialVersionUID = 1L; private int counter; @Override/*from ww w . j ava2s .c o m*/ protected void onBeforeRender() { super.onBeforeRender(); counter = 0; } @Override public void populateItem(final Item<TeamModel> item) { final TeamModel entry = item.getModelObject(); LinkPanel editLink = new LinkPanel("teamname", "list", entry.name, EditTeamPage.class, WicketUtils.newTeamnameParameter(entry.name)); WicketUtils.setHtmlTooltip(editLink, getString("gb.edit") + " " + entry.name); item.add(editLink); item.add(new Label("accountType", entry.accountType.name())); item.add(new Label("members", entry.users.size() > 0 ? ("" + entry.users.size()) : "")); item.add(new Label("repositories", entry.repositories.size() > 0 ? ("" + entry.repositories.size()) : "")); Fragment teamLinks = new Fragment("teamLinks", "teamAdminLinks", TeamsPanel.this); teamLinks.add(new BookmarkablePageLink<Void>("editTeam", EditTeamPage.class, WicketUtils.newTeamnameParameter(entry.name))); Link<Void> deleteLink = new Link<Void>("deleteTeam") { private static final long serialVersionUID = 1L; @Override public void onClick() { if (app().users().deleteTeam(entry.name)) { teams.remove(entry); info(MessageFormat.format("Team ''{0}'' deleted.", entry.name)); } else { error(MessageFormat.format("Failed to delete team ''{0}''!", entry.name)); } } }; deleteLink.add(new JavascriptEventConfirmation("click", MessageFormat.format("Delete team \"{0}\"?", entry.name))); teamLinks.add(deleteLink); item.add(teamLinks); WicketUtils.setAlternatingBackground(item, counter); counter++; } }; add(teamsView.setVisible(showAdmin)); }
From source file:com.gitblit.wicket.panels.UsersPanel.java
License:Apache License
public UsersPanel(String wicketId, final boolean showAdmin) { super(wicketId); Fragment adminLinks = new Fragment("adminPanel", "adminLinks", UsersPanel.this); adminLinks.add(new BookmarkablePageLink<Void>("newUser", EditUserPage.class)); add(adminLinks.setVisible(showAdmin)); final List<UserModel> users = app().users().getAllUsers(); DataView<UserModel> usersView = new DataView<UserModel>("userRow", new ListDataProvider<UserModel>(users)) { private static final long serialVersionUID = 1L; private int counter; @Override/* w ww. ja v a 2 s .c om*/ protected void onBeforeRender() { super.onBeforeRender(); counter = 0; } @Override public void populateItem(final Item<UserModel> item) { final UserModel entry = item.getModelObject(); String css = "list" + (entry.disabled ? "-strikethrough" : ""); LinkPanel editLink = new LinkPanel("username", css, entry.username, EditUserPage.class, WicketUtils.newUsernameParameter(entry.username)); WicketUtils.setHtmlTooltip(editLink, getString("gb.edit") + " " + entry.getDisplayName()); item.add(editLink); if (StringUtils.isEmpty(entry.displayName)) { item.add(new Label("displayName").setVisible(false)); } else { editLink = new LinkPanel("displayName", css, entry.getDisplayName(), EditUserPage.class, WicketUtils.newUsernameParameter(entry.username)); WicketUtils.setHtmlTooltip(editLink, getString("gb.edit") + " " + entry.getDisplayName()); item.add(editLink); } if (StringUtils.isEmpty(entry.emailAddress)) { item.add(new Label("emailAddress").setVisible(false)); } else { editLink = new LinkPanel("emailAddress", css, entry.emailAddress, EditUserPage.class, WicketUtils.newUsernameParameter(entry.username)); WicketUtils.setHtmlTooltip(editLink, getString("gb.edit") + " " + entry.getDisplayName()); item.add(editLink); } item.add(new Label("accountType", entry.accountType.name() + (entry.canAdmin() ? ", admin" : ""))); item.add(new Label("teams", entry.teams.size() > 0 ? ("" + entry.teams.size()) : "")); item.add(new Label("repositories", entry.permissions.size() > 0 ? ("" + entry.permissions.size()) : "")); Fragment userLinks = new Fragment("userLinks", "userAdminLinks", UsersPanel.this); userLinks.add(new BookmarkablePageLink<Void>("editUser", EditUserPage.class, WicketUtils.newUsernameParameter(entry.username))); Link<Void> deleteLink = new Link<Void>("deleteUser") { private static final long serialVersionUID = 1L; @Override public void onClick() { if (app().users().deleteUser(entry.username)) { users.remove(entry); info(MessageFormat.format(getString("gb.userDeleted"), entry.username)); } else { error(MessageFormat.format(getString("gb.deleteUserFailed"), entry.username)); } } }; deleteLink.add(new JavascriptEventConfirmation("click", MessageFormat.format(getString("gb.deleteUser"), entry.username))); userLinks.add(deleteLink); item.add(userLinks); WicketUtils.setAlternatingBackground(item, counter); counter++; } }; add(usersView.setVisible(showAdmin)); }
From source file:com.gkrupa.samples.rebel.wicket.pages.HomePage.java
License:Apache License
@Override protected void onInitialize() { super.onInitialize(); add(new Link<Void>("gotoPanelsLink") { private static final long serialVersionUID = 1L; @Override/* w w w .ja va 2 s . c om*/ public void onClick() { setResponsePage(PanelsPage.class); } }); }
From source file:com.google.code.jqwicket.TipTipPage.java
License:Apache License
@SuppressWarnings("serial") public TipTipPage() { add(new GenericTipTipBehavior(".someClass", new TipTipOptions().content("<h3>this is custom dynamic tooltip</h3>").maxWidth("auto"))); add(new Link<Void>("tiptip") { @Override/*www . j a v a 2 s .co m*/ public void onClick() { } }.add(new TipTipBehavior(new TipTipOptions().maxWidth("auto").edgeOffset(10)))); }
From source file:com.inductiveautomation.xopc.drivers.modbus2.configuration.web.ModbusConfigurationUI.java
License:Open Source License
private void addComponents() { T settingsRecord = (T) getDefaultModelObject(); String mapString = (String) TypeUtilities.toString(settingsRecord.getAddressMap()); addressMap = MutableModbusAddressMap.fromParseableString(mapString); if (addressMap == null) { addressMap = new MutableModbusAddressMap(); }//from w w w. j a v a 2s . c o m radix = addressMap.getDesignatorRadix(); final Form<Object> form = new Form<Object>("form") { @Override protected void onSubmit() { handleOnSubmit(); } }; form.add(new FeedbackPanel("feedback")); final WebMarkupContainer tableContainer = new WebMarkupContainer("table-container"); tableContainer.setOutputMarkupId(true); final WebMarkupContainer radixContainer = new WebMarkupContainer("radix-container") { @Override public boolean isVisible() { return entries.size() > 0; } }; radixContainer.setOutputMarkupId(true); radixContainer.add(new Label("radix-label", new LenientResourceModel("radixlabel", "Radix")) { @Override public boolean isVisible() { return entries.size() > 0; } }); final RequiredTextField<Integer> radixField = new RequiredTextField<Integer>("radix", new PropertyModel<Integer>(this, "radix")) { @Override public boolean isVisible() { return entries.size() > 0; } }; radixField.add(new OnChangeAjaxBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { try { Integer radix = Integer.parseInt(radixField.getValue()); setRadix(radix); } catch (Exception e) { } } }); radixContainer.add(radixField); tableContainer.add(radixContainer); radixContainer.add(new Link<Object>("set-radix") { @Override public void onClick() { if (addressMap != null) { } } @Override public boolean isVisible() { return false; } }); // Create the configuration entries for the listview for (DesignatorRange dr : addressMap.keySet()) { MutableDesignatorRange mdr = new MutableDesignatorRange(dr); MutableModbusRange mbr = new MutableModbusRange(addressMap.get(dr)); entries.add(new ModbusConfigurationEntry(mdr, mbr)); } // Create the listview listview = new ListEditor<ModbusConfigurationEntry>("config-listview", getListviewModel()) { @Override protected void onPopulateItem(ListItem<ModbusConfigurationEntry> item) { final ModbusConfigurationEntry configEntry = item.getModelObject(); item.add(newPrefixTextField(configEntry)); item.add(newStartTextField(configEntry)); item.add(newEndTextField(configEntry)); item.add(newStepCheckboxField(configEntry)); item.add(newModbusUnitIDTextField(configEntry)); item.add(newModbusAddressTypeDropdown(configEntry)); item.add(newModbusAddressTextField(configEntry)); item.add(new DeleteLink("delete-link")); } }; WebMarkupContainer noMappingsContainer = new WebMarkupContainer("no-mappings-container") { @Override public boolean isVisible() { return entries.size() == 0; } ; }; noMappingsContainer .add(new Label("no-mappings-label", new LenientResourceModel("nomappings", "No mappings."))); tableContainer.add(noMappingsContainer); tableContainer.add(listview); form.add(tableContainer); form.add(new SubmitLink("add-row-link") { { setDefaultFormProcessing(false); } @Override public void onSubmit() { listview.addItem(new ModbusConfigurationEntry()); } }); form.add(new Button("save")); add(form); // CSV export try { Link<IResource> exportLink = new ResourceLink<IResource>("export-link", new ExportCsvResource()); add(exportLink); } catch (Exception e) { Link<Object> exportLink = new Link<Object>("export-link") { @Override public void onClick() { } @Override public boolean isVisible() { return false; } }; add(exportLink); } // CSV import final FileUploadField uploadField = new FileUploadField("upload-field"); Form<?> uploadForm = new Form<Object>("upload-form") { @Override protected void onSubmit() { try { addressMap = ModbusCsvParser.fromCsv(uploadField.getFileUpload().getInputStream()); radix = addressMap.getDesignatorRadix(); listview.clear(); for (DesignatorRange dr : addressMap.keySet()) { MutableDesignatorRange mdr = new MutableDesignatorRange(dr); MutableModbusRange mbr = new MutableModbusRange(addressMap.get(dr)); listview.addItem(new ModbusConfigurationEntry(mdr, mbr)); } } catch (Exception e) { error("Error importing configuration from CSV file."); } } }; uploadForm.add(uploadField); SubmitLink importLink = new SubmitLink("import-link"); uploadForm.add(importLink); add(uploadForm); }
From source file:com.jolira.enzian.tasks.ui.TasksViewer.java
License:Open Source License
/** * Create a new viewer//from w w w . j a v a 2 s .c om * * @param executor * the executor to be displayed */ @Inject public TasksViewer(final TaskExecutor executor) { final IModel<? extends List<? extends Task>> mdl = new LoadableDetachableModel<List<Task>>() { private static final long serialVersionUID = -2820663100472235781L; @Override protected List<Task> load() { final Task[] tasks = executor.getTasks(); return Arrays.asList(tasks); } }; final ListView<Task> taskView = new PropertyListView<Task>("task", mdl) { private static final long serialVersionUID = -7625713403597488210L; @Override protected void populateItem(final ListItem<Task> item) { item.add(new Label("name")); item.add(new Label("status")); item.add(new Label("progress", "N/A")); item.add(new Link<Void>("cancel") { private static final long serialVersionUID = 2527181238727006875L; @Override public void onClick() { final Task task = item.getModelObject(); task.cancel(); } }); } }; add(taskView); }
From source file:com.lili.template.pageinheritance.TemplatePage.java
License:Apache License
/** * Constructor//from w ww. j a va 2s . c o m */ public TemplatePage() { add(new Label("title", new PropertyModel<String>(this, "pageTitle"))); add(currentBanner = new Banner1("ad")); add(new Link("changeAdLink") { /** * @see org.apache.wicket.markup.html.link.Link#onClick() */ @Override public void onClick() { if (currentBanner.getClass() == Banner1.class) { TemplatePage.this.replace(currentBanner = new Banner2("ad")); } else { TemplatePage.this.replace(currentBanner = new Banner1("ad")); } } }); add(new BookmarkablePageLink<Void>("page1Link", Page1.class)); add(new BookmarkablePageLink<Void>("page2Link", Page2.class)); }
From source file:com.lili.template.TemplateBorder.java
License:Apache License
/** * Constructor/*from ww w. ja va 2 s .co m*/ * * @param id */ public TemplateBorder(String id) { super(id); addToBorder(currentBanner = new Banner1("ad")); addToBorder(new Link("changeAdLink") { /** * @see org.apache.wicket.markup.html.link.Link#onClick() */ @Override public void onClick() { if (currentBanner.getClass() == Banner1.class) { TemplateBorder.this.replaceInBorder(currentBanner = new Banner2("ad")); } else { TemplateBorder.this.replaceInBorder(currentBanner = new Banner1("ad")); } } }); /*addToBorder(new BookmarkablePageLink<Void>("page1Link", Page1.class)); addToBorder(new BookmarkablePageLink<Void>("page2Link", Page2.class));*/ }
From source file:com.marc.lastweek.web.components.classifiedaddetails.ClassifiedAdDetailPanel.java
License:Open Source License
public ClassifiedAdDetailPanel(String id, final Long classifiedAdId) { super(id);/*from w w w .j av a 2 s .c o m*/ add(HeaderContributor.forJavaScript(SLIDER_URL)); final ClassifiedAd classifiedAd = LastweekApplication.get().getGeneralService().find(ClassifiedAd.class, classifiedAdId); final String title = classifiedAd.getTitle(); final String description = classifiedAd.getDescription(); final Double price = classifiedAd.getPrice(); final Integer flag = classifiedAd.getFlag(); final Integer state = classifiedAd.getState(); final String hashCode = classifiedAd.getHashCode(); final int sourceCode = classifiedAd.getSource().intValue(); final Calendar publicationDate = classifiedAd.getPublicationDate(); Folder imageFolder = LastweekApplication.get().getImageService().findFolderFromName(hashCode); List<File> images = LastweekApplication.get().getImageService().getAllTemporalFiles(imageFolder); if (images.size() != 0) { // final File file = images.get(0); // this.add(new ClassifiedAdImagePanel("imagePanel", file)); this.add(new JQueryImagegallery("gallery", images)); } else { // this.add(new Label("imagePanel", new // Model("No hay fotos disponibles"))); this.add(new Label("gallery", new Model("No hay fotos disponibles"))); } // TODO: add image, add province and category this.add(new Label("classifiedAdPublicationDate", ViewUtils.labelizer(DateUtils.getDaysFromThen(publicationDate)))); this.add(new Label("classifiedAdTitle", ViewUtils.labelizer(title))); this.add(new Label("classifiedAdDescription", ViewUtils.labelizer(description)) .setEscapeModelStrings(false)); this.add(new Label("classifiedAdPrice", ViewUtils.labelizer(price))); this.add(new Label("provinceName", ViewUtils.labelizer(classifiedAd.getProvince().getName()))); this.add(new Label("categoryName", ViewUtils.labelizer(classifiedAd.getCategory().getName()))); this.add(new Label("subcategoryName", ViewUtils.labelizer(classifiedAd.getSubcategory().getName()))); this.add(new Link("classifiedAdDescriptionLink") { private static final long serialVersionUID = 7411597974910148218L; @Override public void onClick() { // TODO: add onClick } }); final ContactPanel contactPanel = new ContactPanel("contactPanel", null, classifiedAdId); this.add(contactPanel); contactPanel.setOutputMarkupId(true); this.add(new Link("classifiedAdContactLink") { private static final long serialVersionUID = -4262681914874430193L; @Override public void onClick() { // TODO: add onClick } }); // this.add(new Label("userDataEmail", ViewUtils.labelizer(classifiedAd // .getUserData().getEmail()))); this.add(new Label("userDataName", ViewUtils.labelizer(classifiedAd.getUserData().getName()))); WebMarkupContainer showPhoneDiv = new WebMarkupContainer("showPhoneDiv"); showPhoneDiv.setVisible(classifiedAd.getShowPhone().booleanValue()); Label phone = new Label("userDataPhone", ViewUtils.labelizer(classifiedAd.getUserData().getPhone())); showPhoneDiv.add(phone); this.add(showPhoneDiv); ExternalLink classifiedAdSourceLink = new ExternalLink("classifiedAdSourceLink", classifiedAd.getSourceURL()) { private static final long serialVersionUID = -5872308114085631059L; @Override public boolean isVisible() { if (sourceCode == ClassifiedAd.SOURCE_OUR) return false; return true; } }; classifiedAdSourceLink.add(new Label("classifiedAdSource", ViewUtils.labelizer(CommonNamingValues.getSourceName(classifiedAd.getSource())))); this.add(classifiedAdSourceLink); // TODO: Put strings in properties files final Label flagClassifiedAdLabel = new Label("flagClassifiedAdSpan", "Marcar anuncio como inapropiado"); Link flagClassifiedAdLink = new Link("flagClassifiedAdLink") { private static final long serialVersionUID = -4262681914874430193L; @Override public void onClick() { ModifiedClassifiedAdTO modifiedClassifiedAdTO = new ModifiedClassifiedAdTO(classifiedAdId, title, description, price, Integer.valueOf(flag.intValue() + 1), state, hashCode); LastweekApplication.get().getGeneralService().modify(ClassifiedAd.class, modifiedClassifiedAdTO); this.setEnabled(false); this.setVisible(false); info("El anuncio ha sido marcado como inapropiado."); } }; flagClassifiedAdLink.add(flagClassifiedAdLabel); this.add(flagClassifiedAdLink); Link addToFavoritesLink = new Link("addToFavoritesLink") { private static final long serialVersionUID = 8340452899324058655L; @Override public void onClick() { LastweekSession.get().addFavorite(classifiedAdId); info("Anuncio aadido a favoritos"); this.setVisible(false); } @Override public boolean isVisible() { if (LastweekSession.get().containsFavorite(classifiedAdId)) return false; return true; } }; this.add(addToFavoritesLink); }