From 27d1a6aa3e47a49095ad78835015c9e9c3e64af8 Mon Sep 17 00:00:00 2001 From: hkarwa2s <holger.karwanni@smail.inf.h-brs.de> Date: Sun, 18 Jun 2017 18:28:15 +0200 Subject: [PATCH] =?UTF-8?q?Super=20toller=20Prototyp=20f=C3=BCr=20eine=20A?= =?UTF-8?q?rtikeldetailView,=20logik=20dahinter=20steht=20fast=20komplett,?= =?UTF-8?q?=20nur=20optisch,=20m=C3=A4=C3=A4=C3=A4=C3=A4h=20=20=20=20->=20?= =?UTF-8?q?Daf=C3=BCr=20an=20ProductDAO=20und=20ProductSearch=20rumgebaste?= =?UTF-8?q?lt=20Hinzuf=C3=BCgen=20von=20Transaction=20DTO=20und=20anpassen?= =?UTF-8?q?=20User=20DTO=20Suche=20welche=20=C3=BCber=20TemplateView=20fun?= =?UTF-8?q?ktioniert=20(atm=20nur=20Produkte)=20Und=20viele=20kleine=20opt?= =?UTF-8?q?ische=20Anpassungen=20zur=20Lesbarkeit=20des=20Codes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/s4s/dao/ProductDAO.java | 2 + src/main/java/org/s4s/gui/InitView.java | 2 +- .../org/s4s/gui/views/ArtikeldetailsView.java | 46 +++++++++- .../views/{ShopView.java => SucheView.java} | 90 +++++-------------- .../java/org/s4s/gui/views/TemplateView.java | 24 +++-- .../java/org/s4s/gui/views/WarenkorbView.java | 56 ++++++++++-- .../java/org/s4s/modell/dto/Transaction.java | 47 ++++++++++ src/main/java/org/s4s/modell/dto/User.java | 28 +++++- .../org/s4s/process/control/LoginControl.java | 11 +-- .../s4s/process/control/ProductSearch.java | 31 ++++++- .../java/org/s4s/services/util/Views.java | 2 +- 11 files changed, 243 insertions(+), 96 deletions(-) rename src/main/java/org/s4s/gui/views/{ShopView.java => SucheView.java} (57%) create mode 100644 src/main/java/org/s4s/modell/dto/Transaction.java diff --git a/src/main/java/org/s4s/dao/ProductDAO.java b/src/main/java/org/s4s/dao/ProductDAO.java index ceaefd3..1c95fa3 100644 --- a/src/main/java/org/s4s/dao/ProductDAO.java +++ b/src/main/java/org/s4s/dao/ProductDAO.java @@ -13,4 +13,6 @@ public interface ProductDAO { List<Product> getProductByName(String typ) throws DAOException; List<Product> getProductByDescription(String typ) throws DAOException; + + Product getProductById(int id) throws DAOException; } diff --git a/src/main/java/org/s4s/gui/InitView.java b/src/main/java/org/s4s/gui/InitView.java index bd21083..ca28a8b 100644 --- a/src/main/java/org/s4s/gui/InitView.java +++ b/src/main/java/org/s4s/gui/InitView.java @@ -27,7 +27,7 @@ public class InitView extends UI { @Override protected void init(VaadinRequest vaadinRequest) { Navigator navi = new Navigator(this, this); - navi.addView(Views.SHOP, ShopView.class); + navi.addView(Views.SUCHE, SucheView.class); navi.addView(Views.WELCOME, WelcomeView.class); navi.addView(Views.LOGIN, LoginView.class); navi.addView(Views.WARENKORB, WarenkorbView.class); diff --git a/src/main/java/org/s4s/gui/views/ArtikeldetailsView.java b/src/main/java/org/s4s/gui/views/ArtikeldetailsView.java index 7e77a81..99d0064 100644 --- a/src/main/java/org/s4s/gui/views/ArtikeldetailsView.java +++ b/src/main/java/org/s4s/gui/views/ArtikeldetailsView.java @@ -1,6 +1,19 @@ package org.s4s.gui.views; import com.vaadin.navigator.ViewChangeListener; +import com.vaadin.ui.Alignment; +import com.vaadin.ui.HorizontalLayout; +import com.vaadin.ui.Notification; +import com.vaadin.ui.Panel; +import com.vaadin.ui.UI; +import com.vaadin.ui.VerticalLayout; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.s4s.dao.ProductDAO; +import org.s4s.exceptions.DAOException; +import org.s4s.modell.dto.Product; +import org.s4s.process.control.ProductSearch; +import org.s4s.services.util.Views; /** * @@ -8,9 +21,40 @@ import com.vaadin.navigator.ViewChangeListener; */ public class ArtikeldetailsView extends TemplateView { + private Product product = new Product(); + private final ProductDAO products = ProductSearch.getInstance(); + private VerticalLayout verticalLayout = new VerticalLayout(); + @Override public void enter(ViewChangeListener.ViewChangeEvent event) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + if (event.getParameters() != null) { + // split at "/", add each part as a label + String str = event.getParameters(); + int id = Integer.parseInt(str); + + this.setUp(id); + } else { + Notification.show(null, "Kein Artikel ausgewählt!", Notification.Type.HUMANIZED_MESSAGE); + UI.getCurrent().getNavigator().navigateTo(Views.WELCOME); + } } + public void setUp(int id) { + getInformation(id); + super.setUpFooterAndHeader(verticalLayout); + } + + private void getInformation(int id) { + try { + product = products.getProductById(id); + HorizontalLayout horizontalLayout = new HorizontalLayout(); + Panel p = new Panel("Name: " + product.getName()); + horizontalLayout.addComponent(p); + horizontalLayout.setComponentAlignment(p, Alignment.MIDDLE_LEFT); + verticalLayout.addComponent(horizontalLayout); + this.addComponent(verticalLayout); + } catch (DAOException ex) { + Logger.getLogger(ArtikeldetailsView.class.getName()).log(Level.SEVERE, null, ex); + } + } } diff --git a/src/main/java/org/s4s/gui/views/ShopView.java b/src/main/java/org/s4s/gui/views/SucheView.java similarity index 57% rename from src/main/java/org/s4s/gui/views/ShopView.java rename to src/main/java/org/s4s/gui/views/SucheView.java index f3c2615..d750d27 100644 --- a/src/main/java/org/s4s/gui/views/ShopView.java +++ b/src/main/java/org/s4s/gui/views/SucheView.java @@ -4,18 +4,16 @@ 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.server.VaadinSession; import com.vaadin.ui.Alignment; import com.vaadin.ui.Button; import com.vaadin.ui.HorizontalLayout; -import com.vaadin.ui.Label; import com.vaadin.ui.Notification; import com.vaadin.ui.Table; -import com.vaadin.ui.TextField; import com.vaadin.ui.UI; import java.util.HashSet; import java.util.Set; +import java.util.logging.Level; +import java.util.logging.Logger; import org.s4s.dao.ProductDAO; import org.s4s.dao.ShopSearchDAO; import org.s4s.exceptions.DAOException; @@ -25,17 +23,20 @@ import org.s4s.modell.dto.Warenkorb; import org.s4s.process.control.ProductSearch; import org.s4s.process.control.ShopSearch; import org.s4s.services.util.Roles; +import org.s4s.services.util.Views; /** * * @author Holger */ -public class ShopView extends TemplateView { +public class SucheView extends TemplateView { private final ProductDAO products = ProductSearch.getInstance(); private final ShopSearchDAO shops = ShopSearch.getInstance(); private Product product = null; private final Warenkorb warenkorb = Warenkorb.getInstance(); + private final BeanContainer<Integer, Product> data = new BeanContainer<>(Product.class); + private final Table table = new Table("Products", data); @Override public void enter(ViewChangeListener.ViewChangeEvent event) { @@ -43,39 +44,24 @@ public class ShopView extends TemplateView { if (event.getParameters() != null) { // split at "/", add each part as a label String str = event.getParameters(); + str = str.trim(); search(str); } } public void setUp() { - //super.setUpFooterAndHeader(this); - // setSizeFull(); + setSizeFull(); setMargin(true); final HorizontalLayout searchLayout = new HorizontalLayout(); final HorizontalLayout buttonLayout = new HorizontalLayout(); - - TextField textfield = new TextField(); - Button button = new Button("Suche", FontAwesome.SEARCH); - Label label = new Label("Das erste Label unseres Shop in Shop System"); - - buttonLayout.addComponent(label); - buttonLayout.setComponentAlignment(label, Alignment.TOP_LEFT); - - searchLayout.addComponent(textfield); - searchLayout.addComponent(button); buttonLayout.addComponent(searchLayout); buttonLayout.setComponentAlignment(searchLayout, Alignment.TOP_RIGHT); buttonLayout.setSizeFull(); addComponent(buttonLayout); - //setComponentAlignment(buttonLayout, Alignment.TOP_CENTER); - - final BeanContainer<Integer, Product> data = new BeanContainer<>(Product.class); data.setBeanIdProperty("id"); - final Table table = new Table("Products", data); table.setSizeFull(); table.setSelectable(true); - Set<Product> liste = new HashSet<>(); final BeanContainer<Integer, Shop> dataShops = new BeanContainer<>(Shop.class); dataShops.setBeanIdProperty("id"); @@ -83,7 +69,13 @@ public class ShopView extends TemplateView { tableShops.setSizeFull(); Set<Shop> listeShops = new HashSet<>(); - VaadinSession session = UI.getCurrent().getSession(); + Button detailButton = new Button("Artikeldetails"); + detailButton.addClickListener((event) -> { + UI.getCurrent().getNavigator().navigateTo(Views.ARTIKELDETAILS + "/" + product.getId()); + }); + searchLayout.addComponent(detailButton); + searchLayout.setComponentAlignment(detailButton, Alignment.MIDDLE_CENTER); + if (session.getAttribute(Roles.CURRENTUSER) != null) { System.out.println(session.getAttribute(Roles.CURRENTUSER)); Button addButton = new Button("Hinzufügen"); @@ -93,59 +85,23 @@ public class ShopView extends TemplateView { Notification.show(null, "Bitte Produkt(e) auswählen!", Notification.Type.HUMANIZED_MESSAGE); } else { warenkorb.add(product); + Notification.show(null, product.getName() + " wurde in den Warenkorb hinzugefügt!", + Notification.Type.WARNING_MESSAGE); 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(); - } - }); - - button.addClickListener(new Button.ClickListener() { - @Override - public void buttonClick(Button.ClickEvent event) { - String str = textfield.getValue().trim(); - search(str); - /* - if (str.equals("")) { - Notification.show(null, "Bitte gesuchtes Produkt eingeben!", Notification.Type.WARNING_MESSAGE); - } else { - addComponent(table); - addComponent(tableShops); - try { - liste.addAll(products.getProductByName(str)); - liste.addAll(products.getProductByDescription(str)); - listeShops.addAll(shops.getShopByName(str)); - listeShops.addAll(shops.getShopByOwner(str)); - } catch (Exception ex) { - //eig. DAO Exception, aber fehler... - } - data.removeAllItems(); - dataShops.removeAllItems(); - data.addAll(liste); - dataShops.addAll(listeShops); - table.setPageLength(table.size()); - tableShops.setPageLength(tableShops.size()); - } - }); - */ - // BeanItem<Product> item = (BeanItem) liste.getItem(liste.getValue); - // Product myBean = item.getBean(); - } + table.addItemClickListener((ItemClickEvent event) -> { + BeanItem<Product> productBean = data.getItem(event.getItemId()); + product = productBean.getBean(); }); + super.setUpFooterAndHeader(searchLayout); } private void search(String str) { - final BeanContainer<Integer, Product> data = new BeanContainer<>(Product.class); data.setBeanIdProperty("id"); - final Table table = new Table("Products", data); table.setSizeFull(); table.setSelectable(true); Set<Product> liste = new HashSet<>(); @@ -157,12 +113,12 @@ public class ShopView extends TemplateView { liste.addAll(products.getProductByName(str)); liste.addAll(products.getProductByDescription(str)); } catch (DAOException ex) { - + Logger.getLogger(SucheView.class.getName()).log(Level.SEVERE, null, ex); } data.removeAllItems(); data.addAll(liste); table.setPageLength(table.size()); - + table.setVisibleColumns(new Object[]{"name", "description", "price"}); table.addItemClickListener((ItemClickEvent event) -> { BeanItem<Product> productBean = data.getItem(event.getItemId()); product = productBean.getBean(); diff --git a/src/main/java/org/s4s/gui/views/TemplateView.java b/src/main/java/org/s4s/gui/views/TemplateView.java index 19cee2e..4614b96 100644 --- a/src/main/java/org/s4s/gui/views/TemplateView.java +++ b/src/main/java/org/s4s/gui/views/TemplateView.java @@ -77,6 +77,7 @@ public class TemplateView extends VerticalLayout implements View { HorizontalLayout buildNavigationHeader() { HorizontalLayout navigationPanelGrid = new HorizontalLayout(); MenuBar.Command mycommand = new MenuBar.Command() { + @Override public void menuSelected(MenuBar.MenuItem selectedItem) { System.out.println(selectedItem); @@ -111,15 +112,15 @@ public class TemplateView extends VerticalLayout implements View { // Edit Holger Anfang case "Literatur": - UI.getCurrent().getNavigator().navigateTo(Views.SHOP + "/literatur"); + UI.getCurrent().getNavigator().navigateTo(Views.SUCHE + "/literatur"); break; case "Mitschriften": - UI.getCurrent().getNavigator().navigateTo(Views.SHOP + "/mitschriften"); + UI.getCurrent().getNavigator().navigateTo(Views.SUCHE + "/mitschriften"); break; case "Nachhilfe": - UI.getCurrent().getNavigator().navigateTo(Views.SHOP + "/nachhilfe"); + UI.getCurrent().getNavigator().navigateTo(Views.SUCHE + "/nachhilfe"); break; // Edit Ende @@ -147,12 +148,23 @@ public class TemplateView extends VerticalLayout implements View { userItem.addItem("Einstellungen", null, mycommand); userItem.addItem("Logout", null, mycommand); - TextField tfSeach = new TextField(); + TextField tfSearch = new TextField(); Button btnSearch = new Button("Suche", FontAwesome.SEARCH); + //Edit Holger + btnSearch.addClickListener((Button.ClickEvent event) -> { + String begriff = tfSearch.getValue(); + View view = UI.getCurrent().getNavigator().getCurrentView(); + //if (view instanceof SucheView) { + + //} else { + UI.getCurrent().getNavigator().navigateTo(Views.SUCHE + "/" + begriff); + //} + }); + //Edit Ende navigationPanelGrid.addComponent(createLogo()); navigationPanelGrid.addComponent(barmenu); - navigationPanelGrid.addComponent(tfSeach); + navigationPanelGrid.addComponent(tfSearch); navigationPanelGrid.addComponent(btnSearch); navigationPanelGrid.setSpacing(true); navigationPanelGrid.setSizeUndefined(); @@ -164,7 +176,7 @@ public class TemplateView extends VerticalLayout implements View { } navigationPanelGrid.setStyleName("navbarGardient"); navigationPanelGrid.setComponentAlignment(barmenu, Alignment.MIDDLE_CENTER); - navigationPanelGrid.setComponentAlignment(tfSeach, Alignment.MIDDLE_RIGHT); + navigationPanelGrid.setComponentAlignment(tfSearch, Alignment.MIDDLE_RIGHT); navigationPanelGrid.setComponentAlignment(btnSearch, Alignment.MIDDLE_RIGHT); return navigationPanelGrid; diff --git a/src/main/java/org/s4s/gui/views/WarenkorbView.java b/src/main/java/org/s4s/gui/views/WarenkorbView.java index 453e9f4..419e2dd 100644 --- a/src/main/java/org/s4s/gui/views/WarenkorbView.java +++ b/src/main/java/org/s4s/gui/views/WarenkorbView.java @@ -1,11 +1,16 @@ 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.VaadinSession; +import com.vaadin.server.FontAwesome; import com.vaadin.ui.Alignment; +import com.vaadin.ui.Button; import com.vaadin.ui.HorizontalLayout; 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.List; @@ -21,7 +26,7 @@ import org.s4s.services.util.Views; public class WarenkorbView extends TemplateView { private final Warenkorb warenkorb = Warenkorb.getInstance(); - private VaadinSession session = UI.getCurrent().getSession(); + private Product product = null; @Override public void enter(ViewChangeListener.ViewChangeEvent event) { @@ -29,7 +34,6 @@ public class WarenkorbView extends TemplateView { } public void setUp() { - VaadinSession session = UI.getCurrent().getSession(); 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); @@ -44,6 +48,7 @@ public class WarenkorbView extends TemplateView { this.setComponentAlignment(panel, Alignment.TOP_LEFT); } else { HorizontalLayout horizontalLayout = new HorizontalLayout(); + HorizontalLayout buttonLayout = new HorizontalLayout(); Panel pAnzahl = new Panel("In Ihrem Warenkorb sind momentan: " + warenkorb.getAnzahl() + " Artikel!"); horizontalLayout.addComponent(pAnzahl); horizontalLayout.setComponentAlignment(pAnzahl, Alignment.TOP_LEFT); @@ -55,11 +60,48 @@ public class WarenkorbView extends TemplateView { this.addComponent(horizontalLayout); List<Product> list = warenkorb.inhalt(); - list.forEach((p) -> { - HorizontalLayout layout = new HorizontalLayout(); - layout.addComponent(new Panel(p.getName() + ", " + p.getDescription() + ", " + p.getPrice())); - this.addComponent(layout); + final BeanContainer<Integer, Product> data = new BeanContainer<>(Product.class); + data.setBeanIdProperty("id"); + Table table = new Table("Ihr Warenkorb", data); + table.setSizeFull(); + table.setSelectable(true); + data.addAll(list); + this.addComponent(table); + table.setPageLength(table.size()); + table.setVisibleColumns(new Object[]{"name", "description", "price"}); + + table.addItemClickListener(new ItemClickEvent.ItemClickListener() { + @Override + public void itemClick(ItemClickEvent event) { + BeanItem<Product> productBean = data.getItem(event.getItemId()); + product = productBean.getBean(); + } + }); + + Button removeButton = new Button("Aus Warenkorb entfernen!"); + removeButton.addClickListener((Button.ClickEvent event) -> { + if (this.product == null) { + Notification.show(null, "Bitte, das zu entferndende Produkt auswählen", + Notification.Type.HUMANIZED_MESSAGE); + } else { + warenkorb.remove(product); + UI.getCurrent().getNavigator().navigateTo(Views.WARENKORB); + } + }); + + Button buyButton = new Button("Kaufen!"); + buyButton.addClickListener((event) -> { + }); + + buttonLayout.addComponent(buyButton); + buttonLayout.setComponentAlignment(buyButton, Alignment.BOTTOM_LEFT); + buttonLayout.addComponent(removeButton); + buttonLayout.setComponentAlignment(removeButton, Alignment.BOTTOM_RIGHT); + this.addComponent(buttonLayout); + this.setComponentAlignment(buttonLayout, Alignment.BOTTOM_CENTER); + removeButton.setIcon(FontAwesome.UNDO); } + } } diff --git a/src/main/java/org/s4s/modell/dto/Transaction.java b/src/main/java/org/s4s/modell/dto/Transaction.java new file mode 100644 index 0000000..3233cc0 --- /dev/null +++ b/src/main/java/org/s4s/modell/dto/Transaction.java @@ -0,0 +1,47 @@ +/* + * 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.modell.dto; + +/** + * + * @author Holger + */ +public class Transaction { + + private String verkaeufer; + private User kaeufer; + private Product produkt; + + public Transaction(String verkaeufer, User kaeufer, Product produkt) { + this.verkaeufer = verkaeufer; + this.kaeufer = kaeufer; + this.produkt = produkt; + } + + public String getVerkaeufer() { + return verkaeufer; + } + + public void setVerkaeufer(String verkaeufer) { + this.verkaeufer = verkaeufer; + } + + public User getKaeufer() { + return kaeufer; + } + + public void setKaeufer(User kaeufer) { + this.kaeufer = kaeufer; + } + + public Product getProdukt() { + return produkt; + } + + public void setProdukt(Product produkt) { + this.produkt = produkt; + } +} diff --git a/src/main/java/org/s4s/modell/dto/User.java b/src/main/java/org/s4s/modell/dto/User.java index 3f05ccd..271e9cc 100644 --- a/src/main/java/org/s4s/modell/dto/User.java +++ b/src/main/java/org/s4s/modell/dto/User.java @@ -15,8 +15,9 @@ public class User { private final String benutzername; - public User(String benutzername) { + public User(String benutzername, int userId) { this.benutzername = benutzername; + this.userId = userId; } public int getUserId() { @@ -50,4 +51,29 @@ public class User { public String getUsername() { return benutzername; } + + public void setUserId(int userId) { + this.userId = userId; + } + + public void setEmail(String email) { + this.email = email; + } + + public void setGeburtsdatum(String geburtsdatum) { + this.geburtsdatum = geburtsdatum; + } + + public void setFachbereichId(int fachbereichId) { + this.fachbereichId = fachbereichId; + } + + public void setVorname(String vorname) { + this.vorname = vorname; + } + + public void setNachname(String nachname) { + this.nachname = nachname; + } + } diff --git a/src/main/java/org/s4s/process/control/LoginControl.java b/src/main/java/org/s4s/process/control/LoginControl.java index 58c7cfc..8f483ef 100644 --- a/src/main/java/org/s4s/process/control/LoginControl.java +++ b/src/main/java/org/s4s/process/control/LoginControl.java @@ -3,7 +3,6 @@ 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.dao.KundenDAO; import org.s4s.dao.impl.AbstractDatabaseClass; import org.s4s.exceptions.DAOException; @@ -18,16 +17,12 @@ import org.s4s.services.util.Views; */ public class LoginControl extends AbstractDatabaseClass implements KundenDAO { - public static void infoBox(String infoMessage, String titleBar) { - JOptionPane.showMessageDialog(null, infoMessage, "InfoBox: " + titleBar, JOptionPane.INFORMATION_MESSAGE); - } - @Override 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\"" + try (ResultSet set = executeQuery("SELECT *" + " FROM \"ERR\".\"user\" u " + " WHERE u.benutzername = '" + username + "' " + " AND u.passwort = '" + password + "';")) { @@ -35,8 +30,9 @@ public class LoginControl extends AbstractDatabaseClass implements KundenDAO { throw new NoSuchUserOrPassword(); } String bname = set.getString("benutzername"); + int userId = set.getInt("userID"); - User user = new User(bname); + User user = new User(bname, userId); createSession(user); @@ -50,6 +46,5 @@ public class LoginControl extends AbstractDatabaseClass implements KundenDAO { 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/process/control/ProductSearch.java b/src/main/java/org/s4s/process/control/ProductSearch.java index b147da1..e1d3478 100644 --- a/src/main/java/org/s4s/process/control/ProductSearch.java +++ b/src/main/java/org/s4s/process/control/ProductSearch.java @@ -15,9 +15,6 @@ import org.s4s.modell.dto.Product; */ 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() { } @@ -61,7 +58,7 @@ public class ProductSearch extends AbstractDatabaseClass implements ProductDAO { + " WHERE LOWER(a.beschreibung) ILIKE LOWER('%" + descrip + "%');")) { while (set.next()) { String name = set.getString("name"); - int id = set.getInt("artikelID"); + int id = set.getInt("artikelid"); String kategorie = set.getString("kategorie"); double price = set.getDouble("preis"); String description = set.getString("beschreibung"); @@ -74,4 +71,30 @@ public class ProductSearch extends AbstractDatabaseClass implements ProductDAO { } return liste; } + + @Override + public Product getProductById(int id) throws DAOException { + Product p = new Product(); + try (ResultSet set = executeQuery("SELECT *" + + " FROM \"ERR\".\"artikel\" a" + + " WHERE a.artikelid = ('" + id + "');")) { + if (set.next()) { + String name = set.getString("name"); + int pId = set.getInt("artikelid"); + String kategorie = set.getString("kategorie"); + double price = set.getDouble("preis"); + String description = set.getString("beschreibung"); + + p.setName(name); + p.setId(pId); + p.setTyp(kategorie); + p.setPrice(price); + p.setDescription(description); + } + } catch (SQLException ex) { + throw new DAOException(ex); + } + return p; + } + } diff --git a/src/main/java/org/s4s/services/util/Views.java b/src/main/java/org/s4s/services/util/Views.java index e5e6381..7a7a35e 100644 --- a/src/main/java/org/s4s/services/util/Views.java +++ b/src/main/java/org/s4s/services/util/Views.java @@ -8,7 +8,7 @@ public final class Views { public final static String REGISTRIERUNG = "registrierung"; public final static String WELCOME = "welcome"; - public final static String SHOP = "shop"; + public final static String SUCHE = "suche"; public final static String LOGIN = "login"; public final static String WARENKORB = "warenkorb"; public final static String BENUTZERKONTO = "benutzerkonto"; -- GitLab