예제 #1
0
 def load_menu(self):
     f = None
     try:
         f = open(self.__menu_cache_file, 'rb')
         self.__menu = pickle.load(f)
     except Exception,e:
         LogManager.info('Menu cache %s is not loaded. Details: %s' %(self.__menu_cache_file,e))
예제 #2
0
    def menuClick(self,  action ):
        name = action.objectName()
        for menu in self.__menu:
            if menu.menu_sid == name:
                LogManager.info('Opening form with sid %s' %menu.form_sid)
                FormManager.openForm(menu.form_sid)
                LogManager.info('Form with sid %s is opened' %menu.form_sid)

                break
예제 #3
0
        menu_checksum = md5.hexdigest()

        iface = Client.get_interface('FABLIK_BASE')
        inputVar = iface.create_variable('RequestGetMainMenu')

        inputVar.session_id = Config.getSessionID()
        inputVar.checksum = menu_checksum
        inputVar.lang_sid = Config.getLangSid()

        result = iface.call('getMainMenu', inputVar)

        if result.ret_code != 0:
            raise Exception(result.ret_message)

        if len(result.menu_list) == 0:
            LogManager.info('Menu cache is valid. Use it')
            return

        self.__menu = []
        for item in result.menu_list[0]:
            menuitem = MenuItem(item.id, item.help, item.name, item.form_sid, 0, item.parent_id, item.shortcut)

            self.__menu.append(menuitem)

        self._save_cache()
        LogManager.info('Menu loaded and saved to local cache file (%s)'%self.__menu_cache_file)


    def create_menu(self, MainWindow):
        if len(self.__menu) == 0:
            self.load_menu()