Example #1
0
class data_screen:
    ####---------------------------------------- START OF GUI INIT ---------------------------------------####

    def __init__(self, top=None):
        global urlAddress
        '''This class configures and populates the toplevel window.
           top is the toplevel containing window.'''
        _bgcolor = '#d9d9d9'  # X11 color: 'gray85'
        _fgcolor = '#000000'  # X11 color: 'black'
        _compcolor = '#d9d9d9'  # X11 color: 'gray85'
        _ana1color = '#d9d9d9'  # X11 color: 'gray85'
        _ana2color = '#ececec'  # Closest X11 color: 'gray92'
        self.style = ttk.Style()
        if sys.platform == "win32":
            self.style.theme_use('winnative')
        self.style.configure('.', background=_bgcolor)
        self.style.configure('.', foreground=_fgcolor)
        self.style.map('.',
                       background=[('selected', _compcolor),
                                   ('active', _ana2color)])

        top.geometry("951x650+377+0")
        top.title("Data Mining")
        top.configure(background="#9c9c9e")
        top.configure(highlightbackground="#d9d9d9")
        top.configure(highlightcolor="#000000")

        self.root_label = tk.Label(top)
        self.root_label.place(relx=0.021, rely=0.024, height=46, width=112)
        self.root_label.configure(activebackground="#a5a5a8")
        self.root_label.configure(activeforeground="#a5a5a8")
        self.root_label.configure(background="#9c9c9e")
        self.root_label.configure(disabledforeground="#a3a3a3")
        self.root_label.configure(
            font="-family {Yu Gothic UI Semibold} -size 9 -weight bold")
        self.root_label.configure(foreground="#000000")
        self.root_label.configure(highlightbackground="#d9d9d9")
        self.root_label.configure(highlightcolor="black")
        self.root_label.configure(text='''Enter Root''')

        self.root_text = tk.Text(top)
        self.root_text.place(relx=0.158,
                             rely=0.036,
                             relheight=0.04,
                             relwidth=0.604)
        self.root_text.configure(background="white")
        self.root_text.configure(
            font="-family {Yu Gothic UI Semibold} -size 9 -weight bold")
        self.root_text.configure(foreground="black")
        self.root_text.configure(highlightbackground="#d9d9d9")
        self.root_text.configure(highlightcolor="black")
        self.root_text.configure(inactiveselectbackground="#000000")
        self.root_text.configure(insertbackground="black")
        self.root_text.configure(selectbackground="#c4c4c4")
        self.root_text.configure(selectforeground="black")
        self.root_text.configure(width=574)
        self.root_text.configure(wrap="word")
        tooltip_font = "TkDefaultFont"
        ToolTip(self.root_text, tooltip_font, '''enter your root''', delay=0.5)

        self.search_button = tk.Button(top)
        self.search_button.place(relx=0.831, rely=0.036, height=33, width=146)
        self.search_button.configure(activebackground="#3e3eed")
        self.search_button.configure(activeforeground="white")
        self.search_button.configure(activeforeground="#000000")
        self.search_button.configure(background="#e8e7e6")
        self.search_button.configure(command=self.import_url)
        self.search_button.configure(disabledforeground="#a3a3a3")
        self.search_button.configure(font="-family {Segoe UI Emoji} -size 9")
        self.search_button.configure(foreground="#000000")
        self.search_button.configure(highlightbackground="#d9d9d9")
        self.search_button.configure(highlightcolor="black")
        self.search_button.configure(pady="0")
        self.search_button.configure(text='''Search''')
        self.search_button.configure(width=146)
        tooltip_font = "TkDefaultFont"
        ToolTip(self.search_button,
                tooltip_font,
                '''press to Search''',
                delay=0.5)

        self.export_to_txt_button = tk.Button(top)
        self.export_to_txt_button.place(relx=0.852,
                                        rely=0.881,
                                        height=73,
                                        width=106)
        self.export_to_txt_button.configure(activebackground="#ececec")
        self.export_to_txt_button.configure(activeforeground="#000000")
        self.export_to_txt_button.configure(background="#d9d9d9")
        self.export_to_txt_button.configure(
            command=Window_support.export_to_txt)
        self.export_to_txt_button.configure(disabledforeground="#a3a3a3")
        self.export_to_txt_button.configure(foreground="#000000")
        self.export_to_txt_button.configure(highlightbackground="#d9d9d9")
        self.export_to_txt_button.configure(highlightcolor="#000000")
        self.export_to_txt_button.configure(pady="0")
        self.export_to_txt_button.configure(text='''export to TXT''')
        self.export_to_txt_button.configure(width=106)
        tooltip_font = "TkDefaultFont"
        ToolTip(self.export_to_txt_button,
                tooltip_font,
                '''press to export the table to TXT file''',
                delay=0.5)

        self.filter_button = tk.Button(top)
        self.filter_button.place(relx=0.862, rely=0.155, height=73, width=96)
        self.filter_button.configure(activebackground="#ececec")
        self.filter_button.configure(activeforeground="#000000")
        self.filter_button.configure(background="#d9d9d9")
        self.filter_button.configure(disabledforeground="#a3a3a3")
        self.filter_button.configure(foreground="#000000")
        self.filter_button.configure(highlightbackground="#d9d9d9")
        self.filter_button.configure(highlightcolor="black")
        self.filter_button.configure(pady="0")
        self.filter_button.configure(command=self.search_by_model)
        self.filter_button.configure(text='''Find Specific\n Model''')

        self.filter_model_text = tk.Text(top)
        self.filter_model_text.place(relx=0.831,
                                     rely=0.286,
                                     relheight=0.04,
                                     relwidth=0.151)
        self.filter_model_text.configure(background="white")
        self.filter_model_text.configure(font="TkTextFont")
        self.filter_model_text.configure(foreground="black")
        self.filter_model_text.configure(highlightbackground="#d9d9d9")
        self.filter_model_text.configure(highlightcolor="black")
        self.filter_model_text.configure(insertbackground="black")
        self.filter_model_text.configure(selectbackground="#c4c4c4")
        self.filter_model_text.configure(selectforeground="black")
        self.filter_model_text.configure(width=144)
        self.filter_model_text.configure(wrap="word")
        tooltip_font = "TkDefaultFont"
        ToolTip(self.filter_model_text,
                tooltip_font,
                '''enter specific model to filter the result''',
                delay=0.5)

        self.reset_button = tk.Button(top)
        self.reset_button.place(relx=0.032, rely=0.929, height=33, width=186)
        self.reset_button.configure(activebackground="#ececec")
        self.reset_button.configure(activeforeground="#000000")
        self.reset_button.configure(background="#d9d9d9")
        self.reset_button.configure(disabledforeground="#a3a3a3")
        self.reset_button.configure(foreground="#000000")
        self.reset_button.configure(highlightbackground="#d9d9d9")
        self.reset_button.configure(highlightcolor="black")
        self.reset_button.configure(pady="0")
        self.reset_button.configure(command=self.delete_Scrolledtext)
        self.reset_button.configure(text='''Reset''')
        tooltip_font = "TkDefaultFont"
        ToolTip(self.reset_button,
                tooltip_font,
                '''press to reset the table''',
                delay=0.5)

        self.menubar = tk.Menu(top,
                               font="TkMenuFont",
                               bg=_bgcolor,
                               fg=_fgcolor)
        top.configure(menu=self.menubar)

        self.Scrolledtext1 = ScrolledText(top)
        self.Scrolledtext1.place(relx=0.032,
                                 rely=0.107,
                                 relheight=0.802,
                                 relwidth=0.783)
        self.Scrolledtext1.configure(background="white")
        self.Scrolledtext1.configure(font="TkTextFont")
        self.Scrolledtext1.configure(state="disabled")
        self.Scrolledtext1.configure(foreground="black")
        self.Scrolledtext1.configure(highlightbackground="#d9d9d9")
        self.Scrolledtext1.configure(highlightcolor="black")
        self.Scrolledtext1.configure(insertbackground="black")
        self.Scrolledtext1.configure(insertborderwidth="50")
        self.Scrolledtext1.configure(selectbackground="#c4c4c4")
        self.Scrolledtext1.configure(selectforeground="black")
        self.Scrolledtext1.configure(width=200)
        self.Scrolledtext1.configure(wrap="none")

    ####---------------------------------------- END OF GUI INIT ---------------------------------------####

    #****************    function for search button    ********************#

    def import_url(self):
        '''
        GUI method that import all table from specific url
        :return: None
        '''
        self.Scrolledtext1.configure(state="normal")
        self.Scrolledtext1.delete("1.0", "end-1c")
        urlAddress = self.root_text.get("1.0", "end-1c")
        self.Scrolledtext1.insert(
            tk.INSERT, Window_support.search_window(urlAddress, 'all'))
        self.Scrolledtext1.configure(state="disabled")

    #****************    END function for search button    ********************#

    #****************    START function for filter button    ********************#

    def search_by_model(self):
        '''
        function that do the same as import_url but, filter by specific model and return table
        :return:None
        '''
        self.Scrolledtext1.configure(state="normal")
        self.Scrolledtext1.delete("1.0", "end-1c")
        urlAddress = self.root_text.get("1.0", "end-1c")
        model = self.filter_model_text.get("1.0", 'end-1c')
        self.Scrolledtext1.insert(
            tk.INSERT, Window_support.search_window(urlAddress, model))
        self.Scrolledtext1.configure(state="disabled")

    #****************    END function for filter button    ********************#

    #****************    START function for reset button    ********************#
    def delete_Scrolledtext(self):
        '''
        functio that delete the scrolled_text when we want a new table
        :return: None
        '''
        self.Scrolledtext1.configure(state="normal")
        self.Scrolledtext1.delete("1.0", "end-1c")
        self.root_text.delete("1.0", "end-1c")
        self.Scrolledtext1.configure(state="disabled")