page.setName(pageName); page.setOwnerId(user.getId()); page.setPageLayout(pageLayout); page.setRegions(regions);
page.setName(pageName); page.setOwnerId(user.getId()); page.setPageLayout(pageLayout); PageUser pageUser = new PageUserImpl(page.getOwnerId(), page, renderSequence); pageUser.setPageStatus(PageInvitationStatus.OWNER);
lPage.setPageType(pt.getPageType()); lPage.setOwnerId(page.getOwnerId()); lPage.setPageLayout(pt.getPageLayout()); lPage.setParentPage(page); lPage.setRegions(convertRegions(pt.getPageTemplateRegions(), lPage));
/** * Converts a PageTemplate to an instance of a Page * * @param template template * @param owner owner of the new page * @param createIds optionally set a negative ID as a relative reference * @return */ public static Page convert(PageTemplate template, User owner, boolean createIds) { Page p = new PageImpl(); if(createIds) { p.setId(String.valueOf(-1L)); } p.setName(template.getName()); p.setPageType(template.getPageType()); p.setOwnerId(owner.getId()); PageUser pageUser = new PageUserImpl(owner.getId(), p, template.getRenderSequence()); pageUser.setPageStatus(PageInvitationStatus.OWNER); pageUser.setEditor(true); List<PageUser> members = new ArrayList<PageUser>(); members.add(pageUser); p.setMembers(members); p.setPageLayout(template.getPageLayout()); p.setRegions(convertRegions(template.getPageTemplateRegions(), p, createIds)); p.setSubPages(convertPages(template.getSubPageTemplates(), p, createIds)); return p; }
@Override @Transactional public Page updatePage(String pageId, String name, String pageLayoutCode, Map<String, Object> properties) { Page page = pageRepository.get(pageId); PageLayout newLayout = pageLayoutRepository.getByPageLayoutCode(pageLayoutCode); PageLayout curLayout = page.getPageLayout(); //if the region lengths of the layouts do not match then adjust the new layout if (isLayoutAdjustmentNeeded(newLayout, curLayout)) { //if the new layout has fewer regions than the previous layout the widgets from the //deleted regions need to be appended to the last valid region in the new layout if (curLayout.getNumberOfRegions() > newLayout.getNumberOfRegions()) { reduceRegionsForPage(page, newLayout.getNumberOfRegions()); } //otherwise the new layout has more regions that the previous layout and //new regions need to be added to the page else { long numberOfNewRegionsToAdd = newLayout.getNumberOfRegions() - curLayout.getNumberOfRegions(); createAdditionalRegionsForPage(page, numberOfNewRegionsToAdd); } } //save the new page properties page.setName(name); page.setPageLayout(newLayout); //Forces callers to send an empty map rather than a null value to clear properties if(properties != null) { page.setProperties(properties); } return pageRepository.save(page); }
/** * convert: PageTemplate, User -> Page * Converts the PageTemplate for Person Profiles into a Person Profile Page * @param pt PageTemplate * @param user User * @return Page */ private Page convert(PageTemplate pt, User user) { Page p = new JpaPage(); p.setName(pt.getName()); p.setPageType(pt.getPageType()); p.setOwnerId(user.getId()); PageUser pageUser = new JpaPageUser(user, p, pt.getRenderSequence()); pageUser.setPageStatus(PageInvitationStatus.OWNER); pageUser.setEditor(true); List<PageUser> members = new ArrayList<PageUser>(); members.add(pageUser); p.setMembers(members); p.setPageLayout(pt.getPageLayout()); p.setRegions(convertRegions(pt.getPageTemplateRegions(), p)); //Workaround for an issue with OpenJPA where the transaction is applied in order of save methods and if //the parent page doesn't have an id yet, it will throw a referential integrity error p = save(p); p.setSubPages(convertPages(pt.getSubPageTemplates(), p)); p = save(p); return p; }