From 4d415678dd09b79ea0649027d27cf319f3762589 Mon Sep 17 00:00:00 2001 From: hkarwa2s <holger.karwanni@smail.inf.h-brs.de> Date: Wed, 14 Jun 2017 12:11:59 +0200 Subject: [PATCH] =?UTF-8?q?Shop=20Search=20hinzugef=C3=BCgt=20Warenkorb=20?= =?UTF-8?q?hinzugef=C3=BCgt,=20Produkte=20hinzuf=C3=BCgbar=20Package=20Str?= =?UTF-8?q?uktur=20angepasst=20ShopSearch=20hinzugef=C3=BCgt=20(nicht=20fi?= =?UTF-8?q?nal)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 4 +- src/main/java/org/s4s/dao/ProductDAO.java | 4 +- src/main/java/org/s4s/dao/ShopSearchDAO.java | 21 ++++ .../java/org/s4s/gui/views/LoginView.java | 17 ++-- .../org/s4s/gui/views/RegistrierungView.java | 2 +- .../org/s4s/gui/views/ShopErstellung.java | 96 +++++++++---------- src/main/java/org/s4s/gui/views/ShopView.java | 55 +++++++++-- .../java/org/s4s/gui/views/WarenkorbView.java | 52 ++++++++-- src/main/java/org/s4s/modell/dto/Product.java | 14 +-- src/main/java/org/s4s/modell/dto/Shop.java | 60 ++++++++++++ src/main/java/org/s4s/modell/dto/User.java | 55 ++++------- .../java/org/s4s/modell/dto/Warenkorb.java | 39 ++++++++ .../control}/LoginControl.java | 22 +++-- .../control}/LogoutControl.java | 2 +- .../control}/ProductSearch.java | 28 +++--- .../control}/RegistrationControl.java | 4 +- .../impl => process/control}/ShopControl.java | 2 +- .../org/s4s/process/control/ShopSearch.java | 82 ++++++++++++++++ .../control}/TransactionControl.java | 0 .../org/s4s/dao/impl/LoginControl_Test.java | 6 +- .../dao/impl/RegistrationControl_Test.java | 26 +++-- 21 files changed, 412 insertions(+), 179 deletions(-) create mode 100644 src/main/java/org/s4s/dao/ShopSearchDAO.java rename src/main/java/org/s4s/{dao/impl => process/control}/LoginControl.java (79%) rename src/main/java/org/s4s/{dao/impl => process/control}/LogoutControl.java (93%) rename src/main/java/org/s4s/{dao/impl => process/control}/ProductSearch.java (78%) rename src/main/java/org/s4s/{dao/impl => process/control}/RegistrationControl.java (98%) rename src/main/java/org/s4s/{dao/impl => process/control}/ShopControl.java (98%) create mode 100644 src/main/java/org/s4s/process/control/ShopSearch.java rename src/main/java/org/s4s/{dao/impl => process/control}/TransactionControl.java (100%) diff --git a/pom.xml b/pom.xml index 50a896d..b36bf66 100644 --- a/pom.xml +++ b/pom.xml @@ -113,11 +113,11 @@ <version>1.3</version> <scope>test</scope> </dependency> - <dependency> + <!-- <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>LATEST</version> - </dependency> + </dependency>--> diff --git a/src/main/java/org/s4s/dao/ProductDAO.java b/src/main/java/org/s4s/dao/ProductDAO.java index b98d26f..8539e13 100644 --- a/src/main/java/org/s4s/dao/ProductDAO.java +++ b/src/main/java/org/s4s/dao/ProductDAO.java @@ -5,8 +5,8 @@ */ package org.s4s.dao; -import org.s4s.exceptions.DAOException; import java.util.List; +import org.s4s.exceptions.DAOException; import org.s4s.modell.dto.Product; /** @@ -15,7 +15,7 @@ import org.s4s.modell.dto.Product; */ public interface ProductDAO { - List<Product> getProductByTyp(String typ) throws DAOException; + List<Product> getProductByName(String typ) throws DAOException; List<Product> getProductByDescription(String typ) throws DAOException; } diff --git a/src/main/java/org/s4s/dao/ShopSearchDAO.java b/src/main/java/org/s4s/dao/ShopSearchDAO.java new file mode 100644 index 0000000..a249379 --- /dev/null +++ b/src/main/java/org/s4s/dao/ShopSearchDAO.java @@ -0,0 +1,21 @@ +/* + * 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 org.s4s.dao; + +import java.util.List; +import org.s4s.exceptions.DAOException; +import org.s4s.modell.dto.Shop; + +/** + * + * @author Holger + */ +public interface ShopSearchDAO { + + List<Shop> getShopByName(String typ) throws DAOException; + + List<Shop> getShopByOwner(String typ) throws DAOException; +} diff --git a/src/main/java/org/s4s/gui/views/LoginView.java b/src/main/java/org/s4s/gui/views/LoginView.java index bfa8d4a..74487a1 100644 --- a/src/main/java/org/s4s/gui/views/LoginView.java +++ b/src/main/java/org/s4s/gui/views/LoginView.java @@ -5,7 +5,6 @@ */ package org.s4s.gui.views; -import com.vaadin.navigator.View; import com.vaadin.navigator.ViewChangeListener; import com.vaadin.server.FontAwesome; import com.vaadin.shared.ui.label.ContentMode; @@ -16,7 +15,7 @@ import java.util.logging.Logger; import org.s4s.exceptions.DAOException; import org.s4s.dao.KundenDAO; import org.s4s.exceptions.NoSuchUserOrPassword; -import org.s4s.dao.impl.LoginControl; +import org.s4s.process.control.LoginControl; import org.s4s.services.util.Views; /** @@ -38,8 +37,7 @@ public class LoginView extends TemplateView { final Label lblTitel = new Label("Anmelden"); titleLayout.addComponent(lblTitel); - titleLayout.setComponentAlignment(lblTitel,Alignment.MIDDLE_CENTER); - + titleLayout.setComponentAlignment(lblTitel, Alignment.MIDDLE_CENTER); final TextField userLogin = new TextField(); userLogin.setCaption("Login-Name: "); @@ -48,7 +46,7 @@ public class LoginView extends TemplateView { VerticalLayout layout = new VerticalLayout(); layout.addComponent(titleLayout); - layout.setComponentAlignment(titleLayout,Alignment.TOP_CENTER); + layout.setComponentAlignment(titleLayout, Alignment.TOP_CENTER); lblTitel.setStyleName("LoginViewContainerTitle"); titleLayout.setStyleName("LoginViewContainerTitelLayout"); layout.addComponent(userLogin); @@ -56,9 +54,9 @@ public class LoginView extends TemplateView { Label label = new Label(" ", ContentMode.HTML); layout.addComponent(label); - + HorizontalLayout hLay = new HorizontalLayout(); - + Button button = new Button("Login", FontAwesome.BEER); Button buttonReg = new Button("Registrieren", FontAwesome.BEER); hLay.addComponent(button); @@ -71,9 +69,9 @@ public class LoginView extends TemplateView { HorizontalLayout horSpacer = new HorizontalLayout(); horSpacer.addComponent(layout); this.addComponent(horSpacer); - horSpacer.setComponentAlignment(layout,Alignment.MIDDLE_CENTER); + horSpacer.setComponentAlignment(layout, Alignment.MIDDLE_CENTER); - this.setComponentAlignment(horSpacer,Alignment.MIDDLE_CENTER); + this.setComponentAlignment(horSpacer, Alignment.MIDDLE_CENTER); button.addClickListener(new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent event) { @@ -99,7 +97,6 @@ public class LoginView extends TemplateView { horSpacer.setStyleName("LoginViewContainer"); // layout.addComponent(buttonReg); - buttonReg.addClickListener(new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent event) { diff --git a/src/main/java/org/s4s/gui/views/RegistrierungView.java b/src/main/java/org/s4s/gui/views/RegistrierungView.java index 47e424a..05705a3 100644 --- a/src/main/java/org/s4s/gui/views/RegistrierungView.java +++ b/src/main/java/org/s4s/gui/views/RegistrierungView.java @@ -20,7 +20,7 @@ import com.vaadin.ui.PasswordField; import com.vaadin.ui.TextField; import com.vaadin.ui.UI; import java.util.Date; -import org.s4s.dao.impl.RegistrationControl; +import org.s4s.process.control.RegistrationControl; import org.s4s.services.util.Views; diff --git a/src/main/java/org/s4s/gui/views/ShopErstellung.java b/src/main/java/org/s4s/gui/views/ShopErstellung.java index d8a0816..31c2e14 100644 --- a/src/main/java/org/s4s/gui/views/ShopErstellung.java +++ b/src/main/java/org/s4s/gui/views/ShopErstellung.java @@ -9,12 +9,10 @@ import com.vaadin.navigator.View; import com.vaadin.navigator.ViewChangeListener; import com.vaadin.server.FontAwesome; import com.vaadin.shared.ui.label.ContentMode; -import com.vaadin.ui.Alignment; import com.vaadin.ui.Button; import com.vaadin.ui.FormLayout; import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.Label; -import com.vaadin.ui.NativeSelect; import com.vaadin.ui.Panel; import com.vaadin.ui.TextArea; import com.vaadin.ui.TextField; @@ -22,7 +20,7 @@ import com.vaadin.ui.UI; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; -import org.s4s.dao.impl.ShopControl; +import org.s4s.process.control.ShopControl; import org.s4s.exceptions.OwnsAlreadyShop; import org.s4s.services.util.Views; @@ -31,84 +29,78 @@ import org.s4s.services.util.Views; * @author JanPhilipp */ public class ShopErstellung extends TemplateView implements View { - - private String s = null; - @Override + + private String s = null; + + @Override public void enter(ViewChangeListener.ViewChangeEvent event) { this.setUp(); } private void setUp() { - Panel panel = new Panel("ShopErstellung"); - panel.setSizeUndefined(); - - FormLayout content = new FormLayout(); + Panel panel = new Panel("ShopErstellung"); + panel.setSizeUndefined(); + + FormLayout content = new FormLayout(); // TextField shopowner = new TextField("Name des Shoperstellers"); // content.addComponent(shopowner); - - TextField shopname = new TextField("Name des Shops"); - content.addComponent(shopname); - + TextField shopname = new TextField("Name des Shops"); + content.addComponent(shopname); + // NativeSelect select = new NativeSelect("Position an der Hochschule"); // select.addItems("Student", "Hivi", "Prof"); // select.setNullSelectionAllowed(false); // content.addComponent(select); - - TextArea area = new TextArea("Shopbeschreibung"); - content.addComponent(area); + TextArea area = new TextArea("Shopbeschreibung"); + content.addComponent(area); // TextField emailTxt = new TextField("E-Mail:"); // emailTxt.setIcon(FontAwesome.MAIL_FORWARD); // content.addComponent(emailTxt); + HorizontalLayout buttons = new HorizontalLayout(); + Button abbruch = new Button("Abbruch"); + abbruch.setIcon(FontAwesome.STOP_CIRCLE); + buttons.addComponent(abbruch); + buttons.addComponent(new Label(" ", ContentMode.HTML)); + Button bestätigen = new Button("Bestätigen"); + bestätigen.setIcon(FontAwesome.CHECK); + buttons.addComponent(bestätigen); - HorizontalLayout buttons = new HorizontalLayout(); - Button abbruch = new Button("Abbruch"); - abbruch.setIcon(FontAwesome.STOP_CIRCLE); - buttons.addComponent(abbruch); - buttons.addComponent(new Label(" ", ContentMode.HTML)); - Button bestätigen = new Button("Bestätigen"); - bestätigen.setIcon(FontAwesome.CHECK); - buttons.addComponent(bestätigen); - - content.addComponent(buttons); - content.setMargin(true); + content.addComponent(buttons); + content.setMargin(true); - panel.setContent(content); - //this.addComponent(panel); - //this.setComponentAlignment(panel, Alignment.MIDDLE_CENTER); - - + panel.setContent(content); + //this.addComponent(panel); + //this.setComponentAlignment(panel, Alignment.MIDDLE_CENTER); - bestätigen.addClickListener( e -> { + bestätigen.addClickListener(e -> { // String shopOwner = shopowner.getValue(); // String email = emailTxt.getValue(); - String shopName = shopname.getValue(); - String beschreibung = area.getValue(); - try { - ShopControl.checkUserShop(shopName, beschreibung); - } catch (OwnsAlreadyShop ex) { - Logger.getLogger(ShopErstellung.class.getName()).log(Level.SEVERE, null, ex); - } catch (SQLException ex) { - Logger.getLogger(ShopErstellung.class.getName()).log(Level.SEVERE, null, ex); - } - UI.getCurrent().getNavigator().navigateTo(Views.SHOPERSTELLUNGSBESTAETIGUNG); - // select.addValueChangeListener(event ->); + String shopName = shopname.getValue(); + String beschreibung = area.getValue(); + try { + ShopControl.checkUserShop(shopName, beschreibung); + } catch (OwnsAlreadyShop ex) { + Logger.getLogger(ShopErstellung.class.getName()).log(Level.SEVERE, null, ex); + } catch (SQLException ex) { + Logger.getLogger(ShopErstellung.class.getName()).log(Level.SEVERE, null, ex); + } + UI.getCurrent().getNavigator().navigateTo(Views.SHOPERSTELLUNGSBESTAETIGUNG); + // select.addValueChangeListener(event ->); // System.out.println(shopOwner); - System.out.println(shopname); + System.out.println(shopname); // System.out.println(email); - System.out.println(beschreibung); - System.out.println(s); + System.out.println(beschreibung); + System.out.println(s); - - // Weiterleitung auf Bestätigunsseite - + // Weiterleitung auf Bestätigunsseite }); abbruch.addClickListener(e -> { UI.getCurrent().getNavigator().navigateTo(Views.WELCOME); }); - super.setUpFooterAndHeader(panel); + super.setUpFooterAndHeader(panel); } } diff --git a/src/main/java/org/s4s/gui/views/ShopView.java b/src/main/java/org/s4s/gui/views/ShopView.java index 89dfc82..e84eac4 100644 --- a/src/main/java/org/s4s/gui/views/ShopView.java +++ b/src/main/java/org/s4s/gui/views/ShopView.java @@ -6,6 +6,8 @@ package org.s4s.gui.views; import com.vaadin.data.util.BeanContainer; +import com.vaadin.data.util.BeanItem; +import com.vaadin.event.ItemClickEvent; import com.vaadin.navigator.ViewChangeListener; import com.vaadin.server.FontAwesome; import com.vaadin.ui.Alignment; @@ -17,11 +19,13 @@ import com.vaadin.ui.Table; import com.vaadin.ui.TextField; import java.util.HashSet; import java.util.Set; -import org.s4s.exceptions.DAOException; -import org.s4s.exceptions.NoSuchProduct; import org.s4s.dao.ProductDAO; -import org.s4s.dao.impl.ProductSearch; +import org.s4s.dao.ShopSearchDAO; import org.s4s.modell.dto.Product; +import org.s4s.modell.dto.Shop; +import org.s4s.modell.dto.Warenkorb; +import org.s4s.process.control.ProductSearch; +import org.s4s.process.control.ShopSearch; /** * @@ -30,6 +34,9 @@ import org.s4s.modell.dto.Product; public class ShopView extends TemplateView { private final ProductDAO products = ProductSearch.getInstance(); + private final ShopSearchDAO shops = ShopSearch.getInstance(); + private Product product = null; + private final Warenkorb warenkorb = Warenkorb.getInstance(); @Override public void enter(ViewChangeListener.ViewChangeEvent event) { @@ -37,6 +44,7 @@ public class ShopView extends TemplateView { } public void setUp() { + //super.setUpFooterAndHeader(this); // setSizeFull(); setMargin(true); @@ -61,9 +69,14 @@ public class ShopView extends TemplateView { final BeanContainer<Integer, Product> data = new BeanContainer<>(Product.class); data.setBeanIdProperty("id"); final Table table = new Table("Products", data); + /*final BeanContainer<Integer, Shop> data = new BeanContainer<>(Shop.class); + data.setBeanIdProperty("id"); + final Table table = new Table("Shops", data);*/ table.setSizeFull(); table.setSelectable(true); + Set<Product> liste = new HashSet<>(); + Set<Shop> listeShops = new HashSet<>(); button.addClickListener((Button.ClickEvent event) -> { String str = textfield.getValue().trim(); @@ -72,19 +85,43 @@ public class ShopView extends TemplateView { } else { addComponent(table); - Set<Product> liste = new HashSet<>(); try { - liste.addAll(products.getProductByTyp(str)); + liste.addAll(products.getProductByName(str)); liste.addAll(products.getProductByDescription(str)); - } catch (DAOException ex) { - + //listeShops.addAll(shops.getShopByName(str)); + //listeShops.addAll(shops.getShopByOwner(str)); + } catch (Exception ex) { + //eig. DAO Exception, aber fehler... } - - data.removeAllItems(); data.addAll(liste); table.setPageLength(table.size()); } }); + + Button addButton = new Button("Hinzufügen"); + + addButton.addClickListener((event) -> { + if (this.product == null) { + Notification.show(null, "Bitte Produkt(e) auswählen!", Notification.Type.HUMANIZED_MESSAGE); + } else { + warenkorb.add(product); + System.out.println(warenkorb.getAnzahl()); + } + }); + + addComponent(addButton); + setComponentAlignment(addButton, Alignment.MIDDLE_CENTER); + + table.addItemClickListener(new ItemClickEvent.ItemClickListener() { + @Override + public void itemClick(ItemClickEvent event) { + BeanItem<Product> productBean = data.getItem(event.getItemId()); + product = productBean.getBean(); + } + }); + + // BeanItem<Product> item = (BeanItem) liste.getItem(liste.getValue); + // Product myBean = item.getBean(); } } diff --git a/src/main/java/org/s4s/gui/views/WarenkorbView.java b/src/main/java/org/s4s/gui/views/WarenkorbView.java index 8a7a1dc..8a23dea 100644 --- a/src/main/java/org/s4s/gui/views/WarenkorbView.java +++ b/src/main/java/org/s4s/gui/views/WarenkorbView.java @@ -7,8 +7,15 @@ package org.s4s.gui.views; import com.vaadin.navigator.ViewChangeListener; import com.vaadin.server.VaadinSession; +import com.vaadin.ui.Alignment; import com.vaadin.ui.Notification; +import com.vaadin.ui.Panel; +import com.vaadin.ui.Table; import com.vaadin.ui.UI; +import com.vaadin.ui.VerticalLayout; +import java.util.HashSet; +import java.util.Set; +import org.s4s.modell.dto.Product; import org.s4s.modell.dto.Warenkorb; import org.s4s.services.util.Roles; import org.s4s.services.util.Views; @@ -17,21 +24,50 @@ import org.s4s.services.util.Views; * * @author Holger */ -public class WarenkorbView extends TemplateView{ - +public class WarenkorbView extends TemplateView { + + private final Warenkorb warenkorb = Warenkorb.getInstance(); + private VaadinSession session = UI.getCurrent().getSession(); + @Override public void enter(ViewChangeListener.ViewChangeEvent event) { this.setUp(); } - - public void setUp(){ + + public void setUp() { VaadinSession session = UI.getCurrent().getSession(); - - if(session.getAttribute(Roles.CURRENTUSER) == null){ + if (session.getAttribute(Roles.CURRENTUSER) == null) { UI.getCurrent().getNavigator().navigateTo(Views.LOGIN); Notification.show(null, "Einloggen, um auf den Warenkorb zuzugreifen!", Notification.Type.WARNING_MESSAGE); } - - + + final VerticalLayout contentLayout = new VerticalLayout(); + super.setUpFooterAndHeader(contentLayout); + + if (warenkorb.getAnzahl() == 0) { + Panel panel = new Panel("Der Warenkorb ist leer!"); + this.addComponent(panel); + this.setComponentAlignment(panel, Alignment.TOP_LEFT); + } else { + Panel pAnzahl = new Panel("In Ihrem Warenkorb sind momentan: " + warenkorb.getAnzahl() + " Artikel!"); + this.addComponent(pAnzahl); + this.setComponentAlignment(pAnzahl, Alignment.TOP_LEFT); + + Panel pSum = new Panel("Gesamtwert im Warenkorb beträgt: " + warenkorb.sum()); + this.addComponent(pSum); + this.setComponentAlignment(pSum, Alignment.TOP_RIGHT); + warenkorb.auflisten(); + final Table table = new Table("Ihr Warenkorb"); + table.addContainerProperty("Bezeichnung", String.class, null); + table.addContainerProperty("Preis", Double.class, null); + table.addContainerProperty("Menge", Integer.class, null); + // table.setSizeFull(); + // table.setSelectable(true); + addComponent(table); + Set<Product> liste = new HashSet<>(); + liste.addAll(warenkorb.inhalt()); + //data.addAll(liste); + this.setComponentAlignment(table, Alignment.TOP_CENTER); + } } } diff --git a/src/main/java/org/s4s/modell/dto/Product.java b/src/main/java/org/s4s/modell/dto/Product.java index 5ae338a..fb5c014 100644 --- a/src/main/java/org/s4s/modell/dto/Product.java +++ b/src/main/java/org/s4s/modell/dto/Product.java @@ -14,13 +14,11 @@ import org.apache.commons.lang3.builder.HashCodeBuilder; */ public class Product { - private Warenkorb warenkorb; - private String name; + private String description; + private double price; private Integer id; private String typ; - private double price; - private String description; public Product(String name, Integer id, String typ, double price, String description) { this.name = name; @@ -34,14 +32,6 @@ public class Product { } - public void setWarenkorb(Warenkorb warenkorb) { - this.warenkorb = warenkorb; - } - - public Warenkorb getWarenkorb() { - return warenkorb; - } - @Override public boolean equals(Object other) { if (other == null) { diff --git a/src/main/java/org/s4s/modell/dto/Shop.java b/src/main/java/org/s4s/modell/dto/Shop.java index cd03c32..a98cd45 100644 --- a/src/main/java/org/s4s/modell/dto/Shop.java +++ b/src/main/java/org/s4s/modell/dto/Shop.java @@ -11,4 +11,64 @@ package org.s4s.modell.dto; */ public class Shop { + private int shopId; + private String name; + private int besitzer; + private double bewertung; + private int bewertunganzahl; + + public Shop(){ + + } + + public Shop(int shopId, String name, int besitzer, double bewertung, int bewertunganzahl){ + this.shopId = shopId; + this.name = name; + this.besitzer = besitzer; + this.bewertung = bewertung; + this.bewertunganzahl = bewertunganzahl; + } + + public int getShopId() { + return shopId; + } + + public void setShopId(int shopId) { + this.shopId = shopId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getBesitzer() { + return besitzer; + } + + public void setBesitzer(int besitzer) { + this.besitzer = besitzer; + } + + public double getBewertung() { + return bewertung; + } + + public void setBewertung(double bewertung) { + this.bewertung = bewertung; + } + + public int getBewertungsanzahl() { + return bewertunganzahl; + } + + public void setBewertungsanzahl(int bewertunganzahl) { + this.bewertunganzahl = bewertunganzahl; + } + + + } diff --git a/src/main/java/org/s4s/modell/dto/User.java b/src/main/java/org/s4s/modell/dto/User.java index b7ad3ea..e78eda6 100644 --- a/src/main/java/org/s4s/modell/dto/User.java +++ b/src/main/java/org/s4s/modell/dto/User.java @@ -5,8 +5,6 @@ */ package org.s4s.modell.dto; -import java.util.Date; - /** * * @author Holger @@ -14,63 +12,48 @@ import java.util.Date; public class User { private int userId; + private String email; + private String geburtsdatum; + private int fachbereichId; private String vorname; private String nachname; - private Date geburtsdatum; - private int fachbereichId; - private String email; - - private final String benutzername; public User(String benutzername){ this.benutzername = benutzername; } - - public String getBenutzername() { - return benutzername; - } - public String getVorname() { - return vorname; - } - - public void setVorname(String vorname) { - this.vorname = vorname; - } - - public String getNachname() { - return nachname; + public int getUserId() { + return userId; } - public void setNachname(String nachname) { - this.nachname = nachname; + public String getEmail() { + return email; } - public Date getGeburtsdatum() { + public String getGeburtsdatum() { return geburtsdatum; } - public void setGeburtsdatum(Date geburtsdatum) { - this.geburtsdatum = geburtsdatum; - } - public int getFachbereichId() { return fachbereichId; } - public void setFachbereichId(int fachbereichId) { - this.fachbereichId = fachbereichId; + public String getBenutzername() { + return benutzername; } - public String getEmail() { - return email; + + public String getVorname() { + return vorname; } - public void setEmail(String email) { - this.email = email; + public String getNachname() { + return nachname; + } + + public String getUsername() { + return benutzername; } - - } diff --git a/src/main/java/org/s4s/modell/dto/Warenkorb.java b/src/main/java/org/s4s/modell/dto/Warenkorb.java index 97da541..4937c7e 100644 --- a/src/main/java/org/s4s/modell/dto/Warenkorb.java +++ b/src/main/java/org/s4s/modell/dto/Warenkorb.java @@ -15,11 +15,23 @@ import java.util.List; public class Warenkorb { private final List<Product> products; + private static Warenkorb warenkorb; public Warenkorb() { products = new ArrayList<>(); } + public static Warenkorb getInstance() { + if (warenkorb == null) { + warenkorb = new Warenkorb(); + } + return warenkorb; + } + + public List<Product> inhalt() { + return products; + } + public void add(Product p) { if (p == null) { throw new NullPointerException("Produkt darf nicht null sein!"); @@ -27,6 +39,10 @@ public class Warenkorb { products.add(p); } + public Product getProduct(int i) { + return products.get(i); + } + public void remove(Product p) { if (p == null) { throw new NullPointerException("Produkt darf nicht null sein!"); @@ -37,6 +53,10 @@ public class Warenkorb { products.remove(p); } + public void clear() { + products.clear(); + } + public double sum() { return products.stream().mapToDouble(p -> p.getPrice()).sum(); } @@ -51,4 +71,23 @@ public class Warenkorb { public int getAnzahl() { return products.size(); } + + public void auflisten() { + products.forEach((p) -> { + System.out.println(p.getName() + ", " + p.getPrice()); + //System.out.println(p.getName()); + }); + } + + /* public BeanContainer<Integer, Product> ausgabe() { + final BeanContainer<Integer, Product> data = new BeanContainer<>(Product.class); + data.setBeanIdProperty("id"); + products.forEach((product) -> { + data.addBean(product); + }); + final Table table = new Table("Products", data); + table.setSizeFull(); + table.setSelectable(true); + return data; + }*/ } diff --git a/src/main/java/org/s4s/dao/impl/LoginControl.java b/src/main/java/org/s4s/process/control/LoginControl.java similarity index 79% rename from src/main/java/org/s4s/dao/impl/LoginControl.java rename to src/main/java/org/s4s/process/control/LoginControl.java index 189a124..7c49938 100644 --- a/src/main/java/org/s4s/dao/impl/LoginControl.java +++ b/src/main/java/org/s4s/process/control/LoginControl.java @@ -3,14 +3,15 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package org.s4s.dao.impl; +package org.s4s.process.control; import com.vaadin.server.VaadinSession; import com.vaadin.ui.UI; import java.sql.*; import javax.swing.JOptionPane; -import org.s4s.exceptions.DAOException; import org.s4s.dao.KundenDAO; +import org.s4s.dao.impl.AbstractDatabaseClass; +import org.s4s.exceptions.DAOException; import org.s4s.exceptions.NoSuchUserOrPassword; import org.s4s.modell.dto.User; import org.s4s.services.util.Roles; @@ -30,17 +31,18 @@ public class LoginControl extends AbstractDatabaseClass implements KundenDAO { public void getUserByCredentials(String username, String password) throws NoSuchUserOrPassword, DAOException { //Von Max und Knobie //Von Holger vervollständigt - - try(ResultSet set = executeQuery("SELECT u.\"benutzername\"" - + " FROM \"ERR\".\"user\" u " - + " WHERE u.benutzername = '" + username + "' " - + " AND u.passwort = '" + password + "';")) {if (!set.next()) { + + try (ResultSet set = executeQuery("SELECT u.\"benutzername\"" + + " FROM \"ERR\".\"user\" u " + + " WHERE u.benutzername = '" + username + "' " + + " AND u.passwort = '" + password + "';")) { + if (!set.next()) { throw new NoSuchUserOrPassword(); } String bname = set.getString("benutzername"); - + User user = new User(bname); - + createSession(user); } catch (SQLException ex) { @@ -50,7 +52,7 @@ public class LoginControl extends AbstractDatabaseClass implements KundenDAO { @Override public void createSession(User user) throws NoSuchUserOrPassword, DAOException { - VaadinSession session = UI.getCurrent().getSession(); + VaadinSession session = UI.getCurrent().getSession(); session.setAttribute(Roles.CURRENTUSER, user); UI.getCurrent().getNavigator().navigateTo(Views.WELCOME); //System.out.println(user.getBenutzername()); diff --git a/src/main/java/org/s4s/dao/impl/LogoutControl.java b/src/main/java/org/s4s/process/control/LogoutControl.java similarity index 93% rename from src/main/java/org/s4s/dao/impl/LogoutControl.java rename to src/main/java/org/s4s/process/control/LogoutControl.java index d19e710..620313e 100644 --- a/src/main/java/org/s4s/dao/impl/LogoutControl.java +++ b/src/main/java/org/s4s/process/control/LogoutControl.java @@ -3,7 +3,7 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package org.s4s.dao.impl; +package org.s4s.process.control; import com.vaadin.server.VaadinSession; import com.vaadin.ui.UI; diff --git a/src/main/java/org/s4s/dao/impl/ProductSearch.java b/src/main/java/org/s4s/process/control/ProductSearch.java similarity index 78% rename from src/main/java/org/s4s/dao/impl/ProductSearch.java rename to src/main/java/org/s4s/process/control/ProductSearch.java index 9852555..5664a3c 100644 --- a/src/main/java/org/s4s/dao/impl/ProductSearch.java +++ b/src/main/java/org/s4s/process/control/ProductSearch.java @@ -3,17 +3,16 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package org.s4s.dao.impl; +package org.s4s.process.control; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.s4s.exceptions.DAOException; -import org.s4s.exceptions.NoSuchProduct; import org.s4s.dao.ProductDAO; +import org.s4s.dao.impl.AbstractDatabaseClass; import org.s4s.modell.dto.Product; -import org.s4s.services.db.JDBCConnection; /** * @@ -24,7 +23,6 @@ public class ProductSearch extends AbstractDatabaseClass implements ProductDAO { // Product p1 = new Product("Nachhilfe Algebra", 1, "Nachhilfe", 2.00, "Biete Nachhilfe in Algebra an!"); // Product p2 = new Product("F&I", 2, "Mitschriften", 5.00, "Mitschriften aus dem WS16/17 in F&I!"); // Product p3 = new Product("Übungen Eidip", 3, "Lösungen", 10.50, "Lösungen zu alten Eidip Aufgaben!"); - private ProductSearch() { } @@ -39,18 +37,18 @@ public class ProductSearch extends AbstractDatabaseClass implements ProductDAO { } @Override - public List<Product> getProductByTyp(String kateg) throws DAOException { + public List<Product> getProductByName(String kate) throws DAOException { List<Product> liste = new ArrayList<>(); - try( ResultSet set = executeQuery("SELECT *" - + " FROM \"ERR\".\"artikel\" a" - + " WHERE LOWER(a.kategorie) = LOWER('" + kateg + "');")) { - while(set.next()) { + try (ResultSet set = executeQuery("SELECT *" + + " FROM \"ERR\".\"artikel\" a" + + " WHERE LOWER(a.name) = LOWER('" + kate + "');")) { + while (set.next()) { String name = set.getString("name"); int id = set.getInt("artikelID"); String kategorie = set.getString("kategorie"); double price = set.getDouble("preis"); String description = set.getString("beschreibung"); - + Product p = new Product(name, id, kategorie, price, description); liste.add(p); } @@ -63,16 +61,16 @@ public class ProductSearch extends AbstractDatabaseClass implements ProductDAO { @Override public List<Product> getProductByDescription(String descrip) throws DAOException { List<Product> liste = new ArrayList<>(); - try(ResultSet set = executeQuery("SELECT *" - + " FROM \"ERR\".\"artikel\" a" - + " WHERE LOWER(a.beschreibung) ILIKE LOWER('%" + descrip + "%');")) { - while(set.next()) { + try (ResultSet set = executeQuery("SELECT *" + + " FROM \"ERR\".\"artikel\" a" + + " WHERE LOWER(a.beschreibung) ILIKE LOWER('%" + descrip + "%');")) { + while (set.next()) { String name = set.getString("name"); int id = set.getInt("artikelID"); String kategorie = set.getString("kategorie"); double price = set.getDouble("preis"); String description = set.getString("beschreibung"); - + Product p = new Product(name, id, kategorie, price, description); liste.add(p); } diff --git a/src/main/java/org/s4s/dao/impl/RegistrationControl.java b/src/main/java/org/s4s/process/control/RegistrationControl.java similarity index 98% rename from src/main/java/org/s4s/dao/impl/RegistrationControl.java rename to src/main/java/org/s4s/process/control/RegistrationControl.java index 7e1a192..076dfbb 100644 --- a/src/main/java/org/s4s/dao/impl/RegistrationControl.java +++ b/src/main/java/org/s4s/process/control/RegistrationControl.java @@ -3,8 +3,7 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package org.s4s.dao.impl; - +package org.s4s.process.control; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -13,6 +12,7 @@ import org.s4s.dao.RegistrationDAO; import org.s4s.exceptions.WrongInputException; + /** * * @author Simon diff --git a/src/main/java/org/s4s/dao/impl/ShopControl.java b/src/main/java/org/s4s/process/control/ShopControl.java similarity index 98% rename from src/main/java/org/s4s/dao/impl/ShopControl.java rename to src/main/java/org/s4s/process/control/ShopControl.java index 86bac45..5c0e8b7 100644 --- a/src/main/java/org/s4s/dao/impl/ShopControl.java +++ b/src/main/java/org/s4s/process/control/ShopControl.java @@ -3,7 +3,7 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package org.s4s.dao.impl; +package org.s4s.process.control; import com.vaadin.server.VaadinSession; import com.vaadin.ui.UI; diff --git a/src/main/java/org/s4s/process/control/ShopSearch.java b/src/main/java/org/s4s/process/control/ShopSearch.java new file mode 100644 index 0000000..a9437f4 --- /dev/null +++ b/src/main/java/org/s4s/process/control/ShopSearch.java @@ -0,0 +1,82 @@ +/* + * 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 org.s4s.process.control; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; +import org.s4s.dao.ShopSearchDAO; +import org.s4s.dao.impl.AbstractDatabaseClass; +import org.s4s.exceptions.DAOException; +import org.s4s.modell.dto.Shop; + +/** + * + * @author Holger + */ +public class ShopSearch extends AbstractDatabaseClass implements ShopSearchDAO { + + private ShopSearch() { + + } + + public static ShopSearch search = null; + + public static ShopSearch getInstance() { + if (search == null) { + search = new ShopSearch(); + } + return search; + } + + @Override + public List<Shop> getShopByName(String typ) throws DAOException { + List<Shop> liste = new ArrayList<>(); + + try (ResultSet set = executeQuery("SELECT *" + + " FROM \"ERR\".\"shop\" s" + + " WHERE LOWER(s.name) = LOWER('" + typ + "');")) { + while (set.next()) { + int shopId = set.getInt("shopid"); + String name = set.getString("name"); + int besitzer = set.getInt("besitzer"); + double bewertung = set.getDouble("bewertung"); + int bewertunganzahl = set.getInt("bewertungsanzahl"); + + Shop s = new Shop(shopId, name, besitzer, bewertung, bewertunganzahl); + liste.add(s); + } + } catch (SQLException ex) { + throw new DAOException(ex); + } + return liste; + } + + @Override + public List<Shop> getShopByOwner(String typ) throws DAOException { + List<Shop> liste = new ArrayList<>(); + + try (ResultSet set = executeQuery("SELECT *" + + " FROM \"ERR\".\"shop\" s" + + " WHERE LOWER(s.besitzer) = LOWER('" + typ + "');")) { + while (set.next()) { + int shopId = set.getInt("shopid"); + String name = set.getString("name"); + int besitzer = set.getInt("besitzer"); + double bewertung = set.getDouble("bewertung"); + int bewertunganzahl = set.getInt("bewertungsanzahl"); + + Shop s = new Shop(shopId, name, besitzer, bewertung, bewertunganzahl); + liste.add(s); + } + } catch (SQLException ex) { + throw new DAOException(ex); + } + return liste; + } + +} diff --git a/src/main/java/org/s4s/dao/impl/TransactionControl.java b/src/main/java/org/s4s/process/control/TransactionControl.java similarity index 100% rename from src/main/java/org/s4s/dao/impl/TransactionControl.java rename to src/main/java/org/s4s/process/control/TransactionControl.java diff --git a/src/test/java/org/s4s/dao/impl/LoginControl_Test.java b/src/test/java/org/s4s/dao/impl/LoginControl_Test.java index 5d25a20..d1b5c78 100644 --- a/src/test/java/org/s4s/dao/impl/LoginControl_Test.java +++ b/src/test/java/org/s4s/dao/impl/LoginControl_Test.java @@ -4,9 +4,7 @@ import org.junit.Test; import org.s4s.dao.KundenDAO; import org.s4s.exceptions.DAOException; import org.s4s.exceptions.NoSuchUserOrPassword; -import org.s4s.modell.dto.User; - -import static org.junit.Assert.*; +import org.s4s.process.control.LoginControl; /** * Created by uerdingen on 03.06.17. @@ -20,4 +18,4 @@ public class LoginControl_Test { kundenDAO.getUserByCredentials("testuser", "54321"); } -} \ No newline at end of file +} diff --git a/src/test/java/org/s4s/dao/impl/RegistrationControl_Test.java b/src/test/java/org/s4s/dao/impl/RegistrationControl_Test.java index d3a6ffe..9efe9a6 100644 --- a/src/test/java/org/s4s/dao/impl/RegistrationControl_Test.java +++ b/src/test/java/org/s4s/dao/impl/RegistrationControl_Test.java @@ -1,33 +1,31 @@ package org.s4s.dao.impl; -import org.junit.Before; -import org.junit.Test; - import static org.junit.Assert.*; +import org.junit.Test; +import org.s4s.process.control.RegistrationControl; /** * Created by uerdingen on 03.06.17. */ public class RegistrationControl_Test { - private String[] data1 = new String[7]; - - @Test - public void nameValidator_Test(){ - assertTrue(RegistrationControl.nameValidator("Uerdingen")); - assertFalse(RegistrationControl.nameValidator("fs2df3")); - } + private String[] data1 = new String[7]; + @Test + public void nameValidator_Test() { + assertTrue(RegistrationControl.nameValidator("Uerdingen")); + assertFalse(RegistrationControl.nameValidator("fs2df3")); + } //unfinished @Test - public void Registration_Test(){ + public void Registration_Test() { data1[0] = "Uerdingen"; data1[1] = "Simon"; data1[2] = "simon.uerdingen@inf.h-brs.de"; data1[4] = "12345"; - //assertTrue(RegistrationControl.init(data1)); - //@TM: der Test muss neu geschrieben werden, wegen Änderungen in View, DAO & Control; svolle2s + //assertTrue(RegistrationControl.init(data1)); + //@TM: der Test muss neu geschrieben werden, wegen Änderungen in View, DAO & Control; svolle2s } -} \ No newline at end of file +} -- GitLab