/** * Grupo T - MC726 * Componentes: * Flavia Garcia Poly RA:981191 * Jocelen Correa da Silva RA:981390 * Priscilla Sanches Marques RA:981944 * Ruth Fabiana Leite Vieira RA:982116 * Sergio Ricardo Martelo RA:982141 * Roberto Akira RA:963150 */ package pckEngenho; import pckPlano.*; import pckDemanda.Encomenda; import pckMapa.*; import pckGerador.*; import pckInterface.*; public class EngenhoImpl extends Engenho{ private Plano plano; private Veiculo[] aVeiculos; private Encomenda[] aEncomendas; private Mapa map; private Retangulo rPrincipal; private Retangulo rSecundario; private Plano plano; private Gravura gravP; private Gravura gravS; private String veiculosPath; private String encomendasPath; private String trechosPath; /** * Metodo Construtor da classe Engenho. * Entrada : Tres strings, contendo os paths para os arquivos que contem * as informacoes dos objetos : Veiculo, Encomenda e Trecho, * respectivamente * Saida : - */ public EngenhoImpl(String veicPath, String encPath, String trecPath, Graphics g, double xMinP, double xMaxP, double yMinP, double yMaxP, double xMin, double xMax, double yMin, double yMax) { setVeiculosPath(veicPath); setEncomendasPath(encPath); setTrechosPath(trecPath); processa(g, xMinP, xMaxP, yMinP, yMaxP, xMin, xMax, yMinP, yMaxP); } /** * Seta a variavel que contem o path para o arquivo * que contem a descricao dos veiculos. * Entrada : Uma string contendo o path do arquivo. * Saida : - */ public void setVeiculosPath(String novoVeiculosPath) { this.veiculosPath = novoVeiculosPath; } /** * Seta a variavel que contem o path para o arquivo * que contem a descricao das encomendas. * Entrada : Uma string contendo o path do arquivo. * Saida : - */ public void setEncomendasPath(String novoEncomendasPath) { this.encomendasPath = novoEncomendasPath; } /** * Seta a variavel que contem o path para o arquivo * que contem a descricao dos trechos. * Entrada : Uma string contendo o path do arquivo. * Saida : - */ public void setTrechosPath(String novoTrechosPath) { this.trechosPath = novoTrechosPath; } /** * Construcao dos objetos Veiculo, descritos * no arquivo informado. * Entrada : - * Saida : Vetor contendo objetos do tipo Veiculo. */ private Veiculo[] carregaVeiculos() { Leitura lv = new Leitura (); this.aVeiculos = lv.carregarVeiculo(this.veiculosPath); } /** * Construcao dos objetos Encomenda, descritos * no arquivo informado. * Entrada : - * Saida : Vetor contendo objetos do tipo Encomenda. */ private Encomenda[] carregaEncomendas() { Leitura le = new Leitura(); this.aEncomendas = le.carregarEncomenda(this.encomendasPath); } /** * Construcao dos objetos Trecho, descritos * no arquivo informado. * Entrada : - * Saida : Vetor contendo objetos do tipo Trecho. */ private void carregaTrechos() { } /** * A partir das informacoes fornecidas ao Engenho (arquivos de entrada) * inicia um estado para utilizacao da interface com um plano calculado * para estes arquivos de entrada */ private void processa(Graphics gP, Graphics gS, double xMinP, double xMaxP, double yMinP, double yMaxP, double xMin, double xMax, double yMin, double yMax) { Rectangle rPrincR = new Rectangle(); Escala escP = new Escala; Escala escS = new Escala; Desenhador desenhoMapaPrincipal = new DesenhadorImpl(mapa); Desenhador desenhoMapaSecundario = new DesenhadorImpl(mapa) Gerador gerador = new Gerador(); this.aVeiculos = this.carregaVeiculos(); this.aEncomendas = this.carregaEncomendas(); this.mapa = new Mapa(this.trechosPath); this.rPrincipal = new Retangulo (xMinP, xMaxP, yMinP, yMaxP); this.rSecundario = new Retangulo (xMin, xMax, yMinP, yMaxP); escP.define(rPrincR,rPrincipal); escS.define(rPrincR, rSecundario); this.gravP = new GravuraImpl(gP,escP,1); this.gravS = new GravuraImpl(gS,escP,1); desenhoMapa.desenharMapa(gravP); desenhoMapa.desenharMapa(gravS); this.plano = gerador.gera(aVeiculos, aEncomendas, mapa); } /** * Retorna um vetor contendo objetos do tipo Veiculo, construidos a * partir das informacoes contidas no arquivo informado. */ public Veiculo[] getVeiculos() { return (this.aVeiculos); } /** * Retorna um vetor contendo objetos do tipo Encomenda, construidos a * partir das informacoes contidas no arquivo informado. */ public Encomenda[] getEncomendas() { return (this.aEncomendas); } }