package com.hdl.photovoltaic.ui.home; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.adjustYAxisMaxAndMinValues; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureAreaChartThreshold; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureChartWithShadowStyle; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureColorfulChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureColorfulColumnChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureColorfulDataLabelsStepLineChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureColorfulGradientAreaChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureColorfulGradientColorAndColorfulDataLabelsStepAreaChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureColorfulGradientColorChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureColorfulGradientSplineChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureColorfulShadowSplineChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureDiscontinuousDataChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureGradientColorAreasplineChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureHexagonRadarChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureMaxAndMinDataLabelsForChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureMultiLevelStopsArrGradientColorAreasplineMixedLineChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureNightingaleRoseChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configurePentagonRadarChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureQuadrangleRadarChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureSpecialStyleColumnForNegativeDataMixedPositiveData; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureSpecialStyleColumnOfSingleDataElementChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureSpecialStyleMarkerOfSingleDataElementChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureTriangleRadarChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.connectNullsForSingleAASeriesElement; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.customAreasplineChartWithColorfulGradientColorZones; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.customBarChartHoverColorAndSelectColor; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.customChartHoverAndSelectHaloStyle; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.customColumnChartBorderStyleAndStatesHoverColor; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.customLineChartMarkerSymbolContent; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.customLineChartWithColorfulMarkersAndLines; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.customLineChartWithColorfulMarkersAndLines2; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.customNormalStackingChartDataLabelsContentAndStyle; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.customScatterChartMarkerSymbolContent; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.customSpecialStyleDataLabelOfSingleDataElementChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.customSplineChartMarkerStatesHoverStyle; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.customVerticalXAxisCategoriesLabelsByHTMLBreakLineTag; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.disableSomeOfLinesMouseTrackingEffect; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.disableSplineChartMarkerHoverEffect; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.doubleLayerPieChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.drawLineChartWithPointsCoordinates; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.freeStyleRoundedCornersStackingColumnChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.largeDataStackingColumnChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.lineChartsWithLargeDifferencesInTheNumberOfDataInDifferentSeriesElement; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.noMoreGroupingAndNestedColumnChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.noMoreGroupingAndOverlapEachOtherColumnChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.splineChartHoverLineWithNoChangeAndCustomMarkerStatesHoverStyle; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.topRoundedCornersStackingColumnChart; import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.upsideDownPyramidChart; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.Toast; import com.bigkoo.pickerview.builder.TimePickerBuilder; import com.bigkoo.pickerview.listener.OnTimeSelectListener; import com.bigkoo.pickerview.view.TimePickerView; import com.github.AAChartModel.AAChartCore.AAChartCreator.AAChartModel; import com.github.AAChartModel.AAChartCore.AAChartCreator.AAChartView; import com.github.AAChartModel.AAChartCore.AAChartCreator.AAMoveOverEventMessageModel; import com.github.AAChartModel.AAChartCore.AAChartEnum.AAChartType; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.base.CustomBaseFragment; import com.hdl.photovoltaic.config.ConstantManage; import com.hdl.photovoltaic.databinding.FragmentHomePageBinding; import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch; import com.hdl.photovoltaic.other.HdlLogLogic; import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; import java.util.Calendar; import java.util.Date; import io.dcloud.common.util.DensityUtils; /** * 首页模块 */ public class HomePageFragment extends CustomBaseFragment implements AAChartView.AAChartViewCallBack { FragmentHomePageBinding viewBinding; AAChartView aaChartView1; AAChartModel aaChartModel1; AAChartView aaChartView2; AAChartModel aaChartModel2; @Override public Object getContentView() { viewBinding = FragmentHomePageBinding.inflate(getLayoutInflater()); return viewBinding.getRoot(); } @Override public void onBindView(Bundle savedInstanceState) { viewBinding.homePageStationDataTitleTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setUpAAChartView(1); } }); viewBinding.yearMonthDayTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { timeSelectedView(); } }); timeSelectedView(); // viewBinding.test2.setOnClickListener(new View.OnClickListener() { // @Override // public void onClick(View v) { // setUpAAChartView(2); // } // }); } private void timeSelectedView(){ //时间选择器 Calendar selectedDate = Calendar.getInstance(); Calendar startDate = Calendar.getInstance(); //startDate.set(2013,1,1); Calendar endDate = Calendar.getInstance(); //endDate.set(2020,1,1); //正确设置方式 startDate.set(2024, 1, 1); endDate.set(2025, 4, 25); TimePickerView pvTime = new TimePickerBuilder(_mActivity, new OnTimeSelectListener() { @Override public void onTimeSelect(Date date, View v) {//选中事件回调 // tvTime.setText(getTime(date)); } }) .setType(new boolean[]{true, false, false, false, false, false})// 默认全部显示 .setCancelText("取消")//取消按钮文字 .setSubmitText("确定")//确认按钮文字 .setContentTextSize(18)//滚轮文字大小 .setTitleSize(18)//标题文字大小 .setTitleText("时间选择")//标题文字 .setOutSideCancelable(true)//点击屏幕,点在控件外部范围时,是否取消显示 .isCyclic(false)//是否循环滚动 .setTitleColor(_mActivity.getColor(R.color.text_90000000))//标题文字颜色 .setSubmitColor(_mActivity.getColor(R.color.text_38C494))//确定按钮文字颜色 .setCancelColor(_mActivity.getColor(R.color.text_40000000))//取消按钮文字颜色 .setTitleBgColor(_mActivity.getColor(R.color.text_FFFFFFFF))//标题背景颜色 Night mode .setBgColor(_mActivity.getColor(R.color.text_FFFFFFFF))//滚轮背景颜色 Night mode .setTextColorCenter(_mActivity.getColor(R.color.text_90000000)) .setDate(selectedDate)// 如果不设置的话,默认是系统时间*/ .setRangDate(startDate, endDate)//起始终止年月日设定 .setLabel("年", "月", "日", "时", "分", "秒")//默认设置为年月日时分秒 .isCenterLabel(false) //是否只显示中间选中项的label文字,false则每项item全部都带有label。 .isDialog(false)//是否显示为对话框样式 .setItemVisibleCount(17)//对话框高度 .setDividerColor(_mActivity.getColor(R.color.text_E1E1E1)) .setDecorView(viewBinding.wwwwww) // .setLineSpacingMultiplier(3f)// .build(); pvTime.show(); } private void setUpAAChartView(int value) { if (value == 1) { aaChartView1 = viewBinding.AAChartView; aaChartView1.callBack = this; aaChartModel1 = configureAAChartModel(); aaChartView1.aa_drawChartWithChartModel(aaChartModel1); } else if (value == 2) { // aaChartView2 = viewBinding.AAChartView2; aaChartView2.callBack = this; aaChartModel2 = configureColorfulColumnChart();// configureTheAAChartModel("colorfulColumnChart"); aaChartView2.aa_drawChartWithChartModel(aaChartModel2); } } private AAChartModel configureAAChartModel() { // Intent intent = getIntent(); String chartType = AAChartType.Area; int position = 0; aaChartModel1 = BasicChartComposer.configureAreaChart(); configureTheStyleForDifferentTypeChart(chartType, position); // configureViewsVisibility(chartType); return aaChartModel1; } private void configureTheStyleForDifferentTypeChart(String chartType, int position) { if ((chartType.equals(AAChartType.Area) || chartType.equals(AAChartType.Line)) && (position == 4 || position == 5)) { aaChartModel1 = BasicChartComposer.configureStepAreaChartAndStepLineChart(); } else if (chartType.equals(AAChartType.Column) || chartType.equals(AAChartType.Bar)) { aaChartModel1 = BasicChartComposer.configureColumnChartAndBarChart(); } else if (chartType.equals(AAChartType.Area) || chartType.equals(AAChartType.Areaspline)) { aaChartModel1 = BasicChartComposer.configureAreaChartAndAreasplineChartStyle(chartType); } else if (chartType.equals(AAChartType.Line) || chartType.equals(AAChartType.Spline)) { aaChartModel1 = BasicChartComposer.configureLineChartAndSplineChartStyle(chartType); } aaChartModel1.chartType = chartType; } private AAChartModel configureTheAAChartModel(String chartType) { switch (chartType) { case "colorfulChart": return configureColorfulChart(); case "gradientColorfulChart": return configureColorfulGradientColorChart(); case "discontinuousDataChart": return configureDiscontinuousDataChart(); case "colorfulColumnChart": return configureColorfulColumnChart(); case "nightingaleRoseChart": return configureNightingaleRoseChart(); case "chartWithShadowStyle": return configureChartWithShadowStyle(); case "colorfulGradientAreaChart": return configureColorfulGradientAreaChart(); case "colorfulGradientSplineChart": return configureColorfulGradientSplineChart(); case "gradientColorAreasplineChart": return configureGradientColorAreasplineChart(); case "SpecialStyleMarkerOfSingleDataElementChart": return configureSpecialStyleMarkerOfSingleDataElementChart(); case "SpecialStyleColumnOfSingleDataElementChart": return configureSpecialStyleColumnOfSingleDataElementChart(); case "AreaChartThreshold": return configureAreaChartThreshold(); case "customScatterChartMarkerSymbolContent": return customScatterChartMarkerSymbolContent(); case "customLineChartMarkerSymbolContent": return customLineChartMarkerSymbolContent(); case "TriangleRadarChart": return configureTriangleRadarChart(); case "QuadrangleRadarChart": return configureQuadrangleRadarChart(); case "PentagonRadarChart": return configurePentagonRadarChart(); case "HexagonRadarChart": return configureHexagonRadarChart(); case "adjustYAxisMaxAndMinValues": return adjustYAxisMaxAndMinValues(); case "customSpecialStyleDataLabelOfSingleDataElementChart": return customSpecialStyleDataLabelOfSingleDataElementChart(); case "customBarChartHoverColorAndSelectColor": return customBarChartHoverColorAndSelectColor(); case "customChartHoverAndSelectHaloStyle": return customChartHoverAndSelectHaloStyle(); case "customSplineChartMarkerStatesHoverStyle": return customSplineChartMarkerStatesHoverStyle(); case "splineChartHoverLineWithNoChangeAndCustomMarkerStatesHoverStyle": return splineChartHoverLineWithNoChangeAndCustomMarkerStatesHoverStyle(); case "customNormalStackingChartDataLabelsContentAndStyle": return customNormalStackingChartDataLabelsContentAndStyle(); case "upsideDownPyramidChart": return upsideDownPyramidChart(); case "doubleLayerPieChart": return doubleLayerPieChart(); case "disableSomeOfLinesMouseTrackingEffect": return disableSomeOfLinesMouseTrackingEffect(); case "configureColorfulShadowSplineChart": return configureColorfulShadowSplineChart(); case "configureColorfulDataLabelsStepLineChart": return configureColorfulDataLabelsStepLineChart(); case "configureColorfulGradientColorAndColorfulDataLabelsStepAreaChart": return configureColorfulGradientColorAndColorfulDataLabelsStepAreaChart(); case "disableSplineChartMarkerHoverEffect": return disableSplineChartMarkerHoverEffect(); case "configureMaxAndMinDataLabelsForChart": return configureMaxAndMinDataLabelsForChart(); case "customVerticalXAxisCategoriesLabelsByHTMLBreakLineTag": return customVerticalXAxisCategoriesLabelsByHTMLBreakLineTag(); case "noMoreGroupingAndOverlapEachOtherColumnChart": return noMoreGroupingAndOverlapEachOtherColumnChart(); case "noMoreGroupingAndNestedColumnChart": return noMoreGroupingAndNestedColumnChart(); case "topRoundedCornersStackingColumnChart": return topRoundedCornersStackingColumnChart(); case "freeStyleRoundedCornersStackingColumnChart": return freeStyleRoundedCornersStackingColumnChart(); case "customColumnChartBorderStyleAndStatesHoverColor": return customColumnChartBorderStyleAndStatesHoverColor(); case "customLineChartWithColorfulMarkersAndLines": return customLineChartWithColorfulMarkersAndLines(); case "customLineChartWithColorfulMarkersAndLines2": return customLineChartWithColorfulMarkersAndLines2(); case "drawLineChartWithPointsCoordinates": return drawLineChartWithPointsCoordinates(); case "configureSpecialStyleColumnForNegativeDataMixedPositiveData": return configureSpecialStyleColumnForNegativeDataMixedPositiveData(); case "configureMultiLevelStopsArrGradientColorAreasplineMixedLineChart": return configureMultiLevelStopsArrGradientColorAreasplineMixedLineChart(); case "connectNullsForSingleAASeriesElement": return connectNullsForSingleAASeriesElement(); case "lineChartsWithLargeDifferencesInTheNumberOfDataInDifferentSeriesElement": return lineChartsWithLargeDifferencesInTheNumberOfDataInDifferentSeriesElement(); case "customAreasplineChartWithColorfulGradientColorZones": return customAreasplineChartWithColorfulGradientColorZones(); case "largeDataStackingColumnChart": return largeDataStackingColumnChart(); } return configureColorfulChart(); } @Override public void chartViewDidFinishLoad(AAChartView aaChartView) { } @Override public void chartViewMoveOverEventMessage(AAChartView aaChartView, AAMoveOverEventMessageModel messageModel) { } @Subscribe(threadMode = ThreadMode.MAIN, sticky = true) public void onEventMessage(BaseEventBus eventBus) { super.onEventMessage(eventBus); if (eventBus == null) { return; } //接收外部点击事件 if (eventBus.getTopic().equals(ConstantManage.homepage_title_tab_switch)) { if (eventBus.getType().equals(HomepageTitleTabSwitch.homepage.toString())) { // 取消粘性事件 EventBus.getDefault().removeStickyEvent(eventBus); HdlLogLogic.print("正在点击【首页】"); } } } }