Example usage for org.apache.wicket.markup.repeater.data DataView DataView

List of usage examples for org.apache.wicket.markup.repeater.data DataView DataView

Introduction

In this page you can find the example usage for org.apache.wicket.markup.repeater.data DataView DataView.

Prototype

protected DataView(String id, IDataProvider<T> dataProvider, long itemsPerPage) 

Source Link

Usage

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;
        }
    });
}