List of usage examples for org.apache.wicket.markup.html.list ListView ListView
public ListView(final String id, final List<T> list)
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); }