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
}\r
\r
public void clearAndReset() {\r
+ logger.info("clearAndReset()");\r
this.resultSetSize = -1;\r
this.cacheStart = 0;\r
this.cacheEnd = 0;\r
}\r
\r
public void clearCache() {\r
+ logger.info("clearCache()");\r
cache.clear();\r
docSelection.clear();\r
}\r
}\r
\r
public void fireListEvent() {\r
+ logger.info("fireListEvent()");\r
clearCache();\r
fireEvent(ListDataEvent.STRUCTURE_CHANGED, -1, -1);\r
}\r
* 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