Author: DavidK Date: 2010-02-26 12:06:01 +0100 (Fri, 26 Feb 2010) New Revision: 1899 Added: trunk/server/webServer2/WebContent/js/category/ trunk/server/webServer2/WebContent/js/category/catDefAssignStep1.js trunk/server/webServer2/WebContent/js/category/catDefAssignStep2.js trunk/server/webServer2/WebContent/styles/category/ trunk/server/webServer2/WebContent/styles/category/catDefAssignStep1.css trunk/server/webServer2/WebContent/styles/category/catDefAssignStep2.css Modified: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/categrel/CatDefAssignStep1Bean.java trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/categrel/CatDefAssignStep2Bean.java trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/categrel/CatDefListComponentBean.java trunk/server/webServer2/JavaSource/cz/elvys/webServer/messages/labels_cs.properties trunk/server/webServer2/JavaSource/cz/elvys/webServer/utils/faces/BeanManager.java trunk/server/webServer2/WebContent/applets/bin/LayoutDesigner.jar trunk/server/webServer2/WebContent/secured/categrel/catDefAssignStep1.xhtml trunk/server/webServer2/WebContent/secured/categrel/catDefAssignStep2.xhtml trunk/server/webServer2/WebContent/secured/categrel/listOfCatDefs.xhtml trunk/server/webServer2/WebContent/secured/components/category/catDefListComponent.xhtml trunk/server/webServer2/WebContent/secured/elvysrel/listOfElvyses.xhtml Log: assigning of category upgraded.. Modified: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/categrel/CatDefAssignStep1Bean.java =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/categrel/CatDefAssignStep1Bean.java 2010-02-26 09:41:41 UTC (rev 1898) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/categrel/CatDefAssignStep1Bean.java 2010-02-26 11:06:01 UTC (rev 1899) @@ -37,7 +37,6 @@ // form-related fields private List<Category> usedCats = null; - private List<CategoryDefinition> availableCats = null; private Category catToDelete = null; private boolean highDeleteWarning = true; private Integer deleteFormStep = 1; @@ -56,12 +55,6 @@ public void setUsedCats(List<Category> usedCats) { this.usedCats = usedCats; } - public List<CategoryDefinition> getAvailableCats() { - return availableCats; - } - public void setAvailableCats(List<CategoryDefinition> availableCats) { - this.availableCats = availableCats; - } public Elvys getUpdatedElvys() { return updatedElvys; } @@ -146,28 +139,26 @@ defmap.put(def.getId(), def); } - // get cats + // get used cats usedCats = cbl.listCategoriesForGroupMakeSession(groupId); // add loaded catdef to cats for(Category cat: usedCats) { cat.setCategoryDefinition(defmap.get(cat.getCategoryDefinition().getId())); } - - // load all company related category definitions - List<CategoryDefinition> allCats = cbl.listCatDefinitionsOfCompanyMakeSession(companyId); - - // get list of available category definitions - for(Category cat: usedCats) { - allCats.remove(cat.getCategoryDefinition()); - } - availableCats = allCats; } catch (Exception e) { String message = CommonUtils.prepareErrorMessage( CANNOT_PREPARE,e); log.error(message,e); throw new RuntimeException(message,e); } + // prepare inner-components (catDefListComponent.xhtml) + CatDefListComponentBean bean = BeanManager.getCatDefListComponentBean(); + bean.setMode(CatDefListComponentBean.MODE_SELECT_UNUSED); + bean.setInputParamGroupId(groupId); + bean.setAfterSelectionAction1("catDefAssignStep2Bean.prepareOnCreate"); + bean.prepareDependingOnMode(); + return "assignCategoryStep1"; } @@ -206,7 +197,6 @@ private void invalidate(){ updatedElvys = null; usedCats = null; - availableCats = null; } Modified: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/categrel/CatDefAssignStep2Bean.java =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/categrel/CatDefAssignStep2Bean.java 2010-02-26 09:41:41 UTC (rev 1898) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/categrel/CatDefAssignStep2Bean.java 2010-02-26 11:06:01 UTC (rev 1899) @@ -112,13 +112,44 @@ ebl = Fact.getElvysBL(); } + + /** + * Prepares 2nd step of the UC when creating (assigning category) + * @return navigation string + */ + public String prepareOnCreate() { + // init + updating = false; + this.updatedElvys = BeanManager.getCatDefAssignStep1Bean().getUpdatedElvys(); + // call prepare + String ret = prepare(); + return ret; + } + /** + * Prepares 2nd step of the UC when updating (updating assignation of category) + * @return navigation string + */ + public String prepareOnUpdate() { + // init + updating = true; + this.updatedElvys = BeanManager.getCatDefAssignStep1Bean().getUpdatedElvys(); + // call prepare + String ret = prepare(); + return ret; + } + /** * Prepares 2nd step of the UC * @return navigation string */ - public String prepare() { + private String prepare() { + // check contract + if (updatedElvys == null) { + throw new RuntimeException("updatedElvys is null"); + } + existingCatPlannings = new ArrayList<ExistingCatPlanningRecord>(); int catDefId = updating ? selectedCategoryWhenModifying.getCategoryDefinition().getId() Modified: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/categrel/CatDefListComponentBean.java =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/categrel/CatDefListComponentBean.java 2010-02-26 09:41:41 UTC (rev 1898) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/categrel/CatDefListComponentBean.java 2010-02-26 11:06:01 UTC (rev 1899) @@ -26,8 +26,10 @@ private static final String CANNOT_PREPARE_LIST = "Error occured when preparing list of category defintinions"; private static final String CANNOT_REMOVE_CATEGORY = "Couldn't remove the category definition.."; private static final String CANNOT_PREPARE_DELETE_CAT = "Couldn't prepare deletion of the category.."; - + private static final String CANNOT_CALL = "Cannot call registered listener"; + private static final String CANNOT_CALL_ACTION = "Cannot call registered action"; + // const public static final String MODE_SELECT_ALL = "mode_select_all"; public static final String MODE_SELECT_UNUSED = "mode_select_unused"; @@ -38,8 +40,12 @@ // fields // value for filtering on the table private String filterValue = null; - // id of elvys - when uses method="mode_select_unused" - this param must be set - private Integer elvysId = null; + // id of group - when uses method="mode_select_unused" - this param must be set + private Integer inputParamGroupId = null; + // after selection listener - registered + private String afterSelectionListener1 = null; + // after selection action method -registered + private String afterSelectionAction1 = null; // mode of work: mode_select_all / mode_select_unused private String mode = null; // list of categories to display @@ -93,12 +99,24 @@ public void setFilterValue(String filterValue) { this.filterValue = filterValue; } - public Integer getElvysId() { - return elvysId; + public String getAfterSelectionListener1() { + return afterSelectionListener1; } - public void setElvysId(Integer elvysId) { - this.elvysId = elvysId; + public void setAfterSelectionListener1(String afterSelectionListener1) { + this.afterSelectionListener1 = afterSelectionListener1; } + public String getAfterSelectionAction1() { + return afterSelectionAction1; + } + public void setAfterSelectionAction1(String afterSelectionAction1) { + this.afterSelectionAction1 = afterSelectionAction1; + } + public Integer getInputParamGroupId() { + return inputParamGroupId; + } + public void setInputParamGroupId(Integer inputParamGroupId) { + this.inputParamGroupId = inputParamGroupId; + } public String getMode() { return mode; } @@ -143,11 +161,11 @@ lcd = prepareListOfAllCatDef(); } else if (mode.equals(MODE_SELECT_UNUSED)) { // select only unused categories - // need to have layoutId set - if (elvysId == null) { + // need to have inputParamGroupId set + if (inputParamGroupId == null) { throw new RuntimeException("elvysId == null"); } - lcd = prepareListOfUnusedCatDef(elvysId); + lcd = prepareListOfUnusedCatDef(inputParamGroupId); } else { throw new NullPointerException("not supported mode of CatDefListComponent: "+mode); } @@ -229,17 +247,17 @@ /** - * Method prepares list of unused Category Definition for the given Elvys + * Method prepares list of unused Category Definition for the given ElvysGroup */ - private List<CategoryDefinition> prepareListOfUnusedCatDef(Integer elvysId) { + private List<CategoryDefinition> prepareListOfUnusedCatDef(Integer groupId) { List<CategoryDefinition> catdefs = null; try { - ElvysGroup eg = elvysBL.getElvysByIdMakeSession(elvysId).getElvysGroup(); + ElvysGroup eg = elvysBL.getGroupByIdMakeSession(groupId); catdefs = catBL.listCatDefinitionsUnusedForGroupMakeSession(eg.getId()); } catch (Exception e) { String message = CommonUtils.prepareErrorMessage( - CANNOT_PREPARE_LIST, "elvysId", elvysId); + CANNOT_PREPARE_LIST, "groupId", groupId); log.error(message,e); throw new RuntimeException(e); } @@ -327,8 +345,48 @@ return false; } + /** + * fires registered object to destination and fires registered actionListener + * @param aev + */ + public void callListener1(ActionEvent aev) { + // calling registered listener + if (afterSelectionListener1 != null && !afterSelectionListener1.trim().equals("")) { + try { + // call registered ActionEvent + BeanManager.fireActionListener(afterSelectionListener1); + } catch (Exception e) { + String message = CommonUtils.prepareErrorMessage(CANNOT_CALL + ,"listener", afterSelectionListener1); + log.error(message, e); + throw new RuntimeException(message, e); + } + } else { + // no listener registered, it's ok, do nothing + } + } + public String afterSelectionAction1Action() { + // calling registered Action + String ret= null; + try { + if (afterSelectionAction1 != null && !afterSelectionAction1.trim().equals("")) { + // call registered ActionEvent + ret = BeanManager.fireAction(afterSelectionAction1); + } else { + // no action registered + throw new RuntimeException("no afterSelectionAction1 registered, don't know where to go.."); + } + } catch (Exception e) { + String message = CommonUtils.prepareErrorMessage(CANNOT_CALL_ACTION + ,"action", afterSelectionAction1); + log.error(message, e); + throw new RuntimeException(message, e); + } + return ret; + } + /** * Holder class for the list of category * @author David @@ -404,5 +462,18 @@ + /** + * ActionListener for calling doAction1 + * @author David + * + */ + public static class AfterSelectionListener1ActionListener implements ActionListener { + public void processAction(ActionEvent event) + throws AbortProcessingException { + CatDefListComponentBean bean = BeanManager.getCatDefListComponentBean(); + bean.callListener1(null); + } + } + } Modified: trunk/server/webServer2/JavaSource/cz/elvys/webServer/messages/labels_cs.properties =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/messages/labels_cs.properties 2010-02-26 09:41:41 UTC (rev 1898) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/messages/labels_cs.properties 2010-02-26 11:06:01 UTC (rev 1899) @@ -220,8 +220,8 @@ catdef.assign.step1.title=P\u0159i\u0159azen\u00ED kategorie pl\u00E1nov\u00E1n\u00ED pro kiosek catdef.assign.step1.elvys=Zpracov\u00E1van\u00FD kiosek catdef.assign.step1.listofavailable=Nep\u0159i\u0159azen\u00E9 kategorie -catdef.assign.step1.listofavailable.add.tooltip=P\u0159id\u00E1 pro kiosek mo\u017Enost pl\u00E1nov\u00E1n\u00ED dat na danou kategorii -catdef.assign.step1.listofused.edit.tooltip=Umo\u017En\u00ED upravit nastaven\u00ED dan\u00E9 kategorie na kiosku +catdef.assign.step1.listofavailable.add.tooltip=P\u0159i\u0159adit kategorii kiosku. +catdef.assign.step1.listofused.edit.tooltip=Upravit parametry p\u0159i\u0159azen\u00ED kategorie kiosku. catdef.assign.step1.listofused.delete.tooltip=Odebrat kategorii catdef.assign.step1.listofused.delete.modal.label=Odebr\u00E1n\u00ED kategorie catdef.assign.step1.listofused.delete.modal.deletequestion=Opravdu chcete odebrat kategorii Modified: trunk/server/webServer2/JavaSource/cz/elvys/webServer/utils/faces/BeanManager.java =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/utils/faces/BeanManager.java 2010-02-26 09:41:41 UTC (rev 1898) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/utils/faces/BeanManager.java 2010-02-26 11:06:01 UTC (rev 1899) @@ -352,10 +352,32 @@ } + /** + * Launches action on some bean. + * @param methodIdentification specification of actionListener name- e.g. "beanName.action". + * Cannot contain "#{}" + */ + public static String fireAction(String methodIdentification) throws Exception { + FacesContext fc = FacesContext.getCurrentInstance(); + Application app = fc.getApplication(); + try { + // find method + MethodExpression me = app.getExpressionFactory().createMethodExpression(fc.getELContext(), "#{"+methodIdentification+"}", String.class, new Class[]{}); + // run method + Object ret = me.invoke(fc.getELContext(), new Object[]{}); + String str = (String) ret; + return str; + } catch (Exception e) { + String message = CommonUtils.prepareErrorMessage(COULDNT_INVOKE_METHOD + ,"methodIdentification", methodIdentification); + throw new Exception(message,e); + } + } + /* * * Modified: trunk/server/webServer2/WebContent/applets/bin/LayoutDesigner.jar =================================================================== (Binary files differ) Added: trunk/server/webServer2/WebContent/js/category/catDefAssignStep1.js =================================================================== Added: trunk/server/webServer2/WebContent/js/category/catDefAssignStep2.js =================================================================== Modified: trunk/server/webServer2/WebContent/secured/categrel/catDefAssignStep1.xhtml =================================================================== --- trunk/server/webServer2/WebContent/secured/categrel/catDefAssignStep1.xhtml 2010-02-26 09:41:41 UTC (rev 1898) +++ trunk/server/webServer2/WebContent/secured/categrel/catDefAssignStep1.xhtml 2010-02-26 11:06:01 UTC (rev 1899) @@ -18,6 +18,17 @@ </ui:define> <ui:define name="contentSubTitle"></ui:define> + +<ui:define name="pageStyle"> + <a4j:loadStyle src="/styles/category/catDefAssignStep1.css"/> +</ui:define> +<ui:define name="pageScript"> + <script type="text/javascript" language="javascript" src="/webServer2/js/category/catDefAssignStep1.js"/> +</ui:define> + + + + <ui:define name="contentBody"> <h:form id="CatDefAssingStep1Form"> @@ -43,128 +54,118 @@ <br/> </h:panelGroup> - - <h:panelGrid columns="2" columnClasses="top 70per, top 30per" width="100%"> - <rich:orderingList - id="CatOrderList" - value="#{catDefAssignStep1Bean.usedCats}" - var="cat" - listHeight="200" - listWidth="680" - converter="categoryOrderConverter"> - <f:facet name="caption"> - <h:outputText value="#{lbl['catdef.assign.step1.list.caption']}" /> - </f:facet> - <rich:column width="80"> - <f:facet name="header"> - <h:outputText value="#{lbl['catdef.assign.step1.list.order']}" /> - </f:facet> - <h:outputText value="#{cat.catOrder}"></h:outputText> - </rich:column> - <rich:column width="120"> - <f:facet name="header"> - <h:outputText value="#{lbl['catdef.assign.step1.list.name']}" /> - </f:facet> - <h:outputText value="#{cat.categoryDefinition.name}"></h:outputText> - </rich:column> - <rich:column width="120"> - <f:facet name="header"> - <h:outputText value="#{lbl['catdef.assign.step1.list.layout.name']}" /> - </f:facet> - <h:outputText value="#{cat.categoryDefinition.layout.name}"></h:outputText> - </rich:column> - <rich:column width="120"> - <f:facet name="header"> - <h:outputText value="#{lbl['catdef.assign.step1.list.layout.pos']}" /> - </f:facet> - <h:outputText value="#{cat.categoryDefinition.layout.sectCount}"></h:outputText><br/> - </rich:column> - - <rich:column width="80"> - <f:facet name="header"> - <h:outputText value="#{lbl['catdef.assign.step1.list.layout.shared']}" /> - </f:facet> - <h:outputText - id="CatIsShared" - rendered="true" - value="#{lbl['catdef.assign.step1.list.layout.shared.yes']}" /> - <rich:toolTip for="CatIsShared"> - <h:outputText value="#{lbl['catdef.assign.step1.list.layout.shared.yes.tooltip']}"/> - </rich:toolTip> - <h:outputText id="CatIsNotShared" - rendered="true" - value="#{lbl['catdef.assign.step1.list.layout.shared.no']}" /> - <rich:toolTip for="CatIsNotShared"> - <h:outputText value="#{lbl['catdef.assign.step1.list.layout.shared.no.tooltip']}"/> - </rich:toolTip> - </rich:column> - - <rich:column width="80"> - <f:facet name="header"> - <h:outputText value="#{lbl['catdef.assign.step1.list.edit']}" /> - </f:facet> - <h:commandButton id="ChangeAssignation" - image="/images/icons/edit.png" - immediate="true" - action="#{catDefAssignStep2Bean.prepare}"> - <f:setPropertyActionListener value="#{cat}" target="#{catDefAssignStep2Bean.selectedCategoryWhenModifying}" /> - <f:setPropertyActionListener value="#{catDefAssignStep1Bean.updatedElvys}" target="#{catDefAssignStep2Bean.updatedElvys}"/> - <f:setPropertyActionListener value="#{true}" target="#{catDefAssignStep2Bean.updating}"/> - </h:commandButton> - <rich:toolTip for="ChangeAssignation"> - <h:outputText value="#{lbl['catdef.assign.step1.listofused.edit.tooltip']}"/> - </rich:toolTip> - </rich:column> - - <rich:column width="80"> - <f:facet name="header"> - <h:outputText value="#{lbl['catdef.assign.step1.list.delete']}" /> - </f:facet> - <a4j:commandButton id="RemoveAssignation" - image="/images/icons/delete.gif" - onclick="Richfaces.showModalPanel('DeleteAssignationModal',{left:300, top:300})" - reRender="DeleteAssignationForm"> - <f:setPropertyActionListener value="#{cat}" target="#{catDefAssignStep1Bean.catToDelete}" /> - <f:actionListener type="cz.elvys.webServer.beans.categrel.CatDefAssignStep1Bean$PrepareUnassignCategoryActionListener"/> - </a4j:commandButton> + <h:panelGroup styleClass="table-1-ordering"> + <rich:orderingList + id="CatOrderList" + value="#{catDefAssignStep1Bean.usedCats}" + var="cat" + listHeight="200" + listWidth="680" + converter="categoryOrderConverter"> + <f:facet name="caption"> + <h:outputText value="#{lbl['catdef.assign.step1.list.caption']}" /> + </f:facet> + <rich:column width="80"> + <f:facet name="header"> + <h:outputText value="#{lbl['catdef.assign.step1.list.order']}" /> + </f:facet> + <h:outputText value="#{cat.catOrder}"></h:outputText> + </rich:column> + <rich:column width="120"> + <f:facet name="header"> + <h:outputText value="#{lbl['catdef.assign.step1.list.name']}" /> + </f:facet> + <h:outputText value="#{cat.categoryDefinition.name}"></h:outputText> + </rich:column> + <rich:column width="120"> + <f:facet name="header"> + <h:outputText value="#{lbl['catdef.assign.step1.list.layout.name']}" /> + </f:facet> + <h:outputText value="#{cat.categoryDefinition.layout.name}"></h:outputText> + </rich:column> + <rich:column width="120"> + <f:facet name="header"> + <h:outputText value="#{lbl['catdef.assign.step1.list.layout.pos']}" /> + </f:facet> + <h:outputText value="#{cat.categoryDefinition.layout.sectCount}"></h:outputText><br/> + </rich:column> - <rich:toolTip for="RemoveAssignation"> - <h:outputText value="#{lbl['catdef.assign.step1.listofused.delete.tooltip']}"/> - </rich:toolTip> - </rich:column> + <rich:column width="80"> + <f:facet name="header"> + <h:outputText value="#{lbl['catdef.assign.step1.list.layout.shared']}" /> + </f:facet> + <h:outputText + id="CatIsShared" + rendered="true" + value="#{lbl['catdef.assign.step1.list.layout.shared.yes']}" /> + <rich:toolTip for="CatIsShared"> + <h:outputText value="#{lbl['catdef.assign.step1.list.layout.shared.yes.tooltip']}"/> + </rich:toolTip> + <h:outputText id="CatIsNotShared" + rendered="true" + value="#{lbl['catdef.assign.step1.list.layout.shared.no']}" /> + <rich:toolTip for="CatIsNotShared"> + <h:outputText value="#{lbl['catdef.assign.step1.list.layout.shared.no.tooltip']}"/> + </rich:toolTip> + </rich:column> + + <rich:column width="80"> + <f:facet name="header"> + <h:outputText value="#{lbl['catdef.assign.step1.list.edit']}" /> + </f:facet> + <h:commandButton id="ChangeAssignation" + image="/images/icons/edit.png" + immediate="true" + action="#{catDefAssignStep2Bean.prepareOnUpdate}"> + <f:setPropertyActionListener value="#{cat}" target="#{catDefAssignStep2Bean.selectedCategoryWhenModifying}" /> + </h:commandButton> + <rich:toolTip for="ChangeAssignation"> + <h:outputText value="#{lbl['catdef.assign.step1.listofused.edit.tooltip']}"/> + </rich:toolTip> + </rich:column> + + <rich:column width="80"> + <f:facet name="header"> + <h:outputText value="#{lbl['catdef.assign.step1.list.delete']}" /> + </f:facet> + <a4j:commandButton id="RemoveAssignation" + image="/images/icons/delete.gif" + onclick="Richfaces.showModalPanel('DeleteAssignationModal',{left:300, top:300})" + reRender="DeleteAssignationForm"> + <f:setPropertyActionListener value="#{cat}" target="#{catDefAssignStep1Bean.catToDelete}" /> + <f:actionListener type="cz.elvys.webServer.beans.categrel.CatDefAssignStep1Bean$PrepareUnassignCategoryActionListener"/> + </a4j:commandButton> + + <rich:toolTip for="RemoveAssignation"> + <h:outputText value="#{lbl['catdef.assign.step1.listofused.delete.tooltip']}"/> + </rich:toolTip> + </rich:column> + + <a4j:support event="onorderchanged" + ignoreDupResponses="true" + requestDelay="500" + actionListener="#{catDefAssignStep1Bean.order}" + reRender="CatOrderList"/> + </rich:orderingList> + </h:panelGroup> - <a4j:support event="onorderchanged" - ignoreDupResponses="true" - requestDelay="500" - actionListener="#{catDefAssignStep1Bean.order}" - reRender="CatOrderList"/> - </rich:orderingList> - </h:panelGrid> - - <div style="overflow:auto; width: 60%;"> + <h:panelGroup styleClass="table-2-notused"> <!-- LIST OF AVAILABLE CATEGORIES (TO ADD) --> - <h:panelGrid id="AvailableCatListPanel" style="float:left"> - <h:outputText value="#{lbl['catdef.assign.step1.listofavailable']}"/> - <rich:dataList - id="AvailableCatList" - var="catDef" value="#{catDefAssignStep1Bean.availableCats}" rows="0"> - <h:commandLink - id="AddCategoryLink" - value="#{catDef.name}" - immediate="true" - action="#{catDefAssignStep2Bean.prepare}"> - <f:setPropertyActionListener value="#{catDef}" target="#{catDefAssignStep2Bean.selectedCategory}" /> - <f:setPropertyActionListener value="#{catDefAssignStep1Bean.updatedElvys}" target="#{catDefAssignStep2Bean.updatedElvys}"/> - <f:setPropertyActionListener value="#{false}" target="#{catDefAssignStep2Bean.updating}"/> - </h:commandLink> - - <rich:toolTip id="AddCategoryLinkTooltip" for="AddCategoryLink"> - <h:outputText value="#{lbl['catdef.assign.step1.listofavailable.add.tooltip']}"/> - </rich:toolTip> - </rich:dataList> - </h:panelGrid> - </div> + <h:panelGroup id="AvailableCatListPanel" style="float:left"> + <elvys:catDefListComponent + id="NOTUSEDID" + showCreateIcon="false" + showEditIcon="false" + showDeleteIcon="false" + showSelectButton1ActionListener="false" + showSelectButton1Action="true" + caption="#{lbl['catdef.assign.step1.listofavailable']}" + target1="#{catDefAssignStep2Bean.selectedCategory}" + chListenerTooltip1="#{lbl['catdef.assign.step1.listofavailable.add.tooltip']}"/> + </h:panelGroup> + </h:panelGroup> + </rich:panel> </h:form> Modified: trunk/server/webServer2/WebContent/secured/categrel/catDefAssignStep2.xhtml =================================================================== --- trunk/server/webServer2/WebContent/secured/categrel/catDefAssignStep2.xhtml 2010-02-26 09:41:41 UTC (rev 1898) +++ trunk/server/webServer2/WebContent/secured/categrel/catDefAssignStep2.xhtml 2010-02-26 11:06:01 UTC (rev 1899) @@ -18,6 +18,14 @@ </ui:define> <ui:define name="contentSubTitle"></ui:define> +<ui:define name="pageStyle"> + <a4j:loadStyle src="/styles/category/catDefAssignStep2.css"/> +</ui:define> +<ui:define name="pageScript"> + <script type="text/javascript" language="javascript" src="/webServer2/js/category/catDefAssignStep2.js"/> +</ui:define> + + <ui:define name="contentBody"> Modified: trunk/server/webServer2/WebContent/secured/categrel/listOfCatDefs.xhtml =================================================================== --- trunk/server/webServer2/WebContent/secured/categrel/listOfCatDefs.xhtml 2010-02-26 09:41:41 UTC (rev 1898) +++ trunk/server/webServer2/WebContent/secured/categrel/listOfCatDefs.xhtml 2010-02-26 11:06:01 UTC (rev 1899) @@ -35,7 +35,8 @@ showCreateIcon="true" showEditIcon="true" showDeleteIcon="true" - showSelectButton1="false" /> + showSelectButton1ActionListener="false" + showSelectButton1Action="false" /> </rich:panel> Modified: trunk/server/webServer2/WebContent/secured/components/category/catDefListComponent.xhtml =================================================================== --- trunk/server/webServer2/WebContent/secured/components/category/catDefListComponent.xhtml 2010-02-26 09:41:41 UTC (rev 1898) +++ trunk/server/webServer2/WebContent/secured/components/category/catDefListComponent.xhtml 2010-02-26 11:06:01 UTC (rev 1899) @@ -8,18 +8,24 @@ xmlns:elvys="http://www.elvys.farm.particle.cz";> <!-- PROTOCOL -INITIALIZATION CALL A) - | (<f:actionListener type="cz.elvys.webServer.beans.categrel.CatDefListComponentBean$PrepareListCatDefsByMode"/>) +INITIALIZATION CALL A) - selecting all categories + | CALL: - from xhtml: <f:actionListener type="cz.elvys.webServer.beans.categrel.CatDefListComponentBean$PrepareListCatDefsByMode"/> + | - from java: catDefListComponentBean.prepareDependingOnMode | PARAMS (<f:setPropertyActionListener>) | -catDefListComponentBean.mode = "mode_select_all" -INITIALIZATION CALL B) - | (<f:actionListener type="cz.elvys.webServer.beans.categrel.CatDefListComponentBean$PrepareListCatDefsByMode"/>) +INITIALIZATION CALL B) - selecting only unused categories + | CALL: - from xhtml: <f:actionListener type="cz.elvys.webServer.beans.categrel.CatDefListComponentBean$PrepareListCatDefsByMode"/>) + | - from java: catDefListComponentBean.prepareDependingOnMode | PARAMS (<f:setPropertyActionListener>) | -catDefListComponentBean.mode = "mode_select_unused" - | -catDefListComponentBean.elvysId = <id of elvys> + | -catDefListComponentBean.inputParamGroupId = <id of ElvysGroup> - +ADDITIONAL CALL PARAMS: + | -catDefListComponentBean.afterSelectionListener1 (OPTIONAL when using + | actionListener method (without hash and curl.braces) + | -catDefListComponentBean.afterSelectionAction1 (REQUIRED when using + | action method (without hash and curl.braces) INPUT (params): | -id (REQUIRED): @@ -30,17 +36,28 @@ | enables the "edit" functionality | -showDeleteIcon (REQUIRED): | enables the "delete" functionality - | -showSelectButton1 (REQUIRED): - | enables the "select catdef" functionality - | target1 must be then set (optinally rest of xxx1) + | -showSelectButton1ActionListener (REQUIRED): + | enables the "select catdef" functionality in ActionListener mode (when using ajax, staying on page) + | target1 must be then set (optionally rest of xxx1) + | -showSelectButton1Action (REQUIRED): + | enables the "select catdef" functionality in Action mode (when moving elsewhere by action navigation) + | target1 must be then set (optionally rest of xxx1) + | -caption (optional) + | caption of the table selecting file is available, when "target1" is specified + | ( + | look upwards, there is info about : + | -afterSelectionListener1 (applicable when showSelectButton1ActionListener="true" (optional then)) + | -afterSelectionAction1 (applicable when showSelectButton1ActionListener="true" (REQUIRED then)) + | ) | -target1 (required if showSelectButton1 is true) - | -toRerender1 - | -jsOnClick1 - | -jsOnComplete1 - | -chListenerTooltip1 + | -toRerender1 (optional but often useful) + | -jsOnClick1 (optional useful when need to close modal screen on click) + | -jsOnComplete1 (optional -||-) + | -chListenerTooltip1 (optional, but recommended) | (listener is in call params) + | ) --> @@ -54,7 +71,8 @@ or empty showCreateIcon or empty showEditIcon or empty showDeleteIcon - or empty showSelectButton1}"> + or empty showSelectButton1ActionListener + or empty showSelectButton1Action}"> <h:outputText value="BAD CONTRACT" styleClass="error"/> </h:panelGroup> @@ -64,7 +82,8 @@ and not empty showCreateIcon and not empty showEditIcon and not empty showDeleteIcon - and not empty showSelectButton1}"> + and not empty showSelectButton1ActionListener + and not empty showSelectButton1Action}"> <h:form id="CatDefListComponent" styleClass="catdef-list-component"> <h:panelGroup id="fileListAreaAll" styleClass="file-list-area-all"> @@ -78,6 +97,12 @@ width="600" sortMode="single"> + <f:facet name="caption"> + <h:outputText + rendered="#{not empty caption}" + value="#{caption}" /> + </f:facet> + <f:facet name="header"> <rich:columnGroup> <rich:column colspan="6"> @@ -152,7 +177,33 @@ <h:column> <f:facet name="header">#{lbl['catdef.list.body.operations']}</f:facet> <div class="list-operations-main"> + <!-- CHOOSE1 (+LISTENER)--> + <h:panelGroup styleClass="list-operations-item" rendered="#{showSelectButton1ActionListener}"> + <a4j:commandButton id="ChooseButton1AL" + image="/images/icons/select.png" + reRender="#{toRerender1}" + onclick="#{jsOnClick1}" + oncomplete="#{jsOnComplete1AL}"> + <f:setPropertyActionListener value="#{catDefRec.catDef}" target="#{target1}" /> + <f:actionListener type="cz.elvys.webServer.beans.categrel.CatDefListComponentBean$AfterSelectionListener1ActionListener" /> + </a4j:commandButton> + <rich:toolTip for="ChooseButton1" + value="#{chListenerTooltip1}" + direction="top-left" styleClass="short_tooltip" /> + </h:panelGroup> + <!-- CHOOSE1 (+ACTION)--> + <h:panelGroup styleClass="list-operations-item" rendered="#{showSelectButton1Action and !showSelectButton1ActionListener}"> + <h:commandButton id="ChooseButton1A" + image="/images/icons/select.png" + action="#{catDefListComponentBean.afterSelectionAction1Action}"> + <f:setPropertyActionListener value="#{catDefRec.catDef}" target="#{target1}" /> + </h:commandButton> + <rich:toolTip for="ChooseButton1A" + value="#{chListenerTooltip1}" + direction="top-left" styleClass="short_tooltip" /> + </h:panelGroup> + <!-- DELETE --> <h:panelGroup styleClass="list-operations-item" rendered="#{showDeleteIcon}"> @@ -193,6 +244,9 @@ <rich:toolTip for="ShowLayoutPreviewButton" value="#{lbl['catdef.list.body.layout.preview.tooltip']}" /> </h:panelGroup> + + + </div> </h:column> <f:facet name="footer"> Modified: trunk/server/webServer2/WebContent/secured/elvysrel/listOfElvyses.xhtml =================================================================== --- trunk/server/webServer2/WebContent/secured/elvysrel/listOfElvyses.xhtml 2010-02-26 09:41:41 UTC (rev 1898) +++ trunk/server/webServer2/WebContent/secured/elvysrel/listOfElvyses.xhtml 2010-02-26 11:06:01 UTC (rev 1899) @@ -171,12 +171,12 @@ <h:panelGroup rendered="#{user.competency.canManageCategories}" styleClass="list-operations-item"> - <a4j:commandButton + <h:commandButton id="AssignCategoryButton" - image="/images/icons/category-assign.gif" + image="/images/icons/edit.png" action="#{catDefAssignStep1Bean.prepare}"> <f:setPropertyActionListener value="#{record.elvys}" target="#{catDefAssignStep1Bean.updatedElvys}" /> - </a4j:commandButton> + </h:commandButton> <rich:toolTip for="AssignCategoryButton" direction="bottom-left"> <h:outputText value="#{lbl['elvys.list.table.assigncategory']}"/> </rich:toolTip> Added: trunk/server/webServer2/WebContent/styles/category/catDefAssignStep1.css =================================================================== --- trunk/server/webServer2/WebContent/styles/category/catDefAssignStep1.css (rev 0) +++ trunk/server/webServer2/WebContent/styles/category/catDefAssignStep1.css 2010-02-26 11:06:01 UTC (rev 1899) @@ -0,0 +1,21 @@ + +.table-1-ordering { + display: block; +} + + +.table-2-notused { + display: block; + overflow: auto; + padding-left: 7px; +} + + + +.rich-table-caption { + text-align: left; + padding-left: 5px; + font-family:Tahoma,Arial,Verdana,sans-serif; + font-size:12px; + font-weight:bold; +} \ No newline at end of file Added: trunk/server/webServer2/WebContent/styles/category/catDefAssignStep2.css ===================================================================