Deve ser desenvolvido com JavaFX 8.
Deve apresentar as seguintes caraterísticas:
01.Possuir apenas um formulário com uma barra de ferramentas e dois containers A e B;
02.A barra de ferramentas deve estar posicionada na parte superior do formulário e os dois
containers (do tipo Panel), com cor de fundo distintas e com os nomes A e B nos respectivos cantos superiores direito. Um abaixo do outro.
02.A barra de ferramentas deve possuir imagens ou botões com label identificadores como:novo,salvar, texto, label, imagem e linha;
03.Quando o usuário clicar em qualquer um dos botões da barra de ferramentas, o sistema ativará o respectivo drag and drop, mudando o formato
do cursor do mouse (para o tipo texto: cursor com imagem "texto". Para o tipo Label: cursor com imagem "label". Para o tipo linha: cursor com imagem "linha".
Para o tipo imagem: cursor com imagem "imagem").
Ao arrastar o mouse o sistema deverá detectar como destino os containeres A ou B. Quando passar por A ou B o cursor do mouse
deve ser alterado, indicando que ali é uma área destino no qual o usuário poderá utilizar a opção selecionada.
Quando o usuário clicar em um dos containers, o sistema deverá criar um componente do tipo do botão selecionado. Se o botão texto foi clicado, deve
criar um TextField no destino. Se foi o botão Label, deve criar um Label no destino.
Se foi o botão imagem, deve criar um objeto imagem no destino.
Se foi o botão linha, deve criar um objeto linha. Cada controle criado no destino deve possuir um tamanho inicial mínimo. No caso do TextField e do Label, pelo menos um tamanho 60.
Esses elementos devem ser criados no local que o usuário apontar o mouse dentro do container. A linha deve ser sempre criada horizontalmente, com um tamanho de, pelo menos, 60.
A imagem pode ser criada com 60x60.
04.Após a criação de um controle no destino escolhido, o usuário poderá movimentar e redimensionar um determinado controle dentro do container. Para isso, ao clicar no componente (selecionando-o),
o sistema deverá alterar a sua borda para um formato que indique ao usuário que o componente está em condições de ser redimensionado. Neste caso, a borda do componente deve ser alterada para um formato
específico: por exemplo, linha pontilhada ou linha com pontos nos cantos seus cantos.
O redimensionamento de um componente deve sempre ocorrer para a direita.
No caso da imagem, o redimensionamento deve ser simultâneo, tanto na horizontal quanto na vertical.
05.Cada controle pode ser movimentado dentro do container que o contem, mas a posição de cada componente deve respeitar as fronteiras do container, ou seja, os componentes não devem ultrapassar as bordas
do container, onde cada borda do componente deve ficar rente á respectiva borda da fronteira do container (Por exemplo: borda esquerda do componente rente á borda esquerda do container, borda superior do
componente rente à borda superior do container e assim por diante).
06.Ressalta-se que: quando um componente é selecionado, este ficará automaticamente no modo de redimensionamento e de edição. O redimensionamento já foi explicado. A edição poderá ocorrer da seguinte forma:
a)Deve ser ativada com o botão direito e apresentar certos detalhes em relação ao componente selecionado.
Caso o componente seja:
a.1)Texto: Apresentar uma janela de diálogo para que o usuário selecione o tipo da letra (arial, times new roman), seu tamanho(8,10,12,14) e seu estilo(negrito,normal,sublinhado,itálico).
a.2)Label: Semelhante ao do texto
a.3)Imagem: apresenta janela de dialogo para se escolher um arquivo de imagem no computador, sendo que a imagem escolhida deve, automaticamente, ser completamente ajustada no tamanho que está o componente.
a.4)Linha: apresentar um diálogo que selecione linha simples ou dupla.
07.Os containeres devem aceitar barra de rolagem horizontal e vertical e devem ter opção para ser redimensionados para um dos formatos: retrato ou paisagem. Sempre no tamanho A4.
08.O botão novo deve limpar o ambiente para ser utilizado novamente.
09.O botão salvar deve apresentar uma caixa de dialogo para que o usuário selecione uma pasta e informe o nome de um arquivo que deve ser gravado no formato xml.
Esse arquivo deve conter o nome de cada componente e as suas respectivas posições dentro do respectivo container.
Prazo de Entrega: Não estabelecido