kivyblocks/kivyblocks/objectViewer.py
2021-08-15 16:57:20 +08:00

72 lines
1.7 KiB
Python

from kivy.utils import platform
from .responsivelayout import VResponsiveLayout
from .utils import isHandHold
from .paging import RelatedLoader
"""
options format
{
box_width:optional, if set, the child width
dataurl: url to get data
page_rows:records per read
viewer:{
widgettype:an class name to show the object
options:{
}
},
binds:[
bind info
]
}
"""
class ObjectViewer(VResponsiveLayout):
def __init__(self, dataurl=None, viewer={},
page_rows=25,params={},**options):
super().__init__(**options)
self.options = options
self.dataUrl = dataurl
self.params = params
self.viewer = viewer
self.page_rows = page_rows
self.initflag = False
def setScrollPos(self,pos):
print('setScrollPos(),pos=',pos)
self.scroll_y = pos
def sizeChangedWork(self,v=None):
super().sizeChangedWork()
if not self.initflag:
self.initflag = True
self.loader = RelatedLoader(
adder=self.showObject,
remover=self.remove_widget,
locater=self.setScrollPos,
page_rows=self.page_rows,
dataurl=self.dataUrl,
target=self,
params=self.params,
method=self.options.get('method','GET')
)
self.loader.loadPage(1)
print('ObjectViewer:::::::::::::self.size=',self.size)
def on_scroll_stop(self,o,v=None):
return
print('on_scroll_stop(), self.scroll_y=', self.scroll_y,
self._inner.pos,
self._inner.size,
self.size)
if self.scroll_y >=0.999:
print('on_scroll_stop(), move_up')
self.loader.loadPreviousPage()
if self.scroll_y <= 0.001:
print('on_scroll_stop(), move_down')
self.loader.loadNextPage()
def showObject(self,rec,**kw):
pass