Example usage for org.apache.wicket.markup.repeater.util ModelIteratorAdapter ModelIteratorAdapter

List of usage examples for org.apache.wicket.markup.repeater.util ModelIteratorAdapter ModelIteratorAdapter

Introduction

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

Prototype

public ModelIteratorAdapter(Iterator<T> delegate) 

Source Link

Document

Constructor

Usage

From source file:com.gitblit.wicket.panels.RegistrantPermissionsPanel.java

License:Apache License

public RegistrantPermissionsPanel(String wicketId, RegistrantType registrantType, List<String> allRegistrants,
        final List<RegistrantAccessPermission> permissions, final Map<AccessPermission, String> translations) {
    super(wicketId);
    setOutputMarkupId(true);/*from  w  w w  .j a v  a  2  s  .c  o m*/

    /*
     * Permission view toggle buttons
     */
    Form<Void> permissionToggleForm = new Form<Void>("permissionToggleForm");
    permissionToggleForm.add(new ShowStateButton("showSpecified", Show.specified));
    permissionToggleForm.add(new ShowStateButton("showMutable", Show.mutable));
    permissionToggleForm.add(new ShowStateButton("showEffective", Show.effective));
    add(permissionToggleForm);

    /*
     * Permission repeating display
     */
    RefreshingView<RegistrantAccessPermission> dataView = new RefreshingView<RegistrantAccessPermission>(
            "permissionRow") {
        private static final long serialVersionUID = 1L;

        @Override
        protected Iterator<IModel<RegistrantAccessPermission>> getItemModels() {
            // the iterator returns RepositoryPermission objects, but we need it to
            // return models
            return new ModelIteratorAdapter<RegistrantAccessPermission>(permissions.iterator()) {
                @Override
                protected IModel<RegistrantAccessPermission> model(RegistrantAccessPermission permission) {
                    return new CompoundPropertyModel<RegistrantAccessPermission>(permission);
                }
            };
        }

        @Override
        protected Item<RegistrantAccessPermission> newItem(String id, int index,
                IModel<RegistrantAccessPermission> model) {
            // this item sets markup class attribute to either 'odd' or
            // 'even' for decoration
            return new OddEvenItem<RegistrantAccessPermission>(id, index, model);
        }

        @Override
        public void populateItem(final Item<RegistrantAccessPermission> item) {
            final RegistrantAccessPermission entry = item.getModelObject();
            if (RegistrantType.REPOSITORY.equals(entry.registrantType)) {
                String repoName = StringUtils.stripDotGit(entry.registrant);
                if (!entry.isMissing() && StringUtils.findInvalidCharacter(repoName) == null) {
                    // repository, strip .git and show swatch
                    Fragment repositoryFragment = new Fragment("registrant", "repositoryRegistrant",
                            RegistrantPermissionsPanel.this);
                    Component swatch = new Label("repositorySwatch", "&nbsp;").setEscapeModelStrings(false);
                    WicketUtils.setCssBackground(swatch, entry.toString());
                    repositoryFragment.add(swatch);
                    Label registrant = new Label("repositoryName", repoName);
                    repositoryFragment.add(registrant);
                    item.add(repositoryFragment);
                } else {
                    // regex or missing
                    Label label = new Label("registrant", entry.registrant);
                    WicketUtils.setCssStyle(label, "font-weight: bold;");
                    item.add(label);
                }
            } else if (RegistrantType.USER.equals(entry.registrantType)) {
                // user
                PersonIdent ident = new PersonIdent(entry.registrant, "");
                UserModel user = app().users().getUserModel(entry.registrant);
                if (user != null) {
                    ident = new PersonIdent(user.getDisplayName(),
                            user.emailAddress == null ? user.getDisplayName() : user.emailAddress);
                }

                Fragment userFragment = new Fragment("registrant", "userRegistrant",
                        RegistrantPermissionsPanel.this);
                userFragment.add(new AvatarImage("userAvatar", ident, 20));
                userFragment.add(new Label("userName", entry.registrant));
                item.add(userFragment);
            } else {
                // team
                Fragment teamFragment = new Fragment("registrant", "teamRegistrant",
                        RegistrantPermissionsPanel.this);
                teamFragment.add(new Label("teamName", entry.registrant));
                item.add(teamFragment);
            }
            switch (entry.permissionType) {
            case ADMINISTRATOR:
                Label administrator = new Label("pType",
                        entry.source == null ? getString("gb.administrator") : entry.source);
                WicketUtils.setHtmlTooltip(administrator, getString("gb.administratorPermission"));
                WicketUtils.setCssClass(administrator, "label label-inverse");
                item.add(administrator);
                break;
            case OWNER:
                Label owner = new Label("pType", getString("gb.owner"));
                WicketUtils.setHtmlTooltip(owner, getString("gb.ownerPermission"));
                WicketUtils.setCssClass(owner, "label label-info");
                item.add(owner);
                break;
            case TEAM:
                Label team = new Label("pType", entry.source == null ? getString("gb.team") : entry.source);
                WicketUtils.setHtmlTooltip(team,
                        MessageFormat.format(getString("gb.teamPermission"), entry.source));
                WicketUtils.setCssClass(team, "label label-success");
                item.add(team);
                break;
            case REGEX:
                Label regex = new Label("pType", "regex");
                if (!StringUtils.isEmpty(entry.source)) {
                    WicketUtils.setHtmlTooltip(regex,
                            MessageFormat.format(getString("gb.regexPermission"), entry.source));
                }
                WicketUtils.setCssClass(regex, "label");
                item.add(regex);
                break;
            default:
                if (entry.isMissing()) {
                    // repository is missing, this permission will be removed on save
                    Label missing = new Label("pType", getString("gb.missing"));
                    WicketUtils.setCssClass(missing, "label label-important");
                    WicketUtils.setHtmlTooltip(missing, getString("gb.missingPermission"));
                    item.add(missing);
                } else {
                    // standard permission
                    item.add(new Label("pType", "").setVisible(false));
                }
                break;
            }

            item.setVisible(activeState.show(entry));

            // use ajax to get immediate update of permission level change
            // otherwise we can lose it if they change levels and then add
            // a new repository permission
            final DropDownChoice<AccessPermission> permissionChoice = new DropDownChoice<AccessPermission>(
                    "permission", Arrays.asList(AccessPermission.values()),
                    new AccessPermissionRenderer(translations));
            // only allow changing an explicitly defined permission
            // this is designed to prevent changing a regex permission in
            // a repository
            permissionChoice.setEnabled(entry.mutable);
            permissionChoice.setOutputMarkupId(true);
            if (entry.mutable) {
                permissionChoice.add(new AjaxFormComponentUpdatingBehavior("change") {

                    private static final long serialVersionUID = 1L;

                    @Override
                    protected void onUpdate(AjaxRequestTarget target) {
                        target.add(permissionChoice);
                    }
                });
            }

            item.add(permissionChoice);
        }
    };
    add(dataView);
    setOutputMarkupId(true);

    // filter out registrants we already have permissions for
    final List<String> registrants = new ArrayList<String>(allRegistrants);
    for (RegistrantAccessPermission rp : permissions) {
        if (rp.mutable) {
            // remove editable duplicates
            // this allows for specifying an explicit permission
            registrants.remove(rp.registrant);
        } else if (rp.isAdmin()) {
            // administrators can not have their permission changed
            registrants.remove(rp.registrant);
        } else if (rp.isOwner()) {
            // owners can not have their permission changed
            registrants.remove(rp.registrant);
        }
    }

    /*
     * Add permission form
     */
    IModel<RegistrantAccessPermission> addPermissionModel = new CompoundPropertyModel<RegistrantAccessPermission>(
            new RegistrantAccessPermission(registrantType));
    Form<RegistrantAccessPermission> addPermissionForm = new Form<RegistrantAccessPermission>(
            "addPermissionForm", addPermissionModel);
    addPermissionForm.add(new DropDownChoice<String>("registrant", registrants));
    addPermissionForm.add(new DropDownChoice<AccessPermission>("permission",
            Arrays.asList(AccessPermission.NEWPERMISSIONS), new AccessPermissionRenderer(translations)));
    AjaxButton button = new AjaxButton("addPermissionButton", addPermissionForm) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onSubmit(AjaxRequestTarget target) {
            // add permission to our list
            RegistrantAccessPermission rp = (RegistrantAccessPermission) getForm().getModel().getObject();
            if (rp.permission == null) {
                return;
            }
            if (rp.registrant == null) {
                return;
            }
            RegistrantAccessPermission copy = DeepCopier.copy(rp);
            if (StringUtils.findInvalidCharacter(copy.registrant) != null) {
                copy.permissionType = PermissionType.REGEX;
                copy.source = copy.registrant;
            }
            permissions.add(copy);

            // resort permissions after insert to convey idea of eval order
            Collections.sort(permissions);

            // remove registrant from available choices
            registrants.remove(rp.registrant);

            // force the panel to refresh
            target.add(RegistrantPermissionsPanel.this);
        }
    };
    addPermissionForm.add(button);

    // only show add permission form if we have a registrant choice
    add(addPermissionForm.setVisible(registrants.size() > 0));
}

From source file:com.userweave.module.methoden.iconunderstandability.page.survey.IconMatchingTestUI.java

License:Open Source License

private Component createImagesView() {

    return new RefreshingView("img_content") {

        @Override/*  w  w w.  j  a va2s  .com*/
        protected Iterator getItemModels() {
            return new ModelIteratorAdapter(imagesV.iterator()) {

                @Override
                protected IModel model(Object object) {
                    return new CompoundPropertyModel(object);
                }

            };
        }

        @Override
        protected void populateItem(Item item) {
            final ITMImage image = (ITMImage) item.getModel().getObject();

            WebMarkupContainer imageContainer = new WebMarkupContainer("tileCenterPart");

            Dimension d = getConfiguration().getDimiensionOfIcons();

            imageContainer.add(new AttributeAppender("style",
                    new Model<String>("width:" + d.width + "px;" + "height:" + d.height + "px"), ";"));

            item.add(imageContainer);

            imageContainer.add(ImageResource.createImage("image", image));
            // componentId == index
            // componentId wird bei matching an ajax callback bertragen
            item.add(new AttributeModifier(IMAGE_ID_PARAMETER, new Model<Integer>(item.getIndex())));
        }
    };
}

From source file:com.userweave.module.methoden.iconunderstandability.page.survey.IconMatchingTestUI.java

License:Open Source License

private void addTermsView() {
    terms = getConfiguration().getTerms();
    termsV = new ArrayList<ItmTerm>();

    initTermsV();/*from  w ww  . j a  v  a2s  .c om*/

    RefreshingView rv;

    add(rv = new RefreshingView("term_content") {

        @Override
        protected Iterator getItemModels() {
            return new ModelIteratorAdapter(termsV.iterator()) {

                @Override
                protected IModel model(Object object) {
                    return new CompoundPropertyModel(object);
                }
            };
        }

        @Override
        protected void populateItem(Item item) {
            final String termValue = LocalizationUtils.getValue(getTermValue(item));

            DropComponent dropComponent = new DropComponent("drop_component");

            dropComponent.add(new AttributeAppender("style",
                    new Model("width:" + Integer.toString(TILE_WIDTH + 4) + "px;"), " "));

            dropComponent.add(new WebMarkupContainer("dropFieldCenter") {
                {
                    add(new AttributeAppender("style",
                            new Model("height:" + Integer.toString(TILE_HEIGHT - 13 - 6) + "px;"), " "));
                }
            });

            item.add(dropComponent);

            AbstractDefaultAjaxBehavior dropCallbackBehavior = new AbstractDefaultAjaxBehavior() {
                @Override
                protected void respond(AjaxRequestTarget target) {
                    IRequestParameters parameters = RequestCycle.get().getRequest().getRequestParameters();

                    //                     ValueMap parameterMap = 
                    //                        new ValueMap(RequestCycle.get().getRequest().getParameterMap());

                    Iterator<String> i = parameters.getParameterNames().iterator();

                    boolean found = false;

                    while (i.hasNext()) {
                        if (i.next().equals(IMAGE_ID_PARAMETER)) {
                            int imageIndex = parameters.getParameterValue(IMAGE_ID_PARAMETER).toInt();

                            if (imageIndex != -1) {
                                ITMImage image = imagesV.get(imageIndex);
                                String imageId = image.getId().toString();
                                matchingResult.put(termValue, imageId);
                            } else {
                                matchingResult.remove(termValue);
                            }

                            found = true;
                            break;
                        }
                    }

                    if (!found) {
                        matchingResult.remove(termValue);
                    }

                    getSurveyStepTimer().setEndTimeNow();
                }
            };

            dropComponent.add(dropCallbackBehavior);

            String dropComponentId = createId(item.getIndex());
            dropComponent.add(new AttributeModifier(DROP_COMPONENT_ID_PARAMETER, new Model(dropComponentId)));

            // um js-callbacks pro behaviour und dispatch anhand componentId zu erzeugen
            id2Behaviour.put(dropComponentId, dropCallbackBehavior);

            WebMarkupContainer wmc;

            item.add(wmc = new WebMarkupContainer("table_content") {
                {
                    add(new AttributeAppender("style",
                            new Model<String>("height:" + Integer.toString(TILE_HEIGHT - 2 - 6) + "px;"), " "));
                }
            });
            wmc.add(new Label("text", termValue));

            item.add(new WebMarkupContainer("drop_end_center") {
                {
                    add(new AttributeAppender("style",
                            new Model<String>("height:" + Integer.toString(TILE_HEIGHT - 8 - 6) + "px;"), " "));
                }
            });
        }

        private LocalizedString getTermValue(Item item) {
            return ((ItmTerm) item.getModel().getObject()).getValue();
        }
    });
}

From source file:de.alpharogroup.wicket.components.listview.RefreshingViewPanel.java

License:Apache License

/**
 * Factory method for creating a new {@link RefreshingView}. This method is invoked in the
 * constructor from the derived classes and can be overridden so users can provide their own
 * version of the new {@link RefreshingView}.
 *
 * @param id//from  w  w w  .  j  a va  2  s . c  o m
 *            the id
 * @param model
 *            the model
 * @return the new {@link RefreshingView}.
 */
protected RefreshingView<T> newRefreshingView(final String id, final IModel<List<T>> model) {
    final RefreshingView<T> listView = new RefreshingView<T>(id, model) {
        /** The Constant serialVersionUID. */
        private static final long serialVersionUID = 1L;

        /**
         * {@inheritDoc}
         */
        @Override
        protected Iterator<IModel<T>> getItemModels() {
            return new ModelIteratorAdapter<T>(getModelObject().iterator()) {

                /**
                 * {@inheritDoc}
                 */
                @Override
                protected IModel<T> model(final T object) {
                    return Model.of(object);
                }
            };
        }

        /**
         * {@inheritDoc}
         */
        @Override
        protected Item<T> newItem(final String id, final int index, final IModel<T> model) {
            return RefreshingViewPanel.this.newItem(id, index, model);
        }

        /**
         * {@inheritDoc}
         */
        @Override
        protected void populateItem(final Item<T> item) {
            item.add(newListComponent("item", item));
        }

    };
    listView.setItemReuseStrategy(ReuseIfModelsEqualStrategy.getInstance());
    return listView;
}

From source file:de.alpharogroup.wicket.data.provider.examples.refreshingview.RefreshingViewPanel.java

License:Apache License

public RefreshingViewPanel(final String id, final IModel<?> model) {
    super(id, model);

    form = new Form<Person>("form");
    add(form);// ww w .j  av a  2  s  .  c  o  m

    // create a repeater that will display the list of contacts.
    final RefreshingView<Person> refreshingView = new RefreshingView<Person>("simple") {
        /**
         * The serialVersionUID.
         */
        private static final long serialVersionUID = 1L;

        @Override
        protected Iterator<IModel<Person>> getItemModels() {
            // for simplicity we only show the first 10 contacts
            // SortParam<String> sort = new SortParam<String>("firstname",
            // true);
            final Iterator<Person> contacts = PersonDatabaseManager.getInstance().getPersons().iterator();

            // the iterator returns contact objects, but we need it to
            // return models, we use this handy adapter class to perform
            // on-the-fly conversion.
            return new ModelIteratorAdapter<Person>(contacts) {
                @Override
                protected IModel<Person> model(final Person object) {
                    return new CompoundPropertyModel<Person>(object);
                }
            };
        }

        @Override
        protected Item<Person> newItem(final String id, final int index, final IModel<Person> model) {
            // this item sets markup class attribute to either 'odd' or
            // 'even' for decoration
            return new OddEvenItem<Person>(id, index, model);
        }

        @Override
        protected void populateItem(final Item<Person> item) {
            // populate the row of the repeater
            final IModel<Person> contact = item.getModel();
            item.add(new ActionPanel("actions", contact));
            item.add(new TextField<String>("firstname"));
            item.add(new TextField<String>("lastname"));
        }
    };

    // because we are in a form we need to preserve state of the component
    // hierarchy (because it might contain things like form errors that
    // would be lost if the hierarchy for each item was recreated every
    // request by default), so we use an item reuse strategy.
    refreshingView.setItemReuseStrategy(ReuseIfModelsEqualStrategy.getInstance());

    form.add(refreshingView);
}

From source file:de.widone.web.panel.tasklist.TaskListPanel.java

License:Apache License

private Component createRefreshingView(final IModel<TaskList> taskList) {
    return new RefreshingView<Task>(TASK_LIST, new PropertyModel<List<Task>>(taskList, "tasks")) {
        @Override/*from  w ww .  j a  v a2 s  .co  m*/
        protected Iterator<IModel<Task>> getItemModels() {
            return new ModelIteratorAdapter<Task>(
                    ((IModel<List<Task>>) getDefaultModel()).getObject().iterator()) {
                @Override
                protected IModel<Task> model(Task object) {
                    return Model.of(object);
                }
            };
        }

        @Override
        protected void populateItem(final Item<Task> item) {
            TaskListPanel.this.populateItem(item, taskList);
        }
    }.setItemReuseStrategy(new ReuseIfModelsEqualStrategy());
}

From source file:jdave.examples.wicket.DictionaryPanel.java

License:Apache License

public DictionaryPanel(String id) {
    super(id);/*from  w w  w . j av a 2  s . c  o  m*/
    add(new FeedbackPanel("feedback"));
    add(new Form<Void>("form") {
        {
            add(new TextField<String>("query", new PropertyModel<String>(DictionaryPanel.this, "query")));
        }

        @Override
        protected void onSubmit() {
            hits = getService().lookup(query);
            if (hits.isEmpty()) {
                DictionaryPanel.this.info("No hits.");
            }
        }
    });
    add(new RefreshingView<String>("words") {
        @Override
        protected Iterator<IModel<String>> getItemModels() {
            return new ModelIteratorAdapter<String>(hits.iterator()) {
                @Override
                protected IModel<String> model(String object) {
                    return new Model<String>(object);
                }
            };
        }

        @Override
        protected void populateItem(Item<String> item) {
            item.add(new Label("word", item.getDefaultModelObjectAsString()));
        }
    });
}

From source file:jdave.wicket.PageWithItems.java

License:Apache License

@SuppressWarnings({ "unchecked", "rawtypes" })
public PageWithItems(final IModel<List<Integer>> items) {
    add(new ListView<Integer>("listView", items) {
        @Override/*from   w  w w  . j  a  v a2  s.  c o m*/
        protected void populateItem(ListItem<Integer> item) {
            item.add(new Label("item", item.getModelObject().toString()));
        }
    });
    add(new RefreshingView<Integer>("refreshingView") {
        @Override
        protected Iterator<IModel<Integer>> getItemModels() {
            return new ModelIteratorAdapter<Integer>(items.getObject().iterator()) {
                @Override
                protected IModel<Integer> model(Integer object) {
                    return new Model<Integer>(object);
                }
            };
        }

        @Override
        protected void populateItem(Item<Integer> item) {
            item.add(new Label("item", item.getModelObject().toString()));
        }
    });
    add(new WebMarkupContainer("container", new CompoundPropertyModel(this))
            .add(new WebMarkupContainer("innerContainer")));
}

From source file:org.apache.jetspeed.portlets.prm.application.DetailsPanel.java

License:Apache License

public DetailsPanel(String id, final PortletApplicationNodeBean paNodeBean) {
    super(id);/*from  www . j  a va 2s  . c o  m*/

    detailList = new ArrayList<KeyVal>();
    JetspeedServiceLocator locator = ((AbstractAdminWebApplication) getApplication()).getServiceLocator();
    PortletApplication app = locator.getPortletRegistry()
            .getPortletApplication(paNodeBean.getApplicationName());

    detailList.add(new KeyVal("Name", app.getName()));
    detailList.add(new KeyVal("Version", app.getVersion()));
    detailList.add(new KeyVal("Description", getDescription(app)));
    detailList.add(new KeyVal("Type", getType(app)));
    detailList.add(new KeyVal("Services", new Object() {

        String toString(Iterator<JetspeedServiceReference> it) {
            StringBuffer buffer = new StringBuffer();
            while (it.hasNext()) {
                buffer.append(it.next().getName() + "<br/>");
            }
            return buffer.toString();
        }
    }.toString(app.getJetspeedServices().iterator())));

    final RefreshingView<KeyVal> dataRepeater = new RefreshingView<KeyVal>("data",
            new PropertyModel<List<KeyVal>>(this, "detailList")) {

        @Override
        protected void populateItem(Item<KeyVal> item) {
            final KeyVal field = item.getModelObject();
            item.add(new Label("name", field.getKey()));
            item.add(new Label("value", field.getValue()).setEscapeModelStrings(false));
        }

        @Override
        protected Iterator<IModel<KeyVal>> getItemModels() {
            List<KeyVal> list = (List<KeyVal>) getDefaultModelObject();
            return new ModelIteratorAdapter<KeyVal>(list.iterator()) {

                @Override
                protected IModel<KeyVal> model(KeyVal object) {
                    return new Model<KeyVal>(object);
                }
            };
        }
    };

    jetspeedSecurityContraintNames = new ArrayList<String>(Arrays.asList(""));
    PageManager pageManager = ((AbstractAdminWebApplication) getApplication()).getServiceLocator()
            .getPageManager();
    try {
        for (Object secConstDefObj : pageManager.getPageSecurity().getSecurityConstraintsDefs()) {
            SecurityConstraintsDef secConstDef = (SecurityConstraintsDef) secConstDefObj;
            jetspeedSecurityContraintNames.add(secConstDef.getName());
        }
    } catch (Exception e) {
        logger.error("Failed to retrieve jetspeed security constraint defs from page manager.", e);
    }

    jetspeedSecurityConstraint = app.getJetspeedSecurityConstraint();

    Form form = new Form("form");
    form.add(dataRepeater);
    form.add(new DropDownChoice<String>("jetspeedConstraint",
            new PropertyModel<String>(this, "jetspeedSecurityConstraint"), jetspeedSecurityContraintNames));
    form.add(new Button("jsecSave", new ResourceModel("pam.details.action.save")) {
        @Override
        public void onSubmit() {
            FeedbackPanel feed = (FeedbackPanel) getPage().get("feedback");

            try {
                PortletRegistry registry = ((AbstractAdminWebApplication) getApplication()).getServiceLocator()
                        .getPortletRegistry();
                PortletApplication app = registry.getPortletApplication(paNodeBean.getApplicationName());
                app.setJetspeedSecurityConstraint(
                        "".equals(jetspeedSecurityConstraint) ? null : jetspeedSecurityConstraint);
                registry.updatePortletApplication(app);
                StringResourceModel resModel = new StringResourceModel(
                        "pam.details.action.status.application.saveOK", this, null,
                        new Object[] { paNodeBean.getApplicationName() });
                feed.info(resModel.getString());
            } catch (RegistryException e) {
                logger.error("Failed to update jetspeed security constraint defs of application.", e);
                StringResourceModel resModel = new StringResourceModel(
                        "pam.details.action.status.application.saveFailure", this, null,
                        new Object[] { paNodeBean.getApplicationName(), e.getMessage() });
                feed.info(resModel.getString());
            }
        }
    });

    form.add(new Label("resourceBundle", app.getResourceBundle()));

    Button reloadResourceBundlesButton = new Button("reloadResourceBundle",
            new ResourceModel("pam.details.resource.bundle.reload")) {
        @Override
        public void onSubmit() {
            FeedbackPanel feed = (FeedbackPanel) getPage().get("feedback");

            try {
                PortletRegistry registry = ((AbstractAdminWebApplication) getApplication()).getServiceLocator()
                        .getPortletRegistry();
                PortletApplication app = registry.getPortletApplication(paNodeBean.getApplicationName());
                PortletFactory factory = ((AbstractAdminWebApplication) getApplication()).getServiceLocator()
                        .getPortletFactory();
                factory.reloadResourceBundles(app);
            } catch (Exception e) {
                logger.error("Failed to reload the resource bundle of application.", e);
                StringResourceModel resModel = new StringResourceModel(
                        "pam.details.action.status.resource.bundle.reloadFailure", this, null,
                        new Object[] { paNodeBean.getApplicationName(), e.getMessage() });
                feed.info(resModel.getString());
            }
        }
    };

    reloadResourceBundlesButton.add(new JavascriptEventConfirmation("onclick",
            new ResourceModel("pam.details.resource.bundle.reload.confirm")));

    reloadResourceBundlesButton.setEnabled(!StringUtils.isBlank(app.getResourceBundle()));

    form.add(reloadResourceBundlesButton);

    Button refreshSearchIndexButton = new Button("refreshSearchIndex",
            new ResourceModel("pam.details.search.index.refresh")) {
        @Override
        public void onSubmit() {
            FeedbackPanel feed = (FeedbackPanel) getPage().get("feedback");

            try {
                SearchEngine searchEngine = ((AbstractAdminWebApplication) getApplication()).getServiceLocator()
                        .getSearchEngine();
                PortletRegistry registry = ((AbstractAdminWebApplication) getApplication()).getServiceLocator()
                        .getPortletRegistry();

                PortletApplication app = registry.getPortletApplication(paNodeBean.getApplicationName());
                List<PortletDefinition> portletDefList = app.getPortlets();

                List<Object> list = new ArrayList<Object>();
                list.addAll(portletDefList);
                list.add(app);

                searchEngine.remove(list);

                list.clear();
                list.add(app);
                list.addAll(portletDefList);

                searchEngine.add(list);
            } catch (Exception e) {
                logger.error("Failed to refresh the search index of application.", e);
                StringResourceModel resModel = new StringResourceModel(
                        "pam.details.action.status.search.index.refreshFailure", this, null,
                        new Object[] { paNodeBean.getApplicationName(), e.getMessage() });
                feed.info(resModel.getString());
            }
        }
    };

    refreshSearchIndexButton.add(new JavascriptEventConfirmation("onclick",
            new ResourceModel("pam.details.search.index.refresh.confirm")));

    refreshSearchIndexButton.setEnabled(true);

    form.add(refreshSearchIndexButton);

    add(form);
}

From source file:org.apache.jetspeed.portlets.prm.portlet.PreferencePanel.java

License:Apache License

@Override
public Iterator<IModel<Preference>> getItemModels() {
    final JetspeedServiceLocator locator = ((AbstractAdminWebApplication) getApplication()).getServiceLocator();
    PortletRegistry registry = locator.getPortletRegistry();
    PortletApplication app = registry.getPortletApplication(paNodeBean.getApplicationName());
    PortletDefinition def = PortletApplicationUtils.getPortletOrClone(app, paNodeBean.getName());

    curPrefs = def.getPortletPreferences().getPortletPreferences();

    return new ModelIteratorAdapter<Preference>(curPrefs.iterator()) {
        @Override//from w  w w  .  j a v a2 s .  c om
        protected IModel<Preference> model(Preference preference) {
            return new PreferenceModel(locator, paNodeBean, preference);
        }
    };
}