18 from robotide
import utils
21 from ..macrocontrollers
import TestCaseController
28 !Go &Back | Go back to previous location in tree | Alt-%s | ART_GO_BACK
29 !Go &Forward | Go forward to next location in tree | Alt-%s | ART_GO_FORWARD
30 """ % ((
'Left',
'Right')
if IS_WINDOWS
else (
'Z',
'X'))
36 def __init__(self, tree, action_registerer, settings, test_selection, history=None):
54 self.
_tree_tree.SelectItem(node)
59 name = wx.GetTextFromUser(message=
'Enter Tag Name', caption=
'Add Tag To Selected')
67 node = self.
_history_history.forward()
69 self.
_tree_tree.SelectItem(node)
78 if not controller.dirty:
85 text = self.
_tree_tree.GetItemText(node)
86 if not text.startswith(
'*'):
87 self.
_tree_tree.SetItemText(node,
'*' + text)
92 return handler
and controller
is handler.controller
96 matcher =
lambda n: utils.eq(self.
_tree_tree.GetItemText(n), label)
100 if node != self.
_tree_tree._root
and predicate(node):
102 item, cookie = self.
_tree_tree.GetFirstChild(node)
106 if self.
_tree_tree.ItemHasChildren(item):
110 item, cookie = self.
_tree_tree.GetNextChild(node, cookie)
114 return self.
_tree_tree.GetItemData(node
or self.
_tree_tree.GetSelection())
123 (wx.ACCEL_NORMAL, wx.WXK_F2, self.
_tree_tree.label_editor.OnLabelEdit),
124 (wx.ACCEL_NORMAL, wx.WXK_WINDOWS_MENU, self.
_tree_tree.OnRightClick),
129 lambda event: self.
_expanded_handler_expanded_handler().OnNewUserKeyword(event)),
135 lambda event: self.
_expanded_handler_expanded_handler().OnNewListVariable(event)),
140 bindings.append((wx.ACCEL_NORMAL, wx.WXK_LEFT, self.
_tree_tree.OnLeftArrow))
145 if not self.
_tree_tree.IsExpanded(handler.node):
146 self.
_tree_tree.Expand(handler.node)
157 if not self.
_back_back
or state != self.
_back_back[-1]:
158 self.
_back_back.append(state)
162 if not self.
_back_back:
164 if len(self.
_back_back) > 1:
166 return self.
_back_back[-1]
172 self.
_back_back.append(state)
176 return self.
_back_back
and self.
_back_back[-1]
or None
186 self.
_tests_tests: {TestCaseController} = set()
189 return not bool(self.
_tests_tests)
192 return test
in self.
_tests_tests
199 self.
select_allselect_all(tests, selected=
False)
203 self.
selectselect(test, selected, notifySelection=
False)
206 def select(self, test: TestCaseController, doSelect=
True, notifySelection=
True):
209 self.
_tests_tests.add(test)
212 self.
_tests_tests.remove(test)
214 if notifySelection
and changed:
218 invalid_cases = list()
219 for test
in self.
_tests_tests:
220 if test.datafile_controller == cases_file_controller:
221 invalid_cases.append(test)
222 for _
in invalid_cases:
223 self.
_tests_tests.remove(_)
228 wx.CallAfter(message.publish)
231 for test
in self.
_tests_tests:
235 if name
not in [t.name
for t
in test.tags]:
240 for tag
in test.tags:
241 if isinstance(tag, DefaultTag):
242 self.
_add_tag_add_tag(test, tag.name)
Used to create menu entries, keyboard shortcuts and/or toolbar buttons.
def select_all(self, tests, selected=True)
def _send_selection_changed_message(self)
def _add_tag(self, test, name)
def _add_tag_to_test(self, name, test)
def remove_invalid_cases_selection(self, cases_file_controller)
def select(self, TestCaseController test, doSelect=True, notifySelection=True)
def unselect_all(self, tests)
def clear_all(self, message)
def is_test_selected(self, test)
def _move_default_tags_to_test(self, test)
def find_node_with_label(self, node, label)
def mark_controller_dirty(self, controller)
def __init__(self, tree, action_registerer, settings, test_selection, history=None)
def register_tree_actions(self)
def OnClearSelected(self, event)
def OnGoBack(self, event)
def OnGoForward(self, event)
def _find_node_with_predicate(self, node, predicate)
def _expanded_handler(self)
def add_to_history(self, node)
def mark_node_dirty(self, node)
def OnAddTagToSelected(self, event)
def find_node_by_controller(self, controller)
def get_handler(self, node=None)
Sent whenever a test is selected or unselected from the tree.
def ActionInfoCollection(data, event_handler, container=None)
Parses the data into a list of ActionInfo and SeparatorInfo objects.
def bind_keys_to_evt_menu(target, actions)