in msticpy/data/browsers/mordor_browser.py [0:0]
def _init_filter_ctrls(self):
"""Initialize the filter controls."""
# text_filter
self.widgets["filter_text"] = widgets.Text(
description="Filter", layout=self.layouts["layout_norm"], style=self.w_style
)
self.widgets["filter_text"].continuous_update = False
self.widgets["filter_text"].observe(self._update_select_list, "value")
self.widgets["filter_help"] = widgets.Label(
value=" comma ORs values, '+' ANDs values"
)
# Mitre filters
self.widgets["sel_techniques"] = widgets.SelectMultiple(
description="Mitre Techniques",
options=self._get_mitre_filter_options(
self.mordor_driver.mdr_idx_tech, self.mordor_driver.mitre_techniques
),
layout=self.layouts["mitre_select_layout"],
style=self.w_style,
)
self.widgets["sel_tactics"] = widgets.SelectMultiple(
description="Mitre Tactics",
options=self._get_mitre_filter_options(
self.mordor_driver.mdr_idx_tact, self.mordor_driver.mitre_tactics
),
layout=self.layouts["mitre_select_layout"],
style=self.w_style,
)
self._reset_filters()
self.widgets["sel_techniques"].observe(self._update_select_list, names="value")
self.widgets["sel_tactics"].observe(self._update_select_list, names="value")
self.widgets["filter_reset"] = widgets.Button(description="Reset filter")
self.widgets["filter_reset"].on_click(self._reset_filters)
wgt_filter_grp = widgets.VBox(
[
widgets.HBox(
[self.widgets["filter_text"], self.widgets["filter_help"]]
),
widgets.HBox(
[
self.widgets["sel_techniques"],
self.widgets["sel_tactics"],
self.widgets["filter_reset"],
]
),
]
)
self.widgets["filter_grp"] = widgets.Accordion(children=[wgt_filter_grp])
self.widgets["filter_grp"].set_title(0, "Filters")
self.widgets["filter_grp"].selected_index = None