Example #1
0
    def createComponents(self):
        self.drawingList = Listbox(self.window)
        self.drawingList.grid(row=0,column=0,rowspan=3)
        self.drawingList.bind("<<ListboxSelect>>",self.listSelected)

        self.labelBuildingName = Label(self.window,text = "Building Name")
        self.labelBuildingName.grid(row=0,column=1)

        self.labelYearConstructed = Label(self.window,text = "Year Constructed")
        self.labelYearConstructed.grid(row=1,column=1)

        self.updateButton = Button(self.window,text="Update",command=self.updateButtonPressed)
        self.updateButton.grid(row=2,column=1)

        self.drawingCanvas = DrawingCanvas(self.window, 300,300,"white")
        self.drawingCanvas.grid(row = 0, column=2, rowspan = 3)
        self.drawingCanvas.bind("<Button-1>", self.canvasClicked)
Example #2
0
class DrawingWindow():
    def __init__(self):
        self.window = Tk()
        self.drawingList = None
        self.updateButton = None
        self.labelBuildingName = None
        self.labelYearConstructed = None
        self.currentDrawing = None
        self.drawingsInfo = None
        self.drawingCanvas = None

    def newFilePressed(self):
        print 0

    def openFilePressed(self):
        drawings = []
        filepath = askopenfilename()

        if len(filepath) == 0:
            return

        f = open(filepath,"r")
        newLine = f.readline()
        index = 1
        while newLine!="":
            newLine = newLine.strip()
            parameters = newLine.split(",")
            drawings.append(Drawing(parameters[0],int(parameters[1]),parameters[2],int(parameters[3]),parameters[4],parameters[5],"Drawing #"+str(index)))

            self.drawingList.insert(END,drawings[index-1].name)

            newLine = f.readline()
            index = index+1

        self.drawingsInfo = drawings

    def saveFilePressed(self):
        print "Save file!"

    def saveAsPressed(self):
        print "Save as!"

    def updateButtonPressed(self):
        print "button clicked."
        self.labelBuildingName.config(text="New text")

    def drawLinePressed(self):
        self.drawingCanvas.drawingMode = 1

    def drawArrowPressed(self):
        self.drawingCanvas.drawingMode = 2

    def drawRectanglePressed(self):
        self.drawingCanvas.drawingMode = 3

    def drawCirclePressed(self):
        self.drawingCanvas.drawingMode = 4


    def canvasClicked(self, event):
        if self.drawingCanvas.drawingMode >0:
            if self.drawingCanvas.firstClick == None:
                self.drawingCanvas.firstClick = [event.x, event.y]
            else:
                self.drawingCanvas.secondClick = [event.x, event.y]
                self.drawingCanvas.drawComponent()

    def changeLineWidthPressed(self):
        self.drawingCanvas.changeLineWidth()

    def changeLineColorPressed(self):
        self.drawingCanvas.ChangeAnnotationColor()

    def listSelected(self,event):
        selectedIndex = self.drawingList.curselection()
        if len(selectedIndex) == 0:
            return

        drawingindex = selectedIndex[0]
        print self.drawingsInfo[drawingindex].buildingName
        self.labelBuildingName.config(text=self.drawingsInfo[drawingindex].buildingName)
        print self.drawingsInfo[drawingindex].yearConstructed
        self.labelYearConstructed.config(text=self.drawingsInfo[drawingindex].yearConstructed)
        self.drawingCanvas.DrawImage(self.drawingsInfo[drawingindex].imageFile)

    def createComponents(self):
        self.drawingList = Listbox(self.window)
        self.drawingList.grid(row=0,column=0,rowspan=3)
        self.drawingList.bind("<<ListboxSelect>>",self.listSelected)

        self.labelBuildingName = Label(self.window,text = "Building Name")
        self.labelBuildingName.grid(row=0,column=1)

        self.labelYearConstructed = Label(self.window,text = "Year Constructed")
        self.labelYearConstructed.grid(row=1,column=1)

        self.updateButton = Button(self.window,text="Update",command=self.updateButtonPressed)
        self.updateButton.grid(row=2,column=1)

        self.drawingCanvas = DrawingCanvas(self.window, 300,300,"white")
        self.drawingCanvas.grid(row = 0, column=2, rowspan = 3)
        self.drawingCanvas.bind("<Button-1>", self.canvasClicked)


    def createMenu(self):
        menubar = Menu(self.window)
        self.window.config(menu = menubar)

        fileMenu = Menu(menubar)
        menubar.add_cascade(label="File", menu=fileMenu)

        fileMenu.add_command(label="New File", command=self.newFilePressed)
        fileMenu.add_command(label="Open File", command=self.openFilePressed)
        fileMenu.add_command(label="Save File", command=self.saveFilePressed)
        fileMenu.add_command(label="Save as...", command=self.saveAsPressed)


        annotationMenu = Menu(menubar)
        menubar.add_cascade(label="Annotation", menu=annotationMenu)

        annotationMenu.add_command(label="Draw Line", command=self.drawLinePressed)
        annotationMenu.add_command(label="Draw Arrow", command=self.drawArrowPressed)
        annotationMenu.add_command(label="Draw Rectangle", command=self.drawRectanglePressed)
        annotationMenu.add_command(label="Draw Circle", command=self.drawCirclePressed)
        annotationMenu.add_separator()
        annotationMenu.add_command(label="Change Line Width", command=self.changeLineWidthPressed)
        annotationMenu.add_command(label="Change Line Color", command=self.changeLineColorPressed)