Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.bertho.tdashboard.fragment;
- import android.app.ProgressDialog;
- import android.os.Bundle;
- import android.support.design.widget.Snackbar;
- import android.support.v4.app.Fragment;
- import android.util.Log;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.ProgressBar;
- import android.widget.Toast;
- import com.bertho.tdashboard.R;
- import com.bertho.tdashboard.model.NewVisitor;
- import com.bertho.tdashboard.model.NewVisitorResponse;
- import com.bertho.tdashboard.rest.ApiClient;
- import com.bertho.tdashboard.rest.ApiInterface;
- import java.util.ArrayList;
- import java.util.List;
- import butterknife.ButterKnife;
- import retrofit2.Call;
- import retrofit2.Callback;
- import retrofit2.Response;
- import lecho.lib.hellocharts.gesture.ZoomType;
- import lecho.lib.hellocharts.listener.ColumnChartOnValueSelectListener;
- import lecho.lib.hellocharts.model.Axis;
- import lecho.lib.hellocharts.model.Column;
- import lecho.lib.hellocharts.model.ColumnChartData;
- import lecho.lib.hellocharts.model.SubcolumnValue;
- import lecho.lib.hellocharts.util.ChartUtils;
- import lecho.lib.hellocharts.view.Chart;
- import lecho.lib.hellocharts.view.ColumnChartView;
- public class WebStaticFragment extends Fragment {
- private static final String TAG = WebStaticFragment.class.getSimpleName();
- List<NewVisitor> listVisitor;
- ProgressDialog progress;
- private static final int DEFAULT_DATA = 0;
- private static final int SUBCOLUMNS_DATA = 1;
- private static final int STACKED_DATA = 2;
- private static final int NEGATIVE_SUBCOLUMNS_DATA = 3;
- private static final int NEGATIVE_STACKED_DATA = 4;
- private ColumnChartView chart;
- private ColumnChartData data;
- private boolean hasAxes = true;
- private boolean hasAxesNames = true;
- private boolean hasLabels = false;
- private boolean hasLabelForSelected = false;
- private int dataType = DEFAULT_DATA;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- }
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View rootView = inflater.inflate(R.layout.fragment_statistic, container, false);
- ButterKnife.bind(this, rootView);
- chart = (ColumnChartView) rootView.findViewById(R.id.chart);
- chart.setOnValueTouchListener(new ValueTouchListener());
- listVisitor = new ArrayList<>();
- load();
- //generateDefaultData();
- return rootView;
- }
- private void load() {
- progress = ProgressDialog.show(getActivity(), "Retrieving Data", "Please wait...", true);
- progress.setIndeterminate(true);
- ApiInterface apiService = ApiClient.getVisitor().create(ApiInterface.class);
- Call<NewVisitorResponse> call = apiService.getVisitor();
- call.enqueue(new Callback<NewVisitorResponse>() {
- @Override
- public void onResponse(Call<NewVisitorResponse> call, Response<NewVisitorResponse> response) {
- listVisitor = response.body().getVisitor();
- // Please combine with generateDefaultData() function with listVisitor data
- }
- @Override
- public void onFailure(Call<NewVisitorResponse> call, Throwable t) {
- Log.d(TAG, "STATUS CODE : " + t.toString());
- Snackbar.make(getView(), "CONNECTION ERROR. PLEASE TRY AGAIN", Snackbar.LENGTH_LONG).setAction("Action", null).show();
- }
- });
- }
- private void generateDefaultData() {
- int numSubcolumns = 1;
- int numColumns = 10;
- // Column can have many subcolumns, here by default I use 1 subcolumn in each of 8 columns.
- List<Column> columns = new ArrayList<Column>();
- List<SubcolumnValue> values;
- for (int i = 0; i < numColumns; ++i) {
- values = new ArrayList<SubcolumnValue>();
- for (int j = 0; j < numSubcolumns; ++j) {
- values.add(new SubcolumnValue((float) Math.random() * 50f + 5, ChartUtils.pickColor()));
- }
- Column column = new Column(values);
- column.setHasLabels(hasLabels);
- column.setHasLabelsOnlyForSelected(hasLabelForSelected);
- columns.add(column);
- }
- data = new ColumnChartData(columns);
- if (hasAxes) {
- Axis axisX = new Axis();
- Axis axisY = new Axis().setHasLines(true);
- if (hasAxesNames) {
- axisX.setName("Tanggal");
- axisY.setName("Total Visitor");
- }
- data.setAxisXBottom(axisX);
- data.setAxisYLeft(axisY);
- } else {
- data.setAxisXBottom(null);
- data.setAxisYLeft(null);
- }
- chart.setColumnChartData(data);
- }
- private class ValueTouchListener implements ColumnChartOnValueSelectListener {
- @Override
- public void onValueSelected(int columnIndex, int subcolumnIndex, SubcolumnValue value) {
- Toast.makeText(getActivity(), "Total Visitor : " + value, Toast.LENGTH_SHORT).show();
- }
- @Override
- public void onValueDeselected() {
- // TODO Auto-generated method stub
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement