É possível customizar/estender um painel existente ao incluir
dashlets.
Sobre esta tarefa
A seguir há um XML de amostra, com definições de metadados de dashlet:
<Dashlets>
<Dashlet id="dashlet_one" title="Dashlet One" type="html" tag="tag_1">
<Url>/stk/dashboard/dashlet_one.jsp</Url>
<Imgurl>/stk/img/dashboard/dashlet_one_preview.png</Imgurl>
<Description>
Dashlet one description bundle key
</Description>
<Config numberOfColumns="3">
</Config>
</Dashlet>
<Dashlet id="dashlet_two" title="Dashlet Two" type="extscreen" tag="tag_2"
multiInstance="true" refreshable="Y">
<Url>/stk/dashboard/dashlet_two.jsp</Url>
<Imgurl>/stk/img/dashboard/dashlet_two_preview.png</Imgurl>
<Description>
Dashlet two description bundle key
</Description>
<Config numberOfColumns="2">
</Config>
<!-- Other metadata relevant to the dashlet can be added based on type
and url of the dashlet -->
</Dashlet>
<Dashlet id="dashlet_three" title="Dashlet Three" type="html" tag="tag_3">
<Url>/stk/dashboard/dashlet_three.jsp</Url>
<Imgurl>/stk/img/dashboard/dashlet_three_preview.png</Imgurl>
<Description>
Dashlet three description bundle key
</Description>
<Config>
</Config>
</Dashlet>
</Dashlets>
As descrições dos atributos e elementos da amostra acima
são fornecidas a seguir.
- ID
Um identificador exclusivo do dashlet. Esse id é usado para consultar
um dashlet e suas propriedades. Ele é usado por uma
definição de painel para incluir um dashlet nele.
- título
- O título do dashlet. Pode ser uma chave de pacote configurável que
pode ser localizada.
- tipo
O tipo de dashlet é um metadados sobre o tipo de conteúdo
retornado por uma URL de dashlet. Por padrão, o Web UI Framework suporta os tipos
de dashlet a seguir:
- HTML. A resposta do tipo HTML deve ser um fragmento de documento HTML válido. Os exemplos a seguir ilustram as várias maneiras pelas quais ela pode ser usada
para renderizar a UI do dashlet: (1) Um fragmento HTML totalmente renderizado que
pode ser visualizado em um navegador sem nenhum processamento adicional. (2) Um
iframe que pode ser usado para integrar com segurança um widget a partir de websites externos. (3) um scriptlet que pode renderizar dinamicamente o conteúdo no contêiner.
- extscreen. Um extscreen é um script de renderização de IU JavaScript ExtJS-based. Ele pode
ser usado para renderizar componentes de UI dinâmicos e interativos.
- identificação
- Um valor separado por vírgula de nomes de tag do dashlet.
- refreshable
Configure esse valor para Y para tornar o painel atualizável e exibir
um ícone de atualização na caixa de ferramentas do dashlet. Quando o ícone de atualização
é clicado, o dashlet individual é atualizado.
- multiInstance
Configurar isso para true permite que o dashlet seja incluído
no painel diversas vezes. Esse é um parâmetro opcional que é padronizado
para false.
- URL
A URL usada para obter o conteúdo para renderizar um dashlet. Para renderizar
um dashlet no painel, uma solicitação precisará ser feita no servidor. A solicitação é feita nessa URL e a resposta é renderizada na UI.
- Imgurl
A URL para a imagem a ser exibida mostrando uma visualização do
conteúdo exibido pelo dashlet.
- descrição
- A descrição do dashlet. Pode ser uma chave de pacote configurável que
pode ser localizada.
- Configuração
- O elemento Config é usado para definir as opções de configuração usadas
para renderizar o dashlet na UI. Alguns dashlets que não requerem uma opção de configuração podem escolher não especificar o elemento Config.
Observação: Além do elemento Config, um dashlet pode ter outros elementos de metadados Em geral, o Config é usado para definir propriedades de UI, mas
pode ser usado para reter qualquer tipo de metadados.
Para customizar/estender um painel existente ao incluir dashlets, execute o seguinte:
Procedimento
- Crie o novo arquivo XML para os dashlets usando o código de amostra acima como diretriz.
- Execute um dos procedimentos a seguir:
- Navegue para a pasta << INSTALL_DIR>>> /extensions/ <app-name> /webpages Crie a estrutura de diretório desejada e coloque os arquivos XML de dashlet nela.
Os arquivos XML definidos aqui são copiados para a pasta < application-war> /extn/ < sua estrutura de diretório>
- Navegue para a pasta << INSTALL_DIR>> /repository/eardata/ > <app-name> /extn Crie a estrutura de diretório desejada e coloque os arquivos XML de dashlet nela.
Os arquivos XML definidos aqui são copiadas para a pasta < application-war> / < sua estrutura de diretório>
- Crie um novo servlet para carregar seus arquivos XML e inclua-os
no painel do usuário.
Código de amostra:
//<dirPath> = <your directory structure> or extn/<your directory
structure> depending on procedure used.
String appId = SCUIUtils.getApplicationId(config.getServletContext());
String dashletsFilePath = “<dirPath>/dashlets.xml";
InputStream isDlts = servletContext.getResourceAsStream(dashletsFilePath);
SCUIDashboardManager.getInstance(appId).registerDashlet(isDlts);
- Empacote esse servlet em um arquivo jar e use o segundo
método no caso de uma implementação de diversos wars. Em outros casos, é possível
usar um dos métodos.
- Execute o script Install3rdParty.sh a partir de << INSTALL_DIR>>/bin para incluir esse arquivo JAR no aplicativo
- Navegue até a pasta << INSTALL_DIR>> /repository/eardata/ <app-name> /extn. Crie a pasta WEB-INF/lib. Copie o arquivo jar aqui.
- Navegue até a pasta << INSTALL_DIR>> /repository/eardata/ <app-name> /extn. Faça uma entrada no arquivo web.xml para carregar seu servlet e assegure-se de que ele seja carregado depois do servlet do inicializador de seu aplicativo dando ao carregar na inicialização um valor por volta de 1000 ou mais.
- Execute o comando buildwar/buildear.
Na ativação
do aplicativo, seus novos dashlets serão carregados e será possível
visualizá-los quando selecionar o link customizar no painel.
Nota: a configuração e os layouts de painel existentes não podem ser mudados durante a extensibilidade do painel.... Apenas novos dashlets podem ser associados a um painel.
Nota: para incluir um painel em um aplicativo, as etapas semelhantes precisam ser seguidas. A seguir há um XML de amostra, com definições de metadados de painel:
<Dashboards>
<Dashboard id="myhomepage" title="My Homepage" tag="tag_1,tag_n"
version="0.0.1">
<Config>
<Layouts currentLayoutId="twoEqualColumn">
<Layout id="twoEqualColumn" type="column"
previewIconUrl="/stk/img/dashboard/2col_preview.png">
<Column id="d_one" width=".49"/>
<Column id="d_two" width=".49"/>
</Layout>
</Layouts>
</Config>
<Dashlets>
<Dashlet id="dashlet_one" parent="d_one" >
</Dashlet>
<Dashlet id="dashlet_two" parent="d_two">
<Config numberOfColumns="1" >
</Config>
</Dashlet>
</Dashlets>
</Dashboard>
</Dashboards>
- ID
Um identificador exclusivo do painel. Esse id é usado para verificar
permissões e autorização de recursos. Se um painel contiver um
dashlet para o qual o usuário não possui permissão, esse dashlet
não será mostrado para o usuário.
- título
- O título do painel. Pode ser uma chave de pacote configurável que
pode ser localizada.
- identificação
- Um valor separado por vírgula de nomes de tag do painel. Essas tags
são usadas para localizar dashlets que possuem tags correspondentes. Esses dashlets relacionados
estão disponíveis quando você customizar o painel.
Nota: você poderá ver outras tags também, mas por padrão, apenas dashlets com tags correspondentes serão exibidos.
- versão
A versão dos metadados do painel. Ela pode ser usada no caso de
ocupação variada para suportar diferentes versões dos metadados de painel.
- Configuração
- O elemento Config é usado para definir opções de configuração usadas
para renderizar o painel. Uma opção de configuração assim é o layout de dashlets em um painel.
Os layouts são usados para definir estratégias de layout
suportadas por um painel. Ele contém elementos filho definindo estratégias de layout individuais. Atualmente, apenas um layout de coluna é suportado
como um layout padrão de painel.
- Dashlets
Uma lista de todos os dashlets a serem exibidos no painel. Cada dashlet pode ter o seguinte conjunto de atributos e de elementos:
- id. ID de referência do dashlet a ser incluído no painel.
- Parent. O id do contêiner do layout no qual o dashlet será incluído.