def construct(self): page = super(StatePropertyPage, self).construct() subject = self.subject if not subject: return page hbox = create_hbox_label(self, page, _("Entry")) entry = Gtk.Entry() if subject.entry: entry.set_text(subject.entry.name or "") entry.connect("changed", self.on_text_change, self.set_entry) hbox.pack_start(entry, True, True, 0) hbox = create_hbox_label(self, page, _("Exit")) entry = Gtk.Entry() if subject.exit: entry.set_text(subject.exit.name or "") entry.connect("changed", self.on_text_change, self.set_exit) hbox.pack_start(entry, True, True, 0) hbox = create_hbox_label(self, page, _("Do Activity")) entry = Gtk.Entry() if subject.doActivity: entry.set_text(self.subject.doActivity.name or "") entry.connect("changed", self.on_text_change, self.set_do_activity) hbox.pack_start(entry, True, True, 0) page.show_all() return page
def construct(self): page = super(ObjectNodePropertyPage, self).construct() subject = self.subject if not subject: return page hbox = create_hbox_label(self, page, _("Upper bound")) entry = Gtk.Entry() entry.set_text(subject.upperBound or "") entry.connect("changed", self._on_upper_bound_change) hbox.pack_start(entry, True, True, 0) hbox = create_hbox_label(self, page, "") combo = Gtk.ComboBoxText() for v in self.ORDERING_VALUES: combo.append_text(v) combo.set_active(self.ORDERING_VALUES.index(subject.ordering)) combo.connect("changed", self._on_ordering_change) hbox.pack_start(combo, False, True, 0) hbox = create_hbox_label(self, page, "") button = Gtk.CheckButton(_("Ordering")) button.set_active(self.item.show_ordering) button.connect("toggled", self._on_ordering_show_change) hbox.pack_start(button, False, True, 0) return page
def construct(self): page = super(TransitionPropertyPage, self).construct() subject = self.subject if not subject: return page hbox = create_hbox_label(self, page, _("Guard")) entry = Gtk.Entry() v = subject.guard.specification entry.set_text(v if v else "") entry.connect("changed", self._on_guard_change) changed_id = entry.connect("changed", self._on_guard_change) hbox.pack_start(entry, True, True, 0) def handler(event): entry.handler_block(changed_id) v = event.new_value entry.set_text(v if v else "") entry.handler_unblock(changed_id) self.watcher.watch("guard<Constraint>.specification", handler).subscribe_all() entry.connect("destroy", self.watcher.unsubscribe_all) return page
def construct(self): page = super().construct() item = self.item subject = item.subject if not subject: return page if not item.is_communication(): hbox = create_hbox_label(self, page, gettext("Message sort")) sort_data = self.MESSAGE_SORT lifeline = None cinfo = item.canvas.get_connection(item.tail) if cinfo: lifeline = cinfo.connected # disallow connecting two delete messages to a lifeline if (lifeline and lifeline.is_destroyed and subject.messageSort != "deleteMessage"): sort_data = list(sort_data) assert sort_data[4][1] == "deleteMessage" del sort_data[4] combo = self.combo = create_uml_combo(sort_data, self._on_message_sort_change) hbox.pack_start(combo, False, True, 0) index = combo.get_model().get_index(subject.messageSort) combo.set_active(index) return page
def construct(self): assert self.watcher page = super().construct() subject = self.subject if not subject: return page hbox = create_hbox_label(self, page, gettext("Guard")) entry = Gtk.Entry() entry.set_text(subject.guard or "") changed_id = entry.connect("changed", self._on_guard_change) hbox.pack_start(entry, True, True, 0) def handler(event): entry.handler_block(changed_id) v = event.new_value entry.set_text(v if v else "") entry.handler_unblock(changed_id) self.watcher.watch("guard", handler).subscribe_all() entry.connect("destroy", self.watcher.unsubscribe_all) return page
def construct(self): page = Gtk.VBox() hbox = create_hbox_label(self, page, _("Dependency type")) self.combo = create_uml_combo(self.DEPENDENCY_TYPES, self._on_dependency_type_change) hbox.pack_start(self.combo, False, True, 0) hbox = create_hbox_label(self, page, "") button = Gtk.CheckButton(_("Automatic")) button.set_active(self.item.auto_dependency) button.connect("toggled", self._on_auto_dependency_change) hbox.pack_start(button, True, True, 0) self.watcher.watch("subject", self._on_subject_change).subscribe_all() button.connect("destroy", self.watcher.unsubscribe_all) self.update() return page
def construct(self): page = super(MessagePropertyPage, self).construct() item = self.item subject = item.subject if not subject: return page if item.is_communication(): self._messages = CommunicationMessageModel(item) tree_view = create_tree_view(self._messages, (_("Message"),)) tree_view.set_headers_visible(False) frame = Gtk.Frame.new(label=_("Additional Messages")) frame.add(tree_view) page.pack_start(frame, True, True, 0) self._inverted_messages = CommunicationMessageModel(item, inverted=True) tree_view = create_tree_view(self._inverted_messages, (_("Message"),)) tree_view.set_headers_visible(False) frame = Gtk.Frame.new(label=_("Inverted Messages")) frame.add(tree_view) page.pack_end(frame, True, True, 0) else: hbox = create_hbox_label(self, page, _("Message sort")) sort_data = self.MESSAGE_SORT lifeline = None cinfo = item.canvas.get_connection(item.tail) if cinfo: lifeline = cinfo.connected # disallow connecting two delete messages to a lifeline if ( lifeline and lifeline.is_destroyed and subject.messageSort != "deleteMessage" ): sort_data = list(sort_data) assert sort_data[4][1] == "deleteMessage" del sort_data[4] combo = self.combo = create_uml_combo( sort_data, self._on_message_sort_change ) hbox.pack_start(combo, False, True, 0) index = combo.get_model().get_index(subject.messageSort) combo.set_active(index) return page
def construct(self): if not UML.model.is_metaclass(self.subject): return super().construct() page = Gtk.VBox() subject = self.subject if not subject: return page hbox = create_hbox_label(self, page, self.NAME_LABEL) model = Gtk.ListStore(str) for c in self.CLASSES: model.append([c]) cb = Gtk.ComboBox.new_with_model_and_entry(model) completion = Gtk.EntryCompletion() completion.set_model(model) completion.set_minimum_key_length(1) completion.set_text_column(0) cb.get_child().set_completion(completion) entry = cb.get_child() entry.set_text(subject and subject.name or "") hbox.pack_start(cb, True, True, 0) page.default = entry # monitor subject.name attribute changed_id = entry.connect("changed", self._on_name_change) def handler(event): if event.element is subject and event.new_value is not None: entry.handler_block(changed_id) entry.set_text(event.new_value) entry.handler_unblock(changed_id) self.watcher.watch("name", handler).subscribe_all() entry.connect("destroy", self.watcher.unsubscribe_all) page.show_all() return page
def construct(self): page = super(JoinNodePropertyPage, self).construct() subject = self.subject if not subject: return page hbox = Gtk.HBox() page.pack_start(hbox, False, True, 0) if isinstance(subject, UML.JoinNode): hbox = create_hbox_label(self, page, _("Join specification")) entry = Gtk.Entry() entry.set_text(subject.joinSpec or "") entry.connect("changed", self._on_join_spec_change) hbox.pack_start(entry, True, True, 0) button = Gtk.CheckButton(_("Horizontal")) button.set_active(self.item.matrix[2] != 0) button.connect("toggled", self._on_horizontal_change) page.pack_start(button, False, True, 0) return page
def construct(self): page = super(FlowPropertyPageAbstract, self).construct() subject = self.subject if not subject: return page hbox = create_hbox_label(self, page, _("Guard")) entry = Gtk.Entry() entry.set_text(subject.guard or "") changed_id = entry.connect("changed", self._on_guard_change) hbox.pack_start(entry, True, True, 0) def handler(event): entry.handler_block(changed_id) v = event.new_value entry.set_text(v if v else "") entry.handler_unblock(changed_id) self.watcher.watch("guard", handler).register_handlers() entry.connect("destroy", self.watcher.unregister_handlers) return page