List of usage examples for org.apache.wicket.markup.repeater.data DataView DataView
protected DataView(String id, IDataProvider<T> dataProvider, long itemsPerPage)
From source file:almira.sample.web.SearchResultPanel.java
License:Apache License
/** * Constructor./*from ww w .j a v a 2s . c o m*/ * * @param id component id * @param searchQuery the search query */ public SearchResultPanel(String id, String searchQuery) { super(id); IDataProvider<Catapult> dataProvider; if (searchQuery == null) { dataProvider = new CatapultListDataProvider(catapultQueryService); } else { dataProvider = new CatapultSearchDataProvider(catapultQueryService, searchQuery); } DataView<Catapult> dataView = new DataView<Catapult>("rows", dataProvider, ITEMS_PER_PAGE) { @Override protected void populateItem(Item<Catapult> item) { final Catapult catapult = item.getModelObject(); item.setModel(new CompoundPropertyModel<Catapult>(catapult)); item.add(new Label("id")); item.add(new Label("name")); item.add(new Label("created")); item.add(new Label("lastModified")); item.add(new Link<Catapult>("delete", item.getModel()) { @Override public void onClick() { // Detached object: Need to delete by ID! catapultUpdateService.delete(catapult.getId()); } }); } }; add(dataView); add(new PagingNavigator("footerPaginator", dataView)); }
From source file:au.org.theark.disease.web.component.affection.SearchResultListPanel.java
License:Open Source License
public DataView<AffectionVO> buildDataView( final ArkDataProvider<AffectionVO, IArkDiseaseService> diseaseProvider) { DataView<AffectionVO> studyCompDataView = new DataView<AffectionVO>("affectionList", diseaseProvider, iArkCommonService.getUserConfig(Constants.CONFIG_ROWS_PER_PAGE).getIntValue()) { @Override//from ww w . j a v a 2 s . c o m protected void populateItem(final Item<AffectionVO> item) { Affection affection = item.getModelObject().getAffection(); item.add(new Label("affection.id", affection.getId().toString())); item.add(buildLink(item.getModelObject())); item.add(new Label("affection.recordDate", affection.getRecordDate().toString())); item.add(new Label("affection.status", affection.getAffectionStatus().getName())); item.add(new AttributeModifier(Constants.CLASS, new AbstractReadOnlyModel() { @Override public String getObject() { return (item.getIndex() % 2 == 1) ? Constants.EVEN : Constants.ODD; } })); } }; return studyCompDataView; }
From source file:au.org.theark.study.web.component.contact.PhoneListPanel.java
License:Open Source License
/** * Create a dataview for display and navigate purposes. * // w ww .j ava 2 s . com * @param phoneProvider * @return */ private DataView<Phone> buildDataView(ArkDataProvider<Phone, IStudyService> phoneProvider) { DataView<Phone> phoneListDataView = new DataView<Phone>("phoneList", phoneProvider, iArkCommonService.getUserConfig(au.org.theark.core.Constants.CONFIG_ROWS_PER_PAGE).getIntValue()) { private static final long serialVersionUID = 1L; @Override protected void populateItem(final Item<Phone> item) { Phone phone = item.getModelObject(); item.add(buildLink(phone)); if (phone.getId() != null) { item.add(new Label("id", phone.getId().toString())); } else { item.add(new Label("id", "")); } if (phone.getAreaCode() != null) { item.add(new Label("areaCode", phone.getAreaCode())); } else { item.add(new Label("areaCode", "")); } if (phone.getPhoneType() != null && phone.getPhoneType().getName() != null) { item.add(new Label("phoneType.name", phone.getPhoneType().getName())); } else { item.add(new Label("phoneType.name", "")); } if (phone.getPhoneStatus() != null && phone.getPhoneStatus().getName() != null) { item.add(new Label("phoneStatus.name", phone.getPhoneStatus().getName())); } else { item.add(new Label("phoneStatus.name", "")); } if (phone.getValidFrom() != null) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat( au.org.theark.core.Constants.DD_MM_YYYY); String dateValidFrom = ""; dateValidFrom = simpleDateFormat.format(phone.getValidFrom()); item.add(new Label("validFrom", dateValidFrom)); } else { item.add(new Label("validFrom", "")); } if (phone.getValidTo() != null) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat( au.org.theark.core.Constants.DD_MM_YYYY); String dateValidTo = ""; dateValidTo = simpleDateFormat.format(phone.getValidTo()); item.add(new Label("validTo", dateValidTo)); } else { item.add(new Label("validTo", "")); } if (phone.getPreferredPhoneNumber() != null && phone.getPreferredPhoneNumber() == true) { item.add(new ContextImage("phone.preferredPhoneNumber", new Model<String>("images/icons/tick.png"))); } else { item.add(new Label("phone.preferredPhoneNumber", "")); } item.add(new AttributeModifier("class", new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { return (item.getIndex() % 2 == 1) ? "even" : "odd"; } })); } }; return phoneListDataView; }
From source file:au.org.theark.study.web.component.contact.PhoneListPanel.java
License:Open Source License
/** * Create a dataview for only export purposes. * // ww w.j a v a 2 s . c o m * @param phoneProvider * @return */ private DataView<PhoneSubjectVO> buildDataViewWithStudySubjectID( ArkDataProvider<PhoneSubjectVO, IStudyService> phoneProvider) { DataView<PhoneSubjectVO> phoneListDataView = new DataView<PhoneSubjectVO>("phoneListWithSubjectID", subjectPhoneProvider, iArkCommonService.getUserConfig(au.org.theark.core.Constants.CONFIG_ROWS_PER_PAGE).getIntValue()) { private static final long serialVersionUID = 1L; @Override protected void populateItem(final Item<PhoneSubjectVO> item) { PhoneSubjectVO phoneSubjectVO = item.getModelObject(); if (phoneSubjectVO.getSubjectUID() != null) { item.add(new Label("subjectUId", phoneSubjectVO.getSubjectUID())); } else { item.add(new Label("subjectUId", "")); } if (phoneSubjectVO.getId() != null) { item.add(new Label("id", phoneSubjectVO.getId().toString())); } else { item.add(new Label("id", "")); } if (phoneSubjectVO.getAreaCode() != null) { item.add(new Label("areaCode", phoneSubjectVO.getAreaCode())); } else { item.add(new Label("areaCode", "")); } if (phoneSubjectVO.getPhoneType() != null && phoneSubjectVO.getPhoneType().getName() != null) { item.add(new Label("phoneType.name", phoneSubjectVO.getPhoneType().getName())); } else { item.add(new Label("phoneType.name", "")); } item.add(new AttributeModifier("class", new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { return (item.getIndex() % 2 == 1) ? "even" : "odd"; } })); } }; return phoneListDataView; }
From source file:com.asptt.plongee.resa.ui.web.wicket.page.admin.GererAdherents.java
@SuppressWarnings("serial") public GererAdherents() { setPageTitle("Gerer les adherents"); setOutputMarkupId(true);/*from w ww. j ava 2s . c o m*/ modal2 = new ModalWindow("modal2"); modal2.setTitle("This is modal window with panel content."); modal2.setCookieName("modal-adherent"); add(modal2); modalSupp = new ModalWindow("modalSupp"); modalSupp.setTitle("Confirmation"); modalSupp.setResizable(false); modalSupp.setInitialWidth(30); modalSupp.setInitialHeight(15); modalSupp.setWidthUnit("em"); modalSupp.setHeightUnit("em"); modalSupp.setCssClassName(ModalWindow.CSS_CLASS_BLUE); add(modalSupp); modalPwd = new ModalWindow("modalPwd"); modalPwd.setTitle("Confirmation"); modalPwd.setResizable(false); modalPwd.setInitialWidth(30); modalPwd.setInitialHeight(15); modalPwd.setWidthUnit("em"); modalPwd.setHeightUnit("em"); modalPwd.setCssClassName(ModalWindow.CSS_CLASS_BLUE); add(modalPwd); List<Adherent> adherents = getResaSession().getAdherentService().rechercherAdherentsTous(); // On construit la liste des adhrents (avec pagination) DataView adherentsView = new DataView<Adherent>("simple", new AdherentDataProvider(adherents), 10) { protected void populateItem(final Item<Adherent> item) { final Adherent adherent = item.getModelObject(); item.add(new IndicatingAjaxLink("select") { @Override public void onClick(AjaxRequestTarget target) { replaceModalWindow(target, item.getModel()); modal2.show(target); } }); item.add(new IndicatingAjaxLink("suppAdh") { @Override public void onClick(AjaxRequestTarget target) { replaceModalWindowSupp(target, item.getModel()); modalSupp.show(target); } }); item.add(new IndicatingAjaxLink("pwdAdh") { @Override public void onClick(AjaxRequestTarget target) { replaceModalWindowPwd(target, item.getModel()); modalPwd.show(target); } }); item.add(new Label("license", adherent.getNumeroLicense())); item.add(new Label("nom", adherent.getNom())); item.add(new Label("prenom", adherent.getPrenom())); // Ds que le plongeur est encadrant, on affiche son niveau d'encadrement String niveauAffiche = adherent.getPrerogative(); item.add(new Label("niveau", niveauAffiche)); item.add(new Label("aptitude", adherent.getAptitude())); item.add(new AttributeModifier("class", true, new AbstractReadOnlyModel<String>() { @Override public String getObject() { String cssClass; if (item.getIndex() % 2 == 1) { cssClass = "even"; } else { cssClass = "odd"; } if (!adherent.isActif()) { cssClass = cssClass + " inactif"; } return cssClass; } })); } }; adherentsView.setOutputMarkupId(true); add(adherentsView); add(new PagingNavigator("navigator", adherentsView)); add(new AdherentForm("form")); }
From source file:com.asptt.plongee.resa.ui.web.wicket.page.consultation.InfoAdherent.java
private void init() { // private static final long serialVersionUID = 5374674730458593314L; Adherent adherent = getResaSession().getAdherentService() .rechercherAdherentParIdentifiant(getResaSession().getAdherent().getNumeroLicense()); add(new Label("nom", adherent.getNom())); add(new Label("prenom", adherent.getPrenom())); add(new Label("numeroLicense", adherent.getNumeroLicense())); add(new Label("telephone", adherent.getTelephone())); add(new Label("mail", adherent.getMail())); add(new Label("niveau", adherent.getNiveau())); add(new Label("aptitude", adherent.getAptitude())); // Ajout de la checkbox pilote if (adherent.isPilote()) { add(new Label("pilote", "oui")); } else {// ww w. j a va 2s. c o m add(new Label("pilote", "non")); } // Ajout de la liste des niveaux d'encadrement add(new Label("encadrement", adherent.getEncadrement())); SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); add(new Label("dateCM", sdf.format(adherent.getDateCM()))); List<ContactUrgent> contactUrgents = adherent.getContacts(); DataView cuView = new DataView<ContactUrgent>("cuView", new ContactUrgentDataProvider(contactUrgents), 20) { @Override protected void populateItem(final Item<ContactUrgent> item) { final ContactUrgent contact = (ContactUrgent) item.getModelObject(); item.add(new Label("titre", contact.getTitre())); item.add(new Label("nom", contact.getNom())); item.add(new Label("prenom", contact.getPrenom())); item.add(new Label("telephone", contact.getTelephone())); item.add(new Label("telephtwo", contact.getTelephtwo())); item.add(new AttributeModifier("class", true, new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 5259097512265622750L; @Override public String getObject() { return (item.getIndex() % 2 == 1) ? "even" : "odd"; } })); } }; cuView.setOutputMarkupId(true); add(cuView); }
From source file:com.asptt.plongee.resa.wicket.page.consultation.InfoAdherent.java
private void init() { final Adherent adherent = ResaSession.get().getAdherentService() .rechercherAdherentParIdentifiant(ResaSession.get().getAdherent().getNumeroLicense()); add(new Label("nom", adherent.getNom())); add(new Label("prenom", adherent.getPrenom())); add(new Label("numeroLicense", adherent.getNumeroLicense())); add(new Label("telephone", adherent.getTelephone())); add(new Label("mail", adherent.getMail())); add(new Label("niveau", adherent.getNiveau().getText())); add(new Label("aptitude", adherent.getAptitude().getText())); // Ajout de la checkbox pilote if (adherent.isPilote()) { add(new Label("pilote", "oui")); } else {/*from ww w . j a v a2s . c om*/ add(new Label("pilote", "non")); } // Ajout de la liste des niveaux d'encadrement add(new Label("encadrement", adherent.getEncadrement().getText())); SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); add(new Label("dateCM", sdf.format(adherent.getDateCM()))); List<ContactUrgent> contactUrgents = adherent.getContacts(); DataView cuView = new DataView<ContactUrgent>("cuView", new ContactUrgentDataProvider(contactUrgents), 20) { @Override protected void populateItem(final Item<ContactUrgent> item) { final ContactUrgent contact = (ContactUrgent) item.getModelObject(); item.add(new Label("titre", contact.getTitre())); item.add(new Label("nom", contact.getNom())); item.add(new Label("prenom", contact.getPrenom())); item.add(new Label("telephone", contact.getTelephone())); item.add(new Label("telephtwo", contact.getTelephtwo())); item.add(new AttributeModifier("class", true, new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 5259097512265622750L; @Override public String getObject() { return (item.getIndex() % 2 == 1) ? "even" : "odd"; } })); } }; cuView.setOutputMarkupId(true); add(cuView); //add openPdf resouceLink with webResource pdf for visu FS add(new UtilsFSpdf().createWebResourcePdf(adherent, null)); }
From source file:com.axway.ats.testexplorer.pages.model.ColumnsDialog.java
License:Apache License
@SuppressWarnings({ "rawtypes" }) public ColumnsDialog(String id, final DataGrid grid, List<TableColumn> columnDefinitions) { super(id);/* w ww .j a v a 2s .c o m*/ setOutputMarkupId(true); this.dbColumnDefinitions = columnDefinitions; DataView<TableColumn> table = new DataView<TableColumn>("headers", new ListDataProvider<TableColumn>(dbColumnDefinitions), 100) { private static final long serialVersionUID = 1L; @Override protected void populateItem(final Item<TableColumn> item) { final TableColumn column = item.getModelObject(); item.add(new CheckBox("visible", new PropertyModel<Boolean>(column, "visible"))); item.add(new Label("columnName", new PropertyModel<String>(column, "columnName"))); item.add(new AjaxEventBehavior("click") { private static final long serialVersionUID = 1L; @Override protected void onEvent(AjaxRequestTarget target) { TableColumn tableColumn = (TableColumn) this.getComponent().getDefaultModelObject(); tableColumn.setVisible(!tableColumn.isVisible()); if (tableColumn.isVisible()) { item.add(AttributeModifier.replace("class", "selected")); } else { item.add(AttributeModifier.replace("class", "notSelected")); } grid.getColumnState().setColumnVisibility(tableColumn.getColumnId(), tableColumn.isVisible()); target.add(grid); target.add(this.getComponent()); open(target); } }); item.setOutputMarkupId(true); if (column.isVisible()) { item.add(AttributeModifier.replace("class", "selected")); } else { item.add(AttributeModifier.replace("class", "notSelected")); } } }; add(table); final Form<Void> columnDefinitionsForm = new Form<Void>("columnDefinitionsForm"); add(columnDefinitionsForm); AjaxSubmitLink saveButton = new AjaxSubmitLink("saveButton", columnDefinitionsForm) { private static final long serialVersionUID = 1L; @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); AjaxCallListener ajaxCallListener = new AjaxCallListener(); ajaxCallListener.onPrecondition("getTableColumnDefinitions(); "); attributes.getAjaxCallListeners().add(ajaxCallListener); } @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { String columnDefinitionsString = form.getRequest().getPostParameters() .getParameterValue("columnDefinitions").toString(); List<TableColumn> jsColDefinitions = asList(columnDefinitionsString); orderTableColumns(dbColumnDefinitions, jsColDefinitions); try { saveColumnDefinitionsToDb(jsColDefinitions); modifyDBColumnDefinitionList(jsColDefinitions); } catch (DatabaseAccessException dae) { throw new RuntimeException("Unable to save table Column definitions in db: " + ((TestExplorerSession) Session.get()).getDbName(), dae); } catch (SQLException sqle) { throw new RuntimeException("Unable to save table Column definitions in db: " + ((TestExplorerSession) Session.get()).getDbName(), sqle); } close(target); } }; add(AttributeModifier.append("class", "runsTableColDialogDivWrapper")); columnDefinitionsForm.add(saveButton); add(new Behavior() { private static final long serialVersionUID = 1L; @Override public void renderHead(Component component, IHeaderResponse response) { if (autoAddToHeader()) { String script = "jQuery.fn.center=function(){" + "this.css(\"position\",\"absolute\");" + "this.css(\"top\",(jQuery(window).height()-this.height())/2+jQuery(window).scrollTop()+\"px\");" + "this.css(\"left\",(jQuery(window).width()-this.width())/2+jQuery(window).scrollLeft()+\"px\");" + "return this};"; String css = "#settingsoverlay,.settingsoverlay,#settingsoverlay_high," + ".settingsoverlay_high{filter:Alpha(Opacity=40);" + "-moz-opacity:.4;opacity:.4;background-color:#444;display:none;position:absolute;" + "left:0;top:0;width:100%;height:100%;text-align:center;z-index:5000;}" + "#settingsoverlay_high,.settingsoverlay_high{z-index:6000;}" + "#settingsoverlaycontent,#settingsoverlaycontent_high{display:none;z-index:5500;" + "text-align:center;}.settingsoverlaycontent," + ".settingsoverlaycontent_high{display:none;z-index:5500;text-align:left;}" + "#settingsoverlaycontent_high,.settingsoverlaycontent_high{z-index:6500;}" + "#settingsoverlaycontent .modalborder," + "#settingsoverlaycontent_high .modalborder{padding:15px;width:300px;" + "border:1px solid #444;background-color:white;" + "-webkit-box-shadow:0 0 10px rgba(0,0,0,0.8);-moz-box-shadow:0 0 10px rgba(0,0,0,0.8);" + "box-shadow:0 0 10px rgba(0,0,0,0.8);" + "filter:progid:DXImageTransform.Microsoft.dropshadow(OffX=5,OffY=5,Color='gray');" + "-ms-filter:\"progid:DXImageTransform.Microsoft.dropshadow(OffX=5,OffY=5,Color='gray')\";}"; response.render(JavaScriptHeaderItem.forScript(script, null)); response.render(CssHeaderItem.forCSS(css, null)); if (isSupportIE6()) { response.render(JavaScriptHeaderItem .forReference(new PackageResourceReference(getClass(), "jquery.bgiframe.js"))); } } response.render(OnDomReadyHeaderItem.forScript(getJS())); } private String getJS() { StringBuilder sb = new StringBuilder(); sb.append("if (jQuery('#").append(getDivId()) .append("').length == 0) { jQuery(document.body).append('") .append(getDiv().replace("'", "\\'")).append("'); }"); return sb.toString(); } private String getDivId() { return getMarkupId() + "_ovl"; } private String getDiv() { if (isClickBkgToClose()) { return ("<div id=\"" + getDivId() + "\" class=\"settingsoverlayCD\" onclick=\"" + getCloseString() + "\"></div>"); } else { return ("<div id=\"" + getDivId() + "\" class=\"settingsoverlayCD\"></div>"); } } }); }
From source file:com.doculibre.constellio.wicket.panels.facets.CollectionSearchFacetPanel.java
License:Open Source License
public CollectionSearchFacetPanel(String id, IDataProvider searchResultsDataProvider) { super(id);/*from www. j a v a2 s.co m*/ int itemsPerPage = 10; visibleCollectionsModel = new VisibleCollectionsModel(); facetableCollectionsModel = newFacetableCollectionsModel(searchResultsDataProvider); IDataProvider dataProvider = new SortableListDataProvider(facetableCollectionsModel); DataView dataView = new DataView("collections", dataProvider, itemsPerPage) { @Override protected void populateItem(Item item) { int index = item.getIndex(); String itemStyleClass = getItemStyleClass(index); if (StringUtils.isNotBlank(itemStyleClass)) { item.add(new SimpleAttributeModifier("class", itemStyleClass)); } CollectionResult collectionResult = (CollectionResult) item.getModelObject(); Long collectionId = collectionResult.collectionId; final Long numFound = collectionResult.numFound; final ReloadableEntityModel<RecordCollection> collectionModel = new ReloadableEntityModel<RecordCollection>( RecordCollection.class, collectionId); IModel labelModel = new LoadableDetachableModel() { @Override protected Object load() { RecordCollection collection = collectionModel.getObject(); return getCollectionTitle(collection, numFound); } }; item.add(new LinkHolder("collectionLinkHolder", labelModel) { @Override protected WebMarkupContainer newLink(String id) { RecordCollection collection = collectionModel.getObject(); BaseSearchPage baseSearchPage = (BaseSearchPage) CollectionSearchFacetPanel.this.getPage(); SimpleSearch simpleSearch = baseSearchPage.getSimpleSearch(); SimpleSearch newSearch = simpleSearch.clone(); newSearch.setCollectionName(collection.getName()); newSearch.clearPages(); // newSearch.getSearchedFacets().clear(); PageFactoryPlugin pageFactoryPlugin = PluginFactory.getPlugin(PageFactoryPlugin.class); Class<? extends BaseSearchPage> pageClass = pageFactoryPlugin.getSearchResultsPage(); PageParameters params = SearchResultsPage.getParameters(newSearch); WebMarkupContainer link = newCollectionLink(id, collection, pageClass, params); link.add(new AttributeModifier("class", true, new LoadableDetachableModel() { @Override protected Object load() { RecordCollection collection = collectionModel.getObject(); BaseSearchPage baseSearchPage = (BaseSearchPage) getPage(); String collectionName = baseSearchPage.getSimpleSearch().getCollectionName(); return collection.getName().equals(collectionName) ? getSelectedStyleClass() : null; } })); return link; } @Override public void detachModels() { collectionModel.detach(); super.detachModels(); } @Override protected Component newLabel(String id, IModel labelModel) { return super.newLabel(id, labelModel).setEscapeModelStrings(false); } }); } }; add(dataView); AutoHidePagingNavigator pager = new ULAutoHidePagingNavigator("pager", dataView); add(pager); }
From source file:com.doculibre.constellio.wicket.panels.results.SearchResultsPanel.java
License:Open Source License
public SearchResultsPanel(String id, final SearchResultsDataProvider dataProvider) { super(id);/* w w w . ja v a2s. c om*/ setOutputMarkupId(true); List<TransfertSearchResultsPlugin> plugins = PluginFactory.getPlugins(TransfertSearchResultsPlugin.class); this.transfertLink = new AjaxLink("transfertLink") { @Override public void onClick(AjaxRequestTarget target) { transfertPanel.setVisible(true); transfertLink.setVisible(false); transfertActive = true; target.addComponent(SearchResultsPanel.this); } }; transfertLink.setVisible(!plugins.isEmpty() && ConstellioSession.get().getUser() != null && ConstellioSpringUtils.getIntelliGIDServiceInfo() != null); add(transfertLink); this.transfertPanel = new WebMarkupContainer("transfertPanel"); transfertPanel.setOutputMarkupId(true); transfertPanel.setVisible(false); add(transfertPanel); IModel allNoneModel = new Model() { @Override public Object getObject() { return allNone; } @Override public void setObject(Object object) { allNone = (Boolean) object; if (allNone) { Iterator it = dataProvider.iterator(0, dataProvider.size()); while (it.hasNext()) { SolrDocument document = (SolrDocument) it.next(); dataProvider.getSimpleSearch().getSelectedResults() .add(new Long(document.getFieldValue(IndexField.RECORD_ID_FIELD).toString())); } } else { dataProvider.getSimpleSearch().getSelectedResults().clear(); } } }; allNoneCheckbox = new AjaxCheckBox("allNoneCheckbox", allNoneModel) { @Override protected void onUpdate(AjaxRequestTarget target) { target.addComponent(SearchResultsPanel.this); } }; allNoneCheckbox.setOutputMarkupId(true); transfertPanel.add(allNoneCheckbox); errorMessageLabel = new Label("errorMessageLabel", new PropertyModel(this, "errorMessage")); errorMessageLabel.setOutputMarkupId(true); transfertPanel.add(errorMessageLabel); transfertPanel.add(new ListView("transfertButtons", plugins) { @Override protected void populateItem(ListItem item) { final TransfertSearchResultsPlugin plugin = ((TransfertSearchResultsPlugin) item.getModelObject()); AjaxLink link = new AjaxLink("launchTransfertLink") { @Override public void onClick(AjaxRequestTarget target) { errorMessage = null; List<Record> records = new ArrayList<Record>(); SimpleSearch search = dataProvider.getSimpleSearch(); RecordCollection collection = ConstellioSpringUtils.getRecordCollectionServices() .get(search.getCollectionName()); for (Long recordId : search.getSelectedResults()) { records.add(ConstellioSpringUtils.getRecordServices().get(recordId, collection)); } if (!records.isEmpty()) { doTransfert(plugin, target, records); } } private void doTransfert(final TransfertSearchResultsPlugin plugin, AjaxRequestTarget target, List<Record> records) { List<Record> transferedRecords = new ArrayList<Record>(); List<String> ids = new ArrayList<String>(); for (Record record : records) { try { ids.add(plugin.transfert(record)); transferedRecords.add(record); } catch (Throwable t) { t.printStackTrace(); errorMessage = t.getMessage(); break; } } if (errorMessage != null) { try { for (int i = 0; i < ids.size(); i++) { plugin.cancel(transferedRecords.get(i), ids.get(i)); } } catch (Throwable t) { t.printStackTrace(); } } else { plugin.afterTransfert(transferedRecords, ids); } target.addComponent(errorMessageLabel); } }; item.add(link); link.add(new Label("launchTransfertLabel", plugin.getLabelText())); } }); this.dataView = new DataView(DATA_VIEW_ID, dataProvider, dataProvider.getResultsPerPage()) { @Override protected void populateItem(Item item) { SolrDocument doc = (SolrDocument) item.getModelObject(); final Long id; RecordServices recordServices = ConstellioSpringUtils.getRecordServices(); if (doc.getFieldValue(IndexField.RECORD_ID_FIELD) != null) { Record record = recordServices.get(doc); id = record.getId(); if (record != null) { ConnectorInstance connectorInstance = record.getConnectorInstance(); final ReloadableEntityModel<ConnectorInstance> connectorInstanceModel = new ReloadableEntityModel<ConnectorInstance>( connectorInstance); ConnectorType connectorType = connectorInstance.getConnectorType(); ResourceReference imageResourceReference = new ResourceReference( "connectorType_" + connectorType.getId()) { @Override protected Resource newResource() { ConnectorInstance connectorInstance = (ConnectorInstance) connectorInstanceModel .getObject(); ConnectorType connectorType = connectorInstance.getConnectorType(); Resource imageResource; byte[] iconBytes = connectorType.getIconFileContent(); // Convert resource path to absolute path relative to base package if (iconBytes != null) { imageResource = new ByteArrayResource("image", iconBytes); } else { imageResource = PackageResource.get(ConnectorListPanel.class, "default_icon.gif"); } return imageResource; } }; item.add(new NonCachingImage("icon", imageResourceReference) { @Override public void detachModels() { connectorInstanceModel.detach(); super.detachModels(); } @Override public boolean isVisible() { boolean visible = super.isVisible(); if (visible) { SearchInterfaceConfigServices searchInterfaceConfigServices = ConstellioSpringUtils .getSearchInterfaceConfigServices(); SearchInterfaceConfig searchInterfaceConfig = searchInterfaceConfigServices .get(); visible = searchInterfaceConfig.isUseIconsInSearchResults(); } return visible; } }); } else { item.setVisible(false); } } else { item.add(new WebMarkupContainer("icon").setVisible(false)); id = null; } item.add(getSearchResultPanel("searchResultPanel", item, dataProvider)); item.add(new SearchResultTaggingPanel("taggingPanel", doc, dataProvider)); newRecordCheckbox(dataProvider, item, id); } private void newRecordCheckbox(final SearchResultsDataProvider dataProvider, Item item, final Long id) { IModel isChecked = new Model() { @Override public Object getObject() { return id != null && dataProvider.getSimpleSearch().getSelectedResults().contains(id); } @Override public void setObject(Object object) { if (id != null) { Boolean state = (Boolean) object; dataProvider.getSimpleSearch().getSelectedResults().remove(id); if (state) { dataProvider.getSimpleSearch().getSelectedResults().add(id); } else { allNone = false; } } } }; item.add(new AjaxCheckBox("checkedResults", isChecked) { @Override protected void onUpdate(AjaxRequestTarget target) { target.addComponent(allNoneCheckbox); } @Override public boolean isVisible() { return transfertActive; } }); } }; add(dataView); dataView.setOutputMarkupId(true); int page = dataProvider.getSimpleSearch().getPage(); int pageCount = dataView.getPageCount(); dataView.setCurrentPage(page == -1 ? pageCount - 1 : page); ConstellioPagingNavigator pagingNavigator = new ConstellioPagingNavigator("resultsPN", dataView); add(pagingNavigator); add(new WebMarkupContainer("noResultsMessage") { @Override public boolean isVisible() { return dataProvider.size() == 0; } }); }