コード例 #1
0
ファイル: table.py プロジェクト: veronikaMeciarova/votr
def load_script_plain(data_view, id):
    script_element = data_view.find(id=id)
    if not script_element: return None
    if script_element.name != 'script':
        raise AISParseError('Expected {} to be script instead of {}'.format(
            id, script_element.name))
    return script_element.get_text()[4:-3]  # always "<!--" and "-->"
コード例 #2
0
def load_script(data_view, id):
    script_element = data_view.find(id=id)
    if not script_element: return None
    if script_element.name != 'script':
        raise AISParseError('Expected {} to be script instead of {}'.format(
            id, script_element.name))
    text = script_element.get_text()[4:-3]   # always "<!--" and "-->"
    return BeautifulSoup(text, 'lxml')   # note: will be wrapped in <html> and <body>
コード例 #3
0
 def _ais_setDataView(self, id, body):
     data_view = body.find(id=id)
     container = data_view.contents[0]
     if container.get('id') != 'radioBox_container':
         raise AISParseError("Expected radioBox_container")
     if container.name == 'span':
         self.selected_index = int(container['selectedindex'])
     else:
         self._parse_options(container.find(id='radioBox_items'))
コード例 #4
0
ファイル: radiobox.py プロジェクト: veronikaMeciarova/votr
 def _ais_setDataView(self, id, body):
     data_view = body.find(id=id)
     container = data_view.find(id='radioBox_container', recursive=False)
     if not container:
         raise AISParseError("Expected radioBox_container")
     if container.name == 'span':
         self.selected_index = int(container['selectedindex'])
     else:
         self._parse_options(container.find(id='radioBox_items'))
コード例 #5
0
    def __init__(self, dialog, id, type, parent_id, properties, element):
        self.dialog = dialog
        self.id = id
        self.component_type = type
        self.used_listeners_mask = properties.get('ulm', 0)
        self.enabled = properties.get('e', True)
        self.enabled_in_ui = properties.get('enabledInUI', True)
        self.visible = properties.get('v', True)
        self.visible_in_ui = properties.get('visibleInUI', True)
        self.title = properties.get('title')
        self.popup_menu = properties.get('pm')

        if properties.get('state', 1) == 2:
            raise AISParseError('STATE_DT is not supported')
コード例 #6
0
ファイル: radiobox.py プロジェクト: veronikaMeciarova/votr
 def _parse_options(self, items):
     self.selected_index = -1
     self.options = []
     for index, td in enumerate(items.find_all('td')):
         if self.enabled and td['index'] != str(index):
             raise AISParseError(
                 "RadioBox '{}' item #{} "
                 "has unexpected index attribute.".format(self.id, index))
         self.options.append(Option(
             title=td.label.get_text(),
             id=td.input.get('sid'),
         ))
         if td.input.has_attr('checked'):
             self.selected_index = index
コード例 #7
0
    def __init__(self, dialog_soup, element, dialog):
        self.dialog = dialog
        self.id = element['id']
        self.jsct = element['jsct']
        self.used_listeners_mask = int(element.get('usedlistenersmask', '0'))
        self.enabled = element.get('enabled', 'true') == 'true'
        self.enabled_in_ui = element.get('enabledinui', 'true') == 'true'
        self.visible = element.get('visible', 'true') == 'true'
        self.visible_in_ui = element.get('visibleinui', 'true') == 'true'
        self.title = element.get('_title')
        self.popup_menu = element.get('popupmenu')

        if int(element.get('state', '1')) == 2:
            raise AISParseError('STATE_DT is not supported')

        parent = element.find_parent(jsct=True)
        self.parent_id = parent['id'] if parent else None
コード例 #8
0
    def _update_data(self, data_view):
        self._update_selection_model_properties(data_view)

        data_tab_bodies = data_view.find(id='dataTabBodies')
        data_tab_bodies_fixed = data_view.find(id='dataTabBodiesFixed')
        if not data_tab_bodies: return

        self._update_data_tab_bodies_properties(data_view)
        self._update_data_position_properties(data_view)

        data_send_type = data_tab_bodies.get('datasendtype', 'update')
        if data_send_type == 'info':
            self.log('table', 'Updating info in {}'.format(self.id))
            return

        if data_tab_bodies.find(id='dataTabTmp'):
            if data_tab_bodies.thead:
                raise AISParseError("Unsupported thead in dataTabTmp")
            if not data_tab_bodies.tbody:
                data_send_type = 'update'
            self._load_rows(data_tab_bodies, data_tab_bodies_fixed,
                            replace=(data_send_type == 'update'))

        self._load_edit_models(data_view.find(id='dataTabEditModels'))
コード例 #9
0
 def _ais_setState(self, value):
     if int(value) == 2: raise AISParseError('STATE_DT is not supported')
コード例 #10
0
ファイル: dialogbody.py プロジェクト: crnkjck/votr
    def __init__(self, dialog_soup, element, dialog):
        super().__init__(dialog_soup, element, dialog)

        if (element.find(id='dt_selection') or
            element.find(id='dt_selection_area')):
            raise AISParseError("#dt_selection is not supported")