public FenetrePrincipale(PlanSalle modele) { super(); this.modele = modele; this.setTitle(modele.getNom() + " - OSE"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.creerBarreMenus(); this.creerMenuContextuel(); JLayeredPane lp = new JLayeredPane(); lp.setPreferredSize( new Dimension( Parametres.NB_TRAVEES * Parametres.LARGEUR_TRAVEE, Parametres.NB_RANGEES * Parametres.HAUTEUR_RANGEE)); lePlan = new Plan(modele); lePlan.setBounds( 0, 0, Parametres.NB_TRAVEES * Parametres.LARGEUR_TRAVEE, Parametres.NB_RANGEES * Parametres.HAUTEUR_RANGEE); lp.add(lePlan, new Integer(0)); Container conteneur = this.getContentPane(); conteneur.setLayout(new FlowLayout()); conteneur.add(lp); this.pack(); this.setLocationRelativeTo(null); this.setVisible(true); }
private void placerPostes(Graphics2D g) { g.setStroke(new BasicStroke()); for (PlanSalle.Poste poste : modele.listerPostes()) { g.setColor(Color.gray); int xPoste = Parametres.posteX(poste.getPosition().getTravee(), poste.getOrientation()); int yPoste = Parametres.posteY(poste.getPosition().getRangee(), poste.getOrientation()); int xPersonne = Parametres.personneX(poste.getPosition().getTravee(), poste.getOrientation()); int yPersonne = Parametres.personneY(poste.getPosition().getRangee(), poste.getOrientation()); if (poste.getOrientation() == Orientation.NORD || poste.getOrientation() == Orientation.SUD) { g.fill3DRect(xPoste, yPoste, Parametres.LONGUEUR_POSTE, Parametres.LARGEUR_POSTE, true); } else { g.fill3DRect(xPoste, yPoste, Parametres.LARGEUR_POSTE, Parametres.LONGUEUR_POSTE, true); } g.drawOval(xPersonne, yPersonne, Parametres.LARGEUR_PERSONNE, Parametres.LARGEUR_PERSONNE); if (poste.peutVoir()) { g.setColor(Color.red); } else { g.setColor(Color.blue); } g.fillOval(xPersonne, yPersonne, 20, 20); } }
private void tracerVisualisations(Graphics2D g) { float dash[] = {2f, 0f, 2f}; BasicStroke pointilles = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 1.0f, dash, 2f); g.setStroke(pointilles); g.setColor(Color.red); for (PlanSalle.Poste poste : modele.listerPostes()) { int centreX = Parametres.centrePersonneX(poste.getPosition().getTravee(), poste.getOrientation()); int centreY = Parametres.centrePersonneY(poste.getPosition().getRangee(), poste.getOrientation()); for (PlanSalle.Poste posteVisible : poste.getPostesVisibles()) { int visibleX = Parametres.centrePositionX(posteVisible.getPosition().getTravee()); int visibleY = Parametres.centrePositionY(posteVisible.getPosition().getRangee()); g.drawLine(centreX, centreY, visibleX, visibleY); } } }