📄 categoryedit2action.java
字号:
package com.bluesky.elecall.web.struts.action;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import com.bluesky.elecall.domain.CategoryItem;
import com.bluesky.elecall.domain.Product;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.PreResultListener;
import com.opensymphony.xwork2.interceptor.annotations.BeforeResult;
public class CategoryEdit2Action extends BaseAction implements
PreResultListener {
// form bean
private Integer selectedLevel;
private Long[] selectedItemIds = new Long[10];
private String selectedProductId;
private Long categoryItemId;
// the selected categoryItem
private CategoryItem categoryItem = new CategoryItem();
// from level 1 to 5
private List levels = new ArrayList(10);
// the level 6
private Set products = new HashSet();
public CategoryEdit2Action() {
// somehow fill the list, then set by index
levels.add(new ArrayList());
levels.add(new ArrayList());
levels.add(new ArrayList());
levels.add(new ArrayList());
levels.add(new ArrayList());
levels.add(new ArrayList());
levels.add(new ArrayList());
selectedItemIds[0] = new Long(-1);
selectedItemIds[1] = new Long(-1);
selectedItemIds[2] = new Long(-1);
selectedItemIds[3] = new Long(-1);
selectedItemIds[4] = new Long(-1);
selectedItemIds[5] = new Long(-1);
}
@Override
public String execute() throws Exception {
// first time GET
categoryItem = productCategory.getRootCategoryItem();
return super.execute();
}
public String selectChanged() throws Exception {
// if select product
if (selectedLevel == 6) {
Product p = productCategory.getProduct(selectedProductId);
categoryItem = p.getCategoryItem();
} else {// category is selected
if (selectedItemIds[selectedLevel] != -1)
categoryItem = (CategoryItem) reposity.get(CategoryItem.class,
selectedItemIds[selectedLevel]);
else
categoryItem = (CategoryItem) reposity.get(CategoryItem.class,
selectedItemIds[selectedLevel - 1]);
}
return SUCCESS;
}
public String delete() {
categoryItemId = selectedItemIds[selectedLevel];
if(categoryItemId==-1)
{
categoryItem = (CategoryItem) reposity.get(
CategoryItem.class, selectedItemIds[selectedLevel-1]);
return SUCCESS;
}
CategoryItem deletingItem = (CategoryItem) reposity.get(
CategoryItem.class, categoryItemId);
categoryItem = productCategory.getParentCategoryItem(deletingItem);
if (deletingItem.getLevel() < 4) {
Set children = productCategory
.getChildrenCategoryItems(deletingItem);
if (children != null && children.size() > 0)
addActionError("该目录不为空,所以不能删除。");
}
if (deletingItem.getLevel() == 4) {
Set set = productCategory.getProducts(deletingItem);
if (!set.isEmpty())
addActionError("该目录不为空,所以不能删除。");
}
// is family
if (deletingItem.getLevel() == 5) {
List list = productCategory.findProductByFamily(deletingItem);
if (!list.isEmpty())
addActionError("该项目被引用,所以不能删除。");
}
if (!hasErrors()) {
productCategoryDao.deleteCategoryItem(categoryItemId);
}
return SUCCESS;
}
public void beforeResult(ActionInvocation arg0, String arg1) {
// load levels
for (int level = categoryItem.getLevel(); level >= 0; level--) {
selectedItemIds[level] = categoryItem.getId();
if (categoryItem.getLevel() == 4)
products = productCategory.getProducts(categoryItem);
Set<CategoryItem> child = productCategory
.getChildrenCategoryItems(categoryItem);
List list = (List) levels.get(level + 1);
list.addAll(child);
if (categoryItem.getLevel() == 0)
break;
categoryItem = productCategory.getParentCategoryItem(categoryItem);
}
}
public List getLevels() {
return levels;
}
public void setLevels(List levels) {
this.levels = levels;
}
public Set getProducts() {
return products;
}
public void setProducts(Set products) {
this.products = products;
}
public Long[] getSelectedItemIds() {
return selectedItemIds;
}
public void setSelectedItemIds(Long[] selectedItemIds) {
this.selectedItemIds = selectedItemIds;
}
public Integer getSelectedLevel() {
return selectedLevel;
}
public void setSelectedLevel(Integer selectedLevel) {
this.selectedLevel = selectedLevel;
}
public String getSelectedProductId() {
return selectedProductId;
}
public void setSelectedProductId(String selectedProductId) {
this.selectedProductId = selectedProductId;
}
public Long getCategoryItemId() {
return categoryItemId;
}
public void setCategoryItemId(Long categoryItemId) {
this.categoryItemId = categoryItemId;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -