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

📄 grouplist.java

📁 采用tapestry的简单OA系统
💻 JAVA
字号:
package com.ejsun.entapps.presentation.pages.organization;

import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.contrib.tree.model.ITreeDataModel;
import org.apache.tapestry.contrib.tree.model.ITreeModel;
import org.apache.tapestry.contrib.tree.simple.SimpleTreeDataModel;
import org.apache.tapestry.contrib.tree.simple.SimpleTreeModel;

import com.ejsun.entapps.domain.organization.Group;
import com.ejsun.entapps.domain.organization.User;
import com.ejsun.entapps.presentation.pages.Protected;
import com.ejsun.entapps.service.organization.OrganizationService;

/**
 * @author   Labor
 * @since    2004-4-17
 * @version  $Rvision: 1.0$
 * 
 */

public abstract class GroupList extends Protected {
	private static final Log log = LogFactory.getLog(GroupList.class);
	private ITreeDataModel treeDataModel;
	private ITreeModel treeModel;

	public abstract OrganizationService getOrganizationService();
	public abstract User getTUser();
	public abstract User getNUser();
	public abstract Group getGroup();

	public User[] getUsers() {
		return getOrganizationService().findGroupMembers(getSelectedGroup());
	}

	public User getManager() {
		return getOrganizationService().findGroupAdmin(getSelectedGroup());
	}
	
	public Group getSelectedGroup() {
		Object selectedNode = treeModel.getTreeStateModel().getSelectedNode();
		if (selectedNode == null)
			return getOrganizationService().findRootGroup();

		GroupTreeNode treeNode =
			(GroupTreeNode) treeDataModel.getObject(selectedNode);
		if (treeNode == null)
			return getOrganizationService().findRootGroup();

		return treeNode.getGroup();
	}
	
	public Group[] getSubGroups(){
		List children = getSelectedGroup().getChildren();
		return (Group[]) children.toArray(new Group[children.size()]);
	}
	
	private void init() {
		Group rootGroup = getOrganizationService().findRootGroup();
		GroupTreeNode rootNode = new GroupTreeNode(rootGroup);
		getSubNode(rootNode);

		treeDataModel = new SimpleTreeDataModel(rootNode);
		treeModel = new SimpleTreeModel(treeDataModel);
	}

	private void getSubNode(GroupTreeNode rootNode) {
		List subGroups = rootNode.getGroup().getChildren();

		if (subGroups == null || subGroups.size() == 0)
			return;
		for (int i = 0; i < subGroups.size(); i++) {
			Group subGroup = (Group) subGroups.get(i);
			GroupTreeNode subNode = new GroupTreeNode(subGroup);
			rootNode.insert(subNode);
			getSubNode(subNode);
		}
	}

	public ITreeModel getTreeModel() {
		if (treeModel == null) {
			init();
		}
		return treeModel;
	}

	public void deleteUser(IRequestCycle cycle) {
		getOrganizationService().deleteUser(getTUser());
	}

	public void assignManager(IRequestCycle cycle) {
		getOrganizationService().assignGroupAdmin(
			getTUser(),
			getSelectedGroup());

	}

	public void addUser(IRequestCycle cycle) {
		if (isInError())
			return;
		getOrganizationService().createUser(getNUser());
		getOrganizationService().addMemberToGroup(
			getNUser(),
			getSelectedGroup());
	}

	public void addGroup(IRequestCycle cycle) {
		if (isInError())
			return;
		log.info("add [" + getGroup().getName() + "] to [" + getSelectedGroup().getName() + "]");

		getOrganizationService().addChild(getSelectedGroup(), getGroup());
		int i=getSelectedGroup().getChildren().size();
		Group group=(Group) getSelectedGroup().getChildren().toArray(new Group[i])[i-1];
		log.info(group.getName());
		init();
		treeModel.getTreeStateModel().resetState();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -