Example usage for com.google.gwt.safehtml.shared SafeHtmlUtils htmlEscape

List of usage examples for com.google.gwt.safehtml.shared SafeHtmlUtils htmlEscape

Introduction

In this page you can find the example usage for com.google.gwt.safehtml.shared SafeHtmlUtils htmlEscape.

Prototype

public static String htmlEscape(String s) 

Source Link

Document

HTML-escapes a string.

Usage

From source file:org.eclipse.che.ide.factory.welcome.TooltipHint.java

License:Open Source License

public TooltipHint(String text) {
    setElement(uiBinder.createAndBindUi(this));
    messageElement.setInnerHTML(SafeHtmlUtils.htmlEscape(text));

    DOM.sinkEvents((com.google.gwt.dom.client.Element) closeButton.cast(), Event.ONCLICK);
    DOM.setEventListener((com.google.gwt.dom.client.Element) closeButton.cast(), event -> close());

    getElement().getStyle().setProperty("opacity", "0");
    getElement().getStyle().setTop(top, Unit.PX);
    RootPanel.get().getElement().appendChild(getElement());

    getElement().getStyle().setZIndex(Integer.MAX_VALUE);

    new Timer() {
        @Override/*  w ww.j av  a 2s. c om*/
        public void run() {
            opacity += 1;
            top += delta;
            getElement().getStyle().setTop(top, Unit.PX);

            if (opacity >= 10) {
                getElement().getStyle().setProperty("opacity", "1");
                cancel();
            } else {
                getElement().getStyle().setProperty("opacity", "0." + opacity);
            }
        }
    }.scheduleRepeating(50);
}

From source file:org.eclipse.kapua.app.console.client.util.KapuaSafeHtmlUtils.java

License:Open Source License

public static String htmlEscape(String unsafeHtml) {
    if (unsafeHtml == null)
        return null;
    return SafeHtmlUtils.htmlEscape(unsafeHtml);
}

From source file:org.jahia.ajax.gwt.client.util.content.actions.ContentActions.java

License:Open Source License

/**
 * Display download link//from w  w w.  j  a  v a  2 s .  co m
 *
 * @param linker
 * @param selection
 * @param url
 */
public static void download(Linker linker, GWTJahiaNode selection, String url) {
    if (selection != null && selection.isFile()) {
        linker.loading(Messages.get("statusbar.downloading.label"));
        if (url != null) {
            HTML link = new HTML(Messages.get("downloadMessage.label") + "<br /><br /><a href=\"" + url
                    + "\" target=\"_new\">" + SafeHtmlUtils.htmlEscape(selection.getName()) + "</a>");
            final com.extjs.gxt.ui.client.widget.Window dl = new com.extjs.gxt.ui.client.widget.Window();
            dl.setModal(true);
            dl.setHeadingHtml(Messages.get("label.download"));
            dl.setLayout(new FlowLayout());
            dl.setScrollMode(Style.Scroll.AUTO);
            dl.add(link);
            dl.setHeight(120);
            dl.show();
        } else {
            Window.alert(Messages.get("failure.download.label"));
        }
        linker.loaded();
    }
}

From source file:org.jahia.ajax.gwt.client.widget.content.ImagePopup.java

License:Open Source License

public ImagePopup(final GWTJahiaNode n, final Linker linker) {
    super();/*  w  ww .  j  a va 2s.  co m*/

    int w = Integer.parseInt((String) n.get("j:width"));
    int h = Integer.parseInt((String) n.get("j:height"));
    final float ratio = Float.valueOf(w + 18) / Float.valueOf(h + 34);
    Log.debug("ratio: " + ratio);
    if (w > 800) {
        h = h * 800 / w;
        w = 800;
    }
    if (h > 350) {
        w = w * 350 / h;
        h = 350;
    }

    //setLayout(new FitLayout()) ;
    final HTML img = new HTML("<img src=\"" + URL.appendTimestamp(n.getUrl()) + "\" width=\"" + w
            + "\" height=\"" + h + "\" alt=\"" + SafeHtmlUtils.htmlEscape(n.getName()) + "\" />");
    img.setSize(String.valueOf(w) + "px", String.valueOf(h) + "px");

    setSize(w + 18, h + 34);
    add(img);
    setModal(true);
    setHeaderVisible(true);
    setAutoHide(false);
    setId("JahiaGxtImagePopup");
    if (linker instanceof ManagerLinker
            && ((ManagerLinker) linker).getBottomRightObject() instanceof PickedContentView) {
        Button saveButton = new Button(Messages.get("label.save"));
        saveButton.addSelectionListener(new SelectionListener<ButtonEvent>() {
            @Override
            public void componentSelected(ButtonEvent ce) {
                BottomRightComponent buttonBar = ((ManagerLinker) linker).getBottomRightObject();
                if (buttonBar instanceof PickedContentView) {
                    List<GWTJahiaNode> sel = new ArrayList<GWTJahiaNode>();
                    sel.add(n);
                    ((PickedContentView) buttonBar).setSelection(sel);
                    ((PickedContentView) buttonBar).getSaveButton().fireEvent(Events.Select);
                    hide();
                }
            }
        });
        getHeader().addTool(saveButton);
    }

    getHeader().addTool(new ToolButton("x-tool-refresh", new SelectionListener<IconButtonEvent>() {
        public void componentSelected(IconButtonEvent event) { // TODO improve ratio button
            double expectedHeight = Math.floor((getWidth()) / ratio);
            if (expectedHeight > getHeight()) {
                setHeight(Double.valueOf(expectedHeight).intValue());
            }
            double expectedWidth = Math.floor((getHeight()) * ratio);
            if (expectedWidth > getWidth()) {
                setWidth(Double.valueOf(expectedWidth).intValue());
            }
            fireEvent(Events.Resize);
        }
    }));

    addListener(Events.Resize, new Listener<WindowEvent>() {
        public void handleEvent(WindowEvent event) {
            DOM.getChild(img.getElement(), 0).setAttribute("width", String.valueOf(getWidth() - 18));
            DOM.getChild(img.getElement(), 0).setAttribute("height", String.valueOf(getHeight() - 34));
        }
    });
}

From source file:org.jahia.ajax.gwt.client.widget.content.InfoTabItem.java

License:Open Source License

public void init(NodeHolder engine, AsyncTabItem tab, String locale) {
    if (!tab.isProcessed()) {
        infoPanel = new FlowPanel();
        infoPanel.addStyleName("infoPane");
        tab.add(infoPanel);//from   w  w w .  j  a  va  2s  .  c  o m

        Grid g = new Grid(1, 2);
        g.setCellSpacing(10);
        FlowPanel flowPanel = new FlowPanel();

        if (!engine.isMultipleSelection()) {
            final GWTJahiaNode selectedNode = engine.getNode();

            String preview = selectedNode.getPreview();
            if (preview != null) {
                g.setWidget(0, 0, new Image(URL.appendTimestamp(preview)));
            }
            String name = selectedNode.getName();
            if (name != null) {
                flowPanel.add(new HTML(
                        "<b>" + Messages.get("label.name") + ":</b> " + SafeHtmlUtils.htmlEscape(name)));
            }
            String path = selectedNode.getPath();
            if (path != null) {
                flowPanel.add(new HTML(
                        "<b>" + Messages.get("label.path") + ":</b> " + SafeHtmlUtils.htmlEscape(path)));
            }
            String id = selectedNode.getUUID();
            if (id != null) {
                flowPanel.add(new HTML("<b>" + Messages.get("label.id", "ID") + ":</b> " + id));
            }
            if (selectedNode.isFile() != null && selectedNode.isFile()) {
                Long s = selectedNode.getSize();
                if (s != null) {
                    flowPanel.add(new HTML("<b>" + Messages.get("label.size") + ":</b> "
                            + Formatter.getFormattedSize(s) + " (" + s.toString() + " bytes)"));
                }
            }
            Date date = selectedNode.get("jcr:lastModified");
            if (date != null) {
                flowPanel.add(new HTML("<b>" + Messages.get("label.lastModif") + ":</b> "
                        + org.jahia.ajax.gwt.client.util.Formatter.getFormattedDate(date, "d/MM/y")));
            }
            if (selectedNode.isLocked() != null && selectedNode.isLocked()
                    && selectedNode.getLockInfos() != null) {
                StringBuilder infos = new StringBuilder();
                if (selectedNode.getLockInfos().containsKey(null) && selectedNode.getLockInfos().size() == 1) {
                    for (String s : selectedNode.getLockInfos().get(null)) {
                        infos.append(Formatter.getLockLabel(s));
                    }
                } else {
                    for (Map.Entry<String, List<String>> entry : selectedNode.getLockInfos().entrySet()) {
                        if (entry.getKey() != null) {
                            if (infos.length() > 0) {
                                infos.append("; ");
                            }
                            infos.append(entry.getKey()).append(" : ");
                            int i = 0;
                            for (String s : entry.getValue()) {
                                if (i > 0) {
                                    infos.append(", ");
                                }
                                infos.append(Formatter.getLockLabel(s));
                                i++;
                            }
                        }
                    }
                }
                flowPanel.add(new HTML("<b>" + Messages.get("info.lock.label") + ":</b> " + infos.toString()));
            }

            flowPanel.add(new HTML(
                    "<b>" + Messages.get("nodes.label", "Types") + ":</b> " + selectedNode.getNodeTypes()));
            flowPanel.add(new HTML("<b>" + Messages.get("org.jahia.jcr.edit.tags.tab", "Tags") + ":</b> "
                    + (selectedNode.getTags() != null ? selectedNode.getTags() : "")));
        } else {
            int numberFiles = 0;
            int numberFolders = 0;
            long size = 0;

            for (GWTJahiaNode selectedNode : engine.getNodes()) {
                if (selectedNode.isFile()) {
                    numberFiles++;
                    size += selectedNode.getSize();
                } else {
                    numberFolders++;
                }
            }
            flowPanel.add(new HTML("<b>" + Messages.get("info.nbFiles.label") + " :</b> " + numberFiles));
            flowPanel.add(new HTML("<b>" + Messages.get("info.nbFolders.label") + " :</b> " + numberFolders));
            flowPanel.add(new HTML("<b>" + Messages.get("info.totalSize.label") + " :</b> "
                    + org.jahia.ajax.gwt.client.util.Formatter.getFormattedSize(size)));
        }
        g.setWidget(0, 1, flowPanel);
        infoPanel.add(g);
        tab.setProcessed(true);
    }
}

From source file:org.jahia.ajax.gwt.client.widget.content.PickedContentView.java

License:Open Source License

/**
 * Create UI//from w  w  w . j av  a2 s  .c o  m
 */
private void createUI() {
    //  m_component = new TabPanel();

    List<ColumnConfig> configs = new ArrayList<ColumnConfig>();

    ColumnConfig column = new ColumnConfig();
    column.setWidth(20);
    column.setId("preview");
    column.setRenderer(new GridCellRenderer<GWTJahiaNode>() {
        public Object render(GWTJahiaNode gwtJahiaNode, String s, ColumnData columnData, int i, int i1,
                ListStore<GWTJahiaNode> gwtJahiaNodeListStore, Grid<GWTJahiaNode> gwtJahiaNodeGrid) {
            String url;
            if (gwtJahiaNode.getPreview() != null) {
                url = URL.appendTimestamp(gwtJahiaNode.getPreview());
            } else {
                url = ContentModelIconProvider.getInstance().getIcon(gwtJahiaNode, true).createImage().getUrl();
            }

            if (multiple) {
                return "<img heigth='16px' width='32px' src=\"" + url + "\">";
            } else {
                return "<img heigth='40px' width='60px' src=\"" + url + "\">";
            }
        }
    });
    column.setHeaderHtml(Messages.get("displayName"));
    configs.add(column);

    //name
    column = new ColumnConfig();
    column.setWidth(100);
    column.setAlignment(Style.HorizontalAlignment.LEFT);
    column.setRenderer(new GridCellRenderer<GWTJahiaNode>() {
        public Object render(GWTJahiaNode gwtJahiaNode, String s, ColumnData columnData, int i, int i1,
                ListStore<GWTJahiaNode> gwtJahiaNodeListStore, Grid<GWTJahiaNode> gwtJahiaNodeGrid) {

            String nameEscaped = SafeHtmlUtils.htmlEscape(gwtJahiaNode.getName());
            String html = "<div class=\"details\"> \n" + "      <b> Name:</b> \n" + "      <span>" + nameEscaped
                    + "</span>\n" + "      <b>Alt:</b> \n" + "      <span>" + nameEscaped + "</span>\n"
                    + "      <br/> <b>Path:</b> \n" + "      <span>"
                    + SafeHtmlUtils.htmlEscape(gwtJahiaNode.getPath()) + "</span></div> \n" + "      </div>";
            return html;
        }
    });
    column.setId("name");
    column.setHeaderHtml(Messages.get("name"));
    configs.add(column);

    // displaName
    column = new ColumnConfig();
    column.setId("displayName");
    column.setHidden(true);
    column.setHeaderHtml(Messages.get("displayName"));
    configs.add(column);

    // path
    column = new ColumnConfig();
    column.setId("path");
    column.setHeaderHtml(Messages.get("path"));
    configs.add(column);

    // remvove
    column = new ColumnConfig();
    column.setWidth(100);
    column.setAlignment(Style.HorizontalAlignment.RIGHT);
    column.setId("remove");
    column.setHeaderHtml("");
    column.setRenderer(new GridCellRenderer<GWTJahiaNode>() {
        public Object render(final GWTJahiaNode gwtJahiaNode, String s, ColumnData columnData, int i, int i1,
                ListStore<GWTJahiaNode> gwtJahiaNodeListStore, Grid<GWTJahiaNode> gwtJahiaNodeGrid) {
            final Button pickContentButton = new Button(Messages.get("label.remove"));
            pickContentButton.setIcon(StandardIconsProvider.STANDARD_ICONS.minusRound());
            pickContentButton.setBorders(false);
            pickContentButton.addSelectionListener(new SelectionListener<ButtonEvent>() {
                public void componentSelected(ButtonEvent buttonEvent) {
                    store.remove(gwtJahiaNode);
                }
            });
            return pickContentButton;
        }
    });
    configs.add(column);

    // list loader
    store = new GroupingStore<GWTJahiaNode>();
    store.add(selectedNodes);
    store.setModelComparer(new ModelComparer<GWTJahiaNode>() {
        public boolean equals(GWTJahiaNode gwtJahiaNode, GWTJahiaNode gwtJahiaNode1) {
            String path = gwtJahiaNode != null ? gwtJahiaNode.getPath() : null;
            String path2 = gwtJahiaNode1 != null ? gwtJahiaNode1.getPath() : null;
            if (path == null && path2 == null) {
                return true;
            } else if (path == null) {
                return false;
            }
            return path.equalsIgnoreCase(path2);
        }
    });
    final ColumnModel columnModel = new ColumnModel(configs);
    store.sort("name", Style.SortDir.ASC);
    store.groupBy("path");

    // grid
    m_grid = new Grid<GWTJahiaNode>(store, columnModel);

    m_grid.setHideHeaders(true);
    m_grid.setBorders(true);

    // Grouping view
    GroupingView view = new GroupingView();
    view.setShowGroupedColumn(false);
    view.setForceFit(true);

    view.setEmptyText(emtypSelectionMessage);
    view.setGroupRenderer(new GridGroupRenderer() {
        public String render(GroupColumnData data) {
            return Messages.get("label." + config.getName() + ".selection", config.getName() + ".selection")
                    + ((GWTJahiaNode) data.models.get(0)).getPath();
        }
    });
    m_grid.setView(view);

}

From source file:org.jahia.ajax.gwt.client.widget.content.ThumbsListView.java

License:Open Source License

@Override
protected GWTJahiaNode prepareData(GWTJahiaNode model) {
    if (model.getNodeTypes().contains("jmix:markedForDeletion")) {
        model.set("markedForDeletion", "true");
    } else {/*w ww  .  ja va  2  s  .c  o m*/
        model.set("markedForDeletion", "false");
    }
    model.set("shortName", SafeHtmlUtils.htmlEscape(Format.ellipse(model.getName(), 14)));
    model.set("nameLabel", Messages.get("label.name", "Name"));
    model.set("titleLabel", Messages.get("label.title", "Title"));
    model.set("authorLabel", Messages.get("versioning_author", "Author"));
    model.set("tagsLabel", Messages.get("org.jahia.jcr.edit.tags.tab", "tags"));
    model.set("createdBy", model.get("jcr:createdBy"));
    String width = model.get("j:width");
    if (width != null) {
        if (Integer.parseInt(width) < 80) {
            model.set("nodeImg", "<img src=\"" + URL.appendTimestamp(model.getUrl()) + "\" title=\""
                    + SafeHtmlUtils.htmlEscape(model.getName()) + "\">");
        } else {
            model.set("nodeImg", "<img src=\"" + URL.appendTimestamp(model.getPreview()) + "\" title=\""
                    + SafeHtmlUtils.htmlEscape(model.getName()) + "\">");
        }
        if (detailed) {
            model.set("widthHTML", "<div><b>" + Messages.get("width.label", "Width") + " </b>"
                    + model.get("j:width") + " px</div>");
            model.set("heightHTML", "<div><b>" + Messages.get("height.label", "Height") + " </b>"
                    + model.get("j:height") + " px</div>");
        } else {
            model.set("widthAndHeightHTML", model.get("j:width") + " x " + model.get("j:height"));
        }
    } else if (model.getPreview() != null) {
        model.set("nodeImg", "<img src=\"" + URL.appendTimestamp(model.getPreview()) + "\" title=\""
                + SafeHtmlUtils.htmlEscape(model.getName()) + "\">");
    } else {
        model.set("nodeImg", ContentModelIconProvider.getInstance().getIcon(model, true).getHTML());
    }

    if (model.getTags() != null && model.getTags().length() > 0) {
        model.set("tagsHTML", "<div><b>" + model.get("tagsLabel") + ": </b>"
                + SafeHtmlUtils.htmlEscape(model.getTags()) + "</div>");
    }
    return model;
}

From source file:org.jahia.ajax.gwt.client.widget.edit.sidepanel.ModulesTabItem.java

License:Open Source License

public TabItem create(GWTSidePanelTab config) {
    super.create(config);
    VBoxLayoutData treeVBoxData = new VBoxLayoutData();
    treeVBoxData.setFlex(0);//from  w  ww  .  ja  v  a 2  s.  c o m
    layoutContainer = new LayoutContainer();
    layoutContainer.setHeight(24);
    tab.insert(layoutContainer, 0, treeVBoxData);

    this.tree.setSelectionModel(new TreeGridSelectionModel<GWTJahiaNode>() {
        @Override
        protected void handleMouseClick(GridEvent<GWTJahiaNode> e) {
            super.handleMouseClick(e);
            if (!getSelectedItem().getPath().equals(editLinker.getMainModule().getPath())) {
                if (!getSelectedItem().getNodeTypes().contains("jnt:virtualsite")
                        && !getSelectedItem().getNodeTypes().contains("jnt:folder")
                        && !getSelectedItem().getInheritedNodeTypes().contains("jnt:folder")
                        && !getSelectedItem().getNodeTypes().contains("jnt:templatesFolder")) {
                    MainModule.staticGoTo(getSelectedItem().getPath(), null, "generic", "");
                }
            }
        }
    });
    this.tree.getSelectionModel().setSelectionMode(Style.SelectionMode.SINGLE);

    final Menu contextMenu = createContextMenu(config.getTreeContextMenu(), tree.getSelectionModel());
    tree.setContextMenu(contextMenu);

    tree.getColumnModel().getColumn(0).setRenderer(new TreeGridCellRenderer<GWTJahiaNode>() {
        @Override
        protected String getText(TreeGrid<GWTJahiaNode> gwtJahiaNodeTreeGrid, GWTJahiaNode node,
                String property, int rowIndex, int colIndex) {
            String v = super.getText(gwtJahiaNodeTreeGrid, node, property, rowIndex, colIndex);
            if (v != null) {
                v = SafeHtmlUtils.htmlEscape(v);
            }
            String classes = "";
            if (node.getNodeTypes().contains("jmix:markedForDeletion")) {
                classes += "markedForDeletion ";
            }
            if (node.getNodeTypes().contains("jmix:moduleImportFile")) {
                classes += "notPublished ";
            }
            if (!PermissionsUtils.isPermitted("editModeAccess", JahiaGWTParameters.getSiteNode())
                    && !PermissionsUtils.isPermitted("jcr:write_default", node)) {
                classes += "accessForbidden ";
            }
            if (classes.length() > 0) {
                v = "<span class=\"" + classes + "\">" + v + "</span>";
            }
            return v;
        }
    });
    this.tree.getSelectionModel().addListener(Events.BeforeSelect,
            new Listener<SelectionEvent<GWTJahiaNode>>() {
                @Override
                public void handleEvent(SelectionEvent<GWTJahiaNode> be) {
                    if (be.getModel().getNodeTypes().contains("jmix:moduleImportFile")) {
                        tree.setContextMenu(null);
                        be.setCancelled(true);
                    } else {
                        tree.setContextMenu(contextMenu);
                        contextMenu.show();
                    }
                }
            });

    return tab;
}

From source file:org.jahia.ajax.gwt.client.widget.edit.sidepanel.SettingsTabItem.java

License:Open Source License

@Override
public TabItem create(GWTSidePanelTab config) {
    super.create(config);
    tab.setLayout(new FitLayout());
    settingsPanel = new ContentPanel();
    settingsPanel.setAnimCollapse(false);
    settingsPanel.setHeadingHtml(Messages.get(label));
    settingsPanel.setLayout(new FitLayout());
    tab.add(settingsPanel);//  ww w  .  j  a va2 s  .co  m

    LayoutContainer treeContainer = new LayoutContainer();
    treeContainer.setBorders(false);
    treeContainer.setScrollMode(Style.Scroll.AUTO);
    treeContainer.setLayout(new FitLayout());
    // resolve paths from dependencies

    resetPaths();

    nodesBySettingsPath = new HashMap<String, Set<GWTJahiaNode>>();

    NodeColumnConfigList columns = new NodeColumnConfigList(
            Arrays.asList(new GWTColumn("displayName", "", -1)));
    columns.init();
    columns.get(0).setRenderer(new TreeGridCellRenderer<GWTJahiaNode>() {
        @Override
        protected String getText(TreeGrid<GWTJahiaNode> gwtJahiaNodeTreeGrid, GWTJahiaNode node,
                String property, int rowIndex, int colIndex) {
            String v = super.getText(gwtJahiaNodeTreeGrid, node, property, rowIndex, colIndex);
            if (v != null) {
                v = SafeHtmlUtils.htmlEscape(v);
            }
            return v;
        }
    });

    final List<String> fields = new ArrayList<String>();
    fields.add(GWTJahiaNode.LOCKS_INFO);
    fields.add(GWTJahiaNode.PERMISSIONS);
    fields.add(GWTJahiaNode.CHILDREN_INFO);
    fields.add(GWTJahiaNode.ICON);
    fields.add(GWTJahiaNode.LOCKS_INFO);
    fields.add("j:requiredPermissionNames");
    fields.add("j:requiredLicenseFeature");

    RpcProxy<List<GWTJahiaNode>> proxy = new RpcProxy<List<GWTJahiaNode>>() {
        @Override
        protected void load(Object loadConfig, final AsyncCallback<List<GWTJahiaNode>> callback) {
            if (mainNode == null) {
                return;
            }

            final AsyncCallback<List<GWTJahiaNode>> asyncCallback = new AsyncCallback<List<GWTJahiaNode>>() {
                @Override
                public void onFailure(Throwable caught) {
                    callback.onFailure(caught);
                }

                @Override
                public void onSuccess(List<GWTJahiaNode> nodes) {
                    List<GWTJahiaNode> result = new ArrayList<GWTJahiaNode>();
                    for (GWTJahiaNode node : nodes) {
                        merge(result, node);
                    }
                    callback.onSuccess(result);
                }

                private void merge(List result, GWTJahiaNode node) {
                    String settingsPath = getSettingsPath(node);
                    Set<GWTJahiaNode> nodeSet = nodesBySettingsPath.get(settingsPath);
                    if (nodeSet == null) {
                        nodeSet = new HashSet<GWTJahiaNode>();
                        nodesBySettingsPath.put(settingsPath, nodeSet);
                    }
                    nodeSet.add(node);
                    String nodeName = node.getName();
                    boolean add = true;
                    for (Object data : result) {
                        GWTJahiaNode previousNode = (GWTJahiaNode) data;
                        if (previousNode.getName().equals(nodeName)) {
                            add = false;
                            if (previousNode.get("alternativePath") == null) {
                                previousNode.set("alternativePath", new ArrayList<String>());
                            }
                            ((List<String>) previousNode.get("alternativePath")).add(node.getPath() + "/*");
                            for (ModelData child : node.getChildren()) {
                                merge(previousNode.getChildren(), (GWTJahiaNode) child);
                            }
                        }
                    }
                    if (node.getName().equals(MainModule.getInstance().getTemplate())) {
                        node.setSelectedOnLoad(true);
                    }
                    if (add) {
                        List<ModelData> all = new ArrayList<ModelData>(node.getChildren());
                        node.getChildren().clear();
                        for (ModelData child : all) {
                            merge(node.getChildren(), (GWTJahiaNode) child);
                        }

                        List<String> requiredPermissions = node.get("j:requiredPermissionNames");
                        boolean access = true;
                        if (requiredPermissions != null) {
                            for (String p : requiredPermissions) {
                                if (!PermissionsUtils.isPermitted(p, JahiaGWTParameters.getSiteNode())) {
                                    access = false;
                                    break;
                                }
                            }
                        }
                        node.set("hasAccessToSettings", Boolean.valueOf(access));
                        if (access) {
                            result.add(node);
                        }
                    }
                }
            };

            if (loadConfig == null) {
                JahiaContentManagementService.App.getInstance().getRoot(paths, Arrays.asList("jnt:template"),
                        null, null, fields, factory.getSelectedPath(), factory.getOpenPath(), true, false, null,
                        null, true, asyncCallback);
            } else {
                GWTJahiaNode gwtJahiaNode = (GWTJahiaNode) loadConfig;
                if (gwtJahiaNode.isExpandOnLoad()) {
                    List<GWTJahiaNode> list = new ArrayList<GWTJahiaNode>();
                    for (ModelData modelData : gwtJahiaNode.getChildren()) {
                        list.add((GWTJahiaNode) modelData);
                    }
                    asyncCallback.onSuccess(list);
                } else {
                    List<String> nodePaths = new ArrayList<String>();
                    nodePaths.add(gwtJahiaNode.getPath() + "/*");
                    List<String> alt = gwtJahiaNode.get("alternativePath");
                    if (alt != null) {
                        nodePaths.addAll(alt);
                    }
                    JahiaContentManagementService.App.getInstance().getRoot(nodePaths,
                            Arrays.asList("jnt:template"), null, null, fields, factory.getSelectedPath(),
                            factory.getOpenPath(), true, false, null, null, true, asyncCallback);
                }
            }
        }
    };
    settingsLoader = new BaseTreeLoader<GWTJahiaNode>(proxy) {
        @Override
        public boolean hasChildren(GWTJahiaNode parent) {
            return !parent.isNodeType("jnt:contentTemplate");
        }
    };

    factory = new GWTJahiaNodeTreeFactory(settingsLoader, "settingsTab");

    settingsStore = factory.getStore();
    settingsStore.setStoreSorter(new StoreSorter<GWTJahiaNode>(new Comparator<Object>() {
        public int compare(Object o1, Object o2) {
            if (o1 instanceof String && o2 instanceof String) {
                String s1 = (String) o1;
                String s2 = (String) o2;
                return Collator.getInstance().localeCompare(s1, s2);
            } else if (o1 instanceof Comparable && o2 instanceof Comparable) {
                return ((Comparable) o1).compareTo(o2);
            }
            return 0;
        }
    }));
    TreeGrid<GWTJahiaNode> settingsTree = factory.getTreeGrid(new ColumnModel(columns));

    settingsTree.setAutoExpandColumn("displayName");
    settingsTree.getTreeView().setRowHeight(25);
    settingsTree.getTreeView().setForceFit(true);
    settingsTree.setHeight("100%");
    settingsTree.setIconProvider(ContentModelIconProvider.getInstance());

    treeContainer.add(settingsTree);

    settingsTree.setHideHeaders(true);
    settingsTree.setAutoExpand(false);
    // get List of site settings
    settingsTree.setSelectionModel(new TreeGridSelectionModel<GWTJahiaNode>() {
        @Override
        protected void handleMouseClick(GridEvent<GWTJahiaNode> e) {
            super.handleMouseClick(e);
            final String path = settingPath.replaceAll("\\$site", JahiaGWTParameters.getSiteNode().getPath())
                    .replaceAll("\\$user", JahiaGWTParameters.getCurrentUserPath());
            if (e.getModel().isNodeType("jnt:contentTemplate")
                    && !Boolean.FALSE.equals(e.getModel().get("hasAccessToSettings"))) {
                MainModule.staticGoTo(path, getSelectedItem().getName(), "generic", "");
            }
        }
    });

    VBoxLayoutData treeVBoxData = new VBoxLayoutData();
    treeVBoxData.setFlex(1);

    settingsPanel.add(treeContainer, treeVBoxData);

    return tab;
}

From source file:org.jboss.hal.ballroom.table.ColumnBuilder.java

License:Apache License

public Column<T> build() {
    Column.RenderCallback<T, String> effectiveRender;
    if (safeHtml) {
        // use render callback as-is
        effectiveRender = render;// www.  j  ava  2  s  .c  o  m
    } else {
        // make sure the render escapes HTML
        effectiveRender = (cell, type, row, meta) -> {
            String value = ColumnBuilder.this.render.render(cell, type, row, meta);
            if (value != null) {
                value = SafeHtmlUtils.htmlEscape(value);
            }
            return value;
        };
    }

    Column<T> column = new Column<>();
    column.name = name;
    column.title = title;
    column.render = effectiveRender;
    column.orderable = orderable;
    column.searchable = searchable;
    if (type != null) {
        column.type = type;
    }
    if (width != null) {
        column.width = width;
    }
    if (className != null) {
        column.className = className;
    }
    return column;
}