Skip to content

Commit 5dfdec5

Browse files
.
1 parent ca5816f commit 5dfdec5

File tree

1 file changed

+145
-116
lines changed

1 file changed

+145
-116
lines changed

pythonvideoannotator_models_gui/dialogs/datasets/datasets_selector.py

Lines changed: 145 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -9,119 +9,148 @@
99

1010
class DatasetsSelectorDialog(ObjectsDialog):
1111

12-
def __init__(self, parent_win=None):
13-
ObjectsDialog.__init__(self,parent_win=parent_win, title='Datasets selector',)
14-
15-
self._datasets = ControlCheckBoxList('Datasets filter')
16-
17-
self.formset = [('_videos','||','_objects','||','_datasets')]
18-
19-
self._objects.changed_event = self.__update_datasets
20-
self._datasets.changed_event = self.__datasets_changed_event
21-
22-
#for video in conf.PROJECT.videos: self += video
23-
24-
#####################################################################
25-
### PRIVATE FUNCTIONS ###############################################
26-
#####################################################################
27-
28-
def __datasets_changed_event(self): self.datasets_changed_event()
29-
30-
#####################################################################
31-
### EVENTS ##########################################################
32-
#####################################################################
33-
34-
def datasets_changed_event(self): pass
35-
36-
#####################################################################
37-
### FUNCTIONS #######################################################
38-
#####################################################################
39-
40-
# used to update automaticly the name of the videos, objects and paths
41-
def refresh(self):
42-
ObjectsDialog.refresh(self)
43-
self._datasets.refresh()
44-
45-
def clear(self):
46-
ObjectsDialog.clear(self)
47-
self._datasets.clear()
48-
49-
def __add__(self, other):
50-
ObjectsDialog.__add__(self, other)
51-
if isinstance(other, Dataset): self.__update_datasets()
52-
return self
53-
54-
55-
def __sub__(self, other):
56-
ObjectsDialog.__sub__(self, other)
57-
if isinstance(other, Dataset): self.__update_datasets()
58-
return self
59-
60-
61-
def update_objects(self):
62-
"""
63-
Update the objects in the list
64-
"""
65-
ObjectsDialog.update_objects(self)
66-
self.__update_datasets()
67-
68-
69-
70-
def __update_datasets(self):
71-
"""
72-
Update the paths in the list
73-
"""
74-
datasets = [elem for elem, checked in self._datasets.items]
75-
76-
datasets_list = []
77-
for obj, checked in self._objects.items:
78-
if not isinstance(obj,Object2D): continue
79-
80-
for dataset in obj.datasets:
81-
if hasattr(self, '_datasets_filter') and not self._datasets_filter(dataset): continue
82-
83-
if dataset not in datasets_list: datasets_list.append(dataset)
84-
85-
if not checked and dataset in datasets:
86-
self._datasets -= dataset
87-
elif checked and dataset not in datasets:
88-
self._datasets += (dataset, False)
89-
90-
for dataset in datasets:
91-
if dataset not in datasets_list: self._datasets -= dataset
92-
93-
94-
95-
96-
97-
#####################################################################
98-
### PROPERTIES ######################################################
99-
#####################################################################
100-
101-
@property
102-
def datasets(self): return self._datasets.value
103-
104-
@property
105-
def selected_data(self):
106-
videos = self._videos.value
107-
datasets= self._datasets.value
108-
109-
res = []
110-
for video in videos:
111-
datasets_list = []
112-
for obj in video.objects2D:
113-
for dataset in obj.datasets:
114-
if dataset in datasets:
115-
datasets_list.append(dataset)
116-
res.append( (video, datasets_list) )
117-
return res
118-
119-
@property
120-
def datasets_filter(self): return self._datasets_filter
121-
@datasets_filter.setter
122-
def datasets_filter(self, value): self._datasets_filter = value
123-
124-
125-
126-
127-
if __name__ == "__main__": pyforms.startApp( DatasetsSelectorDialog )
12+
def __init__(self, parent_win=None):
13+
ObjectsDialog.__init__(self,parent_win=parent_win, title='Datasets selector',)
14+
15+
self._datasets = ControlCheckBoxList('Datasets filter')
16+
17+
self.formset = [('_videos','||','_objects','||','_datasets')]
18+
19+
self._objects.changed_event = self.__update_datasets
20+
self._datasets.changed_event = self.__datasets_changed_event
21+
22+
#for video in conf.PROJECT.videos: self += video
23+
24+
#####################################################################
25+
### PRIVATE FUNCTIONS ###############################################
26+
#####################################################################
27+
28+
def __datasets_changed_event(self): self.datasets_changed_event()
29+
30+
#####################################################################
31+
### EVENTS ##########################################################
32+
#####################################################################
33+
34+
def datasets_changed_event(self): pass
35+
36+
#####################################################################
37+
### FUNCTIONS #######################################################
38+
#####################################################################
39+
40+
"""
41+
def save_form(self, data={}, path=None):
42+
allparams = self.controls
43+
44+
if hasattr(self, 'load_order'):
45+
for name in self.load_order:
46+
param = allparams[name]
47+
data[name] = {}
48+
param.save_form(data[name])
49+
else:
50+
for name, param in allparams.items():
51+
data[name] = {}
52+
param.save_form(data[name])
53+
return data
54+
55+
def load_form(self, data, path=None):
56+
allparams = self.controls
57+
58+
if hasattr(self, 'load_order'):
59+
for name in self.load_order:
60+
param = allparams[name]
61+
if name in data:
62+
param.load_form(data[name])
63+
else:
64+
for name, param in allparams.items():
65+
if name in data:
66+
param.load_form(data[name])
67+
"""
68+
69+
# used to update automaticly the name of the videos, objects and paths
70+
def refresh(self):
71+
ObjectsDialog.refresh(self)
72+
self._datasets.refresh()
73+
74+
def clear(self):
75+
ObjectsDialog.clear(self)
76+
self._datasets.clear()
77+
78+
def __add__(self, other):
79+
ObjectsDialog.__add__(self, other)
80+
if isinstance(other, Dataset): self.__update_datasets()
81+
return self
82+
83+
84+
def __sub__(self, other):
85+
ObjectsDialog.__sub__(self, other)
86+
if isinstance(other, Dataset): self.__update_datasets()
87+
return self
88+
89+
90+
def update_objects(self):
91+
"""
92+
Update the objects in the list
93+
"""
94+
ObjectsDialog.update_objects(self)
95+
self.__update_datasets()
96+
97+
98+
99+
def __update_datasets(self):
100+
"""
101+
Update the paths in the list
102+
"""
103+
datasets = [elem for elem, checked in self._datasets.items]
104+
105+
datasets_list = []
106+
for obj, checked in self._objects.items:
107+
if not isinstance(obj,Object2D): continue
108+
109+
for dataset in obj.datasets:
110+
if hasattr(self, '_datasets_filter') and not self._datasets_filter(dataset): continue
111+
112+
if dataset not in datasets_list: datasets_list.append(dataset)
113+
114+
if not checked and dataset in datasets:
115+
self._datasets -= dataset
116+
elif checked and dataset not in datasets:
117+
self._datasets += (dataset, False)
118+
119+
for dataset in datasets:
120+
if dataset not in datasets_list: self._datasets -= dataset
121+
122+
123+
124+
125+
126+
#####################################################################
127+
### PROPERTIES ######################################################
128+
#####################################################################
129+
130+
@property
131+
def datasets(self): return self._datasets.value
132+
133+
@property
134+
def selected_data(self):
135+
videos = self._videos.value
136+
datasets= self._datasets.value
137+
138+
res = []
139+
for video in videos:
140+
datasets_list = []
141+
for obj in video.objects2D:
142+
for dataset in obj.datasets:
143+
if dataset in datasets:
144+
datasets_list.append(dataset)
145+
res.append( (video, datasets_list) )
146+
return res
147+
148+
@property
149+
def datasets_filter(self): return self._datasets_filter
150+
@datasets_filter.setter
151+
def datasets_filter(self, value): self._datasets_filter = value
152+
153+
154+
155+
156+
if __name__ == "__main__": pyforms.startApp( DatasetsSelectorDialog )

0 commit comments

Comments
 (0)