private void updateProperties(RegionWidget source, JpaRegionWidget converted) { converted.setEntityId(source.getId() == null ? null : Long.parseLong(source.getId())); converted.setLocked(source.isLocked()); converted.setCollapsed(source.isCollapsed()); converted.setHideChrome(source.isHideChrome()); converted.setPreferences(source.getPreferences()); converted.setRegion(source.getRegion()); converted.setRenderPosition(source.getRenderPosition()); converted.setWidgetId(source.getWidgetId()); converted.setRenderOrder(source.getRenderOrder()); } }
/** * convertWidgets: List of PageTemplateWidget, JpaRegion -> List of RegionWidget * Converts the Page Template Widgets to RegionWidgets for the given JpaRegion * @param pageTemplateWidgets List of PageTemplateWidget * @param region JpaRegion * @return List of RegionWidget */ private List<RegionWidget> convertWidgets(List<PageTemplateWidget> pageTemplateWidgets, JpaRegion region){ List<RegionWidget> widgets = new ArrayList<RegionWidget>(); for (PageTemplateWidget ptw : pageTemplateWidgets){ RegionWidget regionWidget = new JpaRegionWidget(); regionWidget.setRegion(region); regionWidget.setCollapsed(false); regionWidget.setLocked(ptw.isLocked()); regionWidget.setHideChrome(ptw.isHideChrome()); regionWidget.setRenderOrder((int) ptw.getRenderSeq()); regionWidget.setWidgetId(ptw.getWidgetId()); widgets.add(regionWidget); } return widgets; }
public RegionWidget(org.apache.rave.model.RegionWidget widget) { this.id = widget.getId(); this.widgetId = widget.getWidgetId(); this.regionId = widget.getRegion().getId(); this.collapsed = widget.isCollapsed(); this.locked = widget.isLocked(); this.ownerId = widget.getRegion().getPage().getOwnerId(); this.hideChrome = widget.isHideChrome(); this.userPrefs = createPrefs(widget); }
private void verifyRegionWidgetIsNotLocked(RegionWidget regionWidget) { if (regionWidget == null) { throw new IllegalArgumentException("regionWidget is null"); } if (regionWidget.isLocked()) { throw new UnsupportedOperationException("Can't modify locked RegionWidget: " + regionWidget); } // also traverse up and make sure its region is also not locked verifyRegionIsNotLocked(regionWidget.getRegion()); } }
private String getWidgetScript(RegionWidget item, Widget widget) { JSONObject userPrefs = new JSONObject(); if (item.getPreferences() != null) { for (RegionWidgetPreference regionWidgetPreference : item.getPreferences()) { try { userPrefs.put(regionWidgetPreference.getName(), regionWidgetPreference.getValue()); String pageName = ""; boolean isDefault = false; Page page = item.getRegion().getPage(); if (page.getParentPage() != null) { pageId = "'" + page.getId() + "'"; item.getRegion().getId(), Constants.WIDGET_TYPE, item.getId(), widget.getUrl(), securityTokenService.getEncryptedSecurityToken(item, widget), openSocialService.getGadgetMetadata(widget.getUrl()), userPrefs.toString(), item.isCollapsed(), widget.getId(), item.isLocked(), item.isHideChrome(), pageId, pageName,
if ( widget.isDisableRendering() ) { ScriptManager scriptManager = getBeanFromContext(ScriptManager.class); String widgetScript = String.format(DISABLED_SCRIPT_BLOCK, regionWidget.getRegion().getId(), regionWidget.getId(), StringEscapeUtils.escapeEcmaScript(widget.getDisableRenderingMessage()), regionWidget.isCollapsed(), widget.getId()); String key = REGISTER_DISABLED_WIDGET_KEY + "-" + widget.getId();
private BlobCrypterSecurityToken getBlobCrypterSecurityToken(RegionWidget regionWidget, Widget widget) throws SecurityTokenException { String moduleUrl = widget != null ? widget.getUrl() : ""; String moduleId = String.valueOf(regionWidget.getId()); String ownerId = regionWidget.getRegion().getPage().getOwnerId(); User user = userService.getAuthenticatedUser(); BlobCrypterSecurityToken securityToken = getBlobCrypterSecurityToken(moduleUrl, moduleId, ownerId, user); if (logger.isTraceEnabled()) { logger.trace("Token created for regionWidget " + regionWidget.toString() + " and user " + user.toString()); } return securityToken; }
private static RegionWidget findRegionWidgetById(String id, List<RegionWidget> regionWidgets) { for (RegionWidget widget : regionWidgets) { if (widget.getId().equals(id)) { return widget; } } throw new IllegalArgumentException("Invalid RegionWidget ID"); }
@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()); }
/** * Utility function to move a RegionWidget to a new Region * * @param regionWidget the RegionWidget to move * @param moveToRegion the new Region to move it to */ private void moveRegionWidgetToNewRegion(RegionWidget regionWidget, Region moveToRegion) { List<RegionWidget> regionWidgets = moveToRegion.getRegionWidgets(); int renderOrder = regionWidgets.isEmpty() ? 1 : regionWidgets.get(regionWidgets.size()-1).getRenderOrder() + 1; regionWidget.setRegion(moveToRegion); regionWidget.setRenderOrder(renderOrder); moveToRegion.getRegionWidgets().add(regionWidget); }
private String getUserIdFromRegionWidget(RegionWidget regionWidget) { return regionWidget.getRegion().getPage().getOwnerId(); }
@RequestMapping(value = {"/api/rest/regionwidget/{regionWidgetId}"}, method = RequestMethod.GET) public String viewRegionWidget(Model model, @PathVariable String regionWidgetId){ RegionWidget rw = regionWidgetService.getRegionWidget(regionWidgetId); model.addAttribute(ModelKeys.WIDGET, widgetService.getWidget(rw.getWidgetId())); model.addAttribute(ModelKeys.REGION_WIDGET, rw); return ViewNames.REGION_WIDGET; }
protected HashMap<String, String> createPrefs(org.apache.rave.model.RegionWidget widget) { HashMap<String, String> created = null; List<RegionWidgetPreference> preferences = widget.getPreferences(); if(preferences != null) { created = new HashMap<String, String>(); for(RegionWidgetPreference pref : preferences) { created.put(pref.getName(), pref.getValue()); } } return created; } }
@Override @Transactional public RegionWidget saveRegionWidgetCollapsedState(String regionWidgetId, boolean collapsed) { RegionWidget regionWidget = getValidRegionWidget(regionWidgetId); regionWidget.setCollapsed(collapsed); return saveRegionWidget(regionWidget); }
@Override public void delete(RegionWidget item) { manager.remove(item instanceof JpaRegionWidget ? item : get(item.getId())); }
@Override @Transactional public Region removeWidgetFromPage(String regionWidgetId) { RegionWidget regionWidget = getFromRepository(regionWidgetId, regionWidgetRepository); verifyRegionWidgetIsNotLocked(regionWidget); regionWidgetRepository.delete(regionWidget); return getFromRepository(regionWidget.getRegion().getId(), regionRepository); }
@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; } }
@Override @Synchronized(discriminator = "'RegionWidget'", id = "#regionWidgetId") @Transactional public List<RegionWidgetPreference> saveRegionWidgetPreferences(String regionWidgetId, List<RegionWidgetPreference> preferences) { RegionWidget regionWidget = this.getValidRegionWidget(regionWidgetId); ModelUtils.normalizeRegionWidgetPreferences(regionWidgetId, preferences); reconcileRegionWidgetPreferences(regionWidget.getPreferences(), preferences, true); return this.saveRegionWidget(regionWidget).getPreferences(); }