diff libervia.py @ 6:a663b9955cf3

drap and drop first draft
author Goffi <goffi@goffi.org>
date Mon, 14 Feb 2011 01:46:07 +0100
parents 7325e787c22b
children c80b75bf2e91
line wrap: on
line diff
--- a/libervia.py	Sun Feb 13 16:21:45 2011 +0100
+++ b/libervia.py	Mon Feb 14 01:46:07 2011 +0100
@@ -30,8 +30,9 @@
 from pyjamas.ui import HasAlignment
 from pyjamas.ui.MenuBar import MenuBar
 from pyjamas.ui.MenuItem import MenuItem
+from pyjamas.ui.AutoComplete import AutoCompleteTextBox
+from pyjamas.ui.DropWidget import DropWidget
 from pyjamas import Window
-from pyjamas.ui.AutoComplete import AutoCompleteTextBox
 from pyjamas.JSONService import JSONProxy
 from register import RegisterPanel, RegisterBox
 from pyjamas import DOM
@@ -158,6 +159,44 @@
                 if contact.jid in self.groups[sender.group]:
                     contact.removeStyleName("selected")
 
+class EmptyPanel(DropWidget, SimplePanel):
+    """Empty dropable panel"""
+
+    def __init__(self):
+        SimplePanel.__init__(self)
+        _panel = HTMLPanel("&nbsp;")
+        #_panel.setHeight('100%')
+        #_panel.setWidth('100%')
+        self.add(_panel)
+        self.setHeight('100%')
+        DropWidget.__init__(self)
+    
+    def onDragEnter(self, event):
+        print "Empty Panel: onDragEnter"
+        self.addStyleName('dragover')
+        DOM.eventPreventDefault(event)
+
+    def onDragLeave(self, event):
+        print "Empty Panel: onDragLeave"
+        self.removeStyleName('dragover')
+
+    def onDragOver(self, event):
+        print "Empty Panel: onDragOver"
+        DOM.eventPreventDefault(event)
+
+    def onDrop(self, event):
+        print "Empty Panel: onDragOver"
+        dt = event.dataTransfer
+        #'text', 'text/plain', and 'Text' are equivalent.
+        try:
+            item = dt.getData("text/plain")
+            print "message: %s" % item
+        except:
+            print "no message found"
+        DOM.eventPreventDefault(event)
+
+
+
 class MicroblogEntry(SimplePanel):
 
     def __init__(self, body, author, timestamp):
@@ -165,7 +204,7 @@
 
         _datetime = datetime.fromtimestamp(timestamp)
 
-        panel = HTMLPanel("<div class='mb_entry_author'>%(author)s on <span class='mb_entry_timestamp'>%(timestamp)s</span></div><p class='mb_entry_body'>%(body)s</p>" %
+        panel = HTMLPanel("<div class='mb_entry_header'><span class='mb_entry_author'>%(author)s</span> on <span class='mb_entry_timestamp'>%(timestamp)s</span></div><div class='mb_entry_body'>%(body)s</div>" %
             {"author": author,
             "timestamp": _datetime,
             "body": body}
@@ -201,6 +240,7 @@
         self.setCellWidth(self._left, "15%")
         self.add(self._right)
         self.setCellWidth(self._right, "85%")
+        self.setHeight('100%')
 
     def changePanel(self, idx, panel):
         print "panel:",panel
@@ -243,6 +283,8 @@
         self.middle_panel = self.panel.middle_panel
         self.mpanels = [MicroblogPanel()]
         self.middle_panel.changePanel(1,self.mpanels[0])
+        self.middle_panel.changePanel(0,EmptyPanel())
+        self.middle_panel.changePanel(2,EmptyPanel())
         self._dialog = None
         RootPanel().add(self.panel)
         self._register = RegisterCall()