· 8 years ago · Mar 15, 2018, 10:28 PM
1package lab.mb;
2
3import com.google.gson.internal.bind.SqlDateTypeAdapter;
4import lab.db.ResultEntity;
5
6import javax.faces.bean.ApplicationScoped;
7import javax.faces.bean.ManagedBean;
8import javax.faces.bean.SessionScoped;
9import java.io.Serializable;
10import java.sql.Connection;
11import java.sql.DriverManager;
12import java.sql.SQLException;
13import java.sql.Statement;
14import java.util.List;
15import java.util.ArrayList;
16import com.google.gson.Gson;
17
18@ManagedBean(name="controllerMB")
19@SessionScoped
20public class ControllerMB implements Serializable{
21
22 private Double currX;
23 private Double currY;
24 private Double currR=0.0;
25 private Double teest=3.0;
26 private Boolean curr;
27 private List<ResultEntity> results = new ArrayList<ResultEntity>();
28
29
30 public Double getteest()
31 {
32 return teest;
33 }
34 public void setteest(Double t)
35 {
36 teest=t;
37 }
38 public Double getCurrX()
39 {
40 return currX;
41 }
42 public void setCurrX(Double x)
43 {
44 currX=x;
45 }
46 public Double getCurrY()
47 {
48 return currY;
49 }
50 public void setCurrY(Double y)
51 {
52 currY=y;
53 }
54 public Double getCurrR()
55 {
56 return currR;
57 }
58 public void setCurrR(Double r)
59 {
60 currR=r;
61 }
62 public Boolean getCurr()
63 {
64 return curr;
65 }
66 public void setCurr(Boolean r)
67 {
68 curr=r;
69 }
70
71 public List<ResultEntity> getResults()
72 {
73 return results;
74 }
75 public ControllerMB() {}
76 public void addItem()
77 {
78 if((currR!=null)&&(currY!=null)) {
79 AreaCheckMB area = new AreaCheckMB();
80 ResultEntity item = area.getResult(currX, currY, currR);
81 curr = item.getInarea();
82 try {
83 insertDB(item);
84 } catch (SQLException e){
85 System.out.println("Cannot add element to database");
86 }
87 results.add(item);
88 }
89 }
90
91 private void insertDB(ResultEntity item) throws SQLException
92 {
93 String url = "jdbc:postgresql://pg:5432/studs";
94 String username = "s225148";
95 String password = "eiaF1843";
96 Connection database = DriverManager.getConnection(url, username, password);
97 if(database != null){
98 System.out.println("Connection is ready!");
99 } else {
100 System.out.println("Failed to connect");
101 }
102
103 Statement st = database.createStatement();
104 String query = "create table if not exists points" +
105 "id serial primary key" +
106 "xcoord real" +
107 "ycoord real" +
108 "radius real" +
109 "in_area boolean" +
110 "msg text";
111 st.executeUpdate(query);
112
113 query = "insert into points(xcoord, ycoord, radius, in_area, msg)" +
114 "values("
115 + Double.toString(item.getXcoord()) + ","
116 + Double.toString(item.getYcoord()) + ","
117 + Double.toString(item.getRadius()) + ","
118 + Boolean.toString(item.getInarea()) + ","
119 + item.getMsg()
120 +")";
121 st.executeUpdate(query);
122 st.close();
123 database.close();
124
125
126 database.close();
127 }
128
129 public String getListAsJson () {
130 return new Gson().toJson(getResults());
131 }
132}