self.to_create = ["rerender", "new_rendered", "object_diagrams"] self.button_info = {"rerender": "Rerender the current model using the specified mapper and visualized model.", "new_rendered": "Create a new 'vanilla' visualized model of the same Abstract Syntax model.", "object_diagrams": "Bind the Object Diagrams visualization to this model.", } self.buttons = {} tk.Label(self, text="Visualization").pack(side=tk.LEFT) # Mapper global current_mapper selected_mapper = tk.StringVar(self) selected_mapper.set(current_mapper if current_mapper is not None else "(none)") om = tk.OptionMenu(self, selected_mapper, *list(allowed_mappers) if allowed_mappers else "(none)") if not allowed_mappers: om.configure(state=tk.DISABLED) om.pack(side=tk.LEFT) selected_mapper.trace('w', lambda name, index, mode: self.controller.addInput(Event("changed_mapper", "input", [id(self), selected_mapper.get()]))) # Rendered global current_rendered_model selected_rendered = tk.StringVar(self) selected_rendered.set(current_rendered_model if current_rendered_model is not None else "(none)") om = tk.OptionMenu(self, selected_rendered, *list(allowed_rendered) if allowed_rendered else "(none)") if not allowed_rendered: om.configure(state=tk.DISABLED) om.pack(side=tk.LEFT) selected_rendered.trace('w', lambda name, index, mode: self.controller.addInput(Event("changed_rendered", "input", [id(self), selected_rendered.get()])))