def onDragStart(self, event): dt = event.dataTransfer target = DOM.eventGetTarget(event) target = Widget(Element=target) id = target.getID() dt.setData("Text", "Dropped %s" % target.getID()) dt.effectAllowed = 'copy' if id == 'imgdrag1': parent = self.getParent() while not hasattr(parent, 'h2'): parent = parent.getParent() dt.setDragImage(parent.h2.getElement(), 10, 10) elif id == 'imgdrag2': dt.setDragImage(doc().getElementById('logo'), 10, 10) elif id == 'imgdrag3': # OK, it's a bit of a cheat, but the following works on current # Opera, IE, Firefox, Safari, Chrome. ctx = GWTCanvas(50, 50) self.makeCanvasImg(ctx) try: img = DOM.createImg() DOM.setAttribute(img, 'src', ctx.canvas.toDataURL()) dt.setDragImage(img, 25, 25) except: dt.setDragImage(ctx.canvas, 25, 25)
def InitialiseScreen(self): hpanel = HorizontalPanel() self.add(hpanel) vpanelMenu = VerticalPanel() hpanel.add(vpanelMenu) self.addbutton = Button("Add Triangle") vpanelMenu.add(self.addbutton) self.addbutton.addClickListener(getattr(self, "addtriangle")) self.canvas = GWTCanvas(self.CANVAS_WIDTH, self.CANVAS_HEIGHT) vpanelCanvas = VerticalPanel() self.canvas.setWidth(self.CANVAS_WIDTH) self.canvas.setHeight(self.CANVAS_HEIGHT) hpanel.add(vpanelCanvas) vpanelCanvas.add(self.canvas) self.canvas.addMouseListener(self) self.selecteditem = None self.selectedhandle = None self.mouseisdown = False dc = DocumentCollection.documentcollection DocumentCollection.documentcollection.edgelistener = self.EdgeListener if len(dc.documentsbyclass[model.Drawing.__name__]) == 0: drawing = model.Drawing(None) dc.AddDocumentObject(drawing) EdgePoster([a.asDict() for a in drawing.history.GetAllEdges()]) else: for k, v in dc.documentsbyclass[ model.Drawing.__name__].iteritems(): drawing = v self.drawingid = drawing.id self.Draw()
def onModuleLoad(self): self.layout = HorizontalPanel() # Each demo will set their own dimensions, so it doesn't matter # what we initialize the canvas to. canvas = GWTCanvas(400,400) canvas.addStyleName("gwt-canvas") self.demos = [] # Create demos self.demos.append(StaticDemo(canvas)) self.demos.append(LogoDemo(canvas)) self.demos.append(ParticleDemo(canvas)) self.demos.append(GradientDemo(canvas)) self.demos.append(SuiteDemo(canvas)) # Add them to the selection list box lb = ListBox() lb.setStyleName("listBox") for i in range(len(self.demos)): lb.addItem(self.demos[i].getName()) lb.addChangeListener(self) # start off with the first demo self.currentDemo = self.demos[0] # Add widgets to self.layout and RootPanel vp = VerticalPanel() vp.add(lb) vp.add(canvas) self.layout.add(vp) if self.currentDemo.getControls() is not None: self.layout.add(self.currentDemo.getControls()) RootPanel().add(self.layout) self.currentDemo.drawDemo()
def create(self): return GWTCanvas()
def __init__(self): HorizontalPanel.__init__(self) self.context = GWTCanvas(300,300,300,300) self.context.addStyleName("gwt-canvas") self.add(self.context)
def _get_canvas(self): return GWTCanvas(400, 400)