Guest User

Untitled

a guest
Nov 16th, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.11 KB | None | 0 0
  1. @Override
  2. protected void onCreate(Bundle savedInstanceState) {
  3. super.onCreate(savedInstanceState);
  4. setContentView(R.layout.activity_detailed_field);
  5.  
  6. Intent intentData = getIntent();
  7. String FieldName = intentData.getStringExtra("field");
  8.  
  9. setTitle(FieldName);
  10.  
  11.  
  12. prepareGraphTop();
  13. prepareGraphBot();
  14. }
  15.  
  16. public void prepareGraphTop() {
  17.  
  18. Intent graphsIntent = getIntent();
  19. String response = graphsIntent.getStringExtra("response");
  20.  
  21.  
  22. AnyChartView top = findViewById(R.id.top_soil);
  23. top.setProgressBar(findViewById(R.id.progress_bar));
  24.  
  25. Cartesian topChartData = AnyChart.line();
  26.  
  27. topChartData.animation(true);
  28.  
  29. topChartData.padding(5d, 10d, 3d, 10d);
  30.  
  31. topChartData.xAxis(0).scale();
  32. topChartData.xScroller(true).container();
  33.  
  34. topChartData.crosshair().enabled(true);
  35. topChartData.crosshair()
  36. .yLabel(true)
  37. .yStroke((Stroke) null, null, null, (String) null, (String) null);
  38.  
  39. topChartData.tooltip().positionMode(TooltipPositionMode.POINT);
  40.  
  41. topChartData.title("Top Soil (0 - 400mm)");
  42.  
  43. topChartData.xAxis(0).labels().padding(3d, 3d, 3d, 3d);
  44.  
  45. final List<DataEntry> seriesDataTop = new ArrayList<>();
  46.  
  47. try {
  48.  
  49. JSONObject jsonResponse = new JSONObject(response);
  50. JSONObject graphs = jsonResponse.getJSONObject("Grafieke");
  51.  
  52. JSONArray dates = graphs.names();
  53.  
  54. for (int i = 3; i < graphs.length(); i++) {
  55.  
  56. String dateName = dates.getString(i);
  57.  
  58. JSONObject dateData = graphs.getJSONObject(dateName);
  59.  
  60. Number topSoil = dateData.getInt("TB");
  61. Number bb = dateData.getInt("BB");
  62. Number stressBo = dateData.getInt("stress");
  63. Number verwelpBo = dateData.getInt("verwelp");
  64.  
  65. seriesDataTop.add(new CustomDataTop(dateName, topSoil, bb, stressBo));
  66. }
  67.  
  68. } catch (JSONException e) {
  69. e.printStackTrace();
  70. }
  71.  
  72. Set setTop = Set.instantiate();
  73. setTop.data(seriesDataTop);
  74. Mapping seriesTopMapping1 = setTop.mapAs("{ x: 'x', value: 'value' }");
  75. Mapping seriesTopMapping2 = setTop.mapAs("{ x: 'x', value: 'value2' }");
  76. Mapping seriesTopMapping3 = setTop.mapAs("{ x: 'x', value: 'value3' }");
  77.  
  78. Line seriesTop1 = topChartData.line(seriesTopMapping1);
  79. seriesTop1.name("TB");
  80. seriesTop1.hovered().markers().enabled(true);
  81. seriesTop1.hovered().markers()
  82. .type(MarkerType.CIRCLE)
  83. .size(4d);
  84. seriesTop1.tooltip()
  85. .position("right")
  86. .anchor(Anchor.LEFT_CENTER)
  87. .offsetX(5d)
  88. .offsetY(5d);
  89.  
  90. Line seriesTop2 = topChartData.line(seriesTopMapping2);
  91. seriesTop2.name("TO");
  92. seriesTop2.hovered().markers().enabled(true);
  93. seriesTop2.hovered().markers()
  94. .type(MarkerType.CIRCLE)
  95. .size(4d);
  96. seriesTop2.tooltip()
  97. .position("right")
  98. .anchor(Anchor.LEFT_CENTER)
  99. .offsetX(5d)
  100. .offsetY(5d);
  101.  
  102. Line seriesTop3 = topChartData.line(seriesTopMapping3);
  103. seriesTop3.name("Stress Bo");
  104. seriesTop3.hovered().markers().enabled(true);
  105. seriesTop3.hovered().markers()
  106. .type(MarkerType.CIRCLE)
  107. .size(4d);
  108. seriesTop3.tooltip()
  109. .position("right")
  110. .anchor(Anchor.LEFT_CENTER)
  111. .offsetX(5d)
  112. .offsetY(5d);
  113.  
  114. topChartData.legend().enabled(true);
  115. topChartData.legend().fontSize(13d);
  116. topChartData.legend().padding(0d, 0d, 10d, 0d);
  117.  
  118. top.setChart(topChartData);
  119. }
  120.  
  121. public void prepareGraphBot() {
  122.  
  123. Intent graphsIntent = getIntent();
  124. String response = graphsIntent.getStringExtra("response");
  125.  
  126. AnyChartView bottom = findViewById(R.id.bottom_soil);
  127. bottom.setProgressBar(findViewById(R.id.progress_bar));
  128.  
  129. Cartesian botChartData = AnyChart.line();
  130.  
  131. botChartData.animation(true);
  132.  
  133. botChartData.padding(5d, 10d, 3d, 10d);
  134.  
  135. botChartData.xAxis(0).scale();
  136. botChartData.xScroller(true).container();
  137.  
  138. botChartData.crosshair().enabled(true);
  139. botChartData.crosshair()
  140. .yLabel(true)
  141. .yStroke((Stroke) null, null, null, (String) null, (String) null);
  142.  
  143. botChartData.tooltip().positionMode(TooltipPositionMode.POINT);
  144.  
  145. botChartData.title("Bottom Soil (400 - 800mm)");
  146.  
  147. botChartData.xAxis(0).labels().padding(3d, 3d, 3d, 3d);
  148.  
  149. final List<DataEntry> seriesDataBot = new ArrayList<>();
  150.  
  151. try {
  152.  
  153. JSONObject jsonResponse = new JSONObject(response);
  154. JSONObject graphs = jsonResponse.getJSONObject("Grafieke");
  155.  
  156. JSONArray dates = graphs.names();
  157.  
  158. for (int i = 3; i < graphs.length(); i++) {
  159.  
  160. String dateName = dates.getString(i);
  161.  
  162. JSONObject dateData = graphs.getJSONObject(dateName);
  163.  
  164. Number botSoil = dateData.getInt("TO");
  165. Number bo = dateData.getInt("BO");
  166. Number stressOnder = dateData.getInt("stressonder");
  167. Number verwelpOnder = dateData.getInt("verwelponder");
  168. Number pvrOnder = dateData.getInt("pvronder");
  169.  
  170. seriesDataBot.add(new CustomDataBot(dateName, botSoil, bo, stressOnder));
  171. }
  172.  
  173. } catch (JSONException e) {
  174. e.printStackTrace();
  175. }
  176.  
  177. Set setBot = Set.instantiate();
  178. setBot.data(seriesDataBot);
  179. Mapping seriesBotMapping1 = setBot.mapAs("{ x: 'r', value: 'value12' }");
  180. Mapping seriesBotMapping2 = setBot.mapAs("{ x: 'r', value: 'value22' }");
  181. Mapping seriesBotMapping3 = setBot.mapAs("{ x: 'r', value: 'value32' }");
  182.  
  183. Line seriesBot1 = botChartData.line(seriesBotMapping1);
  184. seriesBot1.name("TO");
  185. seriesBot1.hovered().markers().enabled(true);
  186. seriesBot1.hovered().markers()
  187. .type(MarkerType.CIRCLE)
  188. .size(4d);
  189. seriesBot1.tooltip()
  190. .position("right")
  191. .anchor(Anchor.LEFT_CENTER)
  192. .offsetX(5d)
  193. .offsetY(5d);
  194.  
  195. Line seriesBot2 = botChartData.line(seriesBotMapping2);
  196. seriesBot2.name("BO");
  197. seriesBot2.hovered().markers().enabled(true);
  198. seriesBot2.hovered().markers()
  199. .type(MarkerType.CIRCLE)
  200. .size(4d);
  201. seriesBot2.tooltip()
  202. .position("right")
  203. .anchor(Anchor.LEFT_CENTER)
  204. .offsetX(5d)
  205. .offsetY(5d);
  206.  
  207. Line seriesBot3 = botChartData.line(seriesBotMapping3);
  208. seriesBot3.name("Stress Onder");
  209. seriesBot3.hovered().markers().enabled(true);
  210. seriesBot3.hovered().markers()
  211. .type(MarkerType.CIRCLE)
  212. .size(4d);
  213. seriesBot3.tooltip()
  214. .position("right")
  215. .anchor(Anchor.LEFT_CENTER)
  216. .offsetX(5d)
  217. .offsetY(5d);
  218.  
  219. botChartData.legend().enabled(true);
  220. botChartData.legend().fontSize(13d);
  221. botChartData.legend().padding(0d, 0d, 10d, 0d);
  222.  
  223. bottom.setChart(botChartData);
  224. }
  225.  
  226. private class CustomDataTop extends ValueDataEntry {
  227.  
  228. CustomDataTop(String x, Number value, Number value2, Number value3) {
  229. super(x, value);
  230. setValue("value2", value2);
  231. setValue("value3", value3);
  232. }
  233. }
  234.  
  235. private class CustomDataBot extends ValueDataEntry {
  236.  
  237. CustomDataBot(String r, Number value12, Number value22, Number value32) {
  238. super(r, value12);
  239. setValue("value22", value22);
  240. setValue("value32", value32);
  241. }
  242.  
  243. }
  244.  
  245. <?xml version="1.0" encoding="utf-8"?>
  246. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  247. xmlns:app="http://schemas.android.com/apk/res-auto"
  248. xmlns:tools="http://schemas.android.com/tools"
  249. android:layout_width="match_parent"
  250. android:layout_height="match_parent"
  251. android:orientation="vertical"
  252. tools:context=".DetailedFieldActivity">
  253.  
  254. <com.anychart.AnyChartView
  255. android:id="@+id/top_soil"
  256. android:layout_width="match_parent"
  257. android:layout_height="210dp"
  258. android:layout_alignParentStart="true"
  259. android:layout_alignParentTop="true"
  260. android:layout_alignParentEnd="true"
  261. android:layout_marginStart="0dp"
  262. android:layout_marginTop="49dp"
  263. android:layout_marginEnd="0dp">
  264.  
  265. </com.anychart.AnyChartView>
  266.  
  267. <com.anychart.AnyChartView
  268. android:id="@+id/bottom_soil"
  269. android:layout_width="match_parent"
  270. android:layout_height="201dp"
  271. android:layout_alignParentStart="true"
  272. android:layout_alignParentBottom="true"
  273. android:layout_marginStart="0dp"
  274. android:layout_marginBottom="50dp">
  275.  
  276. </com.anychart.AnyChartView>
  277.  
  278. <ProgressBar
  279. android:id="@+id/progress_bar"
  280. android:layout_width="278dp"
  281. android:layout_height="189dp"
  282. android:layout_alignParentStart="true"
  283. android:layout_alignParentTop="true"
  284. android:layout_alignParentEnd="true"
  285. android:layout_alignParentBottom="true"
  286. android:layout_centerHorizontal="true"
  287. android:layout_centerVertical="true"
  288. android:layout_marginStart="53dp"
  289. android:layout_marginTop="159dp"
  290. android:layout_marginEnd="53dp"
  291. android:layout_marginBottom="163dp"
  292. app:layout_constraintBottom_toBottomOf="parent"
  293. app:layout_constraintEnd_toEndOf="parent"
  294. app:layout_constraintStart_toStartOf="parent"
  295. app:layout_constraintTop_toTopOf="parent" />
  296.  
  297. <Button
  298. android:id="@+id/top_bottom"
  299. android:layout_width="wrap_content"
  300. android:layout_height="wrap_content"
  301. android:layout_alignParentStart="true"
  302. android:layout_alignParentTop="true"
  303. android:layout_marginTop="0dp"
  304. android:background="@android:color/transparent"
  305. android:text="Top Bototm Soil" />
  306.  
  307. <Button
  308. android:id="@+id/depths"
  309. android:layout_width="105dp"
  310. android:layout_height="wrap_content"
  311. android:layout_above="@+id/top_soil"
  312. android:layout_centerHorizontal="true"
  313. android:layout_marginBottom="3dp"
  314. android:background="@android:color/transparent"
  315. android:text="Depths" />
  316.  
  317. <Button
  318. android:id="@+id/soil_temps"
  319. android:layout_width="120dp"
  320. android:layout_height="wrap_content"
  321. android:layout_alignParentTop="true"
  322. android:layout_alignParentEnd="true"
  323. android:layout_marginTop="0dp"
  324. android:background="@android:color/transparent"
  325. android:text="Soil Temps" />
  326.  
  327. <Button
  328. android:id="@+id/photo"
  329. android:layout_width="100dp"
  330. android:layout_height="wrap_content"
  331. android:layout_alignParentBottom="true"
  332. android:layout_centerHorizontal="true"
  333. android:background="@android:color/transparent"
  334. android:text="Photos" />
  335.  
  336. <Button
  337. android:id="@+id/moisture"
  338. android:layout_width="121dp"
  339. android:layout_height="wrap_content"
  340. android:layout_alignParentStart="true"
  341. android:layout_alignParentBottom="true"
  342. android:background="@android:color/transparent"
  343. android:text="Moisture" />
  344.  
  345. <Button
  346. android:id="@+id/irrigation"
  347. android:layout_width="123dp"
  348. android:layout_height="wrap_content"
  349. android:layout_alignParentEnd="true"
  350. android:layout_alignParentBottom="true"
  351. android:background="@android:color/transparent"
  352. android:text="Irrigation" />
  353.  
  354. </RelativeLayout>
Add Comment
Please, Sign In to add comment