示例#1
0
    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)
示例#2
0
    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)
示例#3
0
 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)
示例#4
0
 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)
示例#5
0
 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)
示例#6
0
 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)
示例#7
0
 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)
示例#8
0
 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)
示例#9
0
 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)
示例#10
0
 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)
示例#11
0
 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)
示例#12
0
    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)
示例#13
0
 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)
示例#14
0
    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)
示例#15
0
文件: DragWidget.py 项目: Afey/pyjs
 def makeDraggable(self):
     makeDraggable(self)
示例#16
0
 def makeDraggable(self):
     makeDraggable(self)