Skip to content

colorTable

ColorTable

Bases: VuetifyTemplate

table to display regions

Source code in src/antakia/gui/colorTable.py
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
class ColorTable(v.VuetifyTemplate):
    """
    table to display regions
    """
    headers = traitlets.List([]).tag(sync=True, allow_null=True)
    items = traitlets.List([]).tag(sync=True, allow_null=True)
    selected = traitlets.List([]).tag(sync=True, allow_null=True)
    colors = traitlets.List(colors).tag(sync=True)
    template = traitlets.Unicode('''
        <template>
            <v-data-table
                v-model="selected"
                :headers="headers"
                :items="items"
                item-key="Region"
                show-select
                :hide-default-footer="false"
                @item-selected="tableselect"
            >
            <template #header.data-table-select></template>
            <template v-slot:item.Region="{ item }">
              <v-chip :color="item.color" >
                {{ item.Region }}
              </v-chip>
            </template>
            </v-data-table>
        </template>
        ''').tag(sync=True)  # type: ignore
    disable_sort = True

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.callback = None

    @staticmethod
    def get_color(item):
        return item.color

    # @click:row="tableclick"
    # def vue_tableclick(self, data):
    #     raise ValueError(f"click event data = {data}")

    def set_callback(self, callback: callable):  # type: ignore
        self.callback = callback

    def vue_tableselect(self, data):
        self.callback(data)