GWT - 树 - TreeItem中仅粗体的父项

时间:2013-07-26 12:47:22

标签: java gwt tree

我想在树中只加粗父项,并保持子项正常大小。

我尝试以这种方式使用css,但它不起作用:

.gwt-Tree{
    font-weight: bold;
}

.gwt-TreeItem {
    font-weight: normal;
}

.gwt-Tree .gwt-TreeItem-selected {
    font-weight: normal;
}

有没有办法到达那里?

提前谢谢

已编辑 - Java代码:

String[] composers = new String[]{"Item 1","Item 2","Item 3"};

Resources treeResource = GWT.create(TreeResources.class); 

Tree staticTree = new Tree(treeResource);

TreeItem item1 = staticTree.addTextItem(composers[0]);          

TreeItem item2 = staticTree.addTextItem(composers[1]);

// add sub items
addItemSection(item1, "item 1 - 1",new String[]{});
addItemSection(item1, "item 1 - 2", new String[]{});

addItemSection(item2, "item 2 - 1",new String[]{});
addItemSection(item2, "item 2 - 2", new String[]{});
addItemSection(item2, "item 2 - 3", new String[]{});

TreeItem item = new TreeItem();
item1.addItem(item);
item2.addItem(item);

Tree t = new Tree();
t.addItem(item1);
t.addItem(item2);

private void addItemSection(TreeItem parent, String label, String[] composerWorks) 
{
   TreeItem section = parent.addTextItem(label);        

   for (String work : composerWorks) {
    section.addTextItem(work);
   }
}

结果:

第1项
  项目1 - 1
  项目1 - 2

第2项
  项目2 - 1
  项目2 - 2
  项目2 - 3

但就我而言,一切都是粗体:/

3 个答案:

答案 0 :(得分:0)

对我来说已经有一段时间了,但我记得你可以在java代码中为CSS对象添加CSS样式的HTML标签。

请参阅: http://blog.francoismaillet.com/?p=68

答案 1 :(得分:0)

一种方法是这样的:

.root {font-size: 12; font-weight: bold;}
.leaf {font-size: 12; font-weight: normal;}

TreeItem root = new TreeItem("MyRootDescr");
root.addStyleName("root");

TreeItem item = new TreeItem("MyLeafDescr");
item.addStyleName("leaf");

答案 2 :(得分:0)

这可能看起来不太优雅,但它确实有效。设置父项样式后迭代子项并将其样式设置为基本样式(在您的情况下为纯文本)。

你的CSS文件中的

.styleTreeItemParent {
 font-weight: bold;
}

.styleTreeItemChild {
 font-weight: normal;
}

在你的GWT类中:使用父treeItem作为参数添加方法styleParent。

 private void styleParent(TreeItem item) {
    int nC=item.getChildCount();
        item.setStyleName("styleTreeItemParent");

        for(int i=0;i<nC;i++) {
            item.getChild(i).setStyleName("styleTreeItemChild");
        }
}