ar plugin = require('topsin.gengui');

var gui = plugin.newGui(plugin.__dirname);

function gen() {
    this.PAUSE = function () {
        console.log("pause");
    }
}

gui.setLang("zhcn"); // zhcn, zhtw, en

r = gui.showForm({
    title: "注册账号",
    size: [600, 400],
    ui: [{
        type: 'ScrollArea',
        property: { widget_resizable: true, frame_shape: 'NoFrame', align: 'Top' },
        child: {
            type: 'VBoxLayout',
            property: { margin: 2, spacing: 20, align: 'Top' },
            pack: { stretch: 0 },
            child: [
                {
                    type: "FormGridLayout",
                    property: { columns: 1, label_alignment: 'Top | Right', margin: 10, spacing: 20 },
                    pack: { stretch: 0 },
                    child: [
                        {
                            name: 'username',
                            type: 'LineEdit',
                            pack: { label: "用户名" },
                            property: { enabled: true }
                        },
                        {
                            name: 'password',
                            type: 'LineEdit',
                            pack: { label: "密码" },
                            property: { echo_mode: "password" }
                        },
                        {
                            name: 'sex',
                            type: 'ComboBox',
                            property: {
                                enabled: true, item_list: [
                                    { name: "male", icon: "male", text: "男", text_zhcn: "男", text_zhtw: "男" },
                                    { name: "female", icon: "female", text: "女", text_zhcn: "女", text_zhtw: "女" },
                                    { name: "hideyoshi", icon: "circle-thin", text: "Hideyoshi", text_zhcn: "秀吉", text_tw: "秀吉" }
                                ]
                            },
                            pack: { label: '性别' }
                        },
                        {
                            name: 'table',
                            type: 'TableView',
                            property: {},
                            pack: { label: '性别' },
                            initCallback: function (obj, self) {
                                obj.setHeaderItem(
                                    [
                                        {},
                                        { name: 'analysis_item', display: 'Analysis Item', resizeMode: 'ResizeToContents', displayRole: '$analysis_item' },
                                        { name: 'analysis_result', display: 'Analysis Result', resizeMode: 'ResizeToContents', displayRole: '$analysis_result' },
                                        { name: 'result', display: 'Result', resizeMode: 'ResizeToContents', displayRole: '$result' },
                                        { name: 'standard', display: 'Standard', resizeMode: 'ResizeToContents', displayRole: '$standard' },
                                        { name: 'remark', display: 'Remark', resizeMode: 'ResizeToContents', displayRole: '$remark', editRole: '$remark', flagsRole: 'ItemIsEditable|ItemIsEnabled|ItemIsSelectable' }
                                    ]
                                );
                                obj.setDataKeyList(["id", "analysis_item", "analysis_result", "result", "standard", "remark"]);
                                obj.setPrimaryKey("id");
                            },
                            setter: function (obj, value, self) {
                                if (value != null) {
                                    obj.loadData(value);
                                } else {
                                    obj.clearData();
                                }
                            }
                        }
                    ]
                }
            ]
        }
    }],
    data: {
        username: "elder",
        password: "nαive!",
        sex: "male"
    },
    includehide: false,
    buttons: [
        {
            stock: "ok",
            sensitive: true,
            command: function (data) {

            }
        },
        {
            stock: "cancel",
            sensitive: true,
            command: function (ddata) {

            }
        },
        {
            stock: "help",
            sensitive: true,
            command: function (data) {
                console.log(data);
            }
        }
    ],
    hook: function (data) { },
    gen: new gen()
});

console.log(r);