1   package fi.jyu.mit.graphics;
2   
3   import java.awt.Container;
4   import java.awt.event.ActionListener;
5   
6   import javax.swing.*;
7   
8   /**
9    * Painike johon voi liittää muunnosmatriisin
10   * @author Markus Kivioja
11   *
12   */
13  public class TransformButton extends JButton {
14  
15      private static final long serialVersionUID = 1L;
16      
17      private Matrix tM;
18      
19      /**
20       * Luo uuden painikkeen
21       * @param text painikkeen teksti
22       */
23      public TransformButton(String text) {
24          super(text);
25      }
26      
27      /**
28       * Asettaa muunnosmatriisin tähän painikkeeseen
29       * @param pM asetettava muunnosmatriisi
30       */
31      public void setTransform(Matrix pM) {
32          this.tM = pM;
33      }
34      
35      /**
36       * Antaa tämän painikkeen muunnosmatriisin
37       * @return tämän painikkeen muunnosmatriisi
38       */
39      public Matrix getTransform() {
40          return this.tM;
41      }
42      
43      /**
44       * Metodi helpottamaan komponentin luontia
45       * @param pM asetettava muunnosmatriisi
46       * @param parent painikkeen vanhempi
47       * @param constraints rajoitteet nappulalle
48       * @param listener painikkeen tapahtumakuuntelija
49       * @return this object
50       */
51      public TransformButton set(Matrix pM,Container parent,Object constraints,ActionListener listener) {
52          setTransform(pM);
53          if ( parent != null ) parent.add(this,constraints);
54          addActionListener(listener);
55          return this;
56      }
57      
58  }
59