3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
11 package eu
.etaxonomy
.taxeditor
.model
;
13 import java
.util
.HashSet
;
14 import java
.util
.List
;
17 import eu
.etaxonomy
.cdm
.model
.description
.DescriptionBase
;
18 import eu
.etaxonomy
.cdm
.model
.description
.DescriptionElementBase
;
19 import eu
.etaxonomy
.cdm
.model
.description
.Feature
;
20 import eu
.etaxonomy
.cdm
.model
.description
.TaxonDescription
;
21 import eu
.etaxonomy
.cdm
.model
.description
.TextData
;
22 import eu
.etaxonomy
.cdm
.model
.media
.ImageFile
;
23 import eu
.etaxonomy
.cdm
.model
.media
.Media
;
24 import eu
.etaxonomy
.cdm
.model
.media
.MediaRepresentation
;
25 import eu
.etaxonomy
.cdm
.model
.media
.MediaRepresentationPart
;
26 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
33 public class ImagesUtil
{
35 public static Set
<ImageFile
> getImages(TaxonDescription description
){
36 Set
<ImageFile
> images
= new HashSet
<ImageFile
>();
38 for (DescriptionElementBase element
: description
.getElements()){
40 Feature feature
= element
.getFeature();
42 if(feature
.equals(Feature
.IMAGE())){
43 List
<Media
> medias
= element
.getMedia();
45 for(Media media
: medias
){
46 Set
<MediaRepresentation
> representations
= media
.getRepresentations();
48 for(MediaRepresentation representation
: representations
){
49 List
<MediaRepresentationPart
> parts
= representation
.getParts();
51 for (MediaRepresentationPart part
: parts
){
52 if(part
instanceof ImageFile
){
53 images
.add((ImageFile
) part
);
68 public static void addTaxonImage(Taxon taxon
, DescriptionBase
<?
> imageGallery
, ImageFile imageFile
) {
70 DescriptionElementBase descriptionElement
= TextData
.NewInstance(Feature
.IMAGE());
72 Media media
= Media
.NewInstance();
73 MediaRepresentation representation
= MediaRepresentation
.NewInstance();
75 representation
.addRepresentationPart(imageFile
);
77 media
.addRepresentation(representation
);
79 descriptionElement
.addMedia(media
);
81 imageGallery
.addElement(descriptionElement
);
89 public static void removeTaxonImage(Taxon taxon
, DescriptionBase
<?
> imageGallery
, ImageFile imageFile
) {
90 Set
<DescriptionElementBase
> elementsToRemove
= new HashSet
<DescriptionElementBase
>();
92 Set
<DescriptionElementBase
> images
= imageGallery
.getElements();
94 for(DescriptionElementBase descriptionElement
: images
){
95 for(Media media
: descriptionElement
.getMedia()){
96 for(MediaRepresentation representation
: media
.getRepresentations()){
97 for(MediaRepresentationPart part
: representation
.getParts()){
98 if(part
.equals(imageFile
)){
99 elementsToRemove
.add(descriptionElement
);
106 for(DescriptionElementBase descriptionElement
: elementsToRemove
){
107 imageGallery
.removeElement(descriptionElement
);