• Nenhum resultado encontrado

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET. Prof. Emilio Parmegiani

N/A
N/A
Protected

Academic year: 2021

Share "DESENVOLVIMENTO DE SOFTWARE PARA INTERNET. Prof. Emilio Parmegiani"

Copied!
15
0
0

Texto

(1)

DESENVOLVIMENTO

DE SOFTWARE PARA

INTERNET

(2)

Neste exercício praticaremos o uso de arquivos XML criando uma Jukebox, as famosas máquinas tocadoras de música.

(3)

2 - Através do Visual Studio é possível criar arquivos do tipo XML. Clique sobre o projeto com o botão direito, Add, New Item, em Visual C# selecione o grupo Data, e selecione a opção XML File. Entre com o nome do arquivo. Os arquivos kiss.xml e garbage.xml estão disponíveis na pasta junto a este material. Você pode copiá-los para dentro do seu projeto utilizando Ctrl+C e Ctrl+V.

(4)
(5)
(6)
(7)

O mesmo é formado por dois controles Button, que serão utilizados para carregar o álbum de músicas do Kiss e o álbum de músicas do Garbage, respectivamente, seis controles Button que serão nossos controles: Voltar para a primeira música, ir para a música anterior, pausar, tocar, ir para a próxima música, ir para a última música, e um TextBox, onde serão exibidas as mensagens, indicando os eventos que acontecerão na nossa Jukebox.

A seguir está apresentado o código até o atual momento, com os nomes (ID´s) e valores de texto (Text) de cada componente. Não

esqueça de mudar a propriedade TextMode do componente TextBox para “MultiLine”!

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Player.aspx.cs" Inherits="Jukebox.Player" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server"> <title></title>

</head> <body>

<form id="form1" runat="server"> <div>

<asp:Button ID="btnAlbumKiss" runat="server" Text="Carregar Album Kiss" />

<asp:Button ID="btnAlbumGarbage" runat="server" Text="Carregar Algum Garbage" /> <br />

<br />

<asp:Button ID="btnPrimeira" runat="server" Text="|&lt;" /> <asp:Button ID="btnAnterior" runat="server" Text="&lt;&lt;" /> <asp:Button ID="btnPause" runat="server" Text="||" /> <asp:Button ID="btnPlay" runat="server" Text="&gt;" />

<asp:Button ID="btnProxima" runat="server" Text="&gt;&gt;" /> <asp:Button ID="btnUltima" runat="server" Text="&gt;|" /> <br />

(8)

<asp:TextBox ID="txtMensagens" runat="server" Height="222px" TextMode="MultiLine" Width="393px"></asp:TextBox> </div> </form> </body> </html>

(9)

6 - Clique duas vezes sobre o formulário.

Iremos criar uma variável de classe do tipo XmlDocument que conterá o nosso álbum. Criaremos uma variável de classe do tipo XmlElement que conterá a raíz do nosso XML. A variável de classe do tipo XmlNode conterá qual música estará sendo reproduzida.

Não esqueça de criar as variáveis como static, para que estejam visíveis para todas as seções da sua aplicação.

Fora do método Page_Load crie as variáveis: using System.Xml;

namespace Jukebox {

public partial class Player : System.Web.UI.Page {

static XmlDocument album;

static XmlElement albumElemento; static XmlNode musicaEmExecucao;

protected void Page_Load(object sender, EventArgs e) {

} } }

(10)

7 - Volte para nosso formulário Player.aspx. Clique duas vezes sobre o botão “Carregar Album Kiss”. No método btnAlbumKiss_Click, digite o seguinte código:

protected void btnAlbumKiss_Click(object sender, EventArgs e) {

album = new XmlDocument();

album.Load(@"D:\ProjetosVisualStudio\Jukebox\Jukebox\kiss.xml"); albumElemento = album.DocumentElement;

musicaEmExecucao = null;

txtMensagens.Text += "Album " + albumElemento.Attributes.GetNamedItem("titulo").InnerText + " carregado com sucesso.\n";

txtMensagens.Text += "Artista " + albumElemento.Attributes.GetNamedItem("artista").InnerText + "\n"; }

(11)

8 - Faça o mesmo para carregar o álbum do Garbage:

protected void btnAlbumGarbage_Click(object sender, EventArgs e) {

album = new XmlDocument();

album.Load(@"D:\ProjetosVisualStudio\Jukebox\Jukebox\garbage.xml"); albumElemento = album.DocumentElement;

musicaEmExecucao = null;

txtMensagens.Text += "Album " + albumElemento.Attributes.GetNamedItem("titulo").InnerText + " carregado com sucesso.\n";

txtMensagens.Text += "Artista " + albumElemento.Attributes.GetNamedItem("artista").InnerText + "\n"; }

(12)

9 - Volte para nosso formulário Player.aspx. Clique duas vezes sobre o botão “Ir para a primeira música” (|<). No método btnPrimeira_Click, digite o seguinte código:

protected void btnPrimeira_Click(object sender, EventArgs e) { if (albumElemento != null) { if (albumElemento.HasChildNodes) { musicaEmExecucao = albumElemento.FirstChild;

txtMensagens.Text += "Tocando: " + musicaEmExecucao.ChildNodes.Item(0).InnerText + " (" + musicaEmExecucao.ChildNodes.Item(1).InnerText + ")\n";

} } }

(13)

10 - Faça o mesmo para o botão “Ir para a última música”. protected void btnUltima_Click(object sender, EventArgs e) { if (albumElemento != null) { if (albumElemento.HasChildNodes) { musicaEmExecucao = albumElemento.LastChild;

txtMensagens.Text += "Tocando: " + musicaEmExecucao.ChildNodes.Item(0).InnerText + " (" + musicaEmExecucao.ChildNodes.Item(1).InnerText + ")\n";

} } }

(14)

11- Vamos utilizar os métodos NextSibling e PreviousSibling para selecionar as próximas e as músicas anteriores: protected void btnProxima_Click(object sender, EventArgs e)

{ if (albumElemento != null) { if (albumElemento.HasChildNodes) { musicaEmExecucao = musicaEmExecucao.NextSibling;

txtMensagens.Text += "Tocando: " + musicaEmExecucao.ChildNodes.Item(0).InnerText + " (" + musicaEmExecucao.ChildNodes.Item(1).InnerText + ")\n";

} } }

12 - Para a função de Pause, vamos apenas exibir a mensagem de que o player se encontra pausado: protected void btnPause_Click(object sender, EventArgs e)

{

txtMensagens.Text += "Pause!!!\n"; }

(15)

13 - E para o botão de player vamos exibir a música que está em execução. Necessitamos validar se já existe alguma música em execução. Caso negativo, devemos carregar a primeira música do album.

protected void btnPlay_Click(object sender, EventArgs e) { if (albumElemento != null) { if (albumElemento.HasChildNodes) { if (musicaEmExecucao == null) {

//Caso nenhuma música esteja em execução, carregar a primeira música musicaEmExecucao = albumElemento.FirstChild;

}

txtMensagens.Text += "Tocando: " + musicaEmExecucao.ChildNodes.Item(0).InnerText + " (" + musicaEmExecucao.ChildNodes.Item(1).InnerText + ")\n";

} } }

Referências

Documentos relacionados

Planococcus citri é uma importante praga da videira, no submédio do Vale do São Francisco, e seu parasitismo por Coccidoxenoides perminutus, de ocorrência natural nesta região,

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

A prova do ENADE/2011, aplicada aos estudantes da Área de Tecnologia em Redes de Computadores, com duração total de 4 horas, apresentou questões discursivas e de múltipla

17 CORTE IDH. Caso Castañeda Gutman vs.. restrição ao lançamento de uma candidatura a cargo político pode demandar o enfrentamento de temas de ordem histórica, social e política

Seja o operador linear tal que. Considere o operador identidade tal que. Pela definição de multiplicação por escalar em transformações lineares,. Pela definição de adição

Com o objetivo de compreender como se efetivou a participação das educadoras - Maria Zuíla e Silva Moraes; Minerva Diaz de Sá Barreto - na criação dos diversos

A seleção portuguesa feminina de andebol de sub-20 perdeu hoje 21-20 com a Hungria, na terceira jornada do Grupo C do Mundial da categoria, a decorrer em Koprivnica, na