try {
    var self = this;
    var option_list_table = self.uiLoader().getObject("option_list");
    if (option_list_table == undefined) return;

    var allDataMap = option_list_table.allDataMap();
    
    var ret = GUI.showForm({
        title: self.ttr('New Option'),
        self: self,
        use_core_engine: true,
        ui: self.ui('option-list'),
        size: '400x400',
        buttons: [
            self.ttr('Ok') + ':Ok:Ok:Primary',
            self.ttr('Cancel') + ':Cancel:Cancel:Normal'
        ],
        include_hidden_items: true,
    });

    if (_.isEmpty(ret)) return;
    var isNameExist = false;
    _.forEach(allDataMap, function(item) {
        if (ret['name'] == item['name']) {
            isNameExist = true;
        }
    });
    
    if (isNameExist) {
        GUI.msgbox({
            title: this.ttr("Error"),
            text: this.ttr("Option name is exist")
        });
        return;
    }
    option_list_table.appendRow(ret);
}  catch (e) {
    print(e);
}