From c6444e92ac84a9d4bca30110b0da11bf3ca7574a Mon Sep 17 00:00:00 2001 From: Roland Haeder Date: Thu, 10 Sep 2015 15:40:33 +0200 Subject: [PATCH] =?utf8?q?Updated=20author=20(email=20address)=20+=20jars?= =?utf8?q?=20+=20implemented=20very=20basic=20basket=20Signed-off-by:Rolan?= =?utf8?q?d=20H=C3=A4der=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- lib/jcore-ee-logger.jar | Bin 8032 -> 8032 bytes lib/jcoreee.jar | Bin 16551 -> 13934 bytes lib/jshop-core.jar | Bin 22323 -> 24767 bytes lib/jshop-ee-lib.jar | Bin 7375 -> 7265 bytes .../localization/bundle_de_DE.properties | 3 + .../localization/bundle_en_US.properties | 3 + .../beans/basket/BasketWebBean.java | 53 +++++++-- .../beans/basket/BasketWebController.java | 9 +- .../beans/category/AdminCategoryWebBean.java | 5 +- .../category/AdminCategoryWebController.java | 2 +- ...PizzaShopWebBean.java => ShopWebBean.java} | 64 +++++------ ...Controller.java => ShopWebController.java} | 16 ++- .../beans/customer/CustomerWebBean.java | 2 +- .../beans/customer/CustomerWebController.java | 2 +- .../beans/gender/GenderWebBean.java | 2 +- .../beans/gender/GenderWebController.java | 2 +- .../beans/product/AdminProductWebBean.java | 106 +++++++++++++++--- .../product/AdminProductWebController.java | 61 +++++++++- .../admin/admin_category_selection_box.tpl | 2 +- .../admin_parent_category_selection_box.tpl | 4 +- web/admin/category.xhtml | 5 +- web/admin/product.xhtml | 23 ++-- web/index.xhtml | 9 +- 23 files changed, 269 insertions(+), 104 deletions(-) rename src/java/org/mxchange/pizzaapplication/beans/controller/{PizzaShopWebBean.java => ShopWebBean.java} (74%) rename src/java/org/mxchange/pizzaapplication/beans/controller/{PizzaShopWebController.java => ShopWebController.java} (74%) diff --git a/lib/jcore-ee-logger.jar b/lib/jcore-ee-logger.jar index 5ebf6d07bb973bde224c28c9e8403af3719390fe..c65212243809f11f3ffb24a9b60a199155e03c07 100644 GIT binary patch delta 212 zcmaE0_rQ)Pz?+$ci-CcIfuXf}B9A6hOZ7za=}bWO1qBfKNfSs;mSr>tQDKa>AZjY3 zGl;sy=mn%Ut1-neg6I}zWfl;C5tQDKa>AZjY3 zGl;sy=mn%Ut1-neg6I}zWfl;C5#F+@`7wO4@gMD=0N}S38FT{7@;9Z62w}W^bh-*X{XZ}r!!9LjE}MYQ>!BVeRmT=(7@hv z?z!jt&Ue1Y@BGf`apU75yL+A2X8{4A?cju6Oy0&G~GtC zG>;jr(!6PON)zyGlxDkUr8Lia*0MSKFVFux8EpsSU0<9kX@1cQyy(>*nJX65T2Lqn zV1b2Flm+2Ox%4U&DiszgEYj`%2EE3+Tc7o>&!{qB4GxTL7#JPx8ywI^R<+Lau;(d~0B9ur=f7VVrTNX7g!rI%t*;3Cw5DPESG#&+O}s0)&SZpuG?W@IXVMap|DcAs}ydq=(W`r9lFLsmyE2n=!_c`ZcFDhWy$16xE3;THuMJV-4*k(L^!scma~MSUm|XO~LH|ow4ergy zNEDtc$0mqjNI>FbPEN@dN8j4!a;RYud4J}F9j&kfN z_)eh4*Ay^nPN6zt`d)><*PC+eo|mDL{tF27#vT6@g6Cl+&C>`T2^puaT!;pqK}6FBBpZ~M^MY2qQ&E= zLp>91F@@@2Ug2uC!V-lBg+_&?3QY>l3N8F^@WtSYUtq;&F!M9737>&wRNz5!Zu-A| zyhU|=K*K)>>0iy?kb26ZRqN%k!NNvtveL=9MWH8vn-#Xoz&496xW%HO+k>>b*WzP` z0*fXCJ4Nia0IEZD>KzK-3b91{WN?=}`UAMrqNBGd+!dk=2L(v)7FD|y_E=$h`P&LZ z3VRiX-6DEFTI9*$z&?e0xW2pZ{WM2mi!R7($s-us^l6-*ZH!=4VZV(r9MHMW)&$f1 z>$P+*4%)a6_uCBF12!H+y^V+P9evm-Z8?Nd8z~%C7`O2-zH1<7R>7*f`$l>O_8%A+ z?jNujqVL&El<&)`kLtfWRepuX3@p$WLpi!27M^z$kK6bGo{)7Wt|?T1DV{V4Hd$7& z-dCBgpO2mSrg}YlLt&kvKg^Hm(V|8}pZ!^p&xlIuaSb<=2KAQltz5rRoYPssu{02t zG2LeCc_C8{oJAKg{N>DnZe~*k$1caK6E%+SJUmjry1gVf^|qs;!6iw{F&)dT)^jy) zz$1x)kzmxF4Odc3oVzqfd)cLCO$?x zRh!)72k79*<>$756$oCTVoSLvnsU!Gh1CSfL4_{%1VX+<8wb9U_qFWE!DWAr{Lc^} zvSbiT)8|4V*S?8;51n(ItuTupa-Cxc&IOv=pW6BU0Usd0t?oJdL|dlr@MP)_%L;T& zS!Q9C5Ue7F;=nY`QYcj@Qz%!cIJ>{>oMBYz%8EuW`HOzNVxgbjFnE}z%gDT{YeVHx z{b@@oIzxHHIC3P{w2+ia$flv`QYq4l&FqvMhQeC}zsKkEn_uv z&I;Qp;1mxE=lZYX=*IC&3b>^7@v4n$h`Cu}w#XjkY6V7Wr4yrtR7Jgl;~ zck&eztI1XvU_ohyRJe)@u*c&6HM038w1u)ROX(n8A-WdmbBX*YH(+yrF@CqP0VFJ& z(5;u}NAj&Db(cRw`|tv^U%I!B&^H7|0qJ8QC{dTQOR@d-RThz4wgWe=Rab zu$>2$9&fMIhnk~$vi6~GLPl*bZqJsG$)5x_?c(_o+>~&cba0DZ1~@}ebLncyS#E?f zB(KKb=o1Oq zD1u^$=oCn%)CB}dW7G^hy4Xl~nu2`-rIGNQ+1F1#ViCKZG#tN6YBF5#%A5u-*;ty? zEM!FE%&%&0ypBcRNQh`+skbmXsU+d31G`w|dkA0;5WpVeq~rYbG|%6kFdjnH1(-Ha zg>X8>Su?#|#F#>%7*u;3L85>~k%RkP$`j!1F_-cL`DMRLd3gWAB$HWuE4}j6H0PPT z%6TTQa-PX)&XY;@Q%%(ZOvkuT4Fgt7@tcI+6d|Ngr%A-ZPCRZNmJ?53|A%+uJ!P0SwS>2y!0y2nl1L)^b$O}Uzb zRJ~@z?CJGK{MTTXN@JGjp24gbF{_N8mo?IuRW2yFp08BtLKRN|_5`W~w94HZftS@| z@t05E3QmcK<#u)TZe@7pd$}*(rg)|PadH`N<@(P__qrWzt(SXtSL-rq9&TMB&F@>g zq{(PoC(W&G-O~J`?RIIx?OUYjYu_%-h4!B7@8ty@TT0}rKIalgt7iUAj=vMs|1ooU zrz_K!I&60`DepAn1q)^N@8tOMh&x#hri`5Vx^{WQ6_|5$&CbWk@kffT3e22jzw1Z~ z&Ehq9@Xr3793L)oh3Xr#h;iAvs531vn~v8D=;~>Kcuw~^(=WOr{HNI4TrY3`2Zu4l AIsgCw literal 16551 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 diff --git a/lib/jshop-ee-lib.jar b/lib/jshop-ee-lib.jar index 004480c6f93632dea08a72bd7b579705f9bfb815..f077244855e9b65095a8c2e9c89ad0c0e558305f 100644 GIT binary patch delta 884 zcmZvaO-vI}5Xa}eE!}Rr-L~6qTj;06gx18+geVXs(9*_GfkLpQ}#h4gRI1xh+f7Oae?tz3^U$~BEv2F7$b6!@lcKuHk2H` z>2kFlzM&L2p{V2ujVH>03{+OnUH(vfT^>>Z*z#D_(%9@cFOrya&Ii;xOQrh#Wg_Zom0vc9d$>|W_fDRDg1fZD! zl{_xcPI=tq@qkWY0bVdD;-g#%ep&~>1i*}zVXYOdBn{Sj;J8>;$8Mg)N z_~F|>s@deP?YB2b2iurkvqap5O|!>s9cfS@h-ZS=MF>}dJ^0i=)A$|iW+`6GTU{jQ z_;UJF-LA=r7_TkHuxr6$`~XuELWY#qBf%YOkX{LXx46@o4d)nhVY~gC;SpYa4wo3o z$Rwj4nPI$(j4@o%amKai6yr}cj(gFIN7D*pvU8fT)w$?xdmotWnoqN*y!*-VMF6ms zNp0)fUc0K{$Bq=<@@lx_PU7EA)825>Hh@wqo4CEU={ere&B=UiJrqFbYi{^16wH#gJ^(2G?;kc zV0ti^!ataB@Wc@kOfM!}xdVwOV?sO-PbBKu1m|z9r9?OR`zEu0X5P;KU)y&&)S*Gq zr2xnP@$|Bq6waiVue=lZcsEAxpGp4429_e+VV4N6Stnte^%4}}BB4v@AiNZ=bF7Fh zxS_~3o3DsHl+Y`7bCe2VyAX({oBP76({I~E0E%w>;Emz;x(loUPrJvW-u(D@Zn`Hw zH#ITOK$@J(Je!$cU?3)vqorl{4~9od824o#lkiZsAJzc_HvqUeB^Lt^C?{sTpq`lV zfggnGD$w|P0d&4P0LJlLZ1p6_{DCJU_{hBUs=28k02FY;JEDXnFeIp#Ac(3u>M|v; z@UfZ{C9q3Hb%Noxd`e?rKFL4Nr{-p#riQb(a4%@#c|-0mYrFZu63BnVt5PIQQa&Dj zXQYA7>E?O?fa4V`_4yw$vRv18%J=(gNz;qmk|OQgZ&BB9%ZMp<)%d`;$4u<3Z{oTZ z4(Ykl$ND%aC-7S^lC7#J;B^F4F6ra<`;RaGlVn0rtTY;4Gdp;v;etusf?H+_;gC;q zB&;sNq?I9TTDJ*DR*o=YrwOZeKjFY0BD@JjaX56jJiJTT4`m5$;aR6re|ro!!()w9 zyMe7wu6+hTF~I+*@~kc1z}Cq9SWSKT&1EVHoNJ3qUfio|#9cLjpCf1Kq@zewc;R9uV1yM_-cxqH9LIKoZOkfxk_$LooaG73@5i-HX8?{y8FFJ8NUI!Y_c!_ diff --git a/src/java/org/mxchange/localization/bundle_de_DE.properties b/src/java/org/mxchange/localization/bundle_de_DE.properties index f13ba238..4d740b5e 100644 --- a/src/java/org/mxchange/localization/bundle_de_DE.properties +++ b/src/java/org/mxchange/localization/bundle_de_DE.properties @@ -21,3 +21,6 @@ MiniBasketTag.last_item=Zuletzt hinzugefügt: {0} MiniBasketTag.additional_items=Es befinden sich noch {0} weitere Produkte im Warenkorb. MiniBasketTag.to_basket=Zum Warenkorb MiniBasketTag.header=Warenkorb +Category.has_no_parent_category=Keine Elternkategorie +Generic_YES=Ja +Generic_NO=Nein diff --git a/src/java/org/mxchange/localization/bundle_en_US.properties b/src/java/org/mxchange/localization/bundle_en_US.properties index 1dc42122..99889ee9 100644 --- a/src/java/org/mxchange/localization/bundle_en_US.properties +++ b/src/java/org/mxchange/localization/bundle_en_US.properties @@ -21,3 +21,6 @@ MiniBasketTag.last_item=Last added item: {0} MiniBasketTag.additional_items=There are {0} items in the basket. MiniBasketTag.to_basket=To basket MiniBasketTag.header=Basket +Category.has_no_parent_category=No parent category +Generic_YES=Yes +Generic_NO=No diff --git a/src/java/org/mxchange/pizzaapplication/beans/basket/BasketWebBean.java b/src/java/org/mxchange/pizzaapplication/beans/basket/BasketWebBean.java index ce782214..f2b30cb7 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/basket/BasketWebBean.java +++ b/src/java/org/mxchange/pizzaapplication/beans/basket/BasketWebBean.java @@ -24,15 +24,19 @@ import javax.inject.Named; import javax.naming.InitialContext; import javax.naming.NamingException; import org.mxchange.jcoreee.beans.BaseFrameworkBean; +import org.mxchange.jshopcore.model.basket.AddableBasketItem; +import org.mxchange.jshopcore.model.basket.Basket; import org.mxchange.jshopcore.model.basket.BasketSessionBeanRemote; +import org.mxchange.jshopcore.model.basket.ShopBasket; +import org.mxchange.jshopcore.model.item.BasketItem; import org.mxchange.jshopcore.model.product.Product; /** * A bean for the basket * - * @author Roland Haeder + * @author Roland Haeder */ -@Named("basket") +@Named ("basket") @SessionScoped public class BasketWebBean extends BaseFrameworkBean implements BasketWebController { @@ -42,14 +46,14 @@ public class BasketWebBean extends BaseFrameworkBean implements BasketWebControl private static final long serialVersionUID = 5_476_347_320_198L; /** - * Basket bean + * Basket bean */ private final BasketSessionBeanRemote basketBean; /** - * Current product instance + * Item basket ("cache") */ - private Product currentProduct; + private final Basket basket; /** * Default constructor @@ -62,6 +66,36 @@ public class BasketWebBean extends BaseFrameworkBean implements BasketWebControl // Try to lookup this.basketBean = (BasketSessionBeanRemote) context.lookup("ejb/stateless-basket"); //NOI18N + + // Init basket "cache" + this.basket = new ShopBasket(); + } + + @Override + public boolean isProductAdded (final Product product) { + // Must not be null + if (null == product) { + // Abort here + throw new NullPointerException("product is null"); + } + + // Has the "cache" some entries? + if (!this.basket.isEmpty()) { + // Generate fake instance + AddableBasketItem item = new BasketItem(product); + + // Then ask it about it + if (this.basket.isAdded(item)) { + // Found it + return true; + } + } + + // Generate fake instance + AddableBasketItem item = new BasketItem(product); + + // Ask bean about it + return this.basketBean.isAdded(item); } @Override @@ -87,17 +121,12 @@ public class BasketWebBean extends BaseFrameworkBean implements BasketWebControl super.genericInit(); } - @Override - public void setCurrentProduct (final Product product) { - this.currentProduct = product; - } - /** * Getter for basket bean instance - * + * * @return Basket bean instance */ private BasketSessionBeanRemote getBasketBean () { - return basketBean; + return this.basketBean; } } diff --git a/src/java/org/mxchange/pizzaapplication/beans/basket/BasketWebController.java b/src/java/org/mxchange/pizzaapplication/beans/basket/BasketWebController.java index 3f78e540..f014025f 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/basket/BasketWebController.java +++ b/src/java/org/mxchange/pizzaapplication/beans/basket/BasketWebController.java @@ -22,7 +22,7 @@ import org.mxchange.jshopcore.model.product.Product; /** * An interface for a basket * - * @author Roland Haeder + * @author Roland Haeder */ public interface BasketWebController extends Serializable { /** @@ -40,9 +40,10 @@ public interface BasketWebController extends Serializable { public boolean hasItems (); /** - * Setter for current product instance - * + * Checks whether the currently set product is added in basked + * * @param product Product instance + * @return Whether the product is added */ - public void setCurrentProduct (final Product product); + public boolean isProductAdded (final Product product); } diff --git a/src/java/org/mxchange/pizzaapplication/beans/category/AdminCategoryWebBean.java b/src/java/org/mxchange/pizzaapplication/beans/category/AdminCategoryWebBean.java index dccb3b3a..81e7d0fa 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/category/AdminCategoryWebBean.java +++ b/src/java/org/mxchange/pizzaapplication/beans/category/AdminCategoryWebBean.java @@ -16,7 +16,6 @@ */ package org.mxchange.pizzaapplication.beans.category; -import java.rmi.RemoteException; import javax.enterprise.context.SessionScoped; import javax.faces.view.facelets.FaceletException; import javax.inject.Named; @@ -31,7 +30,7 @@ import org.mxchange.jshopcore.model.category.ProductCategory; /** * Main application class * - * @author Roland Haeder + * @author Roland Haeder */ @Named("admin_category") @SessionScoped @@ -79,7 +78,7 @@ public class AdminCategoryWebBean extends BaseFrameworkBean implements AdminCate // Deligate to bean this.categoryBean.doAdminAddCategory(category); - } catch (final CategoryTitleAlreadyUsedException | RemoteException ex) { + } catch (final CategoryTitleAlreadyUsedException ex) { // Continue to throw throw new FaceletException(ex); } diff --git a/src/java/org/mxchange/pizzaapplication/beans/category/AdminCategoryWebController.java b/src/java/org/mxchange/pizzaapplication/beans/category/AdminCategoryWebController.java index 2db0eb35..10e8b5f4 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/category/AdminCategoryWebController.java +++ b/src/java/org/mxchange/pizzaapplication/beans/category/AdminCategoryWebController.java @@ -21,7 +21,7 @@ import javax.faces.view.facelets.FaceletException; /** * An interface for product controllers for "ADMIN" role * - * @author Roland Haeder + * @author Roland Haeder */ public interface AdminCategoryWebController { diff --git a/src/java/org/mxchange/pizzaapplication/beans/controller/PizzaShopWebBean.java b/src/java/org/mxchange/pizzaapplication/beans/controller/ShopWebBean.java similarity index 74% rename from src/java/org/mxchange/pizzaapplication/beans/controller/PizzaShopWebBean.java rename to src/java/org/mxchange/pizzaapplication/beans/controller/ShopWebBean.java index 211e86c1..d2b33be9 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/controller/PizzaShopWebBean.java +++ b/src/java/org/mxchange/pizzaapplication/beans/controller/ShopWebBean.java @@ -16,13 +16,12 @@ */ package org.mxchange.pizzaapplication.beans.controller; -import java.rmi.RemoteException; -import java.sql.SQLException; import java.util.Deque; import java.util.Queue; import javax.annotation.PostConstruct; import javax.enterprise.context.SessionScoped; import javax.faces.FacesException; +import javax.faces.view.facelets.FaceletException; import javax.inject.Named; import javax.naming.InitialContext; import javax.naming.NamingException; @@ -36,11 +35,11 @@ import org.mxchange.jshopcore.model.product.ProductSessionBeanRemote; /** * Main application class * - * @author Roland Haeder + * @author Roland Haeder */ @Named("controller") @SessionScoped -public class PizzaShopWebBean extends BaseFrameworkBean implements PizzaShopWebController { +public class ShopWebBean extends BaseFrameworkBean implements ShopWebController { /** * Serial id */ @@ -61,7 +60,7 @@ public class PizzaShopWebBean extends BaseFrameworkBean implements PizzaShopWebC * * @throws javax.naming.NamingException Something happened here? */ - public PizzaShopWebBean () throws NamingException { + public ShopWebBean () throws NamingException { // Get initial context InitialContext context = new InitialContext(); @@ -72,40 +71,39 @@ public class PizzaShopWebBean extends BaseFrameworkBean implements PizzaShopWebC this.productBean = (ProductSessionBeanRemote) context.lookup("ejb/stateless-product"); //NOI18N } - @PostConstruct - public void init () throws RuntimeException { - // Call super init first - super.genericInit(); + @Override + public Deque getAllCategories () throws FacesException { + // Get List back + Deque deque = this.getCategoryBean().getAllCategories(); + + // Return it + return deque; } @Override - public Queue getAvailableProducts () throws FacesException { - try { - return this.getProductBean().getAvailableProducts(); - } catch (final RemoteException ex) { - // Continue to throw - throw new FacesException(ex); - } + public Deque getAllCategoriesParent () throws FaceletException { + // Get regular list + Deque deque = this.getAllCategories(); + + // Create fake entry + Category fake = new ProductCategory(0L, this.getMessage("Category.has_no_parent_category"), 0L); //NOI18N + + // Add it + deque.addFirst(fake); + + // Return it + return deque; } @Override - public Queue getAllCategories () throws FacesException { - try { - // Fake zero categoryBean - Category c = new ProductCategory(0L, "Ist oberste Kategorie", 0L); - - // Get List back - Deque deque = this.getCategoryBean().getAllCategories(); - - // Add fake categoryBean - deque.addFirst(c); - - // Return it - return deque; - } catch (final SQLException ex) { - // Continue to throw - throw new FacesException(ex); - } + public Queue getAvailableProducts () throws FacesException { + return this.getProductBean().getAvailableProducts(); + } + + @PostConstruct + public void init () { + // Call super init for getting resource bundle + super.genericInit(); } /** diff --git a/src/java/org/mxchange/pizzaapplication/beans/controller/PizzaShopWebController.java b/src/java/org/mxchange/pizzaapplication/beans/controller/ShopWebController.java similarity index 74% rename from src/java/org/mxchange/pizzaapplication/beans/controller/PizzaShopWebController.java rename to src/java/org/mxchange/pizzaapplication/beans/controller/ShopWebController.java index 4998aa4b..547c66e9 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/controller/PizzaShopWebController.java +++ b/src/java/org/mxchange/pizzaapplication/beans/controller/ShopWebController.java @@ -17,6 +17,7 @@ package org.mxchange.pizzaapplication.beans.controller; import java.io.Serializable; +import java.util.Deque; import java.util.Queue; import javax.faces.view.facelets.FaceletException; import org.mxchange.jshopcore.model.category.Category; @@ -25,9 +26,9 @@ import org.mxchange.jshopcore.model.product.Product; /** * An interface for the shop * - * @author Roland Haeder + * @author Roland Haeder */ -public interface PizzaShopWebController extends Serializable { +public interface ShopWebController extends Serializable { /** * Some "getter" for a linked list of only available products @@ -43,5 +44,14 @@ public interface PizzaShopWebController extends Serializable { * @return All categories * @throws javax.faces.view.facelets.FaceletException If anything went wrong */ - public Queue getAllCategories () throws FaceletException; + public Deque getAllCategories () throws FaceletException; + + /** + * Some "getter" for a linked list of all categories including "Has no + * parent" fake category. + * + * @return All categories + * @throws javax.faces.view.facelets.FaceletException If anything went wrong + */ + public Deque getAllCategoriesParent () throws FaceletException; } diff --git a/src/java/org/mxchange/pizzaapplication/beans/customer/CustomerWebBean.java b/src/java/org/mxchange/pizzaapplication/beans/customer/CustomerWebBean.java index 703a87dc..d8d86e8e 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/customer/CustomerWebBean.java +++ b/src/java/org/mxchange/pizzaapplication/beans/customer/CustomerWebBean.java @@ -28,7 +28,7 @@ import org.mxchange.jshopcore.model.customer.CustomerSessionBeanRemote; /** * A customer bean which hides the customer instance * - * @author Roland Haeder + * @author Roland Haeder */ @Named("customer") @SessionScoped diff --git a/src/java/org/mxchange/pizzaapplication/beans/customer/CustomerWebController.java b/src/java/org/mxchange/pizzaapplication/beans/customer/CustomerWebController.java index 6ee25f7b..691211b5 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/customer/CustomerWebController.java +++ b/src/java/org/mxchange/pizzaapplication/beans/customer/CustomerWebController.java @@ -22,7 +22,7 @@ import org.mxchange.jcore.model.contact.gender.Gender; /** * An interface for customer beans * - * @author Roland Haeder + * @author Roland Haeder */ public interface CustomerWebController extends Serializable { diff --git a/src/java/org/mxchange/pizzaapplication/beans/gender/GenderWebBean.java b/src/java/org/mxchange/pizzaapplication/beans/gender/GenderWebBean.java index b993c1a4..e15647c0 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/gender/GenderWebBean.java +++ b/src/java/org/mxchange/pizzaapplication/beans/gender/GenderWebBean.java @@ -28,7 +28,7 @@ import org.mxchange.jcoreee.beans.BaseFrameworkBean; /** * A customer bean which hides the customer instance * - * @author Roland Haeder + * @author Roland Haeder */ @Named ("gender") @ApplicationScoped diff --git a/src/java/org/mxchange/pizzaapplication/beans/gender/GenderWebController.java b/src/java/org/mxchange/pizzaapplication/beans/gender/GenderWebController.java index 48e2e8af..7fa87790 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/gender/GenderWebController.java +++ b/src/java/org/mxchange/pizzaapplication/beans/gender/GenderWebController.java @@ -23,7 +23,7 @@ import org.mxchange.jcore.model.contact.gender.Gender; /** * An interface for data beans * - * @author Roland Haeder + * @author Roland Haeder */ public interface GenderWebController extends Serializable { diff --git a/src/java/org/mxchange/pizzaapplication/beans/product/AdminProductWebBean.java b/src/java/org/mxchange/pizzaapplication/beans/product/AdminProductWebBean.java index 5ab300db..c3de01c0 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/product/AdminProductWebBean.java +++ b/src/java/org/mxchange/pizzaapplication/beans/product/AdminProductWebBean.java @@ -16,39 +16,61 @@ */ package org.mxchange.pizzaapplication.beans.product; -import java.rmi.RemoteException; import java.util.Deque; -import javax.enterprise.context.SessionScoped; +import javax.enterprise.context.ApplicationScoped; import javax.faces.view.facelets.FaceletException; import javax.inject.Named; import javax.naming.InitialContext; import javax.naming.NamingException; import org.mxchange.jcoreee.beans.BaseFrameworkBean; import org.mxchange.jshopcore.exceptions.ProductTitleAlreadyUsedException; +import org.mxchange.jshopcore.model.product.GenericProduct; import org.mxchange.jshopcore.model.product.Product; import org.mxchange.jshopcore.model.product.ProductSessionBeanRemote; /** * Main application class * - * @author Roland Haeder + * @author Roland Haeder */ -@Named("admin_product") -@SessionScoped +@Named ("admin_product") +@ApplicationScoped public class AdminProductWebBean extends BaseFrameworkBean implements AdminProductWebController { + /** * Serial id */ private static final long serialVersionUID = 5_819_375_183_472_871L; + + + /** + * Property available + */ + private Boolean available; + + /** + * Category id + */ + private Long categoryId; + + /** + * Property price + */ + private Float price; /** * Remote bean for products */ - private final ProductSessionBeanRemote product; + private final ProductSessionBeanRemote productBean; + + /** + * Property title + */ + private String title; /** * Default constructor - * + * * @throws javax.naming.NamingException Something happened here? */ public AdminProductWebBean () throws NamingException { @@ -56,14 +78,29 @@ public class AdminProductWebBean extends BaseFrameworkBean implements AdminProdu InitialContext context = new InitialContext(); // Try to lookup the bean - this.product = (ProductSessionBeanRemote) context.lookup("ejb/stateless-product"); //NOI18N + this.productBean = (ProductSessionBeanRemote) context.lookup("ejb/stateless-product"); //NOI18N } @Override - public void doAdminAddProduct (final Product product) throws FaceletException { + public void addProduct () throws FaceletException { try { + // Create product instance + Product product = new GenericProduct(); + + // Add all + product.setAvailable(this.getAvailable()); + product.setCategoryId(this.getCategoryId()); + product.setPrice(this.getPrice()); + product.setTitle(this.getTitle()); + // Call bean - this.product.doAdminAddProduct(product); + this.productBean.doAdminAddProduct(product); + + // Set all to null + this.setAvailable(Boolean.FALSE); + this.setCategoryId(null); + this.setPrice(null); + this.setTitle(null); } catch (final ProductTitleAlreadyUsedException ex) { // Continue to throw throw new FaceletException(ex); @@ -72,12 +109,47 @@ public class AdminProductWebBean extends BaseFrameworkBean implements AdminProdu @Override public Deque getAllProducts () throws FaceletException { - try { - // Call bean - return this.product.getAllProducts(); - } catch (final RemoteException ex) { - // Continue to throw - throw new FaceletException(ex); - } + // Call bean + return this.productBean.getAllProducts(); + } + + @Override + public void setAvailable (final Boolean available) { + this.available = available; + } + + @Override + public Long getCategoryId () { + return categoryId; + } + + @Override + public void setCategoryId (Long categoryId) { + this.categoryId = categoryId; + } + + @Override + public Float getPrice () { + return this.price; + } + + @Override + public void setPrice (final Float price) { + this.price = price; + } + + @Override + public String getTitle () { + return this.title; + } + + @Override + public void setTitle (final String title) { + this.title = title; + } + + @Override + public Boolean getAvailable () { + return this.available; } } diff --git a/src/java/org/mxchange/pizzaapplication/beans/product/AdminProductWebController.java b/src/java/org/mxchange/pizzaapplication/beans/product/AdminProductWebController.java index a77b18db..23fc5c65 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/product/AdminProductWebController.java +++ b/src/java/org/mxchange/pizzaapplication/beans/product/AdminProductWebController.java @@ -23,17 +23,16 @@ import org.mxchange.jshopcore.model.product.Product; /** * An interface for product controllers for "ADMIN" role * - * @author Roland Haeder + * @author Roland Haeder */ public interface AdminProductWebController { /** * Adds given product data from request to database * - * @param product Product instance * @throws javax.faces.view.facelets.FaceletException If something unexpected happened */ - public void doAdminAddProduct (final Product product) throws FaceletException; + public void addProduct () throws FaceletException; /** * Some "getter" for a linked list of all products @@ -42,4 +41,60 @@ public interface AdminProductWebController { * @throws javax.faces.view.facelets.FaceletException If anything went wrong */ public Deque getAllProducts () throws FaceletException; + + /** + * Getter for product's title property + * + * @return Product's title + */ + public String getTitle (); + + /** + * Setter for product's title property + * + * @param title Product's title + */ + public void setTitle (final String title); + + /** + * Getter for product's price property + * + * @return Product's price property + */ + public Float getPrice (); + + /** + * Setter for product's price property + * + * @param price Product's price property + */ + public void setPrice (final Float price); + + /** + * Setter for product's available property + * + * @param available Product's available property + */ + public void setAvailable (final Boolean available); + + /** + * Getter for product's available property + * + * @return Product's available property + */ + public Boolean getAvailable (); + + /** + * Getter for product's category id + * + * @return Product's category id + */ + public Long getCategoryId (); + + /** + * Setter for product's category id + * + * @param categoryId Product's category id + */ + public void setCategoryId (final Long categoryId); } diff --git a/web/WEB-INF/templates/admin/admin_category_selection_box.tpl b/web/WEB-INF/templates/admin/admin_category_selection_box.tpl index e986ccec..2ae89974 100644 --- a/web/WEB-INF/templates/admin/admin_category_selection_box.tpl +++ b/web/WEB-INF/templates/admin/admin_category_selection_box.tpl @@ -4,7 +4,7 @@ xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets"> - + diff --git a/web/WEB-INF/templates/admin/admin_parent_category_selection_box.tpl b/web/WEB-INF/templates/admin/admin_parent_category_selection_box.tpl index 8b6d8815..c3251221 100644 --- a/web/WEB-INF/templates/admin/admin_parent_category_selection_box.tpl +++ b/web/WEB-INF/templates/admin/admin_parent_category_selection_box.tpl @@ -4,7 +4,7 @@ xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets"> - - + + diff --git a/web/admin/category.xhtml b/web/admin/category.xhtml index d00596f5..53d89251 100644 --- a/web/admin/category.xhtml +++ b/web/admin/category.xhtml @@ -19,7 +19,7 @@

- + Auswählen: #{cat.categoryId}: @@ -33,8 +33,7 @@ Elternkategorie: - #{cat.categoryId}: - #{controller.generateLinkForParent(cat)} + #{cat.parentId} diff --git a/web/admin/product.xhtml b/web/admin/product.xhtml index 30039b91..2d8f6df0 100644 --- a/web/admin/product.xhtml +++ b/web/admin/product.xhtml @@ -19,11 +19,10 @@
- + Produktnummer: - #{pro.id}: - + #{pro.id}: @@ -36,17 +35,17 @@ Kategorie: - ${controller.getPrintableProduktCategory(product)} + #{pro.categoryId} Verfügbar: - ${controller.getPrintableProductAvailability(product)} + #{pro.available} @@ -69,7 +68,7 @@
- +
@@ -82,7 +81,7 @@
- +
@@ -106,10 +105,10 @@
- + + + +
diff --git a/web/index.xhtml b/web/index.xhtml index c8f01264..05ae23e3 100644 --- a/web/index.xhtml +++ b/web/index.xhtml @@ -65,10 +65,7 @@ - - - - + @@ -96,10 +93,10 @@ - + - + -- 2.39.5