Example usage for org.apache.wicket.model LoadableDetachableModel LoadableDetachableModel

List of usage examples for org.apache.wicket.model LoadableDetachableModel LoadableDetachableModel

Introduction

In this page you can find the example usage for org.apache.wicket.model LoadableDetachableModel LoadableDetachableModel.

Prototype

public LoadableDetachableModel() 

Source Link

Document

Default constructor, constructs the model in detached state with no data associated with the model.

Usage

From source file:abid.password.wicket.pages.LoginPage.java

License:Apache License

public LoginPage() {
    LoginPanel loginPanel = new LoginPanel("loginPanel");
    add(loginPanel);/*from  ww w .  j a v  a  2 s  .com*/

    LoadableDetachableModel<List<User>> usersModel = new LoadableDetachableModel<List<User>>() {

        private static final long serialVersionUID = 1L;

        @Override
        protected List<User> load() {
            return userService.getUsers();
        }
    };

    PageableListView<User> dataList = new PageableListView<User>("usersList", usersModel, 100) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<User> item) {
            final User data = item.getModelObject();
            Label userLabel = new Label("userLabel", data.getUsername());
            Label passLabel = new Label("passLabel", data.getPassword());

            try {
                Password password = new MutablePasswordParser().parse(data.getPassword());
                if (password instanceof MutablePassword) {
                    MutablePassword mutablePassword = (MutablePassword) password;
                    String evalatedPassword = mutablePassword.getEvaluatedPassword();
                    passLabel = new Label("passLabel", evalatedPassword);
                }
            } catch (Exception e) {
                log.error("Could not create the mutable password", e);
            }

            item.add(userLabel);
            item.add(passLabel);
        }
    };

    int refreshTime = 3;
    final WebMarkupContainer usersContainer = new WebMarkupContainer("usersContainer");
    usersContainer.setOutputMarkupId(true);
    usersContainer.add(new AjaxSelfUpdatingTimerBehavior(Duration.seconds(refreshTime)));
    usersContainer.add(dataList);

    String refreshInformation = String.format("Password refreshes every %s seconds.", refreshTime);
    String javascriptDisabledMsg = "Javascript is disabled you will need to refresh the page manually.";
    AjaxFallbackLabel refreshLabel = new AjaxFallbackLabel("refreshInformation", refreshInformation,
            javascriptDisabledMsg);

    add(usersContainer);
    add(refreshLabel);
}

From source file:abid.password.wicket.pages.UsersPage.java

License:Apache License

public UsersPage() {

    LoadableDetachableModel<List<User>> usersModel = new LoadableDetachableModel<List<User>>() {

        private static final long serialVersionUID = 1L;

        @Override// w  ww  . j  ava 2  s.co m
        protected List<User> load() {
            return userService.getUsers();
        }
    };

    PageableListView<User> dataList = new PageableListView<User>("usersList", usersModel, 100) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<User> item) {
            final User data = item.getModelObject();
            Label userLabel = new Label("userLabel", data.getUsername());
            Label passLabel = new Label("passLabel", data.getPassword());

            try {
                Password password = new MutablePasswordParser().parse(data.getPassword());
                if (password instanceof MutablePassword) {
                    MutablePassword mutablePassword = (MutablePassword) password;
                    String evalatedPassword = mutablePassword.getEvaluatedPassword();
                    passLabel = new Label("passLabel", evalatedPassword);
                }
            } catch (Exception e) {
                log.error("Could not create the mutable password", e);
            }

            item.add(userLabel);
            item.add(passLabel);
        }
    };

    int refreshTime = 3;
    final WebMarkupContainer dataContainer = new WebMarkupContainer("dataContainer");
    dataContainer.setOutputMarkupId(true);
    dataContainer.add(new AjaxSelfUpdatingTimerBehavior(Duration.seconds(refreshTime)));
    dataContainer.add(dataList);

    String refreshInformation = String.format("Password refreshes every %s seconds.", refreshTime);
    String javascriptDisabledMsg = "Javascript is disabled you will need to refresh the page manually.";
    AjaxFallbackLabel refreshInfoLabel = new AjaxFallbackLabel("refreshInformation", refreshInformation,
            javascriptDisabledMsg);

    add(dataContainer);
    add(refreshInfoLabel);
}

From source file:almira.sample.web.model.AbstractCachingDataProvider.java

License:Apache License

@Override
public final IModel<T> model(final T object) {
    return new LoadableDetachableModel<T>() {
        @Override/*from   w ww.  ja  v  a2  s  . co  m*/
        protected T load() {
            return service.load(object.getId());
        }
    };
}

From source file:at.ac.tuwien.ifs.tita.ui.evaluation.timecontroller.MultipleProjectsView.java

License:Apache License

@SuppressWarnings("unchecked")
public MultipleProjectsView() {
    // add form to page
    form = new Form<Object>("multipleProjectsForm");
    form.setOutputMarkupId(true);/*from w  w  w  .java 2  s  .c om*/
    add(form);

    // load projects from db
    projectList = new ListMultipleChoice("projectSelection", new PropertyModel(this, "selectedProjects"),
            new LoadableDetachableModel() {
                @Override
                protected Object load() {
                    return new ArrayList<String>();
                }
            });
    projectList.setOutputMarkupId(true);

    // load users from db
    tcList = new ListMultipleChoice("timeConsumerSelection", new PropertyModel(this, "selectedUsers"),
            new LoadableDetachableModel() {
                @Override
                protected Object load() {
                    return new ArrayList<String>();
                }
            });
    tcList.setOutputMarkupId(true);

    loadTiTAProjects();
    form.add(tcList);
    form.add(projectList);

    // set select options
    selectedTimespan = new SelectOption("overall", "Overall");
    ChoiceRenderer<SelectOption> choiceRenderer = new ChoiceRenderer<SelectOption>("value", "key");
    SelectOption[] options = new SelectOption[] { new SelectOption("day", "Daily"),
            new SelectOption("month", "Monthly"), new SelectOption("overall", "Overall") };

    ddTimeSpan = new DropDownChoice<SelectOption>("timeSpanSelection",
            new PropertyModel<SelectOption>(this, "selectedTimespan"), Arrays.asList(options), choiceRenderer);

    ddTimeSpan.setOutputMarkupId(true);
    form.add(ddTimeSpan);

    // add pdf button
    final Button btnShowAsPDF = new Button("btnShowPDF") {
        @Override
        public void onSubmit() {
            try {
                loadReport();
                ResourceStreamRequestTarget rsrtarget = new ResourceStreamRequestTarget(
                        pdfResource.getResourceStream());
                rsrtarget.setFileName(pdfResource.getFilename());
                RequestCycle.get().setRequestTarget(rsrtarget);
            } catch (JRException e) {
                // TODO: GUI Exception Handling
                log.error(e.getMessage());
            } catch (PersistenceException e) {
                // TODO: GUI Exception Handling
                log.error(e.getMessage());
            }
        }

        @Override
        public boolean isEnabled() {
            return mpem.getRowCount() == 0 ? false : true;
        }
    };

    form.add(btnShowAsPDF);

    // add ajax buttons
    form.add(new AjaxButton("btnShowEfforts", form) {
        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form1) {
            loadMultipleProjectEvaluation();
            target.addComponent(table);
            target.addComponent(btnShowAsPDF);
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form1) {
        }
    });

    form.add(new AjaxButton("btnResetLists", form) {
        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form1) {
            projectList.getModel().setObject(new ArrayList<String>());
            tcList.getModel().setObject(new ArrayList<String>());
            ddTimeSpan.getModel().setObject(new SelectOption("overall", "Overall"));
            mpem.setColumnNames(new String[] {});
            mpem.reload(new ArrayList<UserProjectEffort>());
            target.addComponent(table);
            target.addComponent(projectList);
            target.addComponent(tcList);
            target.addComponent(ddTimeSpan);
            target.addComponent(btnShowAsPDF);
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form1) {
        }
    });

    form.add(new AjaxButton("btnLoadUsers", form) {
        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form1) {
            loadTiTAUsers();
            target.addComponent(tcList);
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form1) {
        }
    });

    form.add(new AjaxButton("btnRefreshProjects", form) {
        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form1) {
            loadTiTAProjects();
            target.addComponent(projectList);
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form1) {
        }
    });

    mpem = new TableModelMultipleProjectsEvaluation(new ArrayList<UserProjectEffort>(), new String[] {});

    table = new Table("evaluationTable", mpem);
    table.setRowsPerPage(EffortUtils.ROWS_PER_PAGE);
    table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
    table.setWidths(new String[] { "100", "100", "100", "100", "100", "100" });

    form.add(table.getRowsAjaxPagingNavigator("rowsPaging"));
    form.add(table);
}

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/* ww  w  .  j  a va2  s  .c  om*/
        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:au.org.theark.admin.web.component.function.FunctionContainerPanel.java

License:Open Source License

@SuppressWarnings({ "unchecked", "serial" })
private void initialiseDataView() {
    // Data provider to paginate resultList
    dataProvider = new ArkDataProvider<ArkFunction, IAdminService>(iAdminService) {
        public int size() {
            return (int) service.getArkFunctionCount(model.getObject());
        }//from  ww w . ja  v  a2  s  .c om

        public Iterator<ArkFunction> iterator(int first, int count) {
            List<ArkFunction> listCollection = new ArrayList<ArkFunction>();
            if (ArkPermissionHelper.isActionPermitted(au.org.theark.core.Constants.SEARCH)) {
                listCollection = service.searchPageableArkFunctions(model.getObject(), first, count);
            }
            return listCollection.iterator();
        }
    };
    // Set the criteria into the data provider's model
    dataProvider.setModel(new LoadableDetachableModel<ArkFunction>() {
        @Override
        protected ArkFunction load() {
            return cpModel.getObject().getArkFunction();
        }
    });
}

From source file:au.org.theark.admin.web.component.module.ModuleContainerPanel.java

License:Open Source License

@SuppressWarnings({ "unchecked", "serial" })
private void initialiseDataView() {
    // Data provider to paginate resultList
    dataProvider = new ArkDataProvider<ArkModule, IAdminService>(iAdminService) {
        public int size() {
            return (int) service.getArkModuleCount(model.getObject());
        }//from   www.  j av  a  2  s .c o m

        public Iterator<ArkModule> iterator(int first, int count) {
            List<ArkModule> listCollection = new ArrayList<ArkModule>();
            if (ArkPermissionHelper.isActionPermitted(au.org.theark.core.Constants.SEARCH)) {
                listCollection = service.searchPageableArkModules(model.getObject(), first, count);
            }
            return listCollection.iterator();
        }
    };
    // Set the criteria into the data provider's model
    dataProvider.setModel(new LoadableDetachableModel<ArkModule>() {
        @Override
        protected ArkModule load() {
            return cpModel.getObject().getArkModule();
        }
    });
}

From source file:au.org.theark.admin.web.component.modulefunction.ModuleFunctionContainerPanel.java

License:Open Source License

@SuppressWarnings({ "unchecked", "serial" })
private void initialiseDataView() {
    // Data provider to paginate resultList
    dataProvider = new ArkDataProvider<ArkModuleFunction, IAdminService>(iAdminService) {
        public int size() {
            return (int) service.getArkModuleFunctionCount(model.getObject());
        }//w w  w . ja  v a2s  .c om

        public Iterator<ArkModuleFunction> iterator(int first, int count) {
            List<ArkModuleFunction> listCollection = new ArrayList<ArkModuleFunction>();
            if (ArkPermissionHelper.isActionPermitted(au.org.theark.core.Constants.SEARCH)) {
                listCollection = service.searchPageableArkModuleFunctions(model.getObject(), first, count);
            }
            return listCollection.iterator();
        }
    };
    // Set the criteria into the data provider's model
    dataProvider.setModel(new LoadableDetachableModel<ArkModuleFunction>() {
        @Override
        protected ArkModuleFunction load() {
            return cpModel.getObject().getArkModuleFunction();
        }
    });
}

From source file:au.org.theark.admin.web.component.modulerole.ModuleRoleContainerPanel.java

License:Open Source License

@SuppressWarnings({ "unchecked", "serial" })
private void initialiseDataView() {
    // Data provider to paginate resultList
    dataProvider = new ArkDataProvider<ArkModuleRole, IAdminService>(iAdminService) {
        public int size() {
            return (int) service.getArkModuleRoleCount(model.getObject());
        }//ww  w.  j av  a2 s  . c o m

        public Iterator<ArkModuleRole> iterator(int first, int count) {
            List<ArkModuleRole> listCollection = new ArrayList<ArkModuleRole>();
            if (ArkPermissionHelper.isActionPermitted(au.org.theark.core.Constants.SEARCH)) {
                listCollection = service.searchPageableArkModuleRoles(model.getObject(), first, count);
            }
            return listCollection.iterator();
        }
    };
    // Set the criteria into the data provider's model
    dataProvider.setModel(new LoadableDetachableModel<ArkModuleRole>() {
        @Override
        protected ArkModuleRole load() {
            return cpModel.getObject().getArkModuleRole();
        }
    });
}

From source file:au.org.theark.admin.web.component.role.RoleContainerPanel.java

License:Open Source License

@SuppressWarnings({ "unchecked", "serial" })
private void initialiseDataView() {
    // Data provider to paginate resultList
    dataProvider = new ArkDataProvider<ArkRole, IAdminService>(iAdminService) {
        public int size() {
            return (int) service.getArkRoleCount(model.getObject());
        }//from  ww  w. j av a 2  s.  c o m

        public Iterator<ArkRole> iterator(int first, int count) {
            List<ArkRole> listCollection = new ArrayList<ArkRole>();
            if (ArkPermissionHelper.isActionPermitted(au.org.theark.core.Constants.SEARCH)) {
                listCollection = service.searchPageableArkRoles(model.getObject(), first, count);
            }
            return listCollection.iterator();
        }
    };
    // Set the criteria into the data provider's model
    dataProvider.setModel(new LoadableDetachableModel<ArkRole>() {
        @Override
        protected ArkRole load() {
            return cpModel.getObject().getArkRole();
        }
    });
}