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 |
}
|
ref #7706: add warning if media is referenced by more than one object