新GWT组件的新风格

时间:2011-01-19 00:39:14

标签: gwt smartgwt

我正在使用SmartGWT 2.4,我有两种类型的TabSet,每种都有不同的外观和感觉,我面临着实现它的问题。

新的TabSet已实现如下:

public class MainTabSet extends TabSet{
    public MainTabSet(){
        super.setStylePrimaryName("MainTabSet");
        build();
    }

    private void build(){
        setMargin(6);
        setWidth100();
        setHeight100();  
        setStyleName("nt-main-tabset");
        Tab inboxTab = new Tab("Inbox");
        inboxTab.setPane(new InboxPane().get());
     }
}

基于最后一段(多个查找相同的组件类型)here

我已经定义了一个新类,它拥有我上面使用的相同主名称:

isc.defineClass("MainTabSet", "TabSet");

然后我添加了一些属性:

    isc.MainTabSet.addProperties({
        tabBarThickness:100,
        scrollerButtonSize:100,
        pickerButtonSize:100,

        symmetricScroller:false,
        symmetricPickerButton:false,

        scrollerSrc:"nothing",
        pickerButtonSrc:"nothingg",

        closeTabIconSize:100
    })

上面的代码已写在load_skin.js文件的第6部分(TabSet)的顶部。

现在,我仍然在MainTabSet中获得相同的旧TabSet外观。

我现在的问题是:

  1. 我是否按照正确的步骤实现了目标?

  2. 我如何考虑TabSet类TabBar的某些子元素的新类,但仅限于新组件(MainTabSet)?

  3. 谢谢你们。

1 个答案:

答案 0 :(得分:1)

根据您提到的last paragraph of the article,您可以调用setScClassName("MainTabSet")将smartClient的js类应用于您的java类。我认为应该是这样的:

public class MainTabSet extends TabSet{
    public MainTabSet(){
        setScClassName("MainTabSet");
        build();
    }

    private void build(){
        setMargin(6);
        setWidth100();
        setHeight100();  
        setStyleName("nt-main-tabset");
        Tab inboxTab = new Tab("Inbox");
        inboxTab.setPane(new InboxPane().get());
     }
}