1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package com.cosylab.gui.components.wheelswitch;
21
22 import java.awt.Graphics;
23 import java.awt.Graphics2D;
24 import java.awt.image.BufferedImage;
25
26
27
28
29
30
31
32 public class ValueDigit extends Digit {
33
34 private static final long serialVersionUID = 1L;
35 public static int INCREASE_VALUE = -1;
36 public static int DECREASE_VALUE = -2;
37
38 private int value;
39 private int oldValue;
40
41
42
43
44
45
46 public ValueDigit(int newValue) throws IllegalArgumentException {
47 super();
48 if (newValue>=0 && newValue<=9) {
49 value=newValue;
50 setText(String.valueOf(value));
51 } else throw new IllegalArgumentException();
52 }
53
54
55
56
57
58
59
60 public void setValue(int newValue) throws IllegalArgumentException {
61 if (newValue>=0 && newValue<=9) {
62 oldValue=value;
63 value=newValue;
64 } else if (newValue==INCREASE_VALUE) {
65 if (value==9) value=0;
66 else value++;
67 } else if (newValue==DECREASE_VALUE) {
68 if (value==0) value=9;
69 else value--;
70 } else throw new IllegalArgumentException();
71 setText(String.valueOf(value));
72 }
73
74
75
76
77
78
79 public int getValue() {
80 return value;
81 }
82
83
84
85
86
87
88 protected void paintDigitTransition(BufferedImage oldImage,BufferedImage newImage, Graphics g, float parameter) {
89 Graphics2D g2D = (Graphics2D)g;
90 if ((value>oldValue && (value!=9 || oldValue!=0)) || (value==0 && oldValue==9)) {
91 g2D.translate(0,(int)(getHeight()*(parameter-1.)));
92 if (newImage!=null) g2D.drawImage(newImage,null,0,0);
93 g2D.translate(0,getHeight());
94 if (oldImage!=null) g2D.drawImage(oldImage,null,0,0);
95 g2D.translate(0,-(int)(getHeight()*(parameter-1.))-getHeight());
96 } else {
97 g2D.translate(0,(int)(getHeight()*(1.-parameter)));
98 if (newImage!=null) g2D.drawImage(newImage,null,0,0);
99 g2D.translate(0,-getHeight());
100 if (oldImage!=null) g2D.drawImage(oldImage,null,0,0);
101 g2D.translate(0,getHeight()-(int)(getHeight()*(1.-parameter)));
102 }
103 }
104
105
106 }