⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 categoryedit2action.java

📁 工厂版本管理系统,STRUTS2框架,用于管理商品的版本,便于有效的控制版本
💻 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 + -