Advertisement
joris

Fragment

Jul 13th, 2016
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.34 KB | None | 0 0
  1. package com.bertho.tdashboard.fragment;
  2.  
  3.  
  4. import android.app.ProgressDialog;
  5. import android.os.Bundle;
  6. import android.support.design.widget.Snackbar;
  7. import android.support.v4.app.Fragment;
  8. import android.util.Log;
  9. import android.view.LayoutInflater;
  10. import android.view.View;
  11. import android.view.ViewGroup;
  12. import android.widget.ProgressBar;
  13. import android.widget.Toast;
  14.  
  15. import com.bertho.tdashboard.R;
  16. import com.bertho.tdashboard.model.NewVisitor;
  17. import com.bertho.tdashboard.model.NewVisitorResponse;
  18. import com.bertho.tdashboard.rest.ApiClient;
  19. import com.bertho.tdashboard.rest.ApiInterface;
  20.  
  21. import java.util.ArrayList;
  22. import java.util.List;
  23.  
  24. import butterknife.ButterKnife;
  25. import retrofit2.Call;
  26. import retrofit2.Callback;
  27. import retrofit2.Response;
  28.  
  29. import lecho.lib.hellocharts.gesture.ZoomType;
  30. import lecho.lib.hellocharts.listener.ColumnChartOnValueSelectListener;
  31. import lecho.lib.hellocharts.model.Axis;
  32. import lecho.lib.hellocharts.model.Column;
  33. import lecho.lib.hellocharts.model.ColumnChartData;
  34. import lecho.lib.hellocharts.model.SubcolumnValue;
  35. import lecho.lib.hellocharts.util.ChartUtils;
  36. import lecho.lib.hellocharts.view.Chart;
  37. import lecho.lib.hellocharts.view.ColumnChartView;
  38.  
  39. public class WebStaticFragment extends Fragment {
  40.  
  41.     private static final String TAG = WebStaticFragment.class.getSimpleName();
  42.  
  43.     List<NewVisitor> listVisitor;
  44.  
  45.     ProgressDialog progress;
  46.  
  47.     private static final int DEFAULT_DATA = 0;
  48.     private static final int SUBCOLUMNS_DATA = 1;
  49.     private static final int STACKED_DATA = 2;
  50.     private static final int NEGATIVE_SUBCOLUMNS_DATA = 3;
  51.     private static final int NEGATIVE_STACKED_DATA = 4;
  52.  
  53.     private ColumnChartView chart;
  54.     private ColumnChartData data;
  55.     private boolean hasAxes = true;
  56.     private boolean hasAxesNames = true;
  57.     private boolean hasLabels = false;
  58.     private boolean hasLabelForSelected = false;
  59.     private int dataType = DEFAULT_DATA;
  60.  
  61.     @Override
  62.     public void onCreate(Bundle savedInstanceState) {
  63.         super.onCreate(savedInstanceState);
  64.     }
  65.  
  66.     @Override
  67.     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  68.  
  69.         View rootView = inflater.inflate(R.layout.fragment_statistic, container, false);
  70.         ButterKnife.bind(this, rootView);
  71.  
  72.         chart = (ColumnChartView) rootView.findViewById(R.id.chart);
  73.         chart.setOnValueTouchListener(new ValueTouchListener());
  74.  
  75.         listVisitor = new ArrayList<>();
  76.  
  77.         load();
  78.         //generateDefaultData();
  79.  
  80.         return rootView;
  81.     }
  82.  
  83.     private void load() {
  84.  
  85.         progress = ProgressDialog.show(getActivity(), "Retrieving Data", "Please wait...", true);
  86.         progress.setIndeterminate(true);
  87.  
  88.         ApiInterface apiService = ApiClient.getVisitor().create(ApiInterface.class);
  89.         Call<NewVisitorResponse> call = apiService.getVisitor();
  90.        
  91.  
  92.         call.enqueue(new Callback<NewVisitorResponse>() {
  93.             @Override
  94.             public void onResponse(Call<NewVisitorResponse> call, Response<NewVisitorResponse> response) {
  95.                 listVisitor = response.body().getVisitor();
  96.  
  97.                 // Please combine with generateDefaultData() function with listVisitor data
  98.             }
  99.  
  100.             @Override
  101.             public void onFailure(Call<NewVisitorResponse> call, Throwable t) {
  102.                 Log.d(TAG, "STATUS CODE : " + t.toString());
  103.                 Snackbar.make(getView(), "CONNECTION ERROR. PLEASE TRY AGAIN", Snackbar.LENGTH_LONG).setAction("Action", null).show();
  104.             }
  105.         });
  106.     }
  107.  
  108.     private void generateDefaultData() {
  109.         int numSubcolumns = 1;
  110.         int numColumns = 10;
  111.         // Column can have many subcolumns, here by default I use 1 subcolumn in each of 8 columns.
  112.         List<Column> columns = new ArrayList<Column>();
  113.         List<SubcolumnValue> values;
  114.  
  115.         for (int i = 0; i < numColumns; ++i) {
  116.  
  117.             values = new ArrayList<SubcolumnValue>();
  118.             for (int j = 0; j < numSubcolumns; ++j) {
  119.                 values.add(new SubcolumnValue((float) Math.random() * 50f + 5, ChartUtils.pickColor()));
  120.             }
  121.  
  122.             Column column = new Column(values);
  123.             column.setHasLabels(hasLabels);
  124.             column.setHasLabelsOnlyForSelected(hasLabelForSelected);
  125.             columns.add(column);
  126.         }
  127.  
  128.         data = new ColumnChartData(columns);
  129.  
  130.         if (hasAxes) {
  131.             Axis axisX = new Axis();
  132.             Axis axisY = new Axis().setHasLines(true);
  133.             if (hasAxesNames) {
  134.                 axisX.setName("Tanggal");
  135.                 axisY.setName("Total Visitor");
  136.             }
  137.             data.setAxisXBottom(axisX);
  138.             data.setAxisYLeft(axisY);
  139.         } else {
  140.             data.setAxisXBottom(null);
  141.             data.setAxisYLeft(null);
  142.         }
  143.  
  144.         chart.setColumnChartData(data);
  145.     }
  146.  
  147.     private class ValueTouchListener implements ColumnChartOnValueSelectListener {
  148.  
  149.         @Override
  150.         public void onValueSelected(int columnIndex, int subcolumnIndex, SubcolumnValue value) {
  151.             Toast.makeText(getActivity(), "Total Visitor : " + value, Toast.LENGTH_SHORT).show();
  152.         }
  153.  
  154.         @Override
  155.         public void onValueDeselected() {
  156.             // TODO Auto-generated method stub
  157.         }
  158.  
  159.     }
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement