private void addItemWithName(Set<Item> items, String itemName) { if (itemName != null) { try { Item item = itemUIRegistry.getItem(itemName); items.add(item); } catch (ItemNotFoundException e) { // ignore } } }
@Override public EList<Widget> renderWidget(Widget w, StringBuilder sb) throws RenderException { String snippet = getSnippet("frame"); String label = StringEscapeUtils.escapeHtml(itemUIRegistry.getLabel(w)); List<String> frameClassList = new ArrayList<>(); snippet = StringUtils.replace(snippet, "%label%", label); snippet = StringUtils.replace(snippet, "%widget_id%", itemUIRegistry.getWidgetId(w)); if (label.isEmpty()) { frameClassList.add("mdl-form--no-label"); } if (!itemUIRegistry.getVisiblity(w)) { frameClassList.add("mdl-form--hidden"); } String frameClass = StringUtils.join(frameClassList, ' '); snippet = StringUtils.replace(snippet, "%frame_class%", frameClass); // Process the color tags snippet = processColor(w, snippet); sb.append(snippet); return itemUIRegistry.getChildren((Frame) w); } }
private EList<Widget> collectWidgets(String sitemapName, String pageId) { EList<Widget> widgets = new BasicEList<Widget>(); Sitemap sitemap = getSitemap(sitemapName); if (sitemap != null) { if (pageId.equals(sitemap.getName())) { widgets = itemUIRegistry.getChildren(sitemap); } else { Widget pageWidget = itemUIRegistry.getWidget(sitemap, pageId); if (pageWidget instanceof LinkableWidget) { widgets = itemUIRegistry.getChildren((LinkableWidget) pageWidget); // We add the page widget. It will help any UI to update the page title. widgets.add(pageWidget); } } } return widgets; }
/** * Process the color tags - labelcolor and valuecolor * * @param w * The widget to process * @param snippet * The snippet to translate * @return The updated snippet */ protected String processColor(Widget w, String originalSnippet) { String style = ""; String color = ""; String snippet = originalSnippet; color = itemUIRegistry.getLabelColor(w); if (color != null) { style = "style=\"color:" + color + "\""; } snippet = StringUtils.replace(snippet, "%labelstyle%", style); style = ""; color = itemUIRegistry.getValueColor(w); if (color != null) { style = "style=\"color:" + color + "\""; } snippet = StringUtils.replace(snippet, "%valuestyle%", style); return snippet; }
if (!evenIfHidden && !itemUIRegistry.getVisiblity(widget)) { return null; if (widget.getItem() != null) { try { Item item = itemUIRegistry.getItem(widget.getItem()); String widgetTypeName = widget.eClass().getInstanceTypeName() .substring(widget.eClass().getInstanceTypeName().lastIndexOf(".") + 1); bean.item = EnrichedItemDTOMapper.map(item, isMapview, itemFilter, UriBuilder.fromUri(uri).build(), locale); bean.state = itemUIRegistry.getState(widget).toFullString(); bean.icon = itemUIRegistry.getCategory(widget); bean.labelcolor = itemUIRegistry.getLabelColor(widget); bean.valuecolor = itemUIRegistry.getValueColor(widget); bean.label = itemUIRegistry.getLabel(widget); bean.type = widget.eClass().getName(); bean.visibility = itemUIRegistry.getVisiblity(widget); if (widget instanceof LinkableWidget) { LinkableWidget linkableWidget = (LinkableWidget) widget; EList<Widget> children = itemUIRegistry.getChildren(linkableWidget); if (widget instanceof Frame) { for (Widget child : children) { String wID = itemUIRegistry.getWidgetId(child); WidgetDTO subWidget = createWidgetBean(sitemapName, child, drillDown, uri, wID, locale, evenIfHidden); String pageName = itemUIRegistry.getWidgetId(linkableWidget);
if (sitemap != null) { if (pageId.equals(sitemap.getName())) { EList<Widget> children = itemUIRegistry.getChildren(sitemap); return createPageBean(sitemapName, sitemap.getLabel(), sitemap.getIcon(), sitemap.getName(), children, false, isLeaf(children), uri, locale); } else { Widget pageWidget = itemUIRegistry.getWidget(sitemap, pageId); if (pageWidget instanceof LinkableWidget) { EList<Widget> children = itemUIRegistry.getChildren((LinkableWidget) pageWidget); PageDTO pageBean = createPageBean(sitemapName, itemUIRegistry.getLabel(pageWidget), itemUIRegistry.getCategory(pageWidget), pageId, children, false, isLeaf(children), uri, locale); EObject parentPage = pageWidget.eContainer(); String parentId = itemUIRegistry.getWidgetId((Widget) parentPage); pageBean.parent = getPageBean(sitemapName, parentId, uri, locale); pageBean.parent.widgets = null;
private Set<SitemapEvent> constructSitemapEvents(Item item, List<Widget> widgets) { Set<SitemapEvent> events = new HashSet<>(); for (Widget w : widgets) { if (w instanceof Frame) { events.addAll(constructSitemapEvents(item, itemUIRegistry.getChildren((Frame) w))); } if ((w.getItem() != null && w.getItem().equals(item.getName())) || definesVisibility(w, item.getName())) { SitemapWidgetEvent event = new SitemapWidgetEvent(); event.sitemapName = sitemapName; event.pageId = pageId; event.label = itemUIRegistry.getLabel(w); event.labelcolor = itemUIRegistry.getLabelColor(w); event.valuecolor = itemUIRegistry.getValueColor(w); event.widgetId = itemUIRegistry.getWidgetId(w); event.visibility = itemUIRegistry.getVisiblity(w); event.item = EnrichedItemDTOMapper.map(item, false, null, null); // adjust the state according to the widget type event.item.state = itemUIRegistry.getState(w).toFullString(); events.add(event); } } return events; }
for (Widget w : widgets) { if (w instanceof Frame) { events.addAll(constructSitemapEvents(item, state, itemUIRegistry.getChildren((Frame) w))); event.sitemapName = sitemapName; event.pageId = pageId; event.label = itemUIRegistry.getLabel(w); event.labelcolor = itemUIRegistry.getLabelColor(w); event.valuecolor = itemUIRegistry.getValueColor(w); event.widgetId = itemUIRegistry.getWidgetId(w); event.visibility = itemUIRegistry.getVisiblity(w); event.state = itemUIRegistry.convertState(w, item, state).toFullString();
State state = itemUIRegistry.getState(cp); String hexValue = "#ffffff"; if (state instanceof HSBType) { hexValue = "#" + Integer.toHexString(hsbState.getRGB()).substring(2); String purelabel = itemUIRegistry.getLabel(w); purelabel = purelabel.replaceAll("\\\"", "\\\\'"); String color = itemUIRegistry.getLabelColor(w); if (color != null) { style = "color:" + color; color = itemUIRegistry.getValueColor(w); if (color != null) { style = "color:" + color;
@Override public String getLabel(String itemName) { return itemUIRegistry.getLabel(itemName); }
/** * Replace some common values in the widget template * * @param snippet snippet html code * @param w corresponding widget * @return */ protected String preprocessSnippet(String originalSnippet, Widget w) { String snippet = originalSnippet; snippet = StringUtils.replace(snippet, "%widget_id%", itemUIRegistry.getWidgetId(w)); snippet = StringUtils.replace(snippet, "%icon_type%", config.getIconType()); snippet = StringUtils.replace(snippet, "%item%", w.getItem() != null ? w.getItem() : ""); // Optimization: avoid calling 3 times itemUIRegistry.getLabel(w) String text = itemUIRegistry.getLabel(w); snippet = StringUtils.replace(snippet, "%label%", getLabel(text)); snippet = StringUtils.replace(snippet, "%value%", getValue(text)); snippet = StringUtils.replace(snippet, "%has_value%", new Boolean(hasValue(text)).toString()); snippet = StringUtils.replace(snippet, "%visibility_class%", itemUIRegistry.getVisiblity(w) ? "" : "mdl-form__row--hidden"); String state = getState(w); snippet = StringUtils.replace(snippet, "%state%", state == null ? "" : escapeURL(state)); String category = getCategory(w); snippet = StringUtils.replace(snippet, "%category%", escapeURL(category)); return snippet; }
Item item = itemUIRegistry.getItem(chart.getItem()); if (item instanceof GroupItem) { itemParam = "groups=" + chart.getItem(); if (!itemUIRegistry.getVisiblity(w)) { url = URL_NONE_ICON; ignoreRefresh = true; snippet = StringUtils.replace(snippet, "%id%", itemUIRegistry.getWidgetId(w)); snippet = StringUtils.replace(snippet, "%proxied_url%", chartUrl); snippet = StringUtils.replace(snippet, "%valid_url%", "true");
String widgetId = itemUIRegistry.getWidgetId(w); snippet = StringUtils.replace(snippet, "%id%", widgetId); snippet = preprocessSnippet(snippet, w); State state = itemUIRegistry.getState(w); String url; boolean ignoreRefresh; if (!itemUIRegistry.getVisiblity(w)) { url = URL_NONE_ICON; ignoreRefresh = true;
Widget widget = itemUIRegistry.getWidget(sitemap, widgetId); if (widget == null) { throw new ProxyServletException(HttpServletResponse.SC_NOT_FOUND, State state = itemUIRegistry.getItemState(itemName); if (state != null && state instanceof StringType) { try {
@Override public EList<Widget> renderWidget(Widget w, StringBuilder sb) throws RenderException { Video videoWidget = (Video) w; String snippet = null; String widgetId = itemUIRegistry.getWidgetId(w); String sitemap = w.eResource().getURI().path(); if (videoWidget.getEncoding() != null && videoWidget.getEncoding().toLowerCase().contains("mjpeg")) { // we handle mjpeg streams as an html image as browser can usually handle this snippet = getSnippet("image"); } else { snippet = getSnippet("video"); } String url = "../proxy?sitemap=" + sitemap + "&widgetId=" + widgetId; String mediaType = ""; if (videoWidget.getEncoding() != null && videoWidget.getEncoding().toLowerCase().contains("hls")) { // For HTTP Live Stream we don't proxy the URL and we set the appropriate media type State state = itemUIRegistry.getState(w); url = (state instanceof StringType) ? state.toString() : videoWidget.getUrl(); mediaType = "type=\"application/vnd.apple.mpegurl\""; } snippet = StringUtils.replace(snippet, "%url%", url); snippet = StringUtils.replace(snippet, "%media_type%", mediaType); snippet = preprocessSnippet(snippet, videoWidget); sb.append(snippet); return null; } }
protected String getCategory(Widget w) { return itemUIRegistry.getCategory(w); }
private String buildProxyUrl(String sitemapName, Widget widget, URI uri) { String wId = itemUIRegistry.getWidgetId(widget); StringBuilder sb = new StringBuilder(); sb.append(uri.getScheme()).append("://").append(uri.getHost()); if (uri.getPort() >= 0) { sb.append(":").append(uri.getPort()); } sb.append("/proxy?sitemap=").append(sitemapName).append(".sitemap&widgetId=").append(wId); return sb.toString(); }
protected String getState(Widget w) { State state = itemUIRegistry.getState(w); if (state != null) { return state.toString(); } else { return "NULL"; } }
private boolean isLeaf(EList<Widget> children) { for (Widget w : children) { if (w instanceof Frame) { if (isLeaf(((Frame) w).getChildren())) { return false; } } else if (w instanceof LinkableWidget) { LinkableWidget linkableWidget = (LinkableWidget) w; if (itemUIRegistry.getChildren(linkableWidget).size() > 0) { return false; } } } return true; }