@Override
	public void insertAfter(Element element, Element after,
			String outerBlockNames) throws RemoteException {
	    if("".equals(outerBlockNames.trim())){
	    	confText = ReadConf();
	    	//confText not contains element, return @
			String editconfText = BlockInsertAfter(confText,element,after);
			// write to local conf file
			WriteConf(editconfText);
			WriteRemoteConf();
			return;
	    }
	    
	    if(CheckOuterBlockNames(outerBlockNames)){
	    	throw new RemoteException("outerBlockNames is not correct,outerBlockNames ="+outerBlockNames);
	    }
	    
	    if((null == after.toString()) || ("" == after.toString())){
	    	return;
	    }
	    
	    //If there is no index in outerBlockNames, default the first block.
	    if(!outerBlockNames.contains(":")){
	    	outerBlockNames += ":0";
	    }
	    
	    HashMap<String,String> objHashMap=EditCommon(outerBlockNames);
	    String BlockText = objHashMap.get("blocktext");
	    int BlockLength = Integer.parseInt(objHashMap.get("blocklength"));
	    int nblockNameNum = Integer.parseInt(objHashMap.get("nblocknamenum"));
	    
		String editBlockText = BlockInsertAfter(BlockText,element,after);
		
		String newConfText = GetPreBlockText(confText,nblockNameNum)+editBlockText
				+GetSufBlockText(confText,nblockNameNum+BlockLength);
		
//		System.out.println(editBlockText);
		// write to local conf file
		WriteConf(newConfText);
		WriteRemoteConf();
	}