Implementação Upload AMADIS 1.x

Da AMADIS

Peca esboço.gif

'Este artigo é somente um esboço para um artigo maior.
'Quer ajudar o AMADIS? Acrescente alguma informação!

Uma ferramtenta de upload tem por objetivo consolidar o envio de arquivos entre duas máquinas, mais especificamente dentro de um ambiente de EAD, fornecer uma área onde seja possivél manter a produção dos usuário existentes nele. Os recursos disponíveis para a construção de uma ferramenta de upload são muitos, e diferem mais sobre o tipo de funcionalidades que se deseja criar sobre a ferramenta.

Para a consutrução da ferramenta foi criado um módulo na API do AMADIS responsável pela manipulação dos arquivos enviados e mantidos na árvore de diretórios da plataforma, a este módulo damos o nome de AMUpload. Abaixo segue diagrama da construção do AMUpload:

Amupload diagram.png

No diagrama acima é mostrado como os componentes de interface do AMUpload foram distribuídos, para cada ação do AMUpload está associado um widget(AMBUploadCreateDrietory, AMBSendFiles) no diagrama não aparecem o editor HTML-Area e o AMContextMenu, pois essas são soluções de interfaces geradas em Javascript, não possuem estrutura de classes, mas serão mais detalhadas no ítem abaixo.

Integração do editor HTML-Area

O HTML-Area é um WYSIWYG editor HTML que pode ser utilizado dentro do sistema de upload de arquivos, ele possui uma pequena estrutura que permite a adição de novas funcionalidades ao editor, dando uma maior dinamicidade ao desenvolvedor para retirar ou registrar novas funcionalidades, como exibido a seguir:

//registro da funcao de inicializacao do editor
AM_registerEditorInitActions("UploadSetupEditor");

//registro de novos botoes para o editor html
function UploadSetupEditor() {
  AM_registerEditorButtons({name:"btn-save",
		  separator: "linebreak",
		  properties:[lang_save,
			      imlang_url+"/ico_savepage.gif",
			      false
		  ],
		  regInfo: {
		    id       : "btn-save",
		    tooltip  : lang_save,
		    image    : images_url+"/htmlarea/ed_save.gif", //imlang_url+"/ico_savepage.gif",
		    textMode : false,
		    action   : function(editor) {
		      var form = window.document.getElementById("form_file");
		      var textarea = window.document.getElementById("frm_file_content");
		      textarea.value = editor.getHTML();
		      form.submit();
	 	    },
   	           // will be disabled if outside a <p> element
 		  }
  });

}

ContextMenu

O ContextMenu é integrado com uma pequena API javascript que faz registro das funções de dispacho de eventos do usuários, desta forma é possível criar de maneira dinâmica um menu para cada tipo de arquivo do sistema de arquivos. A forma de descrição dos ítens do menu se dá por meio de um array, que é modificado toda vez que a ação de contextualização do menu é ativada. Neste Array deve conter duas informações:

  • Label de apresentação ao usuário, que identifique a função a ser executada;
  • String da função que será carregada, com o identificador do objeto que dispara o evento.

A seguir tem um exemplo de como o registro de funções do contextMenu é feito:

function Upload_pasta(targetId) {
  var menuContent = new Array();
  menuContent.push(new Array("Abrir","UploadOpenFolder(\""+targetId+"\");"));
  menuContent.push(new Array("Deletar","UploadDelete(\""+targetId+"\");"));

  return menuContent;
}

//registro de chamadas para o AMContextMenu
//handlers para imagens
AM_registerHandlerId("Upload_pasta");
Ferramentas pessoais
Parceiros
















SourceForge.net Logo

Supported by Cenqua