Mercurial > libervia-web
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):