📄 categorytreemanagerbean.java~1~
字号:
package com.jdon.estore.catalog.tree;
import javax.ejb.*;
import com.jdon.tree.ejb.NodeManagerLocal;
import com.jdon.tree.ejb.NodeManagerLocalHome;
import com.jdon.tree.exception.DeleteNodeException;
import com.jdon.sequence.SequenceGeneratorLocalHome;
import com.jdon.sequence.SequenceGeneratorLocal;
import com.jdon.servicelocator.ejb.ServiceLocator;
import com.jdon.estore.JNDINames;
import com.jdon.estore.catalog.CatalogEJBLocal;
import com.jdon.estore.catalog.CatalogEJBLocalHome;
import com.jdon.estore.catalog.CategoryDetails;
import com.jdon.estore.catalog.CategoryDetailsHome;
import com.jdon.strutsutil.treeview.ViewNode;
import com.jdon.controller.model.Node;
import com.jdon.estore.model.Category;
import com.jdon.controller.events.EventModel;
import org.apache.log4j.Logger;
import java.util.*;
public class CategoryTreeManagerBean implements SessionBean {
private final static Logger logger = Logger.getLogger(CategoryTreeManagerBean.class);
SessionContext sessionContext;
private NodeManagerLocalHome nmHome;
private CatalogEJBLocalHome catalogEJBHome;
private CategoryDetailsHome cdHome;
private Node rootNode = null;
public void ejbCreate() throws CreateException {
try {
ServiceLocator sl = new ServiceLocator();
nmHome = (NodeManagerLocalHome) sl.getLocalHome(JNDINames.NODE_MANAGER_HOME);
catalogEJBHome = (CatalogEJBLocalHome) sl.getLocalHome(JNDINames.
CATALOG_EJBHOME);
cdHome = (CategoryDetailsHome) sl.getLocalHome(JNDINames.
CATEGORY_DETAILS_HOME);
this.rootNode = fetchRootNode();
} catch (Exception ex) {
logger.error("create error:" + ex);
throw new CreateException();
}
}
public Collection getROOTChildern() throws Exception {
try {
NodeManagerLocal nodeManager = nmHome.create();
CatalogEJBLocal catalogEJB = catalogEJBHome.create();
List childrenIDs = rootNode.getChildrenIDs();
List children = new ArrayList(childrenIDs.size());
Iterator iter = childrenIDs.iterator();
Category category = null;
ViewNode viewNode = null;
while (iter.hasNext()) {
Integer ID = (Integer) iter.next();
category = catalogEJB.getCategory(ID.toString());
viewNode = new ViewNode(category.getCatId(), category.getName());
children.add(viewNode);
}
return children;
} catch (Exception ex) {
logger.error(ex);
throw new Exception();
}
}
private Node createRootNode() throws Exception {
try {
NodeManagerLocal nodeManager = nmHome.create();
Node node = nodeManager.createRootNode(JNDINames.SEQUENCE_NAME);
return node;
} catch (Exception ex) {
logger.error(ex);
throw new Exception();
}
}
public Node getRootNode() {
return rootNode;
}
private Node fetchRootNode() throws Exception {
try {
NodeManagerLocal nodeManager = nmHome.create();
Node node = nodeManager.getRootNode(JNDINames.SEQUENCE_NAME);
if (node == null)
node = createRootNode();
return node;
} catch (Exception ex) {
logger.error(ex);
throw new Exception();
}
}
/**
* 1.输入参数如果没有ParentID,默认为parent是根节点
* 2.输入参数有paraentID,分两种情况,是否指定了兄弟的序号index
*
* @param em
* @throws java.lang.Exception
*/
public void addCategory(EventModel em) throws Exception {
Category category = (Category) em.getModel();
Integer parentID = null;
if (category.getParentID() == 0) {
parentID = rootNode.getID();
appendCategory(parentID, category);
} else {
parentID = new Integer(category.getParentID());
int index = category.getIndex();
if (index == 0) {
appendCategory(parentID, category);
} else {
addCategory(parentID, index, category);
}
}
}
private void appendCategory(Integer parentID, Category category) throws Exception {
try {
//插入数据库节点
NodeManagerLocal nodeManager = nmHome.create();
Node node = nodeManager.appendNode(parentID);
//创建Category记录
category.setCatId(node.getID().toString());
cdHome.create(category.getCatId(), category.getName(),
category.getDescription());
} catch (Exception ex) {
logger.error(ex);
throw new Exception();
}
}
private void addCategory(Integer parentID, int index, Category category) throws Exception {
try {
//插入数据库节点
NodeManagerLocal nodeManager = nmHome.create();
Node node = nodeManager.addNode(parentID, index);
//创建Category记录
category.setCatId(node.getID().toString());
cdHome.create(category.getCatId(), category.getName(),
category.getDescription());
} catch (Exception ex) {
logger.error(ex);
throw new Exception();
}
}
public void moveCategory(EventModel em) throws Exception {
Category category = (Category) em.getModel();
Integer newParentID = new Integer(category.getParentID());
int newIndex = category.getIndex();
Integer nodeID = new Integer(category.getCatId());
try {
NodeManagerLocal nodeManager = nmHome.create();
nodeManager.moveNode(newParentID, newIndex, nodeID);
} catch (Exception ex) {
logger.error(ex);
throw new Exception();
}
}
public void updateCategory(EventModel em) throws Exception {
Category category = (Category) em.getModel();
try {
logger.debug(" --> got categotyLocal by Id = " + category.getCatId());
CategoryDetails categoryDetails = cdHome.findByPrimaryKey(category.
getCatId());
categoryDetails.setName(category.getName());
categoryDetails.setDescription(category.getDescription());
} catch (Exception ex) {
logger.error(ex);
em.setErrors("db.error");
}
}
public void removeCategory(EventModel em) throws DeleteNodeException, Exception {
Category category = (Category) em.getModel();
Integer nodeID = new Integer(category.getCatId());
try {
NodeManagerLocal nodeManager = nmHome.create();
nodeManager.removeNode(nodeID);
cdHome.remove(nodeID);
} catch (DeleteNodeException dex) {
} catch (Exception ex) {
logger.error(ex);
}
}
public void ejbRemove() {
/**@todo Complete this method*/
}
public void ejbActivate() {
/**@todo Complete this method*/
}
public void ejbPassivate() {
/**@todo Complete this method*/
}
public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -