@Override public PageDescriptor clone() { PageDescriptor clone = new PageDescriptor(); clone.setName(getName()); clone.setCharset(getCharset()); clone.setDefaultFlavor(getDefaultFlavor()); clone.setAppendStyles(getAppendStyles()); List<String> styles = getStyles(); if (styles != null) { clone.setStyles(new ArrayList<String>(styles)); } clone.setAppendFlavors(getAppendFlavors()); List<String> flavors = getFlavors(); if (flavors != null) { clone.setFlavors(new ArrayList<String>(flavors)); } clone.setAppendResources(getAppendResources()); if (resources != null) { clone.setResources(new ArrayList<String>(resources)); } if (bundles != null) { clone.setResourceBundles(new ArrayList<String>(bundles)); } return clone; }
protected void mergePage(PageDescriptor page, PageDescriptor globalPage) { if (page != null && globalPage != null) { // merge with global resources PageDescriptor clone = globalPage.clone(); clone.setAppendFlavors(true); clone.setAppendResources(true); clone.setAppendStyles(true); page.merge(clone); } }
public void merge(PageDescriptor src) { String newFlavor = src.getDefaultFlavor(); if (newFlavor != null) { setDefaultFlavor(newFlavor); String newCharset = src.getCharset(); if (newCharset != null) { setCharset(newCharset); List<String> newStyles = src.getStyles(); if (newStyles != null) { List<String> merged = new ArrayList<String>(); merged.addAll(newStyles); boolean keepOld = src.getAppendStyles() || (newStyles.isEmpty() && !src.getAppendStyles()); if (keepOld) { List<String> oldStyles = getStyles(); if (oldStyles != null) { merged.addAll(0, oldStyles); setStyles(merged); List<String> newFlavors = src.getFlavors(); if (newFlavors != null) { List<String> merged = new ArrayList<String>(); merged.addAll(newFlavors); boolean keepOld = src.getAppendFlavors() || (newFlavors.isEmpty() && !src.getAppendFlavors()); if (keepOld) { List<String> oldFlavors = getFlavors();
@Override public WroModel create() { WroModel model = new WroModel(); ThemeStylingService ts = Framework.getService(ThemeStylingService.class); WebResourceManager ws = Framework.getService(WebResourceManager.class); ResourceContextImpl rcontext = new ResourceContextImpl(); List<PageDescriptor> pages = ts.getPages(); for (PageDescriptor page : pages) { String groupName = page.getName(); Group group = new Group(groupName); List<String> bundleNames = page.getResourceBundles(); for (String bundleName : bundleNames) { List<Resource> resources = ws.getResources(rcontext, bundleName, ResourceType.any.name()); if (resources != null) { for (Resource resource : resources) { ro.isdc.wro.model.resource.Resource wr = toWroResource(bundleName, resource); if (wr != null) { group.addResource(wr); } } } } model.addGroup(group); } return model; }
} else if (contribution instanceof PageDescriptor) { PageDescriptor page = (PageDescriptor) contribution; log.info(String.format("Register page '%s'", page.getName())); if (page.hasResources()) { wrm.registerResourceBundle(page.getComputedResourceBundle()); log.info(String.format("Done registering page '%s'", page.getName())); } else if (contribution instanceof ResourceDescriptor) { ResourceDescriptor resource = (ResourceDescriptor) contribution;
public ResourceBundle getComputedResourceBundle() { if (hasResources()) { ResourceBundleDescriptor bundle = new ResourceBundleDescriptor(); bundle.setName(getComputedResourceBundleName()); bundle.setResources(getResources()); bundle.setAppend(getAppendResources()); return bundle; } return null; }
@Override public String getContributionId(PageDescriptor contrib) { return contrib.getName(); }
protected List<Resource> retrieveResources(WebResourceManager wrm, PageDescriptor page, ResourceType type) { List<Resource> res = new ArrayList<Resource>(); List<String> bundles = page.getResourceBundles(); for (String bundle : bundles) { res.addAll(retrieveResources(wrm, bundle, type)); } return res; }
@Override public void unregisterContribution(Object contribution, String extensionPoint, ComponentInstance contributor) { if (contribution instanceof FlavorDescriptor) { FlavorDescriptor flavor = (FlavorDescriptor) contribution; flavorReg.removeContribution(flavor); } else if (contribution instanceof Resource) { Resource resource = (Resource) contribution; unregisterResource(resource); } else if (contribution instanceof SimpleStyle) { SimpleStyle style = (SimpleStyle) contribution; unregisterResource(getResourceFromStyle(style)); } else if (contribution instanceof PageDescriptor) { PageDescriptor page = (PageDescriptor) contribution; if (page.hasResources()) { WebResourceManager wrm = Framework.getService(WebResourceManager.class); wrm.unregisterResourceBundle(page.getComputedResourceBundle()); } pageReg.removeContribution(page); } else if (contribution instanceof NegotiationDescriptor) { NegotiationDescriptor neg = (NegotiationDescriptor) contribution; negReg.removeContribution(neg); } else { log.error(String.format( "Unknown contribution to the theme " + "styling service, extension point '%s': '%s", extensionPoint, contribution)); } }
@Override public PageDescriptor clone(PageDescriptor orig) { if (orig == null) { return null; } return orig.clone(); }
break; case js: includePageResource(ctx, parent, page.getName(), type, flavor, targetValue, includeTimestamp, nextHandler); break; case css: includePageResource(ctx, parent, page.getName(), type, flavor, targetValue, includeTimestamp, nextHandler); break; case html: for (String bundle : page.getResourceBundles()) { includeResourceBundle(ctx, parent, bundle, type, flavor, targetValue, includeTimestamp, nextHandler);