Project

General

Profile

« Previous | Next » 

Revision ad31468a

Added by Katja Luther over 5 years ago

ref #7706: add warning if media is referenced by more than one object

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaDetailElement.java
63 63

  
64 64
    @Override
65 65
    protected void createControls(ICdmFormElement formElement, Media entity, int style) {
66

  
66 67
        this.parentFormElement = formElement;
67 68
        this.style = style;
69

  
68 70
    }
69 71

  
70 72
    @Override
......
149 151
    }
150 152

  
151 153
    private void showAdvancedView() {
154

  
152 155
        if(isAdvancedMediaView){
153 156
            if(textUri!=null){
154 157
                removeElementsAndControls(textUri);
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaMetaElement.java
6 6
import java.util.Map;
7 7

  
8 8
import org.eclipse.jface.action.IAction;
9
import org.eclipse.swt.SWT;
9 10
import org.eclipse.swt.events.SelectionAdapter;
10 11
import org.eclipse.swt.events.SelectionEvent;
11 12
import org.eclipse.swt.events.SelectionListener;
12 13
import org.eclipse.swt.widgets.Button;
14
import org.eclipse.swt.widgets.Display;
13 15

  
14 16
import eu.etaxonomy.cdm.common.CdmUtils;
15 17
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
16 18
import eu.etaxonomy.cdm.model.agent.AgentBase;
19
import eu.etaxonomy.cdm.model.common.CdmBase;
17 20
import eu.etaxonomy.cdm.model.common.Language;
18 21
import eu.etaxonomy.cdm.model.common.LanguageString;
19 22
import eu.etaxonomy.cdm.model.common.TimePeriod;
......
26 29
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
27 30
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
28 31
import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
32
import eu.etaxonomy.taxeditor.ui.element.LabelElement;
29 33
import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
34
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
30 35
import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
31 36
import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
32 37
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
......
46 51
    private MediaDetailElement mediaDetailElement;
47 52
    private TimePeriodElement mediaCreated;
48 53
    private SelectionArbitrator selectionArbitrator;
54
    private LabelElement warnForReferencedObjects;
49 55

  
50 56
    public MediaMetaElement(CdmFormFactory cdmFormFactory,
51 57
            AbstractFormSection<?> formElement, Media element,
......
72 78
                switchAction.run();
73 79
            }
74 80
        });
81
        setWarnForReferencingObjects(element, 2);
75 82
        text_title = formFactory.createLanguageStringWithLabelElement(element, "Title", null, style);
76 83
        selection_artist = formFactory.createSelectionElement(AgentBase.class, //getConversationHolder(),
77 84
                element, "Artist", null, EntitySelectionElement.ALL, style);
......
153 160
        return selectionArbitrator;
154 161
    }
155 162

  
163
    public void setWarnForReferencedObjects(LabelElement warnForReferencedObjects) {
164
        this.warnForReferencedObjects = warnForReferencedObjects;
165
    }
166

  
167
    public void setWarnForReferencingObjects(ICdmFormElement formElement, int defaultReferencingObjects){
168
        if (getEntity() instanceof CdmBase){
169
            CdmBase cdmBase = getEntity();
170
            if (cdmBase.getId() != 0){
171
                long referencingObjectsCount = CdmStore.getCommonService().getReferencingObjectsCount(cdmBase);
172

  
173
                if (referencingObjectsCount > defaultReferencingObjects){
174
                    setWarnForReferencedObjects(formFactory.createLabel(formElement, CdmUtils.Nz("The "+ cdmBase.getUserFriendlyTypeName()+" is referenced by more than one object, if you change it, it is changed for all these objects")));
175
                    warnForReferencedObjects.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
176
                    warnForReferencedObjects.setLayout(LayoutConstants.FILL(2, 3));
177
                    warnForReferencedObjects.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
178

  
179
                }
180
            }
181
        }
182
    }
183

  
184
    public void setWarnForReferencingObjects(ICdmFormElement formElement){
185
        setWarnForReferencingObjects(formElement, 1);
186
    }
187

  
188
    public void setWarnForReferencingObjectsVisible(boolean isVisible){
189
        if (warnForReferencedObjects != null){
190
            warnForReferencedObjects.setVisible(isVisible);
191
        }
192
    }
193

  
156 194
}

Also available in: Unified diff