//package cn.flightfeather.thirdapp.dataanalysis;
|
//
|
//import android.content.Context;
|
//import android.graphics.Color;
|
//import android.os.Bundle;
|
//import android.support.annotation.Nullable;
|
//import android.support.v4.app.Fragment;
|
//import android.support.v7.widget.DividerItemDecoration;
|
//import android.support.v7.widget.LinearLayoutManager;
|
//import android.support.v7.widget.RecyclerView;
|
//import android.view.LayoutInflater;
|
//import android.view.View;
|
//import android.view.ViewGroup;
|
//import android.widget.ImageView;
|
//import android.widget.TextView;
|
//
|
//import com.github.mikephil.charting.animation.Easing;
|
//import com.github.mikephil.charting.charts.BarChart;
|
//import com.github.mikephil.charting.components.AxisBase;
|
//import com.github.mikephil.charting.components.Description;
|
//import com.github.mikephil.charting.components.XAxis;
|
//import com.github.mikephil.charting.components.YAxis;
|
//import com.github.mikephil.charting.data.BarData;
|
//import com.github.mikephil.charting.data.BarDataSet;
|
//import com.github.mikephil.charting.data.BarEntry;
|
//import com.github.mikephil.charting.formatter.IAxisValueFormatter;
|
//import com.github.mikephil.charting.formatter.PercentFormatter;
|
//
|
//import java.text.DecimalFormat;
|
//import java.text.SimpleDateFormat;
|
//import java.util.ArrayList;
|
//import java.util.List;
|
//
|
//import butterknife.BindView;
|
//import butterknife.ButterKnife;
|
//import butterknife.Unbinder;
|
//import cn.flightfeather.thirdapp.R;
|
//import cn.flightfeather.thirdapp.adapter.AllRecyclerViewAdapter;
|
//import cn.flightfeather.thirdapp.bean.vo.TaskVo;
|
//import cn.flightfeather.thirdapp.util.CommonUtils;
|
//import cn.flightfeather.thirdapp.view.ScrollTextView;
|
//
|
///**
|
// * 2018.11.09
|
// * @author riku
|
// * 顶层任务的详细进度信息
|
// */
|
//public class ProgressDetailFragment_B extends Fragment {
|
//
|
// private static final String ARG_PARAM1 = "taskProgressVo";//参数标签
|
//
|
// private TaskVo taskProgressVo;//需要activity传入一个具体的顶层任务对象,用于显示其详细进度信息
|
//
|
// private Unbinder unbinder;
|
//
|
// public ProgressDetailFragment_B() {
|
// // Required empty public constructor
|
// }
|
//
|
// /**
|
// * Use this factory method to create a new instance of
|
// * this fragment using the provided parameters.
|
// *
|
// * @param taskProgressVo
|
// * @return A new instance of fragment ProgressDetailFragment.
|
// */
|
// // TODO: Rename and change types and number of parameters
|
// public static ProgressDetailFragment_B newInstance(TaskVo taskProgressVo) {
|
// ProgressDetailFragment_B fragment = new ProgressDetailFragment_B();
|
// Bundle args = new Bundle();
|
// args.putSerializable(ARG_PARAM1, taskProgressVo);
|
// fragment.setArguments(args);
|
// return fragment;
|
// }
|
//
|
// @Override
|
// public void onCreate(Bundle savedInstanceState) {
|
// super.onCreate(savedInstanceState);
|
// if (getArguments() != null) {
|
// taskProgressVo = (TaskVo) getArguments().getSerializable(ARG_PARAM1);
|
// }
|
// }
|
//
|
// @Override
|
// public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
// Bundle savedInstanceState) {
|
// View view = inflater.inflate(R.layout.dialog_anysis_sub_progress, container, false);
|
// unbinder = ButterKnife.bind(this, view);
|
// initUI();
|
// initStandardBarchart();
|
// return view;
|
// }
|
//
|
//
|
// @Override
|
// public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
|
// super.onViewCreated(view, savedInstanceState);
|
//
|
// }
|
//
|
//
|
// @Override
|
// public void onAttach(Context context) {
|
// super.onAttach(context);
|
// }
|
//
|
// @Override
|
// public void onDetach() {
|
// super.onDetach();
|
// }
|
//
|
// @Override
|
// public void onDestroyView() {
|
// super.onDestroyView();
|
// unbinder.unbind();
|
// }
|
//
|
// //<editor-fold desc="初始化界面UI">
|
// private final static String NOTASK = "无任务";
|
//
|
// @BindView(R.id.tv_top_task)
|
// ScrollTextView tv_top_task;
|
//
|
// @BindView(R.id.iv_top_task)
|
// ImageView iv_top_task;
|
//
|
// @BindView(R.id.tv_total_progress)
|
// TextView tv_total_progress;
|
//
|
// @BindView(R.id.tv_my_progress)
|
// TextView tv_my_progress;
|
//
|
// @BindView(R.id.rv_dialog_task_progress)
|
// RecyclerView rv_dialog_task_progress;
|
//
|
// private void initUI(){
|
// final DecimalFormat decimalFormat = new DecimalFormat("#0.00");
|
// tv_total_progress.setSelected(true);
|
// tv_top_task.setText(taskProgressVo.getName());
|
// //根据任务类型选择不同的图标
|
// iv_top_task.setImageResource(CommonUtils.getIconByTaskType(taskProgressVo.getTypeno().toString()));
|
// //数据
|
// ArrayList<TaskVo> daytaskprogresslist = new ArrayList<>();
|
// daytaskprogresslist.addAll(taskProgressVo.getDaytaskList());//当前顶层任务的所有日任务
|
//
|
// //设置列表显示对其方式
|
// LinearLayoutManager layoutManager1 = new LinearLayoutManager(getActivity());
|
// layoutManager1.setOrientation(LinearLayoutManager.VERTICAL);
|
// rv_dialog_task_progress.setLayoutManager(layoutManager1);
|
// rv_dialog_task_progress.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL));
|
// //**总进度列表
|
// final AllRecyclerViewAdapter<TaskVo> adapter1 = new AllRecyclerViewAdapter<TaskVo>(daytaskprogresslist, R.layout.item_day_task_progress, getActivity()) {
|
// @Override
|
// public void bindView(MyViewHolder holder, TaskVo obj, boolean bool, int position) {
|
// SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM月dd日");
|
// holder.setText(R.id.tv_item1, simpleDateFormat.format(obj.getStarttime()));
|
// holder.setText(R.id.tv_item2, String.valueOf(obj.getCompletetask()) + "/" + String.valueOf(obj.getTotaltask()));
|
// if (obj.getTotaltask() == 0)
|
// holder.setText(R.id.tv_item3, NOTASK);
|
// else
|
// holder.setText(R.id.tv_item3, decimalFormat.format(((float)obj.getCompletetask() / (float)obj.getTotaltask() * 100)) + "%");
|
// }
|
// };
|
// //**用户进度列表
|
// final AllRecyclerViewAdapter<TaskVo> adapter2 = new AllRecyclerViewAdapter<TaskVo>(daytaskprogresslist, R.layout.item_day_task_progress, getActivity()) {
|
// @Override
|
// public void bindView(MyViewHolder holder, TaskVo obj, boolean bool, int position) {
|
// SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM月dd日");
|
// holder.setText(R.id.tv_item1, simpleDateFormat.format(obj.getStarttime()));
|
// holder.setText(R.id.tv_item2, String.valueOf(obj.getMycompletetask()) + "/" + String.valueOf(obj.getMytotaltask()));
|
// if (obj.getMytotaltask() == 0)
|
// holder.setText(R.id.tv_item3, NOTASK);
|
// else
|
// holder.setText(R.id.tv_item3, decimalFormat.format(((float)obj.getMycompletetask() / (float)obj.getMytotaltask() * 100)) + "%");
|
// }
|
// };
|
// rv_dialog_task_progress.setAdapter(adapter1);
|
//
|
// tv_total_progress.setOnClickListener(new View.OnClickListener() {
|
// @Override
|
// public void onClick(View v) {
|
// tv_total_progress.setSelected(true);
|
// tv_my_progress.setSelected(false);
|
// tv_total_progress.setTextColor(Color.WHITE);
|
// tv_my_progress.setTextColor(Color.BLACK);
|
// rv_dialog_task_progress.setAdapter(adapter1);
|
// }
|
// });
|
//
|
// tv_my_progress.setOnClickListener(new View.OnClickListener() {
|
// @Override
|
// public void onClick(View v) {
|
// tv_my_progress.setSelected(true);
|
// tv_total_progress.setSelected(false);
|
// tv_my_progress.setTextColor(Color.WHITE);
|
// tv_total_progress.setTextColor(Color.BLACK);
|
// rv_dialog_task_progress.setAdapter(adapter2);
|
// }
|
// });
|
// }
|
// //</editor-fold>
|
//
|
//
|
// //<editor-fold desc="初始化任务进度直方图">
|
// @BindView(R.id.barChart_progress)
|
// BarChart mStandardChart;//每个顶层任务的具体直方图数据
|
// /*
|
// 柱状图,顶层任务的完成百分比
|
// */
|
// private void initStandardBarchart() {
|
//
|
// List<TaskVo> daytaskprogresslist = taskProgressVo.getDaytaskList();//当前顶层任务的所有日任务
|
//
|
// //坐标轴
|
// XAxis xAxis = mStandardChart.getXAxis();
|
// xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
|
// xAxis.setDrawGridLines(false);
|
// xAxis.setGranularity(1f);//坐标间隔
|
//// xAxis.setLabelCount(2, true);//进入时的标签个数
|
// xAxis.setCenterAxisLabels(true);//标签处于图表中间
|
// xAxis.setAxisMinimum(0f);
|
// xAxis.setValueFormatter(new MyDateFormmater(daytaskprogresslist));
|
//
|
// YAxis rightAxis = mStandardChart.getAxisRight();
|
// rightAxis.setEnabled(false);
|
//// rightAxis.setDrawGridLines(false);
|
//// rightAxis.setDrawAxisLine(false);
|
//// rightAxis.setDrawLabels(false);
|
//
|
// YAxis leftAxis = mStandardChart.getAxisLeft();
|
// leftAxis.setDrawGridLines(false);
|
// leftAxis.setDrawAxisLine(false);
|
// leftAxis.setDrawLabels(false);
|
// leftAxis.setDrawTopYLabelEntry(true);
|
// leftAxis.setZeroLineColor(Color.BLACK);
|
// leftAxis.setDrawZeroLine(true);
|
// leftAxis.setAxisMinimum(0f);
|
// leftAxis.setAxisMaximum(100f);
|
// leftAxis.setValueFormatter(new PercentFormatter());
|
//// LimitLine limitLine = new LimitLine(100f);
|
//// limitLine.setLineColor(Color.BLACK);
|
//// leftAxis.addLimitLine(limitLine);
|
//
|
// //Entry数据
|
// List<BarEntry> totalEntries = new ArrayList<>();;//每日总任务进度
|
// List<BarEntry> userEntries = new ArrayList<>();;//每日用户进度
|
// //Test*********
|
//// totalEntries.add(new BarEntry(0f, 0f));
|
//// totalEntries.add(new BarEntry(1f, 0f));
|
//// totalEntries.add(new BarEntry(2f, 40f));
|
//// totalEntries.add(new BarEntry(3f, 70f));
|
//// totalEntries.add(new BarEntry(4f, 80f));
|
//// totalEntries.add(new BarEntry(5f, 50f));
|
//// totalEntries.add(new BarEntry(6f, 30f));
|
//// totalEntries.add(new BarEntry(7f, 10f));
|
////
|
//// userEntries.add(new BarEntry(0f, 0f));
|
//// userEntries.add(new BarEntry(1f, 60f));
|
//// userEntries.add(new BarEntry(2f, 70));
|
//// userEntries.add(new BarEntry(3f, 70));
|
//// userEntries.add(new BarEntry(4f, 35));
|
//// userEntries.add(new BarEntry(5f, 35));
|
//// userEntries.add(new BarEntry(6f, 35));
|
//// userEntries.add(new BarEntry(7f, 35));
|
// //*************
|
//
|
// for (int i = 0; i < daytaskprogresslist.size(); i++){//初始化数据
|
// float y1 = daytaskprogresslist.get(i).getTotaltask();
|
// if (y1 != 0)
|
// y1 = ((float)daytaskprogresslist.get(i).getCompletetask() / (float) daytaskprogresslist.get(i).getTotaltask() * 100);
|
// else
|
// y1 = 100f;
|
// totalEntries.add(new BarEntry((float)i, y1));
|
//
|
// float y2 = daytaskprogresslist.get(i).getMytotaltask();
|
// if (y2 != 0)
|
// y2 = ((float)daytaskprogresslist.get(i).getMycompletetask() / (float)daytaskprogresslist.get(i).getMytotaltask() * 100);
|
// else
|
// y2 = 100f;
|
// userEntries.add(new BarEntry((float)i, y2));
|
// }
|
//
|
// BarDataSet barDataSetTotal = new BarDataSet(totalEntries, "总进度");
|
// BarDataSet barDataSetUser = new BarDataSet(userEntries, "我的进度");
|
// barDataSetTotal.setAxisDependency(YAxis.AxisDependency.LEFT);
|
//// barDataSetTotal.setAxisDependency(YAxis.AxisDependency.RIGHT);
|
// barDataSetUser.setAxisDependency(YAxis.AxisDependency.LEFT);
|
//// barDataSetUser.setAxisDependency(YAxis.AxisDependency.RIGHT);
|
// barDataSetTotal.setColor(Color.argb(128, 255, 0, 0));
|
// barDataSetUser.setColor(Color.argb(128, 0, 255, 0));
|
//
|
// float groupSpace = 0.06f;
|
// float barSpace = 0.02f; // x2 dataset
|
// float barWidth = 0.45f; // x2 dataset
|
// // (0.02 + 0.45) * 2 + 0.06 = 1.00 -> interval per "group"
|
// BarData barData = new BarData(barDataSetTotal, barDataSetUser);
|
//// BarData barData = new BarData(barDataSetTotal);
|
// barData.setValueFormatter(new PercentFormatter());
|
// barData.setValueTextSize(8f);
|
// barData.setHighlightEnabled(false);//高亮
|
// barData.setBarWidth(barWidth);
|
// if (!totalEntries.isEmpty() || !userEntries.isEmpty()) {//数据全为空时,不显示
|
// mStandardChart.setData(barData);
|
// mStandardChart.setFitBars(true);//x轴坐标显示对应每个bar
|
// mStandardChart.groupBars(0f, groupSpace, barSpace);
|
// }
|
//
|
// //General Chart Settings & Styling
|
// mStandardChart.setNoDataText("任务还未开始执行,暂无数据");//Sets the title that should appear if the chart is empty.
|
//// mStandardChart.setDrawBorders(false);//Enables / disables drawing the chart borders (lines surrounding the chart).
|
// //图标描述
|
// Description description = new Description();
|
// description.setText("");
|
// mStandardChart.setDescription(description);
|
//
|
//// mStandardChart.setTouchEnabled(true);//触摸
|
//// mStandardChart.setDragEnabled(true);//拖拽
|
// mStandardChart.setScaleEnabled(false);//缩放
|
//
|
// mStandardChart.animateY(1400, Easing.EasingOption.EaseOutSine);
|
// mStandardChart.fitScreen();
|
//
|
// //视图设置
|
// mStandardChart.setVisibleXRangeMaximum(6f);
|
// mStandardChart.setVisibleXRangeMinimum(6f);
|
//
|
//// mStandardChart.invalidate();
|
//
|
// }
|
// //</editor-fold>
|
//
|
// class MyDateFormmater implements IAxisValueFormatter {
|
//
|
// DecimalFormat mFormat;
|
// List<TaskVo> daytaskprogresslist;
|
// SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd日");
|
//
|
// MyDateFormmater(List<TaskVo> daytaskprogresslist) {
|
// mFormat = new DecimalFormat("###,###,##0");
|
// this.daytaskprogresslist = daytaskprogresslist;
|
// }
|
//
|
// @Override
|
// public String getFormattedValue(float value, AxisBase axis) {
|
// try {
|
// return simpleDateFormat.format(daytaskprogresslist.get((int)value).getStarttime());
|
// }catch (Exception e){
|
// e.printStackTrace();
|
// return "";
|
// }
|
// }
|
// }
|
//
|
//}
|