private void updateTemplate(Map<String, Widget> widgetsById, PageTemplate template) { setIdViaReflection(template, null); for (PageTemplateRegion region : template.getPageTemplateRegions()) { setIdViaReflection(region, null); region.setPageTemplate(template); for (PageTemplateWidget widget : region.getPageTemplateWidgets()) { Widget fromDb = widgetsById.get(widget.getWidgetId()); if (fromDb != null) { widget.setWidgetId(fromDb.getId()); } setIdViaReflection(widget, null); widget.setPageTemplateRegion(region); } } }
lPage.setPageLayout(pt.getPageLayout()); lPage.setParentPage(page); lPage.setRegions(convertRegions(pt.getPageTemplateRegions(), lPage, createIds));
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; }
private void updateProperties(PageTemplate source, JpaPageTemplate converted) { converted.setEntityId(source.getId() == null ? null : Long.parseLong(source.getId())); converted.setName(source.getName()); converted.setDescription(source.getDescription()); converted.setPageType(source.getPageType()); converted.setParentPageTemplate(source.getParentPageTemplate()); converted.setSubPageTemplates(source.getSubPageTemplates()); converted.setPageLayout(source.getPageLayout()); converted.setPageTemplateRegions(source.getPageTemplateRegions()); converted.setRenderSequence(source.getRenderSequence()); converted.setDefaultTemplate(source.isDefaultTemplate()); } }
/** * 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; }