Project

General

Profile

« Previous | Next » 

Revision 2d38478f

Added by Katja Luther about 4 years ago

ref #8044: search for vocs and do not show selected term

View differences:

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