List of usage examples for org.apache.wicket.markup.html.link Link isVisible
public boolean isVisible()
From source file:org.openengsb.opencit.ui.web.IndexPageTest.java
License:Apache License
@Test public void testProjectsAvailable_shouldShowProjectId() throws NoSuchProjectException { when(projectManager.getAllProjects()).thenReturn(Arrays.asList(new Project[] { testProject })); when(projectManager.getProject("test")).thenReturn(testProject); when(projectManager.getCurrentContextProject()).thenReturn(testProject); getTester().startPage(new Index()); getTester().assertContains("test"); String item = "projectlistPanel:projectlist:0"; Image image = (Image) getTester().getComponentFromLastRenderedPage(item + ":project.state"); Link<?> link = (Link<?>) getTester().getComponentFromLastRenderedPage(item + ":project.details"); assertThat(image.isVisible(), is(true)); assertThat(link.isVisible(), is(true)); getTester().clickLink(item + ":project.details"); String expectedPage = ProjectDetails.class.getName(); assertThat(getTester().getLastRenderedPage().getClass().getName(), is(expectedPage)); }
From source file:org.openengsb.opencit.ui.web.ProjectDetailsPageTest.java
License:Apache License
@Test public void testReportPanel_shouldWork() { Report report = ModelUtils.createEmptyModelObject(Report.class); report.setName("rep1"); report.setParts(new ArrayList<ReportPart>()); List<Report> reports = Arrays.asList(new Report[] { report }); when(reportMock.getAllReports("test")).thenReturn(reports); getTester().startPage(getProjectDetails()); getTester().assertContains("rep1"); String item = "reportsPanel:reportlist:0"; Link<?> link = (Link<?>) getTester().getComponentFromLastRenderedPage(item + ":report.link"); assertThat(link.isVisible(), is(true)); getTester().clickLink(item + ":report.link"); String expectedPage = ReportViewPage.class.getName(); assertThat(getTester().getLastRenderedPage().getClass().getName(), is(expectedPage)); }
From source file:org.sakaiproject.delegatedaccess.tool.pages.UserPageSiteSearch.java
License:Educational Community License
@SuppressWarnings("unchecked") public void buildPage(final String search, final Map<String, Object> advancedFields, final boolean statistics, final boolean currentStatisticsFlag) { this.search = search; this.statistics = statistics; this.currentStatisticsFlag = currentStatisticsFlag; if (statistics) { disableLink(shoppingStatsLink);/*from w ww .ja v a 2 s . co m*/ } List<ListOptionSerialized> blankRestrictedTools = projectLogic.getEntireToolsList(); toolsMap = new HashMap<String, String>(); for (ListOptionSerialized option : blankRestrictedTools) { toolsMap.put(option.getId(), option.getName()); } //Setup Statistics Links: Link<Void> currentLink = new Link<Void>("currentLink") { private static final long serialVersionUID = 1L; public void onClick() { setResponsePage(new UserPageSiteSearch("", null, true, true)); } @Override public boolean isVisible() { return statistics; } }; currentLink.add(new Label("currentLinkLabel", new ResourceModel("link.current")).setRenderBodyOnly(true)); currentLink.add(new AttributeModifier("title", true, new ResourceModel("link.current.tooltip"))); add(currentLink); if (currentStatisticsFlag) { disableLink(currentLink); } Link<Void> allLink = new Link<Void>("allLink") { private static final long serialVersionUID = 1L; public void onClick() { setResponsePage(new UserPageSiteSearch("", null, true, false)); } @Override public boolean isVisible() { return statistics; } }; allLink.add(new Label("allLinkLabel", new ResourceModel("link.all")).setRenderBodyOnly(true)); allLink.add(new AttributeModifier("title", true, new ResourceModel("link.all.tooltip"))); add(allLink); if (!currentStatisticsFlag) { disableLink(allLink); } termOptions = new ArrayList<SelectOption>(); for (String[] entry : sakaiProxy.getTerms()) { termOptions.add(new SelectOption(entry[1], entry[0])); } Map<String, String> hierarchySearchFields = new HashMap<String, String>(); if (advancedFields != null) { for (Entry<String, Object> entry : advancedFields.entrySet()) { if (DelegatedAccessConstants.ADVANCED_SEARCH_INSTRUCTOR.equals(entry.getKey())) { instructorField = entry.getValue().toString(); selectedInstructorOption = advancedFields .get(DelegatedAccessConstants.ADVANCED_SEARCH_INSTRUCTOR_TYPE).toString(); } if (DelegatedAccessConstants.ADVANCED_SEARCH_TERM.equals(entry.getKey())) { for (SelectOption option : termOptions) { if (entry.getValue().equals(option.getValue())) { termField = option; break; } } } if (DelegatedAccessConstants.ADVANCED_SEARCH_HIERARCHY_FIELDS.equals(entry.getKey())) { hierarchySearchFields = (Map<String, String>) entry.getValue(); } } } //Create Search Form: final PropertyModel<String> searchModel = new PropertyModel<String>(this, "search"); final PropertyModel<String> instructorFieldModel = new PropertyModel<String>(this, "instructorField"); final PropertyModel<SelectOption> termFieldModel = new PropertyModel<SelectOption>(this, "termField"); final IModel<String> searchStringModel = new IModel<String>() { public void detach() { } public void setObject(String arg0) { } public String getObject() { String searchString = ""; if (searchModel.getObject() != null && !"".equals(searchModel.getObject().toString().trim())) { searchString += new StringResourceModel("siteIdTitleField", null).getString() + " " + searchModel.getObject(); } if (instructorFieldModel.getObject() != null && !"".equals(instructorFieldModel.getObject())) { if (!"".equals(searchString)) searchString += ", "; String userType = new StringResourceModel("instructor", null).getString(); if (DelegatedAccessConstants.ADVANCED_SEARCH_INSTRUCTOR_TYPE_MEMBER .equals(selectedInstructorOption)) { userType = new StringResourceModel("member", null).getString(); } searchString += userType + " " + instructorFieldModel.getObject(); } if (termFieldModel.getObject() != null && !"".equals(termFieldModel.getObject())) { if (!"".equals(searchString)) searchString += ", "; searchString += new StringResourceModel("termField", null).getString() + " " + termFieldModel.getObject().getLabel(); } //hierarchy params: if (hierarchySearchMap != null) { for (Entry<String, SelectOption> entry : hierarchySearchMap.entrySet()) { if (entry.getValue() != null && !"".equals(entry.getValue().getValue().trim())) { if (!"".equals(searchString)) searchString += ", "; searchString += hierarchyLabels.get(entry.getKey()) + ": " + entry.getValue().getValue().trim(); } } } return searchString; } }; final IModel<String> permaLinkModel = new IModel<String>() { @Override public void detach() { } @Override public String getObject() { String path = "/shopping"; Map<String, String> params = new HashMap<String, String>(); //Search if (searchModel.getObject() != null) { params.put("search", searchModel.getObject()); } //term: if (termFieldModel.getObject() != null && !"".equals(termFieldModel.getObject())) { params.put("term", termFieldModel.getObject().getValue()); } //instructor if (instructorFieldModel.getObject() != null && !"".equals(instructorFieldModel.getObject())) { params.put("instructor", instructorFieldModel.getObject()); if (DelegatedAccessConstants.ADVANCED_SEARCH_INSTRUCTOR_TYPE_MEMBER .equals(selectedInstructorOption)) { params.put("instructorType", DelegatedAccessConstants.ADVANCED_SEARCH_INSTRUCTOR_TYPE_MEMBER); } else { params.put("instructorType", DelegatedAccessConstants.ADVANCED_SEARCH_INSTRUCTOR_TYPE_INSTRUCTOR); } } //hierarchy params: if (hierarchySearchMap != null) { int i = 0; for (Entry<String, SelectOption> entry : hierarchySearchMap.entrySet()) { if (entry.getValue() != null && !"".equals(entry.getValue().getValue().trim())) { params.put("hierarchyKey" + i, entry.getKey()); params.put("hierarchyValue" + i, entry.getValue().getValue()); i++; } } } String context = sakaiProxy.siteReference(sakaiProxy.getCurrentPlacement().getContext()); String url = ""; try { String tool = "sakai.delegatedaccess"; if (isShoppingPeriodTool()) { tool += ".shopping"; } url = developerHelperService.getToolViewURL(tool, path, params, context); } catch (Exception e) { } return url; } @Override public void setObject(String arg0) { } }; final Form<?> form = new Form("form") { @Override protected void onSubmit() { super.onSubmit(); if (provider != null) { provider.detachManually(); } } }; form.add(new TextField<String>("search", searchModel)); AbstractReadOnlyModel<String> instructorFieldLabelModel = new AbstractReadOnlyModel<String>() { @Override public String getObject() { if (isShoppingPeriodTool()) { return new StringResourceModel("instructor", null).getObject() + ":"; } else { return new StringResourceModel("user", null).getObject() + ":"; } } }; form.add(new Label("instructorFieldLabel", instructorFieldLabelModel)); form.add(new TextField<String>("instructorField", instructorFieldModel)); //Instructor Options: RadioGroup group = new RadioGroup("instructorOptionsGroup", new PropertyModel<String>(this, "selectedInstructorOption")) { @Override public boolean isVisible() { //only show if its not shopping period return !isShoppingPeriodTool(); } }; group.add(new Radio("instructorOption", Model.of(DelegatedAccessConstants.ADVANCED_SEARCH_INSTRUCTOR_TYPE_INSTRUCTOR))); group.add(new Radio("memberOption", Model.of(DelegatedAccessConstants.ADVANCED_SEARCH_INSTRUCTOR_TYPE_MEMBER))); form.add(group); final ChoiceRenderer choiceRenderer = new ChoiceRenderer("label", "value"); DropDownChoice termFieldDropDown = new DropDownChoice("termField", termFieldModel, termOptions, choiceRenderer) { @Override public boolean isVisible() { return !sakaiProxy.isSearchHideTerm(); } }; //keeps the null option (choose one) after a user selects an option termFieldDropDown.setNullValid(true); form.add(termFieldDropDown); add(form); //hierarchy dropdown: String[] hierarchyTmp = sakaiProxy .getServerConfigurationStrings(DelegatedAccessConstants.HIERARCHY_SITE_PROPERTIES); if (hierarchyTmp == null || hierarchyTmp.length == 0) { hierarchyTmp = DelegatedAccessConstants.DEFAULT_HIERARCHY; } final String[] hierarchy = hierarchyTmp; WebMarkupContainer hierarchyDiv = new WebMarkupContainer("hierarchyFields"); final Comparator<SelectOption> optionComparator = new SelectOptionComparator(); if (hierarchySelectOptions == null || hierarchySelectOptions.size() == 0) { nodeSelectOrder = new ArrayList<String>(); hierarchySearchMap = new HashMap<String, SelectOption>(); for (String s : hierarchy) { hierarchySearchMap.put(s, null); nodeSelectOrder.add(s); hierarchyLabels.put(s, sakaiProxy.getHierarchySearchLabel(s)); } Map<String, String> searchParams = new HashMap<String, String>(); for (Entry<String, SelectOption> entry : hierarchySearchMap.entrySet()) { String value = entry.getValue() == null ? "" : entry.getValue().getValue(); //in case user passed in a parameter, set it: if (hierarchySearchFields.containsKey(entry.getKey())) { value = hierarchySearchFields.get(entry.getKey()); } searchParams.put(entry.getKey(), value); } Map<String, Set<String>> hierarchyOptions = projectLogic.getHierarchySearchOptions(searchParams); hierarchySelectOptions = new HashMap<String, List<SelectOption>>(); for (Entry<String, Set<String>> entry : hierarchyOptions.entrySet()) { List<SelectOption> options = new ArrayList<SelectOption>(); for (String s : entry.getValue()) { SelectOption o = new SelectOption(s, s); options.add(o); if (searchParams.containsKey(entry.getKey()) && s.equals(searchParams.get(entry.getKey()))) { hierarchySearchMap.put(entry.getKey(), o); } } Collections.sort(options, optionComparator); hierarchySelectOptions.put(entry.getKey(), options); } } DataView dropdowns = new DataView("hierarchyDropdowns", new IDataProvider<String>() { @Override public void detach() { } @Override public Iterator<? extends String> iterator(int first, int count) { return nodeSelectOrder.subList(first, first + count).iterator(); } @Override public IModel<String> model(final String arg0) { return new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { return arg0; } }; } @Override public int size() { return nodeSelectOrder.size(); } }) { @Override protected void populateItem(Item item) { final String hierarchyLevel = item.getModelObject().toString(); item.add(new Label("hierarchyLabel", hierarchyLabels.containsKey(hierarchyLevel) ? hierarchyLabels.get(hierarchyLevel) : hierarchyLevel)); final DropDownChoice choice = new DropDownChoice("hierarchyLevel", new NodeSelectModel(hierarchyLevel), hierarchySelectOptions.get(hierarchyLevel), choiceRenderer); //keeps the null option (choose one) after a user selects an option choice.setNullValid(true); choice.add(new AjaxFormComponentUpdatingBehavior("onchange") { protected void onUpdate(AjaxRequestTarget target) { Map<String, String> searchParams = new HashMap<String, String>(); for (Entry<String, SelectOption> entry : hierarchySearchMap.entrySet()) { searchParams.put(entry.getKey(), entry.getValue() == null ? "" : entry.getValue().getValue()); } Map<String, Set<String>> hierarchyOptions = projectLogic .getHierarchySearchOptions(searchParams); hierarchySelectOptions = new HashMap<String, List<SelectOption>>(); for (Entry<String, Set<String>> entry : hierarchyOptions.entrySet()) { List<SelectOption> options = new ArrayList<SelectOption>(); for (String s : entry.getValue()) { options.add(new SelectOption(s, s)); } Collections.sort(options, optionComparator); hierarchySelectOptions.put(entry.getKey(), options); } //refresh everything: target.addComponent(form); } }); item.add(choice); } }; hierarchyDiv.add(dropdowns); form.add(hierarchyDiv); //show user's search (if not null) add(new Label("searchResultsTitle", new StringResourceModel("searchResultsTitle", null)) { @Override public boolean isVisible() { return (searchModel.getObject() != null && !"".equals(searchModel.getObject())) || (instructorFieldModel.getObject() != null && !"".equals(instructorFieldModel.getObject())) || (termFieldModel.getObject() != null && !"".equals(termFieldModel.getObject())) || hierarchyOptionSelected(); } }); add(new Label("searchString", searchStringModel) { @Override public boolean isVisible() { return (searchModel.getObject() != null && !"".equals(searchModel.getObject())) || (instructorFieldModel.getObject() != null && !"".equals(instructorFieldModel.getObject())) || (termFieldModel.getObject() != null && !"".equals(termFieldModel.getObject())) || hierarchyOptionSelected(); } }); add(new TextField("permaLink", permaLinkModel) { @Override public boolean isVisible() { return (searchModel.getObject() != null && !"".equals(searchModel.getObject())) || (instructorFieldModel.getObject() != null && !"".equals(instructorFieldModel.getObject())) || (termFieldModel.getObject() != null && !"".equals(termFieldModel.getObject())) || hierarchyOptionSelected(); } }); //search result table: //Headers final Link<Void> siteTitleSort = new Link<Void>("siteTitleSortLink") { private static final long serialVersionUID = 1L; public void onClick() { changeOrder(DelegatedAccessConstants.SEARCH_COMPARE_SITE_TITLE); } @Override public boolean isVisible() { return provider.size() > 0; } }; final Label siteTitleLabel = new Label("siteTitleLabel", new StringResourceModel("siteTitleHeader", null)); siteTitleSort.add(siteTitleLabel); add(siteTitleSort); final Link<Void> siteIdSort = new Link<Void>("siteIdSortLink") { private static final long serialVersionUID = 1L; public void onClick() { changeOrder(DelegatedAccessConstants.SEARCH_COMPARE_SITE_ID); } @Override public boolean isVisible() { return provider.size() > 0; } }; final Label siteIdSortLabel = new Label("siteIdSortLabel", new StringResourceModel("siteIdHeader", null)); siteIdSort.add(siteIdSortLabel); add(siteIdSort); final Link<Void> termSort = new Link<Void>("termSortLink") { private static final long serialVersionUID = 1L; public void onClick() { changeOrder(DelegatedAccessConstants.SEARCH_COMPARE_TERM); } @Override public boolean isVisible() { return provider.size() > 0; } }; final Label termSortLabel = new Label("termSortLabel", new StringResourceModel("termHeader", null)); termSort.add(termSortLabel); add(termSort); AbstractReadOnlyModel<String> instructorSortLabelModel = new AbstractReadOnlyModel<String>() { @Override public String getObject() { if (DelegatedAccessConstants.ADVANCED_SEARCH_INSTRUCTOR_TYPE_MEMBER .equals(selectedInstructorOption)) { return new StringResourceModel("member", null).getObject(); } else { return new StringResourceModel("instructor", null).getObject(); } } }; final Link<Void> instructorSort = new Link<Void>("instructorSortLink") { private static final long serialVersionUID = 1L; public void onClick() { changeOrder(DelegatedAccessConstants.SEARCH_COMPARE_INSTRUCTOR); } @Override public boolean isVisible() { return provider.size() > 0; } }; final Label instructorSortLabel = new Label("instructorSortLabel", instructorSortLabelModel); instructorSort.add(instructorSortLabel); add(instructorSort); final Link<Void> providersSort = new Link<Void>("providersSortLink") { private static final long serialVersionUID = 1L; public void onClick() { changeOrder(DelegatedAccessConstants.SEARCH_COMPARE_PROVIDERS); } @Override public boolean isVisible() { //this helps hide all the extra columns with the wicket:enclosure in the html return !isShoppingPeriodTool() && sakaiProxy.isProviderIdLookupEnabled(); } }; final Label providersSortLabel = new Label("providersSortLabel", new StringResourceModel("providers", null)); providersSort.add(providersSortLabel); add(providersSort); final Link<Void> publishedSort = new Link<Void>("publishedSortLink") { private static final long serialVersionUID = 1L; public void onClick() { changeOrder(DelegatedAccessConstants.SEARCH_COMPARE_PUBLISHED); } @Override public boolean isVisible() { //this helps hide all the extra columns with the wicket:enclosure in the html return !isShoppingPeriodTool(); } }; final Label publishedSortLabel = new Label("publishedSortLabel", new StringResourceModel("published", null)); publishedSort.add(publishedSortLabel); add(publishedSort); final Link<Void> accessSort = new Link<Void>("accessSortLink") { private static final long serialVersionUID = 1L; public void onClick() { changeOrder(DelegatedAccessConstants.SEARCH_COMPARE_ACCESS); } }; final Label accessSortLabel = new Label("accessSortLabel", new StringResourceModel("access", null)); accessSort.add(accessSortLabel); add(accessSort); final Link<Void> startDateSort = new Link<Void>("startDateSortLink") { private static final long serialVersionUID = 1L; public void onClick() { changeOrder(DelegatedAccessConstants.SEARCH_COMPARE_START_DATE); } @Override public boolean isVisible() { //this helps with the wicket:enlosure return statistics; } }; final Label startDateSortLabel = new Label("startDateSortLabel", new StringResourceModel("startDate", null)); startDateSort.add(startDateSortLabel); add(startDateSort); final Link<Void> endDateSort = new Link<Void>("endDateSortLink") { private static final long serialVersionUID = 1L; public void onClick() { changeOrder(DelegatedAccessConstants.SEARCH_COMPARE_END_DATE); } @Override public boolean isVisible() { return statistics; } }; final Label endDateSortLabel = new Label("endDateSortLabel", new StringResourceModel("endDate", null)); endDateSort.add(endDateSortLabel); add(endDateSort); final Label showAuthToolsHeader = new Label("showAuthToolsHeader", new StringResourceModel("showAuthToolsHeader", null)) { @Override public boolean isVisible() { return statistics; } }; add(showAuthToolsHeader); final Label showPublicToolsHeader = new Label("showPublicToolsHeader", new StringResourceModel("showPublicToolsHeader", null)) { @Override public boolean isVisible() { return statistics; } }; add(showPublicToolsHeader); final Link<Void> accessModifiedBySort = new Link<Void>("accessModifiedBySortLink") { private static final long serialVersionUID = 1L; public void onClick() { changeOrder(DelegatedAccessConstants.SEARCH_COMPARE_ACCESS_MODIFIED_BY); } @Override public boolean isVisible() { //this helps hide all the extra columns with the wicket:enclosure in the html return !isShoppingPeriodTool(); } }; final Label accessModifiedBySortLabel = new Label("accessModifiedBySortLabel", new StringResourceModel("accessModifiedBy", null)); accessModifiedBySort.add(accessModifiedBySortLabel); add(accessModifiedBySort); final Link<Void> accessModifiedOnSort = new Link<Void>("accessModifiedOnSortLink") { private static final long serialVersionUID = 1L; public void onClick() { changeOrder(DelegatedAccessConstants.SEARCH_COMPARE_ACCESS_MODIFIED); } @Override public boolean isVisible() { //this helps hide all the extra columns with the wicket:enclosure in the html return !isShoppingPeriodTool(); } }; final Label accessModifiedOnSortLabel = new Label("accessModifiedOnSortLabel", new StringResourceModel("accessModifiedOn", null)); accessModifiedOnSort.add(accessModifiedOnSortLabel); add(accessModifiedOnSort); //Data: provider = new SiteSearchResultDataProvider(); final DataView<SiteSearchResult> dataView = new DataView<SiteSearchResult>("searchResult", provider) { @Override public void populateItem(final Item item) { final SiteSearchResult siteSearchResult = (SiteSearchResult) item.getModelObject(); AjaxLink<Void> siteTitleLink = new AjaxLink("siteTitleLink") { private static final long serialVersionUID = 1L; public void onClick(AjaxRequestTarget target) { if (siteSearchResult.getSiteUrl() != null) { //redirect the user to the site target.appendJavascript("popupWindow('" + siteSearchResult.getSiteUrl() + "', '" + new StringResourceModel("popupBlockWarning", null).getObject() + "')"); } } }; siteTitleLink.add(new Label("siteTitle", siteSearchResult.getSiteTitle())); item.add(siteTitleLink); final String siteRef = siteSearchResult.getSiteReference(); final String siteId = siteSearchResult.getSiteId(); item.add(new Label("siteId", siteId)); item.add(new Label("term", siteSearchResult.getSiteTerm())); item.add(new Label("instructor", new AbstractReadOnlyModel<String>() { @Override public String getObject() { return siteSearchResult.getInstructorsString(); } })); item.add(new Link<Void>("instructorLookupLink") { private static final long serialVersionUID = 1L; public void onClick() { boolean foundInstructors = false; for (User user : sakaiProxy.getInstructorsForSite(siteId)) { siteSearchResult.addInstructor(user); foundInstructors = true; } if (!foundInstructors) { siteSearchResult.setHasInstructor(false); } } @Override public boolean isVisible() { return (instructorField == null || "".equals(instructorField)) && siteSearchResult.isHasInstructor() && siteSearchResult.getInstructors().size() == 0; } }); item.add(new Label("providers", new AbstractReadOnlyModel<String>() { @Override public String getObject() { return siteSearchResult.getProviders(); } }) { @Override public boolean isVisible() { return !isShoppingPeriodTool() && sakaiProxy.isProviderIdLookupEnabled(); } }); item.add(new Link<Void>("providersLookupLink") { private static final long serialVersionUID = 1L; public void onClick() { String providers = sakaiProxy.getProviderId(siteRef); if (providers == null || "".equals(providers)) { //set it to a empty space so that the link will hide itself providers = " "; } siteSearchResult.setProviders(providers); } @Override public boolean isVisible() { return !isShoppingPeriodTool() && sakaiProxy.isProviderIdLookupEnabled() && "".equals(siteSearchResult.getProviders()); } }); StringResourceModel publishedModel = siteSearchResult.isSitePublished() ? new StringResourceModel("yes", null) : new StringResourceModel("no", null); item.add(new Label("published", publishedModel) { @Override public boolean isVisible() { return !isShoppingPeriodTool(); } }); String access = isShoppingPeriodTool() ? siteSearchResult.getAccessRoleString() : siteSearchResult.getAccessString(); item.add(new Label("access", access)); item.add(new Label("startDate", siteSearchResult.getShoppingPeriodStartDateStr()) { @Override public boolean isVisible() { //this helps hide all the extra columns with the wicket:enclosure in the html return statistics; } }); item.add(new Label("endDate", siteSearchResult.getShoppingPeriodEndDateStr())); item.add(new Label("showAuthTools", siteSearchResult.getAuthToolsString(toolsMap))); item.add(new Label("showPublicTools", siteSearchResult.getPublicToolsString(toolsMap))); item.add(new Label("accessModifiedBy", siteSearchResult.getModifiedBySortName()) { @Override public boolean isVisible() { //this helps hide all the extra columns with the wicket:enclosure in the html return !isShoppingPeriodTool(); } }); item.add(new Label("accessModified", siteSearchResult.getModifiedStr())); } @Override public boolean isVisible() { return provider.size() > 0; } }; dataView.setItemReuseStrategy(new DefaultItemReuseStrategy()); dataView.setItemsPerPage(DelegatedAccessConstants.SEARCH_RESULTS_PAGE_SIZE); add(dataView); IModel<File> exportSearchModel = new AbstractReadOnlyModel<File>() { @Override public File getObject() { List<SiteSearchResult> data = provider.getData(); try { String seperator = ","; String lineBreak = "\n"; File file = File.createTempFile( new StringResourceModel("searchExportFileName", null).getObject(), ".csv"); FileWriter writer = new FileWriter(file.getAbsolutePath()); //write headers: StringBuffer sb = new StringBuffer(); if (siteTitleSort.isVisible()) { sb.append("\""); sb.append(siteTitleLabel.getDefaultModelObjectAsString()); sb.append("\""); sb.append(seperator); } if (instructorSort.isVisible()) { sb.append("\""); sb.append(instructorSortLabel.getDefaultModelObjectAsString()); sb.append("\""); sb.append(seperator); } if (termSort.isVisible()) { sb.append("\""); sb.append(termSortLabel.getDefaultModelObjectAsString()); sb.append("\""); sb.append(seperator); } if (siteIdSort.isVisible()) { sb.append("\""); sb.append(siteIdSortLabel.getDefaultModelObjectAsString()); sb.append("\""); sb.append(seperator); } if (providersSort.isVisible()) { sb.append("\""); sb.append(providersSortLabel.getDefaultModelObjectAsString()); sb.append("\""); sb.append(seperator); } if (publishedSort.isVisible()) { sb.append("\""); sb.append(publishedSortLabel.getDefaultModelObjectAsString()); sb.append("\""); sb.append(seperator); } if (accessSort.isVisible()) { sb.append("\""); sb.append(accessSortLabel.getDefaultModelObjectAsString()); sb.append("\""); sb.append(seperator); } if (startDateSort.isVisible()) { sb.append("\""); sb.append(startDateSortLabel.getDefaultModelObjectAsString()); sb.append("\""); sb.append(seperator); } if (endDateSort.isVisible()) { sb.append("\""); sb.append(endDateSortLabel.getDefaultModelObjectAsString()); sb.append("\""); sb.append(seperator); } if (showAuthToolsHeader.isVisible()) { sb.append("\""); sb.append(showAuthToolsHeader.getDefaultModelObjectAsString()); sb.append("\""); sb.append(seperator); } if (showPublicToolsHeader.isVisible()) { sb.append("\""); sb.append(showPublicToolsHeader.getDefaultModelObjectAsString()); sb.append("\""); sb.append(seperator); } if (accessModifiedBySort.isVisible()) { sb.append("\""); sb.append(accessModifiedBySortLabel.getDefaultModelObjectAsString()); sb.append("\""); sb.append(seperator); } if (accessModifiedOnSort.isVisible()) { sb.append("\""); sb.append(accessModifiedOnSortLabel.getDefaultModelObjectAsString()); sb.append("\""); sb.append(seperator); } sb.append(lineBreak); String yes = new StringResourceModel("yes", null).getObject(); String no = new StringResourceModel("no", null).getObject(); for (SiteSearchResult siteSearchResult : data) { if (siteTitleSort.isVisible()) { sb.append("\""); sb.append(siteSearchResult.getSiteTitle()); sb.append("\""); sb.append(seperator); } if (instructorSort.isVisible()) { if (siteSearchResult.isHasInstructor() && siteSearchResult.getInstructors().size() == 0) { //we need to look up instructor: boolean foundInstructors = false; for (User user : sakaiProxy.getInstructorsForSite(siteSearchResult.getSiteId())) { siteSearchResult.addInstructor(user); foundInstructors = true; } if (!foundInstructors) { siteSearchResult.setHasInstructor(false); } } sb.append("\""); sb.append(siteSearchResult.getInstructorsString()); sb.append("\""); sb.append(seperator); } if (termSort.isVisible()) { sb.append("\""); sb.append(siteSearchResult.getSiteTerm()); sb.append("\""); sb.append(seperator); } if (siteIdSort.isVisible()) { sb.append("\""); sb.append(siteSearchResult.getSiteId()); sb.append("\""); sb.append(seperator); } if (providersSort.isVisible()) { if ("".equals(siteSearchResult.getProviders())) { //look up providers if it isn't already set siteSearchResult.setProviders( sakaiProxy.getProviderId(siteSearchResult.getSiteReference())); } sb.append("\""); sb.append(siteSearchResult.getProviders()); sb.append("\""); sb.append(seperator); } if (publishedSort.isVisible()) { sb.append("\""); sb.append((siteSearchResult.isSitePublished() ? yes : no)); sb.append("\""); sb.append(seperator); } if (accessSort.isVisible()) { sb.append("\""); sb.append((isShoppingPeriodTool() ? siteSearchResult.getAccessRoleString() : siteSearchResult.getAccessString())); sb.append("\""); sb.append(seperator); } if (startDateSort.isVisible()) { sb.append("\""); sb.append(siteSearchResult.getShoppingPeriodStartDateStr()); sb.append("\""); sb.append(seperator); } if (endDateSort.isVisible()) { sb.append("\""); sb.append(siteSearchResult.getShoppingPeriodEndDateStr()); sb.append("\""); sb.append(seperator); } if (showAuthToolsHeader.isVisible()) { sb.append("\""); sb.append(siteSearchResult.getAuthToolsString(toolsMap)); sb.append("\""); sb.append(seperator); } if (showPublicToolsHeader.isVisible()) { sb.append("\""); sb.append(siteSearchResult.getPublicToolsString(toolsMap)); sb.append("\""); sb.append(seperator); } if (accessModifiedBySort.isVisible()) { sb.append("\""); sb.append(siteSearchResult.getModifiedBySortName()); sb.append("\""); sb.append(seperator); } if (accessModifiedOnSort.isVisible()) { sb.append("\""); sb.append(siteSearchResult.getModifiedStr()); sb.append("\""); sb.append(seperator); } sb.append(lineBreak); } writer.append(sb.toString()); writer.flush(); writer.close(); return file; } catch (IOException e) { log.error(e.getMessage(), e); return null; } } }; add(new DownloadLink("exportData", exportSearchModel) { @Override public void onClick() { Object fileObj = getModelObject(); if (fileObj != null && fileObj instanceof File) { File file = (File) fileObj; IResourceStream resourceStream = new FileResourceStream( new org.apache.wicket.util.file.File(file)); getRequestCycle().setRequestTarget( new ResourceStreamRequestTarget(resourceStream, file.getName()).setFileName( new StringResourceModel("searchExportFileName", null).getObject() + ".csv")); } } }); //Navigation //add a pager to our table, only visible if we have more than SEARCH_RESULTS_PAGE_SIZE items add(new PagingNavigator("navigatorTop", dataView) { @Override public boolean isVisible() { if (provider.size() > DelegatedAccessConstants.SEARCH_RESULTS_PAGE_SIZE) { return true; } return false; } @Override public void onBeforeRender() { super.onBeforeRender(); //clear the feedback panel messages clearFeedback(feedbackPanel); } }); add(new PagingNavigator("navigatorBottom", dataView) { @Override public boolean isVisible() { if (provider.size() > DelegatedAccessConstants.SEARCH_RESULTS_PAGE_SIZE) { return true; } return false; } @Override public void onBeforeRender() { super.onBeforeRender(); //clear the feedback panel messages clearFeedback(feedbackPanel); } }); }
From source file:org.sakaiproject.scorm.ui.reporting.pages.BaseResultsPage.java
License:Educational Community License
public BaseResultsPage(PageParameters pageParams) { super(pageParams); long contentPackageId = pageParams.getLong("contentPackageId"); String learnerId = pageParams.getString("learnerId"); if (learnerId == null) { // this is a student coming directly from the package list. learnerId = lms.currentLearnerId(); }//from w ww . java 2 s. c om String learnerName = "[name unavailable]"; Learner learner; boolean learnerFound = false; try { learner = lms.getLearner(learnerId); learnerFound = true; } catch (LearnerNotDefinedException lnde) { LOG.error("Could not find learner for this id: " + learnerId, lnde); learner = new Learner(learnerId, learnerName, "[id unavailable]"); } LearnerDetailsPanel learnerDetailsPanel = new LearnerDetailsPanel("learnerDetails", new Model<Learner>(learner)); add(learnerDetailsPanel); learnerDetailsPanel.setVisible(learnerFound); ContentPackage contentPackage = contentService.getContentPackage(contentPackageId); String scoId = pageParams.getString("scoId"); String interactionId = pageParams.getString("interactionId"); int numberOfAttempts = resultService.getNumberOfAttempts(contentPackageId, learnerId); long attemptNumber = 0; /** @NOTE hide unnecessary bits */ if (pageParams.containsKey("attemptNumber")) { attemptNumber = pageParams.getLong("attemptNumber"); } if (attemptNumber == 0) { attemptNumber = numberOfAttempts; } this.attemptNumberLinks = new RepeatingView("attemptNumberLinks"); add(attemptNumberLinks); for (long i = 1; i <= numberOfAttempts; i++) { addAttemptNumberLink(i, pageParams, attemptNumberLinks, attemptNumber, contentPackage, scoId, learner); } initializePage(contentPackage, learner, attemptNumber, pageParams); String[] siblingIds = resultService.getSiblingIds(contentPackageId, learnerId, attemptNumber, scoId, interactionId); Link previousLink = newPreviousLink(siblingIds[0], pageParams); Link nextLink = newNextLink(siblingIds[1], pageParams); Icon previousIcon = new Icon("previousIcon", PREV_ICON); Icon nextIcon = new Icon("nextIcon", NEXT_ICON); previousLink.setVisible(isPreviousLinkVisible(siblingIds)); nextLink.setVisible(isNextLinkVisible(siblingIds)); previousIcon.setVisible(previousLink.isVisible()); nextIcon.setVisible(nextLink.isVisible()); add(previousLink); add(previousIcon); add(nextLink); add(nextIcon); }