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

📄 bmsmenubar.java

📁 此文档针对开发人员和测试人员。第二章对软件进行了全面的描述。第三章对接口进行了分析。第四章对软件实现的功能进行概述。第五章对软件后续开发实现提出的要求。第六章提出其他一些在软件开发过程中需要注意的问题
💻 JAVA
字号:
package com.ciash.bms.gui.menu;

import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

import com.ciash.bms.entity.Popedom;
import com.ciash.bms.entity.User;
import com.ciash.bms.gui.impl.LoginDialog;
import com.ciash.bms.gui.menu.event.AboutListener;
import com.ciash.bms.gui.menu.event.ClearListener;
import com.ciash.bms.gui.menu.event.EditBookListener;
import com.ciash.bms.gui.menu.event.FindBookListener;
import com.ciash.bms.gui.menu.event.FindUserListener;
import com.ciash.bms.gui.menu.event.GenusListenr;
import com.ciash.bms.gui.menu.event.LoginListener;
import com.ciash.bms.gui.menu.event.PopedomAddListener;
import com.ciash.bms.gui.menu.event.RegisterListener;
import com.ciash.bms.gui.menu.event.SystemListener;
import com.ciash.bms.gui.menu.event.popedomEditListener;
import com.ciash.bms.gui.updater.LoginUpdater;
import com.ciash.bms.observer.BookEditObserver;
import com.ciash.bms.observer.FindBookEventObserver;
import com.ciash.bms.observer.FindStopObserver;
import com.ciash.bms.observer.EditGenusObserver;
import com.ciash.bms.observer.PopedomEditObserver;
import com.ciash.bms.observer.SystemObserver;
import com.ciash.bms.observer.FindUserEventObserver;
import com.ciash.bms.observer.UserLoginObserver;
import com.ciash.bms.observer.UserRegisterObserver;

/**
 * <p>
 * Title: BMS
 * </p>
 * <p>
 * Description:
 * </p>
 * <p>
 * Copyright: Copyright (c) 2009
 * </p>
 * <p>
 * Company: Cigarette Ash Inc.
 * </p>
 * 
 * @author Cigarette Ash
 * @version 1.0
 */
public class BMSMenuBar extends JMenuBar implements LoginUpdater {
	// ---------------------------------------------------------------------------------------------
	// 关于菜单定义
	private JMenu about = new JMenu("关于");

	private JMenuItem aboutAuthor = new JMenuItem(AboutListener.ABOUT_AUTHOR);

	private JMenuItem aboutSoftware = new JMenuItem(
			AboutListener.ABOUT_SOFTWARE);

	// ---------------------------------------------------------------------------------------------
	// 用户登陆退出定义
	private JMenu admin = new JMenu("权限");
	private JMenuItem login = new JMenuItem(LoginListener.LOGIN);
	private JMenuItem quit = new JMenuItem(LoginListener.QUIT);

	// ---------------------------------------------------------------------------------------------
	// 管理菜单
	private JMenu control = new JMenu("管理");
	// // 分类管理菜单
	private JMenu genus = new JMenu("图书分类管理");
	private JMenuItem addGenus = new JMenuItem(GenusListenr.ADD);
	// // 用户菜单
	private JMenu user = new JMenu("用户管理");
	private JMenuItem register = new JMenuItem(RegisterListener.REGISTER);
	private JMenuItem searchUser = new JMenuItem(FindUserListener.SEARCH);
	private JMenuItem userPopEdit = new JMenuItem("用户权限管理");
	private JMenuItem addPop = new JMenuItem("添加权限");
	// // 书籍菜单
	private JMenu book = new JMenu("书籍管理");
	private JMenuItem searchBook = new JMenuItem(FindBookListener.SEARCH);
	private JMenuItem addBook = new JMenuItem(EditBookListener.ADD);
	// // 查找总操作
	private JMenuItem clear = new JMenuItem("停止查找");

	// 软件控制
	private JMenu softwareControl = new JMenu("软件控制");
	private JMenuItem exit = new JMenuItem(SystemListener.EXIT_SYSTEM);
	// ---------------------------------------------------------------------------------------------
	// 控制器以及事件监听器
	// //登陆
	private UserLoginObserver userLoginObserver;
	private LoginListener loginListener;
	// //注册
	private UserRegisterObserver userRegisterObserver;
	private RegisterListener registerListener;
	// //系统
	private SystemObserver systemObserver;
	private SystemListener systemListener;

	private FindUserEventObserver findUserEventObserver;
	private FindUserListener findUserListener;

	private FindBookEventObserver findBookEventObserver;
	private FindBookListener findBookListener;

	private FindStopObserver findStopObserver;
	private ClearListener clearListener;

	private BookEditObserver bookEditObserver;
	private EditBookListener editBookListener;

	private GenusListenr genusListenr;
	private EditGenusObserver editGenusObserver;

	private PopedomEditObserver popedomEditObserver;
	private popedomEditListener popedomEditListener;

	private boolean isLogin;

	// ---------------------------------------------------------------------------------------------
	public BMSMenuBar() {
		init();
	}

	private void init() {
		login.setEnabled(true);
		quit.setEnabled(false);
		initMenuLayout();
	}

	private void initMenuLayout() {
		user.add(searchUser);
		book.add(searchBook);
		admin.add(login);
		admin.add(quit);
		control.add(book);
		control.add(user);
		control.add(clear);
		about.add(aboutSoftware);
		about.add(aboutAuthor);
		add(admin);
		add(control);
		add(softwareControl);
		add(about);
		softwareControl.add(exit);
	}

	public void login() {
		login.setEnabled(false);
		quit.setEnabled(true);
		control.add(clear);
	}

	public void quit() {
		login.setEnabled(true);
		quit.setEnabled(false);
	}

	// ---------------------------------------------------------------------------------------------
	// setter 与 getter
	// loginObserver
	public void setLoginObserver(UserLoginObserver userLoginObserver) {
		if (login.getActionListeners().length > 0) {
			quit.removeActionListener(loginListener);
			login.removeActionListener(loginListener);
		}
		loginListener = new LoginListener(userLoginObserver);
		quit.addActionListener(loginListener);
		login.addActionListener(loginListener);
		this.userLoginObserver = userLoginObserver;
	}

	public UserLoginObserver getLoginObserver() {
		return userLoginObserver;
	}

	// registerObserver
	public void setRegisterObserver(UserRegisterObserver userRegisterObserver) {
		if (register.getActionListeners().length > 0) {
			register.removeActionListener(registerListener);
		}
		registerListener = new RegisterListener(userRegisterObserver);
		register.addActionListener(registerListener);
		this.userRegisterObserver = userRegisterObserver;
	}

	public UserRegisterObserver getRegisterObserver() {
		return userRegisterObserver;
	}

	// systemObserver
	public void setSystemObserver(SystemObserver systemObserver) {
		this.systemObserver = systemObserver;
		systemListener = new SystemListener(systemObserver);
		exit.addActionListener(systemListener);
	}

	public SystemObserver getSystemObserver() {
		return this.systemObserver;
	}

	// findUserObserver
	public FindUserEventObserver getFindUserObserver() {
		return findUserEventObserver;
	}

	public void setFindUserObserver(FindUserEventObserver findUserEventObserver) {
		findUserListener = new FindUserListener(findUserEventObserver);
		searchUser.addActionListener(findUserListener);
		this.findUserEventObserver = findUserEventObserver;
	}

	// findBookObserver
	public FindBookEventObserver getFindBookObserver() {
		return this.findBookEventObserver;
	}

	public void setFindBookObserver(FindBookEventObserver findBookEventObserver) {
		findBookListener = new FindBookListener(findBookEventObserver);
		searchBook.addActionListener(findBookListener);
		this.findBookEventObserver = findBookEventObserver;
	}

	public void setResultClear(FindStopObserver resultCleaner) {
		this.clearListener = new ClearListener(resultCleaner);
		clear.addActionListener(clearListener);
		this.findStopObserver = resultCleaner;
	}

	public FindStopObserver getResultClear() {
		return this.findStopObserver;
	}

	public void setEditBookObserver(BookEditObserver bookEditObserver) {
		this.bookEditObserver = bookEditObserver;
		this.editBookListener = new EditBookListener(bookEditObserver);
		this.addBook.addActionListener(editBookListener);
	}

	public BookEditObserver getEditBookObserver() {
		return this.bookEditObserver;
	}

	public void setGenusObserver(EditGenusObserver editGenusObserver) {
		this.editGenusObserver = editGenusObserver;
		this.genusListenr = new GenusListenr(editGenusObserver);
		addGenus.addActionListener(genusListenr);
	}

	public EditGenusObserver getGenusObserver() {
		return this.editGenusObserver;
	}

	// ---------------------------------------------------------------------------------------------
	public void setPopedomEditObserver(PopedomEditObserver popedomEditObserver) {
		this.popedomEditObserver = popedomEditObserver;
		popedomEditListener l1 = new popedomEditListener(popedomEditObserver);
		PopedomAddListener l2 = new PopedomAddListener(popedomEditObserver);
		userPopEdit.addActionListener(l1);
		addPop.addActionListener(l2);
	}

	public PopedomEditObserver getPopedomEditObserver() {
		return popedomEditObserver;
	}

	public void updateLogin(User u, Popedom pop) {
		setAddBookPop(pop);
		setAddUserPop(pop);
		initMenuLayout();
		setEditBookPop(pop);
		setEditPopPop(pop);
		login();
	}

	private void setEditPopPop(Popedom pop) {
		if (pop.isCanEditPop()) {
			user.add(userPopEdit);
			user.add(addPop);
		} else {
			user.remove(userPopEdit);
			user.remove(addPop);
		}
	}

	private void setEditBookPop(Popedom pop) {
		if (pop.isCanEditBook()) {
			genus.add(addGenus);
			control.add(genus);
		} else {
			genus.remove(addGenus);
			control.remove(genus);
		}
	}

	private void setAddUserPop(Popedom pop) {
		if (pop.isCanAddUser()) {
			user.add(register);
		} else {
			user.remove(register);
		}
	}

	public void updateQuit() {
		quit();
		book.remove(addBook);
		user.remove(register);
		genus.remove(addGenus);
		control.remove(genus);
		user.remove(userPopEdit);
		user.remove(addPop);
	}

	private void setAddBookPop(Popedom pop) {
		if (pop.isCanAddBook()) {
			book.add(addBook);
		} else {
			book.remove(addBook);
		}
	}
}

⌨️ 快捷键说明

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