Esempio n. 1
0
  public void updateCharts(List<?> statsForApp) {
    Chart chart = new Chart();
    int page = myAdapter.getCurrentPage();
    int column = myAdapter.getCurrentColumn();

    int position = -1;
    List<View> charts = new ArrayList<View>();

    int pos = 0;
    for (int i = 0; i < myAdapter.getNumPages(); i++)
      for (int j = 1; j < myAdapter.getNumCharts(i); j++) {
        int pageColumn[] = new int[3];
        View chartView = myAdapter.buildChart(getActivity(), chart, statsForApp, i, j);
        /*
         * if(chartView==null) {
         * Log.i(LOG_TAG,"Ignoring chart p="+i+" c="+j+"for class="
         * +this.getClass().toString()); continue; }
         */
        Gallery.LayoutParams params =
            new Gallery.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
        chartView.setLayoutParams(params);
        pageColumn[0] = i;
        pageColumn[1] = j;
        pageColumn[2] = myAdapter.getNumCharts(i);
        if (i == page && j == column) position = pos;
        pos++;
        chartView.setTag(pageColumn);
        charts.add(chartView);
      }
    chartGallery.setIgnoreLayoutCalls(false);
    chartGalleryAdapter.setViews(charts);
    if (position >= 0) chartGallery.setSelection(position);
    chartGalleryAdapter.notifyDataSetChanged();
    chartGallery.invalidate();
  }
Esempio n. 2
0
  public void setCurrentChart(int page, int column) {
    if (chartGalleryAdapter.getViews().isEmpty()) {
      // chart not initialized yet
      return;
    }

    int pos = 0;
    for (View view : chartGalleryAdapter.getViews()) {
      int pageColumn[] = (int[]) view.getTag();
      if (page == pageColumn[0] && column == pageColumn[1]) {
        chartGallery.setSelection(pos, false);
        myAdapter.setCurrentChart(page, column);
        return;
      }
      pos++;
    }
    throw new IndexOutOfBoundsException("page=" + page + " column=" + column);
  }