2010-06-29 90 views
3

去除風格的控件我寫這樣的插件:添加樣式和GWT

public class GroupLbl extends Composite implements ClickHandler, MouseOutHandler { 
private Label lbl; 
private GroupLblHandler lblHandler = null; 
private HorizontalPanel hp; 

public void onClick(ClickEvent event) { 
    hp.setStyleName("background-GroupLbl"); 

    if (event.getSource().equals(folder) || event.getSource().equals(lbl)) { 

    lblHandler.onGroupLabelSelect(this); 
} 
} 

public GroupLbl(String title, GroupLblHandler handler) { 

    hp.add(lbl); 
    lblHandler = handler; 
    if (handler != null) { 
     lbl.addClickHandler(this); 

    } 
    initWidget(hp); 
} 


@Override 
public Widget getWidget() { 
    return hp; 
} 



public void onMouseOut(MouseOutEvent event) { 
    hp.removeStyleName("background-GroupLbl"); 
} 

} 我用這個插件在我的形式,當小部件的實例的一個用戶點擊樣式名應被分配給這個,當用戶點擊其他stylename應該分配給第一個shoud刪除樣式名稱我實現了mouseouthandler但它does not工作,風格設置bgcolor爲HP,所以用戶明白哪個grouplbl他/她已經選擇了。我該怎麼做(這是我的代碼的一部分)? TXN和原諒我的英文不好!

回答

4

定義一個附加的CSS樣式,其後綴爲-background,包含您想要的bg顏色。 而不是setStyleName使用addStyleDependentName("background")連同removeStyleDependentName("background")添加/刪除背景樣式。