private RegionWidget createWidgetInstance(Widget widget, Region region, int position) { RegionWidget regionWidget = new RegionWidgetImpl(); regionWidget.setRenderOrder(position); regionWidget.setWidgetId(widget.getId()); // TODO: setLocked and setHideChrome are hard-coded to false for new widgets manually added by users // which makes sense for most default cases. However should we change them to a customizable property // to allow for more flexibility? regionWidget.setLocked(false); regionWidget.setHideChrome(false); regionWidget.setRegion(region); region.getRegionWidgets().add(position, regionWidget); updateRenderSequences(region.getRegionWidgets()); Region persistedRegion = regionRepository.save(region); return persistedRegion.getRegionWidgets().get(position); }
/** * 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; }