diff browser_side/base_widget.py @ 370:30d03d9f07e4

browser_side: refactorization of the file tools.py: - tools.py renamed to html_tools.py - method setPresenceStyle moved to contact.py - classes DragLabel and LiberviaDragWidget moved to base_widget.py - class FilterFileUpload moved to file_tools.py
author souliane <souliane@mailoo.org>
date Sun, 23 Feb 2014 17:01:03 +0100
parents ce5b33f499c5
children a71fcc27f231
line wrap: on
line diff
--- a/browser_side/base_widget.py	Sun Feb 23 16:20:03 2014 +0100
+++ b/browser_side/base_widget.py	Sun Feb 23 17:01:03 2014 +0100
@@ -30,6 +30,7 @@
 from pyjamas.ui.Button import Button
 from pyjamas.ui.Image import Image
 from pyjamas.ui.Widget import Widget
+from pyjamas.ui.DragWidget import DragWidget
 from pyjamas.ui.DropWidget import DropWidget
 from pyjamas.ui.ClickListener import ClickHandler
 from pyjamas.ui import HasAlignment
@@ -38,7 +39,35 @@
 from __pyjamas__ import doc
 
 import dialog
-from tools import LiberviaDragWidget
+
+
+class DragLabel(DragWidget):
+
+    def __init__(self, text, _type):
+        DragWidget.__init__(self)
+        self._text = text
+        self._type = _type
+
+    def onDragStart(self, event):
+        dt = event.dataTransfer
+        dt.setData('text/plain', "%s\n%s" % (self._text, self._type))
+        dt.setDragImage(self.getElement(), 15, 15)
+
+
+class LiberviaDragWidget(DragLabel):
+    """ A DragLabel which keep the widget being dragged as class value """
+    current = None  # widget currently dragged
+
+    def __init__(self, text, _type, widget):
+        DragLabel.__init__(self, text, _type)
+        self.widget = widget
+
+    def onDragStart(self, event):
+        LiberviaDragWidget.current = self.widget
+        DragLabel.onDragStart(self, event)
+
+    def onDragEnd(self, event):
+        LiberviaDragWidget.current = None
 
 
 class DropCell(DropWidget):