

/**
 * Trida Kompresor slouzi ke zmene velikosti objektu
 * implementujicich rozhrani IPosuvny.
 *
 * @author     Rudolf Pecinovsky
 * @version    1.00, 3.2.2003
 */
public class Kompresor
{
//== VEREJNE KONSTANTY =========================================================
//== SOUKROME KONSTANTY ========================================================
//== ATRIBUTY TRIDY ============================================================

    /** Tento atribut je tu pouze pro zjednodušení psaní. */
    private static AnimPlatno platno = AnimPlatno.getPlatno();

//== ATRIBUTY INSTANCI =========================================================

    /** Specifikuje silu "nafukovani" objektu danou instanci kompresoru,
     * tj. miru jeho prifouknuti. */
    private int sila;


//== PRISTUPOVE METODY ATRIBUTU TRIDY ==========================================
//== OSTATNI METODY TRIDY ======================================================

//== KONSTRUKTORY ==============================================================

    /**
     * Konstruktor pro objekty tridy Kompresor se silou nafukovani 1.
     */
    public Kompresor()
    {
        this( 1 );
    }//public Kompresor()


    /**
     * Konstruktor pro objekty tridy Kompresor se zadanou silou nafukovani.
     *
     * @param sila  sila nafukovani vytvareneho kompresoru
     */
    public Kompresor( int sila )
    {
        this.sila = sila;
    }//public Kompresor()


//== PRISTUPOVE METODY ATRIBUTU INSTANCI =======================================
//== OSTATNI METODY INSTANCI ===================================================

    /**
     * Metoda zvetsi instanci, na niz ukazuje parametr,
     * o petinasobek sily sveho kompresoru.
     *
     * @objekt  zvetsovany objekt
     */
    public void prifoukni(INafukovaci o)
    {   //Prozatím ještě neumíme zapsat cyklus, tak zadáme 5 krát stejný příkaz
        int s = o.getSirka();
        int v = o.getVyska();
        o.setRozmer(s+1*sila, v+1*sila);  platno.cekej(50);
        o.setRozmer(s+2*sila, v+2*sila);  platno.cekej(50);
        o.setRozmer(s+3*sila, v+3*sila);  platno.cekej(50);
        o.setRozmer(s+4*sila, v+4*sila);  platno.cekej(50);
        o.setRozmer(s+5*sila, v+5*sila);  platno.cekej(50);
    }//public void prifoukni(INafukovaci o)


    /**
     * Metoda zmensi instanci, na niz ukazuje parametr,
     * o petinasobek sily sveho kompresoru.
     *
     * @objekt  zmensovany objekt
     */
    public void ufoukni(INafukovaci o)
    {   //Prozatím ještě neumíme zapsat cyklus, tak zadáme 5 krát stejný příkaz
        int s = o.getSirka();
        int v = o.getVyska();
        o.setRozmer(s-1*sila, v-1*sila);  platno.cekej(50);
        o.setRozmer(s-2*sila, v-2*sila);  platno.cekej(50);
        o.setRozmer(s-3*sila, v-3*sila);  platno.cekej(50);
        o.setRozmer(s-4*sila, v-4*sila);  platno.cekej(50);
        o.setRozmer(s-5*sila, v-5*sila);  platno.cekej(50);
    }//public void ufoukni(INafukovaci o)


//== SOUKROME A POMOCNE METODY =================================================
//== VNORENE A VNITRNI TRIDY ===================================================

}//public class Kompresor