CachedListModel: listamegjelenítés változtatása
authorSweidan Omar <TFS\sweidan.omar>
Mon, 29 Nov 2021 09:14:11 +0000 (09:14 +0000)
committerSweidan Omar <TFS\sweidan.omar>
Mon, 29 Nov 2021 09:14:11 +0000 (09:14 +0000)
git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C32369

server/user.mediacube.gui/src/user/jobengine/zk/model/CachedListModel.java

index 22d044559ac127b7fac869bc43915c4cbb3096e1..8eeb7924a23bcc4251a00979d6fa4b3b8b38799e 100644 (file)
@@ -21,13 +21,14 @@ import user.jobengine.db.SearchOptions;
 import user.jobengine.search.SearchResult;\r
 \r
 /**\r
- * Cachelt modell nagy listakhoz. Cacheli a dokumentumokat a megadott meretben.\r
- * Az utoljara elkert index +- cacheSize/2\r
+ * Cache-elt modell nagy listakhoz. Cacheli a dokumentumokat a megadott\r
+ * meretben. Az utoljara elkert index +- cacheSize/2\r
  */\r
 public class CachedListModel extends ListModelList<ArchivedMedia> {\r
        private static final Logger logger = LogManager.getLogger();\r
        private int cacheSize = 200;\r
        private HashMap<Integer, ArchivedMedia> cache = new HashMap<Integer, ArchivedMedia>();\r
+       private boolean cachedMode = true;\r
 \r
        private String searchValue = null;\r
        private int resultSetSize = -1;\r
@@ -52,6 +53,7 @@ public class CachedListModel extends ListModelList<ArchivedMedia> {
        }\r
 \r
        public void clearAndReset() {\r
+               logger.info("clearAndReset()");\r
                this.resultSetSize = -1;\r
                this.cacheStart = 0;\r
                this.cacheEnd = 0;\r
@@ -60,6 +62,7 @@ public class CachedListModel extends ListModelList<ArchivedMedia> {
        }\r
 \r
        public void clearCache() {\r
+               logger.info("clearCache()");\r
                cache.clear();\r
                docSelection.clear();\r
        }\r
@@ -72,6 +75,7 @@ public class CachedListModel extends ListModelList<ArchivedMedia> {
        }\r
 \r
        public void fireListEvent() {\r
+               logger.info("fireListEvent()");\r
                clearCache();\r
                fireEvent(ListDataEvent.STRUCTURE_CHANGED, -1, -1);\r
        }\r
@@ -125,57 +129,61 @@ public class CachedListModel extends ListModelList<ArchivedMedia> {
         * indexhez kepest\r
         */\r
        private void loadCache(int forIndex) {\r
-               try {\r
-                       // logger.info("Loading {}", forIndex);\r
-                       clearCache();\r
-                       logger.info("clearCache()");\r
-                       int halfSize = this.cacheSize / 2;\r
-                       int rowLimit = this.cacheSize; // 200\r
-                       int startPos = 0;\r
-                       if ((forIndex - halfSize) > 0) { // forIndex=60 startPos=0\r
-                                                                                               // cache=0-200, forIndex=150\r
-                                                                                               // startPos=50 cache=50-250\r
-                               startPos = (forIndex - halfSize);\r
-                       }\r
-                       logger.info("startPos= {}", startPos);\r
-\r
-                       int endPos = (startPos + rowLimit);\r
-                       endPos = ((this.resultSetSize < 0) || (endPos <= this.resultSetSize)) ? endPos : this.resultSetSize;\r
-                       logger.info("endPos= {}", endPos);\r
+               if (cachedMode) {\r
+                       try {\r
+                               // logger.info("Loading {}", forIndex);\r
+                               logger.info("clearCache()");\r
+                               clearCache();\r
+                               int halfSize = this.cacheSize / 2;\r
+                               int rowLimit = this.cacheSize; // 200\r
+                               int startPos = 0;\r
+                               if ((forIndex - halfSize) > 0) { // forIndex=60 startPos=0\r
+                                                                                                       // cache=0-200, forIndex=150\r
+                                                                                                       // startPos=50 cache=50-250\r
+                                       startPos = (forIndex - halfSize);\r
+                               }\r
+                               logger.info("startPos= {}", startPos);\r
 \r
-                       SearchResult<ArchivedMedia> sr = createSearchResult(startPos, endPos);\r
+                               int endPos = (startPos + rowLimit);\r
+                               endPos = ((this.resultSetSize < 0) || (endPos <= this.resultSetSize)) ? endPos : this.resultSetSize;\r
+                               logger.info("endPos= {}", endPos);\r
 \r
-                       if (sr != null) {\r
+                               SearchResult<ArchivedMedia> sr = createSearchResult(startPos, endPos);\r
 \r
-                               if (this.resultSetSize < 0) {\r
-                                       this.resultSetSize = (int) sr.getItemCount();\r
-                               }\r
+                               if (sr != null) {\r
 \r
-                               List<ArchivedMedia> resList = sr.getItems();\r
-                               if (resList != null) {\r
-                                       for (int c = 0; c < resList.size(); c++) {\r
-                                               cache.put(startPos + c, resList.get(c));\r
+                                       if (this.resultSetSize < 0) {\r
+                                               this.resultSetSize = (int) sr.getItemCount();\r
+                                       }\r
+                                       this.cacheSize = resultSetSize;\r
+                                       logger.info(cacheSize);\r
+\r
+                                       List<ArchivedMedia> resList = sr.getItems();\r
+                                       if (resList != null) {\r
+                                               for (int c = 0; c < resList.size(); c++) {\r
+                                                       cache.put(startPos + c, resList.get(c));\r
+                                               }\r
                                        }\r
-                               }\r
 \r
-                               cacheStart = startPos + 1;\r
-                               cacheEnd = cacheStart + (cache.size() == 0 ? 0 : (cache.size() - 1));\r
-                               BindUtils.postNotifyChange(null, null, this, "*");\r
-                               fireCacheEvent(new Event(Events.ON_SCROLL));\r
+                                       cacheStart = startPos + 1;\r
+                                       cacheEnd = cacheStart + (cache.size() == 0 ? 0 : (cache.size() - 1));\r
+                                       BindUtils.postNotifyChange(null, null, this, "*");\r
+                                       fireCacheEvent(new Event(Events.ON_SCROLL));\r
+                               }\r
+                       } catch (Exception e) {\r
+                               fireCacheEvent(new Event(Events.ON_ERROR, null, e));\r
+                               // ki kell nullazni, egybkent tobbszeros lekerdezes van\r
+                               resultSetSize = 0;\r
                        }\r
-               } catch (Exception e) {\r
-                       fireCacheEvent(new Event(Events.ON_ERROR, null, e));\r
-                       // ki kell nullazni, egybkent tobbszeros lekerdezes van\r
-                       resultSetSize = 0;\r
                }\r
        }\r
 \r
        // kintrol is hivhatjak\r
        public void reinit() {\r
+               logger.info("reinit()");\r
                this.resultSetSize = -1;\r
                this.cacheStart = 0;\r
                this.cacheEnd = 0;\r
                clearCache();\r
        }\r
-\r
 }
\ No newline at end of file