diff --git a/pom.xml b/pom.xml index 50a896db84d4ff46d7b197824ade182793aa4afc..b36bf668f977903b00a839dcd3221453cddf1a32 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 b98d26fdff2c5beeda20baac2de9b159ba833c23..8539e13a8b000b5d4e788e79114d2a802c37bde6 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 0000000000000000000000000000000000000000..a249379bcb291527e1c65db74fd738c6a21d20c8 --- /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 bfa8d4a14805a53969ef253a5a2b8933d8168154..74487a11a9b1a32b5aee0d469184964df971378c 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 47e424a476689d374d7307e1734f696ec4663b08..05705a38e4319143bfbd4c1bab1f743f4dddad71 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 d8a0816b3f8c608503d3efc4b56e3670cf6268b9..31c2e141006bb5e57c6062f8ea1020b8264fe3d1 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 89dfc82b4ae46a82f9e9fbde3ef2f0c54c9ac1ab..e84eac49d03c61677dbe55df9fb4394eb656dc8d 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 8a7a1dc3a290f9c8336ed7b6da9dcb8ad086ace2..8a23dea4044536dcf0bec571a14e460a7f550358 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 5ae338a71335f2c7fac0ea340cb5662a65829c89..fb5c0148a80d548bb1fdf440d00130cd3f72bdc4 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 cd03c3246624ffa74829bdb4165bd9596b6f10a8..a98cd454e84431c391538118b4ea03df19335671 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 b7ad3eafdefe5be7d1364e4158063060cd24ef27..e78eda6af4183e67fe7c9c37e8e898ad859b5ecd 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 97da541b3d3478180be8e75c5b250bf4f8f95955..4937c7e795f773819c478e09aaf5fc3f127b2c65 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 189a124e829828d4f597fc2a85da9c7e7a1d8000..7c49938fa4d53f42f88ab6d957fd9a08844bcecd 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 d19e710fa2553d676dc537fff089b1cfa35debad..620313e17e08521964980928ea07e766101449bb 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 985255584611f6290482d794018675506fc34001..5664a3c7a6ff79b87eeca76089a71f8a8d6f60cd 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 7e1a1925dbfb01e4eb8105be5286017e1fce530d..076dfbb932c0c0e5f7301299572a7015e9ac581a 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 86bac45639bd0eda2908da6f80af098631ebc4c3..5c0e8b72c1f0afbd5083c982e7c7d627c833ccd8 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 0000000000000000000000000000000000000000..a9437f4e848039f5617bbf0b32ffdbe48777c4be --- /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 5d25a2039b0fe431fb6a1d001623aa389a9994cb..d1b5c78e898bc1725e9dd53ac6dc86a3a645b4e4 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 d3a6ffe807274e2175b66b8ead0cddc6a0ca97aa..9efe9a6125a514e8e16c31573b6d4018978ecbfd 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 +}