Handle Ingredient Group display and save, shopcat finals
This commit is contained in:
parent
200317d177
commit
7d9ee67a86
|
@ -123,13 +123,4 @@ public class EditShopcatBean implements Serializable {
|
|||
public void ajaxShopcatSuggest(AjaxBehaviorEvent event) {
|
||||
this.shopcatName = this.shopcatSuggestion;
|
||||
}
|
||||
|
||||
/**
|
||||
* ValueChangeListener for shopcat editor.
|
||||
*
|
||||
* @param e Event, with new name in it.
|
||||
*/
|
||||
public void shopcatNameChanged(ValueChangeEvent e) {
|
||||
this.changed = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -204,7 +204,6 @@ public class RecipeDetailBean implements Serializable {
|
|||
ingredients
|
||||
.setWrappedData(new ArrayList<IngredientUI>(1));
|
||||
}
|
||||
log.info("Ingredient size="+ingredients.getRowCount());
|
||||
return ingredients;
|
||||
}
|
||||
|
||||
|
@ -390,6 +389,9 @@ public class RecipeDetailBean implements Serializable {
|
|||
updateSelectionStatus();
|
||||
}
|
||||
|
||||
/**
|
||||
* Manage the ability buttons based on selections.
|
||||
*/
|
||||
private void updateSelectionStatus() {
|
||||
List<IngredientUI> ingList = getWrappedIngredients();
|
||||
final int ingCount = ingList.size();
|
||||
|
@ -411,6 +413,8 @@ public class RecipeDetailBean implements Serializable {
|
|||
this.setMoveUpAble(moveUpable && selectable);
|
||||
this.setMoveDownAble(moveDownable && selectable);
|
||||
this.setSelectable(selectable);
|
||||
|
||||
auditRows(ingList);
|
||||
}
|
||||
|
||||
// ---
|
||||
|
@ -456,7 +460,7 @@ public class RecipeDetailBean implements Serializable {
|
|||
}
|
||||
}
|
||||
this.setDirty();
|
||||
auditRows(rows);
|
||||
updateSelectionStatus();
|
||||
}
|
||||
|
||||
private void auditRows(List<IngredientUI> rows) {
|
||||
|
@ -488,7 +492,7 @@ public class RecipeDetailBean implements Serializable {
|
|||
rows.add(i, r);
|
||||
}
|
||||
}
|
||||
auditRows(rows);
|
||||
updateSelectionStatus();
|
||||
}
|
||||
|
||||
public void ajaxDeleteItems() {
|
||||
|
@ -506,7 +510,7 @@ public class RecipeDetailBean implements Serializable {
|
|||
for (IngredientUI row : selectedRows) {
|
||||
rows.remove(row);
|
||||
}
|
||||
auditRows(rows);
|
||||
updateSelectionStatus();
|
||||
}
|
||||
|
||||
// =====
|
||||
|
@ -707,9 +711,14 @@ public class RecipeDetailBean implements Serializable {
|
|||
List<Ingredient> iList = recipe.getIngredientHash();
|
||||
iList.clear();
|
||||
for (IngredientUI iui : saveIng) {
|
||||
if ( iui.isIngGroup() ) {
|
||||
// Ing group is an attribute of ingredients.
|
||||
continue;
|
||||
}
|
||||
Ingredient ing = iui.getIngredient();
|
||||
ing.setRecipe(recipe);
|
||||
if (!updateShopcat(iui)) {
|
||||
if (!updateShopcat(iui)) { // Obsolete???
|
||||
log.info("Shopcat has not been updated" +iui);
|
||||
return false;
|
||||
}
|
||||
iList.add(ing);
|
||||
|
|
|
@ -2,3 +2,11 @@
|
|||
color: red;
|
||||
background-color: blue;
|
||||
}
|
||||
.editIngGroupRow {
|
||||
background-color: aqua;
|
||||
font-weight: bold;
|
||||
}
|
||||
.displayIngGroupRow {
|
||||
background-color: aqua;
|
||||
font-weight: bold;
|
||||
}
|
|
@ -177,7 +177,7 @@
|
|||
disabled="#{not recipeDetailBean.moveUpAble}"
|
||||
id="ctlUp"
|
||||
actionListener="#{recipeDetailBean.ajaxMoveUp}"
|
||||
update="ingredientTable"
|
||||
update="@this:@parent:@parent"
|
||||
onerror="PF('opError').show()"
|
||||
/>
|
||||
<p:commandButton value="Down"
|
||||
|
@ -185,7 +185,7 @@
|
|||
id="ctlDown"
|
||||
onerror="PF('opError').show()"
|
||||
actionListener="#{recipeDetailBean.ajaxMoveDown}"
|
||||
update="ingredientTable"
|
||||
update="@this:@parent:@parent"
|
||||
/>
|
||||
<p:commandButton
|
||||
value="Add Group"
|
||||
|
@ -206,7 +206,7 @@
|
|||
disabled="#{not recipeDetailBean.selectable}"
|
||||
onerror="PF('opError').show()"
|
||||
actionListener="#{recipeDetailBean.ajaxDeleteItems}"
|
||||
update="ingredientTable"
|
||||
update="@this:@parent:@parent"
|
||||
/>
|
||||
</h:panelGroup>
|
||||
<p:dataTable id="ingredientTable"
|
||||
|
@ -214,6 +214,7 @@
|
|||
value="#{recipeDetailBean.ingredients}"
|
||||
scrollable="true"
|
||||
scrollHeight="380" var="item"
|
||||
rowStyleClass="#{item.ingGroup ? 'editIngGroupRow' : null}"
|
||||
>
|
||||
<p:column label="Sel."
|
||||
align="center"
|
||||
|
@ -223,9 +224,10 @@
|
|||
id="selected"
|
||||
value="#{item.selected}"
|
||||
>
|
||||
<f:ajax
|
||||
<p:ajax
|
||||
listener="#{recipeDetailBean.ajaxSelectionListener}"
|
||||
render=":form1:tabGroupClient:ingButtons"
|
||||
update=":form1:tabGroupClient:ingButtons"
|
||||
onerror="PF('opError').show()"
|
||||
/>
|
||||
</p:selectBooleanCheckbox>
|
||||
</p:column>
|
||||
|
@ -292,7 +294,7 @@
|
|||
<f:ajax
|
||||
event="change"
|
||||
listener="#{recipeDetailBean.ajaxUpdateShopcat(item)}"
|
||||
render="shopCat"
|
||||
render="eShopcat shopCat"
|
||||
/>
|
||||
</p:inputText>
|
||||
</p:column>
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
value="Category Name" />
|
||||
<p:inputText id="ctlShopcat"
|
||||
value="#{editShopcatBean.shopcatName}"
|
||||
valueChangeListener="#{editShopcatBean.shopcatNameChanged}"
|
||||
>
|
||||
</p:inputText>
|
||||
<h:outputText
|
||||
|
|
|
@ -147,6 +147,7 @@
|
|||
showDirectLinksArrows="true"
|
||||
value="#{recipeDetailBean.ingredients}"
|
||||
var="ingredient"
|
||||
rowStyleClass="#{item.ingGroup ? 'displayIngGroupRow' : null}"
|
||||
>
|
||||
<f:facet name="header">
|
||||
<h:outputText
|
||||
|
|
Loading…
Reference in New Issue
Block a user