Mercurial > libervia-web
comparison 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 |
comparison
equal
deleted
inserted
replaced
5:c8d3821efc36 | 6:a663b9955cf3 |
---|---|
28 from pyjamas.ui.Grid import Grid | 28 from pyjamas.ui.Grid import Grid |
29 from pyjamas.ui.Label import Label | 29 from pyjamas.ui.Label import Label |
30 from pyjamas.ui import HasAlignment | 30 from pyjamas.ui import HasAlignment |
31 from pyjamas.ui.MenuBar import MenuBar | 31 from pyjamas.ui.MenuBar import MenuBar |
32 from pyjamas.ui.MenuItem import MenuItem | 32 from pyjamas.ui.MenuItem import MenuItem |
33 from pyjamas.ui.AutoComplete import AutoCompleteTextBox | |
34 from pyjamas.ui.DropWidget import DropWidget | |
33 from pyjamas import Window | 35 from pyjamas import Window |
34 from pyjamas.ui.AutoComplete import AutoCompleteTextBox | |
35 from pyjamas.JSONService import JSONProxy | 36 from pyjamas.JSONService import JSONProxy |
36 from register import RegisterPanel, RegisterBox | 37 from register import RegisterPanel, RegisterBox |
37 from pyjamas import DOM | 38 from pyjamas import DOM |
38 from contact import ContactPanel | 39 from contact import ContactPanel |
39 from datetime import datetime | 40 from datetime import datetime |
156 if isinstance(sender, GroupLabel): | 157 if isinstance(sender, GroupLabel): |
157 for contact in self._contactList: | 158 for contact in self._contactList: |
158 if contact.jid in self.groups[sender.group]: | 159 if contact.jid in self.groups[sender.group]: |
159 contact.removeStyleName("selected") | 160 contact.removeStyleName("selected") |
160 | 161 |
162 class EmptyPanel(DropWidget, SimplePanel): | |
163 """Empty dropable panel""" | |
164 | |
165 def __init__(self): | |
166 SimplePanel.__init__(self) | |
167 _panel = HTMLPanel(" ") | |
168 #_panel.setHeight('100%') | |
169 #_panel.setWidth('100%') | |
170 self.add(_panel) | |
171 self.setHeight('100%') | |
172 DropWidget.__init__(self) | |
173 | |
174 def onDragEnter(self, event): | |
175 print "Empty Panel: onDragEnter" | |
176 self.addStyleName('dragover') | |
177 DOM.eventPreventDefault(event) | |
178 | |
179 def onDragLeave(self, event): | |
180 print "Empty Panel: onDragLeave" | |
181 self.removeStyleName('dragover') | |
182 | |
183 def onDragOver(self, event): | |
184 print "Empty Panel: onDragOver" | |
185 DOM.eventPreventDefault(event) | |
186 | |
187 def onDrop(self, event): | |
188 print "Empty Panel: onDragOver" | |
189 dt = event.dataTransfer | |
190 #'text', 'text/plain', and 'Text' are equivalent. | |
191 try: | |
192 item = dt.getData("text/plain") | |
193 print "message: %s" % item | |
194 except: | |
195 print "no message found" | |
196 DOM.eventPreventDefault(event) | |
197 | |
198 | |
199 | |
161 class MicroblogEntry(SimplePanel): | 200 class MicroblogEntry(SimplePanel): |
162 | 201 |
163 def __init__(self, body, author, timestamp): | 202 def __init__(self, body, author, timestamp): |
164 SimplePanel.__init__(self) | 203 SimplePanel.__init__(self) |
165 | 204 |
166 _datetime = datetime.fromtimestamp(timestamp) | 205 _datetime = datetime.fromtimestamp(timestamp) |
167 | 206 |
168 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>" % | 207 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>" % |
169 {"author": author, | 208 {"author": author, |
170 "timestamp": _datetime, | 209 "timestamp": _datetime, |
171 "body": body} | 210 "body": body} |
172 ) | 211 ) |
173 panel.setStyleName('microblogEntry') | 212 panel.setStyleName('microblogEntry') |
199 self._right.setHeight('100%') | 238 self._right.setHeight('100%') |
200 self.add(self._left) | 239 self.add(self._left) |
201 self.setCellWidth(self._left, "15%") | 240 self.setCellWidth(self._left, "15%") |
202 self.add(self._right) | 241 self.add(self._right) |
203 self.setCellWidth(self._right, "85%") | 242 self.setCellWidth(self._right, "85%") |
243 self.setHeight('100%') | |
204 | 244 |
205 def changePanel(self, idx, panel): | 245 def changePanel(self, idx, panel): |
206 print "panel:",panel | 246 print "panel:",panel |
207 print "idx:",idx | 247 print "idx:",idx |
208 self._right.setWidget(0,idx,panel) | 248 self._right.setWidget(0,idx,panel) |
241 self.contactPanel = ContactPanel(self) | 281 self.contactPanel = ContactPanel(self) |
242 self.panel = MainPanel(self) | 282 self.panel = MainPanel(self) |
243 self.middle_panel = self.panel.middle_panel | 283 self.middle_panel = self.panel.middle_panel |
244 self.mpanels = [MicroblogPanel()] | 284 self.mpanels = [MicroblogPanel()] |
245 self.middle_panel.changePanel(1,self.mpanels[0]) | 285 self.middle_panel.changePanel(1,self.mpanels[0]) |
286 self.middle_panel.changePanel(0,EmptyPanel()) | |
287 self.middle_panel.changePanel(2,EmptyPanel()) | |
246 self._dialog = None | 288 self._dialog = None |
247 RootPanel().add(self.panel) | 289 RootPanel().add(self.panel) |
248 self._register = RegisterCall() | 290 self._register = RegisterCall() |
249 self._register.call('isRegistered',self._isRegisteredCB) | 291 self._register.call('isRegistered',self._isRegisteredCB) |
250 | 292 |