Enunciado

Neste exercício pretende-se concretizar uma subclasse de Command que permite acrescentar uma nova funcionalizade à aplicação Editor  construída durante a 7ª aula de laboratório. A funcionalidade desta subclasse depende do dia da semana do seu grupo de acordo com a seguinte correspondência:

  • 2ª-feira: Uma nova opção no menu: Ver Formas com mesma Abcissa. Este novo comando deverá pedir ao utilizador um número e depois deverá desenhar todas as formas cuja origem tem a abcissa igual ao número indicado pelo utilizador. As formas devem ser desenhadas por ordem crescente da ordenada da origem das formas.
  • 3ª-feira: Uma nova opção no menu Ver Formas com Área Maior. Esta opção pede um número utilizador e de seguida desenhas as formas do editor cuja área é maior que o número introduzido pelo utilizador.  As formas são desenhadas por ordem decrescente da área das formas. Assuma que a classe Form define o método abstracto public double computeArea() que é responsável por calcular a área da forma. Este método deve ser substituído em cada sub~classe de Form.
  • 5ª-feira: Uma nova opção no menu Ver Linhas, que só desenhas as as formas do editor que são linhas. As linhas devem ser desenhadas por ordem decrescente do produto das duas coordenadas da origem das linhas. Para ver se uma forma é uma linha ou não pode utilizar o operador instanceof (note que esta é uma das poucas situações em que é correcto a utilização deste operador).

A subclasse de Command concretizada tem que definir o método público estático obtemAutoria. Este método não deve receber qualquer parâmetro e deve devolver um vector de inteiros (tipo int[]) com a composição do grupo. O primeiro elemento do vector deve estar preenchido com o número do grupo que realizou o exercício e os restantes elementos devem corresponder aos números dos alunos que realmente colaboraram na execução deste trabalho. Por exemplo, se este trabalho tiver sido executado por um único aluno, este método deve devolver um vector com 2 inteiros.

Entregue apenas os ficheiros que contenham o código realizado para concretizar a nova funcionalidade da aplicação. Este código pode ser código que tenha sido alterado ou que corresponda a uma ou mais classes novas.

Prazo de Entrega

Este exercício de programação pode ser entregue até ao início da 8ª aula de laboratório.

Procedimento de Submissão

Uma vez que tenha codificado  a funcionalidade indicada no enunciado deste exercício, crie o ficheiro ep.jar, contendo apenas os ficheiros fonte (.java) de todas as classes alteradas ou criadas. Se todas as classes estiverem no package pacote, deve ser dado o seguinte comando:

 jar cvf ep.jar Classe1 Classe2 .... 

em que Classei corresponde a uma classe alterada ou nova.

De seguida, deve entregar, via electrónica, o ficheiro ep.jar. A entrega deste ficheiro deve ser feita via Fénix, na secção Avaliação da disciplina e escolhendo a submissão a submissão respeitante ao seu turno de laboratório e ao exercício de programação nº 8. O trabalho pode ser entregue várias vezes, até à data limite de entrega, sendo considerada apenas a última versão.