From: Sweidan Omar Date: Mon, 29 Nov 2021 09:14:11 +0000 (+0000) Subject: CachedListModel: listamegjelenítés változtatása X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=edb5085fadc8917852d6cc1f8080c63fa136c842;p=mediacube.git CachedListModel: listamegjelenítés változtatása git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C32369 --- diff --git a/server/user.mediacube.gui/src/user/jobengine/zk/model/CachedListModel.java b/server/user.mediacube.gui/src/user/jobengine/zk/model/CachedListModel.java index 22d04455..8eeb7924 100644 --- a/server/user.mediacube.gui/src/user/jobengine/zk/model/CachedListModel.java +++ b/server/user.mediacube.gui/src/user/jobengine/zk/model/CachedListModel.java @@ -21,13 +21,14 @@ import user.jobengine.db.SearchOptions; import user.jobengine.search.SearchResult; /** - * Cachelt modell nagy listakhoz. Cacheli a dokumentumokat a megadott meretben. - * Az utoljara elkert index +- cacheSize/2 + * Cache-elt modell nagy listakhoz. Cacheli a dokumentumokat a megadott + * meretben. Az utoljara elkert index +- cacheSize/2 */ public class CachedListModel extends ListModelList { private static final Logger logger = LogManager.getLogger(); private int cacheSize = 200; private HashMap cache = new HashMap(); + private boolean cachedMode = true; private String searchValue = null; private int resultSetSize = -1; @@ -52,6 +53,7 @@ public class CachedListModel extends ListModelList { } public void clearAndReset() { + logger.info("clearAndReset()"); this.resultSetSize = -1; this.cacheStart = 0; this.cacheEnd = 0; @@ -60,6 +62,7 @@ public class CachedListModel extends ListModelList { } public void clearCache() { + logger.info("clearCache()"); cache.clear(); docSelection.clear(); } @@ -72,6 +75,7 @@ public class CachedListModel extends ListModelList { } public void fireListEvent() { + logger.info("fireListEvent()"); clearCache(); fireEvent(ListDataEvent.STRUCTURE_CHANGED, -1, -1); } @@ -125,57 +129,61 @@ public class CachedListModel extends ListModelList { * indexhez kepest */ private void loadCache(int forIndex) { - try { - // logger.info("Loading {}", forIndex); - clearCache(); - logger.info("clearCache()"); - int halfSize = this.cacheSize / 2; - int rowLimit = this.cacheSize; // 200 - int startPos = 0; - if ((forIndex - halfSize) > 0) { // forIndex=60 startPos=0 - // cache=0-200, forIndex=150 - // startPos=50 cache=50-250 - startPos = (forIndex - halfSize); - } - logger.info("startPos= {}", startPos); - - int endPos = (startPos + rowLimit); - endPos = ((this.resultSetSize < 0) || (endPos <= this.resultSetSize)) ? endPos : this.resultSetSize; - logger.info("endPos= {}", endPos); + if (cachedMode) { + try { + // logger.info("Loading {}", forIndex); + logger.info("clearCache()"); + clearCache(); + int halfSize = this.cacheSize / 2; + int rowLimit = this.cacheSize; // 200 + int startPos = 0; + if ((forIndex - halfSize) > 0) { // forIndex=60 startPos=0 + // cache=0-200, forIndex=150 + // startPos=50 cache=50-250 + startPos = (forIndex - halfSize); + } + logger.info("startPos= {}", startPos); - SearchResult sr = createSearchResult(startPos, endPos); + int endPos = (startPos + rowLimit); + endPos = ((this.resultSetSize < 0) || (endPos <= this.resultSetSize)) ? endPos : this.resultSetSize; + logger.info("endPos= {}", endPos); - if (sr != null) { + SearchResult sr = createSearchResult(startPos, endPos); - if (this.resultSetSize < 0) { - this.resultSetSize = (int) sr.getItemCount(); - } + if (sr != null) { - List resList = sr.getItems(); - if (resList != null) { - for (int c = 0; c < resList.size(); c++) { - cache.put(startPos + c, resList.get(c)); + if (this.resultSetSize < 0) { + this.resultSetSize = (int) sr.getItemCount(); + } + this.cacheSize = resultSetSize; + logger.info(cacheSize); + + List resList = sr.getItems(); + if (resList != null) { + for (int c = 0; c < resList.size(); c++) { + cache.put(startPos + c, resList.get(c)); + } } - } - cacheStart = startPos + 1; - cacheEnd = cacheStart + (cache.size() == 0 ? 0 : (cache.size() - 1)); - BindUtils.postNotifyChange(null, null, this, "*"); - fireCacheEvent(new Event(Events.ON_SCROLL)); + cacheStart = startPos + 1; + cacheEnd = cacheStart + (cache.size() == 0 ? 0 : (cache.size() - 1)); + BindUtils.postNotifyChange(null, null, this, "*"); + fireCacheEvent(new Event(Events.ON_SCROLL)); + } + } catch (Exception e) { + fireCacheEvent(new Event(Events.ON_ERROR, null, e)); + // ki kell nullazni, egybkent tobbszeros lekerdezes van + resultSetSize = 0; } - } catch (Exception e) { - fireCacheEvent(new Event(Events.ON_ERROR, null, e)); - // ki kell nullazni, egybkent tobbszeros lekerdezes van - resultSetSize = 0; } } // kintrol is hivhatjak public void reinit() { + logger.info("reinit()"); this.resultSetSize = -1; this.cacheStart = 0; this.cacheEnd = 0; clearCache(); } - } \ No newline at end of file