def onDrop(self, event): dt = event.dataTransfer text = dt.getData('text') package = json.decode(text) x = DOM.eventGetClientX(event) y = DOM.eventGetClientY(event) scrollY = Window.getScrollTop() scrollX = Window.getScrollLeft() offsetX = int(package['offsetX']) offsetY = int(package['offsetY']) at = self.getAbsoluteTop() al = self.getAbsoluteLeft() posX, posY = x - (al - scrollX), y - (at - scrollY) w = DragWidget6(package['text']) self.add(w) makeDraggable(w) # firefox seems to be off-by-one in x. # firefox-specific code? #w.setStyleAttribute('left', posX - offsetX -1) w.setStyleAttribute('left', posX - offsetX) w.setStyleAttribute('top', posY - offsetY) w.removeStyleName('invisible') self.addMessage( "top:%s, left:%s, cy:%s cx:%s, sy:%s sx:%s dropy:%s dropx:%s" % ( at, al, y, x, scrollY, scrollX, posY, posX)) DOM.eventPreventDefault(event)
def onDrop(self, event): dt = event.dataTransfer text = dt.getData('text') package = json.decode(text) x = DOM.eventGetClientX(event) y = DOM.eventGetClientY(event) scrollY = Window.getScrollTop() scrollX = Window.getScrollLeft() offsetX = int(package['offsetX']) offsetY = int(package['offsetY']) at = self.getAbsoluteTop() al = self.getAbsoluteLeft() posX, posY = x - (al - scrollX), y - (at - scrollY) w = DragWidget6(package['text']) self.add(w) makeDraggable(w) # firefox seems to be off-by-one in x. # firefox-specific code? #w.setStyleAttribute('left', posX - offsetX -1) w.setStyleAttribute('left', posX - offsetX) w.setStyleAttribute('top', posY - offsetY) w.removeStyleName('invisible') self.addMessage( "top:%s, left:%s, cy:%s cx:%s, sy:%s sx:%s dropy:%s dropx:%s" % (at, al, y, x, scrollY, scrollX, posY, posX)) DOM.eventPreventDefault(event)
def addDragWidget(self): s = len(self.children) w = Label(Element=DOM.createElement('li')) w.setID('effectdrag' + str(s)) w.setStyleName('dragme') w.setText('Drag %s (%s)' % (s, self.data[s])) self.add(w) makeDraggable(w)
def addDragWidget(self): s = len(self.children) w = Label(Element=DOM.createElement('li')) w.setID('datadrag' + str(s)) w.setStyleName('dragme') texts = ['Text', 'Text / HTML / URI', 'Disallowed'] w.setText(texts[s]) self.append(w) makeDraggable(w)
def addDragWidget(self): s = len(self.children) w = Label(Element=DOM.createElement('li')) w.setStyleName('dragme') w.setID('imgdrag' + str(s)) texts = ['Default', 'Element', 'Image', 'Canvas'] w.setText(texts[s]) self.add(w) makeDraggable(w)
def addDragWidget(self): self.remove(self.button) s = len(self.children) w = Label(Element=DOM.createElement('li')) w.setID('drag' + str(s)) w.setStyleName('dragme') w.setText('Drag ' + str(s)) self.add(w) makeDraggable(w) self.add(self.button)
def addDragWidget(self): s = len(self.children) w = Label(Element=DOM.createElement('li')) w.setStyleName('dragme') w.setID('imgdrag' + str(s)) texts = ['Default', 'Element', 'Image', 'Canvas' ] w.setText(texts[s]) self.add(w) makeDraggable(w)
def addStudent(self, name, age): new_names = self.getNames() found = False for item in new_names: if item == (name, age): found = True break if not found: new_names.append((name, age)) new_names.sort() while len(self.children): self.remove(self.children[0]) #self.clear() self.addTitle() for student in new_names: sw = StudentWidget(student[0], student[1]) makeDraggable(sw) self.append(sw) self.setCellVerticalAlignment(sw, HasVerticalAlignment.ALIGN_TOP)
def __init__(self): HorizontalPanel.__init__(self) left = DropWidget6() right = DropWidget6() self.setSpacing('10px') drag = DragWidget6("Drag1") drag2 = DragWidget6("Drag2") left.add(drag2) drag2.setStyleAttribute('top', 0) drag2.setStyleAttribute('left', 0) makeDraggable(drag2) left.add(drag) drag.setStyleAttribute('top', 0) drag.setStyleAttribute('left', 100) makeDraggable(drag) self.add(left) self.add(right)
def makeDraggable(self): makeDraggable(self)