def onCreateGroup(self, evt):
        dlg = wx.TextEntryDialog(
                self, 'Please insert the group name:')


        if dlg.ShowModal() == wx.ID_OK:
            name = dlg.GetValue()
            Group.add_group(name)
            self.select_group.Append(name)
            self.groups_list.append(name)
            

        dlg.Destroy()
Example #2
0
 def groupChosen(self, evt):
     name = self.select_group.Items[self.select_group.GetSelection()]
     group = Group.get_groups(name,type='group')[0]
     words = group.words
     text = ""
     wps = set()
     songs = [self.lb1.Items[song_selection] for song_selection in self.lb1.Selections]
     for song in songs:
         added_song_name = False
         for word in words:
             for wp in word.word_positions:
                 if wp.song.name == song:
                     if not added_song_name:
                         text+= song + ':\n\n'
                         added_song_name = True
                     if (wp.song.id, wp.stanza_number) not in wps:
                         wps.add((wp.song.id, wp.stanza_number))
                         text+= wp.song.get_stanza(wp.stanza_number)
                         text+= '\n\n\n'
     
     self.t3.SetValue(text)
     self.t3.SetScrollPos(1,1)
     for word in words:
         for m in re.finditer(" " + word.word, text ):
             self.t3.SetStyle(m.start()+1, m.end(), wx.TextAttr("RED", "YELLOW"))
         for m in re.finditer("\n" + word.word, text ):
             self.t3.SetStyle(m.start()+1, m.end(), wx.TextAttr("RED", "YELLOW"))
 def groupChosen(self, evt):
     self.grid.ClearGrid()
     name = self.select_group.Items[self.select_group.GetSelection()]
     print name
     group = Group.get_groups(name,type='group')[0]
     words = group.words
     words_text = [word.word for word in words]
     self.show_words(words_text)
 def onRemoveWordFromGroup(self, evt):
     selection = self.group_words.GetSelection()
     word = self.group_words.Items[selection]
     db_word = Word.get_words(word)[0]
     db_group = Group.get_groups(self.select_group.Items[self.select_group.Selection])[0]
     self.group_words.Delete(selection)
     db_wga = session.query(WordGroupAssociation).filter_by(group_id=db_group.id, word_id=db_word.id).first()
     session.delete(db_wga)
     session.commit()
 def OnAddWordToGroupFromList(self, evt):
     selections = self.lb1.GetSelections()
     db_group = Group.get_groups(self.select_group.Items[self.select_group.Selection])[0]
     for selection in selections: 
         db_word = Word.get_words(word=self.lb1.Items[selection])[0]
         word_group = WordGroupAssociation(word_id=db_word.id, group_id=db_group.id)
         session.add(word_group)
         session.commit()
         self.group_words.Append(db_word.word)
    def onAddWordToGroup(self, evt):
        name = self.select_group.Items[self.select_group.Selection]
        group = Group.get_groups(name)[0]
        dlg = wx.TextEntryDialog(
                self, 'Please enter the word to add:')


        if dlg.ShowModal() == wx.ID_OK:
            word = dlg.GetValue()
            db_word = Word.add_word(word)
            word_group = WordGroupAssociation(word_id=db_word.id, group_id=group.id)
            session.add(word_group)
            session.commit()
            self.group_words.Append(word)
        dlg.Destroy()
Example #7
0
    def __init__(self, parent):
        wx.Panel.__init__(self, parent, -1)
        self.words = Word.get_words()
        self.songs = []
        
        song_text = wx.StaticText(self, -1, "Select Song", (100, 30))
        songList = [s.name for s in Song.get_songs()]
        self.lb1 = wx.ListBox(self, 60, (100, 50), (200, 200), songList, wx.LB_EXTENDED)
        self.lb1.SetSelection(0)
        
#        btn1 = wx.Button(self, -1, "Show words", (330, 120))
#        self.Bind(wx.EVT_BUTTON, self.songChosen, btn1) 
        
        words_text = wx.StaticText(self, -1, "Select Word", (450, 30))
        self.lb2 = wx.ListBox(self, 70, (450, 50), (90, 200), [], wx.LB_SINGLE)
        
        words = self.words
        for word in words:
            self.lb2.Append(word.word)
        
        btn2 = wx.Button(self, -1, "Search Word", (450, 280))
        self.Bind(wx.EVT_BUTTON, self.wordChosen, btn2) 
        
        occurrences_text = wx.StaticText(self, -1, "Occurrences", (750, 30))
        self.t3 = wx.TextCtrl(self, -1,
                        "", (750, 50),
                       size=(400, 400), style=wx.TE_MULTILINE|wx.TE_RICH2)
        
        group_text = wx.StaticText(self, -1, "Select Group", (100, 380))
        self.groups_list = [g.name for g in Group.get_groups(type='group')]
        
        self.select_group = wx.ComboBox(self, 500, "", (100, 400), 
                                        (160, -1), self.groups_list, wx.CB_DROPDOWN)
        
        btn4 = wx.Button(self, -1, "Search Group", (100, 500))
        self.Bind(wx.EVT_BUTTON, self.groupChosen, btn4)
        
        btn2 = wx.Button(self, -1, "Search Phrase", (750, 500))
        self.Bind(wx.EVT_BUTTON, self.phraseChosen, btn2)
        
        expression_text = wx.StaticText(self, -1, "Select Expression", (450, 380))
        
        expression_list = [e.name for e in Expression.get_expressions()]
        self.lb3 = wx.ListBox(self, 70, (450, 410), (90, 50), expression_list, wx.LB_SINGLE)
        
        btn3 = wx.Button(self, -1, "Search Expression", (450, 500))
        self.Bind(wx.EVT_BUTTON, self.expressionChosen, btn3)
 def __init__(self, parent):
     from text_indexer.orm.base import session
     from text_indexer.orm.word_position import WordPosition
     
     wx.Panel.__init__(self, parent, -1)
     
     self.grid = wx.grid.Grid(self, -1, (100, 50), (1220, 400))
     
     self.wps = session.query(WordPosition).order_by(WordPosition.song_id, WordPosition.line_number,WordPosition.row_word_number).all()
     
     self.grid.CreateGrid(len(self.wps), 8)
     
     self.grid.SetColSize(0, 130)
     self.grid.SetColSize(1, 130)
     self.grid.SetColSize(2, 130)
     self.grid.SetColSize(3, 130)
     self.grid.SetColSize(4, 130)
     self.grid.SetColSize(5, 130)
     self.grid.SetColSize(6, 130)
     self.grid.SetColSize(7, 130)
     
     self.grid.SetColLabelValue(0, "Song")
     self.grid.SetColLabelValue(1, "Words")
     self.grid.SetColLabelValue(2, "Number in song")
     self.grid.SetColLabelValue(3, "Paragraph")
     self.grid.SetColLabelValue(4, "Number in paragraph")
     self.grid.SetColLabelValue(5, "Line number")
     self.grid.SetColLabelValue(6, "number in line")
     self.grid.SetColLabelValue(7, "word occurrence")
     
     
     group_text = wx.StaticText(self, -1, "Select Group", (100, 480))
     self.groups_list = [g.name for g in Group.get_groups(type='group')]
     
     self.select_group = wx.ComboBox(self, 500, "", (100, 500), 
                                     (160, -1), self.groups_list, wx.CB_DROPDOWN)
     
     self.group_button = wx.Button(self, -1, "Show Group Index", (320, 500))
     self.Bind(wx.EVT_BUTTON, self.groupChosen, self.group_button)
     
     self.refresh_button = wx.Button(self, -1, "Refresh", (500, 500))
     self.Bind(wx.EVT_BUTTON, self.refresh, self.refresh_button)
     
     self.show_words()
 def onRemoveRelations(self, evt):
     selections = self.relations_grid.GetSelectedRows()
     for selection in selections:
         relation = Group.get_groups(name=self.relations_grid.GetCellValue(selection,2))[0]
         self.relations_grid.DeleteRows(selection)
         delete_relation(relation)
 def onGroupChosen(self, evt):
     name = self.select_group.Items[evt.GetSelection()]
     group = Group.get_groups(name,type='group')[0]
     self.group_words.Clear()
     for word in group.words:
         self.group_words.Append(word.word)
 def onRemoveGroup(self, evt):
     selection = self.select_group.GetSelection()
     group = Group.get_groups(name=self.select_group.Items[selection])[0]
     self.select_group.Delete(selection)
     delete_group(group)
     pass
    def __init__(self, parent):
        wx.Panel.__init__(self, parent, -1)
        
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        
        exp_sizer = wx.BoxSizer(wx.VERTICAL)
        
        relation_sizer = wx.BoxSizer(wx.HORIZONTAL)
        relation_grid_sizer = wx.BoxSizer(wx.VERTICAL)
        relation_buttons_sizer = wx.BoxSizer(wx.VERTICAL)
        
        word_list_sizer = wx.BoxSizer(wx.VERTICAL)
        
        
        group_sizer = wx.BoxSizer(wx.HORIZONTAL)
        
        select_group_sizer = wx.BoxSizer(wx.VERTICAL)
        
        buttons_group_sizer = wx.BoxSizer(wx.VERTICAL)
        
        
        self.groups_list = [g.name for g in Group.get_groups(type='group')]
        
        self.select_group = wx.ComboBox(self, 500, "", (90, 50), 
                                        (160, -1), self.groups_list, wx.CB_DROPDOWN)
        self.Bind(wx.EVT_COMBOBOX, self.onGroupChosen, self.select_group)
        
        group_text = wx.StaticText(self, -1, "Manage Group", (20, 20)) 
        
        self.group_words = wx.ListBox(self, 60, (100, 100), (150, 200), [], wx.LB_SINGLE)
        
        self.create_group_button = wx.Button(self, -1, "Create New Group", (300, 150))
        self.Bind(wx.EVT_BUTTON, self.onCreateGroup, self.create_group_button) 
        
        self.add_word_to_group_button = wx.Button(self, -1, "Add Word", (300, 150))
        self.Bind(wx.EVT_BUTTON, self.onAddWordToGroup, self.add_word_to_group_button)
        
        self.add_word_to_group_from_list_button = wx.Button(self, -1, "Add Words From List", (300, 150))
        self.Bind(wx.EVT_BUTTON, self.OnAddWordToGroupFromList, self.add_word_to_group_from_list_button)

        self.remove_word_button = wx.Button(self, -1, "Remove Word", (300, 150))
        self.Bind(wx.EVT_BUTTON, self.onRemoveWordFromGroup, self.remove_word_button)
        
        self.remove_group_button = wx.Button(self, -1, "Remove Group", (300, 150))
        self.Bind(wx.EVT_BUTTON, self.onRemoveGroup, self.remove_group_button)
        
        
        
        select_group_sizer.Add(group_text)
        select_group_sizer.Add(self.select_group)
        select_group_sizer.Add(self.group_words)
        
        buttons_group_sizer.AddSpacer(100)
        buttons_group_sizer.Add(self.create_group_button)
        buttons_group_sizer.Add(self.add_word_to_group_button)
        buttons_group_sizer.Add(self.add_word_to_group_from_list_button)
        buttons_group_sizer.Add(self.remove_word_button)
        buttons_group_sizer.Add(self.remove_group_button)
        
        group_sizer.Add(select_group_sizer)
        group_sizer.Add(buttons_group_sizer)
        
        
        expressions_sizer = wx.BoxSizer(wx.HORIZONTAL)
        buttons_expressions_sizer = wx.BoxSizer(wx.VERTICAL)
        select_expressions_sizer = wx.BoxSizer(wx.VERTICAL)
        
        expression_text = wx.StaticText(self, -1, "Manage Expressions", (20, 20))
        self.expressions_list = [e.name for e in Expression.get_expressions()] 
        
        self.expressions = wx.ListBox(self, 60, (100, 100), (150, 200), self.expressions_list, wx.LB_EXTENDED)
        
        self.add_expression_button = wx.Button(self, -1, "Add Expression", (300, 150))
        self.Bind(wx.EVT_BUTTON, self.onAddExpression, self.add_expression_button) 

        self.remove_expressions_button = wx.Button(self, -1, "Remove Expressions", (300, 150))
        self.Bind(wx.EVT_BUTTON, self.onRemoveExpressions, self.remove_expressions_button) 
        
        select_expressions_sizer.Add(expression_text)
        select_expressions_sizer.Add(self.expressions)
        
        buttons_expressions_sizer.AddSpacer(100)
        buttons_expressions_sizer.Add(self.add_expression_button)
        buttons_expressions_sizer.Add(self.remove_expressions_button)
        
        
        expressions_sizer.Add(select_expressions_sizer)
        expressions_sizer.Add(buttons_expressions_sizer)
        
        exp_sizer.AddSpacer(50)
        exp_sizer.Add(group_sizer)
        exp_sizer.AddSpacer(50)
        exp_sizer.Add(expressions_sizer)
        
        
        
        expression_text = wx.StaticText(self, -1, "Manage relations", (20, 20))
        
        self.relations = Group.get_groups(type='relation')
        
        self.relations_grid = wx.grid.Grid(self, -1, size=(380, 250))
        
        self.relations_grid.CreateGrid(len(self.relations), 3)
        
        self.relations_grid.SetColSize(0, 100)
        self.relations_grid.SetColSize(1, 100)
        self.relations_grid.SetColSize(2, 100)

        
        self.relations_grid.SetColLabelValue(0, "Word 1")
        self.relations_grid.SetColLabelValue(1, "Word 2")
        self.relations_grid.SetColLabelValue(2, "Relation Name")
        
        i=0
        for relation in self.relations:
            self.relations_grid.SetCellValue(i, 0, relation.first_word.word)
            self.relations_grid.SetCellValue(i, 1, relation.second_word.word)
            self.relations_grid.SetCellValue(i, 2, relation.name)
            i+=1
        
        
        relation_grid_sizer.AddSpacer(50)
        relation_grid_sizer.Add(expression_text)
        relation_grid_sizer.AddSpacer(10)
        relation_grid_sizer.Add(self.relations_grid)
        
        
        
        self.add_relation_button = wx.Button(self, -1, "Add Relation", (300, 150))
        self.Bind(wx.EVT_BUTTON, self.onAddRelation, self.add_relation_button) 
        
        self.add_relation_with_words_button = wx.Button(self, -1, "Add Relation With Selected Words", (300, 150))
        self.Bind(wx.EVT_BUTTON, self.onAddRelationWithWords, self.add_relation_with_words_button) 

        self.remove_relation_button = wx.Button(self, -1, "Remove Relation", (300, 150))
        self.Bind(wx.EVT_BUTTON, self.onRemoveRelations, self.remove_relation_button) 
        
        relation_buttons_sizer.AddSpacer(100)
        relation_buttons_sizer.Add(self.add_relation_button)
        relation_buttons_sizer.Add(self.add_relation_with_words_button)
        relation_buttons_sizer.Add(self.remove_relation_button)
        
        relation_sizer.Add(relation_grid_sizer)
        relation_sizer.AddSpacer(20)
        relation_sizer.Add(relation_buttons_sizer)
        
        word_list_text = wx.StaticText(self, -1, "Words List", (20, 20)) 
        word_list = [w.word for w in Word.get_words()]
        self.lb1 = wx.ListBox(self, 60, (100, 50), (200, 400), word_list, wx.LB_EXTENDED)
        
        word_list_sizer.AddSpacer(100)
        word_list_sizer.Add(word_list_text)
        word_list_sizer.Add(self.lb1)
        
        
        sizer.AddSpacer(50)
        sizer.Add(exp_sizer)
        sizer.AddSpacer(50)
        sizer.Add(relation_sizer)        
        sizer.AddSpacer(100)        
        sizer.Add(word_list_sizer)
        
        self.SetSizer(sizer)