Example usage for org.apache.wicket.markup.html.form CheckGroup CheckGroup

List of usage examples for org.apache.wicket.markup.html.form CheckGroup CheckGroup

Introduction

In this page you can find the example usage for org.apache.wicket.markup.html.form CheckGroup CheckGroup.

Prototype

public CheckGroup(String id) 

Source Link

Document

Constructor that will create a default model collection

Usage

From source file:at.molindo.esi4j.example.web.HomePage.java

License:Apache License

public HomePage() {
    add(new UrlSubmissionForm("urlForm"));

    _searchModel = new AbstractReadOnlyModel<Search>() {
        private final Search _search = new Search();

        @Override//from   w  ww  .j  a v a 2  s  . co m
        public Search getObject() {
            return _search;
        }
    };

    _searchResponseModel = new LoadableDetachableModel<ListenableActionFuture<SearchResponseWrapper>>() {

        @Override
        protected ListenableActionFuture<SearchResponseWrapper> load() {
            Search search = _searchModel.getObject();
            return _searchService.search(search.getQuery(), search.getCategories());
        }

    };

    IModel<List<SearchHitWrapper>> articlesModel = new AbstractReadOnlyModel<List<SearchHitWrapper>>() {

        @Override
        public List<SearchHitWrapper> getObject() {
            return _searchResponseModel.getObject().actionGet().getSearchHits();
        }

    };

    IModel<List<? extends TermsFacet.Entry>> facetsModel = new AbstractReadOnlyModel<List<? extends TermsFacet.Entry>>() {

        @Override
        public List<? extends TermsFacet.Entry> getObject() {
            Facets facets = _searchResponseModel.getObject().actionGet().getSearchResponse().getFacets();
            if (facets == null) {
                return Collections.emptyList();
            }

            TermsFacet facet = (TermsFacet) facets.facet("categories");
            if (facet == null) {
                return Collections.emptyList();
            }

            return facet.getEntries();
        }

    };

    add(new TextField<String>("search", new PropertyModel<String>(_searchModel, "query"))
            .add(new OnChangeUpdateSearchBehavior()));

    // category select
    add(_facetsContainer = new CheckGroup<String>("facetsContainer"));
    _facetsContainer.setOutputMarkupId(true).setRenderBodyOnly(false);
    _facetsContainer.add(new ListView<TermsFacet.Entry>("categoryFacets", facetsModel) {

        @Override
        protected IModel<TermsFacet.Entry> getListItemModel(
                IModel<? extends List<TermsFacet.Entry>> listViewModel, int index) {
            return new CompoundPropertyModel<TermsFacet.Entry>(super.getListItemModel(listViewModel, index));
        }

        @Override
        protected void populateItem(final ListItem<Entry> item) {
            CheckBox box;
            item.add(box = new CheckBox("check", new IModel<Boolean>() {

                @Override
                public Boolean getObject() {
                    return _searchModel.getObject().getCategories().contains(item.getModelObject().getTerm());
                }

                @Override
                public void setObject(Boolean checked) {
                    List<String> categories = _searchModel.getObject().getCategories();
                    String category = item.getModelObject().getTerm().string();
                    if (Boolean.TRUE.equals(checked)) {
                        categories.add(category);
                    } else {
                        categories.remove(category);
                    }
                }

                @Override
                public void detach() {
                }

            }));
            box.add(new OnChangeUpdateSearchBehavior());

            item.add(new SimpleFormComponentLabel("term",
                    box.setLabel(new PropertyModel<String>(item.getModel(), "term"))));
            item.add(new Label("count"));
        }

    });

    // search results
    add(_container = new WebMarkupContainer("container"));
    _container.setOutputMarkupId(true);
    _container.add(new Label("query", _searchModel.getObject().getQuery()));
    _container.add(new ListView<SearchHitWrapper>("result", articlesModel) {

        @Override
        protected IModel<SearchHitWrapper> getListItemModel(
                IModel<? extends List<SearchHitWrapper>> listViewModel, int index) {
            return new CompoundPropertyModel<SearchHitWrapper>(super.getListItemModel(listViewModel, index));
        }

        @Override
        protected void populateItem(final ListItem<SearchHitWrapper> item) {
            item.add(new Label("object.subject"));
            item.add(new Label("object.date"));
            item.add(new Label("object.body", new AbstractReadOnlyModel<String>() {

                @Override
                public String getObject() {
                    SearchHitWrapper wrapper = item.getModelObject();

                    HighlightField field = wrapper.getSearchHit().getHighlightFields().get("body");
                    if (field == null) {
                        return wrapper.getObject(Article.class).getBody();
                    }

                    Object[] fragments = field.getFragments();
                    if (fragments == null) {
                        return wrapper.getObject(Article.class).getBody();
                    }

                    return StringUtils.join(" ... ", fragments);
                }
            }));
            item.add(new ExternalLink("link", new PropertyModel<String>(item.getModel(), "object.url")));
            item.add(new ListView<String>("categories",
                    new PropertyModel<List<String>>(item.getModel(), "object.categories")) {

                @Override
                protected void populateItem(ListItem<String> item) {
                    item.add(new Label("name", item.getModel()));
                }
            });
        }

    });

    add(new IndicatingAjaxLink<Void>("rebuild") {

        @Override
        public void onClick(AjaxRequestTarget target) {
            _searchService.rebuild();
            updateSearch(target);
        }

    });

    add(new IndicatingAjaxLink<Void>("delete") {

        @Override
        public void onClick(AjaxRequestTarget target) {
            _articleService.deleteArticles();
            _searchService.refresh();
            updateSearch(target);
        }

    });
}

From source file:org.headsupdev.agile.app.milestones.EditMilestoneGroupForm.java

License:Open Source License

protected void layout(Form<MilestoneGroup> form) {
    form.setModel(new CompoundPropertyModel<MilestoneGroup>(group));

    form.add(new Label("project", group.getProject().getAlias()));
    if (creating) {
        form.add(new TextField<String>("name").add(new NamePatternValidator()).setRequired(true));
        form.add(new WebMarkupContainer("name-label").setVisible(false));
        //            form.add( new Label( "created", new FormattedDateModel( new Date() ) ) );
    } else {/*w w w  . jav  a2s . co m*/
        form.add(new Label("name-label", group.getName()));
        form.add(new WebMarkupContainer("name").setVisible(false));
        //            form.add( new Label( "created", new FormattedDateModel( milestone.getCreated() ) ) );
    }

    form.add(new TextArea("description"));

    CheckGroup<Milestone> checkGroup = new CheckGroup<Milestone>("milestones");
    form.add(checkGroup);

    checkGroup.add(new StripedListView<Milestone>("list", new Model<ArrayList<? extends Milestone>>() {
        @Override
        public ArrayList<? extends Milestone> getObject() {
            return getMilestones();
        }
    }) {
        protected void populateItem(ListItem<Milestone> listItem) {
            super.populateItem(listItem);
            Milestone milestone = listItem.getModelObject();
            listItem.add(new Label("id", milestone.getName()));
            listItem.add(new Check<Milestone>("check", listItem.getModel()));

            double part = milestone.getCompleteness();
            int percent = (int) (part * 100);
            Panel panel = new PercentagePanel("bar", percent);
            listItem.add(panel);

            int total = milestone.getIssues().size();
            int open = milestone.getOpenIssues().size();
            Label label = new Label("issues", String.valueOf(total));
            listItem.add(label);

            // TODO display project if "all" project for group
            label = new Label("open", String.valueOf(open));
            listItem.add(label);

            label = new Label("due", new FormattedDateModel(milestone.getDueDate(),
                    ((HeadsUpSession) getSession()).getTimeZone()));
            label.add(new org.headsupdev.agile.web.components.milestones.MilestoneStatusModifier("due",
                    milestone));
            listItem.add(label);
        }
    });
}