/** Called from bicat.gui.window.Filter */ public void filter( int data, int list, int idx, int minG, int maxG, int minC, int maxC, int nrBCs, int overlap) { if (engine.isDebug()) System.out.println("Starting filter ..."); Dataset BcR = (Dataset) engine.getDatasetList().get(data); LinkedList biclusterList = (LinkedList) BcR.getBCsList(list).get(idx); int limit_G = BcR.getGeneCount(); int limit_C = BcR.getWorkingChipCount(); biclusterList = filterBySize(biclusterList, minG, maxG, minC, maxC, limit_G, limit_C); biclusterList = filterByOverlap(biclusterList, nrBCs, overlap); // do management ... BcR.updateFilterBiclustersLists(biclusterList, list, idx); if (owner != null) { owner.updateFilterMenu(); owner.buildTree(); owner.getTree().setSelectionPath(owner.getPreprocessedPath()); int row = owner.getTree().getRowCount() - 1; while (row >= 0) { owner.getTree().collapseRow(row); row--; } } }