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

Last change on this file since 538 was 182, checked in by gav, 15 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.