private List<Region> createRegions(org.apache.rave.model.Page source) { List<Region> created = null; List<org.apache.rave.model.Region> regions = source.getRegions(); if(regions != null) { created = new ArrayList<Region>(); for(org.apache.rave.model.Region region : regions) { created.add(new Region(region)); } } return created; }
private static void modifyForExport(Page page) { page.setOwnerId(null); for(Region r : page.getRegions()){ modifyForExport(r); } }
@Override @Transactional public RegionWidget addWidgetToPage(String pageId, String widgetId) { Page page = getFromRepository(pageId, pageRepository); Widget widget = getFromRepository(widgetId, widgetRepository); Region region = page.getRegions().get(0); verifyRegionIsNotLocked(region); return createWidgetInstance(widget, region, 0); }
/*** * Utility function to reduce the regions for a page and move any RegionWidgets * in the Regions getting removed into the region with the largest * remaining render sequence value * * @param page the Page to remove Regions from * @param numberOfRegionsInNewLayout the number of regions in the new layout */ private void reduceRegionsForPage(Page page, long numberOfRegionsInNewLayout) { List<Region> regions = page.getRegions(); Region lastValidRegion = regions.get((int) (numberOfRegionsInNewLayout-1)); //remove all of the extra regions for this new layout and append the widgets while (regions.size() > numberOfRegionsInNewLayout) { Region deletedRegion = regions.remove(regions.size()-1); //append the regions widgets to to last valid region in the new layout for (RegionWidget widget : deletedRegion.getRegionWidgets()) { moveRegionWidgetToNewRegion(widget, lastValidRegion); } regionRepository.delete(deletedRegion); } regionRepository.save(lastValidRegion); }
@Override @Transactional public RegionWidget addWidgetToPageRegion(String pageId, String widgetId, String regionId) { Page page = getFromRepository(pageId, pageRepository); Widget widget = getFromRepository(widgetId, widgetRepository); for(Region region : page.getRegions()){ if(region.getId().equals(regionId)){ verifyRegionIsNotLocked(region); return createWidgetInstance(widget, region, 0); } } // region not found return null; }
/*** * Utility function to create additional empty regions for a page. * * @param page the Page object to add new regions to * @param numberOfNewRegionsToAdd the number of new Region objects to add to the Page */ private void createAdditionalRegionsForPage(Page page, long numberOfNewRegionsToAdd) { //the next render order to use for the region List<Region> regions = page.getRegions(); int lastRegionRenderOrder = regions.get(regions.size()-1).getRenderOrder() + 1; //add as many missing regions as the new layout requires for (int i=0; i < numberOfNewRegionsToAdd; i++) { Region newRegion = new RegionImpl(); newRegion.setPage(page); newRegion.setRenderOrder(lastRegionRenderOrder++); newRegion.setLocked(false); regions.add(newRegion); } } /***
@Transactional public Boolean clonePageForUser(String pageId, String userId, String pageName) { Page page = getPage(pageId); if(pageName == null || pageName.equals("null")){ // try to use the original page name if none supplied pageName = page.getName(); } Page clonedPage = addNewUserPage(userService.getUserById(userId), pageName, page.getPageLayout().getCode()); // populate all the widgets in cloned page from original for(int i=0; i<page.getRegions().size(); i++){ for(int j=0; j<page.getRegions().get(i).getRegionWidgets().size(); j++){ String widgetId = page.getRegions().get(i).getRegionWidgets().get(j).getWidgetId(); addWidgetToPageRegion(clonedPage.getId(), widgetId, clonedPage.getRegions().get(i).getId()); } } clonedPage = getFromRepository(clonedPage.getId(), pageRepository); // newly created page - so only one pageUser PageUser pageUser = clonedPage.getMembers().get(0); // update status to pending pageUser.setPageStatus(PageInvitationStatus.PENDING); if(pageRepository.save(clonedPage) != null){ return Boolean.TRUE; }else{ return Boolean.FALSE; } }
public void buildModel(Page page, String omdlUrl, String wookieUrl) { this.wookieUrl = wookieUrl; OmdlWidget omdlWidget = null; this.status = new Status(OmdlModelUtils.getDate(), DEFAULT_STATUS); this.page = page; this.identifier = omdlUrl; this.title = page.getName(); this.description = DEFAULT_DESCRIPTION; this.creator = getCreator(page); this.date = OmdlModelUtils.getDate(); this.layout = OmdlModelUtils.getOmdlLayoutForExport(page.getPageLayout().getCode()); widgetsList = new ArrayList<OmdlWidget>(); for(int i=0;i<page.getRegions().size(); i++){ for(int j=0;j<page.getRegions().get(i).getRegionWidgets().size();j++){ Widget widget = widgetService.getWidget(page.getRegions().get(i).getRegionWidgets().get(j).getWidgetId()); omdlWidget = new OmdlWidget(); omdlWidget.setUrl(widget.getUrl()); omdlWidget.setLink(createLinkElement(widget.getType(), widget.getUrl())); // figure out what positioning to use for this widget String position = OmdlModelUtils.getPositionString(i+1, page.getRegions().size(), j+1, page.getRegions().get(i).getRegionWidgets().size()); if(position != null && position !=""){ omdlWidget.setPosition(position); } omdlWidget.setWidgetType(UNKNOWN_VALUE); widgetsList.add(omdlWidget); } } }
switch (page.getRegions().size()){ case 1: populateRegionWidgets(page, omdlInputAdapter.getAllUrls(), page.getRegions().get(0).getId()); break; case 2: populateRegionWidgets(page, omdlInputAdapter.getAllLeftUrls(), page.getRegions().get(0).getId()); populateRegionWidgets(page, omdlInputAdapter.getAllRightUrls(), page.getRegions().get(1).getId()); break; case 3: populateRegionWidgets(page, omdlInputAdapter.getAllLeftUrls(), page.getRegions().get(0).getId()); populateRegionWidgets(page, omdlInputAdapter.getAllCenterUrls(), page.getRegions().get(1).getId()); populateRegionWidgets(page, omdlInputAdapter.getAllRightUrls(), page.getRegions().get(2).getId()); break; case 4: populateRegionWidgets(page, omdlInputAdapter.getAllLeftUrls(), page.getRegions().get(0).getId()); populateRegionWidgets(page, omdlInputAdapter.getAllCenterUrls(), page.getRegions().get(1).getId()); populateRegionWidgets(page, omdlInputAdapter.getAllRightUrls(), page.getRegions().get(2).getId()); populateRegionWidgets(page, omdlInputAdapter.getAllUnknownUrls(), page.getRegions().get(3).getId()); break; default:
@Override @Transactional public RegionWidget moveRegionWidgetToPage(String regionWidgetId, String toPageId) { // Get the new page Page toPage = getFromRepository(toPageId, pageRepository); // Get the region widget RegionWidget regionWidget = getFromRepository(regionWidgetId, regionWidgetRepository); Region moveFromRegion = regionWidget.getRegion(); // Move it to first position of the first region Region moveToRegion = toPage.getRegions().get(0); // verify the region widget, source, and target regions not locked verifyRegionWidgetIsNotLocked(regionWidget); verifyRegionIsNotLocked(moveToRegion); regionWidget.setRenderOrder(0); regionWidget.setRegion(moveToRegion); moveToRegion.getRegionWidgets().add(0, regionWidget); //remove it from the old region moveFromRegion.getRegionWidgets().remove(regionWidget); // update the rendersequences of the widgets in this region updateRenderSequences(moveToRegion.getRegionWidgets()); updateRenderSequences(moveFromRegion.getRegionWidgets()); // persist it regionRepository.save(moveToRegion); regionRepository.save(moveFromRegion); return getFromRepository(regionWidgetId, regionWidgetRepository); }
private void updatePage(Map<String, User> usersByOriginalId, Map<String, Widget> widgetsById, Page page) { for (Region region : page.getRegions()) { region.setPage(page); setIdViaReflection(region, null); for (RegionWidget widget : region.getRegionWidgets()) { widget.setRegion(region); Widget fromDb = widgetsById.get(widget.getId()); if (fromDb != null) { widget.setWidgetId(fromDb.getId()); } setIdViaReflection(widget, null); } } for (PageUser user : page.getMembers()) { user.setPage(page); setIdViaReflection(user, null); User fromDb = usersByOriginalId.get(user.getUserId()); if (fromDb != null) { user.setUserId(fromDb.getId()); } } User user = usersByOriginalId.get(page.getOwnerId()); page.setOwnerId(user.getId()); }
private void updateProperties(Page source, JpaPage converted) { replacePageReferences(source, converted); converted.setId(source.getId()); converted.setMembers(source.getMembers()); converted.setName(source.getName()); converted.setOwnerId(source.getOwnerId()); converted.setContextId(source.getContextId()); converted.setPageLayout(source.getPageLayout()); converted.setPageType(source.getPageType()); converted.setParentPage(source.getParentPage()); converted.setRegions(source.getRegions()); converted.setSubPages(source.getSubPages()); converted.setProperties(source.getProperties()); }