Olá ana, bem vc pode fazer na mão basta entender como funciona o useLoadingMessage() , ele usa nada mais que um setPreHook e o setPostHook, lembrando que o useLoadingMessage() SÓ funciona para chamadas do DWR, caso vc queria por exemplo que ao carregar a pagina ele coloque o loading, vc terá que fazer na mão mesmo, pois ao carregar a pagina vc nao faz nenhuma chamada aos facades do DWR, por isso o useLoadingMessage não é executado.
Segue um trecho do código para um loading com DWR
/**
* Declaração do contrutor para usar algumas funções.
* Exemplo: Ajax.useLoadingMessage();
* @constructor
*/
function Ajax() { }
/**
* Função init() é carregada toda vez que se usa alguma função do DWR, fazendo
* a chamada para a função useLoadingMessage() que carrega o Loading....
*
* @see useLoadingMessage()
*/
function initLoadingDWR()
{
Ajax.useLoadingMessage();
}
/**
* Funções para testar o browser.
*/
if (window.addEventListener)
{
window.addEventListener("load", initLoadingDWR, false);
}
else if (window.attachEvent)
{
window.attachEvent("onload", initLoadingDWR);
}
else
{
window.onload = initLoadingDWR;
}
/**
* Função que carrega na tela uma imagem de Loading
*
* @param {Object} message
*/
Ajax.useLoadingMessage = function useLoadingMessage(message) {
var loadingMessage;
if (message)
loadingMessage = message;
else
loadingMessage = "Carregando..";
DWREngine.setPreHook(function() {
var disabledZone = $('disabledZone');
if (!disabledZone) {
disabledZone = document.createElement('div');
disabledZone.setAttribute('id', 'disabledZone');
disabledZone.style.position = "absolute";
disabledZone.style.zIndex = "1000";
disabledZone.style.left = "0px";
disabledZone.style.top = "0px";
disabledZone.style.width = "100%";
disabledZone.style.height = "100%";
disabledZone.style.textAlign = "center";
document.body.appendChild(disabledZone);
var messageZone = document.createElement('div');
messageZone.setAttribute('id', 'messageZone');
messageZone.style.margin = "250px";
messageZone.style.marginLeft = "350px";
messageZone.style.marginRight = "350px";
//messageZone.style.background = "#dcedad";
//messageZone.style.color = "white";
messageZone.style.fontFamily = "Arial,Helvetica,sans-serif";
messageZone.style.padding = "4px";
messageZone.innerHTML = "<img src='../imagens/aguarde_carregandoAzul.gif'/>";
disabledZone.appendChild(messageZone);
} else {
$('messageZone').innerHTML = "<img src='../imagens/aguarde_carregandoAzul.gif'/>";
disabledZone.style.visibility = 'visible';
}
});
DWREngine.setPostHook(function() {
$('disabledZone').style.visibility = 'hidden';
});
}
/**
* Variável glogal para gerar um único disabledZone
*/
var disabledZone = $('disabledZone');
/**
* Variável glogal para gerar um único messageZone
*/
var messageZone = document.createElement('div');
Bem quando vc acionar QUALQUER chamada do DWR o loading será executado. Mais se você quiser chamar um loading para uma chamada que NÃO acesse um facadeAjax do dwr então veja o próximo código, que poderá estar no mesmo arquivo js que o código anterior está.
Segue o código para caso vc precise usar um loading sem ser pelo DWR.
/**
* Função que gera o carregando da página.
* Utilizado para qualquer página, e não necessita do DWR.
* @param {Object} flag - String para abilitar se vai exibir ou retirar o carregando(true = exibe / false = retira)
*/
function carregandoGrafico(flag){
if(flag == "true"){
disabledZone = document.createElement('div');
disabledZone.setAttribute('id', 'disabledZone');
disabledZone.style.position = "absolute";
disabledZone.style.zIndex = "1000";
disabledZone.style.left = "0px";
disabledZone.style.top = "0px";
disabledZone.style.width = "100%";
disabledZone.style.height = "100%";
disabledZone.style.textAlign = "center";
document.body.appendChild(disabledZone);
messageZone.setAttribute('id', 'messageZone');
//messageZone.style.border = "1px solid black";
messageZone.style.margin = "250px";
messageZone.style.marginLeft = "350px";
messageZone.style.marginRight = "350px";
//messageZone.style.background = "#dcedad";
//messageZone.style.color = "white";
messageZone.style.fontFamily = "Arial,Helvetica,sans-serif";
messageZone.style.padding = "4px";
messageZone.innerHTML = "<img src='../imagens/aguarde_carregandoAzul.gif'/>";
disabledZone.appendChild(messageZone);
}else{
disabledZone.style.visibility = "hidden";
}
}
JSP
script type="text/javascript">
function carrega(){
setTimeout(function(){ parent.carregandoGrafico("false"); },1000);
}
/script>
body onload="carrega();">......
Bem parece até uma gambi esse último, mais como tá bem simples e enxuto, nao o vejo assim, sem faler que é bem facil de entender o que ele ta fazendo e fácil implementação…
Só para dica de informação 
Qualquer coisa acessa os artigos na Java Magazine que fiz…esse que a diana passou e já tem outros lá, inclusive vídeo aulas…
Abraços e boa sorte…qualquer coisa posta no meu blog ou me envia um email que eu respondo e ajudo no que for necessário. 
www.handersonfrota.com.br