diff --git a/src/main/java/org/s4s/dao/ProductDAO.java b/src/main/java/org/s4s/dao/ProductDAO.java index 44f14d9d4c9068861eeb420f7310bfdc21e1ba60..c1831b8003dd97cd4c925e47652e1103239d07bc 100644 --- a/src/main/java/org/s4s/dao/ProductDAO.java +++ b/src/main/java/org/s4s/dao/ProductDAO.java @@ -21,7 +21,7 @@ public interface ProductDAO { List<Product> getProductListById(int id) throws DAOException; - Shop getProductOwner(Product product) throws DAOException; + Shop getOwnerOfProduct(Product product) throws DAOException; List<Product> getAllProductsFromShop(int id) throws DAOException; diff --git a/src/main/java/org/s4s/dao/impl/ProductDAOimpl.java b/src/main/java/org/s4s/dao/impl/ProductDAOimpl.java index c7ce3cdc90d363965e858c3b0731264cf16f1006..abeb00c68f99f65ed40491e184b4bc201b36e165 100644 --- a/src/main/java/org/s4s/dao/impl/ProductDAOimpl.java +++ b/src/main/java/org/s4s/dao/impl/ProductDAOimpl.java @@ -29,10 +29,10 @@ public class ProductDAOimpl extends AbstractDatabaseClass implements ProductDAO private final List<Product> liste = new ArrayList<>(); private static ProductDAO search = null; - + private static final User user = (User) UI.getCurrent().getSession().getAttribute(Roles.CURRENTUSER); private final Statement statement = JDBCConnection.getInstance().getStatement(); - + //DB-Block Statement st; String sql_select; @@ -104,8 +104,9 @@ public class ProductDAOimpl extends AbstractDatabaseClass implements ProductDAO String kategorie = set.getString("kategorie"); double price = set.getDouble("preis"); String description = set.getString("beschreibung"); + int sId = set.getInt("shopid"); - p = new Product(name, pId, kategorie, price, description); + p = new Product(name, pId, kategorie, price, description, sId); } } catch (SQLException ex) { throw new DAOException(ex); @@ -114,12 +115,13 @@ public class ProductDAOimpl extends AbstractDatabaseClass implements ProductDAO } @Override - public Shop getProductOwner(Product product) throws DAOException { + public Shop getOwnerOfProduct(Product product) throws DAOException { Shop s = new Shop(); int tmp = product.getShopId(); - try (ResultSet set = executeQuery("SELECT s.\"name\", s.\"shopid\"" - + " FROM \"ERR\".\"shop\" s, \"ERR\".\"artikel\" a" - + " WHERE s.shopid = a.shopid AND a.shopid = ('" + tmp + "');")) { + + try (ResultSet set = executeQuery("SELECT *" + + " FROM \"ERR\".\"shop\" s" + + " WHERE s.shopid = ('" + tmp + "');");) { while (set.next()) { int shopId = set.getInt("shopid"); String name = set.getString("name"); @@ -182,13 +184,12 @@ public class ProductDAOimpl extends AbstractDatabaseClass implements ProductDAO @Override public boolean addProduct(String name, String beschreibung, double preis, Image pic, int shopID, int modulID, int cat) throws DAOException { boolean done = false; - + try { sql_update = "INSERT INTO \"ERR\".\"artikel\"(name, beschreibung, preis, foto, shopid, modulid, kategorie) " - + "VALUES(\'" + name + "\', \'" + beschreibung + "\', \'" + preis + "\', \'" + pic + "\', \'" + shopID + "\', \'" + modulID + "\', \'" + cat + "\')"; + + "VALUES(\'" + name + "\', \'" + beschreibung + "\', \'" + preis + "\', \'" + pic + "\', \'" + shopID + "\', \'" + modulID + "\', \'" + cat + "\')"; int exe = JDBCConnection.getInstance().getStatement().executeUpdate(sql_update); - if (exe < 0) { throw new DAOException("Wrong Input!"); } @@ -198,20 +199,19 @@ public class ProductDAOimpl extends AbstractDatabaseClass implements ProductDAO e.printStackTrace(); System.out.println("Exception occur: " + e); } - + return done; } @Override public boolean addProduct(String name, String beschreibung, Date dVon, Date dBis, double preis, Image pic, int shopID, int modulID, int cat) throws DAOException { boolean done = false; - + try { sql_update = "INSERT INTO \"ERR\".\"artikel\"(name, beschreibung, datum_von, preis, datum_bis, foto, shopid, modulid, kategorie) " + "VALUES(\'" + name + "\', \'" + beschreibung + "\', \'" + dVon + "\', \'" + preis + "\', \'" + dBis + "\', \'" + pic + "\', \'" + shopID + "\', \'" + modulID + "\', \'" + cat + "\')"; int exe = JDBCConnection.getInstance().getStatement().executeUpdate(sql_update); - if (exe < 0) { throw new DAOException("Wrong Input!"); } @@ -221,7 +221,7 @@ public class ProductDAOimpl extends AbstractDatabaseClass implements ProductDAO e.printStackTrace(); System.out.println("Exception occur: " + e); } - + return done; } } diff --git a/src/main/java/org/s4s/dao/impl/ShopDAOimpl.java b/src/main/java/org/s4s/dao/impl/ShopDAOimpl.java index 168aee234e6a47d60949acf8bc126fc9b4eb8b5b..c016606d02521162bae58c595551f1a2c247ad59 100644 --- a/src/main/java/org/s4s/dao/impl/ShopDAOimpl.java +++ b/src/main/java/org/s4s/dao/impl/ShopDAOimpl.java @@ -132,7 +132,7 @@ public class ShopDAOimpl extends AbstractDatabaseClass implements ShopDAO { Shop s = new Shop(); try (ResultSet set = executeQuery("SELECT *" + "FROM \"ERR\".\"shop\" " - + "WHERE besitzer = " + user.getUserId() + ";");) { + + "WHERE besitzer = ('" + user.getUserId() + "');");) { while (set.next()) { int shopId = set.getInt("shopid"); String name = set.getString("name"); diff --git a/src/main/java/org/s4s/gui/views/ArtikelShopView.java b/src/main/java/org/s4s/gui/views/ArtikelShopView.java index a894ed87f8a1ca5f440099d0215e4988483e50c3..96dc123e3f69becb96777772d42215511f38a02e 100644 --- a/src/main/java/org/s4s/gui/views/ArtikelShopView.java +++ b/src/main/java/org/s4s/gui/views/ArtikelShopView.java @@ -30,37 +30,37 @@ import org.s4s.services.util.Views; * @author Holger */ public class ArtikelShopView extends TemplateView { - + private final ProductControl controllerProducts = new ProductControl(); private Product product = null; - + @Override public void enter(ViewChangeListener.ViewChangeEvent event) { 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 Shop ausgewählt!", Notification.Type.HUMANIZED_MESSAGE); UI.getCurrent().getNavigator().navigateTo(Views.WELCOME); } } - + public void setUp(int id) { VerticalLayout layout = new VerticalLayout(); setSizeFull(); - + Button zurueckButton = new Button("Weitersuchen!"); - + zurueckButton.setIcon(FontAwesome.ARROW_LEFT); zurueckButton.addStyleName(ValoTheme.BUTTON_LINK); - + zurueckButton.addClickListener((event) -> { UI.getCurrent().getNavigator().navigateTo(Views.SUCHE); }); - + BeanContainer<Integer, Product> dataProducts = new BeanContainer<>(Product.class); Table table = new Table("Products", dataProducts); dataProducts.setBeanIdProperty("id"); @@ -78,7 +78,8 @@ public class ArtikelShopView extends TemplateView { table.setColumnHeader("price", "Preis in €"); layout.addComponent(table); table.setSizeFull(); - + table.setSelectable(true); + table.addItemClickListener((ItemClickEvent event) -> { BeanItem<Product> productBean = dataProducts.getItem(event.getItemId()); product = productBean.getBean(); @@ -87,8 +88,8 @@ public class ArtikelShopView extends TemplateView { } }); layout.addComponent(zurueckButton); - + super.setUpFooterAndHeader(layout); - + } } diff --git a/src/main/java/org/s4s/gui/views/ArtikeldetailsView.java b/src/main/java/org/s4s/gui/views/ArtikeldetailsView.java index 0b7002661ce97c60a8959cda8f5e9c991ab7e1d4..d6a8a370e365782fd4e058c785d1af8a70f87056 100644 --- a/src/main/java/org/s4s/gui/views/ArtikeldetailsView.java +++ b/src/main/java/org/s4s/gui/views/ArtikeldetailsView.java @@ -37,9 +37,7 @@ public class ArtikeldetailsView extends TemplateView { // split at "/", add each part as a label String str = event.getParameters(); int id = Integer.parseInt(str); - for (Product p : warenkorb.inhalt()) { - System.out.println(p.getName()); - } + System.out.println(id); this.setUp(id); } else { Notification.show(null, "Kein Artikel ausgewählt!", Notification.Type.HUMANIZED_MESSAGE); @@ -51,9 +49,7 @@ public class ArtikeldetailsView extends TemplateView { try { this.setSizeFull(); product = controllerProduct.getProductById(id); - shop = controllerProduct.getProductOwner(product); - System.out.println(shop.getName()); - System.out.println(shop.getShopId()); + shop = controllerProduct.getOwnerOfProduct(product); HorizontalLayout horizontalLayout = new HorizontalLayout(); Panel p = new Panel("Name: " + product.getName()); Panel p1 = new Panel("Beschreibung: " + product.getDescription()); diff --git a/src/main/java/org/s4s/gui/views/ArtikelerstellungsView.java b/src/main/java/org/s4s/gui/views/ArtikelerstellungsView.java index ca496a0145b9f597d58ad0c6e80e2edfe71f169e..c05cee3b54ef6b8e380042ce629ab916d5e69910 100644 --- a/src/main/java/org/s4s/gui/views/ArtikelerstellungsView.java +++ b/src/main/java/org/s4s/gui/views/ArtikelerstellungsView.java @@ -57,6 +57,11 @@ public class ArtikelerstellungsView extends TemplateView implements View { @Override public void enter(ViewChangeListener.ViewChangeEvent event) { + if (UI.getCurrent().getSession().getAttribute(Roles.CURRENTUSER) == null) { + User user = (User) UI.getCurrent().getSession().getAttribute(Roles.CURRENTUSER); + Notification.show(null, "Sie müssen eingeloggt sein, um Artikel zu inserieren!", Notification.Type.HUMANIZED_MESSAGE); + UI.getCurrent().getNavigator().navigateTo(Views.WELCOME); + } setUp(); } @@ -172,10 +177,10 @@ public class ArtikelerstellungsView extends TemplateView implements View { mList.iterator().remove(); } } catch (Exception e) { + Logger.getLogger(ArtikelerstellungsView.class.getName()).log(Level.SEVERE, null, e); } nsModul.setNullSelectionAllowed(false); // Kann hier jemand den Fehler finden? <------------------------------------------ - HorizontalLayout hKommand = new HorizontalLayout(bAbbrechen, bErstellen); HorizontalLayout hVerfuegbarkeit = new HorizontalLayout(dfVon, dfBis); HorizontalLayout hKriterien = new HorizontalLayout(nsKategorie, nsModul); diff --git a/src/main/java/org/s4s/gui/views/SucheView.java b/src/main/java/org/s4s/gui/views/SucheView.java index 79b629cca86919df713a9c939cb4ff7619a29e92..f0ed1c9bb83c292d8727e489f10c6952405c5e97 100644 --- a/src/main/java/org/s4s/gui/views/SucheView.java +++ b/src/main/java/org/s4s/gui/views/SucheView.java @@ -53,13 +53,18 @@ public class SucheView extends TemplateView { public void setUp() { final VerticalLayout contentLayout = new VerticalLayout(); - super.setUpFooterAndHeader(contentLayout); + super.setUpFooterAndHeader(contentLayout); setSizeFull(); - contentLayout.addComponent(tableShops); - contentLayout.setComponentAlignment(tableShops, Alignment.TOP_LEFT); - contentLayout.addComponent(tableProducts); - contentLayout.setComponentAlignment(tableProducts, Alignment.TOP_LEFT); + addComponent(contentLayout); + final VerticalLayout layout = new VerticalLayout(); + layout.addComponent(tableShops); + layout.setComponentAlignment(tableShops, Alignment.TOP_LEFT); + + layout.addComponent(tableProducts); + layout.setComponentAlignment(tableProducts, Alignment.TOP_LEFT); + contentLayout.addComponent(layout); + contentLayout.setComponentAlignment(layout, Alignment.TOP_LEFT); tableProducts.setSizeFull(); tableProducts.setSelectable(true); tableProducts.setWidth("100%"); diff --git a/src/main/java/org/s4s/gui/views/TemplateView.java b/src/main/java/org/s4s/gui/views/TemplateView.java index d7f014b3dffed93acbd76ceb1ef7626688bed896..ea6bddc4942a73add7e237d37cfef62ec62e7569 100644 --- a/src/main/java/org/s4s/gui/views/TemplateView.java +++ b/src/main/java/org/s4s/gui/views/TemplateView.java @@ -90,9 +90,9 @@ public class TemplateView extends VerticalLayout implements View { UI.getCurrent().getNavigator().navigateTo(Views.WARENKORB); break; - case "Kasse": - UI.getCurrent().getNavigator().navigateTo(Views.CHECKOUT); - break; + // case "Kasse": + // UI.getCurrent().getNavigator().navigateTo(Views.CHECKOUT); + // break; case "Login": UI.getCurrent().getNavigator().navigateTo(Views.LOGIN); break; @@ -108,7 +108,7 @@ public class TemplateView extends VerticalLayout implements View { LogoutControl.logout(); UI.getCurrent().getNavigator().navigateTo(Views.WELCOME); break; - case "Shop anzeigen": + case "Shop anzeigen": UI.getCurrent().getNavigator().navigateTo(Views.SHOPVIEW); break; case "Kontakt": @@ -139,12 +139,12 @@ public class TemplateView extends VerticalLayout implements View { // Yet another top-level item MenuBar.MenuItem shoppingCardItem = barmenu.addItem("Warenkorb", null, mycommand); - MenuBar.MenuItem checktoutItem = barmenu.addItem("Kasse", null, mycommand); + //MenuBar.MenuItem checktoutItem = barmenu.addItem("Kasse", null, mycommand); MenuBar.MenuItem loginItem = barmenu.addItem("Login", null, mycommand); MenuBar.MenuItem registerItem = barmenu.addItem("Registrieren", null, mycommand); MenuBar.MenuItem shopItem = barmenu.addItem("Shop erstellen", null, mycommand); MenuBar.MenuItem shopItem2 = barmenu.addItem("Shop anzeigen", null, mycommand); - + MenuBar.MenuItem userItem = barmenu.addItem("Mein Konto", null, null); userItem.addItem("Einstellungen", null, mycommand); @@ -180,7 +180,7 @@ public class TemplateView extends VerticalLayout implements View { } else { registerItem.setVisible(false); loginItem.setVisible(false); - + User user = (User) UI.getCurrent().getSession().getAttribute(Roles.CURRENTUSER); ShopControl control = new ShopControl(); if (control.viewShop(user)) { diff --git a/src/main/java/org/s4s/process/control/ArtikelerstellungsControl.java b/src/main/java/org/s4s/process/control/ArtikelerstellungsControl.java index e7a7a16f503693fa261a70917d9a352a01630ae8..551bb688e90c4d8e7e628918e0008c639a5ebe78 100644 --- a/src/main/java/org/s4s/process/control/ArtikelerstellungsControl.java +++ b/src/main/java/org/s4s/process/control/ArtikelerstellungsControl.java @@ -9,6 +9,7 @@ import com.vaadin.ui.Image; import java.util.Date; import java.util.List; import org.s4s.dao.ProductDAO; +import org.s4s.dao.impl.ProductDAOimpl; import org.s4s.exceptions.DAOException; import org.s4s.modell.dto.Product; @@ -20,6 +21,10 @@ public class ArtikelerstellungsControl { private static ProductDAO pDAO = null; + public ArtikelerstellungsControl() { + pDAO = ProductDAOimpl.getInstance(); + } + public List<Product> getProductByDescription(String typ) throws DAOException { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } diff --git a/src/main/java/org/s4s/process/control/ProductControl.java b/src/main/java/org/s4s/process/control/ProductControl.java index 1ed30febc6ec6d24fcf5890704cf0eccf5759b0f..7962e2e88035cb02795fbf9c174ca22aaf687bd2 100644 --- a/src/main/java/org/s4s/process/control/ProductControl.java +++ b/src/main/java/org/s4s/process/control/ProductControl.java @@ -31,8 +31,8 @@ public class ProductControl { return dao.getProductById(id); } - public Shop getProductOwner(Product product) throws DAOException { - return dao.getProductOwner(product); + public Shop getOwnerOfProduct(Product product) throws DAOException { + return dao.getOwnerOfProduct(product); } public List<Product> getProductListById(int id) throws DAOException {