Revision 2d38478f
Added by Katja Luther about 4 years ago
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/search/facet/term/TermSearchResultComposite.java | ||
---|---|---|
39 | 39 |
import eu.etaxonomy.cdm.common.UriUtils; |
40 | 40 |
import eu.etaxonomy.cdm.model.media.Media; |
41 | 41 |
import eu.etaxonomy.cdm.model.media.MediaUtils; |
42 |
import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto; |
|
42 | 43 |
import eu.etaxonomy.cdm.persistence.dto.TermDto; |
43 | 44 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
44 | 45 |
import eu.etaxonomy.taxeditor.view.search.facet.CheckBoxSearchResultComposite; |
... | ... | |
48 | 49 |
* @since Jan 23, 2019 |
49 | 50 |
* |
50 | 51 |
*/ |
51 |
public class TermSearchResultComposite extends CheckBoxSearchResultComposite<TermDto, TermSearchResult> { |
|
52 |
public class TermSearchResultComposite extends CheckBoxSearchResultComposite<AbstractTermDto, TermSearchResult> {
|
|
52 | 53 |
|
53 | 54 |
private Collection<Image> imageBuffer; |
54 | 55 |
|
... | ... | |
103 | 104 |
lblDescription.setText(representation_L10n_text); |
104 | 105 |
} |
105 | 106 |
// media |
106 |
Collection<UUID> mediaUuids = result.getContent().getMedia(); |
|
107 |
if(mediaUuids!=null){ |
|
108 |
if(imageBuffer==null){ |
|
109 |
imageBuffer = new HashSet<>(); |
|
110 |
} |
|
111 |
new Job("Load term media") { |
|
112 |
@Override |
|
113 |
protected IStatus run(IProgressMonitor monitor) { |
|
114 |
Collection<URI> mediaUris = new HashSet<>(); |
|
115 |
for (UUID uuid : mediaUuids) { |
|
116 |
Media media = CdmStore.getService(IMediaService.class).load(uuid); |
|
117 |
if(media==null){ |
|
118 |
continue; |
|
119 |
} |
|
120 |
URI uri = MediaUtils.getFirstMediaRepresentationPart(media).getUri(); |
|
121 |
mediaUris.add(uri); |
|
122 |
} |
|
123 |
TermSearchResultComposite.this.getDisplay().asyncExec(()-> |
|
124 |
{ |
|
125 |
for (URI uri : mediaUris) { |
|
126 |
try { |
|
127 |
InputStream imageStream = UriUtils.getInputStream(uri); |
|
128 |
imageBuffer.add(new Image(Display.getCurrent(), imageStream)); |
|
129 |
} catch (Exception e1) { |
|
130 |
// ignore |
|
107 |
if (result.getContent() instanceof TermDto){ |
|
108 |
Collection<UUID> mediaUuids = ((TermDto)result.getContent()).getMedia(); |
|
109 |
if(mediaUuids!=null){ |
|
110 |
if(imageBuffer==null){ |
|
111 |
imageBuffer = new HashSet<>(); |
|
112 |
} |
|
113 |
new Job("Load term media") { |
|
114 |
@Override |
|
115 |
protected IStatus run(IProgressMonitor monitor) { |
|
116 |
Collection<URI> mediaUris = new HashSet<>(); |
|
117 |
for (UUID uuid : mediaUuids) { |
|
118 |
Media media = CdmStore.getService(IMediaService.class).load(uuid); |
|
119 |
if(media==null){ |
|
120 |
continue; |
|
131 | 121 |
} |
122 |
URI uri = MediaUtils.getFirstMediaRepresentationPart(media).getUri(); |
|
123 |
mediaUris.add(uri); |
|
132 | 124 |
} |
133 |
Composite mediaContainer = new Composite(content, SWT.NONE); |
|
134 |
mediaContainer.setLayout(new FillLayout()); |
|
135 |
for (Image image : imageBuffer) { |
|
136 |
Composite composite = new Composite(mediaContainer, SWT.NONE); |
|
137 |
composite.addPaintListener(new PaintListener() { |
|
138 |
@Override |
|
139 |
public void paintControl(PaintEvent e) { |
|
140 |
if(image!=null){ |
|
141 |
e.gc.setAntialias(SWT.ON); |
|
142 |
e.gc.setInterpolation(SWT.HIGH); |
|
143 |
e.gc.drawImage(image, 0, 0,image.getBounds().width, image.getBounds().height,0, 0, 40, 40); |
|
144 |
e.gc.dispose(); |
|
145 |
} |
|
125 |
TermSearchResultComposite.this.getDisplay().asyncExec(()-> |
|
126 |
{ |
|
127 |
for (URI uri : mediaUris) { |
|
128 |
try { |
|
129 |
InputStream imageStream = UriUtils.getInputStream(uri); |
|
130 |
imageBuffer.add(new Image(Display.getCurrent(), imageStream)); |
|
131 |
} catch (Exception e1) { |
|
132 |
// ignore |
|
146 | 133 |
} |
147 |
}); |
|
148 |
} |
|
149 |
|
|
150 |
TermSearchResultComposite.this.getParent().layout(); |
|
151 |
}); |
|
152 |
return Status.OK_STATUS; |
|
153 |
} |
|
154 |
}.schedule(); |
|
134 |
} |
|
135 |
Composite mediaContainer = new Composite(content, SWT.NONE); |
|
136 |
mediaContainer.setLayout(new FillLayout()); |
|
137 |
for (Image image : imageBuffer) { |
|
138 |
Composite composite = new Composite(mediaContainer, SWT.NONE); |
|
139 |
composite.addPaintListener(new PaintListener() { |
|
140 |
@Override |
|
141 |
public void paintControl(PaintEvent e) { |
|
142 |
if(image!=null){ |
|
143 |
e.gc.setAntialias(SWT.ON); |
|
144 |
e.gc.setInterpolation(SWT.HIGH); |
|
145 |
e.gc.drawImage(image, 0, 0,image.getBounds().width, image.getBounds().height,0, 0, 40, 40); |
|
146 |
e.gc.dispose(); |
|
147 |
} |
|
148 |
} |
|
149 |
}); |
|
150 |
} |
|
155 | 151 |
|
152 |
TermSearchResultComposite.this.getParent().layout(); |
|
153 |
}); |
|
154 |
return Status.OK_STATUS; |
|
155 |
} |
|
156 |
}.schedule(); |
|
157 |
} |
|
156 | 158 |
} |
157 | 159 |
return content; |
158 | 160 |
} |
Also available in: Unified diff
ref #8044: search for vocs and do not show selected term