Skip to content

Commit 837407a

Browse files
committed
Refactor marker parameters dialog
Modularize, cleanup.
1 parent 51a8491 commit 837407a

File tree

3 files changed

+116
-101
lines changed

3 files changed

+116
-101
lines changed

src/ccompass/CCMPS.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1555,7 +1555,9 @@ def run(self):
15551555
)
15561556

15571557
elif event == "-marker_parameters-":
1558-
self.model.marker_params = PPMS.PPMS_exec_marker(
1558+
from .marker_parameters_dialog import show_dialog
1559+
1560+
self.model.marker_params = show_dialog(
15591561
self.model.marker_params
15601562
)
15611563

src/ccompass/PPMS.py

Lines changed: 0 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -67,106 +67,6 @@ def NN_default():
6767
return params_default
6868

6969

70-
def PPMS_exec_marker(params_old):
71-
if params_old["how"] == "exclude":
72-
how_exclude = True
73-
how_majority = False
74-
elif params_old["how"] == "majority":
75-
how_exclude = False
76-
how_majority = True
77-
78-
if params_old["what"] == "unite":
79-
what_unite = True
80-
what_intersect = False
81-
if params_old["what"] == "intersect":
82-
what_unite = False
83-
what_intersect = True
84-
85-
marker_params = copy.deepcopy(params_old)
86-
87-
layout_PMM = [
88-
[
89-
sg.Text("discrepancies:\t"),
90-
sg.Checkbox(
91-
"exclude\t",
92-
key="--PMM_exclude--",
93-
default=how_exclude,
94-
enable_events=True,
95-
),
96-
sg.Checkbox(
97-
"take majority",
98-
key="--PMM_majority--",
99-
default=how_majority,
100-
enable_events=True,
101-
),
102-
],
103-
[
104-
sg.Text("selection:\t"),
105-
sg.Checkbox(
106-
"unite\t",
107-
key="--PMM_unite--",
108-
default=what_unite,
109-
enable_events=True,
110-
),
111-
sg.Checkbox(
112-
"intersect",
113-
key="--PMM_intersect--",
114-
default=what_intersect,
115-
enable_events=True,
116-
),
117-
],
118-
[
119-
sg.Button(
120-
"OK",
121-
key="--PMM_accept--",
122-
disabled=False,
123-
enable_events=True,
124-
button_color="dark green",
125-
),
126-
sg.Button(
127-
"Cancel",
128-
key="--PMM_cancel--",
129-
disabled=False,
130-
enable_events=True,
131-
button_color="black",
132-
),
133-
],
134-
]
135-
136-
window_PMM = sg.Window("Marker Parameters", layout_PMM, size=(400, 100))
137-
138-
while True:
139-
event_PMM, values_PMM = window_PMM.read()
140-
141-
if event_PMM == "--PMM_exclude--":
142-
marker_params["how"] = "esclude"
143-
window_PMM["--PMM_exclude--"].Update(value=True)
144-
window_PMM["--PMM_majority--"].Update(value=False)
145-
if event_PMM == "--PMM_majority--":
146-
marker_params["how"] = "majority"
147-
window_PMM["--PMM_exclude--"].Update(value=False)
148-
window_PMM["--PMM_majority--"].Update(value=True)
149-
if event_PMM == "--PMM_unite--":
150-
marker_params["what"] = "unite"
151-
window_PMM["--PMM_unite--"].Update(value=True)
152-
window_PMM["--PMM_intersect--"].Update(value=False)
153-
if event_PMM == "--PMM_intersect--":
154-
marker_params["what"] = "intersect"
155-
window_PMM["--PMM_unite--"].Update(value=False)
156-
window_PMM["--PMM_intersect--"].Update(value=True)
157-
158-
if event_PMM == sg.WIN_CLOSED or event_PMM == "--PMM_cancel--":
159-
params = copy.deepcopy(params_old)
160-
window_PMM.close()
161-
break
162-
if event_PMM == "--PMM_accept--":
163-
params = copy.deepcopy(marker_params)
164-
window_PMM.close()
165-
166-
# window_PMM.close()
167-
return params
168-
169-
17070
def PPMS_exec_TP(params_old):
17171
tp_params = copy.deepcopy(params_old)
17272

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
"""Dialog for setting marker processing parameters."""
2+
3+
import copy
4+
from typing import Any
5+
6+
import FreeSimpleGUI as sg
7+
8+
9+
def _create_window(marker_params: dict[str, Any]) -> sg.Window:
10+
if marker_params["how"] == "exclude":
11+
how_exclude = True
12+
how_majority = False
13+
elif marker_params["how"] == "majority":
14+
how_exclude = False
15+
how_majority = True
16+
else:
17+
raise ValueError("Invalid value for 'how' in marker parameters.")
18+
19+
if marker_params["what"] == "unite":
20+
what_unite = True
21+
what_intersect = False
22+
elif marker_params["what"] == "intersect":
23+
what_unite = False
24+
what_intersect = True
25+
else:
26+
raise ValueError("Invalid value for 'what' in marker parameters.")
27+
28+
layout = [
29+
[
30+
sg.Text("discrepancies:\t"),
31+
sg.Checkbox(
32+
"exclude\t",
33+
key="--PMM_exclude--",
34+
default=how_exclude,
35+
enable_events=True,
36+
),
37+
sg.Checkbox(
38+
"take majority",
39+
key="--PMM_majority--",
40+
default=how_majority,
41+
enable_events=True,
42+
),
43+
],
44+
[
45+
sg.Text("selection:\t"),
46+
sg.Checkbox(
47+
"unite\t",
48+
key="--PMM_unite--",
49+
default=what_unite,
50+
enable_events=True,
51+
),
52+
sg.Checkbox(
53+
"intersect",
54+
key="--PMM_intersect--",
55+
default=what_intersect,
56+
enable_events=True,
57+
),
58+
],
59+
[
60+
sg.Button(
61+
"OK",
62+
key="--PMM_accept--",
63+
disabled=False,
64+
enable_events=True,
65+
button_color="dark green",
66+
),
67+
sg.Button(
68+
"Cancel",
69+
key="--PMM_cancel--",
70+
disabled=False,
71+
enable_events=True,
72+
button_color="black",
73+
),
74+
],
75+
]
76+
77+
return sg.Window("Marker Parameters", layout, size=(400, 100))
78+
79+
80+
def show_dialog(params_old: dict[str, Any]) -> dict[str, Any]:
81+
"""Show dialog for setting marker processing parameters."""
82+
marker_params = copy.deepcopy(params_old)
83+
window = _create_window(marker_params)
84+
85+
while True:
86+
event, values = window.read()
87+
88+
if event == sg.WIN_CLOSED or event == "--PMM_cancel--":
89+
marker_params = copy.deepcopy(params_old)
90+
break
91+
92+
if event == "--PMM_accept--":
93+
break
94+
95+
if event == "--PMM_exclude--":
96+
marker_params["how"] = "esclude"
97+
window["--PMM_exclude--"].Update(value=True)
98+
window["--PMM_majority--"].Update(value=False)
99+
elif event == "--PMM_majority--":
100+
marker_params["how"] = "majority"
101+
window["--PMM_exclude--"].Update(value=False)
102+
window["--PMM_majority--"].Update(value=True)
103+
elif event == "--PMM_unite--":
104+
marker_params["what"] = "unite"
105+
window["--PMM_unite--"].Update(value=True)
106+
window["--PMM_intersect--"].Update(value=False)
107+
elif event == "--PMM_intersect--":
108+
marker_params["what"] = "intersect"
109+
window["--PMM_unite--"].Update(value=False)
110+
window["--PMM_intersect--"].Update(value=True)
111+
112+
window.close()
113+
return marker_params

0 commit comments

Comments
 (0)