aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/traccar/web/client/Traccar.java32
-rw-r--r--src/main/java/org/traccar/web/client/database/DatabaseService.java11
-rw-r--r--src/main/java/org/traccar/web/client/database/DatabaseServiceAsync.java10
-rw-r--r--src/main/java/org/traccar/web/server/database/DatabaseServiceImpl.java34
-rw-r--r--src/main/java/org/traccar/web/shared/model/Device.java38
-rw-r--r--src/main/java/org/traccar/web/shared/model/Position.java46
-rw-r--r--src/main/java/org/traccar/web/shared/model/User.java44
7 files changed, 205 insertions, 10 deletions
diff --git a/src/main/java/org/traccar/web/client/Traccar.java b/src/main/java/org/traccar/web/client/Traccar.java
index 9ba3e774..fdd8dac4 100644
--- a/src/main/java/org/traccar/web/client/Traccar.java
+++ b/src/main/java/org/traccar/web/client/Traccar.java
@@ -1,14 +1,12 @@
package org.traccar.web.client;
-import com.google.gwt.core.client.EntryPoint;
-import com.smartgwt.client.types.Alignment;
-import com.smartgwt.client.types.Overflow;
-import com.smartgwt.client.widgets.Canvas;
-import com.smartgwt.client.widgets.Label;
-import com.smartgwt.client.widgets.layout.HLayout;
-import com.smartgwt.client.widgets.layout.VLayout;
+import org.traccar.web.client.database.DatabaseService;
+import org.traccar.web.client.database.DatabaseServiceAsync;
-import org.traccar.web.client.login.LoginDialog;
+import com.google.gwt.core.client.EntryPoint;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.smartgwt.client.util.SC;
/**
* Entry point class
@@ -24,11 +22,25 @@ public class Traccar implements EntryPoint {
*/
public void onModuleLoad() {
+ DatabaseServiceAsync databaseService = GWT.create(DatabaseService.class);
+
+ AsyncCallback<Boolean> callback = new AsyncCallback<Boolean>() {
+ public void onFailure(Throwable caught) {
+ SC.say("onFailure: " + caught.toString());
+ }
+
+ public void onSuccess(Boolean result) {
+ SC.say("onSuccess: " + result);
+ }
+ };
+
+ databaseService.authenticate("test", "test", callback);
+
/*LoginDialog loginDialog = new LoginDialog();
loginDialog.draw();
loginDialog.centerInPage();*/
- devicePanel = new DevicePanel();
+ /*devicePanel = new DevicePanel();
devicePanel.setWidth("20%");
devicePanel.setShowResizeBar(true);
@@ -50,6 +62,6 @@ public class Traccar implements EntryPoint {
mainLayout.setHeight100();
mainLayout.addMember(hLayout);
mainLayout.addMember(archivePanel);
- mainLayout.draw();
+ mainLayout.draw();*/
}
}
diff --git a/src/main/java/org/traccar/web/client/database/DatabaseService.java b/src/main/java/org/traccar/web/client/database/DatabaseService.java
new file mode 100644
index 00000000..6d08a5ca
--- /dev/null
+++ b/src/main/java/org/traccar/web/client/database/DatabaseService.java
@@ -0,0 +1,11 @@
+package org.traccar.web.client.database;
+
+import com.google.gwt.user.client.rpc.RemoteService;
+import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
+
+@RemoteServiceRelativePath("databaseService")
+public interface DatabaseService extends RemoteService {
+
+ boolean authenticate(String login, String password);
+
+}
diff --git a/src/main/java/org/traccar/web/client/database/DatabaseServiceAsync.java b/src/main/java/org/traccar/web/client/database/DatabaseServiceAsync.java
new file mode 100644
index 00000000..471edf00
--- /dev/null
+++ b/src/main/java/org/traccar/web/client/database/DatabaseServiceAsync.java
@@ -0,0 +1,10 @@
+package org.traccar.web.client.database;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
+public interface DatabaseServiceAsync {
+
+ void authenticate(String login, String password,
+ AsyncCallback<Boolean> callback);
+
+}
diff --git a/src/main/java/org/traccar/web/server/database/DatabaseServiceImpl.java b/src/main/java/org/traccar/web/server/database/DatabaseServiceImpl.java
new file mode 100644
index 00000000..89f72e6c
--- /dev/null
+++ b/src/main/java/org/traccar/web/server/database/DatabaseServiceImpl.java
@@ -0,0 +1,34 @@
+package org.traccar.web.server.database;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Persistence;
+
+import org.traccar.web.client.database.DatabaseService;
+import org.traccar.web.shared.model.User;
+
+import com.google.gwt.user.server.rpc.RemoteServiceServlet;
+
+public class DatabaseServiceImpl extends RemoteServiceServlet implements DatabaseService {
+
+ public boolean authenticate(String login, String password) {
+
+ EntityManager entityManager = Persistence.createEntityManagerFactory("traccar").createEntityManager();
+ entityManager.getTransaction().begin();
+
+ User user = new User();
+ user.setLogin("test");
+ user.setPassword("1");
+
+ entityManager.persist(user);
+ entityManager.getTransaction().commit();
+
+ //User foundUser = entityManager.find(User.class, user.getId());
+ entityManager.close();
+
+ if (login.equals("test") && password.equals("test")) {
+ return true;
+ }
+ return false;
+ }
+
+}
diff --git a/src/main/java/org/traccar/web/shared/model/Device.java b/src/main/java/org/traccar/web/shared/model/Device.java
new file mode 100644
index 00000000..17bfae29
--- /dev/null
+++ b/src/main/java/org/traccar/web/shared/model/Device.java
@@ -0,0 +1,38 @@
+package org.traccar.web.shared.model;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Entity
+@Table(name="devices")
+public class Device {
+
+ @Id
+ @GeneratedValue
+ long id;
+
+ @Column(unique = true)
+ private String uniqueId;
+
+ public void setUniqueId(String uniqueId) {
+ this.uniqueId = uniqueId;
+ }
+
+ public String getUniqueId() {
+ return uniqueId;
+ }
+
+ private String name;
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+}
diff --git a/src/main/java/org/traccar/web/shared/model/Position.java b/src/main/java/org/traccar/web/shared/model/Position.java
new file mode 100644
index 00000000..4ceb1714
--- /dev/null
+++ b/src/main/java/org/traccar/web/shared/model/Position.java
@@ -0,0 +1,46 @@
+package org.traccar.web.shared.model;
+
+import java.util.Date;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+import org.hibernate.annotations.Index;
+
+@Entity
+@Table(name = "positions")
+public class Position {
+
+ @Id
+ @GeneratedValue
+ long id;
+
+ @ManyToOne
+ @Index(name = "positionsIndex")
+ private Device device;
+
+ public void setDevice(Device device) {
+ this.device = device;
+ }
+
+ public Device getDevice() {
+ return device;
+ }
+
+ @Index(name = "positionsIndex")
+ private Date time;
+
+ public void setTime(Date time) {
+ this.time = time;
+ }
+
+ public Date getTime() {
+ return time;
+ }
+
+ // TODO: other
+
+}
diff --git a/src/main/java/org/traccar/web/shared/model/User.java b/src/main/java/org/traccar/web/shared/model/User.java
new file mode 100644
index 00000000..b82dd8e7
--- /dev/null
+++ b/src/main/java/org/traccar/web/shared/model/User.java
@@ -0,0 +1,44 @@
+package org.traccar.web.shared.model;
+
+import java.util.List;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToMany;
+import javax.persistence.Table;
+
+@Entity
+@Table(name="users")
+public class User {
+
+ @Id
+ @GeneratedValue
+ long id;
+
+ @Column(unique = true)
+ private String login;
+
+ public void setLogin(String login) {
+ this.login = login;
+ }
+
+ public String getLogin() {
+ return login;
+ }
+
+ private String password;
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ @ManyToMany
+ private List<Device> devices;
+
+}