Project

General

Profile

Download (4.5 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
 *
3
 */
4
package eu.etaxonomy.taxeditor.ui.section.media;
5

    
6
import org.eclipse.jface.action.IAction;
7
import org.eclipse.swt.events.SelectionAdapter;
8
import org.eclipse.swt.events.SelectionEvent;
9
import org.eclipse.swt.events.SelectionListener;
10
import org.eclipse.swt.widgets.Button;
11

    
12
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
13
import eu.etaxonomy.cdm.model.agent.AgentBase;
14
import eu.etaxonomy.cdm.model.common.LanguageString;
15
import eu.etaxonomy.cdm.model.media.Media;
16
import eu.etaxonomy.taxeditor.model.AbstractUtility;
17
import eu.etaxonomy.taxeditor.model.ImageResources;
18
import eu.etaxonomy.taxeditor.store.CdmStore;
19
import eu.etaxonomy.taxeditor.ui.dialog.selection.MediaSelectionDialog;
20
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
21
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
22
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
23
import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
24
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
25
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
26
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
27

    
28
/**
29
 * @author n.hoffmann
30
 * @created Nov 17, 2009
31
 * @version 1.0
32
 */
33
public class MediaMetaElement extends AbstractEntityCollectionElement<Media> implements ITogglableMediaElement{
34

    
35
    private EntitySelectionElement<AgentBase> selection_artist;
36
    private LanguageStringWithLabelElement text_description;
37
    private LanguageStringWithLabelElement text_title;
38
    private MediaDetailElement mediaDetailElement;
39

    
40
    public MediaMetaElement(CdmFormFactory cdmFormFactory,
41
            AbstractFormSection<?> formElement, Media element,
42
            SelectionListener removeListener, boolean isChoosableEntity, int style) {
43
        super(cdmFormFactory, formElement, element, removeListener, isChoosableEntity, null, style);
44
    }
45

    
46
    /** {@inheritDoc} */
47
    @Override
48
    public void createControls(ICdmFormElement element, int style) {
49
        final IAction switchAction = MediaViewSwitch.createSwitch(MediaMetaElement.this);
50
        Button btnToggleAdvancedMediaView = new Button(getBox(), style);
51
        btnToggleAdvancedMediaView.setToolTipText(switchAction.getText());
52
        btnToggleAdvancedMediaView.setImage(ImageResources.getImage(ImageResources.SWITCH_VIEW_TYPE));
53
        btnToggleAdvancedMediaView.addSelectionListener(new SelectionAdapter() {
54
            @Override
55
            public void widgetSelected(SelectionEvent e) {
56
                switchAction.run();
57
            }
58
        });
59
        text_title = formFactory.createLanguageStringWithLabelElement(element, "Title", null, style);
60
        selection_artist = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), element, "Artist", null, EntitySelectionElement.ALL, style);
61
        text_description = formFactory.createLanguageStringWithLabelElement(element, "Description", null, 100, true, style);
62
        mediaDetailElement = formFactory.createMediaDetailElement(element);
63
    }
64

    
65
    /** {@inheritDoc} */
66
    @Override
67
    public void setEntity(Media element) {
68
        this.entity = element;
69
        mediaDetailElement.setEntity(element);
70

    
71
        selection_artist.setEntity((AgentBase<?>) HibernateProxyHelper
72
                .deproxy(element.getArtist()));
73

    
74
        text_description.setLanguageString(element.getDescription(CdmStore
75
                .getDefaultLanguage()));
76

    
77
        LanguageString title = element.getTitle(CdmStore.getDefaultLanguage());
78

    
79
        if (title == null) {
80
            title = LanguageString.NewInstance("", CdmStore.getDefaultLanguage());
81
        }
82

    
83
        text_title.setLanguageString(title);
84
    }
85

    
86
    @Override
87
    protected Media selectFromDialog() {
88
        return MediaSelectionDialog.select(AbstractUtility.getShell(), null, null);
89
    }
90

    
91
    @Override
92
    public void toggleAdvancedMediaView(){
93
        mediaDetailElement.toggleAdvancedMediaView();
94
    }
95

    
96
    /** {@inheritDoc} */
97
    @Override
98
    public void handleEvent(Object eventSource) {
99
        if (eventSource == selection_artist) {
100
            getEntity().setArtist(selection_artist.getSelection());
101
        } else if (eventSource == text_description) {
102
            getEntity().addDescription(text_description.getLanguageString());
103
        } else if (eventSource == text_title) {
104
            getEntity().putTitle(text_title.getLanguageString());
105
            if (getParentElement() instanceof AbstractCdmDetailSection) {
106
                ((AbstractCdmDetailSection<?>) getParentElement()).updateTitle();
107
            }
108
        }
109
    }
110

    
111
}
(4-4/10)