createaddress_name.java

来自「一个日本流行的,功能较全的开源Web办公管理(Groupware)系统。」· Java 代码 · 共 826 行 · 第 1/2 页

JAVA
826
字号
package jp.co.sjts.gsession.card;

import java.io.File;
import java.util.Map;
import java.util.List;
import java.util.Collection;
import java.util.Iterator;
import java.util.Hashtable;
import java.util.HashSet;
import java.util.Arrays;
import java.util.Vector;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import jp.co.sjts.gsession.tools.*;
import jp.co.sjts.gsession.tools.mail.*;

/**
 * 傾僪儗僗挔(柤慜)
 * 
 * @author Ei KISHIDA <ei@sjts.co.jp>
 * @author Hideyuki KITADE <kitade@sjts.co.jp>
 */
public class Createaddress_name extends CreatePage{

	/** 儁乕僕僞僀僩儖 */
	private static final String title = "傾僪儗僗挔";
	/** */
	private static final String bgcolor = "#ffffff";
	/** */
	private static final String text = "#000000";
	/** */
	private static final String link = "#0000ff";
	/** */
	private static final String alink = "#ff0000";
	/** */
	private static final String vlink = "#0000ff";
	/** */
	private static final int CID = 0;
	/** */
	private static final int KAISHA = 1;
	/** */
	private static final int NAME = 2;
	/** */
	private static final int EMAIL = 3;
	/** */
	private static final int TANTOU = 4;
	/** */
	private static final int EDITFLG = 5;
	/** */
	private static final int ENTUID = 6;
	/** */
	private static final int KKAISHA = 7;
	/** */
	private static final int KNAME = 8;
	/** */
	private static final int KTANTOU = 9;
	/** */
	private Hashtable hsPara;
	/** */
	private Hashtable hsPara1;
	/** */
	private CDCardFile cddata;
	/** */
	private String mapURL;
	/** */
	private String dataDir;
	/** */
	private String carddataDir;
	/** */
	private String indexDir;
	/** */
	private String kanaDir;
	/** */
	private String helpURL;
	/** */
	private int page;
	/** */
	private int max;
	/** */
	private int index;
	/** */
	private IUserManager UM = null;
	/** */
	private HashSet toSet;
	/** */
	private HashSet ccSet;
	/** */
	private HashSet bccSet;
	/** */
	private int sortkey;
	/** */
	private boolean sortflg;
	/** */
	private int selection;
	/** */
	private HashSet indexSet;

	/**
	 * <p>僷儔儊乕僞僙僢僩
	 *
	 * @param hsPara
	 * @param hsPara1
	 * @param page
	 * @param max
	 * @param index
	 * @param UM
	 * @param indexSet
	 */
	public Createaddress_name(Hashtable hsPara,Hashtable hsPara1,int page,int max,int index,IUserManager UM,HashSet indexSet){

		this.hsPara = hsPara;
		this.hsPara1 = hsPara1; 
		this.dataDir = (String)hsPara.get(CDCmd.CD_DIR);
		this.carddataDir = (String)hsPara.get(CDCmd.CD_DIR)+CDCmd.CD_DATA;
		this.kanaDir = dataDir+CDCmd.CD_IX+File.separator+CDCmd.CD_IX_KN;
		this.mapURL = (String)hsPara.get(CDCmd.CD_MAP);
		this.helpURL = (String)hsPara.get("help");
		this.max = max;
		this.page = page;
		this.index = index;
		this.UM = UM;
		this.indexSet = indexSet;
	}

	/**
	 * <p>儊乕儖梡僷儔儊乕僞弶婜壔
	 */
	private void initPara() {
		String[] tos = (String[])hsPara1.get("to");
		if(tos==null) {
			toSet = new HashSet();
		} else {
			toSet = new HashSet(tos.length);
			for(int i=0; i<tos.length; i++)
				toSet.add(tos[i]);
		}

		String[] ccs = (String[])hsPara1.get("cc");
		if(ccs==null) {
			ccSet = new HashSet();
		} else {
			ccSet = new HashSet(ccs.length);
			for(int i=0; i<ccs.length; i++)
				ccSet.add(ccs[i]);
		}

		String[] bccs = (String[])hsPara1.get("bcc");
		if(bccs==null) {
			bccSet = new HashSet();
		} else {
			bccSet = new HashSet(bccs.length);
			for(int i=0; i<bccs.length; i++)
				bccSet.add(bccs[i]);
		}
	}

	/**
	 * <p>僜乕僩弴妋掕張棟
	 */
	private void getSortPara() {

		int nextkey = 0;
		if(hsPara1.get(CDCmd.PA_NEXTSKEY) != null)
			nextkey = Integer.parseInt(((String[])hsPara1.get(CDCmd.PA_NEXTSKEY))[0]);

		if(hsPara1.get(CDCmd.PA_SORTFLG) != null)
			sortflg = ((String[])hsPara1.get(CDCmd.PA_SORTFLG))[0].equals("true");
		else
			sortflg = true;

		if(hsPara1.get(CDCmd.PA_SORTKEY) != null) {
			sortkey = Integer.parseInt(((String[])hsPara1.get(CDCmd.PA_SORTKEY))[0]);
			switch(sortkey) {
			case KAISHA :
				if(nextkey == KAISHA)
					sortflg = !sortflg;
				else if(nextkey > 0) {
					sortkey = nextkey;
					sortflg = true;
				}
				break;
			case NAME :
				if(nextkey == NAME)
					sortflg = !sortflg;
				else if(nextkey > 0) {
					sortkey = nextkey;
					sortflg = true;
				}
				break;
			case EMAIL :
				if(nextkey == EMAIL)
					sortflg = !sortflg;
				else if(nextkey > 0) {
					sortkey = nextkey;
					sortflg = true;
				}
				break;
			case TANTOU :
				if(nextkey == TANTOU)
					sortflg = !sortflg;
				else if(nextkey > 0) {
					sortkey = nextkey;
					sortflg = true;
				}
				break;
			}

		} else
			sortkey = KAISHA;
	}

	/**
	 * <p>HTML弌椡
	 *
	 * @param req    儕僋僄僗僩
	 * @param res    儗僗億儞僗
	 */
	protected boolean writePage(HttpServletRequest req,HttpServletResponse res) throws GSException{

		String url = GSTool.removeParaFormURI(req.getRequestURI());
		HttpSession session = req.getSession(false);
		int uid = ((Integer)session.getAttribute(GSBase.SESSION_PARA_UID)).intValue();

		CDKanaIndexSearch idxSearch = new CDKanaIndexSearch(kanaDir);
		int search = (hsPara.get(CDCmd.PA_IDX)!=null)?
					Integer.parseInt(((String[])hsPara.get(CDCmd.PA_IDX))[0]):-1;

		initPara();
		getSortPara();

		boolean flg = UM.isSU(uid);

		addScript(
			 "function openWindow(i)\r\n"
			+"{\r\n"
			+"   var win=window.open(\"\",\"window\"+i,\"width=560,height=590,resizable=1\");\r\n"
			+"   win.location=\""+url
								  +"?"+CDCmd.PA_CMD+"="+CDCmd.AD_DATA
								  +"&"+CDCmd.PA_IDX+"="+index
								  +"&"+CDCmd.PA_MOD+"="+CDCmd.AD_ADDRESS2
								  +"&"+CDCmd.PA_PAG+"="+Integer.toString(page)
								  +"&"+CDCmd.PA_CID+"=\"+i;\r\n}"
		);

		addScript(
			 "function setIndex(i)\r\n"
			+"{\r\n"
			+"   document.myForm."+CDCmd.PA_IDX+".value=i;\r\n"
			+"   document.myForm.submit();\r\n}"
		);

		addScript(
			 "function setSort(key)\r\n"
			+"{\r\n"
			+"   document.myForm."+CDCmd.PA_NEXTSKEY+".value=key;\r\n"
			+"   document.myForm.submit();\r\n}"
		);

		setCharset("iso-2022-jp");
		setTitle(title);

		setBodyColor(bgcolor,text,link,vlink,alink);
		setHelpUrl(helpURL + GSHelpPage.CA102000);
		addBodyString("<CENTER>");
		addBodyString("<FORM METHOD=\"post\" ACTION=\"" + url + "\" NAME=\"myForm\">");
		addBodyString("<TABLE WIDTH=\"100%\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"0\">");

		// 僞僀僩儖
		addBodyString("<TR>");
		addBodyString("<TD>");
		addBodyString("  <TABLE BGCOLOR=\"#000080\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"3\">");
		addBodyString("  <TR>");
		addBodyString("  <TD HEIGHT=\"40\" WIDTH=\"100%\"><FONT SIZE=\"+1\" COLOR=\"#ffffff\"><B>傾僪儗僗挔</B></FONT></TD>");
		addBodyString("    <TD ALIGN=\"right\" NOWRAP>");
		addBodyString("    <INPUT TYPE=\"image\" NAME=\"" + CDCmd.PA_SET + "\" SRC=\""+mapURL+GSFilename.GS_TUIKA_BTN+"\" ALT=\"捛壛\" WIDTH=\"93\" HEIGHT=\"28\" BORDER=\"0\"></TD>");
		addBodyString("    <TD ALIGN=\"right\" NOWRAP>");
		addBodyString("    <INPUT TYPE=\"image\" NAME=\"" + CDCmd.PA_CANCEL + "\" SRC=\""+mapURL+GSFilename.GS_TORIKESHI_BTN+"\" ALT=\"庢徚\" WIDTH=\"93\" HEIGHT=\"28\" BORDER=\"0\"></TD>");
		addBodyString("  </TR>");
		addBodyString("  </TABLE>");
		addBodyString("</TD>");
		addBodyString("</TR>");
		addBodyString("");
/* 僞僽 */		
		addBodyString("<TR>");
		addBodyString("<TD>");
		addBodyString("  <TABLE WIDTH=\"100%\" BGCOLOR=\"#cccccc\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"0\">");
		addBodyString("    <TR BGCOLOR=\"#ffffff\">");
		addBodyString("    <TD>");
		addBodyString("    <TABLE BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"0\">");
		addBodyString("      <TR>");

		addBodyString( makeTab(CDCmd.AD_ADDRESS1, CDCmd.B_F_TSC, "夛幮柤偱専嶕") );
		addBodyString( makeTab(CDCmd.AD_ADDRESS2, CDCmd.B_F_TNO, "柤慜偱専嶕") );
		addBodyString( makeTab(CDCmd.AD_ADDRESS3, CDCmd.B_F_TTC, "扴摉幰偱専嶕") );
		addBodyString( makeTab(CDCmd.AD_ADDRESS4, CDCmd.B_F_TEC, "E-Mail傾僪儗僗偱専嶕") );

		addBodyString("      </TR>");
		addBodyString("    </TABLE>");
		addBodyString("    </TD>");
		addBodyString("    </TR>");

		// 専嶕

		addBodyString("    <TR>");
		addBodyString("    <TD HEIGHT=\"130\" WIDTH=\"100%\">");
		addBodyString("    <TABLE WIDTH=\"95%\" ALIGN=\"center\" BORDER=\"1\" CELLSPACING=\"2\" CELLPADDING=\"0\">");

		Map idxMap = idxSearch.getIndex();
		search(idxMap);

		addBodyString("    </TABLE>");
		addBodyString("    </TD>");
		addBodyString("    </TR>");
		addBodyString("  </TABLE>");
		addBodyString("</TD>");
		addBodyString("</TR>");


/* 儃僞儞偲儁乕僕 */		
		addBodyString("<TR>");
		addBodyString("<TD BGCOLOR=\"#fff7d2\" VALIGN=\"MIDDLE\">");
		addBodyString("  <TABLE WIDTH=\"100%\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"2\">");
		addBodyString("  <TR>");
		addBodyString("  <INPUT TYPE=\"hidden\" NAME=\"" + CDCmd.PA_CMD + "\" VALUE=\"" + CDCmd.AD_ADDRESS2 + "\">");
		addBodyString("  <INPUT TYPE=\"hidden\" NAME=\"" + CDCmd.PA_PAG + "\" VALUE=\"" + Integer.toString(page) + "\">");
		addBodyString("  <INPUT TYPE=\"hidden\" NAME=\"" + CDCmd.PA_MOD	 + "\" VALUE=\"" + CDCmd.AD_ADDRESS2 + "\">");
		addBodyString("  <INPUT TYPE=\"hidden\" NAME=\"" + CDCmd.PA_IDX	 + "\" VALUE=\"" + index + "\">");
		//MailAddress傪撉傒崬傓偐偺敾掕梡
		addBodyString("  <INPUT TYPE=\"hidden\" NAME=\"addin\" VALUE=\"1\">");

		addBodyString("  <INPUT TYPE=\"hidden\" NAME=\"" + CDCmd.PA_SORTKEY + "\" VALUE=\""
					  + sortkey
					  + "\">");
		addBodyString("  <INPUT TYPE=\"hidden\" NAME=\"" + CDCmd.PA_NEXTSKEY + "\" VALUE=\"0\">");
		addBodyString("  <INPUT TYPE=\"hidden\" NAME=\"" + CDCmd.PA_SORTFLG + "\" VALUE=\""
					  + ((sortflg)?"true":"false")
					  + "\">");

		addBodyString("  <TD VALIGN=\"MIDDLE\" WIDTH=\"100%\">");
		addBodyString("    <TABLE BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"3\">");
		addBodyString("    <TR>");
		addBodyString("    <TD VALIGN=\"MIDDLE\">");
		addBodyString("    <INPUT TYPE=\"image\" NAME=\""+ CDCmd.PA_TOSELECT + "\" SRC=\""+mapURL+GSFilename.GS_SELECT_TO_BTN+"\" ALT=\"専嶕寢壥偺TO傪慖戰\" WIDTH=\"133\" HEIGHT=\"28\" BORDER=\"0\"></TD>");
		addBodyString("    <TD VALIGN=\"MIDDLE\">");
		addBodyString("    <INPUT TYPE=\"image\" NAME=\""+ CDCmd.PA_CCSELECT + "\" SRC=\""+mapURL+GSFilename.GS_SELECT_CC_BTN+"\" ALT=\"専嶕寢壥偺CC傪慖戰\" WIDTH=\"133\" HEIGHT=\"28\" BORDER=\"0\"></TD>");
		addBodyString("    <TD VALIGN=\"MIDDLE\">");
		addBodyString("    <INPUT TYPE=\"image\" NAME=\""+ CDCmd.PA_BCCSELECT + "\" SRC=\""+mapURL+GSFilename.GS_SELECT_BCC_BTN+"\" ALT=\"専嶕寢壥偺BCC傪慖戰\" WIDTH=\"133\" HEIGHT=\"28\" BORDER=\"0\"></TD>");
		addBodyString("    <TD VALIGN=\"MIDDLE\">");
		addBodyString("    <INPUT TYPE=\"image\" NAME=\""+ CDCmd.PA_RESET_ITEM + "\" SRC=\""+mapURL+GSFilename.GS_RET_ITEM_BTN+"\" ALT=\"専嶕崁栚傪夝彍\" WIDTH=\"133\" HEIGHT=\"28\" BORDER=\"0\"></TD>");
		addBodyString("    <TD VALIGN=\"MIDDLE\">");
		addBodyString("    <INPUT TYPE=\"image\" NAME=\""+CDCmd.PA_RESET+"\" SRC=\""+mapURL+GSFilename.GS_ALLUNSELECT_BTN+"\" ALT=\"慡偰夝彍\" WIDTH=\"93\" HEIGHT=\"28\" BORDER=\"0\"></TD>");

		addBodyString("    </TR>");
		addBodyString("    </TABLE>");
		addBodyString("  </TD>");

		addBodyString("  <TD ALIGN=\"RIGHT\">");
		addBodyString("    <TABLE BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"3\">");
		addBodyString("    <TR>");
		addBodyString("    <TD WIDTH=\"5%\" VALIGN=\"MIDDLE\" NOWRAP>");

		int bpage = 0;					// 儁乕僕
		Object[] dspUsers = null;		// 僜乕僩梡僥乕僽儖

		if(index>=0) {
			List CIDsList=null;

			if((CIDsList = idxSearch.getIDs(index))!=null){
				Iterator it = CIDsList.iterator();

				// 慖戰
				if(hsPara1.get(CDCmd.AD_SELECTION) != null)
					selection = Integer.parseInt((String)hsPara1.get(CDCmd.AD_SELECTION));
				else
					selection = 0;

				// 崁栚撪夝彍
				boolean delete = false;
				if(hsPara1.get("reset_item.x") != null)
					delete = true;

				//僜乕僩僥乕僽儖嶌惉
				Vector vecDspUsers = new Vector();
				while(it.hasNext())	{
					Integer cid = (Integer)it.next();
					CDCardFile cddata = new CDCardFile(carddataDir,cid.toString(),0);
					cddata.Load();
					if(cddata.getMail().length() > 0) {
						String sec = cddata.getSecret();
						int entuid = cddata.getEntuserid();

						if( Integer.parseInt(cddata.getSecret())==0
							|| flg==true
							||(Integer.parseInt(cddata.getSecret())==1&&entuid==uid) ) {
							bpage++;

							// 慖戰
							if(selection == CDCmd.AD_TO)
								toSet.add(cid.toString());
							else if(selection == CDCmd.AD_CC)
								ccSet.add(cid.toString());
							else if(selection == CDCmd.AD_BCC)
								bccSet.add(cid.toString());

							// 崁栚撪夝彍
							if(delete) {
								toSet.remove(cid.toString());
								ccSet.remove(cid.toString());
								bccSet.remove(cid.toString());
							}

							IUser user = UM.getUser(cddata.getAlocuserid());

⌨️ 快捷键说明

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