diff options
Diffstat (limited to 'src/main/java')
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; + +} |