Project

General

Profile

« Previous | Next » 

Revision e9a2a0fa

Added by Patrick Plitzner over 9 years ago

  • added toggle button to simple media user interface (#3339)

View differences:

.gitattributes
1314 1314
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/InitNomenclaturalCodePrefDialog.java -text
1315 1315
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguagePreferencePage.java -text
1316 1316
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/MatchingPreferences.java -text
1317
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/MediaPreferences.java -text
1317 1318
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/MobotOpenUrlPreferences.java -text
1318 1319
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NomenclaturalCodePreferences.java -text
1319 1320
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencePropertyTester.java -text
eu.etaxonomy.taxeditor.store/plugin.xml
181 181
            id="eu.etaxonomy.taxeditor.preference.SpecimenOrObservationPreferences"
182 182
            name="Specimens and FieldUnits">
183 183
      </page>
184
      <page
185
            category="eu.etaxonomy.taxeditor.preferences.general"
186
            class="eu.etaxonomy.taxeditor.preference.MediaPreferences"
187
            id="eu.etaxonomy.taxeditor.preference.MediaPreferences"
188
            name="Media">
189
      </page>
184 190
      <page
185 191
            category="eu.etaxonomy.taxeditor.preferences.general"
186 192
            class="eu.etaxonomy.taxeditor.preference.ChecklistEditorGeneralPreference"
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/IPreferenceKeys.java
126 126

  
127 127
    public static final String DISTRIBUTION_AREA_OCCURENCE_STATUS_GRAYED = "eu.etaxonomy.taxeditor.checklist.distributionAreaStatusGrayed";
128 128

  
129
    public static final String SHOW_ADVANCED_MEDIA_SECTION = "eu.etaxonomy.taxeditor.media.showAdvancedMedia";
130

  
129 131
    // TODO RL
130 132
    public static final String IS_RL = "eu.etaxonomy.taxeditor.isRL";
131 133

  
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/MediaPreferences.java
1
// $Id$
2
/**
3
* Copyright (C) 2014 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
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.
9
*/
10
package eu.etaxonomy.taxeditor.preference;
11

  
12
import org.eclipse.jface.preference.BooleanFieldEditor;
13
import org.eclipse.jface.preference.FieldEditorPreferencePage;
14
import org.eclipse.ui.IWorkbench;
15
import org.eclipse.ui.IWorkbenchPreferencePage;
16

  
17
/**
18
 * @author pplitzner
19
 * @date 13.02.2014
20
 *
21
 */
22
public class MediaPreferences extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
23

  
24
    /* (non-Javadoc)
25
     * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
26
     */
27
    @Override
28
    public void init(IWorkbench workbench) {
29
        setPreferenceStore(PreferencesUtil.getPreferenceStore());
30
    }
31

  
32
    /* (non-Javadoc)
33
     * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
34
     */
35
    @Override
36
    protected void createFieldEditors() {
37
        addField(new BooleanFieldEditor(IPreferenceKeys.SHOW_ADVANCED_MEDIA_SECTION,
38
                "Show Advanced Media Section",
39
                getFieldEditorParent()));
40

  
41
    }
42

  
43

  
44
}
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TextWithLabelElement.java
232 232
    public void setTextLimit(int limit) {
233 233
        text.setTextLimit(limit);
234 234
    }
235

  
236
    public void setVisible(boolean visible){
237
        text.setVisible(visible);
238
        label.setVisible(visible);
239
    }
235 240
}
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaElement.java
3 3
 */
4 4
package eu.etaxonomy.taxeditor.ui.section.media;
5 5

  
6
import java.net.URI;
7 6
import java.net.URISyntaxException;
8 7
import java.util.List;
9 8
import java.util.Set;
10 9

  
10
import org.eclipse.swt.SWT;
11
import org.eclipse.swt.events.SelectionAdapter;
12
import org.eclipse.swt.events.SelectionEvent;
11 13
import org.eclipse.swt.events.SelectionListener;
14
import org.eclipse.swt.layout.FormAttachment;
15
import org.eclipse.swt.layout.FormData;
16
import org.eclipse.swt.layout.FormLayout;
17
import org.eclipse.swt.widgets.Button;
18
import org.eclipse.swt.widgets.Composite;
19
import org.eclipse.swt.widgets.Display;
20
import org.eclipse.swt.widgets.Shell;
12 21

  
13 22
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
14 23
import eu.etaxonomy.cdm.model.agent.AgentBase;
......
17 26
import eu.etaxonomy.cdm.model.media.Media;
18 27
import eu.etaxonomy.cdm.model.media.MediaRepresentation;
19 28
import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
29
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
30
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
20 31
import eu.etaxonomy.taxeditor.preference.Resources;
21 32
import eu.etaxonomy.taxeditor.store.CdmStore;
22 33
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
23 34
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
35
import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
24 36
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
25 37
import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
38
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
26 39
import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;
27 40
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
28 41
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
......
39 52
 */
40 53
public class MediaElement extends AbstractEntityCollectionElement<Media> {
41 54

  
42
//    private MediaRepresentationSection section_mediaRepresentation;
43 55
    private EntitySelectionElement<AgentBase> selection_artist;
44 56
    private LanguageStringWithLabelElement text_description;
45 57
    private LanguageStringWithLabelElement text_title;
46 58
    private UriWithLabelElement textUri;
59
    private MediaRepresentationSection section_mediaRepresentation;
60

  
61
    private CheckboxElement checkBoxShowAdvancedView;
62
    private MediaRepresentationPart singleMediaRepresentationPart;
63
    private boolean isAdvancedMediaView;
64
    private ICdmFormElement parentFormElement;
65
    private int style;
47 66

  
48 67
    /**
49 68
     * <p>
......
79 98
    /** {@inheritDoc} */
80 99
    @Override
81 100
    public void createControls(ICdmFormElement element, int style) {
101
        this.parentFormElement = element;
102
        this.style = style;
82 103
        text_title = formFactory.createLanguageStringWithLabelElement(element, "Title", null, style);
83 104
        selection_artist = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), element, "Artist", null, EntitySelectionElement.ALL, style);
84 105
        text_description = formFactory.createLanguageStringWithLabelElement(element, "Description", null, 100, style);
85
        textUri = formFactory.createUriWithLabelElement(element, "Media URI", null, style);
86
        //        section_mediaRepresentation = formFactory.createMediaRepresentationSection(getConversationHolder(), element, style);
87
        //        section_mediaRepresentation.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
88
    }
89

  
90
    private MediaRepresentationPart getFirstMediaRepresentationPart() {
91
        Set<MediaRepresentation> representations = entity.getRepresentations();
92
        if(representations.size()==1){
93
            List<MediaRepresentationPart> parts = representations.iterator().next().getParts();
94
            if(parts.size()==1){
95
                return parts.iterator().next();
96
            }
97
        }
98
        return null;
106
        checkBoxShowAdvancedView = formFactory.createCheckbox(element, "Show Advance Media View", false, style);
107
        textUri = formFactory.createUriWithLabelElement(parentFormElement, "Media URI", null, style);
108
        section_mediaRepresentation = formFactory.createMediaRepresentationSection(getConversationHolder(), parentFormElement, style);
109
        section_mediaRepresentation.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
99 110
    }
100 111

  
101 112
    /** {@inheritDoc} */
102 113
    @Override
103 114
    public void setEntity(Media element) {
104 115
        this.entity = element;
105
//        section_mediaRepresentation.setEntity(element);
116
        initRepresentationMode();
117
        showAdvancedView(isAdvancedMediaView);
118

  
106 119
        selection_artist.setEntity((TeamOrPersonBase) HibernateProxyHelper
107 120
                .deproxy(element.getArtist()));
108 121

  
......
118 131

  
119 132
        text_title.setLanguageString(title);
120 133

  
121
        MediaRepresentationPart firstMediaRepresentationPart = getFirstMediaRepresentationPart();
122
        if(firstMediaRepresentationPart!=null){
123
            textUri.setUri(firstMediaRepresentationPart.getUri());
124
        }
134

  
125 135
    }
126 136

  
127 137
    /*
......
144 154
                ((AbstractCdmDetailSection) getParentElement()).updateTitle();
145 155
            }
146 156
        }
147
        else if (eventSource == textUri){
157
        else if(eventSource==textUri){
148 158
            textUri.setBackground(getPersistentBackground());
149
            MediaRepresentationPart firstMediaRepresentationPart = getFirstMediaRepresentationPart();
150
            URI uri;
151 159
            try {
152
                uri = textUri.getUri();
153
                if(firstMediaRepresentationPart!=null){
154
                    firstMediaRepresentationPart.setUri(uri);
160
                singleMediaRepresentationPart.setUri(textUri.getUri());
161
            } catch (URISyntaxException e) {
162
                textUri.setBackground(getColor(Resources.COLOR_PARSE_ERROR));
163
            }
164
        }
165
        else if(eventSource==checkBoxShowAdvancedView){
166
            showAdvancedView(checkBoxShowAdvancedView.getSelection());
167
        }
168
    }
169

  
170
    /**
171
     * @param showAdvancedView
172
     */
173
    private void showAdvancedView(boolean showAdvancedView) {
174
//        removeElements();
175
//        text_title = formFactory.createLanguageStringWithLabelElement(parentFormElement, "Title", null, style);
176
//        selection_artist = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), parentFormElement, "Artist", null, EntitySelectionElement.ALL, style);
177
//        text_description = formFactory.createLanguageStringWithLabelElement(parentFormElement, "Description", null, 100, style);
178
//        checkBoxShowAdvancedView = formFactory.createCheckbox(parentFormElement, "Show Advance Media View", false, style);
179
        if(showAdvancedView){
180
//            removeElement(textUri);
181
//            removeControl(textUri.getMainControl());
182
            section_mediaRepresentation.setVisible(true);
183
            textUri.setVisible(false);
184
            section_mediaRepresentation.setEntity(getEntity());
185
        }
186
        else{
187
//            removeElement(section_mediaRepresentation);
188
//            removeControl(section_mediaRepresentation);
189
            section_mediaRepresentation.setVisible(false);
190
            textUri.setVisible(true);
191
            textUri.setUri(getMediaRepresentationPart(getEntity()).getUri());
192
        }
193
//        parentFormElement.getLayoutComposite().layout();
194
//        getParentElement().getLayoutComposite().layout();
195
    }
196

  
197
    private void initRepresentationMode(){
198
        if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_ADVANCED_MEDIA_SECTION)){
199
            isAdvancedMediaView = true;
200
            return;
201
        }
202
        Set<MediaRepresentation> representations = entity.getRepresentations();
203
        if(representations.size()>1){
204
            isAdvancedMediaView = true;
205
            return;
206
        }
207
        if(representations.size()==1){
208
            List<MediaRepresentationPart> parts = representations.iterator().next().getParts();
209
            if(parts.size()>1){
210
                isAdvancedMediaView = true;
211
                return;
212
            }
213
        }
214
        isAdvancedMediaView = false;
215
    }
216

  
217
    private MediaRepresentationPart getMediaRepresentationPart(Media media) {
218
        if(singleMediaRepresentationPart==null){
219
            Set<MediaRepresentation> representations = media.getRepresentations();
220
            if(representations!=null && representations.size()>0){
221
                MediaRepresentation mediaRepresentation = representations.iterator().next();
222
                List<MediaRepresentationPart> parts = mediaRepresentation.getParts();
223
                if(parts!=null && parts.size()>0){
224
                    singleMediaRepresentationPart = parts.iterator().next();
155 225
                }
156 226
                else{
157
                    Set<MediaRepresentation> representations = getEntity().getRepresentations();
158
                    if(representations.size()>=1){
159
                        representations.iterator().next().addRepresentationPart(MediaRepresentationPart.NewInstance(uri, null));
160
                    }
161
                    else{
162
                        MediaRepresentation mediaRepresentation = MediaRepresentation.NewInstance();
163
                        mediaRepresentation.addRepresentationPart(MediaRepresentationPart.NewInstance(uri, null));
164
                        getEntity().addRepresentation(mediaRepresentation);
165
                    }
227
                    singleMediaRepresentationPart = MediaRepresentationPart.NewInstance(null, null);
228
                    mediaRepresentation.addRepresentationPart(singleMediaRepresentationPart);
166 229
                }
167
            } catch (URISyntaxException e) {
168
                textUri.setBackground(getColor(Resources.COLOR_PARSE_ERROR));
230
            }
231
            else{
232
                singleMediaRepresentationPart = MediaRepresentationPart.NewInstance(null, null);
233

  
234
                MediaRepresentation mediaRepresentation = MediaRepresentation.NewInstance();
235
                mediaRepresentation.addRepresentationPart(singleMediaRepresentationPart);
236
                media.addRepresentation(mediaRepresentation);
169 237
            }
170 238
        }
239
        return singleMediaRepresentationPart;
171 240
    }
241

  
172 242
}

Also available in: Unified diff