List of usage examples for org.apache.wicket.markup.html.list ListView iterator
@Override
public Iterator<Component> iterator()
From source file:com.gitblit.wicket.pages.EditRepositoryPage.java
License:Apache License
protected void setupPage(RepositoryModel model) { this.repositoryModel = model; // ensure this user can create or edit this repository checkPermissions(repositoryModel);/* www .j a va 2 s . c o m*/ List<String> indexedBranches = new ArrayList<String>(); List<String> federationSets = new ArrayList<String>(); final List<RegistrantAccessPermission> repositoryUsers = new ArrayList<RegistrantAccessPermission>(); final List<RegistrantAccessPermission> repositoryTeams = new ArrayList<RegistrantAccessPermission>(); List<String> preReceiveScripts = new ArrayList<String>(); List<String> postReceiveScripts = new ArrayList<String>(); GitBlitWebSession session = GitBlitWebSession.get(); final UserModel user = session.getUser() == null ? UserModel.ANONYMOUS : session.getUser(); final boolean allowEditName = isCreate || isAdmin || repositoryModel.isUsersPersonalRepository(user.username); if (isCreate) { if (user.canAdmin()) { super.setupPage(getString("gb.newRepository"), ""); } else { super.setupPage(getString("gb.newRepository"), user.getDisplayName()); } } else { super.setupPage(getString("gb.edit"), repositoryModel.name); repositoryUsers.addAll(app().repositories().getUserAccessPermissions(repositoryModel)); repositoryTeams.addAll(app().repositories().getTeamAccessPermissions(repositoryModel)); Collections.sort(repositoryUsers); Collections.sort(repositoryTeams); federationSets.addAll(repositoryModel.federationSets); if (!ArrayUtils.isEmpty(repositoryModel.indexedBranches)) { indexedBranches.addAll(repositoryModel.indexedBranches); } } final String oldName = repositoryModel.name; final RegistrantPermissionsPanel usersPalette = new RegistrantPermissionsPanel("users", RegistrantType.USER, app().users().getAllUsernames(), repositoryUsers, getAccessPermissions()); final RegistrantPermissionsPanel teamsPalette = new RegistrantPermissionsPanel("teams", RegistrantType.TEAM, app().users().getAllTeamNames(), repositoryTeams, getAccessPermissions()); // owners palette List<UserChoice> owners = new ArrayList<UserChoice>(); List<UserChoice> persons = new ArrayList<UserChoice>(); for (String owner : repositoryModel.owners) { UserModel o = app().users().getUserModel(owner); if (o != null) { owners.add(new UserChoice(o.getDisplayName(), o.username, o.emailAddress)); } else { UserChoice userChoice = new UserChoice(owner); owners.add(userChoice); persons.add(userChoice); } } for (String person : app().users().getAllUsernames()) { UserModel o = app().users().getUserModel(person); if (o != null) { persons.add(new UserChoice(o.getDisplayName(), o.username, o.emailAddress)); } else { persons.add(new UserChoice(person)); } } final Palette<UserChoice> ownersPalette = new Palette<UserChoice>("owners", new ListModel<UserChoice>(owners), new CollectionModel<UserChoice>(persons), new ChoiceRenderer<UserChoice>(null, "userId"), 12, false); // indexed local branches palette List<String> allLocalBranches = new ArrayList<String>(); allLocalBranches.add(Constants.DEFAULT_BRANCH); allLocalBranches.addAll(repositoryModel.getLocalBranches()); boolean luceneEnabled = app().settings().getBoolean(Keys.web.allowLuceneIndexing, true); final Palette<String> indexedBranchesPalette = new Palette<String>("indexedBranches", new ListModel<String>(indexedBranches), new CollectionModel<String>(allLocalBranches), new StringChoiceRenderer(), 8, false); indexedBranchesPalette.setEnabled(luceneEnabled); // federation sets palette List<String> sets = app().settings().getStrings(Keys.federation.sets); final Palette<String> federationSetsPalette = new Palette<String>("federationSets", new ListModel<String>(federationSets), new CollectionModel<String>(sets), new StringChoiceRenderer(), 8, false); // pre-receive palette if (!ArrayUtils.isEmpty(repositoryModel.preReceiveScripts)) { preReceiveScripts.addAll(repositoryModel.preReceiveScripts); } final Palette<String> preReceivePalette = new Palette<String>("preReceiveScripts", new ListModel<String>(preReceiveScripts), new CollectionModel<String>(app().repositories().getPreReceiveScriptsUnused(repositoryModel)), new StringChoiceRenderer(), 12, true); // post-receive palette if (!ArrayUtils.isEmpty(repositoryModel.postReceiveScripts)) { postReceiveScripts.addAll(repositoryModel.postReceiveScripts); } final Palette<String> postReceivePalette = new Palette<String>("postReceiveScripts", new ListModel<String>(postReceiveScripts), new CollectionModel<String>(app().repositories().getPostReceiveScriptsUnused(repositoryModel)), new StringChoiceRenderer(), 12, true); // custom fields final Map<String, String> customFieldsMap = app().settings().getMap(Keys.groovy.customFields); List<String> customKeys = new ArrayList<String>(customFieldsMap.keySet()); final ListView<String> customFieldsListView = new ListView<String>("customFieldsListView", customKeys) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<String> item) { String key = item.getModelObject(); item.add(new Label("customFieldLabel", customFieldsMap.get(key))); String value = ""; if (repositoryModel.customFields != null && repositoryModel.customFields.containsKey(key)) { value = repositoryModel.customFields.get(key); } TextField<String> field = new TextField<String>("customFieldValue", new Model<String>(value)); item.add(field); } }; customFieldsListView.setReuseItems(true); CompoundPropertyModel<RepositoryModel> rModel = new CompoundPropertyModel<RepositoryModel>(repositoryModel); Form<RepositoryModel> form = new Form<RepositoryModel>("editForm", rModel) { private static final long serialVersionUID = 1L; @Override protected void onSubmit() { try { if (!namePanel.updateModel(repositoryModel)) { return; } // confirm access restriction selection if (repositoryModel.accessRestriction == null) { error(getString("gb.selectAccessRestriction")); return; } // confirm federation strategy selection if (repositoryModel.federationStrategy == null) { error(getString("gb.selectFederationStrategy")); return; } // save federation set preferences if (repositoryModel.federationStrategy.exceeds(FederationStrategy.EXCLUDE)) { repositoryModel.federationSets.clear(); Iterator<String> sets = federationSetsPalette.getSelectedChoices(); while (sets.hasNext()) { repositoryModel.federationSets.add(sets.next()); } } // set author metric exclusions String ax = metricAuthorExclusions.getObject(); if (StringUtils.isEmpty(ax)) { repositoryModel.metricAuthorExclusions = new ArrayList<String>(); } else { Set<String> list = new HashSet<String>(); for (String exclusion : StringUtils.getStringsFromValue(ax, " ")) { if (StringUtils.isEmpty(exclusion)) { continue; } if (exclusion.indexOf(' ') > -1) { list.add("\"" + exclusion + "\""); } else { list.add(exclusion); } } repositoryModel.metricAuthorExclusions = new ArrayList<String>(list); } // set mailing lists String ml = mailingLists.getObject(); if (StringUtils.isEmpty(ml)) { repositoryModel.mailingLists = new ArrayList<String>(); } else { Set<String> list = new HashSet<String>(); for (String address : ml.split("(,|\\s)")) { if (StringUtils.isEmpty(address)) { continue; } list.add(address.toLowerCase()); } repositoryModel.mailingLists = new ArrayList<String>(list); } // indexed branches List<String> indexedBranches = new ArrayList<String>(); Iterator<String> branches = indexedBranchesPalette.getSelectedChoices(); while (branches.hasNext()) { indexedBranches.add(branches.next()); } repositoryModel.indexedBranches = indexedBranches; // owners repositoryModel.owners.clear(); Iterator<UserChoice> owners = ownersPalette.getSelectedChoices(); while (owners.hasNext()) { repositoryModel.addOwner(owners.next().getUserId()); } // pre-receive scripts List<String> preReceiveScripts = new ArrayList<String>(); Iterator<String> pres = preReceivePalette.getSelectedChoices(); while (pres.hasNext()) { preReceiveScripts.add(pres.next()); } repositoryModel.preReceiveScripts = preReceiveScripts; // post-receive scripts List<String> postReceiveScripts = new ArrayList<String>(); Iterator<String> post = postReceivePalette.getSelectedChoices(); while (post.hasNext()) { postReceiveScripts.add(post.next()); } repositoryModel.postReceiveScripts = postReceiveScripts; // custom fields repositoryModel.customFields = new LinkedHashMap<String, String>(); Iterator<Component> customFieldsListViewIterator = customFieldsListView.iterator(); while (customFieldsListViewIterator.hasNext()) { ListItem<String> child = (ListItem<String>) customFieldsListViewIterator.next(); String key = child.getModelObject(); TextField<String> field = (TextField<String>) child.get("customFieldValue"); String value = field.getValue(); repositoryModel.customFields.put(key, value); } // save the repository app().gitblit().updateRepositoryModel(oldName, repositoryModel, isCreate); // repository access permissions if (repositoryModel.accessRestriction.exceeds(AccessRestrictionType.NONE)) { app().gitblit().setUserAccessPermissions(repositoryModel, repositoryUsers); app().gitblit().setTeamAccessPermissions(repositoryModel, repositoryTeams); } } catch (GitBlitException e) { error(e.getMessage()); return; } setResponsePage(SummaryPage.class, WicketUtils.newRepositoryParameter(repositoryModel.name)); } }; // Determine available refs & branches List<String> availableRefs = new ArrayList<String>(); List<String> availableBranches = new ArrayList<String>(); if (!ArrayUtils.isEmpty(repositoryModel.availableRefs)) { for (String ref : repositoryModel.availableRefs) { if (!ref.startsWith(Constants.R_TICKET)) { availableRefs.add(ref); if (ref.startsWith(Constants.R_HEADS)) { availableBranches.add(Repository.shortenRefName(ref)); } } } } // do not let the browser pre-populate these fields form.add(new AttributeModifier("autocomplete", "off")); // // // GENERAL // namePanel = new RepositoryNamePanel("namePanel", repositoryModel); namePanel.setEditable(allowEditName); form.add(namePanel); // XXX AccessPolicyPanel is defined later. form.add(new ChoiceOption<String>("head", getString("gb.headRef"), getString("gb.headRefDescription"), new PropertyModel<String>(repositoryModel, "HEAD"), availableRefs)); // // PERMISSIONS // form.add(ownersPalette); form.add(usersPalette); form.add(teamsPalette); // // TICKETS // form.add(new BooleanOption("acceptNewPatchsets", getString("gb.acceptNewPatchsets"), getString("gb.acceptNewPatchsetsDescription"), new PropertyModel<Boolean>(repositoryModel, "acceptNewPatchsets"))); form.add(new BooleanOption("acceptNewTickets", getString("gb.acceptNewTickets"), getString("gb.acceptNewTicketsDescription"), new PropertyModel<Boolean>(repositoryModel, "acceptNewTickets"))); form.add(new BooleanOption("requireApproval", getString("gb.requireApproval"), getString("gb.requireApprovalDescription"), new PropertyModel<Boolean>(repositoryModel, "requireApproval"))); form.add(new ChoiceOption<String>("mergeTo", getString("gb.mergeTo"), getString("gb.mergeToDescription"), new PropertyModel<String>(repositoryModel, "mergeTo"), availableBranches)); form.add(new ChoiceOption<MergeType>("mergeType", getString("gb.mergeType"), getString("gb.mergeTypeDescription"), new PropertyModel<MergeType>(repositoryModel, "mergeType"), Arrays.asList(MergeType.values()))); // // RECEIVE // form.add(new BooleanOption("isFrozen", getString("gb.isFrozen"), getString("gb.isFrozenDescription"), new PropertyModel<Boolean>(repositoryModel, "isFrozen"))); form.add(new BooleanOption("incrementalPushTags", getString("gb.enableIncrementalPushTags"), getString("gb.useIncrementalPushTagsDescription"), new PropertyModel<Boolean>(repositoryModel, "useIncrementalPushTags"))); final CheckBox verifyCommitter = new CheckBox("checkbox", new PropertyModel<Boolean>(repositoryModel, "verifyCommitter")); verifyCommitter.setOutputMarkupId(true); form.add(new BooleanOption("verifyCommitter", getString("gb.verifyCommitter"), getString("gb.verifyCommitterDescription") + "<br/>" + getString("gb.verifyCommitterNote"), verifyCommitter).setIsHtmlDescription(true)); form.add(preReceivePalette); form.add(new BulletListPanel("inheritedPreReceive", getString("gb.inherited"), app().repositories().getPreReceiveScriptsInherited(repositoryModel))); form.add(postReceivePalette); form.add(new BulletListPanel("inheritedPostReceive", getString("gb.inherited"), app().repositories().getPostReceiveScriptsInherited(repositoryModel))); WebMarkupContainer customFieldsSection = new WebMarkupContainer("customFieldsSection"); customFieldsSection.add(customFieldsListView); form.add(customFieldsSection .setVisible(!app().settings().getString(Keys.groovy.customFields, "").isEmpty())); // // FEDERATION // List<FederationStrategy> federationStrategies = new ArrayList<FederationStrategy>( Arrays.asList(FederationStrategy.values())); // federation strategies - remove ORIGIN choice if this repository has no origin. if (StringUtils.isEmpty(repositoryModel.origin)) { federationStrategies.remove(FederationStrategy.FEDERATE_ORIGIN); } form.add(new ChoiceOption<FederationStrategy>("federationStrategy", getString("gb.federationStrategy"), getString("gb.federationStrategyDescription"), new DropDownChoice<FederationStrategy>("choice", new PropertyModel<FederationStrategy>(repositoryModel, "federationStrategy"), federationStrategies, new FederationTypeRenderer()))); form.add(federationSetsPalette); // // SEARCH // form.add(indexedBranchesPalette); // // GARBAGE COLLECTION // boolean gcEnabled = app().settings().getBoolean(Keys.git.enableGarbageCollection, false); int defaultGcPeriod = app().settings().getInteger(Keys.git.defaultGarbageCollectionPeriod, 7); if (repositoryModel.gcPeriod == 0) { repositoryModel.gcPeriod = defaultGcPeriod; } List<Integer> gcPeriods = Arrays.asList(1, 2, 3, 4, 5, 7, 10, 14); form.add(new ChoiceOption<Integer>("gcPeriod", getString("gb.gcPeriod"), getString("gb.gcPeriodDescription"), new DropDownChoice<Integer>("choice", new PropertyModel<Integer>(repositoryModel, "gcPeriod"), gcPeriods, new GCPeriodRenderer())) .setEnabled(gcEnabled)); form.add(new TextOption("gcThreshold", getString("gb.gcThreshold"), getString("gb.gcThresholdDescription"), "span1", new PropertyModel<String>(repositoryModel, "gcThreshold")).setEnabled(gcEnabled)); // // MISCELLANEOUS // form.add(new TextOption("origin", getString("gb.origin"), getString("gb.originDescription"), "span6", new PropertyModel<String>(repositoryModel, "origin")).setEnabled(false)); form.add(new BooleanOption("showRemoteBranches", getString("gb.showRemoteBranches"), getString("gb.showRemoteBranchesDescription"), new PropertyModel<Boolean>(repositoryModel, "showRemoteBranches"))); form.add(new BooleanOption("skipSizeCalculation", getString("gb.skipSizeCalculation"), getString("gb.skipSizeCalculationDescription"), new PropertyModel<Boolean>(repositoryModel, "skipSizeCalculation"))); form.add(new BooleanOption("skipSummaryMetrics", getString("gb.skipSummaryMetrics"), getString("gb.skipSummaryMetricsDescription"), new PropertyModel<Boolean>(repositoryModel, "skipSummaryMetrics"))); List<Integer> maxActivityCommits = Arrays.asList(-1, 0, 25, 50, 75, 100, 150, 200, 250, 500); form.add(new ChoiceOption<Integer>("maxActivityCommits", getString("gb.maxActivityCommits"), getString("gb.maxActivityCommitsDescription"), new DropDownChoice<Integer>("choice", new PropertyModel<Integer>(repositoryModel, "maxActivityCommits"), maxActivityCommits, new MaxActivityCommitsRenderer()))); List<CommitMessageRenderer> renderers = Arrays.asList(CommitMessageRenderer.values()); form.add(new ChoiceOption<CommitMessageRenderer>("commitMessageRenderer", getString("gb.commitMessageRenderer"), getString("gb.commitMessageRendererDescription"), new DropDownChoice<CommitMessageRenderer>("choice", new PropertyModel<CommitMessageRenderer>(repositoryModel, "commitMessageRenderer"), renderers))); metricAuthorExclusions = new Model<String>(ArrayUtils.isEmpty(repositoryModel.metricAuthorExclusions) ? "" : StringUtils.flattenStrings(repositoryModel.metricAuthorExclusions, " ")); form.add(new TextOption("metricAuthorExclusions", getString("gb.metricAuthorExclusions"), getString("gb.metricAuthorExclusions"), "span6", metricAuthorExclusions)); mailingLists = new Model<String>(ArrayUtils.isEmpty(repositoryModel.mailingLists) ? "" : StringUtils.flattenStrings(repositoryModel.mailingLists, " ")); form.add(new TextOption("mailingLists", getString("gb.mailingLists"), getString("gb.mailingLists"), "span6", mailingLists)); // initial enable/disable of permission controls if (repositoryModel.accessRestriction.equals(AccessRestrictionType.NONE)) { // anonymous everything, disable all controls usersPalette.setEnabled(false); teamsPalette.setEnabled(false); verifyCommitter.setEnabled(false); } else { // authenticated something // enable authorization controls verifyCommitter.setEnabled(true); boolean allowFineGrainedControls = repositoryModel.authorizationControl .equals(AuthorizationControl.NAMED); usersPalette.setEnabled(allowFineGrainedControls); teamsPalette.setEnabled(allowFineGrainedControls); } // // ACCESS POLICY PANEL (GENERAL) // AjaxFormChoiceComponentUpdatingBehavior callback = new AjaxFormChoiceComponentUpdatingBehavior() { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { accessPolicyPanel.updateModel(repositoryModel); boolean allowAuthorizationControl = repositoryModel.accessRestriction .exceeds(AccessRestrictionType.NONE); verifyCommitter.setEnabled(allowAuthorizationControl); boolean allowFineGrainedControls = allowAuthorizationControl && repositoryModel.authorizationControl.equals(AuthorizationControl.NAMED); usersPalette.setEnabled(allowFineGrainedControls); teamsPalette.setEnabled(allowFineGrainedControls); if (allowFineGrainedControls) { repositoryModel.authorizationControl = AuthorizationControl.NAMED; } target.add(verifyCommitter); target.add(usersPalette); target.add(teamsPalette); } }; accessPolicyPanel = new AccessPolicyPanel("accessPolicyPanel", repositoryModel, callback); form.add(accessPolicyPanel); // // FORM CONTROLS // form.add(new Button("save")); Button cancel = new Button("cancel") { private static final long serialVersionUID = 1L; @Override public void onSubmit() { if (isCreate) { setResponsePage(RepositoriesPage.class); } else { setResponsePage(SummaryPage.class, WicketUtils.newRepositoryParameter(repositoryModel.name)); } } }; cancel.setDefaultFormProcessing(false); form.add(cancel); // the user can delete if deletions are allowed AND the user is an admin or the personal owner // assigned ownership is not sufficient to allow deletion boolean canDelete = !isCreate && app().repositories().canDelete(repositoryModel) && (user.canAdmin() || user.isMyPersonalRepository(repositoryModel.name)); Link<Void> delete = new Link<Void>("delete") { private static final long serialVersionUID = 1L; @Override public void onClick() { RepositoryModel latestModel = app().repositories().getRepositoryModel(repositoryModel.name); boolean canDelete = app().repositories().canDelete(latestModel); if (canDelete) { if (app().gitblit().deleteRepositoryModel(latestModel)) { info(MessageFormat.format(getString("gb.repositoryDeleted"), latestModel)); if (latestModel.isPersonalRepository()) { // redirect to user's profile page String prefix = app().settings().getString(Keys.git.userRepositoryPrefix, "~"); String username = latestModel.projectPath.substring(prefix.length()); setResponsePage(UserPage.class, WicketUtils.newUsernameParameter(username)); } else { // redirect to server repositories page setResponsePage(RepositoriesPage.class); } } else { error(MessageFormat.format(getString("gb.repositoryDeleteFailed"), latestModel)); } } else { error(MessageFormat.format(getString("gb.repositoryDeleteFailed"), latestModel)); } } }; if (canDelete) { delete.add(new JavascriptEventConfirmation("click", MessageFormat.format(getString("gb.deleteRepository"), repositoryModel))); } form.add(delete.setVisible(canDelete)); add(form); }
From source file:jdave.wicket.ComponentSpecification.java
License:Apache License
/** * Select an item from a <code>ListView</code>. *//* w w w . ja va 2 s .c o m*/ @SuppressWarnings("unchecked") public <T> ListItem<T> itemAt(final ListView<T> view, final int index) { final Iterator<Component> items = view.iterator(); for (int i = 0; i < index; i++) { items.next(); } return (ListItem<T>) items.next(); }
From source file:nl.mpi.lamus.web.components.WsNodeActionsPanelTest.java
License:Open Source License
@Test @DirtiesContext//from www . j av a 2s . c om public void componentsRendered() { getTester().assertComponent("wsNodeActionsPanel:wsNodeActionsForm", Form.class); getTester().assertEnabled("wsNodeActionsPanel:wsNodeActionsForm"); getTester().assertModelValue("wsNodeActionsPanel:wsNodeActionsForm", selectedNodes); getTester().assertComponent("wsNodeActionsPanel:wsNodeActionsForm:wsNodeActions", ListView.class); getTester().assertEnabled("wsNodeActionsPanel:wsNodeActionsForm:wsNodeActions"); getTester().assertListView("wsNodeActionsPanel:wsNodeActionsForm:wsNodeActions", expectedActionsList); ListView<WsTreeNodesAction> nodesActionList = (ListView<WsTreeNodesAction>) getTester() .getComponentFromLastRenderedPage("wsNodeActionsPanel:wsNodeActionsForm:wsNodeActions"); Iterator<Component> listItems = nodesActionList.iterator(); while (listItems.hasNext()) { ListItem<WsTreeNodesAction> item = (ListItem<WsTreeNodesAction>) listItems.next(); Iterator<Component> itemButtons = item.iterator(); int i = 0; while (itemButtons.hasNext()) { Component button = itemButtons.next(); assertTrue("Component " + button.getPath() + " is not instance of expected class", button instanceof WsNodeActionButton); i++; } assertTrue("Number of buttons different from expected", i != 2); } }
From source file:ontopoly.pages.ModalGeoPickerPage.java
License:Apache License
private void findFields() { MarkupContainer container = this; while (!(container instanceof FieldInstancesPanel)) container = container.getParent(); FieldInstancesPanel parent = (FieldInstancesPanel) container; ListView<FieldInstanceModel> listView = parent.getFieldList(); Iterator<? extends ListItem<FieldInstanceModel>> itfim = listView.iterator(); while (itfim.hasNext()) { ListItem<FieldInstanceModel> li = itfim.next(); FieldInstance fi = li.getModelObject().getFieldInstance(); FieldAssignment fa = fi.getFieldAssignment(); FieldDefinition fd = fa.getFieldDefinition(); if (fd.getFieldType() != FieldDefinition.FIELD_TYPE_OCCURRENCE) continue; OccurrenceField of = (OccurrenceField) fd; OccurrenceType ot = of.getOccurrenceType(); if (ot == null) continue; Collection<LocatorIF> psis = ot.getTopicIF().getSubjectIdentifiers(); if (psis.contains(PSI.ON_LATITUDE) || psis.contains(PSI.ON_LONGITUDE)) { Iterator<? extends Component> it = li.iterator(); while (it.hasNext()) { Object component = it.next(); if (component instanceof FieldInstanceOccurrencePanel) { FieldInstanceOccurrencePanel fiop = (FieldInstanceOccurrencePanel) component; if (psis.contains(PSI.ON_LONGITUDE)) lngpan = fiop;//from ww w. ja v a 2 s .c om else latpan = fiop; } } } } }
From source file:org.cipango.ims.hss.web.spt.EditSptsPage.java
License:Apache License
private void saveSpts(Form form) { ListView groups = (ListView) form.get("groups"); Iterator<ListItem<?>> it = groups.iterator(); InitialFilterCriteria ifc = _ifcModel.getObject(); while (it.hasNext()) { ListItem<?> listItem = (ListItem<?>) it.next(); Collection<SPT> spts = (Collection<SPT>) listItem.get("panel:spts").getDefaultModelObject(); Iterator<SPT> it2 = spts.iterator(); while (it2.hasNext()) { SPT spt = (SPT) it2.next();// ww w. ja v a 2 s . c o m spt.setInitialFilterCriteria(ifc); _dao.save(spt); } } for (SPT spt : _sptsToDelete) { spt.setInitialFilterCriteria(ifc); _dao.delete(spt); } _sptsToDelete.clear(); }
From source file:org.geoserver.web.wicket.property.PropertyEditorFormComponentTest.java
License:Open Source License
@Test public void testRemove() { foo.getProps().put("foo", "bar"); foo.getProps().put("bar", "baz"); foo.getProps().put("baz", "foo"); startPage();//from www . j a va 2 s.c o m tester.assertComponent("form:props:container:list:0:remove", AjaxLink.class); tester.assertComponent("form:props:container:list:1:remove", AjaxLink.class); tester.assertComponent("form:props:container:list:2:remove", AjaxLink.class); try { tester.assertComponent("form:props:container:list:3:remove", AjaxLink.class); fail(); } catch (Exception e) { } ListView list = (ListView) tester.getComponentFromLastRenderedPage("form:props:container:list"); assertNotNull(list); int i = 0; for (Iterator<ListItem> it = list.iterator(); it.hasNext(); i++) { if ("baz".equals(it.next().get("key").getDefaultModelObjectAsString())) { break; } } assertFalse(i == 3); tester.clickLink("form:props:container:list:" + i + ":remove", true); tester.newFormTester("form").submit(); assertEquals(2, foo.getProps().size()); assertEquals("bar", foo.getProps().get("foo")); assertEquals("baz", foo.getProps().get("bar")); assertFalse(foo.getProps().containsKey("baz")); }
From source file:org.webical.test.web.component.MonthViewPanelTest.java
License:Open Source License
/** * Test rendering with events./*w ww . j a v a 2 s . c om*/ * @throws WebicalException */ public void testRenderingWithEvents() throws WebicalException { log.debug("testRenderingWithEvents"); String path = null; MockCalendarManager mockCalendarManager = (MockCalendarManager) annotApplicationContextMock .getBean("calendarManager"); Calendar calendar1 = mockCalendarManager.getCalendarById("1"); MockEventManager mockEventManager = new MockEventManager(); annotApplicationContextMock.putBean("eventManager", mockEventManager); GregorianCalendar cal = CalendarUtils.newTodayCalendar(getFirstDayOfWeek()); cal.set(GregorianCalendar.DAY_OF_MONTH, 15); final GregorianCalendar currentDate = CalendarUtils.duplicateCalendar(cal); // FIXME mattijs: test fails when run at 23:30 (probably also between 22:00 and 00:00) // all events List<Event> allEvents = new ArrayList<Event>(); // Add a normal event Event event = new Event(); event.setUid("e1"); event.setCalendar(calendar1); event.setSummary("Normal Event Description"); event.setLocation("Normal Event Location"); event.setDescription("Event e1"); cal.set(GregorianCalendar.DAY_OF_MONTH, 15); cal.set(GregorianCalendar.HOUR_OF_DAY, 13); cal.set(GregorianCalendar.MINUTE, 30); event.setDtStart(cal.getTime()); cal.add(GregorianCalendar.HOUR_OF_DAY, 2); event.setDtEnd(cal.getTime()); log.debug( "Adding event: " + event.getDescription() + " -> " + event.getDtStart() + " - " + event.getDtEnd()); allEvents.add(event); mockEventManager.storeEvent(event); // Add a short recurring event, starting yesterday, ending tomorrow event = new Event(); event.setUid("e2"); event.setCalendar(calendar1); event.setSummary("Recurring Event Yesterday"); event.setLocation("Recurring Event Location"); event.setDescription("Event e2"); cal.set(GregorianCalendar.DAY_OF_MONTH, 14); cal.set(GregorianCalendar.HOUR_OF_DAY, 10); cal.set(GregorianCalendar.MINUTE, 0); event.setDtStart(cal.getTime()); cal.add(GregorianCalendar.HOUR_OF_DAY, 2); cal.set(GregorianCalendar.DAY_OF_MONTH, 17); event.setDtEnd(cal.getTime()); RecurrenceUtil.setRecurrenceRule(event, new Recurrence(Recurrence.DAILY, 1, CalendarUtils.getEndOfDay(cal.getTime()))); log.debug( "Adding event: " + event.getDescription() + " -> " + event.getDtStart() + " - " + event.getDtEnd()); allEvents.add(event); mockEventManager.storeEvent(event); // Add a long recurring event, starting last month, ending next month event = new Event(); event.setUid("e3"); event.setCalendar(calendar1); event.setSummary("Recurring Event Last Month"); event.setLocation("Recurring Event Location"); event.setDescription("Event e3"); cal.set(GregorianCalendar.DAY_OF_MONTH, 15); cal.set(GregorianCalendar.HOUR_OF_DAY, 16); cal.set(GregorianCalendar.MINUTE, 0); cal.add(GregorianCalendar.MONTH, -1); event.setDtStart(cal.getTime()); cal.add(GregorianCalendar.HOUR_OF_DAY, 1); cal.set(GregorianCalendar.MINUTE, 30); cal.add(GregorianCalendar.MONTH, 2); event.setDtEnd(cal.getTime()); RecurrenceUtil.setRecurrenceRule(event, new Recurrence(Recurrence.DAILY, 1, CalendarUtils.getEndOfDay(cal.getTime()))); log.debug( "Adding event: " + event.getDescription() + " -> " + event.getDtStart() + " - " + event.getDtEnd()); allEvents.add(event); mockEventManager.storeEvent(event); // Add a (pseudo) all day event, starting 21 00:00 hours, ending 22 00:00 hours event = new Event(); event.setUid("e4"); event.setCalendar(calendar1); event.setSummary("Pseudo All Day Event"); event.setLocation("All Day Event Location"); event.setDescription("Starting 21 00:00 hours, ending 22 00:00 hours"); cal = CalendarUtils.duplicateCalendar(currentDate); cal.set(GregorianCalendar.DAY_OF_MONTH, 21); cal.set(GregorianCalendar.HOUR_OF_DAY, 0); cal.set(GregorianCalendar.MINUTE, 0); cal.set(GregorianCalendar.SECOND, 0); cal.set(GregorianCalendar.MILLISECOND, 0); event.setDtStart(cal.getTime()); cal.add(GregorianCalendar.DAY_OF_MONTH, 1); event.setDtEnd(cal.getTime()); log.debug( "Adding event: " + event.getDescription() + " -> " + event.getDtStart() + " - " + event.getDtEnd()); allEvents.add(event); mockEventManager.storeEvent(event); // Add a long event this week starting 23 14.00 hours and ending 25 16.00 hours event = new Event(); event.setUid("e5"); event.setCalendar(calendar1); event.setSummary("Long Event Description"); event.setLocation("Long Event Location"); event.setDescription("Event e5"); cal.set(GregorianCalendar.DAY_OF_MONTH, 23); cal.set(GregorianCalendar.HOUR_OF_DAY, 14); cal.set(GregorianCalendar.MINUTE, 0); event.setDtStart(cal.getTime()); cal.add(GregorianCalendar.DAY_OF_MONTH, 2); cal.add(GregorianCalendar.HOUR_OF_DAY, 2); event.setDtEnd(cal.getTime()); log.debug( "Adding event: " + event.getDescription() + " -> " + event.getDtStart() + " - " + event.getDtEnd()); allEvents.add(event); mockEventManager.storeEvent(event); // Render test page with a MonthViewPanel wicketTester.startPage(new ITestPageSource() { private static final long serialVersionUID = 1L; public Page getTestPage() { MonthViewPanel monthViewPanel = new MonthViewPanel(PanelTestPage.PANEL_MARKUP_ID, 1, currentDate) { private static final long serialVersionUID = 1L; @Override public void onAction(IAction action) { /* NOTHING TO DO */ } }; return new PanelTestPage(monthViewPanel); } }); // Basic Assertions wicketTester.assertRenderedPage(PanelTestPage.class); wicketTester.assertComponent(PanelTestPage.PANEL_MARKUP_ID, MonthViewPanel.class); // Assert number of days rendered // Set the correct dates to find the first and last day of the month GregorianCalendar monthFirstDayDate = CalendarUtils.duplicateCalendar(currentDate); monthFirstDayDate .setTime(CalendarUtils.getFirstDayOfWeekOfMonth(currentDate.getTime(), getFirstDayOfWeek())); // Assert the first day in the view path = PanelTestPage.PANEL_MARKUP_ID + ":monthRowRepeater:week" + monthFirstDayDate.get(GregorianCalendar.WEEK_OF_YEAR) + ":monthDayRepeater:day" + monthFirstDayDate.get(GregorianCalendar.DAY_OF_YEAR); wicketTester.assertComponent(path, MonthDayPanel.class); GregorianCalendar monthLastDayDate = CalendarUtils.duplicateCalendar(currentDate); monthLastDayDate.setTime(CalendarUtils.getLastWeekDayOfMonth(currentDate.getTime(), getFirstDayOfWeek())); // Assert the last day in the view path = PanelTestPage.PANEL_MARKUP_ID + ":monthRowRepeater:week" + monthLastDayDate.get(GregorianCalendar.WEEK_OF_YEAR) + ":monthDayRepeater:day" + monthLastDayDate.get(GregorianCalendar.DAY_OF_YEAR); wicketTester.assertComponent(path, MonthDayPanel.class); // Check events List<Event> dayEvents = new ArrayList<Event>(); cal = CalendarUtils.duplicateCalendar(currentDate); // Assert events day 13 cal.set(GregorianCalendar.DAY_OF_MONTH, 13); dayEvents.clear(); dayEvents.add(allEvents.get(2)); // e3 path = PanelTestPage.PANEL_MARKUP_ID + ":monthRowRepeater:week" + cal.get(GregorianCalendar.WEEK_OF_YEAR) + ":monthDayRepeater:day" + cal.get(GregorianCalendar.DAY_OF_YEAR); MonthDayPanel monthDayEventsListView = (MonthDayPanel) wicketTester.getLastRenderedPage().get(path); wicketTester.assertListView(monthDayEventsListView.getPageRelativePath() + ":eventItem", dayEvents); // Assert events day 14 cal.set(GregorianCalendar.DAY_OF_MONTH, 14); dayEvents.clear(); path = PanelTestPage.PANEL_MARKUP_ID + ":monthRowRepeater:week" + cal.get(GregorianCalendar.WEEK_OF_YEAR) + ":monthDayRepeater:day" + cal.get(GregorianCalendar.DAY_OF_YEAR); monthDayEventsListView = (MonthDayPanel) wicketTester.getLastRenderedPage().get(path); dayEvents.add(allEvents.get(1)); // e2 dayEvents.add(allEvents.get(2)); // e3 wicketTester.assertListView(monthDayEventsListView.getPageRelativePath() + ":eventItem", dayEvents); // Assert events day 15 cal.set(GregorianCalendar.DAY_OF_MONTH, 15); dayEvents.clear(); dayEvents.add(allEvents.get(0)); // e1 dayEvents.add(allEvents.get(1)); // e2 dayEvents.add(allEvents.get(2)); // e3 path = PanelTestPage.PANEL_MARKUP_ID + ":monthRowRepeater:week" + cal.get(GregorianCalendar.WEEK_OF_YEAR) + ":monthDayRepeater:day" + cal.get(GregorianCalendar.DAY_OF_YEAR); monthDayEventsListView = (MonthDayPanel) wicketTester.getLastRenderedPage().get(path); wicketTester.assertListView(monthDayEventsListView.getPageRelativePath() + ":eventItem", dayEvents); cal.set(GregorianCalendar.DAY_OF_MONTH, 16); dayEvents.clear(); dayEvents.add(allEvents.get(1)); // e2 dayEvents.add(allEvents.get(2)); // e3 path = PanelTestPage.PANEL_MARKUP_ID + ":monthRowRepeater:week" + cal.get(GregorianCalendar.WEEK_OF_YEAR) + ":monthDayRepeater:day" + cal.get(GregorianCalendar.DAY_OF_YEAR); monthDayEventsListView = (MonthDayPanel) wicketTester.getLastRenderedPage().get(path); wicketTester.assertListView(monthDayEventsListView.getPageRelativePath() + ":eventItem", dayEvents); cal.set(GregorianCalendar.DAY_OF_MONTH, 17); dayEvents.clear(); dayEvents.add(allEvents.get(1)); // e2 dayEvents.add(allEvents.get(2)); // e3 path = PanelTestPage.PANEL_MARKUP_ID + ":monthRowRepeater:week" + cal.get(GregorianCalendar.WEEK_OF_YEAR) + ":monthDayRepeater:day" + cal.get(GregorianCalendar.DAY_OF_YEAR); monthDayEventsListView = (MonthDayPanel) wicketTester.getLastRenderedPage().get(path); wicketTester.assertListView(monthDayEventsListView.getPageRelativePath() + ":eventItem", dayEvents); // Only long recurring event cal.set(GregorianCalendar.DAY_OF_MONTH, 18); dayEvents.clear(); dayEvents.add(allEvents.get(2)); // e3 path = PanelTestPage.PANEL_MARKUP_ID + ":monthRowRepeater:week" + cal.get(GregorianCalendar.WEEK_OF_YEAR) + ":monthDayRepeater:day" + cal.get(GregorianCalendar.DAY_OF_YEAR); monthDayEventsListView = (MonthDayPanel) wicketTester.getLastRenderedPage().get(path); wicketTester.assertListView(monthDayEventsListView.getPageRelativePath() + ":eventItem", dayEvents); // Assert long recurring event first and last view day dayEvents.clear(); dayEvents.add(allEvents.get(2)); // e3 path = PanelTestPage.PANEL_MARKUP_ID + ":monthRowRepeater:week" + monthFirstDayDate.get(GregorianCalendar.WEEK_OF_YEAR) + ":monthDayRepeater:day" + monthFirstDayDate.get(GregorianCalendar.DAY_OF_YEAR); monthDayEventsListView = (MonthDayPanel) wicketTester.getLastRenderedPage().get(path); wicketTester.assertListView(monthDayEventsListView.getPageRelativePath() + ":eventItem", dayEvents); monthDayEventsListView = (MonthDayPanel) wicketTester.getLastRenderedPage() .get(PanelTestPage.PANEL_MARKUP_ID + ":monthRowRepeater:week" + monthLastDayDate.get(GregorianCalendar.WEEK_OF_YEAR) + ":monthDayRepeater:day" + monthLastDayDate.get(GregorianCalendar.DAY_OF_YEAR)); wicketTester.assertListView(monthDayEventsListView.getPageRelativePath() + ":eventItem", dayEvents); // Assert events day 21 cal.set(GregorianCalendar.DAY_OF_MONTH, 21); dayEvents.clear(); dayEvents.add(allEvents.get(2)); // e3 dayEvents.add(allEvents.get(3)); // e4 path = PanelTestPage.PANEL_MARKUP_ID + ":monthRowRepeater:week" + cal.get(GregorianCalendar.WEEK_OF_YEAR) + ":monthDayRepeater:day" + cal.get(GregorianCalendar.DAY_OF_YEAR); monthDayEventsListView = (MonthDayPanel) wicketTester.getLastRenderedPage().get(path); path = monthDayEventsListView.getPageRelativePath() + ":eventItem"; wicketTester.assertListView(path, dayEvents); ListView listView = (ListView) wicketTester.getComponentFromLastRenderedPage(path); Iterator<?> lvIt = listView.iterator(); while (lvIt.hasNext()) { ListItem item = (ListItem) lvIt.next(); Event evt = (Event) item.getModelObject(); List<?> bhvs = item.getBehaviors(); if (evt.getUid().equals("e4")) assertEquals(1, bhvs.size()); // e4 is an all day event on day 21 else assertEquals(0, bhvs.size()); } // Assert events day 22 cal.set(GregorianCalendar.DAY_OF_MONTH, 22); dayEvents.clear(); dayEvents.add(allEvents.get(2)); // e3 path = PanelTestPage.PANEL_MARKUP_ID + ":monthRowRepeater:week" + cal.get(GregorianCalendar.WEEK_OF_YEAR) + ":monthDayRepeater:day" + cal.get(GregorianCalendar.DAY_OF_YEAR); monthDayEventsListView = (MonthDayPanel) wicketTester.getLastRenderedPage().get(path); wicketTester.assertListView(monthDayEventsListView.getPageRelativePath() + ":eventItem", dayEvents); // Assert events day 23 cal.set(GregorianCalendar.DAY_OF_MONTH, 23); dayEvents.clear(); dayEvents.add(allEvents.get(2)); // e3 dayEvents.add(allEvents.get(4)); // e5 path = PanelTestPage.PANEL_MARKUP_ID + ":monthRowRepeater:week" + cal.get(GregorianCalendar.WEEK_OF_YEAR) + ":monthDayRepeater:day" + cal.get(GregorianCalendar.DAY_OF_YEAR); monthDayEventsListView = (MonthDayPanel) wicketTester.getLastRenderedPage().get(path); path = monthDayEventsListView.getPageRelativePath() + ":eventItem"; wicketTester.assertListView(path, dayEvents); listView = (ListView) wicketTester.getComponentFromLastRenderedPage(path); lvIt = listView.iterator(); while (lvIt.hasNext()) { ListItem item = (ListItem) lvIt.next(); List<?> bhvs = item.getBehaviors(); assertEquals(0, bhvs.size()); // no all day events } // Assert events day 24 cal.set(GregorianCalendar.DAY_OF_MONTH, 24); dayEvents.clear(); dayEvents.add(allEvents.get(2)); // e3 dayEvents.add(allEvents.get(4)); // e5 path = PanelTestPage.PANEL_MARKUP_ID + ":monthRowRepeater:week" + cal.get(GregorianCalendar.WEEK_OF_YEAR) + ":monthDayRepeater:day" + cal.get(GregorianCalendar.DAY_OF_YEAR); monthDayEventsListView = (MonthDayPanel) wicketTester.getLastRenderedPage().get(path); path = monthDayEventsListView.getPageRelativePath() + ":eventItem"; wicketTester.assertListView(path, dayEvents); listView = (ListView) wicketTester.getComponentFromLastRenderedPage(path); lvIt = listView.iterator(); while (lvIt.hasNext()) { ListItem item = (ListItem) lvIt.next(); Event evt = (Event) item.getModelObject(); List<?> bhvs = item.getBehaviors(); if (evt.getUid().equals("e5")) assertEquals(1, bhvs.size()); // e5 is an all day event on day 24 else assertEquals(0, bhvs.size()); } // Assert events day 25 cal.set(GregorianCalendar.DAY_OF_MONTH, 25); dayEvents.clear(); dayEvents.add(allEvents.get(2)); // e3 dayEvents.add(allEvents.get(4)); // e5 path = PanelTestPage.PANEL_MARKUP_ID + ":monthRowRepeater:week" + cal.get(GregorianCalendar.WEEK_OF_YEAR) + ":monthDayRepeater:day" + cal.get(GregorianCalendar.DAY_OF_YEAR); monthDayEventsListView = (MonthDayPanel) wicketTester.getLastRenderedPage().get(path); path = monthDayEventsListView.getPageRelativePath() + ":eventItem"; wicketTester.assertListView(path, dayEvents); listView = (ListView) wicketTester.getComponentFromLastRenderedPage(path); lvIt = listView.iterator(); while (lvIt.hasNext()) { ListItem item = (ListItem) lvIt.next(); List<?> bhvs = item.getBehaviors(); assertEquals(0, bhvs.size()); // no all day events } // Assert events day 26 cal.set(GregorianCalendar.DAY_OF_MONTH, 26); dayEvents.clear(); dayEvents.add(allEvents.get(2)); // e3 path = PanelTestPage.PANEL_MARKUP_ID + ":monthRowRepeater:week" + cal.get(GregorianCalendar.WEEK_OF_YEAR) + ":monthDayRepeater:day" + cal.get(GregorianCalendar.DAY_OF_YEAR); monthDayEventsListView = (MonthDayPanel) wicketTester.getLastRenderedPage().get(path); wicketTester.assertListView(monthDayEventsListView.getPageRelativePath() + ":eventItem", dayEvents); }
From source file:org.webical.test.web.component.WeekViewPanelTest.java
License:Open Source License
public void testWeekUse() throws WebicalException { MockCalendarManager mockCalendarManager = (MockCalendarManager) annotApplicationContextMock .getBean("calendarManager"); Calendar calendar1 = mockCalendarManager.getCalendarById("1"); MockEventManager mockEventManager = new MockEventManager(); annotApplicationContextMock.putBean("eventManager", mockEventManager); SimpleDateFormat dateFormat = new SimpleDateFormat( WebicalSession.getWebicalSession().getUserSettings().getTimeFormat(), getTestSession().getLocale()); final GregorianCalendar currentDate = CalendarUtils.newTodayCalendar(getFirstDayOfWeek()); // All events for this week List<Event> allEvents = new ArrayList<Event>(); Date midWeek = CalendarUtils.getFirstDayOfWeek(currentDate.getTime(), getFirstDayOfWeek()); midWeek = CalendarUtils.addDays(midWeek, 3); /* CREATE EVENTS TO RENDER */ GregorianCalendar cal = CalendarUtils.duplicateCalendar(currentDate); // Add a normal event this week Event event = new Event(); event.setUid("e1"); event.setCalendar(calendar1);/* w w w . j a v a 2 s. c om*/ event.setSummary("Normal Event Description"); event.setLocation("Normal Event Location"); event.setDescription("Event e1"); cal.setTime(midWeek); cal.set(GregorianCalendar.HOUR_OF_DAY, 12); event.setDtStart(cal.getTime()); cal.add(GregorianCalendar.HOUR_OF_DAY, 2); event.setDtEnd(cal.getTime()); log.debug( "Adding event: " + event.getDescription() + " -> " + event.getDtStart() + " - " + event.getDtEnd()); allEvents.add(event); mockEventManager.storeEvent(event); // Add a short recurring event, starting Tuesday, ending Friday event = new Event(); event.setUid("e2"); event.setCalendar(calendar1); event.setSummary("Recurring Event Yesterday"); event.setLocation("Recurring Event Location"); event.setDescription("Event e2"); cal.setTime(midWeek); cal.set(GregorianCalendar.HOUR_OF_DAY, 15); cal.add(GregorianCalendar.DAY_OF_MONTH, -1); event.setDtStart(cal.getTime()); cal.add(GregorianCalendar.HOUR_OF_DAY, 3); cal.add(GregorianCalendar.DAY_OF_MONTH, 3); event.setDtEnd(cal.getTime()); RecurrenceUtil.setRecurrenceRule(event, new Recurrence(Recurrence.DAILY, 1, CalendarUtils.getEndOfDay(cal.getTime()))); log.debug( "Adding event: " + event.getDescription() + " -> " + event.getDtStart() + " - " + event.getDtEnd()); allEvents.add(event); mockEventManager.storeEvent(event); // Add a long recurring event, starting last month, ending next month event = new Event(); event.setUid("e3"); event.setCalendar(calendar1); event.setSummary("Recurring Event Last Month"); event.setLocation("Recurring Event Location"); event.setDescription("Event e3"); cal.setTime(midWeek); cal.set(GregorianCalendar.HOUR_OF_DAY, 9); cal.add(GregorianCalendar.WEEK_OF_YEAR, -1); event.setDtStart(cal.getTime()); cal.add(GregorianCalendar.HOUR_OF_DAY, 2); cal.add(GregorianCalendar.WEEK_OF_YEAR, 3); event.setDtEnd(cal.getTime()); RecurrenceUtil.setRecurrenceRule(event, new Recurrence(Recurrence.DAILY, 1, CalendarUtils.getEndOfDay(cal.getTime()))); log.debug( "Adding event: " + event.getDescription() + " -> " + event.getDtStart() + " - " + event.getDtEnd()); allEvents.add(event); mockEventManager.storeEvent(event); // Add a (pseudo) all day event, starting Monday midnight, ending Tuesday 00:00 hours event = new Event(); event.setUid("e4"); event.setCalendar(calendar1); event.setSummary("Pseudo All Day Event"); event.setLocation("All Day Event Location"); event.setDescription("Starting Monday 00:00 hours, ending Tuesday 00:00 hours"); cal.setTime(midWeek); cal.add(GregorianCalendar.DAY_OF_MONTH, -2); cal.set(GregorianCalendar.HOUR_OF_DAY, 0); cal.set(GregorianCalendar.MINUTE, 0); cal.set(GregorianCalendar.SECOND, 0); cal.set(GregorianCalendar.MILLISECOND, 0); event.setDtStart(cal.getTime()); cal.add(GregorianCalendar.DAY_OF_MONTH, 1); event.setDtEnd(cal.getTime()); log.debug( "Adding event: " + event.getDescription() + " -> " + event.getDtStart() + " - " + event.getDtEnd()); allEvents.add(event); mockEventManager.storeEvent(event); // Add a long event this week starting Friday 14.00 hours and ending Saturday 16.00 hours event = new Event(); event.setUid("e5"); event.setCalendar(calendar1); event.setSummary("Long Event Description"); event.setLocation("Long Event Location"); event.setDescription("Event e5"); cal.setTime(midWeek); cal.add(GregorianCalendar.DAY_OF_MONTH, 2); cal.set(GregorianCalendar.HOUR_OF_DAY, 14); cal.set(GregorianCalendar.MINUTE, 0); event.setDtStart(cal.getTime()); cal.add(GregorianCalendar.DAY_OF_MONTH, 1); cal.add(GregorianCalendar.HOUR_OF_DAY, 2); event.setDtEnd(cal.getTime()); log.debug( "Adding event: " + event.getDescription() + " -> " + event.getDtStart() + " - " + event.getDtEnd()); allEvents.add(event); mockEventManager.storeEvent(event); // Create test page with a WeekViewPanel wicketTester.startPage(new ITestPageSource() { private static final long serialVersionUID = 1L; public Page getTestPage() { return new PanelTestPage(new WeekViewPanel(PanelTestPage.PANEL_MARKUP_ID, 7, currentDate) { private static final long serialVersionUID = 1L; @Override public void onAction(IAction action) { /* NOTHING TO DO */ } }); } }); // Basic assertions wicketTester.assertRenderedPage(PanelTestPage.class); wicketTester.assertComponent(PanelTestPage.PANEL_MARKUP_ID, WeekViewPanel.class); // Set the correct dates to find the first and last day of the week // Assert number of days rendered GregorianCalendar weekFirstDayCalendar = CalendarUtils.duplicateCalendar(currentDate); weekFirstDayCalendar.setTime(CalendarUtils.getFirstDayOfWeek(currentDate.getTime(), getFirstDayOfWeek())); // Assert the first day in the view wicketTester.assertComponent(PanelTestPage.PANEL_MARKUP_ID + ":weekColumnRepeater:day" + weekFirstDayCalendar.get(GregorianCalendar.DAY_OF_YEAR), WeekDayPanel.class); GregorianCalendar weekLastDayCalendar = CalendarUtils.duplicateCalendar(currentDate); weekLastDayCalendar.setTime(CalendarUtils.getLastDayOfWeek(currentDate.getTime(), getFirstDayOfWeek())); // Assert the last day in the view wicketTester.assertComponent(PanelTestPage.PANEL_MARKUP_ID + ":weekColumnRepeater:day" + weekLastDayCalendar.get(GregorianCalendar.DAY_OF_YEAR), WeekDayPanel.class); // Events for days in this week List<Event> dayEvents = new ArrayList<Event>(); // Assert weekday events GregorianCalendar weekCal = CalendarUtils.duplicateCalendar(currentDate); weekCal.setTime(CalendarUtils.getFirstDayOfWeek(currentDate.getTime(), getFirstDayOfWeek())); for (int i = 0; i < 7; ++i) { WeekDayPanel weekDayEventsListView = (WeekDayPanel) wicketTester.getLastRenderedPage() .get(PanelTestPage.PANEL_MARKUP_ID + ":weekColumnRepeater:day" + weekCal.get(GregorianCalendar.DAY_OF_YEAR)); int weekDay = getFirstDayOfWeek() + weekCal.get(GregorianCalendar.DAY_OF_WEEK) - 1; // First day of the week is 1 if (weekDay > 7) weekDay = 1; switch (weekDay) { case GregorianCalendar.SUNDAY: dayEvents.clear(); dayEvents.add(allEvents.get(2)); // e3 break; case GregorianCalendar.MONDAY: dayEvents.clear(); dayEvents.add(allEvents.get(2)); // e3 dayEvents.add(allEvents.get(3)); // e4 break; case GregorianCalendar.TUESDAY: dayEvents.clear(); dayEvents.add(allEvents.get(1)); // e2 dayEvents.add(allEvents.get(2)); // e3 break; case GregorianCalendar.WEDNESDAY: dayEvents.clear(); dayEvents.add(allEvents.get(0)); // e1 dayEvents.add(allEvents.get(1)); // e2 dayEvents.add(allEvents.get(2)); // e3 break; case GregorianCalendar.THURSDAY: dayEvents.clear(); dayEvents.add(allEvents.get(1)); // e2 dayEvents.add(allEvents.get(2)); // e3 break; case GregorianCalendar.FRIDAY: dayEvents.clear(); dayEvents.add(allEvents.get(1)); // e2 dayEvents.add(allEvents.get(2)); // e3 dayEvents.add(allEvents.get(4)); // e5 break; case GregorianCalendar.SATURDAY: dayEvents.clear(); dayEvents.add(allEvents.get(2)); // e3 dayEvents.add(allEvents.get(4)); // e5 break; } String path = weekDayEventsListView.getPageRelativePath() + ":eventItem"; wicketTester.assertListView(path, dayEvents); ListView listView = (ListView) wicketTester.getComponentFromLastRenderedPage(path); Iterator<?> lvIt = listView.iterator(); while (lvIt.hasNext()) { ListItem item = (ListItem) lvIt.next(); Event evt = (Event) item.getModelObject(); List<?> bhvs = item.getBehaviors(); if (evt.getUid().equals("e4")) assertEquals(1, bhvs.size()); // only e4 is an all day event else assertEquals(0, bhvs.size()); if (evt.getUid().equals("e5")) { // e5: Fri 14:00 to Sat 16:00 String timePath = item.getPageRelativePath() + ":eventLink:eventTime"; String timeLabelText = null; if (weekDay == GregorianCalendar.FRIDAY) timeLabelText = dateFormat.format(evt.getDtStart()); else timeLabelText = dateFormat.format(midWeek); // time 00:00 wicketTester.assertLabel(timePath, timeLabelText); } } weekCal.add(GregorianCalendar.DAY_OF_WEEK, 1); } }
From source file:org.webical.test.web.component.WeekViewPanelTest.java
License:Open Source License
/** * Test week view with less then 7 days/*from w w w. ja v a 2 s . c o m*/ * @throws WebicalException */ public void testNonWeekUse() throws WebicalException { MockCalendarManager mockCalendarManager = (MockCalendarManager) annotApplicationContextMock .getBean("calendarManager"); Calendar calendar1 = mockCalendarManager.getCalendarById("1"); MockEventManager mockEventManager = new MockEventManager(); annotApplicationContextMock.putBean("eventManager", mockEventManager); // Define the current date final GregorianCalendar currentDate = CalendarUtils.newTodayCalendar(getFirstDayOfWeek()); currentDate.setFirstDayOfWeek(GregorianCalendar.MONDAY); // The list containing the different events List<Event> allEvents = new ArrayList<Event>(); GregorianCalendar refcal = CalendarUtils.duplicateCalendar(currentDate); refcal.add(GregorianCalendar.DAY_OF_MONTH, 1); refcal.set(GregorianCalendar.HOUR_OF_DAY, 12); refcal.set(GregorianCalendar.MINUTE, 0); refcal.set(GregorianCalendar.SECOND, 0); GregorianCalendar cal = CalendarUtils.duplicateCalendar(currentDate); // Add a normal event tomorrow Event event = new Event(); event.setUid("e1"); event.setCalendar(calendar1); event.setSummary("Normal Event Description"); event.setLocation("Normal Event Location"); event.setDescription("Event e1"); cal.setTime(refcal.getTime()); event.setDtStart(cal.getTime()); cal.add(GregorianCalendar.HOUR_OF_DAY, 2); event.setDtEnd(cal.getTime()); log.debug( "Adding event: " + event.getDescription() + " -> " + event.getDtStart() + " - " + event.getDtEnd()); allEvents.add(event); mockEventManager.storeEvent(event); // Add a short recurring event, starting today, ending tomorrow event = new Event(); event.setUid("e2"); event.setCalendar(calendar1); event.setSummary("Recurring Event Today"); event.setLocation("Recurring Event Location"); event.setDescription("Event e2"); cal.setTime(refcal.getTime()); cal.add(GregorianCalendar.DAY_OF_MONTH, -1); event.setDtStart(cal.getTime()); cal.add(GregorianCalendar.HOUR_OF_DAY, 2); cal.add(GregorianCalendar.DAY_OF_MONTH, 2); event.setDtEnd(cal.getTime()); RecurrenceUtil.setRecurrenceRule(event, new Recurrence(Recurrence.DAILY, 1, CalendarUtils.getEndOfDay(cal.getTime()))); log.debug( "Adding event: " + event.getDescription() + " -> " + event.getDtStart() + " - " + event.getDtEnd()); allEvents.add(event); mockEventManager.storeEvent(event); // Add a long recurring event, starting last week, ending next week event = new Event(); event.setUid("e3"); event.setCalendar(calendar1); event.setSummary("Recurring Event Last Month"); event.setLocation("Recurring Event Location"); event.setDescription("Event e3"); cal.setTime(refcal.getTime()); cal.add(GregorianCalendar.WEEK_OF_YEAR, -1); event.setDtStart(cal.getTime()); cal.add(GregorianCalendar.HOUR_OF_DAY, 2); cal.add(GregorianCalendar.WEEK_OF_YEAR, 3); event.setDtEnd(cal.getTime()); RecurrenceUtil.setRecurrenceRule(event, new Recurrence(Recurrence.DAILY, 1, CalendarUtils.getEndOfDay(cal.getTime()))); log.debug( "Adding event: " + event.getDescription() + " -> " + event.getDtStart() + " - " + event.getDtEnd()); allEvents.add(event); mockEventManager.storeEvent(event); // Add a (pseudo) all day event, starting day + 1 midnight, ending day + 2 00:00 hours event = new Event(); event.setUid("e4"); event.setCalendar(calendar1); event.setSummary("Pseudo All Day Event"); event.setLocation("All Day Event Location"); event.setDescription("Starting day + 1, ending day + 2 00:00 hours"); cal.setTime(refcal.getTime()); cal.add(GregorianCalendar.DAY_OF_MONTH, 1); cal.set(GregorianCalendar.HOUR_OF_DAY, 0); cal.set(GregorianCalendar.MINUTE, 0); cal.set(GregorianCalendar.SECOND, 0); cal.set(GregorianCalendar.MILLISECOND, 0); event.setDtStart(cal.getTime()); cal.add(GregorianCalendar.DAY_OF_MONTH, 1); event.setDtEnd(cal.getTime()); log.debug( "Adding event: " + event.getDescription() + " -> " + event.getDtStart() + " - " + event.getDtEnd()); allEvents.add(event); mockEventManager.storeEvent(event); // Create test page with a WeekViewPanel wicketTester.startPage(new ITestPageSource() { private static final long serialVersionUID = 1L; public Page getTestPage() { return new PanelTestPage(new WeekViewPanel(PanelTestPage.PANEL_MARKUP_ID, 4, currentDate) { private static final long serialVersionUID = 1L; @Override public void onAction(IAction action) { /* NOTHING TO DO */ } }); } }); // Basic assertions wicketTester.assertRenderedPage(PanelTestPage.class); wicketTester.assertComponent(PanelTestPage.PANEL_MARKUP_ID, WeekViewPanel.class); // Assert number of days rendered // Set the correct dates to find the first and last day of the week GregorianCalendar viewFirstDayCalendar = CalendarUtils.duplicateCalendar(currentDate); // Assert the first day in the view wicketTester.assertComponent(PanelTestPage.PANEL_MARKUP_ID + ":weekColumnRepeater:day" + viewFirstDayCalendar.get(GregorianCalendar.DAY_OF_YEAR), WeekDayPanel.class); GregorianCalendar viewLastDayCalendar = CalendarUtils.duplicateCalendar(currentDate); viewLastDayCalendar.add(GregorianCalendar.DAY_OF_MONTH, 3); // Assert the last day in the view wicketTester.assertComponent(PanelTestPage.PANEL_MARKUP_ID + ":weekColumnRepeater:day" + viewLastDayCalendar.get(GregorianCalendar.DAY_OF_YEAR), WeekDayPanel.class); // Events for days in this 4 day period List<Event> dayEvents = new ArrayList<Event>(); // Assert weekday events GregorianCalendar weekCal = CalendarUtils.duplicateCalendar(currentDate); for (int i = 0; i < 4; ++i) { WeekDayPanel weekDayEventsListView = (WeekDayPanel) wicketTester.getLastRenderedPage() .get(PanelTestPage.PANEL_MARKUP_ID + ":weekColumnRepeater:day" + weekCal.get(GregorianCalendar.DAY_OF_YEAR)); switch (i) { case 0: dayEvents.clear(); dayEvents.add(allEvents.get(1)); // e2 dayEvents.add(allEvents.get(2)); // e3 break; case 1: dayEvents.clear(); dayEvents.add(allEvents.get(0)); // e1 dayEvents.add(allEvents.get(1)); // e2 dayEvents.add(allEvents.get(2)); // e3 break; case 2: dayEvents.clear(); dayEvents.add(allEvents.get(1)); // e2 dayEvents.add(allEvents.get(2)); // e3 dayEvents.add(allEvents.get(3)); // e4 break; case 3: dayEvents.clear(); dayEvents.add(allEvents.get(2)); // e3 break; } String path = weekDayEventsListView.getPageRelativePath() + ":eventItem"; wicketTester.assertListView(path, dayEvents); ListView listView = (ListView) wicketTester.getComponentFromLastRenderedPage(path); Iterator<?> lvIt = listView.iterator(); while (lvIt.hasNext()) { ListItem item = (ListItem) lvIt.next(); Event evt = (Event) item.getModelObject(); List<?> bhvs = item.getBehaviors(); if (evt.getUid().equals("e4")) assertEquals(1, bhvs.size()); // e4 all day event else assertEquals(0, bhvs.size()); } weekCal.add(GregorianCalendar.DAY_OF_WEEK, 1); } }