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

📄 usertablemodel.java

📁 这是一个用java和xml编写的流媒体服务器管理软件
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
			// call return			System.out.println("---TRACE--- generating call return cpl");			// the setfeat sould have been set to on in the			// convertUserToDocument function			if (getValueAt(row, this.CALL_RETURN_ADMIN_ENABLED).equals("true")) {				String calledCpl = cplGen.buildCallReturnUserXML();				String callingCpl = cplGen.buildCallReturnUserCallingXML();				writeCallingAndCalledCpls((String) getValueAt(row,						this.CALL_RETURN_GROUP), (String) getValueAt(row,						this.USER_NAME), callingCpl, calledCpl);			}			// caller id blocking			System.out.println("---TRACE--- generating caller id blocking cpl");			if (getValueAt(row, this.CALLER_ID_BLOCKING_USER_SET).equals("ON")) {				// only write cpl if feature is set on				cpl = cplGen.buildCallerIdBlockingXML();				writeCpl(						(String) getValueAt(row, this.CALLER_ID_BLOCKING_GROUP),						(String) getValueAt(row, this.USER_NAME), cpl);			}			// generate call blocking cpl			boolean block900 = false;			boolean blockLongDist = false;			if (getValueAt(row, BLOCK_900_ADMIN_ENABLED).equals("true")) {				System.out.println("---TRACE---900 calls blocked by admin");				block900 = true;			} else {				if (getValueAt(row, BLOCK_900_USER_SET).equals("true")) {					System.out.println("---TRACE---900 calls blocked by user");					block900 = true;				}			}			if (getValueAt(row, BLOCK_LONG_DISTANCE_ADMIN_ENABLED).equals(					"true")) {				System.out						.println("---TRACE---long distance calls blocked by admin");				blockLongDist = true;			} else {				if (getValueAt(row, BLOCK_LONG_DISTANCE_USER_SET)						.equals("true")) {					System.out							.println("---TRACE---long distance calls blocked by user");					blockLongDist = true;				}			}			if (block900 || blockLongDist) {				System.out.println("Building cpl for clbl with block900="						+ block900 + " and blockLongDist=" + blockLongDist);				try {					cpl = cplGen.buildClblXML(block900, blockLongDist,							(String) getValueAt(row,									UserTableModel.CALL_BLOCK_PREFIX));					writeCpl((String) getValueAt(row, CALL_BLOCK_GROUP),							(String) getValueAt(row, USER_NAME), cpl);				} catch (Exception ex) {					error = ex;				}			}			// generate call screening cpl			// The setfeat field for this feature is not actually in the vector			// used			// to display the table. So we need to get it from the dom which was			// created			NodeList css = dom.getElementsByTagName("cs");			if (css.getLength() > 0) {				Element cs = (Element) css.item(0);				NodeList setfeats = cs.getElementsByTagName("setfeat");				if (setfeats.getLength() > 0) {					Element setfeat = (Element) setfeats.item(0);					if (setfeat.hasChildNodes()) {						if (setfeat.getFirstChild().getNodeValue().equals("ON")) {							System.out.println("Building cpl for cs");							try {								cpl = cplGen										.buildCsXML(convertUserAtToDocument(row));								writeCpl((String) getValueAt(row,										CALL_SCREEN_GROUP),										(String) getValueAt(row, USER_NAME),										cpl);							} catch (Exception ex) {								error = ex;							}						}					}				}			}			boolean fna = false;			if (getValueAt(row, this.FORWARD_UNANSWERED_USER_SET)					.equals("true")) {				System.out.println("---TRACE---forward no answer set by user");				fna = true;			}			boolean fb = false;			if (getValueAt(row, this.FORWARD_BUSY_USER_SET).equals("true")) {				System.out.println("---TRACE---forward busy set by user");				fb = true;			}			if (fna || fb) {				// write forward no answer, blocking cpl				String fnaDestination = (String) getValueAt(row,						this.FORWARD_UNANSWERED_DESTINATION);				String fbDestination = (String) getValueAt(row,						this.FORWARD_BUSY_DESTINATION);				String failureCause = (String) getValueAt(row,						this.FAILURE_CASE);				System.out.println("Building cpl for fnab with username="						+ userName + ", fna=" + fna + ", fnaDestination="						+ fnaDestination + ", fb=" + fb + ", fbDestination= "						+ fbDestination + "failureCause=" + failureCause);				try {					cpl = cplGen.buildFnabXML(userName, fna, fnaDestination,							fb, fbDestination, failureCause);					writeCpl((String) getValueAt(row, this.FORWARD_BUSY_GROUP),							(String) getValueAt(row, USER_NAME), cpl);				} catch (Exception ex) {					error = ex;				}			}		} // end if generate cpl*/		if (generateCl) {			ContactListGenerator clGen = new ContactListGenerator();			String called = clGen.buildCalledContactList(doc);			String calling = clGen.buildCallingContactList(doc);			//String password = (String) getValueAt(row,this.USER_PASSWD);			String password = (String) getValueAt(row,this.USER_PASSWD);			//System.out.println(password);			//String salt = "js";			//crypt(password, salt);						//String passwd = clGen.			psInterface.put("Contact_Lists_Called", (String) getValueAt(row,					this.USER_NAME), called);			psInterface.put("Contact_Lists_Calling", (String) getValueAt(row,					this.USER_NAME), calling);			//psInterface.put("etc","vocal.passwd",password); 			psInterface.put((String) getValueAt(row,this.USER_IDENTITY),(String) getValueAt(row,					this.USER_NAME),password);							}		// write back the user xml		psInterface.saveUser(userName, doc);		if (error != null) {			if (NoSuchNodeException.class.isInstance(error)) {				throw (NoSuchNodeException) error;			} else if (NotTextNodeException.class.isInstance(error)) {				throw (NotTextNodeException) error;			} else if (SAXException.class.isInstance(error)) {				throw (SAXException) error;			} else if (IOException.class.isInstance(error)) {				throw (IOException) error;			}		}	}	private void writeCpl(String group, String userName, String cpl) {		String[] paths = cplGen.getAddressArray(group);		if (paths == null) {			System.out					.println("---ERROR--- Could not get cpl destination paths for group "							+ group							+ "\n---ERROR--- Probably, the group does not exist in the ListOfFeatureServers"							+ "\n---ERROR--- Or there is no server configured for this feature.");			return;		}		String filename = userName + ".cpl";		String filegroup;		for (int i = 1; i < paths.length; i++) {			filegroup = paths[i];			psInterface.put(filegroup, filename, cpl);		}	}	/**	 * Write a user's calling and called CPL scripts of a Feature Group. For	 * now, we assume the feature is a called feature, so we need to substitue	 * "called" with "calling" in the file path when we write the calling CPL.	 */	private void writeCallingAndCalledCpls(String group, String userName,			String callingCpl, String calledCpl) {		String[] calledPaths = cplGen.getAddressArray(group);		if (calledPaths == null) {			System.out					.println("---ERROR--- Could not get cpl destination paths for group "							+ group							+ "\n---ERROR--- Probably, the group does not exist in the ListOfFeatureServers"							+ "\n---ERROR--- Or there is no server configured for this feature.");			return;		}		String filename = userName + ".cpl";		String filegroup;		for (int i = 1; i < calledPaths.length; i++) {			filegroup = calledPaths[i];			psInterface.put(filegroup, filename, calledCpl);			filegroup = calledPaths[i].replaceFirst("Called", "Calling");			psInterface.put(filegroup, filename, callingCpl);		}	}	public Vector loadUserAt(int row) throws SAXException, IOException,			VPPException {		Vector userData = (Vector) data.elementAt(row);		// if there is one element in the data vector for the selected user,		// this		// means that only the user's name has been loaded, not his xml file		if (userData.size() <= 1) {			// find the name of the user in the selected row			String userName = (String) userData					.elementAt(UserTableModel.USER_NAME);			// load the user's xml file fron the pserver			Document doc = psInterface.getUserNamed(userName);			// convert the xml to a vector			userData = convertUserToVector(doc);			// save the vector in the appropriate row			data.set(row, userData);			fireTableDataChanged();		}		return userData;	}	/**	 * Return a new vector which contains the "default" configuration for a	 * user.	 * <p>	 * This is used when adding a new user to the system	 */	public Vector getDummyUser() {		return (Vector) dummyUser.clone();	}	public Vector getUserAt(int row) {		return (Vector) data.elementAt(row);	}	private Vector createAliasVector(String name, String masterName) {		Vector alias = new Vector(this.MAX_COLUMN_ID);		for (int j = 0; j <= this.MAX_COLUMN_ID; j++) {			alias.addElement("");		}		alias.set(this.USER_NAME, name);		alias.set(this.IS_ALIAS, "true");		alias.set(this.MASTER_NAME, masterName);		alias.set(this.MASTER_INDEX, null);		return alias;	}	public void showAliases(boolean show) {		isShowingAliases = show;		if (show) {			if (aliasesLoadedFromServer) {				// if the aliases have been loaded from the server				// add them to the main data vector				for (int i = 0; i < aliases.size(); i++) {					data.addElement(aliases.elementAt(i));				}				this.fireTableDataChanged();			} else {				// if the aliases have not been loaded from the server				String[] aliasNames;				try {					aliasNames = psInterface.getAllAliasNames();				} catch (VPPNoSuchFileException e) {					// there are no aliases defined - that's ok					return;				}				for (int i = 0; i < aliasNames.length; i++) {					try {						// get the file for this alias						String aliasXml = psInterface								.getAliasNamed(aliasNames[i]);						// get the master user name this alias belongs to						String masterName = psInterface								.getMasterUserNameFromXml(aliasXml);						// create a new vector for this alias						Vector alias = createAliasVector(aliasNames[i],								masterName);						// add the vector to the list of aliases and to the main						// data vector						// If a new user was created along with some aliases,						// before others						// were loaded from the server, these may have already						// been added to						// the aliases vector						boolean found = false;						for (int j = 0; j < aliases.size(); j++) {							Vector aliasVector = (Vector) aliases.elementAt(j);							String aliasName = (String) aliasVector									.elementAt(this.USER_NAME);							if (aliasName.equals(aliasNames[i])) {								found = true;								break;							}						}						if (!found) {							aliases.addElement(alias);						}						data.addElement(alias);					} catch (VPPNoSuchFileException e) {						e.printStackTrace();						// this shouldn't have happenend. It was just found out						// above that						// a file with this name exists ... so we'll just						// quietly suppress						// this expception					}					this.fireTableDataChanged();					aliasesLoadedFromServer = true;				}			}			sortByUserName();		} else {			// if the aliases have been loaded, remove them from the main data			// list			if (aliases.size() != 0) {				for (int i = 0; i < aliases.size(); i++) {					Object alias = aliases.elementAt(i);					data.remove(alias);				}				fireTableDataChanged();			}		}	}	public int findMasterIndex(String masterName) {		for (int i = 0; i < data.size(); i++) {			String name = (String) getValueAt(i, this.USER_NAME);			if (name.equals(masterName)) {				return i;			}		}		return -1; // let's hope it doesn't get here	}	/**	 * Returns the array which stores the information about column width and	 * title	 */	public ColumnInfo[] getColumns() {		return columns;	}	public String getColumnName(int column) {		return columns[column].getName();	}	/**	 * 

⌨️ 快捷键说明

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