def __set_properties(self): # begin wxGlade: CBFrame.__set_properties self.SetTitle("Concept browser") self.SetSize((850, 420)) self.concept_tree_ctrl.SetMinSize((500, 400)) self.ok_button.Enable(False) self.ok_button.SetDefault() self.panel_1.SetMinSize((300, 400)) # end wxGlade self.code_behind = CBCodeBehind(self)
class CBFrame(wx.Frame): """ Concept Browser frame. It is used to browse and edit L{taxonomy<core.interlingua.Taxonomy>} object. @see: lacodebehind. """ def __init__(self, *args, **kwds): # begin wxGlade: CBFrame.__init__ kwds["style"] = ( wx.CAPTION | wx.CLOSE_BOX | wx.MINIMIZE_BOX | wx.SYSTEM_MENU | wx.RESIZE_BORDER | wx.FRAME_FLOAT_ON_PARENT | wx.CLIP_CHILDREN ) wx.Frame.__init__(self, *args, **kwds) self.panel_1 = wx.Panel(self, -1) # Menu Bar self.cb_frame_menubar = wx.MenuBar() self.file_menu = wx.Menu() self.reload_menu = wx.MenuItem(self.file_menu, wx.ID_REVERT_TO_SAVED, "&Revert", "", wx.ITEM_NORMAL) self.file_menu.AppendItem(self.reload_menu) self.save_menu = wx.MenuItem(self.file_menu, wx.ID_SAVE, "&Save", "", wx.ITEM_NORMAL) self.file_menu.AppendItem(self.save_menu) self.saveas_menu = wx.MenuItem(self.file_menu, wx.ID_SAVEAS, "Save as...", "", wx.ITEM_NORMAL) self.file_menu.AppendItem(self.saveas_menu) self.file_menu.AppendSeparator() self.exit_menu = wx.MenuItem(self.file_menu, wx.ID_CLOSE, "Exit\tAlt+F4", "", wx.ITEM_NORMAL) self.file_menu.AppendItem(self.exit_menu) self.cb_frame_menubar.Append(self.file_menu, "&File") self.view_menu = wx.Menu() self.find_menu = wx.MenuItem(self.view_menu, wx.ID_FIND, "&Find...", "", wx.ITEM_NORMAL) self.view_menu.AppendItem(self.find_menu) self.view_menu.AppendSeparator() self.view_menu.Append(wx.ID_UNDO, "&Undo changes", "", wx.ITEM_NORMAL) self.apply_menu = wx.MenuItem(self.view_menu, wx.ID_APPLY, "&Apply changes", "", wx.ITEM_NORMAL) self.view_menu.AppendItem(self.apply_menu) self.cb_frame_menubar.Append(self.view_menu, "&View") self.edit_menu = wx.Menu() self.new_menu = wx.MenuItem(self.edit_menu, wx.ID_ADD, "&New subconcept", "", wx.ITEM_NORMAL) self.edit_menu.AppendItem(self.new_menu) self.delete_menu = wx.MenuItem(self.edit_menu, wx.ID_REMOVE, "&Delete concept", "", wx.ITEM_NORMAL) self.edit_menu.AppendItem(self.delete_menu) self.cb_frame_menubar.Append(self.edit_menu, "&Edit") self.SetMenuBar(self.cb_frame_menubar) # Menu Bar end self.concept_tree_ctrl = wx.gizmos.TreeListCtrl( self, -1, style=wx.TR_HAS_BUTTONS | wx.TR_NO_LINES | wx.TR_LINES_AT_ROOT | wx.TR_FULL_ROW_HIGHLIGHT | wx.TR_HIDE_ROOT | wx.TR_DEFAULT_STYLE | wx.SUNKEN_BORDER, ) self.baseconcept_label = wx.StaticText(self.panel_1, -1, "Lineage") self.baseconcept_text = wx.TextCtrl(self.panel_1, -1, "") self.derivation_text = wx.TextCtrl(self.panel_1, -1, "") self.interlingua_label = wx.StaticText(self.panel_1, -1, "Interlingua") self.interlingua_text = wx.TextCtrl(self.panel_1, -1, "") self.pos_label = wx.StaticText(self.panel_1, -1, "Part of Speech") self.pos_ctrl = wx.ComboBox(self.panel_1, -1, choices=[], style=wx.CB_DROPDOWN | wx.CB_READONLY) self.arg_struct_label = wx.StaticText(self.panel_1, -1, "Argument structure") self.arg_struct_combo = wx.ComboBox(self.panel_1, -1, choices=[], style=wx.CB_DROPDOWN | wx.CB_DROPDOWN) self.meaning_label = wx.StaticText(self.panel_1, -1, "Meaning") self.meaning_text = wx.TextCtrl(self.panel_1, -1, "") self.notes_label = wx.StaticText(self.panel_1, -1, "Notes") self.notes_text = wx.TextCtrl(self.panel_1, -1, "", style=wx.TE_MULTILINE | wx.TE_WORDWRAP) self.reference_label = wx.StaticText(self.panel_1, -1, "Reference") self.reference_text = wx.TextCtrl(self.panel_1, -1, "") self.cancel_button = wx.Button(self.panel_1, -1, "&Undo") self.ok_button = wx.Button(self.panel_1, -1, "&Apply") self.__set_properties() self.__do_layout() self.Bind(wx.EVT_MENU, self.OnReload, self.reload_menu) self.Bind(wx.EVT_MENU, self.OnSave, self.save_menu) self.Bind(wx.EVT_MENU, self.OnSaveAs, self.saveas_menu) self.Bind(wx.EVT_MENU, self.OnExit, self.exit_menu) self.Bind(wx.EVT_MENU, self.OnFind, self.find_menu) self.Bind(wx.EVT_MENU, self.OnUndo, id=wx.ID_UNDO) self.Bind(wx.EVT_MENU, self.OnApply, self.apply_menu) self.Bind(wx.EVT_MENU, self.OnNew, self.new_menu) self.Bind(wx.EVT_MENU, self.OnDelete, self.delete_menu) self.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnSelChanged, self.concept_tree_ctrl) self.Bind(wx.EVT_TEXT, self.OnChange, self.baseconcept_text) self.Bind(wx.EVT_TEXT, self.OnChange, self.derivation_text) self.Bind(wx.EVT_TEXT, self.OnChange, self.interlingua_text) self.Bind(wx.EVT_TEXT, self.OnChange, self.pos_ctrl) self.Bind(wx.EVT_TEXT, self.OnChange, self.arg_struct_combo) self.Bind(wx.EVT_TEXT, self.OnChange, self.meaning_text) self.Bind(wx.EVT_TEXT, self.OnChange, self.reference_text) self.Bind(wx.EVT_BUTTON, self.OnUndo, self.cancel_button) self.Bind(wx.EVT_BUTTON, self.OnApply, self.ok_button) # end wxGlade self.concept_tree_ctrl.GetMainWindow().Bind(wx.EVT_RIGHT_UP, self.OnRightUp) def __set_properties(self): # begin wxGlade: CBFrame.__set_properties self.SetTitle("Concept browser") self.SetSize((850, 420)) self.concept_tree_ctrl.SetMinSize((500, 400)) self.ok_button.Enable(False) self.ok_button.SetDefault() self.panel_1.SetMinSize((300, 400)) # end wxGlade self.code_behind = CBCodeBehind(self) def __do_layout(self): # begin wxGlade: CBFrame.__do_layout sizer_1 = wx.BoxSizer(wx.HORIZONTAL) grid_sizer_1 = wx.FlexGridSizer(1, 2, 0, 0) sizer_3 = wx.FlexGridSizer(2, 1, 0, 0) sizer_4 = wx.GridSizer(1, 2, 0, 0) control_grid_sizer = wx.FlexGridSizer(7, 2, 4, 4) sizer_2 = wx.FlexGridSizer(1, 2, 0, 0) grid_sizer_1.Add(self.concept_tree_ctrl, 1, wx.EXPAND, 0) control_grid_sizer.Add(self.baseconcept_label, 0, wx.ALIGN_CENTER_VERTICAL, 0) sizer_2.Add(self.baseconcept_text, 0, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 0) sizer_2.Add(self.derivation_text, 0, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 0) sizer_2.AddGrowableCol(0) sizer_2.AddGrowableCol(1) control_grid_sizer.Add(sizer_2, 1, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 0) control_grid_sizer.Add(self.interlingua_label, 0, wx.ALIGN_CENTER_VERTICAL, 0) control_grid_sizer.Add(self.interlingua_text, 0, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 0) control_grid_sizer.Add(self.pos_label, 0, wx.ALIGN_CENTER_VERTICAL, 0) control_grid_sizer.Add(self.pos_ctrl, 0, wx.ALIGN_CENTER_VERTICAL, 0) control_grid_sizer.Add(self.arg_struct_label, 0, wx.ALIGN_CENTER_VERTICAL, 0) control_grid_sizer.Add(self.arg_struct_combo, 0, wx.ALIGN_CENTER_VERTICAL, 0) control_grid_sizer.Add(self.meaning_label, 0, wx.ALIGN_CENTER_VERTICAL, 0) control_grid_sizer.Add(self.meaning_text, 0, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 0) control_grid_sizer.Add(self.notes_label, 0, 0, 0) control_grid_sizer.Add(self.notes_text, 0, wx.EXPAND, 0) control_grid_sizer.Add(self.reference_label, 0, wx.ALIGN_CENTER_VERTICAL, 0) control_grid_sizer.Add(self.reference_text, 0, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 0) control_grid_sizer.AddGrowableCol(1) sizer_3.Add(control_grid_sizer, 1, wx.ALL | wx.EXPAND, 20) sizer_4.Add(self.cancel_button, 0, wx.ALIGN_BOTTOM | wx.ALIGN_CENTER_HORIZONTAL, 20) sizer_4.Add(self.ok_button, 0, wx.ALIGN_BOTTOM | wx.ALIGN_CENTER_HORIZONTAL, 0) sizer_3.Add(sizer_4, 1, wx.ALL | wx.EXPAND, 20) self.panel_1.SetSizer(sizer_3) sizer_3.AddGrowableRow(0) sizer_3.AddGrowableCol(0) grid_sizer_1.Add(self.panel_1, 1, wx.ALL | wx.EXPAND | wx.ALIGN_BOTTOM, 0) grid_sizer_1.AddGrowableRow(0) grid_sizer_1.AddGrowableCol(0) grid_sizer_1.AddGrowableCol(1) sizer_1.Add(grid_sizer_1, 1, wx.EXPAND, 0) self.SetSizer(sizer_1) self.Layout() # end wxGlade # Tree events def OnRightUp(self, event): # wxGlade: CBFrame.<event_handler> self.code_behind.OnRightUp(event) def OnSelChanged(self, event): # wxGlade: CBFrame.<event_handler> self.code_behind.OnSelChanged(event) # Control events def OnChange(self, event): # wxGlade: CBFrame.<event_handler> self.code_behind.OnChange(event) # Menu events def OnReload(self, event): # wxGlade: CBFrame.<event_handler> self.code_behind.OnReload(event) def OnSave(self, event): # wxGlade: CBFrame.<event_handler> self.code_behind.OnSave(event) def OnSaveAs(self, event): # wxGlade: CBFrame.<event_handler> self.code_behind.OnSaveAs(event) def OnExit(self, event): # wxGlade: CBFrame.<event_handler> self.code_behind.OnExit(event) def OnFind(self, event): # wxGlade: CBFrame.<event_handler> self.code_behind.show_find(FindDialog) def OnUndo(self, event): # wxGlade: CBFrame.<event_handler> self.code_behind.OnUndo(event) def OnApply(self, event): # wxGlade: CBFrame.<event_handler> self.code_behind.OnOpen(event) def OnNew(self, event): # wxGlade: CBFrame.<event_handler> self.code_behind.OnNew(event) def OnDelete(self, event): # wxGlade: CBFrame.<event_handler> self.code_behind.OnDelete(event)