OSDN Git Service

add jsp-api master
authorcintake <gozilla3st@users.osdn.me>
Sat, 14 May 2016 12:18:40 +0000 (21:18 +0900)
committercintake <gozilla3st@users.osdn.me>
Sat, 14 May 2016 12:18:40 +0000 (21:18 +0900)
src/main/java/net/korabo/app/vaadin01/KBaseEntity.java [moved from src/main/java/net/korabo/app/vaadin01/ent/KBaseEntity.java with 93% similarity]
src/main/java/net/korabo/app/vaadin01/ent/Contact.java
src/main/java/net/korabo/app/vaadin01/ent/InstanceID.java [deleted file]
src/main/java/net/korabo/app/vaadin01/srv/ContactBeanQuery.java
src/main/java/net/korabo/app/vaadin01/srv/ContactService.java
src/main/java/net/korabo/app/vaadin01/ui/AddressbookUI.java [moved from src/main/java/net/korabo/app/vaadin01/AddressbookUI.java with 98% similarity]
src/main/java/net/korabo/app/vaadin01/ui/AddressbookUI2.java [new file with mode: 0644]
src/main/java/net/korabo/app/vaadin01/ui/ContactForm.java [moved from src/main/java/net/korabo/app/vaadin01/ContactForm.java with 98% similarity]
src/main/java/net/korabo/app/vaadin01/ui/MyUI.java [moved from src/main/java/net/korabo/app/vaadin01/MyUI.java with 97% similarity]
src/main/webapp/VAADIN/themes/mytheme/addons.scss

@@ -3,7 +3,7 @@
  * To change this template file, choose Tools | Templates
  * and open the template in the editor.
  */
-package net.korabo.app.vaadin01.ent;
+package net.korabo.app.vaadin01;
 
 import com.orientechnologies.orient.core.id.ORID;
 import javax.persistence.Id;
index 269653a..5043a04 100644 (file)
@@ -5,6 +5,7 @@
  */
 package net.korabo.app.vaadin01.ent;
 
+import net.korabo.app.vaadin01.KBaseEntity;
 import com.orientechnologies.orient.core.id.ORID;
 import java.io.Serializable;
 import java.util.Date;
diff --git a/src/main/java/net/korabo/app/vaadin01/ent/InstanceID.java b/src/main/java/net/korabo/app/vaadin01/ent/InstanceID.java
deleted file mode 100644 (file)
index a2f9cbf..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*\r
- * To change this license header, choose License Headers in Project Properties.\r
- * To change this template file, choose Tools | Templates\r
- * and open the template in the editor.\r
- */\r
-package net.korabo.app.vaadin01.ent;\r
-\r
-/**\r
- *\r
- * @author manager\r
- */\r
-public class InstanceID {\r
-    private String ClassID;\r
-    private Long ID;\r
-\r
-    public String getClassID() {\r
-        return ClassID;\r
-    }\r
-\r
-    public void setClassID(String ClassID) {\r
-        this.ClassID = ClassID;\r
-    }\r
-\r
-    public Long getID() {\r
-        return ID;\r
-    }\r
-\r
-    public void setID(Long ID) {\r
-        this.ID = ID;\r
-    }\r
-    \r
-}\r
index 895ce1e..4ced73d 100644 (file)
@@ -6,6 +6,7 @@
 package net.korabo.app.vaadin01.srv;\r
 \r
 import com.orientechnologies.orient.core.db.OPartitionedDatabasePool;\r
+import com.orientechnologies.orient.core.sql.query.OSQLSynchQuery;\r
 import com.orientechnologies.orient.object.db.OObjectDatabaseTx;\r
 import java.util.ArrayList;\r
 import java.util.List;\r
@@ -18,54 +19,35 @@ import org.vaadin.addons.lazyquerycontainer.QueryDefinition;
  *\r
  * @author manager\r
  */\r
-public class ContactBeanQuery extends AbstractBeanQuery<Contact>{\r
+public class ContactBeanQuery extends AbstractBeanQuery<Contact> {\r
 \r
-    private final OPartitionedDatabasePool pool;\r
+  private final ContactService contactSvc;\r
 \r
-    public ContactBeanQuery(QueryDefinition definition,\r
-                       Map<String, Object> queryConfiguration, Object[] sortPropertyIds,\r
-                       boolean[] sortStates) {\r
-               super(definition, queryConfiguration, sortPropertyIds, sortStates);\r
-                this.pool = (OPartitionedDatabasePool)queryConfiguration.get("OPartitionedDatabasePool");\r
-       }\r
+  public ContactBeanQuery(QueryDefinition definition,\r
+    Map<String, Object> queryConfiguration, Object[] sortPropertyIds,\r
+    boolean[] sortStates) {\r
+    super(definition, queryConfiguration, sortPropertyIds, sortStates);\r
+    this.contactSvc = (ContactService)queryConfiguration.get("ContactService");\r
+  }\r
 \r
-    \r
-    @Override\r
-    protected Contact constructBean() {\r
-        return new Contact();\r
-    }\r
+  @Override\r
+  protected Contact constructBean() {\r
+    return new Contact();\r
+  }\r
 \r
-    @Override\r
-    public int size() {\r
-        try (\r
-                OObjectDatabaseTx db = new OObjectDatabaseTx(pool.acquire())) {\r
-            db.getEntityManager().registerEntityClass(Contact.class);\r
-            return (int) db.countClass(Contact.class);\r
-        }\r
-    }\r
+  @Override\r
+  public int size() {\r
+    return (int)contactSvc.count();\r
+  }\r
 \r
-    @Override\r
-    protected List<Contact> loadBeans(int i, int i1) {\r
-        ArrayList arrayList = new ArrayList();\r
-        try (\r
-                OObjectDatabaseTx db = new OObjectDatabaseTx(pool.acquire())) {\r
-            db.getEntityManager().registerEntityClass(Contact.class);\r
-            for (Contact contact : db.browseClass(Contact.class).) {\r
-                boolean passesFilter = (stringFilter == null || stringFilter.isEmpty())\r
-                        || contact.toString().toLowerCase()\r
-                        .contains(stringFilter.toLowerCase());\r
-                if (passesFilter) {\r
-//                contact = db.detach(contact);\r
-                    arrayList.add(db.detach(contact, true));\r
-                }\r
-            }\r
+  @Override\r
+  protected List<Contact> loadBeans(int i, int i1) {\r
+    return contactSvc.loadBeans(i, i1);\r
+  }\r
 \r
-        }\r
-    }\r
+  @Override\r
+  protected void saveBeans(List<Contact> list, List<Contact> list1, List<Contact> list2) {\r
+    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.\r
+  }\r
 \r
-    @Override\r
-    protected void saveBeans(List<Contact> list, List<Contact> list1, List<Contact> list2) {\r
-        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.\r
-    }\r
-    \r
 }\r
index 048ce3b..3e7d878 100644 (file)
@@ -7,6 +7,7 @@ package net.korabo.app.vaadin01.srv;
 
 import com.orientechnologies.orient.client.remote.OServerAdmin;
 import com.orientechnologies.orient.core.db.OPartitionedDatabasePool;
+import com.orientechnologies.orient.core.sql.query.OSQLSynchQuery;
 import com.orientechnologies.orient.object.db.OObjectDatabaseTx;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -16,6 +17,7 @@ import java.util.Random;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 import net.korabo.app.vaadin01.ent.Contact;
+import net.korabo.lib.beans.ClassUtil;
 
 /**
  *
@@ -23,99 +25,102 @@ import net.korabo.app.vaadin01.ent.Contact;
  */
 public class ContactService {
 
-    // Create dummy data by randomly combining first and last names
-    static String[] fnames = {"Peter", "Alice", "John", "Mike", "Olivia",
-        "Nina", "Alex", "Rita", "Dan", "Umberto", "Henrik", "Rene", "Lisa",
-        "Linda", "Timothy", "Daniel", "Brian", "George", "Scott",
-        "Jennifer"};
-    static String[] lnames = {"Smith", "Johnson", "Williams", "Jones",
-        "Brown", "Davis", "Miller", "Wilson", "Moore", "Taylor",
-        "Anderson", "Thomas", "Jackson", "White", "Harris", "Martin",
-        "Thompson", "Young", "King", "Robinson"};
-
-    private static ContactService instance;
-    private static OPartitionedDatabasePool pool;
-
-    public static ContactService createDemoService() {
-        try {
-            return createService0();
-        } catch (IOException ex) {
-            Logger.getLogger(ContactService.class.getName()).log(Level.SEVERE, null, ex);
-        }
-        return null;
+  // Create dummy data by randomly combining first and last names
+  static String[] fnames = {"Peter", "Alice", "John", "Mike", "Olivia",
+    "Nina", "Alex", "Rita", "Dan", "Umberto", "Henrik", "Rene", "Lisa",
+    "Linda", "Timothy", "Daniel", "Brian", "George", "Scott",
+    "Jennifer"};
+  static String[] lnames = {"Smith", "Johnson", "Williams", "Jones",
+    "Brown", "Davis", "Miller", "Wilson", "Moore", "Taylor",
+    "Anderson", "Thomas", "Jackson", "White", "Harris", "Martin",
+    "Thompson", "Young", "King", "Robinson"};
+
+  private static ContactService instance;
+  private static OPartitionedDatabasePool pool;
+
+  public static ContactService createDemoService() {
+    try {
+      return createService0();
+    } catch (IOException ex) {
+      Logger.getLogger(ContactService.class.getName()).log(Level.SEVERE, null, ex);
     }
+    return null;
+  }
 
-    private static ContactService createService0() throws IOException {
-        if (instance == null) {
+  private static ContactService createService0() throws IOException {
+    if (instance == null) {
 
-            final ContactService contactService = new ContactService();
-            // OrientDB
+      final ContactService contactService = new ContactService();
+      // OrientDB
 //            ODatabaseDocumentTx db = 
 //                    new ODatabaseDocumentTx("remote:127.0.0.1/DocumentTest")
 //                            .open("root", "korabo");
 //            OPartitionedDatabasePool pool = new OPartitionedDatabasePool("remote:127.0.0.1/dbtest","root","korabo");
 //            pool.
 //            OObjectDatabaseTx db = new OObjectDatabaseTx("remote:127.0.0.1/dbtest");
-            String remote = "remote:127.0.0.1/";
-            String nameDB = "TestPartitioned2";
-            String url = remote + nameDB;
-
-            OServerAdmin serverAdmin = new OServerAdmin(url).connect("root", "korabo");
-            if (!serverAdmin.listDatabases().containsKey(nameDB)) {
-                serverAdmin.createDatabase(nameDB, "object", "plocal");
-                System.out.println(" Database '" + nameDB + "' created!..");
-            }
+      String remote = "remote:127.0.0.1/";
+      String nameDB = "TestPartitioned2";
+      String url = remote + nameDB;
+
+      OServerAdmin serverAdmin = new OServerAdmin(url).connect("root", "korabo");
+      if (!serverAdmin.listDatabases().containsKey(nameDB)) {
+        serverAdmin.createDatabase(nameDB, "object", "plocal");
+        System.out.println(" Database '" + nameDB + "' created!..");
+      }
 //            OPartitionedDatabasePool pool = new OPartitionedDatabasePool(url, "admin", "admin");
-            pool = new OPartitionedDatabasePool(url, "admin", "admin");
-
-            try (
-                    OObjectDatabaseTx db = new OObjectDatabaseTx(pool.acquire())) {
-                db.getEntityManager().registerEntityClass(Contact.class);
-                
-                if (db.countClass(Contact.class) == 0) {
-                    // init
-                    Random r = new Random(0);
-                    Calendar cal = Calendar.getInstance();
-                    for (int i = 0; i < 100; i++) {
-                        Contact contact = db.newInstance(Contact.class);
-                        contact.setFirstName(fnames[r.nextInt(fnames.length)]);
-                        contact.setLastName(lnames[r.nextInt(fnames.length)]);
-                        contact.setEmail(contact.getFirstName().toLowerCase() + "@"
-                                + contact.getLastName().toLowerCase() + ".com");
-                        contact.setPhone("+ 358 555 " + (100 + r.nextInt(900)));
-                        cal.set(1930 + r.nextInt(70),
-                                r.nextInt(11), r.nextInt(28));
-                        contact.setBirthDate(cal.getTime());
-                        db.attachAndSave(contact);
-                    }
-                    db.commit();
-                }
-            }
-            instance = contactService;
+      pool = new OPartitionedDatabasePool(url, "admin", "admin");
+
+      try (
+        OObjectDatabaseTx db = new OObjectDatabaseTx(pool.acquire())) {
+        db.setAutomaticSchemaGeneration(true);
+        db.getEntityManager().registerEntityClasses(Contact.class.getPackage().getName());
+
+        if (db.countClass(Contact.class) == 0) {
+          // init
+          Random r = new Random(0);
+          Calendar cal = Calendar.getInstance();
+          for (int i = 0; i < 100; i++) {
+            Contact contact = db.newInstance(Contact.class);
+            contact.setFirstName(fnames[r.nextInt(fnames.length)]);
+            contact.setLastName(lnames[r.nextInt(fnames.length)]);
+            contact.setEmail(contact.getFirstName().toLowerCase() + "@"
+              + contact.getLastName().toLowerCase() + ".com");
+            contact.setPhone("+ 358 555 " + (100 + r.nextInt(900)));
+            cal.set(1930 + r.nextInt(70),
+              r.nextInt(11), r.nextInt(28));
+            contact.setBirthDate(cal.getTime());
+            db.attachAndSave(contact);
+          }
+          db.commit();
         }
-
-        return instance;
+      }
+      instance = contactService;
     }
 
+    return instance;
+  }
+
 //    private HashMap<Long, Contact> contacts = new HashMap<>();
 //    private long nextId = 0;
-    public synchronized List<Contact> findAll(String stringFilter) {
-
-        ArrayList arrayList = new ArrayList();
-        try (
-                OObjectDatabaseTx db = new OObjectDatabaseTx(pool.acquire())) {
-            db.getEntityManager().registerEntityClass(Contact.class);
-            for (Contact contact : db.browseClass(Contact.class)) {
-                boolean passesFilter = (stringFilter == null || stringFilter.isEmpty())
-                        || contact.toString().toLowerCase()
-                        .contains(stringFilter.toLowerCase());
-                if (passesFilter) {
+  public synchronized List<Contact> findAll(String stringFilter) {
+
+    ArrayList arrayList = new ArrayList();
+    try (
+      OObjectDatabaseTx db = new OObjectDatabaseTx(pool.acquire())) {
+      db.setAutomaticSchemaGeneration(true);
+      db.getEntityManager().registerEntityClasses(Contact.class.getPackage().getName());
+
+      for (Contact contact : db.browseClass(Contact.class)) {
+        boolean passesFilter = (stringFilter == null || stringFilter.isEmpty())
+          || contact.toString().toLowerCase()
+          .contains(stringFilter.toLowerCase());
+        if (passesFilter) {
 //                contact = db.detach(contact);
-                    arrayList.add(db.detach(contact, true));
-                }
-            }
-
+          arrayList.add(db.detach(contact, true));
         }
+      }
+
+    }
 //        for (Contact contact : contacts.values()) {
 //            try {
 //                boolean passesFilter = (stringFilter == null || stringFilter.isEmpty())
@@ -136,30 +141,33 @@ public class ContactService {
 //                return (int) (o2.getId() - o1.getId());
 //            }
 //        });
-        return arrayList;
-    }
+    return arrayList;
+  }
 
-    public synchronized long count() {
+  public synchronized long count() {
 //        return contacts.size();
-        try (
-                OObjectDatabaseTx db = new OObjectDatabaseTx(pool.acquire())) {
-            db.getEntityManager().registerEntityClass(Contact.class);
-            return db.countClass(Contact.class);
-        }
+    try (
+      OObjectDatabaseTx db = new OObjectDatabaseTx(pool.acquire())) {
+      db.setAutomaticSchemaGeneration(true);
+      db.getEntityManager().registerEntityClasses(Contact.class.getPackage().getName());
+      return db.countClass(Contact.class);
     }
+  }
 
-    public synchronized void delete(Contact value) {
+  public synchronized void delete(Contact value) {
 //        contacts.remove(value.getId());
-    }
+  }
 
-    public synchronized void save(Contact entry) {
-        try (
-                OObjectDatabaseTx db = new OObjectDatabaseTx(pool.acquire())) {
-            db.getEntityManager().registerEntityClass(Contact.class);
-            db.begin();
-            db.attachAndSave(entry);
-            db.commit();
-        }
+  public synchronized void save(Contact entry) {
+    try (
+      OObjectDatabaseTx db = new OObjectDatabaseTx(pool.acquire())) {
+      db.setAutomaticSchemaGeneration(true);
+      db.getEntityManager().registerEntityClasses(Contact.class.getPackage().getName());
+
+      db.begin();
+      db.attachAndSave(entry);
+      db.commit();
+    }
 //        if (entry.getId() == null) {
 //            entry.setId(nextId++);
 //        }
@@ -169,6 +177,24 @@ public class ContactService {
 //            throw new RuntimeException(ex);
 //        }
 //        contacts.put(entry.getId(), entry);
+  }
+
+  
+  public List<Contact> loadBeans(int i, int i1) {
+    ArrayList<Contact> arrayList = new ArrayList<>();
+    try (
+      OObjectDatabaseTx db = new OObjectDatabaseTx(pool.acquire())) {
+      db.setAutomaticSchemaGeneration(true);
+      db.getEntityManager().registerEntityClasses(Contact.class.getPackage().getName());
+
+      //SELECT FROM <target> [WHERE ...] SKIP <records-to-skip> LIMIT <max-records>
+      final OSQLSynchQuery<Contact> query = new OSQLSynchQuery<>("select * from Contact SKIP ? LIMIT ?");
+      List<Contact> result = db.query(query, i, i1);
+      result.stream().forEach((contact) -> {
+        arrayList.add(db.detach(contact, true));
+      });
     }
+    return arrayList;
+  }
 
 }
@@ -3,7 +3,7 @@
  * To change this template file, choose Tools | Templates
  * and open the template in the editor.
  */
-package net.korabo.app.vaadin01;
+package net.korabo.app.vaadin01.ui;
 
 import com.vaadin.annotations.Theme;
 import com.vaadin.annotations.Title;
diff --git a/src/main/java/net/korabo/app/vaadin01/ui/AddressbookUI2.java b/src/main/java/net/korabo/app/vaadin01/ui/AddressbookUI2.java
new file mode 100644 (file)
index 0000000..812581c
--- /dev/null
@@ -0,0 +1,122 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package net.korabo.app.vaadin01.ui;
+
+import com.vaadin.annotations.Theme;
+import com.vaadin.annotations.Title;
+import com.vaadin.annotations.VaadinServletConfiguration;
+import com.vaadin.annotations.Widgetset;
+import com.vaadin.data.util.BeanItemContainer;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.server.VaadinServlet;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Grid;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.TextField;
+import com.vaadin.ui.UI;
+import com.vaadin.ui.VerticalLayout;
+import java.util.HashMap;
+import java.util.Map;
+import javax.servlet.annotation.WebServlet;
+import net.korabo.app.vaadin01.ent.Contact;
+import net.korabo.app.vaadin01.srv.ContactBeanQuery;
+import net.korabo.app.vaadin01.srv.ContactService;
+import org.vaadin.addons.lazyquerycontainer.BeanQueryFactory;
+import org.vaadin.addons.lazyquerycontainer.LazyQueryContainer;
+import org.vaadin.addons.lazyquerycontainer.LazyQueryDefinition;
+import org.vaadin.addons.lazyquerycontainer.QueryDefinition;
+
+/**
+ *
+ * @author cintake
+ */
+@Title("Addressbook2")
+@Theme("valo")
+@Widgetset("net.korabo.app.vaadin01.MyAppWidgetset")
+public class AddressbookUI2 extends UI {
+
+  TextField filter = new TextField();
+  Grid contactList = new Grid();
+  Button newContact = new Button("New contact");
+
+  // ContactForm is an example of a custom component class
+  ContactForm contactForm = new ContactForm();
+
+  // ContactService is a in-memory mock DAO that mimics
+  // a real-world datasource. Typically implemented for
+  // example as EJB or Spring Data based service.
+  LazyQueryContainer container;
+  ContactService service = ContactService.createDemoService();
+
+  @Override
+  protected void init(VaadinRequest request) {
+    configureComponents();
+    buildLayout();
+  }
+
+  private void configureComponents() {
+
+    newContact.addClickListener(e -> contactForm.edit(new Contact()));
+
+    filter.setInputPrompt("Filter contacts...");
+    filter.addTextChangeListener(e -> refreshContacts(e.getText()));
+
+    BeanQueryFactory<ContactBeanQuery> queryFactory = new BeanQueryFactory<>(ContactBeanQuery.class);
+
+Map<String,Object> queryConfiguration=new HashMap<>();
+queryConfiguration.put("ContactService",ContactService.createDemoService());
+queryFactory.setQueryConfiguration(queryConfiguration);
+
+container = new LazyQueryContainer(new LazyQueryDefinition(false, 50, "ContactID"), queryFactory);
+contactList.setContainerDataSource(container);
+//    contactList.setContainerDataSource(new BeanItemContainer<>(Contact.class));
+//    contactList.setColumnOrder("firstName", "lastName", "email");
+//    contactList.removeColumn("id");
+//    contactList.removeColumn("birthDate");
+//    contactList.removeColumn("phone");
+//    contactList.setSelectionMode(Grid.SelectionMode.SINGLE);
+//    contactList.addSelectionListener(e
+//      -> contactForm.edit((Contact) contactList.getSelectedRow()));
+    refreshContacts();
+  }
+
+  private void buildLayout() {
+    HorizontalLayout actions = new HorizontalLayout(filter, newContact);
+    actions.setWidth("100%");
+    filter.setWidth("100%");
+    actions.setExpandRatio(filter, 1);
+
+    VerticalLayout left = new VerticalLayout(actions, contactList);
+    left.setSizeFull();
+    contactList.setSizeFull();
+    left.setExpandRatio(contactList, 1);
+
+    HorizontalLayout mainLayout = new HorizontalLayout(left, contactForm);
+    mainLayout.setSizeFull();
+    mainLayout.setExpandRatio(left, 1);
+
+    // Split and allow resizing
+    setContent(mainLayout);
+  }
+
+  void refreshContacts() {
+    refreshContacts(filter.getValue());
+  }
+
+  private void refreshContacts(String stringFilter) {
+    container.refresh();
+//    contactList.setContainerDataSource(new BeanItemContainer<>(
+//      Contact.class, service.findAll(stringFilter)));
+    contactForm.setVisible(false);
+  }
+
+  @WebServlet(urlPatterns = "/2/*")
+  @VaadinServletConfiguration(ui = AddressbookUI2.class, productionMode = false)
+  public static class MyUIServlet extends VaadinServlet {
+
+  }
+
+}
@@ -3,7 +3,7 @@
  * To change this template file, choose Tools | Templates
  * and open the template in the editor.
  */
-package net.korabo.app.vaadin01;
+package net.korabo.app.vaadin01.ui;
 
 import com.vaadin.data.fieldgroup.BeanFieldGroup;
 import com.vaadin.data.fieldgroup.FieldGroup;
@@ -1,4 +1,4 @@
-package net.korabo.app.vaadin01;
+package net.korabo.app.vaadin01.ui;
 
 import javax.servlet.annotation.WebServlet;
 
index 754ba4b..a5670b7 100644 (file)
@@ -1,7 +1,7 @@
-/* This file is automatically managed and will be overwritten from time to time. */\r
-/* Do not manually edit this file. */\r
-\r
-/* Import and include this mixin into your project theme to include the addon themes */\r
-@mixin addons {\r
-}\r
-\r
+/* This file is automatically managed and will be overwritten from time to time. */
+/* Do not manually edit this file. */
+
+/* Import and include this mixin into your project theme to include the addon themes */
+@mixin addons {
+}
+