예제 #1
0
        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
          mDbHelper.open();
          Cursor v = mDbHelper.getVehicles();
          v.moveToPosition(pos);
          int vNum = v.getInt(v.getColumnIndex(mDbHelper.KEY_ID));
          fuelCursor = mDbHelper.fetchAllFuelByV(vNum);
          if (fuelCursor.getCount() > 2) {
            // set layout
            if (mLayout.getChildCount() > 0) {
              mLayout.removeAllViews();
            }
            mLayout.addView(
                mChartView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
            mCurrentCostSeries.clear();
            mCurrentEffSeries.clear();
            vehicleChange = true;

            // clear any existing labels
            // mRenderer.clearYTextLabels();

            collectFuelStats(vNum, fuelCursor);
            drawChart();
            vehicleChange = false;
          } else {
            mLayout.removeAllViews();
            mDailyCost.setText("");
            // no data. barf on user
            Toast.makeText(
                    AnalyzeFuel.this,
                    getApplicationContext().getResources().getString(R.string.nodata_ned),
                    Toast.LENGTH_LONG)
                .show();
          }
          mDbHelper.close();
        }
  private void initView(View view) {
    // TODO Auto-generated method stub
    mLightView = (TextView) view.findViewById(R.id.info_light_data);

    XYSeries series = new XYSeries("");
    mDataset.addSeries(series);
    mCurrentSeries = series;
    XYSeriesRenderer renderer = new XYSeriesRenderer();
    mRenderer.addSeriesRenderer(renderer);
    renderer.setPointStyle(PointStyle.CIRCLE);
    renderer.setFillPoints(true);
    renderer.setDisplayChartValues(true);
    renderer.setDisplayChartValuesDistance(20);
    renderer.setChartValuesTextSize(15);
    mCurrentRenderer = renderer;

    // set data
    mCurrentSeries.clear();
    LinearLayout parentLayout = (LinearLayout) view.findViewById(R.id.chart_layout);
    mChartView = ChartFactory.getLineChartView(getActivity(), mDataset, mRenderer);
    parentLayout.addView(
        mChartView, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

    // 平均值
    Date day = TimeController.getToday();
    day = TimeController.getDayDiffDay(-6, day);
    for (int i = 1; i <= 7; i++) {
      mRenderer.addXTextLabel(i, TimeController.getDayString(day));
      Integer light = getAverageLight(day);
      mCurrentSeries.add(i, light);
      day = TimeController.getTomorrow(day);
    }

    mChartView.repaint();
  }
 private void refreshChart() {
   // TODO Auto-generated method stub
   Float lightNum = collection.getLight();
   int index = mDataCache.addLightData(lightNum);
   if (index == 1) {
     mCurrentSeries.clear();
   }
   mCurrentSeries.add(index, lightNum);
   mChartView.repaint();
 }
 @Override
 public void onClick(View v) {
   // TODO Auto-generated method stub
   // call stop
   myService.stopProcessing();
   tempUpdService.resetRunParams();
   tempBar.setProgress(50);
   // for (int i = 0; i < 5; i++) tempValues[i] = -50.00;
   maxTempValue = 0;
   liveGraphXYSeries.clear();
 }
  private void getObservations(Integer patientId, String fieldName) {

    ClinicAdapter ca = new ClinicAdapter();
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    ca.open();
    Cursor c = ca.fetchPatientObservation(patientId, fieldName);

    if (c != null && c.getCount() >= 0) {

      XYSeries series;
      if (mDataset.getSeriesCount() > 0) {
        series = mDataset.getSeriesAt(0);
        series.clear();
      } else {
        series = new XYSeries(fieldName);
        mDataset.addSeries(series);
      }

      int valueIntIndex = c.getColumnIndex(ClinicAdapter.KEY_VALUE_INT);
      int valueNumericIndex = c.getColumnIndex(ClinicAdapter.KEY_VALUE_NUMERIC);
      int encounterDateIndex = c.getColumnIndex(ClinicAdapter.KEY_ENCOUNTER_DATE);
      int dataTypeIndex = c.getColumnIndex(ClinicAdapter.KEY_DATA_TYPE);

      do {
        try {
          Date encounterDate = df.parse(c.getString(encounterDateIndex));
          int dataType = c.getInt(dataTypeIndex);

          double value;
          if (dataType == Constants.TYPE_INT) {
            value = c.getInt(valueIntIndex);
            series.add(encounterDate.getTime(), value);
          } else if (dataType == Constants.TYPE_DOUBLE) {
            value = c.getFloat(valueNumericIndex);
            series.add(encounterDate.getTime(), value);
          }
        } catch (ParseException e) {
          e.printStackTrace();
        }

      } while (c.moveToNext());
    }

    if (c != null) {
      c.close();
    }
    ca.close();
  }
  private void initView(View view) {
    // TODO Auto-generated method stub
    mLightView = (TextView) view.findViewById(R.id.info_light_data);

    XYSeries series = new XYSeries("");
    mDataset.addSeries(series);
    mCurrentSeries = series;
    XYSeriesRenderer renderer = new XYSeriesRenderer();
    mRenderer.addSeriesRenderer(renderer);
    renderer.setPointStyle(PointStyle.CIRCLE);
    renderer.setFillPoints(true);
    renderer.setDisplayChartValues(true);
    renderer.setDisplayChartValuesDistance(20);
    renderer.setChartValuesTextSize(15);
    mCurrentRenderer = renderer;

    // set data
    mCurrentSeries.clear();
    LinearLayout parentLayout = (LinearLayout) view.findViewById(R.id.chart_layout);
    mChartView = ChartFactory.getLineChartView(getActivity(), mDataset, mRenderer);
    parentLayout.addView(
        mChartView, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
  }
  private void initLine(XYSeries series) {

    Random r = new Random();
    xTemp = 0;
    yTemp = r.nextInt(100);

    count = series.getItemCount();
    if (count > 10) {
      count = 10;
    }

    for (int i = 0; i < count; i++) {
      x[i] = series.getX(i);
      y[i] = series.getY(i);
    }
    series.clear();

    series.add(xTemp, yTemp);

    for (int i = 0; i < count; i++) {
      series.add(x[i] + 1, y[i]);
    }
  }
예제 #8
0
  private void updateUI() {

    Weather weather = sensor.getLatestWeatherObject();

    if (weather != null) {
      humidity.setText(weather.getHumidity().toString());
      barometric.setText(weather.getBarometricKPA().toString());
      temperature.setText(weather.getTemperatureF().toString());

      if (weather.getTemperatureF() != 0) {

        tempArray.add(weather.getTemperatureF());

        if (tempArray.size() >= MAX_POINTS) {
          tempArray.remove(tempArray.size() - MAX_POINTS);
        }

        tempSeries.clear();
        int j = 0; // zero base our index regardless of position
        for (Double point : tempArray) {
          tempSeries.add(j, point);
          j++;
        }

        Double value = weather.getTemperatureF();

        if (tempMax - tempMin < 1) {
          tempMax = value + 1;
          tempMin = value - 1;

          tempRenderer.setYAxisMin(tempMin);
          tempRenderer.setYAxisMax(tempMax);
        } else {
          if (value < tempMin) {
            tempMin = value;
            tempRenderer.setYAxisMin(tempMin);
          }
          if (value > tempMax) {
            tempMax = value;
            tempRenderer.setYAxisMax(tempMax);
          }
        }

        tempChartView.repaint();
      }

      if (weather.getHumidity() != 0) {

        humiArray.add(weather.getHumidity());

        if (humiArray.size() >= MAX_POINTS) {
          humiArray.remove(humiArray.size() - MAX_POINTS);
        }

        humiSeries.clear();
        int j = 0; // zero base our index regardless of position
        for (Double point : humiArray) {
          humiSeries.add(j, point);
          j++;
        }

        Double value = weather.getHumidity();

        if (value < humiMin) {
          humiMin = value;
          humiRenderer.setYAxisMin(humiMin);
        }
        if (value > humiMax) {
          humiMax = value;
          humiRenderer.setYAxisMax(humiMax);
        }
        if (humiMin == humiMax) {
          humiMax = value + 1;
          humiMin = value - 1;

          humiRenderer.setYAxisMin(humiMin);
          humiRenderer.setYAxisMax(humiMax);
        }

        humiChartView.repaint();
      }

      if (weather.getHumidity() != 0) {

        presArray.add(weather.getBarometricKPA());

        if (presArray.size() >= MAX_POINTS) {
          presArray.remove(presArray.size() - MAX_POINTS);
        }

        presSeries.clear();
        int j = 0; // zero base our index regardless of position
        for (Double point : presArray) {
          presSeries.add(j, point);
          j++;
        }

        Double value = weather.getBarometricKPA();

        if (value < presMin) {
          presMin = value;
          presRenderer.setYAxisMin(presMin);
        }
        if (value > presMax) {
          presMax = value;
          presRenderer.setYAxisMax(presMax);
        }
        if (presMin == presMax) {
          presMax = value + 1;
          presMin = value - 1;

          presRenderer.setYAxisMin(presMin);
          presRenderer.setYAxisMax(presMax);
        }

        presChartView.repaint();
      }
    }
  }
 private void initBar(XYSeries series, double[] xValue, double[] yValue) {
   series.clear();
   for (int i = 0; i < yValue.length; i++) {
     series.add(xValue[i], yValue[i]);
   }
 }