source: trunk/grails-app/domain/Image.groovy @ 182

Last change on this file since 182 was 182, checked in by gav, 9 years ago

Add support for inventory item Pictures and Images.
Add new PersonService, refactor CreateDataService and TaskService to suite.

File size: 1.2 KB
Line 
1class Image implements Comparable {
2
3    Picture picture
4    Integer size
5    byte[] data
6    String contentType
7    Integer width
8    Integer height
9    Date dateCreated = new Date()
10    Date lastUpdated = new Date()
11
12    static belongsTo = [ Picture ]
13
14    static mapping = {
15        picture index: 'images_index', unique: true
16        size index: 'images_index', unique: true
17        data type: 'binary'
18    }
19
20    static constraints = {
21        data(maxSize: MAX_SIZE)
22    }
23
24    static final Integer MAX_SIZE = 10 * 1024 * 1024
25
26    static final Integer Original = 1
27    static final Integer Large = 2
28    static final Integer Medium = 3
29    static final Integer Small = 4
30
31    static final Integer[] Widths =  [ 0, 0, 500, 250, 100 ]
32    static final Integer[] Heights = [ 0, 0, 500, 250, 100 ]
33
34    static final String[] Names = [ '', 'Original', 'Large', 'Medium', 'Small' ]
35
36    int compareTo(obj) {
37        size.compareTo(obj.size)
38    }
39
40    String filename() {
41        Image.filename(picture.id, size)
42    }
43
44    static String filename(long id, int size) {
45        if (size == Original) {
46            return "${id}-${Names[size]}.jpg"
47        }
48        else {
49            return "${id}-${Names[size]}.png"
50        }
51    }
52}
Note: See TracBrowser for help on using the repository browser.