List of usage examples for org.apache.wicket.markup.html.link DownloadLink DownloadLink
public DownloadLink(String id, IModel<File> model)
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 ww w.ja v a 2 s. c om } 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.yafra.wicket.admin.YafraUserPage.java
License:Apache License
/** * constructor/* w ww .ja v a 2 s . c o m*/ */ public YafraUserPage() { //final YafraUserDP userProvider = new YafraUserDP(); List<IColumn<MYafraUser, String>> columns = new ArrayList<IColumn<MYafraUser, String>>(); columns.add(new AbstractColumn<MYafraUser, String>(new Model<String>("Actions")) { @Override public void populateItem(Item<ICellPopulator<MYafraUser>> cellItem, String componentId, IModel<MYafraUser> model) { cellItem.add(new ActionPanel(componentId, model)); } }); columns.add(new PropertyColumn(new Model<String>("First Name"), "name", "name")); columns.add(new PropertyColumn(new Model<String>("User ID"), "id", "id")); columns.add(new PropertyColumn(new Model("Picture"), "link", "link") { }); DefaultDataTable table = new DefaultDataTable("datatable", columns, new YafraUserDP(), 20); add(table); add(new DownloadLink("excelExport", new AbstractReadOnlyModel<File>() { private static final long serialVersionUID = 1L; @Override public File getObject() { File tempFile = null; try { tempFile = File.createTempFile("yafra", ".xls"); IModel<List<MYafraUser>> list = new YafraUserDM(); Iterator<MYafraUser> it = list.getObject().iterator(); //InputStream data; WritableWorkbook w = Workbook.createWorkbook(tempFile); WritableSheet s = w.createSheet("Demo", 0); MYafraUser myu = null; int i = 1; CellView autoSizeCV = new CellView(); autoSizeCV.setAutosize(true); s.setColumnView(0, autoSizeCV); s.setColumnView(1, autoSizeCV); s.setColumnView(2, autoSizeCV); s.addCell(new Label(0, 0, "Name")); s.addCell(new Label(1, 0, "User ID")); s.addCell(new Label(2, 0, "Picture link")); while (it.hasNext()) { myu = it.next(); s.addCell(new Label(0, i, myu.getName())); s.addCell(new Label(1, i, myu.getUserid())); s.addCell(new Label(2, i, myu.getPicturelink())); i++; } w.write(); w.close(); } catch (IOException e) { throw new RuntimeException(e); } catch (JXLException e) { e.printStackTrace(); } return tempFile; } }).setCacheDuration(Duration.NONE).setDeleteAfterDownload(true)); }
From source file:uk.ac.rdg.evoportal.pages.ComputeJobOutputFilesDataView.java
License:Apache License
@Override protected void populateItem(Item item) { final OutputFile jobFile = (OutputFile) item.getModelObject(); File file = jobFile.getFile(); final DownloadLink downloadLink = new DownloadLink("fileLink", file); downloadLink.add(new Label("fileName", file.getName())); item.add(downloadLink);/*from w ww . j av a 2s .c om*/ // if it's a parameters file, add taillink, not downloadlink String fileName = file.getName(); int dotPos = fileName.lastIndexOf("."); String extension = fileName.substring(dotPos); final TailLink tailLink = new TailLink("tailLink", file, jobID); tailLink.add(new Label("tailLabel", "(tail)")); tailLink.setVisible(false); if (".parameters".equalsIgnoreCase(extension)) { tailLink.setVisible(true); } item.add(tailLink); }
From source file:uk.ac.rdg.evoportal.pages.InputFilesDataView.java
License:Apache License
@Override protected void populateItem(Item item) { final InputFile inputFile = (InputFile) item.getModelObject(); File file = inputFile.getFile(); item.add(new Label("lastModified", DateFormat.getDateInstance(DateFormat.MEDIUM).format(new Date(file.lastModified())))); final DownloadLink downloadLink = new DownloadLink("fileLink", file); downloadLink.add(new Label("fileName", file.getName())); item.add(downloadLink);// www . j a v a2 s. c o m String fileStats = ""; NexusFileBuilder builder = new NexusFileBuilder(); try { NexusFileFormat.parseFile(builder, file); NexusFile parsedFile = builder.getNexusFile(); String current_block_name; DataBlock dataBlock = null; for (Iterator i = parsedFile.blockIterator(); i.hasNext();) { NexusBlock block = (NexusBlock) i.next(); current_block_name = block.getBlockName(); if (current_block_name.equalsIgnoreCase("DATA")) { dataBlock = (DataBlock) block; } } fileStats = "datatype=" + dataBlock.getDataType() + "; ntaxa=" + dataBlock.getDimensionsNTax() + "; nchars=" + dataBlock.getDimensionsNChar(); } catch (IOException ex) { LOG.log(Level.SEVERE, null, ex); } catch (ParseException ex) { LOG.log(Level.SEVERE, null, ex); } item.add(new Label("nexusDataStats", fileStats)); item.add(new Label("fileSize", (file.length() / 1024) + " kilobytes")); item.add(new DeleteLink("deleteLink", ((LoginSession) getSession()).getUsername(), file.getName())); }
From source file:uk.ac.rdg.evoportal.pages.ScaleTestComputeJobOutputFilesDataView.java
License:Apache License
@Override protected void populateItem(Item item) { final OutputFile jobFile = (OutputFile) item.getModelObject(); File file = jobFile.getFile(); final DownloadLink downloadLink = new DownloadLink("fileLink", file); downloadLink.add(new Label("fileName", file.getName())); item.add(downloadLink);//from w w w .jav a 2 s. c om // if it's a parameters file, add taillink, not downloadlink String fileName = file.getName(); int dotPos = fileName.lastIndexOf("."); String extension = fileName.substring(dotPos); final TailLink tailLink = new TailLink("tailLink", file, jobID, testID); tailLink.add(new Label("tailLabel", "(tail)")); tailLink.setVisible(false); if (".parameters".equalsIgnoreCase(extension)) { tailLink.setVisible(true); } item.add(tailLink); }