This commit is contained in:
yumoqing 2020-05-03 13:14:27 +08:00
parent f39861154a
commit 2da40112bb

View File

@ -51,6 +51,7 @@ from kivycalendar import DatePicker
from kivy.factory import Factory from kivy.factory import Factory
from appPublic.dictObject import DictObject from appPublic.dictObject import DictObject
from appPublic.folderUtils import listFile
from .widgetExt.scrollwidget import ScrollWidget from .widgetExt.scrollwidget import ScrollWidget
from .widgetExt.binstateimage import BinStateImage from .widgetExt.binstateimage import BinStateImage
@ -91,6 +92,44 @@ class PressableLabel(ButtonBehavior, Text):
def on_press(self): def on_press(self):
pass pass
class FILEDataHandler(EventDispatcher):
def __init__(self, url, subfixes=[],params={}):
self.url = url
self.subfixes=subfixes
self.params = params
self.page_rows = self.params.get('page_rows',60)
self.page = self.params.get('page',1)
if not url.startswith('file://'):
raise Exception('%s is not a file url' % url)
self.files = [i for i in listFile(url[7:],suffixs=subfixes, \
rescursive=self.params.get('rescursive',False)) ]
self.total_files = len(self.files)
x = 0 if self.total_files % self.page_rows == 0 else 1
self.total_pages = self.total_files / self.page_rows + x
self.register_event_type('on_success')
self.register_event_type('on_error')
def on_success(self,d):
return
def on_error(self,e):
return
def handle(self,params={}):
d = {}
d['total'] = self.total_files
d['rows'] = []
p = self.params.copy()
p.update(params)
page = p.get('page')
for i in range(self.page_rows):
try:
r = self.files[page * self.page_rows + i]
d['rows'].append({'filename':r})
except:
break
self.dispatch('on_success',d)
class HTTPDataHandler(EventDispatcher): class HTTPDataHandler(EventDispatcher):
def __init__(self, url,method='GET',params={}, def __init__(self, url,method='GET',params={},
headers={}, headers={},