Example usage for org.apache.wicket.markup.html.list ListView ListView

List of usage examples for org.apache.wicket.markup.html.list ListView ListView

Introduction

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

Prototype

public ListView(final String id, final List<T> list) 

Source Link

Usage

From source file:hsa.awp.admingui.usermanagement.RoleTab.java

License:Open Source License

public RoleTab(String wicketId, final Role role, boolean changeable, final Mandator mandator) {

    super(wicketId);

    if (role == null) {
        throw new IllegalArgumentException("no role given");
    }/*from w ww  . j a  v  a2s. co m*/

    WebMarkupContainer addUserContainer = new WebMarkupContainer("addUser");
    add(addUserContainer);

    addUserContainer.add(new UserSelectPanel("userSelectPanel") {
        /**
         * unique serialization id.
         */
        private static final long serialVersionUID = -2199695801515215562L;

        @Override
        protected boolean onSendSubmit(SingleUser singleUser) {

            if (hasUserRoleForMandator(singleUser, role, mandator)) {
                getFeedbackPanel().error("User " + singleUser.getName() + " is already in role " + role.name());
                return false;
            }

            RoleMapping roleMapping = RoleMapping.getInstance(role, mandator, singleUser);

            getController().addRoleMappingToSingleUser(singleUser, roleMapping);

            return true;
        }

        @Override
        protected boolean vetoFindSubmit(SingleUser user) {

            if (hasUserRoleForMandator(user, role, mandator)) {
                getFeedbackPanel().error("User " + user.getName() + " is already in role " + role.name());
                return true;
            }
            return false;
        }
    });

    listUserContainer = new WebMarkupContainer("userListContainer");
    listUserContainer.setOutputMarkupId(true);
    add(listUserContainer);

    final ILoadableDetachedModel<List<SingleUser>> usersModel = new LoadableDetachedModel<List<SingleUser>>() {
        /**
         * unique serialization id.
         */
        private static final long serialVersionUID = -2548188711048825707L;

        @Override
        protected List<SingleUser> load() {

            List<SingleUser> singleUsers = getController().findSingleUsersByRole(role);

            Set<SingleUser> filtered = new HashSet<SingleUser>();

            for (SingleUser singleUser : singleUsers) {
                if (hasUserRoleForMandator(singleUser, role, mandator)) {
                    filtered.add(singleUser);
                }
            }

            return new ArrayList<SingleUser>(filtered);
        }
    };

    ListView<SingleUser> list = new ListView<SingleUser>("userList", usersModel) {
        /**
         * unique serialization id.
         */
        private static final long serialVersionUID = 4307951155564631399L;

        @Override
        protected void populateItem(final ListItem<SingleUser> item) {

            item.add(new Label("username", item.getModelObject().getUsername()));
            item.add(new Label("name", item.getModelObject().getName()));

            item.add(new AjaxFallbackLink<RoleTab>("delete") {
                /**
                 * unique serialization id.
                 */
                private static final long serialVersionUID = 2004009811773410560L;

                @Override
                public void onClick(AjaxRequestTarget target) {

                    usersModel.getObject();

                    SingleUser singleUser = item.getModelObject();
                    getController().removeRoleMappingForMandator(singleUser,
                            singleUser.roleMappingForRole(role), mandator);

                    target.addComponent(listUserContainer);
                    usersModel.detach();
                }
            });
        }
    };
    list.setOutputMarkupId(true);
    listUserContainer.add(list);

    feedbackPanel = new FeedbackPanel("feedbackPanel");
    feedbackPanel.setFilter(new ContainerFeedbackMessageFilter(listUserContainer));
    add(feedbackPanel);

    if (!changeable) {
        addUserContainer.setVisible(false);
    }
}

From source file:hsa.awp.admingui.util.AbstractListSelectorPanel.java

License:Open Source License

/**
 * Constructor for AbstractListSelectorPanel which takes a list with items to be selected and a list with items which are
 * selected.//from   w  w  w  .  jav  a  2 s .com
 *
 * @param id       wicket id
 * @param list     items which can be selected
 * @param selected selected items
 */
public AbstractListSelectorPanel(String id, final List<T> list, final List<T> selected) {

    super(id);
    this.setList(list);
    this.setSelected(selected);
    final MarkupContainer container = new WebMarkupContainer("listSelector.container");
    container.setOutputMarkupId(true);
    add(container);

    final ListView<T> selectableObjects = new ListView<T>("listSelector.selectableObjects", list) {
        /**
         * generated UID.
         */
        private static final long serialVersionUID = -636057392092428374L;

        @Override
        protected void populateItem(final ListItem<T> item) {

            AjaxFallbackLink<T> link = new AjaxFallbackLink<T>("listSelector.selectableObjectLink") {
                /**
                 * generated UID.
                 */
                private static final long serialVersionUID = 9106963174127725034L;

                @Override
                public void onClick(AjaxRequestTarget target) {

                    selected.add(item.getModelObject());
                    list.remove(item.getModelObject());
                    target.addComponent(container);
                }
            };
            link.add(new Label("listSelector.selectableObjectName", renderObject(item.getModelObject())));
            item.add(link);
        }
    };

    final ListView<T> selectedObjects = new ListView<T>("listSelector.selectedObjects", selected) {
        /**
         * generated UID.
         */
        private static final long serialVersionUID = -636057392092428374L;

        @Override
        protected void populateItem(final ListItem<T> item) {

            AjaxFallbackLink<T> link = new AjaxFallbackLink<T>("listSelector.selectedObjectLink") {
                /**
                 * generated UID.
                 */
                private static final long serialVersionUID = 9106963174127725035L;

                @Override
                public void onClick(AjaxRequestTarget target) {

                    list.add(item.getModelObject());
                    selected.remove(item.getModelObject());
                    target.addComponent(container);
                }
            };
            link.add(new Label("listSelector.selectedObjectName", renderObject(item.getModelObject())));
            item.add(link);
            item.add(new AjaxFallbackLink<T>("listSelector.selectedObjectUp") {
                /**
                 * generated UID.
                 */
                private static final long serialVersionUID = -2669309594395586038L;

                @Override
                public void onClick(AjaxRequestTarget target) {

                    int index = selected.indexOf(item.getModelObject());
                    if (index > 0) {
                        T saved = selected.get(index - 1);
                        selected.set(index - 1, selected.get(index));
                        selected.set(index, saved);
                    }
                    target.addComponent(container);
                }
            });

            item.add(new AjaxFallbackLink<T>("listSelector.selectedObjectDown") {
                /**
                 * generated UID.
                 */
                private static final long serialVersionUID = -2669309594395586039L;

                @Override
                public void onClick(AjaxRequestTarget target) {

                    int index = selected.indexOf(item.getModelObject());
                    if (index < selected.size() - 1) {
                        T saved = selected.get(index + 1);
                        selected.set(index + 1, selected.get(index));
                        selected.set(index, saved);
                    }
                    target.addComponent(container);
                }
            });
        }
    };

    container.add(selectableObjects);
    container.add(selectedObjects);
}

From source file:hsa.awp.admingui.util.AbstractSortedListSelectorPanel.java

License:Open Source License

/**
 * Creates a new {@link AbstractSortedListSelectorPanel}.
 *
 * @param id       wicket id//www. j ava  2  s .c  om
 * @param list     available elements.
 * @param selected selected elements.
 */
public AbstractSortedListSelectorPanel(String id, final List<T> list, final List<T> selected) {

    super(id);

    if (list == null) {
        throw new IllegalArgumentException("no list of available elements given");
    }

    if (selected == null) {
        throw new IllegalArgumentException("no list of selected elements given");
    }

    add(ScriptaculousAjaxBehavior.newJavascriptBindingBehavior());

    setList(list);
    setSelected(selected);

    container.setOutputMarkupId(true);
    add(container);

    selectableObjects = new ListView<T>("sortedListSelector.selectableObjects", list) {
        /**
         * generated UID.
         */
        private static final long serialVersionUID = -636057392092428374L;

        @Override
        protected void populateItem(final ListItem<T> item) {

            AjaxFallbackLink<T> link = new AjaxFallbackLink<T>("sortedListSelector.selectableObjectLink") {
                /**
                 * generated UID.
                 */
                private static final long serialVersionUID = 9106963174127725034L;

                @Override
                public void onClick(AjaxRequestTarget target) {

                    selectItem(item.getModelObject(), target, this);
                }
            };

            String name = renderName(item.getModelObject());
            String prefix = renderPrefix(item.getModelObject());
            String description = renderDescription(item.getModelObject());

            Label lName = new Label("sortedListSelector.selectableObjectName", name);
            Label lPrefix = new Label("sortedListSelector.selectableObjectPrefix", prefix);
            Label lDescription = new Label("sortedListSelector.selectableObjectDescription", description);

            if (prefix == null) {
                lPrefix.setVisible(false);
            }

            if (description == null) {
                lDescription.setVisible(false);
            }

            link.add(lName);
            link.add(lPrefix);
            link.add(lDescription);

            item.add(link);
        }
    };

    selectedObjects = new ListView<T>("sortedListSelector.selectedObjects", selected) {
        /**
         * generated UID.
         */
        private static final long serialVersionUID = -636057392092428374L;

        @Override
        protected void populateItem(final ListItem<T> item) {

            AjaxFallbackLink<T> link = new AjaxFallbackLink<T>("sortedListSelector.selectedObjectLink") {
                /**
                 * generated UID.
                 */
                private static final long serialVersionUID = 9106963174127725035L;

                @Override
                public void onClick(AjaxRequestTarget target) {

                    unselectItem(item.getModelObject(), target, this);
                }
            };

            String name = renderName(item.getModelObject());
            String prefix = renderPrefix(item.getModelObject());
            String description = renderDescription(item.getModelObject());

            Label lName = new Label("sortedListSelector.selectedObjectName", name);
            Label lPrefix = new Label("sortedListSelector.selectedObjectPrefix", prefix);
            Label lDescription = new Label("sortedListSelector.selectedObjectDescription", description);

            if (prefix == null) {
                lPrefix.setVisible(false);
            }

            if (description == null) {
                lDescription.setVisible(false);
            }

            link.add(lName);
            link.add(lPrefix);
            link.add(lDescription);

            item.add(link);
        }
    };

    container.add(selectableObjects);
    container.add(selectedObjects);

    container.add(new AjaxFallbackLink<T>("sortedListSelector.selectAll") {
        /**
         * unique serialization id.
         */
        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {

            selectAll(target);
        }
    });

    container.add(new AjaxFallbackLink<T>("sortedListSelector.unselectAll") {
        /**
         * unique serialization id.
         */
        private static final long serialVersionUID = -2663064005509476047L;

        @Override
        public void onClick(AjaxRequestTarget target) {

            unselectAll(target);
        }
    });
}

From source file:hsa.awp.admingui.view.CampaignDetailPanel.java

License:Open Source License

/**
 * Creates a new {@link CampaignDetailPanel}.
 *
 * @param id         wicket id.//from  w  w w.  j a  v  a  2s .c  o  m
 * @param campaignId id of the {@link Campaign} whose elements the page shall view.
 */
public CampaignDetailPanel(String id, Long campaignId) {

    super(id);

    campaign = controller.getCampaignById(campaignId);
    add(new Label("campaignDetail.campaignName", campaign.getName()));

    float progress = 100 * (System.currentTimeMillis() - campaign.getStartShow().getTimeInMillis())
            / (campaign.getEndShow().getTimeInMillis() - campaign.getStartShow().getTimeInMillis());
    if (progress > 100f) {
        progress = 100f;
    }

    Label progressLabel = new Label("campaignDetail.campaignProgress");
    progressLabel.add(new AttributeAppender("style", new Model<String>("width: " + (int) progress + "%"), ";"));
    add(progressLabel);

    add(new Label("campaignDetail.progressPercentage", String.valueOf(progress) + "%"));

    SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy HH:mm");
    add(new Label("campaignDetail.startShow", format.format(campaign.getStartShow().getTime())));
    add(new Label("campaignDetail.endShow", format.format(campaign.getEndShow().getTime())));

    Procedure activeProcedure = campaign.findCurrentProcedure();
    String activeProcedureName;
    if (activeProcedure != null) {
        activeProcedureName = activeProcedure.getName();
    } else {
        activeProcedureName = "----";
    }
    add(new Label("campaignDetail.activeProcedure", activeProcedureName));

    List<Event> events = controller.getEventsById(campaign.getEventIds());

    final TreeMap<Category, TreeMap<Subject, List<Event>>> categorySubject = renderMappingCategorySubjectEvent(
            events);

    RepeatingView categoryRepeating = new RepeatingView("campaignDetail.categoryList");
    add(categoryRepeating);
    for (Category category : categorySubject.descendingKeySet()) {
        WebMarkupContainer categoryContainer = new WebMarkupContainer(categoryRepeating.newChildId());

        categoryContainer.add(new Label("campaignDetail.categoryName", category.getName()));
        categoryRepeating.add(categoryContainer);

        TreeMap<Subject, List<Event>> subjectEvent = categorySubject.get(category);

        RepeatingView subjectRepeating = new RepeatingView("campaignDetail.subjectList");
        categoryContainer.add(subjectRepeating);
        for (Subject subject : subjectEvent.descendingKeySet()) {
            WebMarkupContainer item = new WebMarkupContainer(subjectRepeating.newChildId());
            subjectRepeating.add(item);

            item.add(new Label("campaignDetail.subjectName", subject.getName()));

            List<Event> eventsOfSubject = subjectEvent.get(subject);
            Collections.sort(events, new Comparator<Event>() {
                @Override
                public int compare(Event o1, Event o2) {

                    return ((Integer) o1.getEventId()).compareTo(o2.getEventId());
                }
            });

            item.add(new ListView<Event>("campaignDetail.eventList", eventsOfSubject) {
                /**
                 * unique serialization id.
                 */
                private static final long serialVersionUID = 1L;

                @Override
                protected void populateItem(final ListItem<Event> item) {

                    Event event = item.getModelObject();
                    String eventItemString = formatIdSubjectNameAndDetailInformation(event);
                    item.add(new Label("campaignDetail.eventItemString", eventItemString));

                    item.add(new Link<EventDetailPanel>("campaignDetail.eventDetailLink",
                            new PropertyModel<EventDetailPanel>(AlterCampaignPanel.class, "eventDetail")) {
                        /**
                         * unique serialization id.
                         */
                        private static final long serialVersionUID = 6714807243260648039L;

                        @Override
                        public void onClick() {

                            setResponsePage(new OnePanelPage(new EventDetailPanel(OnePanelPage.getPanelIdOne(),
                                    item.getModelObject().getId())));

                        }
                    });
                }
            });
        }
    }
}

From source file:hsa.awp.admingui.view.EventListPanel.java

License:Open Source License

/**
 * default constuctor. create a list of all existing procedures and adds a edit link.
 *
 * @param id id of the ProcedureList//from   w  w w . java2  s  .com
 */
public EventListPanel(String id) {

    super(id);

    selectedEvents = getSelectableEvents();

    // create a model which holds the events
    IModel<List<Event>> eventModel = new LoadableDetachableModel<List<Event>>() {
        /**
         *
         */
        private static final long serialVersionUID = 4463199687890366067L;

        @Override
        protected List<Event> load() {

            List<Event> list = getSelectableEvents(); // get the existing events
            Collections.sort(list, new Comparator<Event>() {
                @Override
                public int compare(Event o1, Event o2) {

                    int val = o1.getSubject().getName().compareTo(o2.getSubject().getName());
                    if (val == 0) {
                        return ((Integer) o1.getEventId()).compareTo(o2.getEventId());
                    }
                    return val;
                }
            });
            return list;
        }
    };

    // create a wicket ListView
    ListView<Event> eventListView = new ListView<Event>("evtView", eventModel) {
        /**
         * generated UID
         */
        private static final long serialVersionUID = 1049749247094208402L;

        @Override
        protected void populateItem(final ListItem<Event> item) {

            Event event = item.getModelObject();

            item.add(new Label("eventId", new Model<String>(formatEventId(event))));
            item.add(new Label("subjectName", new Model<String>(event.getSubject().getName())));
            item.add(new Label("eventInfoText", new Model<String>(formatDetailInformation(event))));

            item.add(createEditLink(item));
            item.add(createDeleteLink(item));
            item.add(createDetailLink(item));
        }

        private Component createEditLink(final ListItem<Event> item) {

            AbstractEditLink<Event> editLink = new AbstractEditLink<Event>("evtLink", item.getModelObject()) {
                @Override
                public void modifyItem(Event event) {
                    setResponsePage(new OnePanelPage(new EventPanel(OnePanelPage.getPanelIdOne(), event)));
                }
            };

            AccessUtil.allowRender(editLink, "editEvent");

            return editLink;
        }

        private Component createDeleteLink(final ListItem<Event> item) {

            AbstractDeleteLink<Event> delLink = new AbstractDeleteLink<Event>("evtDeleteLink",
                    item.getModelObject()) {

                @Override
                public void modifyItem(Event event) {

                    controller.deleteEvent(event);

                    setResponsePage(new OnePanelPage(new EventListPanel(OnePanelPage.getPanelIdOne())));
                    feedbackPanel.info("Veranstaltung gel\u00f6scht."); // TODO: Sprache
                }
            };

            AccessUtil.allowRender(delLink, "deleteEvents");
            return delLink;
        }

        private Component createDetailLink(final ListItem<Event> item) {

            AbstractDetailLink<Event> detailLink = new AbstractDetailLink<Event>("evtDetailLink",
                    item.getModelObject()) {
                @Override
                public void modifyItem(Event event) {
                    setResponsePage(new OnePanelPage(
                            new EventDetailPanel(OnePanelPage.getPanelIdOne(), event.getId())));
                }
            };

            AccessUtil.allowRender(detailLink, "viewEventDetails");
            return detailLink;
        }
    };

    // adding the ListView to the panel
    listContainer.setOutputMarkupId(true);
    listContainer.add(eventListView);
    add(configureTermDropDown());
    add(listContainer);
    add(feedbackPanel);
}