从gwt对话框标题中删除样式

时间:2016-09-20 12:53:47

标签: gwt

如何删除依赖样式?

在GWT对话框中,我需要从.dialogtopleft中删除样式.gwt-Dialogbox . dialogtopleft

如何删除它?

1 个答案:

答案 0 :(得分:0)

你需要jQuery才能轻松完成。您可以为GWT找到一些jQuery包装器,但您也可以使用纯DOM遍历来完成它。

我有一个小的递归方法来按给定的类名查找元素。它返回找到的第一个元素或null。

public Element findChildElementByClassName(Element parent, String className) {
    List<String> classNames = Arrays.asList(parent.getClassName().split(" "));
    if(classNames.contains(className))
        return parent;
    else {
        Element foundElement = null;
        NodeList<Node> childNodes = parent.getChildNodes();
        for(int i = 0; i < childNodes.getLength() && foundElement == null; i++)
            if(childNodes.getItem(i).getNodeType() == Node.ELEMENT_NODE) {
                Element childElement = (Element) childNodes.getItem(i);
                foundElement = findChildElementByClassName(childElement, className);
            }

        return foundElement;
    }
}

我希望它是自我解释,但你需要注意在将它转换为元素之前必须检查节点类型。

你应该这样使用它:

DialogBox dialogBox = new DialogBox();
// ... initialize dialogBox
dialogBox.show();

Element dialogTopLeftElement = findChildElementByClassName(dialogBox.getElement(), "dialogTopLeft");
if(dialogTopLeftElement != null)
    dialogTopLeftElement.removeClassName("dialogTopLeft");