示例#1
0
  /** 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--;
      }
    }
  }