diff --git a/board-builder-impl-egui/src/main.rs b/board-builder-impl-egui/src/main.rs index 42d7640..de88721 100644 --- a/board-builder-impl-egui/src/main.rs +++ b/board-builder-impl-egui/src/main.rs @@ -131,9 +131,7 @@ impl eframe::App for BoardBuilderApp { } }); } - if self.edit_labels_dialog.open { - self.draw_edit_labels_dialog(ctx); - } + self.edit_labels_dialog.ui(ctx); } } @@ -190,52 +188,6 @@ impl BoardBuilderApp { } } - fn draw_edit_labels_dialog(&mut self, ctx: &Context) { - Window::new("Edit Labels") - .collapsible(false) - .show(ctx, |ui| { - let mut board = self.board.borrow_mut(); - let selected_label_key = &mut self.edit_labels_dialog.selected_label_key; - let selected_label_value = &mut self.edit_labels_dialog.selected_label_value; - ui.columns(2, |col| { - col[0].group(|ui| { - for key_label in board.labels.keys() { - ui.selectable_value(selected_label_key, key_label.clone(), key_label); - } - }); - col[0].horizontal(|ui| { - if ui.button("+").clicked() { - self.edit_labels_dialog.add_key_dialog.show(); - } - if ui.button("-").clicked() { - todo!(); - } - }); - col[1].group(|ui| { - if let Some(value_labels) = board.labels.get(selected_label_key) { - for value_label in value_labels { - ui.selectable_value(selected_label_value, value_label.clone(), value_label); - } - } - }); - col[1].horizontal(|ui| { - if ui.button("+").clicked() { - todo!(); - } - if ui.button("-").clicked() { - todo!(); - } - }); - }); - if self.edit_labels_dialog.add_key_dialog.open { - if let StringDialogResponse::Accepted(key) = - self.edit_labels_dialog.add_key_dialog.ui(ui, "Add Key") { - board.labels.insert(key, Vec::new()); - } - } - }); - } - fn dispatch_click(&mut self, btn: PointerButton, x: f32, y: f32) { use EditMode::*; use PointerButton::*; @@ -310,8 +262,52 @@ impl EditLabelsDialog { self.board = board; self.open = true; } - fn close(&mut self) { - self.open = false; + + fn ui(&mut self, ctx: &Context) { + Window::new("Edit Labels") + .collapsible(false) + .open(&mut self.open) + .show(ctx, |ui| { + let mut board = self.board.borrow_mut(); + let selected_label_key = &mut self.selected_label_key; + let selected_label_value = &mut self.selected_label_value; + ui.columns(2, |col| { + col[0].group(|ui| { + for key_label in board.labels.keys() { + ui.selectable_value(selected_label_key, key_label.clone(), key_label); + } + }); + col[0].horizontal(|ui| { + if ui.button("+").clicked() { + self.add_key_dialog.show(); + } + if ui.button("-").clicked() { + todo!(); + } + }); + col[1].group(|ui| { + if let Some(value_labels) = board.labels.get(selected_label_key) { + for value_label in value_labels { + ui.selectable_value(selected_label_value, value_label.clone(), value_label); + } + } + }); + col[1].horizontal(|ui| { + if ui.button("+").clicked() { + todo!(); + } + if ui.button("-").clicked() { + todo!(); + } + }); + }); + if self.add_key_dialog.open { + if let StringDialogResponse::Accepted(key) = + self.add_key_dialog.ui(ui, "Add Key") { + board.labels.insert(key, Vec::new()); + } + } + }); } }