2012-12-14 74 views
0

我有一个IButton实例,我想在点击后更改其名称和颜色。SmartGWT:从CSS应用样式

 button.addClickHandler(new ClickHandler() { 
      public void onClick(ClickEvent event) { 
       if(button.getTitle().equals("Enabled")) { 
        button.setTitle("Disabled"); 
        button.setTitleStyle("disabledButton"); 
       } 
       else { 
        button.setTitle("Enabled"); 
        button.setTitleStyle("enabledButton"); 
       }     
      } 
     }); 

正如我们在一般的GWT项目办, 我加入以下为默认.css文件:

.enabledButton { 
    color:green; 
} 

.disabledButton { 
    color:red; 
} 

但是当我运行应用程序,它没有显示红色或绿色的颜色。

SmartGWT还有其他的方式来应用CSS样式吗?

回答

3

IButton是一个StatefulCanvas,意思是它处理状态。这是通过在基础样式名称之后添加后缀来完成的。例如,如果将titleStyle设置为“enableButton”,并将鼠标移动到按钮上,它将查找css类:enableButtonOver。如果该按钮也被关注,它会查找enableButtonFocusedOver等(有几个后缀组合)。如果你从浏览器中单击外部,你的例子就可以工作,所以它将失去焦点,并且只会使用enableButton css类。您可以通过例如setShowFocused(false)禁用每个状态。请参阅api