Example #1
0
    def __init__(self, parent, start, end, first, **kw):
        CommonFrame.__init__(self, parent, **kw)

        self.parent = parent

        self.current_row = 0

        self.headers = ["name", "date", "cpu", "memory"]

        self.web = Web()

        self.btn = ThemedButton(self.topFrame, text="OK", command=self.accept)

        self.start = SmartEntry(self.topFrame, start, first)

        self.end = SmartEntry(self.topFrame, end, first)

        self.amountOfEntries = 0
Example #2
0
class History(CommonFrame):
    def __init__(self, parent, start, end, first, **kw):
        CommonFrame.__init__(self, parent, **kw)

        self.parent = parent

        self.current_row = 0

        self.headers = ["name", "date", "cpu", "memory"]

        self.web = Web()

        self.btn = ThemedButton(self.topFrame, text="OK", command=self.accept)

        self.start = SmartEntry(self.topFrame, start, first)

        self.end = SmartEntry(self.topFrame, end, first)

        self.amountOfEntries = 0

    def pack(self, **kw):
        Frame.pack(self, **kw)

        try:
            self.info = self.web.get_info(self.start.get(), self.end.get())

        except requests.RequestException:
            showerror("error!", "Не могу соединиться с веб службой")
            self.info = []

        self.amountOfEntries = len(self.info)

        self.topFrame.pack(side=TOP, fill=BOTH, expand=YES)
        self.bottomFrame.pack(side=BOTTOM, expand=YES, fill=BOTH)

        self.bottomFrame.columnconfigure(0, weight=1)

        self.start.pack(side=LEFT)
        self.end.pack(side=LEFT)

        self.btn.pack(side=LEFT)
        self.btn.focus()

        for (i, text) in zip(range(4), self.headers):
            MyLabel(self.bottomFrame, text=text).grid(row=0, column=i, sticky=EW)
            self.bottomFrame.columnconfigure(i, weight=1)

        self.current_row += 1

        for i in range(0, self.amountOfEntries):
            for (j, item) in zip(
                range(0, 4), (self.info[i]["agent"], self.info[i]["time"], self.info[i]["cpu"], self.info[i]["used"])
            ):
                ent = Entry(self.bottomFrame, width=20)
                ent.insert(0, item)
                ent.config(state="readonly")

                ent.grid(row=i + 1, column=j, sticky=EW)

            self.current_row += 1

    def accept(self):
        start = self.start.get()
        end = self.end.get()

        if not start or not end:
            showerror("error!", "Заполните все поля")
            return
        if not self.web.date_validator(start) or not self.web.date_validator(end):
            showerror("error!", "Используйте следующий формат даты\n2015-07-27T07:27:10.658Z")
            return

        self.canvas.delete(ALL)
        self.canvas.destroy()
        self.__init__(self.parent, start, end, False)
        self.pack(expand=YES, fill=BOTH)