import eu.etaxonomy.cdm.model.media.MediaRepresentation;
import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
import eu.etaxonomy.cdm.model.media.Rights;
-import eu.etaxonomy.cdm.model.molecular.Sequence;
import eu.etaxonomy.cdm.model.name.NameRelationship;
import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
}
} else if (entity instanceof Reference) {
- element = new DescriptionSourceElement(this, parentElement, (Reference) entity, removeListener, style);
+ if(parentElement instanceof SequenceReferenceCollectionDetailSection){
+ element = new SequenceReferenceCollectionDetailElement(this, parentElement, (Reference) entity, removeListener, style);
+ }
+ else{
+ element = new DescriptionSourceElement(this, parentElement, (Reference) entity, removeListener, style);
+ }
} else if (entity instanceof NameTypeDesignation) {
element = new NameTypeDesignationElement(this, parentElement, (NameTypeDesignation) entity, removeListener,
style);
if (descriptionElement.getFeature().equals(Feature.PROTOLOGUE())) {
element = new ProtologueElement(this, parentElement, descriptionElement, removeListener, style);
}
- } else if (entity instanceof Sequence) {
- element = new SequenceReferenceCollectionDetailElement(this, parentElement, (Sequence) entity, removeListener, style);
}
if (element == null) {
* @date 07.01.2014
*
*/
-public class SequenceReferenceCollectionDetailElement extends AbstractEntityCollectionElement<Sequence>{
+public class SequenceReferenceCollectionDetailElement extends AbstractEntityCollectionElement<Reference>{
protected EntitySelectionElement<Reference> selection_reference;
protected TextWithLabelElement text_referenceDetail;
+ private Sequence sequence;
/**
* <p>
* a T object.
*/
public SequenceReferenceCollectionDetailElement(CdmFormFactory formFactory,
- AbstractFormSection section, Sequence entity,
+ AbstractFormSection section, Reference entity,
SelectionListener removeListener, int style) {
super(formFactory, section, entity, removeListener, null, style);
+ if(section instanceof SequenceReferenceCollectionDetailSection){
+ sequence = (Sequence) section.getEntity();
+ }
}
/*
selection_reference = formFactory
.createSelectionElement(Reference.class,
getConversationHolder(), formElement, "Reference",
- null, EntitySelectionElement.ALL, style);
+ null, EntitySelectionElement.SELECTABLE|EntitySelectionElement.EDITABLE, style);
text_referenceDetail = formFactory.createTextWithLabelElement(
formElement, "Reference Detail", null, SWT.NULL);
}
* a T object.
*/
@Override
- public void setEntity(Sequence entity) {
+ public void setEntity(Reference entity) {
this.entity = entity;
-// selection_reference.setEntity(entity.getCitation());
+ selection_reference.setEntity(entity);
// text_referenceDetail.setText(entity.getCitationMicroReference());
};
*/
@Override
public void handleEvent(Object eventSource) {
- // TODO Auto-generated method stub
+ if(eventSource==selection_reference){
+ sequence.removeCitation(entity);
+ Reference newCitation = selection_reference.getSelection();
+ sequence.addCitation(newCitation);
+ entity = newCitation;
+ }
}
import java.util.Collection;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.ToolBarManager;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.widgets.Control;
+
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.model.molecular.Sequence;
import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.preference.Resources;
import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
* @date 07.01.2014
*
*/
-public class SequenceReferenceCollectionDetailSection extends
-AbstractEntityCollectionSection<Sequence, Reference> {
+public class SequenceReferenceCollectionDetailSection extends AbstractEntityCollectionSection<Sequence, Reference> {
public SequenceReferenceCollectionDetailSection(CdmFormFactory formFactory,
ConversationHolder conversation, ICdmFormElement parentElement, int style) {
return ReferenceFactory.newGeneric();
}
+ @Override
+ protected Control createToolbar() {
+ ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
+
+ Action addAction = new Action("add", IAction.AS_PUSH_BUTTON){
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.action.Action#run()
+ */
+ @Override
+ public void run() {
+// Reference element = createNewElement();
+// if(element != null){
+// addElement((Reference)null);
+ if(! getSection().isExpanded()) {
+ getSection().setExpanded(true);
+ }
+ internalUpdateSection(true);
+// }
+ }
+ };
+ addAction.setImageDescriptor(new ImageDescriptor() {
+
+ @Override
+ public ImageData getImageData() {
+ return ImageResources.getImage(ImageResources.ADD_ICON).getImageData();
+ }
+ });
+ addAction.setToolTipText(getTooltipString());
+
+ toolBarManager.add(addAction);
+
+ return toolBarManager.createControl(this);
+ }
+
+ @Override
+ protected void createDynamicContents(Collection<Reference> elements)
+ {
+ int i = 0;
+ for(final Reference element : elements){
+ SelectionAdapter removeListener = new SelectionAdapter(){
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ removeElement(element);
+ internalUpdateSection(true);
+ }
+ };
+ boolean modulo = i++%2 == 0;
+ String colorResource = modulo ? Resources.COLOR_LIST_EVEN : Resources.COLOR_LIST_ODD;
+ createElementComposite(element, removeListener, AbstractUtility.getColor(colorResource));
+ }
+ String colorString = i%2==0 ? Resources.COLOR_LIST_EVEN : Resources.COLOR_LIST_ODD;
+ Color backgroundColor = AbstractUtility.getColor(colorString);
+ final SequenceReferenceCollectionDetailElement dummyElement = new SequenceReferenceCollectionDetailElement(formFactory, this, (Reference) null, null, SWT.NULL);
+ if (backgroundColor != null && !backgroundColor.isDisposed()) {
+ dummyElement.setPersistentBackground(backgroundColor);
+ formFactory.adapt(dummyElement);
+ this.addElement(dummyElement);
+ }
+ }
+
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
*/