Coverage Report - cs.pancava.caltha.worlds.Room
 
Classes in this File Line Coverage Branch Coverage Complexity
Room
0%
0/21
0%
0/2
1.286
 
 1  
 /* $Id: Room.java 22 2008-12-30 17:33:44Z mihlon $ */
 2  
 
 3  
 //////////////////////////////////////////////////////////////////////////////
 4  
 //                                                                          //
 5  
 //   This program is free software: you can redistribute it and/or modify   //
 6  
 //   it under the terms of the GNU General Public License as published by   //
 7  
 //   the Free Software Foundation, either version 3 of the License, or      //
 8  
 //   at your option any later version.                                      //
 9  
 //                                                                          //
 10  
 //   This program is distributed in the hope that it will be useful,        //
 11  
 //   but WITHOUT ANY WARRANTY; without even the implied warranty of         //
 12  
 //   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          //
 13  
 //   GNU General Public License for more details.                           //
 14  
 //                                                                          //
 15  
 //   You should have received a copy of the GNU General Public License      //
 16  
 //   along with this program.  If not, see <http://www.gnu.org/licenses/>.  //
 17  
 //                                                                          //
 18  
 //////////////////////////////////////////////////////////////////////////////
 19  
 
 20  
 package cs.pancava.caltha.worlds;
 21  
 
 22  
 import cs.pancava.caltha.Editor;
 23  
 import java.awt.Color;
 24  
 import java.awt.Font;
 25  
 import java.awt.Graphics2D;
 26  
 import java.awt.font.TextLayout;
 27  
 import java.awt.geom.Ellipse2D;
 28  
 
 29  
 /**
 30  
  * <p><b>Tato trida definuje vlastnosti mistnosti ve vytvorenem svete.</b></p>
 31  
  *
 32  
  * @author Milan Vaclavik<br />
 33  
  * @version $Revision: 22 $<br />
 34  
  * $LastChangedBy: mihlon $<br />
 35  
  */
 36  
 public class Room extends GameEntity
 37  
 {
 38  
     /**
 39  
      * Graficka reprezentace mistnosti v editoru.
 40  
      */
 41  
     private Ellipse2D graphicsObject;
 42  
 
 43  
     /**
 44  
      * Prumer mistnosti (kruznice).
 45  
      */
 46  
     private int diameter;
 47  
 
 48  
     /**
 49  
      * Barva mistnosti.
 50  
      */
 51  0
     private final Color ROOM_COLOR = Color.BLUE;
 52  
 
 53  
     /**
 54  
      * Barva vybrane mistnosti.
 55  
      */
 56  0
     private final Color ROOM_SELECTED_COLOR = Color.CYAN;
 57  
 
 58  
     /**
 59  
      * Barva popisku - textu.
 60  
      */
 61  0
     private final Color TEXT_COLOR = Color.WHITE;
 62  
 
 63  
     /**
 64  
      * Konstruktor - nastavuje souradnice umisteni dane mistnosti v editoru.
 65  
      * @param x int : X-ova souradnice mistnosti.
 66  
      * @param y int : Y-ova souradnice mistnosti.
 67  
      * @param r int : Polomer kruznice - urcuje velikost mistnosti.
 68  
      */
 69  
     public Room(final int x, final int y, final int r)
 70  
     {
 71  0
         super(x, y, World.WORLD_ROOM, Editor.getEditorDesktop().getWorld().getWorldRoomsAL().size());
 72  
 
 73  0
         this.diameter = r;
 74  
 
 75  0
         this.graphicsObject = new Ellipse2D.Double(x, y, this.diameter, this.diameter);
 76  0
     }
 77  
 
 78  
     /**
 79  
      * Vraci stred objektu v ose X.
 80  
      * @return int : Stred objektu v ose X.
 81  
      */
 82  
     @Override
 83  
     public final int getCenterX()
 84  
     {
 85  0
         return this.getLocationX() + this.diameter / 2;
 86  
     }
 87  
 
 88  
     /**
 89  
      * Vraci stred objektu v ose Y.
 90  
      * @return int : Stred objektu v ose Y.
 91  
      */
 92  
     @Override
 93  
     public final int getCenterY()
 94  
     {
 95  0
         return this.getLocationY() + this.diameter / 2;
 96  
     }
 97  
 
 98  
     /**
 99  
      * Vraci grafickou reprezentaci mistnosti v editoru.
 100  
      * @return RectangularShape : Graficka reprezentace mistnosti v editoru.
 101  
      */
 102  
     @Override
 103  
     public final Object getGraphicsObject()
 104  
     {
 105  0
         return this.graphicsObject;
 106  
     }
 107  
 
 108  
     /**
 109  
      * Zobrazi danou mistnost v editoru.
 110  
      * @param g2 Graphics2D : Graficky kontext, do ktereho se bude kreslit.
 111  
      */
 112  
     @Override
 113  
     public final void showGraphicsObject(final Graphics2D g2)
 114  
     {
 115  0
         final TextLayout textID = new TextLayout(String.valueOf(this.getId()),
 116  
                                            new Font("Helvetica", 0, this.diameter / 2),
 117  
                                            g2.getFontRenderContext());
 118  
 
 119  
         // Nastaveni grafickeho objektu na novou (aktualni) pozici.
 120  0
         this.graphicsObject.setFrame(this.getLocationX(), this.getLocationY(), this.diameter, this.diameter);
 121  
 
 122  0
         if (this.isSeleted())
 123  
         {
 124  0
             g2.setColor(this.ROOM_SELECTED_COLOR);
 125  
         }
 126  
         else
 127  
         {
 128  0
             g2.setColor(this.ROOM_COLOR);
 129  
         }
 130  
 
 131  0
         g2.fill(this.graphicsObject);
 132  
 
 133  0
         g2.setColor(this.TEXT_COLOR);
 134  0
         textID.draw(g2,
 135  
                     this.getLocationX() + (int) ((this.diameter - textID.getBounds().getWidth()) / 2),
 136  
                     this.getLocationY() + (int)  (this.diameter - textID.getBounds().getHeight()));
 137  0
     }
 138  
 
 139  
     /**
 140  
      * V teto tride nepotrebuji tuto vlastnost, proto vratime null.
 141  
      * @return gameEntity : Vratime null, protoze je tato vlastnost v tomto kontextu k nicemu.
 142  
      */
 143  
     @Override
 144  
     public final GameEntity getFirstRoom()
 145  
     {
 146  0
         return null;
 147  
     }
 148  
 
 149  
     /**
 150  
      * V teto tride nepotrebuji tuto vlastnost, proto vratime null.
 151  
      * @return gameEntity : Vratime null, protoze je tato vlastnost v tomto kontextu k nicemu.
 152  
      */
 153  
     @Override
 154  
     public final GameEntity getSecondRoom()
 155  
     {
 156  0
         throw new UnsupportedOperationException("Not supported yet.");
 157  
     }
 158  
 }