summaryrefslogtreecommitdiffstats
path: root/src/demos/nurbs/surfaceapp/SpinnerListener.java
blob: 46a9d828429b98f18777a4afd015b244cf291c77 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package demos.nurbs.surfaceapp;

import javax.swing.JSpinner;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

/**
 * Listener reacting to event occuring on components editing coords end weight of selected control point
 * Listener zpracovávající události na komponentách editujících souřadnice a váhu vybraného řídícícho bodu
 * @author Tomáš Hráský
 *
 */
public class SpinnerListener implements ChangeListener {

  /**
   * Parent window
   * Okno aplikace, k němuž listener patří
   */
  private SurfaceApp appWindow;

  /**
   * Creates new instance with link to parent window
   * Vytvoří instanci objektu s odkazem na rodičovské okno
   * @param app parent app window
   */
  public SpinnerListener(SurfaceApp app) {
    this.appWindow=app;
  }

  /* (non-Javadoc)
   * @see javax.swing.event.ChangeListener#stateChanged(javax.swing.event.ChangeEvent)
   */
  public void stateChanged(ChangeEvent e) {
    JSpinner src=(JSpinner) e.getSource();
    //		System.out.println(src.getValue().getClass().toString());
    float val = 0;
    if(src.getValue() instanceof Double) val=((Double) src.getValue()).floatValue();
    if(src.getValue() instanceof Float) val=((Float) src.getValue()).floatValue();
		
    if(src.getName()==SurfaceApp.X_SPINNER_NAME)
      Surface.getInstance().setActiveX(val);
    if(src.getName()==SurfaceApp.Y_SPINNER_NAME)
      Surface.getInstance().setActiveY(val);
    if(src.getName()==SurfaceApp.Z_SPINNER_NAME)
      Surface.getInstance().setActiveZ(val);
    if(src.getName()==SurfaceApp.W_SPINNER_NAME)
      Surface.getInstance().setActiveW(val);
		
		
    appWindow.updateGLCanvas();
  }
}