taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/reference/ReferenceSelectComposite.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractEditorFormSection.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractFormComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/CdmComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/CheckboxComposite.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/Container.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/EditorFormToolkit.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/IPropertyChangeEmitter.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ImageComposite.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/MultilineTextWithLabel.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/NonViralNameDetailsComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ReferenceBaseDetailComposite.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/TextActionComposite.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/TextWithLabelComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/TimePeriodComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ToggleableTextField.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/AbstractEntitySetElementComposite.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/AbstractEntitySetSection.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/AnnotationComposite.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/AnnotationSection.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/CdmComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/CheckboxComposite.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/CreditComposite.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/CreditSection.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/DescriptionElementSourceComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/DescriptionElementSourceSection.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/ExtensionComposite.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/ExtensionSection.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/IdentifiableSourceComposite.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MarkerSection.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MediaComposite.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/MediaSection.java -text
-taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/OriginalSourceSection.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/NomenclaturalStatusComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/NomenclaturalStatusSection.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/NonViralNameDetailsComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/ProtologComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/ProtologSection.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/ReferenceBaseDetailComposite.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/RightsComposite.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/RightsSection.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/SourceSection.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/TimePeriodComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/entitysections/ToggleableTextField.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selectioncomposites/AbstractSelectionComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selectioncomposites/AgentSelectionComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selectioncomposites/InstitutionSelectionComposite.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selectioncomposites/NameSelectionComposite.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selectioncomposites/ReferenceSelectionComposite.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selectioncomposites/TaxonSelectionComposite.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/termcombos/AbstractTermComboComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/termcombos/ExtensionTypeComboComposite.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/termcombos/LanguageComboComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/termcombos/MarkerTypeComboComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/termcombos/NomenclaturalStatusTypeComboComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/termcombos/RankComboComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/termcombos/ReferenceTypeComboComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/termcombos/RightsTypeComboComposite.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/propertysheet/AbstractEditorPropertySheet.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/propertysheet/AgentBasePropertySource.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/propertysheet/AnnotationPropertySource.java -text
* @param style
*/
public AbstractDescriptionDetailSection(Composite parent, AbstractDescriptionDetailsPage page, int sectionStyle) {
- super(parent, Section.TITLE_BAR | SWT.NO_BACKGROUND | sectionStyle);
+ super(parent, null, Section.TITLE_BAR | SWT.NO_BACKGROUND | sectionStyle);
this.page = page;
this.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
import eu.etaxonomy.taxeditor.forms.EditorFormToolkit;\r
import eu.etaxonomy.taxeditor.forms.entitysections.AnnotationSection;\r
-import eu.etaxonomy.taxeditor.forms.entitysections.OriginalSourceSection;\r
+import eu.etaxonomy.taxeditor.forms.entitysections.DescriptionElementSourceSection;\r
\r
/**\r
* @author p.ciardelli\r
private boolean hasExtensions = false;\r
\r
protected AbstractDescriptionDetailSection descriptionSection;\r
- private OriginalSourceSection citationSection;\r
+ private DescriptionElementSourceSection citationSection;\r
private AnnotationSection annotationSection;\r
private ExtensionSection extensionSection;\r
\r
createDescriptionContents(parent);\r
\r
if(hasCitations)\r
- citationSection = toolkit.createOriginalSourceSection(parent, getDescriptionElement(), SWT.NULL);\r
- if (citationSection != null)\r
- citationSection.addPropertyChangeListener(this);\r
+ citationSection = toolkit.createOriginalSourceSection(parent, getDescriptionElement(), this, Section.TWISTIE | Section.COMPACT);\r
if(hasAnnotations)\r
- annotationSection = toolkit.createAnnotationSection(parent, getDescriptionElement(), SWT.NULL);\r
- if(annotationSection != null)\r
- annotationSection.addPropertyChangeListener(this);\r
+ annotationSection = toolkit.createAnnotationSection(parent, getDescriptionElement(), this, Section.TWISTIE | Section.COMPACT);\r
if(hasExtensions)\r
// there are no extensions for description elements\r
\r
setText("Common Name Details");
- languageCombo = toolkit.createLanguageComboComposite(getClient(), "Language", null, SWT.WRAP);
- languageCombo.addPropertyChangeListener(this);
+ languageCombo = toolkit.createLanguageComboComposite(getClient(), "Language", null, this, SWT.WRAP);
languageCombo.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
- commonName = toolkit.createTextWithLabelComposite(getClient(), "Common Name", null, SWT.WRAP);
- commonName.addPropertyChangeListener(this);
+ commonName = toolkit.createTextWithLabelComposite(getClient(), "Common Name", null, this, SWT.WRAP);
}
/* (non-Javadoc)
super(parent, page, style);
setText(title);
- detailDescription = toolkit.createMultilineTextWithLabel(getClient(), labelString, 100, SWT.WRAP);
- detailDescription.addPropertyChangeListener(this);
+ detailDescription = toolkit.createMultilineTextWithLabel(getClient(), labelString, this, 100, SWT.WRAP);
}
/* (non-Javadoc)
AbstractDescriptionDetailsPage page, int sectionStyle) {
super(parent, page, sectionStyle);
- taxonSelection = toolkit.createTaxonSelectionComposite(getClient(), null, SWT.WRAP);
- taxonSelection.addPropertyChangeListener(this);
+ taxonSelection = toolkit.createTaxonSelectionComposite(getClient(), null, this, SWT.WRAP);
- interactionDescription = toolkit.createMultilineTextWithLabel(getClient(), "Description", 200, SWT.WRAP);
- interactionDescription.addPropertyChangeListener(this);
+ interactionDescription = toolkit.createMultilineTextWithLabel(getClient(), "Description", this, 200, SWT.WRAP);
}
/* (non-Javadoc)
AbstractDescriptionDetailsPage page, int style) {
super(parent, page, style);
- multilineTextWithLabel = toolkit.createMultilineTextWithLabel(getClient(), "Text for this descriptive element:", 200, SWT.WRAP);
-
- multilineTextWithLabel.addPropertyChangeListener(this);
+ multilineTextWithLabel = toolkit.createMultilineTextWithLabel(getClient(), "Text for this descriptive element:", this, 200, SWT.WRAP);
}
/* (non-Javadoc)
* @author nho
*
*/
-public abstract class AbstractEditorFormSection extends Section implements IExpansionListener, IPropertyChangeEmitter{
+public abstract class AbstractEditorFormSection extends Section implements IExpansionListener, IPropertyChangeEmitter, IPropertyChangeListener{
protected EditorFormToolkit toolkit;
* @param parent
* @param style
*/
- protected AbstractEditorFormSection(Composite parent, int style) {
- super(parent, Section.TITLE_BAR | SWT.NO_BACKGROUND | style);
+ protected AbstractEditorFormSection(Composite parent, IPropertyChangeListener listener, int style) {
+ super(parent, style);
toolkit = new EditorFormToolkit(parent.getDisplay());
this.setClient(client);
this.addExpansionListener(this);
+ if(listener != null){
+ this.addPropertyChangeListener(listener);
+ }
}
/* (non-Javadoc)
listener.propertyChange(event);
}
}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+ */
+ public void propertyChange(PropertyChangeEvent event) {
+ firePropertyChangeEvent(event);
+ }
}
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
/**
* @author nho
*
*/
-public abstract class AbstractFormComposite extends Composite implements IPropertyChangeEmitter {
+public abstract class AbstractFormComposite extends Composite implements IPropertyChangeEmitter, IPropertyChangeListener {
- protected FormToolkit toolkit;
+ protected EditorFormToolkit toolkit;
private Set<IPropertyChangeListener> propertyChangeListeners = new HashSet<IPropertyChangeListener>();
+ public GridData FILL_GRID(){
+ return new GridData(SWT.FILL, SWT.FILL, true, true);
+ }
+
+ public GridData FILL_GRID_HORIZONTALLY(){
+ return new GridData(SWT.FILL, SWT.TOP, true, false);
+ }
/**
* @param parent
* @param style
*/
- public AbstractFormComposite(Composite parent, int style) {
+ public AbstractFormComposite(Composite parent, IPropertyChangeListener listener, int style) {
super(parent, style);
GridLayout layout = new GridLayout();
this.setLayout(layout);
- toolkit = new FormToolkit(parent.getDisplay());
+ toolkit = new EditorFormToolkit(parent.getDisplay());
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
this.setLayoutData(gridData);
+
+ if(listener != null){
+ this.addPropertyChangeListener(listener);
+ }
}
/* (non-Javadoc)
listener.propertyChange(event);
}
}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+ */
+ public void propertyChange(PropertyChangeEvent event) {
+ firePropertyChangeEvent(event);
+ }
}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.joda.time.DateTime;
+
+import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.model.common.User;
+import eu.etaxonomy.cdm.model.common.VersionableEntity;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 5, 2009
+ * @version 1.0
+ */
+public class CdmComposite extends AbstractFormComposite {
+
+ private static final Logger logger = Logger.getLogger(CdmComposite.class);
+ private Label label_created;
+ private Label label_createdBy;
+ private Label label_updated;
+ private Label label_updatedBy;
+ private Label label_uuid;
+
+ /**
+ * @param parent
+ * @param listener
+ * @param style
+ */
+ public CdmComposite(Composite parent, VersionableEntity entity, IPropertyChangeListener listener,
+ int style) {
+ super(parent, listener, style);
+ this.setLayout(new GridLayout(2, false));
+
+ toolkit.createLabel(this, "Created:");
+ label_created = toolkit.createLabel(this, null);
+ label_created.setLayoutData(FILL_GRID_HORIZONTALLY());
+
+ toolkit.createLabel(this, "Created by:");
+ label_createdBy = toolkit.createLabel(this, null);
+ label_createdBy.setLayoutData(FILL_GRID_HORIZONTALLY());
+
+ toolkit.createLabel(this, "Updated:");
+ label_updated = toolkit.createLabel(this, null);
+ label_updated.setLayoutData(FILL_GRID_HORIZONTALLY());
+
+ toolkit.createLabel(this, "Updated by:");
+ label_updatedBy = toolkit.createLabel(this, null);
+ label_updatedBy.setLayoutData(FILL_GRID_HORIZONTALLY());
+
+// toolkit.createLabel(this, "Uuid:");
+// label_uuid = toolkit.createLabel(this, null);
+// label_uuid.setLayoutData(FILL_GRID_HORIZONTALLY());
+ }
+
+ public void setEntity(VersionableEntity entity){
+ if(entity.getCreated() != null)
+ label_created.setText(dateFormat(entity.getCreated()));
+ if(entity.getCreatedBy() != null)
+ label_createdBy.setText(userFormat(entity.getCreatedBy()));
+ if(entity.getUpdated() != null)
+ label_updated.setText(dateFormat(entity.getUpdated()));
+ if(entity.getUpdatedBy() != null)
+ label_updatedBy.setText(userFormat(entity.getUpdatedBy()));
+// label_uuid.setText(entity.getUuid().toString());
+ }
+
+ private String dateFormat(DateTime dateTime){
+ // TODO agree on pattern or get pattern via preferences or locale
+ String pattern = null;
+ return CdmUtils.Nz(dateTime.toString(pattern));
+ }
+
+ private String userFormat(User user){
+ // TODO agree on what to display username or real name or even more from shibboleth
+ return CdmUtils.Nz(user.getUsername());
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 5, 2009
+ * @version 1.0
+ */
+public class CheckboxComposite extends AbstractFormComposite implements SelectionListener {
+
+ private static final Logger logger = Logger
+ .getLogger(CheckboxComposite.class);
+
+ private Button checkbox;
+
+ /**
+ *
+ * @param parent
+ * @param label
+ * @param initialState
+ * @param listener
+ * @param style
+ */
+ public CheckboxComposite(Composite parent, String label, boolean initialState,
+ IPropertyChangeListener listener, int style) {
+ super(parent, listener, style);
+
+ checkbox = toolkit.createButton(this, label, SWT.CHECK | style);
+ checkbox.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false));
+
+ checkbox.setSelection(initialState);
+
+ checkbox.addSelectionListener(this);
+ }
+
+ public void setSelection(boolean selected){
+ checkbox.removeSelectionListener(this);
+ checkbox.setSelection(selected);
+ checkbox.addSelectionListener(this);
+ }
+
+ public boolean getSelection(){
+ return checkbox.getSelection();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ public void widgetSelected(SelectionEvent e) {
+ firePropertyChangeEvent(null);
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {}
+}
* @param style
*/
public Container(Composite parent, int style) {
- super(parent, style);
+ super(parent, null, style);
}
}
import java.net.URI;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import eu.etaxonomy.cdm.model.common.AnnotatableEntity;
import eu.etaxonomy.cdm.model.common.Annotation;
+import eu.etaxonomy.cdm.model.common.Credit;
import eu.etaxonomy.cdm.model.common.DescriptionElementSource;
+import eu.etaxonomy.cdm.model.common.Extension;
+import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
+import eu.etaxonomy.cdm.model.common.IdentifiableSource;
import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.Marker;
+import eu.etaxonomy.cdm.model.common.VersionableEntity;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
+import eu.etaxonomy.cdm.model.media.Rights;
+import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
+import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
+import eu.etaxonomy.cdm.model.name.NonViralName;
+import eu.etaxonomy.cdm.model.name.Rank;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.taxeditor.forms.entitysections.AnnotationComposite;
import eu.etaxonomy.taxeditor.forms.entitysections.AnnotationSection;
+import eu.etaxonomy.taxeditor.forms.entitysections.CreditComposite;
+import eu.etaxonomy.taxeditor.forms.entitysections.CreditSection;
import eu.etaxonomy.taxeditor.forms.entitysections.DescriptionElementSourceComposite;
-import eu.etaxonomy.taxeditor.forms.entitysections.OriginalSourceSection;
+import eu.etaxonomy.taxeditor.forms.entitysections.DescriptionElementSourceSection;
+import eu.etaxonomy.taxeditor.forms.entitysections.ExtensionComposite;
+import eu.etaxonomy.taxeditor.forms.entitysections.ExtensionSection;
+import eu.etaxonomy.taxeditor.forms.entitysections.MarkerComposite;
+import eu.etaxonomy.taxeditor.forms.entitysections.MarkerSection;
+import eu.etaxonomy.taxeditor.forms.entitysections.NomenclaturalStatusComposite;
+import eu.etaxonomy.taxeditor.forms.entitysections.NomenclaturalStatusSection;
+import eu.etaxonomy.taxeditor.forms.entitysections.IdentifiableSourceComposite;
+import eu.etaxonomy.taxeditor.forms.entitysections.ProtologComposite;
+import eu.etaxonomy.taxeditor.forms.entitysections.ProtologSection;
+import eu.etaxonomy.taxeditor.forms.entitysections.RightsComposite;
+import eu.etaxonomy.taxeditor.forms.entitysections.RightsSection;
+import eu.etaxonomy.taxeditor.forms.entitysections.SourceSection;
import eu.etaxonomy.taxeditor.forms.selectioncomposites.TaxonSelectionComposite;
import eu.etaxonomy.taxeditor.forms.termcombos.LanguageComboComposite;
+import eu.etaxonomy.taxeditor.forms.termcombos.NomenclaturalStatusTypeComboComposite;
+import eu.etaxonomy.taxeditor.forms.termcombos.RankComboComposite;
/**
* @author nho
* @param style
* @return
*/
- public MultilineTextWithLabel createMultilineTextWithLabel(Composite parent, String labelString, int textHeight, int style){
- return new MultilineTextWithLabel(parent, labelString, "", textHeight, style);
+ public MultilineTextWithLabel createMultilineTextWithLabel(Composite parent, String labelString, IPropertyChangeListener listener, int textHeight, int style){
+ return new MultilineTextWithLabel(parent, labelString, "", listener, textHeight, style);
}
+
/**
*
* @param parent
- * @param source
+ * @param labelString
+ * @param initialText
* @param style
* @return
*/
- public DescriptionElementSourceComposite createDescriptionElementSourceComposite(Composite parent, DescriptionElementSource source, int style){
- return new DescriptionElementSourceComposite(parent, source, style);
+ public TextWithLabelComposite createTextWithLabelComposite(Composite parent, String labelString, String initialText, IPropertyChangeListener listener, int style){
+ return new TextWithLabelComposite(parent, labelString, initialText, listener, style);
}
/**
* @param style
* @return
*/
- public TextWithLabelComposite createTextWithLabelComposite(Composite parent, String labelString, String initialText, int style){
- return new TextWithLabelComposite(parent, labelString, initialText, style);
+ public TextWithLabelComposite createTextComposite(Composite parent, String initialText, IPropertyChangeListener listener, int style){
+ return new TextWithLabelComposite(parent, null, initialText, listener, style);
+ }
+
+ /**
+ *
+ * @param parent
+ * @param labelString
+ * @param selection
+ * @param style
+ * @return
+ */
+ public LanguageComboComposite createLanguageComboComposite(Composite parent, String labelString, Language selection, IPropertyChangeListener listener, int style){
+ return new LanguageComboComposite(parent, labelString, selection, listener, style);
}
/**
* @param parent
* @param labelString
* @param selection
+ * @param listener
* @param style
* @return
*/
- public LanguageComboComposite createLanguageComboComposite(Composite parent, String labelString, Language selection, int style){
- return new LanguageComboComposite(parent, labelString, selection, style);
+ public RankComboComposite createRankComboComposite(Composite parent, String labelString, Rank selection, IPropertyChangeListener listener, int style){
+ return new RankComboComposite(parent, labelString, selection, listener, style);
+ }
+
+ /**
+ * @param parent
+ * @param string
+ * @param object
+ * @param namePropertySection
+ * @param null1
+ * @return
+ */
+ public NomenclaturalStatusTypeComboComposite createNomenclaturalStatusCombo(Composite parent,
+ String labelString, NomenclaturalStatusType selection,
+ IPropertyChangeListener listener, int style) {
+ return new NomenclaturalStatusTypeComboComposite(parent, labelString, selection, listener, style, style);
}
/**
* @param style
* @return
*/
- public AnnotationComposite createAnnotationComposite(Composite parent, Annotation annotation, int style) {
- return new AnnotationComposite(parent, annotation, style);
+ public AnnotationComposite createAnnotationComposite(Composite parent, Annotation annotation, SelectionListener removeListener, IPropertyChangeListener listener, int style) {
+ return new AnnotationComposite(parent, annotation, removeListener, listener, style);
}
/**
* @param style
* @return
*/
- public TaxonSelectionComposite createTaxonSelectionComposite(Composite parent, TaxonBase selection, int style) {
- return new TaxonSelectionComposite(parent, "Taxon", selection, style);
+ public TaxonSelectionComposite createTaxonSelectionComposite(Composite parent, TaxonBase selection, IPropertyChangeListener listener, int style) {
+ return new TaxonSelectionComposite(parent, "Taxon", selection, listener, style);
+ }
+
+ /**
+ *
+ * @param parent
+ * @param annotatableEntity
+ * @param style
+ * @return
+ */
+ public AnnotationSection createAnnotationSection(Composite parent, AnnotatableEntity annotatableEntity,
+ IPropertyChangeListener listener, int style){
+ return new AnnotationSection(parent, annotatableEntity, listener, style);
}
/**
* @param style
* @return
*/
- public AnnotationSection createAnnotationSection(Composite parent, AnnotatableEntity annotatableEntity, int style){
- return new AnnotationSection(parent, annotatableEntity, style);
+ public NomenclaturalStatusSection createNomenclaturalStatusSection(Composite parent, TaxonNameBase taxonNameBase,
+ IPropertyChangeListener listener, int style){
+ return new NomenclaturalStatusSection(parent, taxonNameBase, listener, style);
+ }
+
+ /**
+ * @param parent
+ * @param annotatableEntity
+ * @param style
+ * @return
+ */
+ public MarkerSection createMarkerSection(Composite parent, AnnotatableEntity annotatableEntity,
+ IPropertyChangeListener listener, int style) {
+ return new MarkerSection(parent, annotatableEntity, listener, style);
}
/**
* @param style
* @return
*/
- public OriginalSourceSection createOriginalSourceSection(Composite parent, DescriptionElementBase entity, int style){
- return new OriginalSourceSection(parent, entity, style);
+ public DescriptionElementSourceSection createOriginalSourceSection(Composite parent, DescriptionElementBase entity,
+ IPropertyChangeListener listener, int style){
+ return new DescriptionElementSourceSection(parent, entity, listener, style);
}
+ /**
+ * @param parent
+ * @param identifiableEntity
+ * @param style
+ * @return
+ */
+ public CreditSection createCreditSection(Composite parent, IdentifiableEntity identifiableEntity,
+ IPropertyChangeListener listener, int style) {
+ return new CreditSection(parent, identifiableEntity, listener, style);
+ }
+
+ /**
+ *
+ * @param parent
+ * @param identifiableEntity
+ * @param style
+ * @return
+ */
+ public ExtensionSection createExtensionSection(Composite parent, IdentifiableEntity identifiableEntity,
+ IPropertyChangeListener listener, int style) {
+ return new ExtensionSection(parent, identifiableEntity, listener, style);
+ }
+
+ /**
+ *
+ * @param parent
+ * @param object
+ * @param null1
+ * @return
+ */
+ public RightsSection createRightsSection(Composite parent, IdentifiableEntity identifiableEntity,
+ IPropertyChangeListener listener, int style) {
+ return new RightsSection(parent, identifiableEntity, listener, style);
+ }
+
+ /**
+ *
+ * @param parent
+ * @param object
+ * @param null1
+ * @return
+ */
+ public SourceSection createSourcesSection(Composite parent, IdentifiableEntity identifiableEntity,
+ IPropertyChangeListener listener, int style) {
+ return new SourceSection(parent, identifiableEntity, listener, style);
+ }
+
+ /**
+ *
+ * @param parent
+ * @param listener
+ * @param nonViralName
+ * @param style
+ * @return
+ */
+ public NonViralNameDetailsComposite createNonViralNameDetailsComposite(Composite parent,
+ IPropertyChangeListener listener, int style) {
+ return new NonViralNameDetailsComposite(parent, listener, style);
+ }
+
+ /**
+ * @param parent
+ * @param string
+ * @param b
+ * @param taxonBasePropertySection
+ * @return
+ */
+ public CheckboxComposite createCheckbox(Composite parent, String label, boolean initialState,
+ IPropertyChangeListener listener) {
+ return new CheckboxComposite(parent, label, initialState, listener, SWT.NULL);
+ }
+
/**
* Creates a section as a part of the form.
section.setFont(boldFontHolder2.getBoldFont(section.getParent().getFont()));
-// if ((section.getStyle() & Section.TITLE_BAR) != 0
-// || (section.getStyle() & Section.SHORT_TITLE_BAR) != 0) {
+ if ((section.getStyle() & Section.TITLE_BAR) != 0
+ || (section.getStyle() & Section.SHORT_TITLE_BAR) != 0) {
getColors().initializeSectionToolBarColors();
section.setTitleBarBackground(getColors().getColor(IFormColors.TB_BG));
section.setTitleBarBorderColor(getColors()
.getColor(IFormColors.TB_BORDER));
-// }
+ }
// call setTitleBarForeground regardless as it also sets the label color
section.setTitleBarForeground(getColors()
.getColor(IFormColors.TB_TOGGLE));
}
}
+ /**
+ * @param parent
+ * @param object
+ * @param listener
+ * @param i
+ * @return
+ */
+ public ProtologSection createProtologSection(Composite parent,
+ TaxonNameDescription nameDescription, IPropertyChangeListener listener, int style) {
+ return new ProtologSection(parent, nameDescription, listener, style);
+ }
+
+ public CdmComposite createCdmComposite(Composite parent, VersionableEntity entity, int style){
+ return new CdmComposite(parent, entity, null, style);
+ }
}
* @param style
*/
protected ImageComposite(Composite parent, URI imageUri, int style) {
- super(parent, style);
+ super(parent, null, style);
this.setLayout(new GridLayout());
showImage();
browser.addControlListener(this);
+ super.addPropertyChangeListener(this);
}
/**
*/
package eu.etaxonomy.taxeditor.forms;
+import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
/**
- * @author nho
- *
+ * A multilined text widget that has a label on top of it.
+ *
+ * @author n.hoffmann
+ * @created Nov 9, 2009
+ * @version 1.0
*/
public class MultilineTextWithLabel extends TextWithLabelComposite {
* @param style
*/
protected MultilineTextWithLabel(Composite parent, String labelString,
- String initialText, int textHeight, int style) {
+ String initialText, IPropertyChangeListener listener, int textHeight, int style) {
// experimenting with "SWT.V_SCROLL"
- super(parent, labelString, initialText, style);
+ super(parent, labelString, initialText, listener, true, style);
GridData gd = new GridData(SWT.FILL, SWT.TOP, true, true);
gd.heightHint = textHeight;
text.setLayoutData(gd);
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+import eu.etaxonomy.cdm.model.name.NonViralName;
+import eu.etaxonomy.cdm.model.name.Rank;
+import eu.etaxonomy.taxeditor.forms.termcombos.NomenclaturalStatusTypeComboComposite;
+import eu.etaxonomy.taxeditor.forms.termcombos.RankComboComposite;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 5, 2009
+ * @version 1.0
+ */
+public class NonViralNameDetailsComposite extends AbstractFormComposite {
+
+ private static final Logger logger = Logger
+ .getLogger(NonViralNameDetailsComposite.class);
+ private Label label_parsingStatus;
+ private TextWithLabelComposite text_cache;
+ private RankComboComposite combo_rank;
+ private TextWithLabelComposite text_uninomial;
+ private TextWithLabelComposite text_infragenericEpithet;
+ private TextWithLabelComposite text_specificEpithet;
+ private TextWithLabelComposite text_infraspecificEpithet;
+ private TextWithLabelComposite text_appendedPhrase;
+ private NomenclaturalStatusTypeComboComposite combo_nomenclaturalStatus;
+ private NonViralName nonViralName;
+ private Composite composite_nameParts;
+ private Rank rank;
+
+ /**
+ * @param parent
+ * @param listener
+ * @param style
+ */
+ public NonViralNameDetailsComposite(Composite parent,
+ IPropertyChangeListener listener, int style) {
+ super(parent, listener, style);
+ }
+
+ public void setInput(NonViralName name){
+ nonViralName = name;
+ rank = name.getRank();
+ createControls(this, this, SWT.NULL);
+ }
+
+ private void createControls(Composite parent, IPropertyChangeListener listener, int style){
+ if(composite_nameParts != null)
+ composite_nameParts.dispose();
+ composite_nameParts = toolkit.createComposite(this);
+ composite_nameParts.setLayout(new GridLayout(2, false));
+ composite_nameParts.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
+
+ createGenusOrUninomialControls(composite_nameParts, listener, style);
+ createInfragenerericEpithetControls(composite_nameParts, listener, style);
+ createSpecificEpithetControls(composite_nameParts, listener, style);
+ createInfraSpecificEpithetControls(composite_nameParts, listener, style);
+
+ parent.layout();
+ }
+
+ private void createGenusOrUninomialControls(Composite parent, IPropertyChangeListener listener, int style){
+ toolkit.createLabel(composite_nameParts, "Uninomial");
+ text_uninomial = toolkit.createTextWithLabelComposite(parent, null, nonViralName.getGenusOrUninomial(), listener, style);
+ }
+
+ private void createInfragenerericEpithetControls(Composite parent, IPropertyChangeListener listener, int style){
+ if(rank.isInfraGeneric()){
+ toolkit.createLabel(composite_nameParts, "Infrageneric Epithet");
+ text_infragenericEpithet = toolkit.createTextWithLabelComposite(parent, null, nonViralName.getInfraGenericEpithet(), listener, style);
+ }
+ }
+
+ private void createSpecificEpithetControls(Composite parent, IPropertyChangeListener listener, int style){
+ if(rank.isSpecies() || rank.isInfraSpecific()){
+ toolkit.createLabel(composite_nameParts, "Specific Epithet");
+ text_specificEpithet = toolkit.createTextWithLabelComposite(composite_nameParts, null, nonViralName.getSpecificEpithet(), this, SWT.NULL);
+ }
+ }
+
+ private void createInfraSpecificEpithetControls(Composite parent, IPropertyChangeListener listener, int style){
+ if(rank.isInfraSpecific()){
+ toolkit.createLabel(composite_nameParts, "Infraspecific Epithet");
+ text_infraspecificEpithet = toolkit.createTextWithLabelComposite(composite_nameParts, null, nonViralName.getInfraSpecificEpithet(), this, SWT.NULL);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.propertysheet.tabbed.section.AbstractCdmPropertySection#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+ */
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ super.propertyChange(event);
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+import eu.etaxonomy.cdm.model.reference.ReferenceBase;
+import eu.etaxonomy.cdm.model.reference.ReferenceType;
+import eu.etaxonomy.taxeditor.forms.selectioncomposites.AgentSelectionComposite;
+import eu.etaxonomy.taxeditor.forms.selectioncomposites.InstitutionSelectionComposite;
+import eu.etaxonomy.taxeditor.forms.selectioncomposites.ReferenceSelectionComposite;
+import eu.etaxonomy.taxeditor.forms.termcombos.ReferenceTypeComboComposite;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 17, 2009
+ * @version 1.0
+ */
+public class ReferenceBaseDetailComposite extends AbstractFormComposite {
+ private static final Logger logger = Logger
+ .getLogger(ReferenceBaseDetailComposite.class);
+ private ReferenceBase referenceBase;
+ private Composite composite_referenceParts;
+ private TextWithLabelComposite text_edition;
+ private TextWithLabelComposite text_editor;
+ private TextWithLabelComposite text_isbn;
+ private TextWithLabelComposite text_issn;
+ private TextWithLabelComposite text_organisation;
+ private TextWithLabelComposite text_pages;
+ private TextWithLabelComposite text_placePublished;
+ private TextWithLabelComposite text_publisher;
+ private MultilineTextWithLabel text_referenceAbstract;
+ private InstitutionSelectionComposite selection_school;
+ private TextWithLabelComposite text_series;
+ private TextWithLabelComposite text_seriesPart;
+ private TextWithLabelComposite text_title;
+ private TextWithLabelComposite text_volume;
+ private TextWithLabelComposite text_uri;
+ private AgentSelectionComposite selection_agent;
+ private TimePeriodComposite composite_timePeriod;
+ private ReferenceSelectionComposite selection_inReference;
+ private InstitutionSelectionComposite selection_institution;
+ private ReferenceTypeComboComposite combo_referenceType;
+ private ReferenceType referenceType;
+
+ public void setInput(ReferenceBase referenceBase){
+ this.referenceBase = referenceBase;
+ referenceType = referenceBase.getType();
+
+ createControls(this, this, SWT.NULL);
+ }
+
+
+ public ReferenceBaseDetailComposite(Composite parent,
+ IPropertyChangeListener listener, int containerStyle){
+ super(parent, listener, containerStyle);
+ }
+
+ public void setEnabled(boolean enabled){
+ if(composite_referenceParts != null){
+ for(Control control : composite_referenceParts.getChildren()){
+ if(control instanceof Composite){
+ ((Composite) control).setEnabled(enabled);
+ }
+ }
+ }
+ }
+
+ private void createControls(Composite parent, IPropertyChangeListener listener, int style){
+ if(composite_referenceParts != null)
+ composite_referenceParts.dispose();
+
+ composite_referenceParts = toolkit.createComposite(parent);
+ composite_referenceParts.setLayout(new GridLayout(2, false));
+ composite_referenceParts.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
+
+ // title
+ toolkit.createLabel(composite_referenceParts, "Title");
+ text_title = toolkit.createTextComposite(composite_referenceParts, referenceBase.getTitle(), listener, style);
+ text_title.setLayoutData(FILL_GRID_HORIZONTALLY());
+
+ // author team
+ toolkit.createLabel(composite_referenceParts, "Author Team");
+ selection_agent = new AgentSelectionComposite(composite_referenceParts, null, referenceBase.getAuthorTeam(), listener, style);
+
+ // date published
+ toolkit.createLabel(composite_referenceParts, "Date Published");
+ composite_timePeriod = new TimePeriodComposite(composite_referenceParts, referenceBase.getDatePublished(), listener, style);
+
+ /* ReferenceBase END */
+
+ /* Generic */
+ if(referenceType != null && referenceType.equals(ReferenceType.Generic)){
+ createGenericControls(composite_referenceParts, listener, style);
+ }else if(referenceType != null){
+
+ createPublicationControls(composite_referenceParts, listener, style);
+
+ createVolumeControls(composite_referenceParts, listener, style);
+
+ createSectionControls(composite_referenceParts, listener, style);
+
+ createPrintedUnitControls(composite_referenceParts, listener, style);
+
+ }
+
+ // uri
+ toolkit.createLabel(composite_referenceParts, "URI");
+ text_uri = toolkit.createTextComposite(composite_referenceParts, referenceBase.getUri(), listener, style);
+
+
+ // reference abstract
+ text_referenceAbstract = toolkit.createMultilineTextWithLabel(composite_referenceParts, "Reference Abstract", listener, 100, style);
+ text_referenceAbstract.setText(referenceBase.getReferenceAbstract());
+ text_referenceAbstract.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
+
+ parent.layout();
+ }
+
+ /**
+ * Creates additional controls to edit a generic reference
+ *
+ * @param parent
+ * @param listener
+ * @param style
+ */
+ private void createGenericControls(Composite parent, IPropertyChangeListener listener, int style){
+ //editor
+ toolkit.createLabel(parent, "Editor");
+ text_editor = toolkit.createTextComposite(parent, referenceBase.getEditor(), listener, style);
+
+ // series
+ toolkit.createLabel(parent, "Series");
+ text_series = toolkit.createTextComposite(parent, referenceBase.getSeries(), listener, style);
+
+ // volume
+ toolkit.createLabel(parent, "Volume");
+ text_volume = toolkit.createTextComposite(parent, referenceBase.getVolume(), listener, style);
+
+ // pages
+ toolkit.createLabel(parent, "Pages");
+ text_pages = toolkit.createTextComposite(parent, referenceBase.getPages(), listener, style);
+ }
+
+ /**
+ * Creates addition controls to edit a publication
+ *
+ * @param parent
+ * @param listener
+ * @param style
+ */
+ private void createPublicationControls(Composite parent, IPropertyChangeListener listener, int style){
+ if(! referenceType.isPublication()){
+ return;
+ }
+
+ // placePublished
+ toolkit.createLabel(parent, "Place Published");
+ text_placePublished = toolkit.createTextComposite(parent, referenceBase.getPlacePublished(), listener, style);
+
+ // publisher
+ toolkit.createLabel(parent, "Publisher");
+ text_publisher = toolkit.createTextComposite(parent, referenceBase.getPublisher(), listener, style);
+
+ if(referenceType.equals(ReferenceType.Journal)){
+ //issn
+ toolkit.createLabel(parent, "ISSN");
+ text_issn = toolkit.createTextComposite(parent, referenceBase.getIssn(), listener, style);
+ }
+
+ if(referenceType.equals(ReferenceType.Report)){
+ // institution
+ toolkit.createLabel(parent, "Institution");
+ selection_institution = new InstitutionSelectionComposite(parent, null, referenceBase.getInstitution(), listener, style);
+ }
+
+ if(referenceType.equals(ReferenceType.Thesis)){
+ // school
+ toolkit.createLabel(parent, "School");
+ selection_school = new InstitutionSelectionComposite(parent, null, referenceBase.getSchool(), listener, style);
+ }
+
+ if(referenceType.equals(ReferenceType.Proceedings)){
+ //organization
+ toolkit.createLabel(parent, "Organisation");
+ text_organisation = toolkit.createTextComposite(parent, referenceBase.getOrganization(), listener, style);
+ }
+ }
+
+ private void createSectionControls(Composite parent, IPropertyChangeListener listener, int style){
+ if(! referenceType.isSection()){
+ return;
+ }
+
+ // pages
+ toolkit.createLabel(parent, "Pages");
+ text_pages = toolkit.createTextComposite(parent, referenceBase.getPages(), listener, style);
+
+ // in reference
+ toolkit.createLabel(parent, "In Reference"); // TODO Label May differ according to ReferenceType
+ selection_inReference = new ReferenceSelectionComposite(parent, null, referenceBase.getInReference(), listener, style);
+ }
+
+ private void createVolumeControls(Composite parent, IPropertyChangeListener listener, int style){
+ if(!referenceType.isVolumeReference()){
+ return;
+ }
+
+ // volume
+ toolkit.createLabel(parent, "Volume");
+ text_volume = toolkit.createTextComposite(parent, referenceBase.getVolume(), listener, style);
+ }
+
+ private void createPrintedUnitControls(Composite parent, IPropertyChangeListener listener, int style){
+ if(! referenceType.isPrintedUnit()){
+ return;
+ }
+
+ //editor
+ toolkit.createLabel(parent, "Editor");
+ text_editor = toolkit.createTextComposite(parent, referenceBase.getEditor(), listener, style);
+
+ // series part
+ toolkit.createLabel(parent, "Series Part");
+ text_seriesPart = toolkit.createTextComposite(parent, referenceBase.getSeriesPart(), listener, style);
+
+ if(referenceType.equals(ReferenceType.Book)){
+ // edition
+ toolkit.createLabel(parent, "Edition");
+ text_edition = toolkit.createTextComposite(parent, referenceBase.getEdition(), listener, style);
+
+ //isbn
+ toolkit.createLabel(parent, "ISBN");
+ text_isbn = toolkit.createTextComposite(parent, referenceBase.getIsbn(), listener, style);
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.AbstractFormComposite#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+ */
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+
+
+
+ super.propertyChange(event);
+ }
+
+}
* @param style
*/
protected TextActionComposite(Composite parent, String labelString, String initialText, int style) {
- super(parent, style);
+ super(parent, null, style);
this.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
GridLayout layout = (GridLayout) this.getLayout();
setText(CdmUtils.Nz(initialText));
button = toolkit.createButton(this, "Show", SWT.PUSH);
+ addPropertyChangeListener(this);
}
/**
*/
package eu.etaxonomy.taxeditor.forms;
+import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
public class TextWithLabelComposite extends AbstractFormComposite implements ModifyListener{
protected Text text;
- /**
- * @param parent
- * @param style
- */
- public TextWithLabelComposite(Composite parent, String labelString, String initialText, int style) {
- super(parent, style);
+ public TextWithLabelComposite(Composite parent, String labelString, String initialText, IPropertyChangeListener listener, boolean scroll, int style) {
+ super(parent, listener, style);
this.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
- toolkit.createLabel(this, labelString, SWT.WRAP);
+ if(labelString != null){
+ toolkit.createLabel(this, labelString, SWT.WRAP);
+ }
- text = toolkit.createText(this, "", SWT.BORDER | SWT.MULTI | SWT.WRAP);
+ int scrollStyle = scroll ? SWT.V_SCROLL : SWT.NULL;
+ text = toolkit.createText(this, "", SWT.BORDER | SWT.MULTI | SWT.WRAP | scrollStyle);
text.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
text.addModifyListener(this);
setText(initialText);
}
+
+ /**
+ * @param parent
+ * @param style
+ */
+ public TextWithLabelComposite(Composite parent, String labelString, String initialText, IPropertyChangeListener listener, int style) {
+ this(parent, labelString, initialText, listener, false, style);
+ }
/**
* Get the text of this composites text composite
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.model.common.TimePeriod;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 17, 2009
+ * @version 1.0
+ */
+public class TimePeriodComposite extends AbstractFormComposite {
+
+
+ private static final Logger logger = Logger
+ .getLogger(TimePeriodComposite.class);
+
+ /**
+ * @param parent
+ * @param listener
+ * @param style
+ */
+ public TimePeriodComposite(Composite parent, TimePeriod timePeriod,
+ IPropertyChangeListener listener, int style) {
+ super(parent, listener, style);
+ // TODO Auto-generated constructor stub
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 18, 2009
+ * @version 1.0
+ */
+public class ToggleableTextField extends AbstractFormComposite implements SelectionListener {
+
+
+ private static final Logger logger = Logger
+ .getLogger(ToggleableTextField.class);
+ private TextWithLabelComposite text_cache;
+ private Composite container;
+ private Button button_toggle;
+
+ private boolean state;
+
+ /**
+ * @param parent
+ * @param listener
+ * @param style
+ */
+ public ToggleableTextField(Composite parent,
+ IPropertyChangeListener listener, String label, String initialText, boolean initialState, int style) {
+ super(parent, listener, style);
+
+
+ container = toolkit.createComposite(this);
+ container.setLayout(new GridLayout(2, false));
+ container.setLayoutData(FILL_GRID_HORIZONTALLY());
+
+ text_cache = toolkit.createTextWithLabelComposite(container, label, initialText, this, SWT.NULL);
+ text_cache.setLayoutData(FILL_GRID_HORIZONTALLY());
+ button_toggle = toolkit.createButton(container, "Toggle", SWT.TOGGLE);
+ button_toggle.setLayoutData(new GridData(SWT.RIGHT, SWT.END, false, false));
+ button_toggle.addSelectionListener(this);
+
+ setState(initialState);
+ }
+
+ public void setText(String text){
+ if(text != null){
+ text_cache.setText(text);
+ }
+ }
+
+ public String getText(){
+ return text_cache.getText();
+ }
+
+ /**
+ * @param initialState
+ */
+ public void setState(boolean state) {
+ this.state = state;
+ text_cache.setEnabled(state);
+ button_toggle.setSelection(state);
+ }
+
+ public boolean getState(){
+ return state;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ public void widgetSelected(SelectionEvent e) {
+ setState(button_toggle.getSelection());
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {}
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.entitysections;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.model.common.VersionableEntity;
+import eu.etaxonomy.taxeditor.forms.AbstractFormComposite;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 16, 2009
+ * @version 1.0
+ */
+public abstract class AbstractEntitySetElementComposite<T extends VersionableEntity> extends AbstractFormComposite {
+
+ private static final Logger logger = Logger
+ .getLogger(AbstractEntitySetElementComposite.class);
+
+ protected T element;
+
+ protected IPropertyChangeListener propertyChangeListener;
+
+ private Composite container;
+
+ private Composite box;
+
+ private Button button_remove;
+
+ /**
+ * @param parent
+ * @param propertyChangelistener
+ * @param style
+ */
+ public AbstractEntitySetElementComposite(Composite parent, T element, SelectionListener removeListener,
+ IPropertyChangeListener propertyChangelistener, int style) {
+ super(parent, propertyChangelistener, style);
+
+ box = toolkit.createComposite(this);
+ box.setLayout(new GridLayout(2, false));
+ box.setLayoutData(FILL_GRID());
+
+ container = toolkit.createComposite(box);
+ container.setLayout(new GridLayout());
+ container.setLayoutData(FILL_GRID());
+ button_remove = toolkit.createButton(box, "Remove", SWT.PUSH);
+ button_remove.setLayoutData(new GridData(SWT.RIGHT, SWT.TOP, false, false));
+
+ button_remove.addSelectionListener(removeListener);
+
+ createControls(container, style);
+
+ setElement(element);
+ }
+
+ public abstract void setElement(T element);
+
+
+ public T getElement(){
+ return element;
+ }
+
+ public abstract void createControls(Composite parent, int style);
+
+}
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.ToolBarManager;
+import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import eu.etaxonomy.cdm.common.CdmUtils;
import eu.etaxonomy.cdm.model.common.VersionableEntity;
import eu.etaxonomy.taxeditor.forms.AbstractEditorFormSection;
* @param parent
* @param style
*/
- protected AbstractEntitySetSection(Composite parent, T entity, int style) {
- super(parent, style);
+ protected AbstractEntitySetSection(Composite parent, T entity, String title, IPropertyChangeListener listener, int style) {
+ super(parent, listener, style);
this.entity = entity;
+ this.setText(CdmUtils.Nz(title));
setTextClient(createToolbar());
-
}
private Control createToolbar() {
return toolBarManager.createControl(this);
}
+
+ protected void createRemoveButton(Composite parent, SelectionListener listener){
+ Button button_remove = toolkit.createButton(parent, "Remove", SWT.PUSH);
+ button_remove.setToolTipText("Remove");
+ button_remove.addSelectionListener(listener);
+ button_remove.setLayoutData(new GridData(SWT.RIGHT, SWT.TOP, false, false));
+ }
/**
* @return
*/
package eu.etaxonomy.taxeditor.forms.entitysections;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Composite;
import eu.etaxonomy.cdm.model.common.Annotation;
* @author nho
*
*/
-public class AnnotationComposite extends MultilineTextWithLabel implements ModifyListener{
+public class AnnotationComposite extends AbstractEntitySetElementComposite<Annotation>{
- private Annotation annotation;
+ private MultilineTextWithLabel text;
/**
*
* @param parent
* @param annotation
+ * @param propertyChangeListener
* @param style
*/
- public AnnotationComposite(Composite parent, Annotation annotation, int style) {
- super(parent, "Annotation", null, 100, style);
-
- this.setAnnotation(annotation);
-
- text.addModifyListener(this);
+ public AnnotationComposite(Composite parent, Annotation annotation, SelectionListener removeListener, IPropertyChangeListener propertyChangeListener, int style) {
+ super(parent, annotation, removeListener, propertyChangeListener, style);
}
-
- /**
- * @param annotation the annotation to set
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetComposite#createControls(org.eclipse.swt.widgets.Composite)
*/
- public void setAnnotation(Annotation annotation) {
- this.annotation = annotation;
- setText(annotation.getText());
+ @Override
+ public void createControls(Composite parent, int style) {
+ text = toolkit.createMultilineTextWithLabel(parent, "Annotation", propertyChangeListener, 100, style);
}
-
- /**
- * @return the annotation
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetComposite#setEntity(eu.etaxonomy.cdm.model.common.AnnotatableEntity)
*/
- public Annotation getAnnotation() {
- return annotation;
+ @Override
+ public void setElement(Annotation entity) {
+ this.element = entity;
+ text.setText(entity.getText());
}
/* (non-Javadoc)
- * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
+ * @see eu.etaxonomy.taxeditor.forms.AbstractFormComposite#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
*/
- public void modifyText(ModifyEvent e) {
- annotation.setText(getText());
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ element.setText(text.getText());
+
+ super.propertyChange(event);
}
}
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.widgets.Section;
import eu.etaxonomy.cdm.model.common.AnnotatableEntity;
import eu.etaxonomy.cdm.model.common.Annotation;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
+ *
* @author n.hoffmann
- *
+ * @created Nov 5, 2009
+ * @version 1.0
*/
-public class AnnotationSection extends AbstractEntitySetSection<AnnotatableEntity> {
+public class AnnotationSection extends AbstractEntitySetSection<AnnotatableEntity>{
/**
* @param parent
* @param style
*/
- public AnnotationSection(Composite parent, AnnotatableEntity annotatableEntity, int style) {
- super(parent, annotatableEntity, Section.TWISTIE | Section.COMPACT | style);
-
- setText("Annotations");
+ public AnnotationSection(Composite parent, AnnotatableEntity annotatableEntity, IPropertyChangeListener listener, int style) {
+ super(parent, annotatableEntity, "Annotations", listener, style);
}
toolkit.createLabel(container, "No annotations yet.");
}else{
for(Annotation annotation : annotations){
-
- toolkit.createAnnotationComposite(container, annotation, SWT.NULL);
-
- Button button_remove = toolkit.createButton(container, "Remove", SWT.PUSH);
- button_remove.addSelectionListener(new RemoveListener(annotation));
+ new AnnotationComposite(container, annotation, new RemoveListener(annotation), this, SWT.NULL);
}
}
}
- private class RemoveListener extends SelectionAdapter{
+ protected class RemoveListener extends SelectionAdapter{
private Annotation annotation;
public RemoveListener(Annotation annotation){
Annotation annotation = Annotation.NewInstance(text, type, language);
getEntity().addAnnotation(annotation);
- internalUpdateSection(true);
if(! getSection().isExpanded())
getSection().setExpanded(true);
internalUpdateSection(true);
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.entitysections;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.joda.time.DateTime;
+
+import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.model.common.User;
+import eu.etaxonomy.cdm.model.common.VersionableEntity;
+import eu.etaxonomy.taxeditor.forms.AbstractFormComposite;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 5, 2009
+ * @version 1.0
+ */
+public class CdmComposite extends AbstractFormComposite {
+
+ private static final Logger logger = Logger.getLogger(CdmComposite.class);
+ private Label label_created;
+ private Label label_createdBy;
+ private Label label_updated;
+ private Label label_updatedBy;
+ private Label label_uuid;
+
+ /**
+ * @param parent
+ * @param listener
+ * @param style
+ */
+ public CdmComposite(Composite parent, VersionableEntity entity, IPropertyChangeListener listener,
+ int style) {
+ super(parent, listener, style);
+ this.setLayout(new GridLayout(2, false));
+
+ toolkit.createLabel(this, "Created:");
+ label_created = toolkit.createLabel(this, null);
+ label_created.setLayoutData(FILL_GRID_HORIZONTALLY());
+
+ toolkit.createLabel(this, "Created by:");
+ label_createdBy = toolkit.createLabel(this, null);
+ label_createdBy.setLayoutData(FILL_GRID_HORIZONTALLY());
+
+ toolkit.createLabel(this, "Updated:");
+ label_updated = toolkit.createLabel(this, null);
+ label_updated.setLayoutData(FILL_GRID_HORIZONTALLY());
+
+ toolkit.createLabel(this, "Updated by:");
+ label_updatedBy = toolkit.createLabel(this, null);
+ label_updatedBy.setLayoutData(FILL_GRID_HORIZONTALLY());
+
+// toolkit.createLabel(this, "Uuid:");
+// label_uuid = toolkit.createLabel(this, null);
+// label_uuid.setLayoutData(FILL_GRID_HORIZONTALLY());
+ }
+
+ public void setEntity(VersionableEntity entity){
+ if(entity.getCreated() != null)
+ label_created.setText(dateFormat(entity.getCreated()));
+ if(entity.getCreatedBy() != null)
+ label_createdBy.setText(userFormat(entity.getCreatedBy()));
+ if(entity.getUpdated() != null)
+ label_updated.setText(dateFormat(entity.getUpdated()));
+ if(entity.getUpdatedBy() != null)
+ label_updatedBy.setText(userFormat(entity.getUpdatedBy()));
+// label_uuid.setText(entity.getUuid().toString());
+ }
+
+ private String dateFormat(DateTime dateTime){
+ // TODO agree on pattern or get pattern via preferences or locale
+ String pattern = null;
+ return CdmUtils.Nz(dateTime.toString(pattern));
+ }
+
+ private String userFormat(User user){
+ // TODO agree on what to display username or real name or even more from shibboleth
+ return CdmUtils.Nz(user.getUsername());
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.entitysections;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.taxeditor.forms.AbstractFormComposite;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 5, 2009
+ * @version 1.0
+ */
+public class CheckboxComposite extends AbstractFormComposite implements SelectionListener {
+
+ private static final Logger logger = Logger
+ .getLogger(CheckboxComposite.class);
+
+ private Button checkbox;
+
+ /**
+ *
+ * @param parent
+ * @param label
+ * @param initialState
+ * @param listener
+ * @param style
+ */
+ public CheckboxComposite(Composite parent, String label, boolean initialState,
+ IPropertyChangeListener listener, int style) {
+ super(parent, listener, style);
+
+ checkbox = toolkit.createButton(this, label, SWT.CHECK | style);
+ checkbox.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false));
+
+ checkbox.setSelection(initialState);
+
+ checkbox.addSelectionListener(this);
+ }
+
+ public void setSelection(boolean selected){
+ checkbox.removeSelectionListener(this);
+ checkbox.setSelection(selected);
+ checkbox.addSelectionListener(this);
+ }
+
+ public boolean getSelection(){
+ return checkbox.getSelection();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ public void widgetSelected(SelectionEvent e) {
+ firePropertyChangeEvent(null);
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {}
+}
*/
package eu.etaxonomy.taxeditor.forms.entitysections;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Composite;
-import eu.etaxonomy.taxeditor.forms.AbstractFormComposite;
+import eu.etaxonomy.cdm.model.common.Credit;
+import eu.etaxonomy.taxeditor.forms.MultilineTextWithLabel;
+import eu.etaxonomy.taxeditor.forms.selectioncomposites.AgentSelectionComposite;
/**
- * @author nho
- *
+ *
+ * @author n.hoffmann
+ * @created Nov 16, 2009
+ * @version 1.0
*/
-public class CreditComposite extends AbstractFormComposite {
+public class CreditComposite extends AbstractEntitySetElementComposite<Credit>{
+ private AgentSelectionComposite agentSelection;
+ private MultilineTextWithLabel text;
+
/**
* @param parent
* @param style
*/
- public CreditComposite(Composite parent, int style) {
- super(parent, style);
- // TODO Auto-generated constructor stub
+ public CreditComposite(Composite parent, Credit credit, SelectionListener removeListener, IPropertyChangeListener propertyChangeListener, int style) {
+ super(parent, credit, removeListener, propertyChangeListener, style);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.AbstractFormComposite#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+ */
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ element.setAgent(agentSelection.getSelection());
+ element.setText(text.getText());
+
+ super.propertyChange(event);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#createControls(org.eclipse.swt.widgets.Composite, int)
+ */
+ @Override
+ public void createControls(Composite parent, int style) {
+ agentSelection = new AgentSelectionComposite(parent, "Agent", null, this, style);
+ text = toolkit.createMultilineTextWithLabel(parent, "Text", this, 100, style);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#setElement(eu.etaxonomy.cdm.model.common.AnnotatableEntity)
+ */
+ @Override
+ public void setElement(Credit element) {
+ this.element = element;
+
+ agentSelection.setSelection(element.getAgent());
+ text.setText(element.getText());
}
}
*/
package eu.etaxonomy.taxeditor.forms.entitysections;
+import java.util.List;
+
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Composite;
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
/**
- * @author nho
- *
+ *
+ * @author n.hoffmann
+ * @created Nov 16, 2009
+ * @version 1.0
*/
public class CreditSection extends AbstractEntitySetSection<IdentifiableEntity> {
* @param entity
* @param style
*/
- protected CreditSection(Composite parent, IdentifiableEntity entity,
+ public CreditSection(Composite parent, IdentifiableEntity entity, IPropertyChangeListener listener,
int style) {
- super(parent, entity, style);
- setText("Credits");
+ super(parent, entity, "Credits", listener, style);
}
+
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.forms.AbstractEntitySetSection#createDynamicContents()
*/
@Override
protected void createDynamicContents() {
- // TODO Auto-generated method stub
+ List<Credit> credits = null;
+ if(getEntity() != null){
+ credits = getEntity().getCredits();
+ }
+ if(credits == null || credits.size() == 0){
+ toolkit.createLabel(container, "No credits yet.");
+ }else{
+ for(Credit credit : credits){
+ new CreditComposite(container, credit, new RemoveListener(credit), this, SWT.NULL);
+ }
+ }
}
private class RemoveListener extends SelectionAdapter{
+// $Id$
/**
- *
- */
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
package eu.etaxonomy.taxeditor.forms.entitysections;
+import org.apache.log4j.Logger;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Composite;
import eu.etaxonomy.cdm.model.common.DescriptionElementSource;
-import eu.etaxonomy.taxeditor.forms.AbstractFormComposite;
import eu.etaxonomy.taxeditor.forms.TextWithLabelComposite;
import eu.etaxonomy.taxeditor.forms.selectioncomposites.NameSelectionComposite;
import eu.etaxonomy.taxeditor.forms.selectioncomposites.ReferenceSelectionComposite;
/**
- * @author nho
+ * @author n.hoffmann
+ * @created Nov 16, 2009
+ * @version 1.0
+ * @param <T>
*/
-public class DescriptionElementSourceComposite extends AbstractFormComposite implements IPropertyChangeListener{
+public class DescriptionElementSourceComposite extends AbstractEntitySetElementComposite<DescriptionElementSource> {
+ /**
+ * @param parent
+ * @param element
+ * @param removeListener
+ * @param propertyChangelistener
+ * @param style
+ */
+ public DescriptionElementSourceComposite(Composite parent,
+ DescriptionElementSource element, SelectionListener removeListener,
+ IPropertyChangeListener propertyChangelistener, int style) {
+ super(parent, element, removeListener, propertyChangelistener, style);
+ }
- private DescriptionElementSource source;
+ private static final Logger logger = Logger
+ .getLogger(DescriptionElementSourceComposite.class);
+
+ private NameSelectionComposite nameSelection;
+
+
private ReferenceSelectionComposite citationSelection;
+
+
private TextWithLabelComposite microCitation;
- private NameSelectionComposite nameSelection;
+
- public DescriptionElementSourceComposite(Composite parent, DescriptionElementSource source, int style){
- super(parent, style);
- this.source = source;
-
- citationSelection = new ReferenceSelectionComposite(this, "Citation", source.getCitation(), SWT.NULL);
- citationSelection.addPropertyChangeListener(this);
-
- microCitation = new TextWithLabelComposite(this, "Citation Detail", source.getCitationMicroReference(), SWT.NULL);
- microCitation.addPropertyChangeListener(this);
-
- nameSelection = new NameSelectionComposite(this, "Name in Source", source.getNameUsedInSource(), SWT.NULL);
- nameSelection.addPropertyChangeListener(this);
- }
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.OriginalSourceComposite#createControls(org.eclipse.swt.widgets.Composite, int)
+ */
+ @Override
+ public void createControls(Composite parent, int style) {
+ citationSelection = new ReferenceSelectionComposite(parent, "Citation", null, this, SWT.NULL);
+ microCitation = new TextWithLabelComposite(parent, "Citation Detail", null, this, SWT.NULL);
+ nameSelection = new NameSelectionComposite(parent, "Name in Source", null, this, SWT.NULL);
+ }
- /**
- * @return the source
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.OriginalSourceComposite#setElement(eu.etaxonomy.cdm.model.common.OriginalSourceBase)
*/
- public DescriptionElementSource getSource() {
- return source;
+ @Override
+ public void setElement(DescriptionElementSource element) {
+ this.element = element;
+ citationSelection.setSelection(element.getCitation());
+ microCitation.setText(element.getCitationMicroReference());
+ nameSelection.setSelection(element.getNameUsedInSource());
}
-
+
/* (non-Javadoc)
- * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.OriginalSourceComposite#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
*/
+ @Override
public void propertyChange(PropertyChangeEvent event) {
- source.setCitation(citationSelection.getSelection());
- source.setCitationMicroReference(microCitation.getText());
- source.setNameUsedInSource(nameSelection.getSelection());
- firePropertyChangeEvent(event);
- }
-}
\ No newline at end of file
+ super.propertyChange(event);
+ element.setCitation(citationSelection.getSelection());
+ element.setCitationMicroReference(microCitation.getText());
+ element.setNameUsedInSource(nameSelection.getSelection());
+ }
+}
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.widgets.Section;
import eu.etaxonomy.cdm.model.common.DescriptionElementSource;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
/**
+ *
* @author n.hoffmann
- *
+ * @created Nov 17, 2009
+ * @version 1.0
*/
-public class OriginalSourceSection extends AbstractEntitySetSection<DescriptionElementBase> implements IPropertyChangeListener{
+public class DescriptionElementSourceSection extends AbstractEntitySetSection<DescriptionElementBase> implements IPropertyChangeListener{
- public OriginalSourceSection(Composite parent, DescriptionElementBase entity, int style){
- super(parent, entity, Section.TWISTIE | Section.COMPACT | style);
-
- setText("Citations");
+ /**
+ *
+ * @param parent
+ * @param entity
+ * @param listener
+ * @param style
+ */
+ public DescriptionElementSourceSection(Composite parent, DescriptionElementBase entity, IPropertyChangeListener listener, int style){
+ super(parent, entity, "Citations", listener, style);
}
/*
- *
+ * (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetSection#createDynamicContents()
*/
public void createDynamicContents() {
toolkit.createLabel(container, "No citations yet.");
}else{
for(DescriptionElementSource source : sources){
- DescriptionElementSourceComposite descriptionElementSourceComposite = toolkit.createDescriptionElementSourceComposite(container, source, SWT.NULL);
- descriptionElementSourceComposite.addPropertyChangeListener(this);
-
- Button button_remove = toolkit.createButton(container, "Remove", SWT.PUSH);
- button_remove.addSelectionListener(new RemoveListener(source));
+ new DescriptionElementSourceComposite(container, source, new RemoveListener(source), this, SWT.NULL);
}
}
}
+ /**
+ *
+ */
private class RemoveListener extends SelectionAdapter{
private DescriptionElementSource source;
addCitation.setToolTipText("Create a new citation");
return addCitation;
}
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
- */
- public void propertyChange(PropertyChangeEvent event) {
- firePropertyChangeEvent(event);
- }
}
*/
package eu.etaxonomy.taxeditor.forms.entitysections;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Composite;
-import eu.etaxonomy.taxeditor.forms.AbstractFormComposite;
+import eu.etaxonomy.cdm.model.common.Extension;
+import eu.etaxonomy.taxeditor.forms.MultilineTextWithLabel;
+import eu.etaxonomy.taxeditor.forms.termcombos.ExtensionTypeComboComposite;
/**
- * @author nho
- *
+ *
+ * @author n.hoffmann
+ * @created Nov 17, 2009
+ * @version 1.0
*/
-public class ExtensionComposite extends AbstractFormComposite {
+public class ExtensionComposite extends AbstractEntitySetElementComposite<Extension> {
/**
* @param parent
+ * @param element
+ * @param removeListener
+ * @param propertyChangelistener
* @param style
*/
- public ExtensionComposite(Composite parent, int style) {
- super(parent, style);
- // TODO Auto-generated constructor stub
+ public ExtensionComposite(Composite parent, Extension element,
+ SelectionListener removeListener,
+ IPropertyChangeListener propertyChangelistener, int style) {
+ super(parent, element, removeListener, propertyChangelistener, style);
+ }
+
+ private ExtensionTypeComboComposite extensionTypeCombo;
+ private MultilineTextWithLabel extensionValue;
+
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.AbstractFormComposite#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+ */
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ element.setType(extensionTypeCombo.getSelection());
+ element.setValue(extensionValue.getText());
+
+ super.propertyChange(event);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#createControls(org.eclipse.swt.widgets.Composite, int)
+ */
+ @Override
+ public void createControls(Composite parent, int style) {
+ extensionTypeCombo = new ExtensionTypeComboComposite(parent, "Extension Type", null, this, style);
+ extensionValue = toolkit.createMultilineTextWithLabel(parent, "Extension Content", this, 100, style);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#setElement(eu.etaxonomy.cdm.model.common.VersionableEntity)
+ */
+ @Override
+ public void setElement(Extension element) {
+ this.element = element;
+ extensionTypeCombo.setSelection(element.getType());
+ extensionValue.setText(element.getValue());
}
}
*/
package eu.etaxonomy.taxeditor.forms.entitysections;
+import java.util.Set;
+
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import eu.etaxonomy.cdm.model.common.Extension;
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
-import eu.etaxonomy.cdm.model.common.Marker;
/**
* @author nho
* @param entity
* @param style
*/
- protected ExtensionSection(Composite parent, IdentifiableEntity entity,
- int style) {
- super(parent, entity, style);
- setText("Extensions");
+ public ExtensionSection(Composite parent, IdentifiableEntity entity,
+ IPropertyChangeListener listener, int style) {
+ super(parent, entity, "Extensions", listener, style);
}
/* (non-Javadoc)
*/
@Override
protected void createDynamicContents() {
- // TODO Auto-generated method stub
+ Set<Extension> extensions = null;
+ if(getEntity() != null){
+ extensions = getEntity().getExtensions();
+ }
+ if(extensions == null || extensions.size() == 0){
+ toolkit.createLabel(container, "No extensions yet.");
+ }else{
+ for(Extension extension : extensions){
+ new ExtensionComposite(container, extension, new RemoveListener(extension), this, SWT.NULL);
+ }
+ }
}
private class RemoveListener extends SelectionAdapter{
*/
package eu.etaxonomy.taxeditor.forms.entitysections;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Composite;
-import eu.etaxonomy.taxeditor.forms.AbstractFormComposite;
+import eu.etaxonomy.cdm.model.common.IdentifiableSource;
+import eu.etaxonomy.taxeditor.forms.TextWithLabelComposite;
+import eu.etaxonomy.taxeditor.forms.selectioncomposites.ReferenceSelectionComposite;
/**
- * @author nho
- *
+ *
+ * @author n.hoffmann
+ * @created Nov 16, 2009
+ * @version 1.0
*/
-public class IdentifiableSourceComposite extends AbstractFormComposite {
+public class IdentifiableSourceComposite extends AbstractEntitySetElementComposite<IdentifiableSource>{
/**
* @param parent
+ * @param element
+ * @param removeListener
+ * @param propertyChangelistener
* @param style
*/
- public IdentifiableSourceComposite(Composite parent, int style) {
- super(parent, style);
- // TODO Auto-generated constructor stub
+ public IdentifiableSourceComposite(Composite parent, IdentifiableSource element,
+ SelectionListener removeListener,
+ IPropertyChangeListener propertyChangelistener, int style) {
+ super(parent, element, removeListener, propertyChangelistener, style);
+ }
+
+
+ private ReferenceSelectionComposite citationSelection;
+ private TextWithLabelComposite microCitation;
+
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+ */
+ public void propertyChange(PropertyChangeEvent event) {
+ element.setCitation(citationSelection.getSelection());
+ element.setCitationMicroReference(microCitation.getText());
+ super.propertyChange(event);
}
-}
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#createControls(org.eclipse.swt.widgets.Composite, int)
+ */
+ @Override
+ public void createControls(Composite parent, int style) {
+ citationSelection = new ReferenceSelectionComposite(parent, "Citation", null, this, SWT.NULL);
+ microCitation = new TextWithLabelComposite(parent, "Citation Detail", null, this, SWT.NULL);
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#setElement(eu.etaxonomy.cdm.model.common.VersionableEntity)
+ */
+ @Override
+ public void setElement(IdentifiableSource element) {
+ this.element = element;
+ citationSelection.setSelection(element.getCitation());
+ microCitation.setText(element.getCitationMicroReference());
+ }
+}
\ No newline at end of file
*/
package eu.etaxonomy.taxeditor.forms.entitysections;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
-import eu.etaxonomy.taxeditor.forms.AbstractFormComposite;
+import eu.etaxonomy.cdm.model.common.Marker;
+import eu.etaxonomy.taxeditor.forms.CheckboxComposite;
+import eu.etaxonomy.taxeditor.forms.termcombos.MarkerTypeComboComposite;
/**
- * @author nho
- *
+ *
+ * @author n.hoffmann
+ * @created Nov 16, 2009
+ * @version 1.0
*/
-public class MarkerComposite extends AbstractFormComposite {
+public class MarkerComposite extends AbstractEntitySetElementComposite<Marker>{
/**
* @param parent
+ * @param element
+ * @param removeListener
+ * @param propertyChangelistener
* @param style
*/
- public MarkerComposite(Composite parent, int style) {
- super(parent, style);
- // TODO Auto-generated constructor stub
+ public MarkerComposite(Composite parent, Marker element,
+ SelectionListener removeListener,
+ IPropertyChangeListener propertyChangelistener, int style) {
+ super(parent, element, removeListener, propertyChangelistener, style);
+ }
+
+ private MarkerTypeComboComposite markerTypeCombo;
+ private CheckboxComposite markerStateCheckbox;
+
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.AbstractFormComposite#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+ */
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ element.setMarkerType(markerTypeCombo.getSelection());
+ element.setFlag(markerStateCheckbox.getSelection());
+
+ super.propertyChange(event);
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#createControls(org.eclipse.swt.widgets.Composite, int)
+ */
+ @Override
+ public void createControls(Composite parent, int style) {
+ parent.setLayout(new GridLayout(2, false));
+
+ markerStateCheckbox = toolkit.createCheckbox(parent, null, false, this);
+
+ markerTypeCombo = new MarkerTypeComboComposite(parent, null, null, this, style);
+ markerTypeCombo.setLayoutData(FILL_GRID_HORIZONTALLY());
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#setElement(eu.etaxonomy.cdm.model.common.VersionableEntity)
+ */
+ @Override
+ public void setElement(Marker element) {
+ this.element = element;
+ markerStateCheckbox.setSelection(element.getFlag());
+ markerTypeCombo.setSelection(element.getMarkerType());
+ }
}
*/
package eu.etaxonomy.taxeditor.forms.entitysections;
+import java.util.Set;
+
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import eu.etaxonomy.cdm.model.common.AnnotatableEntity;
* @param entity
* @param style
*/
- protected MarkerSection(Composite parent, AnnotatableEntity entity, int style) {
- super(parent, entity, style);
- setText("Marker");
+ public MarkerSection(Composite parent, AnnotatableEntity entity, IPropertyChangeListener listener, int style) {
+ super(parent, entity, "Marker", listener, style);
}
/* (non-Javadoc)
*/
@Override
protected void createDynamicContents() {
- // TODO
+ Set<Marker> markers = null;
+ if(getEntity() != null){
+ markers = getEntity().getMarkers();
+ }
+
+ if(markers == null || markers.size() == 0){
+ toolkit.createLabel(container, "No markers yet.");
+ }else{
+ for(Marker marker : markers){
+ new MarkerComposite(container, marker, new RemoveListener(marker), this, SWT.NULL);
+ }
+ }
}
private class RemoveListener extends SelectionAdapter{
*/
package eu.etaxonomy.taxeditor.forms.entitysections;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Composite;
-import eu.etaxonomy.taxeditor.forms.AbstractFormComposite;
+import eu.etaxonomy.cdm.model.media.Media;
/**
- * @author nho
- *
+ *
+ * @author n.hoffmann
+ * @created Nov 17, 2009
+ * @version 1.0
*/
-public class MediaComposite extends AbstractFormComposite {
+public class MediaComposite extends AbstractEntitySetElementComposite<Media> {
/**
* @param parent
+ * @param element
+ * @param removeListener
+ * @param propertyChangelistener
* @param style
*/
- public MediaComposite(Composite parent, int style) {
- super(parent, style);
+ public MediaComposite(Composite parent, Media element,
+ SelectionListener removeListener,
+ IPropertyChangeListener propertyChangelistener, int style) {
+ super(parent, element, removeListener, propertyChangelistener, style);
// TODO Auto-generated constructor stub
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#createControls(org.eclipse.swt.widgets.Composite, int)
+ */
+ @Override
+ public void createControls(Composite parent, int style) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#setElement(eu.etaxonomy.cdm.model.common.VersionableEntity)
+ */
+ @Override
+ public void setElement(Media element) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.AbstractFormComposite#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+ */
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ // TODO Auto-generated method stub
+ super.propertyChange(event);
+ }
+
}
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Composite;
import eu.etaxonomy.cdm.model.media.Media;
/**
+ *
* @author nho
*
*/
* @param style
*/
protected MediaSection(Composite parent, IdentifiableMediaEntity entity,
- int style) {
- super(parent, entity, style);
- setText("Media");
+ IPropertyChangeListener listener, int style) {
+ super(parent, entity, "Media", listener, style);
}
/* (non-Javadoc)
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.entitysections;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
+import eu.etaxonomy.taxeditor.forms.TextWithLabelComposite;
+import eu.etaxonomy.taxeditor.forms.termcombos.NomenclaturalStatusTypeComboComposite;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 5, 2009
+ * @version 1.0
+ */
+public class NomenclaturalStatusComposite extends AbstractEntitySetElementComposite<NomenclaturalStatus> {
+ /**
+ * @param parent
+ * @param element
+ * @param removeListener
+ * @param propertyChangelistener
+ * @param style
+ */
+ public NomenclaturalStatusComposite(Composite parent,
+ NomenclaturalStatus element, SelectionListener removeListener,
+ IPropertyChangeListener propertyChangelistener, int style) {
+ super(parent, element, removeListener, propertyChangelistener, style);
+ }
+
+ private static final Logger logger = Logger
+ .getLogger(NomenclaturalStatusComposite.class);
+
+
+ private NomenclaturalStatusTypeComboComposite nomenclaturalStatusTypeCombo;
+
+ private TextWithLabelComposite ruleConsideredText;
+
+ private static final int VISIBLE_ITEMS = 10;
+
+
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.AbstractFormComposite#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+ */
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ element.setType(nomenclaturalStatusTypeCombo.getSelection());
+ element.setRuleConsidered(ruleConsideredText.getText());
+
+ super.propertyChange(event);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#createControls(org.eclipse.swt.widgets.Composite, int)
+ */
+ @Override
+ public void createControls(Composite parent, int style) {
+ nomenclaturalStatusTypeCombo = new NomenclaturalStatusTypeComboComposite(parent, "Nomenclatural Status", null, this, VISIBLE_ITEMS, style);
+ ruleConsideredText = toolkit.createTextWithLabelComposite(parent, "Rule Considered", "", this, style);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#setElement(eu.etaxonomy.cdm.model.common.VersionableEntity)
+ */
+ @Override
+ public void setElement(NomenclaturalStatus element) {
+ this.element = element;
+
+ nomenclaturalStatusTypeCombo.setSelection(element.getType());
+ ruleConsideredText.setText(element.getRuleConsidered());
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.entitysections;
+
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 5, 2009
+ * @version 1.0
+ */
+public class NomenclaturalStatusSection extends AbstractEntitySetSection<TaxonNameBase> {
+ /**
+ * @param parent
+ * @param entity
+ * @param title
+ * @param listener
+ * @param style
+ */
+ public NomenclaturalStatusSection(Composite parent,
+ TaxonNameBase entity, IPropertyChangeListener listener, int style) {
+ super(parent, entity, "Nomenclatural Status", listener, style);
+ }
+
+ private static final Logger logger = Logger
+ .getLogger(NomenclaturalStatusSection.class);
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetSection#createDynamicContents()
+ */
+ @Override
+ protected void createDynamicContents() {
+ Set<NomenclaturalStatus> nomenclaturalStatusSet = null;
+ if(getEntity() != null){
+ nomenclaturalStatusSet = getEntity().getStatus();
+ }
+
+ if(nomenclaturalStatusSet == null || nomenclaturalStatusSet.size() == 0){
+ toolkit.createLabel(container, "No nomenclatural status yet.");
+ }else{
+ for(NomenclaturalStatus nomenclaturalStatus : nomenclaturalStatusSet){
+ new NomenclaturalStatusComposite(container, nomenclaturalStatus, new RemoveListener(nomenclaturalStatus), this, SWT.NULL);
+ }
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetSection#getAddAction()
+ */
+ @Override
+ protected IAction getAddAction() {
+ Action addNomenclaturalStatus = new Action("add", Action.AS_PUSH_BUTTON){
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.action.Action#run()
+ */
+ @Override
+ public void run() {
+ NomenclaturalStatus nomenclaturalStatus = NomenclaturalStatus.NewInstance(null);
+ getEntity().addStatus(nomenclaturalStatus);
+ if(! getSection().isExpanded())
+ getSection().setExpanded(true);
+ internalUpdateSection(true);
+ }
+ };
+ addNomenclaturalStatus.setToolTipText("Create a new nomenclatural status");
+ return addNomenclaturalStatus;
+ }
+
+ private class RemoveListener extends SelectionAdapter{
+ private NomenclaturalStatus nomenclaturalStatus;
+
+ public RemoveListener(NomenclaturalStatus nomenclaturalStatus){
+ this.nomenclaturalStatus = nomenclaturalStatus;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ getEntity().removeStatus(nomenclaturalStatus);
+ internalUpdateSection(true);
+ }
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.entitysections;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+import eu.etaxonomy.cdm.model.name.NonViralName;
+import eu.etaxonomy.cdm.model.name.Rank;
+import eu.etaxonomy.taxeditor.forms.AbstractFormComposite;
+import eu.etaxonomy.taxeditor.forms.TextWithLabelComposite;
+import eu.etaxonomy.taxeditor.forms.termcombos.NomenclaturalStatusTypeComboComposite;
+import eu.etaxonomy.taxeditor.forms.termcombos.RankComboComposite;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 5, 2009
+ * @version 1.0
+ */
+public class NonViralNameDetailsComposite extends AbstractFormComposite {
+
+ private static final Logger logger = Logger
+ .getLogger(NonViralNameDetailsComposite.class);
+ private Label label_parsingStatus;
+ private TextWithLabelComposite text_cache;
+ private RankComboComposite combo_rank;
+ private TextWithLabelComposite text_uninomial;
+ private TextWithLabelComposite text_infragenericEpithet;
+ private TextWithLabelComposite text_specificEpithet;
+ private TextWithLabelComposite text_infraspecificEpithet;
+ private TextWithLabelComposite text_appendedPhrase;
+ private NomenclaturalStatusTypeComboComposite combo_nomenclaturalStatus;
+ private NonViralName nonViralName;
+ private Composite composite_nameParts;
+ private Rank rank;
+
+ /**
+ * @param parent
+ * @param listener
+ * @param style
+ */
+ public NonViralNameDetailsComposite(Composite parent,
+ IPropertyChangeListener listener, int style) {
+ super(parent, listener, style);
+ }
+
+ public void setInput(NonViralName name){
+ nonViralName = name;
+ rank = name.getRank();
+ createControls(this, this, SWT.NULL);
+ }
+
+ private void createControls(Composite parent, IPropertyChangeListener listener, int style){
+ if(composite_nameParts != null)
+ composite_nameParts.dispose();
+ composite_nameParts = toolkit.createComposite(this);
+ composite_nameParts.setLayout(new GridLayout(2, false));
+ composite_nameParts.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
+
+ createGenusOrUninomialControls(composite_nameParts, listener, style);
+ createInfragenerericEpithetControls(composite_nameParts, listener, style);
+ createSpecificEpithetControls(composite_nameParts, listener, style);
+ createInfraSpecificEpithetControls(composite_nameParts, listener, style);
+
+ parent.layout();
+ }
+
+ private void createGenusOrUninomialControls(Composite parent, IPropertyChangeListener listener, int style){
+ toolkit.createLabel(composite_nameParts, "Uninomial");
+ text_uninomial = toolkit.createTextWithLabelComposite(parent, null, nonViralName.getGenusOrUninomial(), listener, style);
+ }
+
+ private void createInfragenerericEpithetControls(Composite parent, IPropertyChangeListener listener, int style){
+ if(rank.isInfraGeneric()){
+ toolkit.createLabel(composite_nameParts, "Infrageneric Epithet");
+ text_infragenericEpithet = toolkit.createTextWithLabelComposite(parent, null, nonViralName.getInfraGenericEpithet(), listener, style);
+ }
+ }
+
+ private void createSpecificEpithetControls(Composite parent, IPropertyChangeListener listener, int style){
+ if(rank.isSpecies() || rank.isInfraSpecific()){
+ toolkit.createLabel(composite_nameParts, "Specific Epithet");
+ text_specificEpithet = toolkit.createTextWithLabelComposite(composite_nameParts, null, nonViralName.getSpecificEpithet(), this, SWT.NULL);
+ }
+ }
+
+ private void createInfraSpecificEpithetControls(Composite parent, IPropertyChangeListener listener, int style){
+ if(rank.isInfraSpecific()){
+ toolkit.createLabel(composite_nameParts, "Infraspecific Epithet");
+ text_infraspecificEpithet = toolkit.createTextWithLabelComposite(composite_nameParts, null, nonViralName.getInfraSpecificEpithet(), this, SWT.NULL);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.propertysheet.tabbed.section.AbstractCdmPropertySection#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+ */
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ super.propertyChange(event);
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.entitysections;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.media.Media;
+import eu.etaxonomy.cdm.model.media.MediaRepresentation;
+import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
+import eu.etaxonomy.taxeditor.forms.TextWithLabelComposite;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 5, 2009
+ * @version 1.0
+ */
+public class ProtologComposite extends AbstractEntitySetElementComposite<DescriptionElementBase> {
+
+ /**
+ * @param parent
+ * @param element
+ * @param removeListener
+ * @param propertyChangelistener
+ * @param style
+ */
+ public ProtologComposite(Composite parent, DescriptionElementBase element,
+ SelectionListener removeListener,
+ IPropertyChangeListener propertyChangelistener, int style) {
+ super(parent, element, removeListener, propertyChangelistener, style);
+ }
+
+ private static final Logger logger = Logger
+ .getLogger(ProtologComposite.class);
+
+ private TextWithLabelComposite protologUriText;
+ private MediaRepresentationPart mediaRepresentationPart;
+ private Media media;
+ private MediaRepresentation mediaRepresentation;
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.AbstractFormComposite#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+ */
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ mediaRepresentationPart.setUri(protologUriText.getText());
+
+ super.propertyChange(event);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#createControls(org.eclipse.swt.widgets.Composite, int)
+ */
+ @Override
+ public void createControls(Composite parent, int style) {
+ protologUriText = toolkit.createTextWithLabelComposite(parent, "Protolog URI", "", this, style);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#setElement(eu.etaxonomy.cdm.model.common.VersionableEntity)
+ */
+ @Override
+ public void setElement(DescriptionElementBase element) {
+ this.element = element;
+
+ if(element.getMedia().size() == 0){
+ element.addMedia(Media.NewInstance());
+ }
+ media = element.getMedia().iterator().next();
+
+
+ if(media.getRepresentations().size() == 0){
+ media.addRepresentation(MediaRepresentation.NewInstance());
+ }
+ mediaRepresentation = media.getRepresentations().iterator().next();
+
+ if(mediaRepresentation.getParts().size() == 0){
+ mediaRepresentation.addRepresentationPart(MediaRepresentationPart.NewInstance(null, null));
+ }
+
+ mediaRepresentationPart = mediaRepresentation.getParts().iterator().next();
+
+ protologUriText.setText(mediaRepresentationPart.getUri());
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.entitysections;
+
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.model.common.Annotation;
+import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
+import eu.etaxonomy.cdm.model.description.TextData;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 5, 2009
+ * @version 1.0
+ */
+public class ProtologSection extends AbstractEntitySetSection<TaxonNameDescription> {
+
+ private static final Logger logger = Logger
+ .getLogger(ProtologSection.class);
+
+ /**
+ * @param parent
+ * @param entity
+ * @param title
+ * @param listener
+ * @param style
+ */
+ public ProtologSection(Composite parent, TaxonNameDescription entity,
+ IPropertyChangeListener listener, int style) {
+ super(parent, entity, "Protologs", listener, style);
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetSection#createDynamicContents()
+ */
+ @Override
+ protected void createDynamicContents() {
+ Set<DescriptionElementBase> descriptions = null;
+ if(getEntity() != null){
+ descriptions = getEntity().getElements();
+ }
+
+ if(descriptions == null || descriptions.size() == 0){
+ toolkit.createLabel(container, "No protologs yet.");
+ }else{
+ for(DescriptionElementBase description : descriptions){
+ if(description.getFeature().equals(Feature.PROTOLOG())){
+ new ProtologComposite(container, description, new RemoveListener(description), this, SWT.NULL);
+ }
+ }
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetSection#getAddAction()
+ */
+ @Override
+ protected IAction getAddAction() {
+ Action addProtolog = new Action("add", Action.AS_PUSH_BUTTON){
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.action.Action#run()
+ */
+ @Override
+ public void run() {
+ getEntity().addElement(TextData.NewInstance(Feature.PROTOLOG()));
+
+ if(! getSection().isExpanded())
+ getSection().setExpanded(true);
+ internalUpdateSection(true);
+ }
+ };
+ addProtolog.setToolTipText("Create a new protolog");
+ return addProtolog;
+ }
+
+
+ private class RemoveListener extends SelectionAdapter{
+ private DescriptionElementBase description;
+
+ public RemoveListener(DescriptionElementBase description){
+ this.description = description;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ getEntity().removeElement(description);
+ internalUpdateSection(true);
+ }
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.entitysections;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+import eu.etaxonomy.cdm.model.reference.ReferenceBase;
+import eu.etaxonomy.cdm.model.reference.ReferenceType;
+import eu.etaxonomy.taxeditor.forms.AbstractFormComposite;
+import eu.etaxonomy.taxeditor.forms.MultilineTextWithLabel;
+import eu.etaxonomy.taxeditor.forms.TextWithLabelComposite;
+import eu.etaxonomy.taxeditor.forms.selectioncomposites.AgentSelectionComposite;
+import eu.etaxonomy.taxeditor.forms.selectioncomposites.InstitutionSelectionComposite;
+import eu.etaxonomy.taxeditor.forms.selectioncomposites.ReferenceSelectionComposite;
+import eu.etaxonomy.taxeditor.forms.termcombos.ReferenceTypeComboComposite;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 17, 2009
+ * @version 1.0
+ */
+public class ReferenceBaseDetailComposite extends AbstractFormComposite {
+ private static final Logger logger = Logger
+ .getLogger(ReferenceBaseDetailComposite.class);
+ private ReferenceBase referenceBase;
+ private Composite composite_referenceParts;
+ private TextWithLabelComposite text_edition;
+ private TextWithLabelComposite text_editor;
+ private TextWithLabelComposite text_isbn;
+ private TextWithLabelComposite text_issn;
+ private TextWithLabelComposite text_organisation;
+ private TextWithLabelComposite text_pages;
+ private TextWithLabelComposite text_placePublished;
+ private TextWithLabelComposite text_publisher;
+ private MultilineTextWithLabel text_referenceAbstract;
+ private InstitutionSelectionComposite selection_school;
+ private TextWithLabelComposite text_series;
+ private TextWithLabelComposite text_seriesPart;
+ private TextWithLabelComposite text_title;
+ private TextWithLabelComposite text_volume;
+ private TextWithLabelComposite text_uri;
+ private AgentSelectionComposite selection_agent;
+ private TimePeriodComposite composite_timePeriod;
+ private ReferenceSelectionComposite selection_inReference;
+ private InstitutionSelectionComposite selection_institution;
+ private ReferenceTypeComboComposite combo_referenceType;
+ private ReferenceType referenceType;
+
+ public void setInput(ReferenceBase referenceBase){
+ this.referenceBase = referenceBase;
+ referenceType = referenceBase.getType();
+
+ createControls(this, this, SWT.NULL);
+ }
+
+
+ public ReferenceBaseDetailComposite(Composite parent,
+ IPropertyChangeListener listener, int containerStyle){
+ super(parent, listener, containerStyle);
+ }
+
+ public void setEnabled(boolean enabled){
+ if(composite_referenceParts != null){
+ for(Control control : composite_referenceParts.getChildren()){
+ if(control instanceof Composite){
+ ((Composite) control).setEnabled(enabled);
+ }
+ }
+ }
+ }
+
+ private void createControls(Composite parent, IPropertyChangeListener listener, int style){
+ if(composite_referenceParts != null)
+ composite_referenceParts.dispose();
+
+ composite_referenceParts = toolkit.createComposite(parent);
+ composite_referenceParts.setLayout(new GridLayout(2, false));
+ composite_referenceParts.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
+
+ // title
+ toolkit.createLabel(composite_referenceParts, "Title");
+ text_title = toolkit.createTextComposite(composite_referenceParts, referenceBase.getTitle(), listener, style);
+ text_title.setLayoutData(FILL_GRID_HORIZONTALLY());
+
+ // author team
+ toolkit.createLabel(composite_referenceParts, "Author Team");
+ selection_agent = new AgentSelectionComposite(composite_referenceParts, null, referenceBase.getAuthorTeam(), listener, style);
+
+ // date published
+ toolkit.createLabel(composite_referenceParts, "Date Published");
+ composite_timePeriod = new TimePeriodComposite(composite_referenceParts, referenceBase.getDatePublished(), listener, style);
+
+ /* ReferenceBase END */
+
+ /* Generic */
+ if(referenceType != null && referenceType.equals(ReferenceType.Generic)){
+ createGenericControls(composite_referenceParts, listener, style);
+ }else if(referenceType != null){
+
+ createPublicationControls(composite_referenceParts, listener, style);
+
+ createVolumeControls(composite_referenceParts, listener, style);
+
+ createSectionControls(composite_referenceParts, listener, style);
+
+ createPrintedUnitControls(composite_referenceParts, listener, style);
+
+ }
+
+ // uri
+ toolkit.createLabel(composite_referenceParts, "URI");
+ text_uri = toolkit.createTextComposite(composite_referenceParts, referenceBase.getUri(), listener, style);
+
+
+ // reference abstract
+ text_referenceAbstract = toolkit.createMultilineTextWithLabel(composite_referenceParts, "Reference Abstract", listener, 100, style);
+ text_referenceAbstract.setText(referenceBase.getReferenceAbstract());
+ text_referenceAbstract.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
+
+ parent.layout();
+ }
+
+ /**
+ * Creates additional controls to edit a generic reference
+ *
+ * @param parent
+ * @param listener
+ * @param style
+ */
+ private void createGenericControls(Composite parent, IPropertyChangeListener listener, int style){
+ //editor
+ toolkit.createLabel(parent, "Editor");
+ text_editor = toolkit.createTextComposite(parent, referenceBase.getEditor(), listener, style);
+
+ // series
+ toolkit.createLabel(parent, "Series");
+ text_series = toolkit.createTextComposite(parent, referenceBase.getSeries(), listener, style);
+
+ // volume
+ toolkit.createLabel(parent, "Volume");
+ text_volume = toolkit.createTextComposite(parent, referenceBase.getVolume(), listener, style);
+
+ // pages
+ toolkit.createLabel(parent, "Pages");
+ text_pages = toolkit.createTextComposite(parent, referenceBase.getPages(), listener, style);
+ }
+
+ /**
+ * Creates addition controls to edit a publication
+ *
+ * @param parent
+ * @param listener
+ * @param style
+ */
+ private void createPublicationControls(Composite parent, IPropertyChangeListener listener, int style){
+ if(! referenceType.isPublication()){
+ return;
+ }
+
+ // placePublished
+ toolkit.createLabel(parent, "Place Published");
+ text_placePublished = toolkit.createTextComposite(parent, referenceBase.getPlacePublished(), listener, style);
+
+ // publisher
+ toolkit.createLabel(parent, "Publisher");
+ text_publisher = toolkit.createTextComposite(parent, referenceBase.getPublisher(), listener, style);
+
+ if(referenceType.equals(ReferenceType.Journal)){
+ //issn
+ toolkit.createLabel(parent, "ISSN");
+ text_issn = toolkit.createTextComposite(parent, referenceBase.getIssn(), listener, style);
+ }
+
+ if(referenceType.equals(ReferenceType.Report)){
+ // institution
+ toolkit.createLabel(parent, "Institution");
+ selection_institution = new InstitutionSelectionComposite(parent, null, referenceBase.getInstitution(), listener, style);
+ }
+
+ if(referenceType.equals(ReferenceType.Thesis)){
+ // school
+ toolkit.createLabel(parent, "School");
+ selection_school = new InstitutionSelectionComposite(parent, null, referenceBase.getSchool(), listener, style);
+ }
+
+ if(referenceType.equals(ReferenceType.Proceedings)){
+ //organization
+ toolkit.createLabel(parent, "Organisation");
+ text_organisation = toolkit.createTextComposite(parent, referenceBase.getOrganization(), listener, style);
+ }
+ }
+
+ private void createSectionControls(Composite parent, IPropertyChangeListener listener, int style){
+ if(! referenceType.isSection()){
+ return;
+ }
+
+ // pages
+ toolkit.createLabel(parent, "Pages");
+ text_pages = toolkit.createTextComposite(parent, referenceBase.getPages(), listener, style);
+
+ // in reference
+ toolkit.createLabel(parent, "In Reference"); // TODO Label May differ according to ReferenceType
+ selection_inReference = new ReferenceSelectionComposite(parent, null, referenceBase.getInReference(), listener, style);
+ }
+
+ private void createVolumeControls(Composite parent, IPropertyChangeListener listener, int style){
+ if(!referenceType.isVolumeReference()){
+ return;
+ }
+
+ // volume
+ toolkit.createLabel(parent, "Volume");
+ text_volume = toolkit.createTextComposite(parent, referenceBase.getVolume(), listener, style);
+ }
+
+ private void createPrintedUnitControls(Composite parent, IPropertyChangeListener listener, int style){
+ if(! referenceType.isPrintedUnit()){
+ return;
+ }
+
+ //editor
+ toolkit.createLabel(parent, "Editor");
+ text_editor = toolkit.createTextComposite(parent, referenceBase.getEditor(), listener, style);
+
+ // series part
+ toolkit.createLabel(parent, "Series Part");
+ text_seriesPart = toolkit.createTextComposite(parent, referenceBase.getSeriesPart(), listener, style);
+
+ if(referenceType.equals(ReferenceType.Book)){
+ // edition
+ toolkit.createLabel(parent, "Edition");
+ text_edition = toolkit.createTextComposite(parent, referenceBase.getEdition(), listener, style);
+
+ //isbn
+ toolkit.createLabel(parent, "ISBN");
+ text_isbn = toolkit.createTextComposite(parent, referenceBase.getIsbn(), listener, style);
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.AbstractFormComposite#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+ */
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+
+
+
+ super.propertyChange(event);
+ }
+
+}
*/
package eu.etaxonomy.taxeditor.forms.entitysections;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Composite;
+import eu.etaxonomy.cdm.model.media.Rights;
import eu.etaxonomy.taxeditor.forms.AbstractFormComposite;
+import eu.etaxonomy.taxeditor.forms.MultilineTextWithLabel;
+import eu.etaxonomy.taxeditor.forms.selectioncomposites.AgentSelectionComposite;
+import eu.etaxonomy.taxeditor.forms.termcombos.RightsTypeComboComposite;
/**
- * @author nho
- *
+ *
+ * @author n.hoffmann
+ * @created Nov 16, 2009
+ * @version 1.0
*/
-public class RightsComposite extends AbstractFormComposite {
+public class RightsComposite extends AbstractEntitySetElementComposite<Rights> {
/**
* @param parent
+ * @param element
+ * @param removeListener
+ * @param propertyChangelistener
* @param style
*/
- public RightsComposite(Composite parent, int style) {
- super(parent, style);
- // TODO Auto-generated constructor stub
+ public RightsComposite(Composite parent, Rights element,
+ SelectionListener removeListener,
+ IPropertyChangeListener propertyChangelistener, int style) {
+ super(parent, element, removeListener, propertyChangelistener, style);
+ }
+
+ private RightsTypeComboComposite rightsTypeCombo;
+ private AgentSelectionComposite agentSelection;
+ private MultilineTextWithLabel text;
+
+
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.AbstractFormComposite#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+ */
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ element.setType(rightsTypeCombo.getSelection());
+ element.setAgent(agentSelection.getSelection());
+ element.setText(text.getText());
+
+ super.propertyChange(event);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#createControls(org.eclipse.swt.widgets.Composite, int)
+ */
+ @Override
+ public void createControls(Composite parent, int style) {
+ rightsTypeCombo = new RightsTypeComboComposite(parent, "Rights Type", null, this, style);
+ agentSelection = new AgentSelectionComposite(parent, "Agent", null, this, style);
+ text = toolkit.createMultilineTextWithLabel(parent, "Text", this, 100, style);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#setElement(eu.etaxonomy.cdm.model.common.VersionableEntity)
+ */
+ @Override
+ public void setElement(Rights element) {
+ this.element = element;
+ rightsTypeCombo.setSelection(element.getType());
+ agentSelection.setSelection(element.getAgent());
+ text.setText(element.getText());
}
}
*/
package eu.etaxonomy.taxeditor.forms.entitysections;
+import java.util.Set;
+
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
* @param entity
* @param style
*/
- protected RightsSection(Composite parent, IdentifiableEntity entity,
- int style) {
- super(parent, entity, style);
- setText("Rights");
+ public RightsSection(Composite parent, IdentifiableEntity entity,
+ IPropertyChangeListener listener, int style) {
+ super(parent, entity, "Rights", listener, style);
}
/* (non-Javadoc)
*/
@Override
protected void createDynamicContents() {
- // TODO Auto-generated method stub
+ Set<Rights> rights = null;
+ if(getEntity() != null){
+ rights = getEntity().getRights();
+ }
+ if(rights == null || rights.size() == 0){
+ toolkit.createLabel(container, "No rights yet.");
+ }else{
+ for(Rights right : rights){
+ new RightsComposite(container, right, new RemoveListener(right), this, SWT.NULL);
+ }
+ }
}
private class RemoveListener extends SelectionAdapter{
*/
package eu.etaxonomy.taxeditor.forms.entitysections;
+import java.util.Set;
+
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Composite;
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
+import eu.etaxonomy.cdm.model.common.OriginalSourceBase;
/**
- * @author nho
- *
+ *
+ * @author n.hoffmann
+ * @created Nov 17, 2009
+ * @version 1.0
*/
public class SourceSection extends AbstractEntitySetSection<IdentifiableEntity> {
* @param entity
* @param style
*/
- protected SourceSection(Composite parent, IdentifiableEntity entity,
- int style) {
- super(parent, entity, style);
- setText("Sources");
+ public SourceSection(Composite parent, IdentifiableEntity entity,
+ IPropertyChangeListener listener, int style) {
+ super(parent, entity, "Sources", listener, style);
}
/* (non-Javadoc)
*/
@Override
protected void createDynamicContents() {
- // TODO Auto-generated method stub
+ Set<IdentifiableSource> sources = null;
+ if(getEntity() != null){
+ sources = getEntity().getSources();
+ }
+ if(sources == null || sources.size() == 0){
+ toolkit.createLabel(container, "No citations yet.");
+ }else{
+ for(IdentifiableSource source : sources){
+ new IdentifiableSourceComposite(container, source, new RemoveListener(source), this, SWT.NULL);
+ }
+ }
}
private class RemoveListener extends SelectionAdapter{
- private IdentifiableSource source;
+ private OriginalSourceBase source;
- public RemoveListener(IdentifiableSource source){
+ public RemoveListener(OriginalSourceBase source){
this.source = source;
}
*/
@Override
public void widgetSelected(SelectionEvent e) {
- getEntity().removeSource(source);
+ getEntity().removeSource((IdentifiableSource) source);
internalUpdateSection(true);
}
}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.entitysections;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.model.common.TimePeriod;
+import eu.etaxonomy.taxeditor.forms.AbstractFormComposite;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 17, 2009
+ * @version 1.0
+ */
+public class TimePeriodComposite extends AbstractFormComposite {
+
+
+ private static final Logger logger = Logger
+ .getLogger(TimePeriodComposite.class);
+
+ /**
+ * @param parent
+ * @param listener
+ * @param style
+ */
+ public TimePeriodComposite(Composite parent, TimePeriod timePeriod,
+ IPropertyChangeListener listener, int style) {
+ super(parent, listener, style);
+ // TODO Auto-generated constructor stub
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.entitysections;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.taxeditor.forms.AbstractFormComposite;
+import eu.etaxonomy.taxeditor.forms.TextWithLabelComposite;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 18, 2009
+ * @version 1.0
+ */
+public class ToggleableTextField extends AbstractFormComposite implements SelectionListener {
+
+
+ private static final Logger logger = Logger
+ .getLogger(ToggleableTextField.class);
+ private TextWithLabelComposite text_cache;
+ private Composite container;
+ private Button button_toggle;
+
+ private boolean state;
+
+ /**
+ * @param parent
+ * @param listener
+ * @param style
+ */
+ public ToggleableTextField(Composite parent,
+ IPropertyChangeListener listener, String label, String initialText, boolean initialState, int style) {
+ super(parent, listener, style);
+
+
+ container = toolkit.createComposite(this);
+ container.setLayout(new GridLayout(2, false));
+ container.setLayoutData(FILL_GRID_HORIZONTALLY());
+
+ text_cache = toolkit.createTextWithLabelComposite(container, label, initialText, this, SWT.NULL);
+ text_cache.setLayoutData(FILL_GRID_HORIZONTALLY());
+ button_toggle = toolkit.createButton(container, "Toggle", SWT.TOGGLE);
+ button_toggle.setLayoutData(new GridData(SWT.RIGHT, SWT.END, false, false));
+ button_toggle.addSelectionListener(this);
+
+ setState(initialState);
+ }
+
+ public void setText(String text){
+ if(text != null){
+ text_cache.setText(text);
+ }
+ }
+
+ public String getText(){
+ return text_cache.getText();
+ }
+
+ /**
+ * @param initialState
+ */
+ public void setState(boolean state) {
+ this.state = state;
+ text_cache.setEnabled(state);
+ button_toggle.setSelection(state);
+ }
+
+ public boolean getState(){
+ return state;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ public void widgetSelected(SelectionEvent e) {
+ setState(button_toggle.getSelection());
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {}
+}
*/
package eu.etaxonomy.taxeditor.forms.selectioncomposites;
+import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import eu.etaxonomy.taxeditor.forms.AbstractFormComposite;
/**
- * @author nho
- *
+ *
+ * @author n.hoffmann
+ * @created Nov 17, 2009
+ * @version 1.0
+ * @param <T>
*/
public abstract class AbstractSelectionComposite<T extends IdentifiableEntity> extends AbstractFormComposite implements SelectionListener{
* @param parent
* @param style
*/
- public AbstractSelectionComposite(Composite parent, String labelString, T selection, int style) {
- super(parent, style);
+ public AbstractSelectionComposite(Composite parent, String labelString, T selection, IPropertyChangeListener listener, int style) {
+ super(parent, listener, style);
this.selection = selection;
GridLayout layout = (GridLayout) this.getLayout();
layout.numColumns = 2;
- label = toolkit.createLabel(this, labelString, SWT.WRAP);
- GridData labelData = new GridData();
- labelData.horizontalSpan = 2;
- label.setLayoutData(labelData);
+ if(labelString != null){
+ label = toolkit.createLabel(this, labelString, SWT.WRAP);
+ GridData labelData = new GridData();
+ labelData.horizontalSpan = 2;
+ label.setLayoutData(labelData);
+ }
text = toolkit.createText(this, "", SWT.BORDER | SWT.WRAP);
text.setEditable(false);
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.selectioncomposites;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.taxeditor.dialogs.filteredSelection.FilteredAgentSelectionDialog;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 16, 2009
+ * @version 1.0
+ */
+public class AgentSelectionComposite extends AbstractSelectionComposite<AgentBase> {
+
+
+ private static final Logger logger = Logger
+ .getLogger(AgentSelectionComposite.class);
+ /**
+ * @param parent
+ * @param labelString
+ * @param selection
+ * @param listener
+ * @param style
+ */
+ public AgentSelectionComposite(Composite parent, String labelString,
+ AgentBase selection, IPropertyChangeListener listener, int style) {
+ super(parent, labelString, selection, listener, style);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.selectioncomposites.AbstractSelectionComposite#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ super.widgetSelected(e);
+ selection = FilteredAgentSelectionDialog.selectAgent(getShell(), selection);
+ updateText();
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.selectioncomposites;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.model.agent.Institution;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 17, 2009
+ * @version 1.0
+ */
+public class InstitutionSelectionComposite extends
+ AbstractSelectionComposite<Institution> {
+
+
+ private static final Logger logger = Logger
+ .getLogger(InstitutionSelectionComposite.class);
+
+ /**
+ * @param parent
+ * @param labelString
+ * @param selection
+ * @param listener
+ * @param style
+ */
+ public InstitutionSelectionComposite(Composite parent, String labelString,
+ Institution selection, IPropertyChangeListener listener, int style) {
+ super(parent, labelString, selection, listener, style);
+ // TODO Auto-generated constructor stub
+ }
+}
*/
package eu.etaxonomy.taxeditor.forms.selectioncomposites;
+import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Composite;
* @param style
*/
public NameSelectionComposite(Composite parent, String labelString,
- TaxonNameBase selection, int style) {
- super(parent, labelString, selection, style);
+ TaxonNameBase selection, IPropertyChangeListener listener, int style) {
+ super(parent, labelString, selection, listener, style);
}
/* (non-Javadoc)
*/
package eu.etaxonomy.taxeditor.forms.selectioncomposites;
+import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Composite;
* @param style
*/
public ReferenceSelectionComposite(Composite parent, String labelString,
- ReferenceBase selection, int style) {
- super(parent, labelString, selection, style);
+ ReferenceBase selection, IPropertyChangeListener listener, int style) {
+ super(parent, labelString, selection, listener, style);
}
/* (non-Javadoc)
*/
package eu.etaxonomy.taxeditor.forms.selectioncomposites;
+import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Composite;
* @param style
*/
public TaxonSelectionComposite(Composite parent, String labelString,
- TaxonBase selection, int style) {
- super(parent, labelString, selection, style); }
+ TaxonBase selection, IPropertyChangeListener listener, int style) {
+ super(parent, labelString, selection, listener, style); }
/* (non-Javadoc)
* @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
import eu.etaxonomy.taxeditor.forms.AbstractFormComposite;
import eu.etaxonomy.taxeditor.preference.LanguageMenuPreferences;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
- * @author nho
- *
+ *
+ * @author n.hoffmann
+ * @created Nov 5, 2009
+ * @version 1.0
+ * @param <T>
*/
-public abstract class AbstractTermComboComposite<T extends DefinedTermBase> extends AbstractFormComposite implements SelectionListener, IPropertyChangeListener{
+public abstract class AbstractTermComboComposite<T extends DefinedTermBase> extends AbstractFormComposite implements SelectionListener{
private static final Logger logger = Logger.getLogger(AbstractTermComboComposite.class);
* @param parent
* @param style
*/
- public AbstractTermComboComposite(Composite parent, String labelString, T selection, int visibleItems, int style) {
- super(parent, style);
+ public AbstractTermComboComposite(Composite parent, String labelString, T selection, IPropertyChangeListener listener, int visibleItems, int style) {
+ super(parent, listener, style);
- label = toolkit.createLabel(this, labelString);
- label.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
+ if(labelString != null){
+ label = toolkit.createLabel(this, labelString);
+ label.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
+ }
// create combo
combo = new Combo(this, SWT.BORDER | SWT.READ_ONLY);
if(termComparator != null)
Collections.sort(preferredTerms, termComparator);
for (T term : preferredTerms) {
- String description = term.getDescription();
- if (description == null) {
- logger.warn("No description for " + term + " - not added to combo");
+ String label = term.getLabel(CdmStore.getDefaultLanguage());
+ if (label == null) {
+ logger.warn("No label for " + term + " - not added to combo");
continue;
}
- combo.add(description);
+ combo.add(label);
terms.add(term);
i++;
*/
public void widgetSelected(SelectionEvent e) {
selection = terms.get(combo.getSelectionIndex());
+ firePropertyChangeEvent(null);
}
/* (non-Javadoc)
* @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
*/
public void propertyChange(PropertyChangeEvent event) {
- if (PreferencesUtil.PREFERRED_TERMS_CHANGE.equals(event.getProperty())) {
+ super.propertyChange(event);
+ if (event != null && PreferencesUtil.PREFERRED_TERMS_CHANGE.equals(event.getProperty())) {
populateTerms();
}
}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.termcombos;
+
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.model.common.ExtensionType;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 16, 2009
+ * @version 1.0
+ */
+public class ExtensionTypeComboComposite extends AbstractTermComboComposite<ExtensionType> {
+
+ private static final Logger logger = Logger
+ .getLogger(ExtensionTypeComboComposite.class);
+
+ private static final int VISIBLE_ITEMS = 10;
+
+ /**
+ * @param parent
+ * @param labelString
+ * @param selection
+ * @param listener
+ * @param visibleItems
+ * @param style
+ */
+ public ExtensionTypeComboComposite(Composite parent, String labelString,
+ ExtensionType selection, IPropertyChangeListener listener, int style) {
+ super(parent, labelString, selection, listener, VISIBLE_ITEMS, style);
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.termcombos.AbstractTermComboComposite#preferredTerms()
+ */
+ @Override
+ protected List<ExtensionType> preferredTerms() {
+ return PreferencesUtil.getPreferredExtensionTypes();
+ }
+}
import java.util.List;
+import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.swt.widgets.Composite;
import eu.etaxonomy.cdm.model.common.Language;
* @param selection
* @param style
*/
- public LanguageComboComposite(Composite parent, String labelString, Language selection, int style) {
- super(parent, labelString, selection, VISIBLE_ITEMS, style);
+ public LanguageComboComposite(Composite parent, String labelString, Language selection, IPropertyChangeListener listener, int style) {
+ super(parent, labelString, selection, listener, VISIBLE_ITEMS, style);
}
/* (non-Javadoc)
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.termcombos;
+
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.model.common.MarkerType;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 16, 2009
+ * @version 1.0
+ */
+public class MarkerTypeComboComposite extends AbstractTermComboComposite<MarkerType> {
+
+ private static final Logger logger = Logger
+ .getLogger(MarkerTypeComboComposite.class);
+
+ private static final int VISIBLE_ITEMS = 10;
+
+ /**
+ * @param parent
+ * @param labelString
+ * @param selection
+ * @param listener
+ * @param visibleItems
+ * @param style
+ */
+ public MarkerTypeComboComposite(Composite parent, String labelString,
+ MarkerType selection, IPropertyChangeListener listener, int style) {
+ super(parent, labelString, selection, listener, VISIBLE_ITEMS, style);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.termcombos.AbstractTermComboComposite#preferredTerms()
+ */
+ @Override
+ protected List<MarkerType> preferredTerms() {
+ return PreferencesUtil.getPreferredMarkerTypes();
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.termcombos;
+
+import java.util.List;
+
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 5, 2009
+ * @version 1.0
+ */
+public class NomenclaturalStatusTypeComboComposite extends
+ AbstractTermComboComposite<NomenclaturalStatusType> {
+ /**
+ * @param parent
+ * @param labelString
+ * @param selection
+ * @param listener
+ * @param visibleItems
+ * @param style
+ */
+ public NomenclaturalStatusTypeComboComposite(Composite parent,
+ String labelString, NomenclaturalStatusType selection,
+ IPropertyChangeListener listener, int visibleItems, int style) {
+ super(parent, labelString, selection, listener, visibleItems, style);
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.termcombos.AbstractTermComboComposite#preferredTerms()
+ */
+ @Override
+ protected List<NomenclaturalStatusType> preferredTerms() {
+ return PreferencesUtil.getPreferredNomenclaturalStatusTypes();
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.termcombos;
+
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.model.name.Rank;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 5, 2009
+ * @version 1.0
+ */
+public class RankComboComposite extends AbstractTermComboComposite<Rank> {
+
+ private static final Logger logger = Logger
+ .getLogger(RankComboComposite.class);
+
+ private static final int VISIBLE_ITEMS = 10;
+
+ /**
+ * @param parent
+ * @param labelString
+ * @param selection
+ * @param listener
+ * @param visibleItems
+ * @param style
+ */
+ public RankComboComposite(Composite parent, String labelString,
+ Rank selection, IPropertyChangeListener listener, int style) {
+ super(parent, labelString, selection, listener, VISIBLE_ITEMS, style);
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.termcombos.AbstractTermComboComposite#preferredTerms()
+ */
+ @Override
+ protected List<Rank> preferredTerms() {
+ return PreferencesUtil.getPreferredRanks();
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.termcombos;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.model.reference.ReferenceType;
+import eu.etaxonomy.taxeditor.forms.AbstractFormComposite;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 16, 2009
+ * @version 1.0
+ */
+public class ReferenceTypeComboComposite extends AbstractFormComposite implements SelectionListener{
+ private static final Logger logger = Logger
+ .getLogger(ReferenceTypeComboComposite.class);
+
+ private static final int VISIBLE_ITEMS = 5;
+
+ private ReferenceType selection;
+
+ private Combo combo;
+
+ private List<ReferenceType> referenceTypeList;
+
+ /**
+ * @param parent
+ * @param listener
+ * @param style
+ */
+ public ReferenceTypeComboComposite(Composite parent, ReferenceType referenceType,
+ IPropertyChangeListener listener, int style) {
+ super(parent, listener, style);
+ // create combo
+ combo = new Combo(this, SWT.BORDER | SWT.READ_ONLY);
+ combo.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
+ combo.setVisibleItemCount(VISIBLE_ITEMS);
+
+ referenceTypeList = new ArrayList<ReferenceType>();
+
+ populateTypes();
+
+ combo.addSelectionListener(this);
+ setSelection(referenceType);
+ }
+
+ /**
+ *
+ */
+ private void populateTypes() {
+ for(ReferenceType referenceType : ReferenceType.values()){
+ referenceTypeList.add(referenceType);
+ combo.add(referenceType.getMessage(CdmStore.getDefaultLanguage()));
+ }
+ }
+
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ public void widgetSelected(SelectionEvent e) {
+ selection = referenceTypeList.get(combo.getSelectionIndex());
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {}
+
+ /**
+ * @param selection the selection to set
+ */
+ public void setSelection(ReferenceType selection) {
+ this.selection = selection;
+ combo.select(referenceTypeList.indexOf(selection));
+ }
+
+ public void addSelectionListener(SelectionListener listener){
+ combo.addSelectionListener(listener);
+ }
+
+ public void removeSelectionListener(SelectionListener listener){
+ combo.removeSelectionListener(listener);
+ }
+
+ /**
+ * @return the selection
+ */
+ public ReferenceType getSelection() {
+ return selection;
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.termcombos;
+
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.model.media.RightsTerm;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 16, 2009
+ * @version 1.0
+ */
+public class RightsTypeComboComposite extends AbstractTermComboComposite<RightsTerm> {
+
+ private static final Logger logger = Logger
+ .getLogger(RightsTypeComboComposite.class);
+
+ private static final int VISIBLE_ITEMS = 10;
+
+ /**
+ * @param parent
+ * @param labelString
+ * @param selection
+ * @param listener
+ * @param visibleItems
+ * @param style
+ */
+ public RightsTypeComboComposite(Composite parent, String labelString,
+ RightsTerm selection, IPropertyChangeListener listener, int style) {
+ super(parent, labelString, selection, listener, VISIBLE_ITEMS, style);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.termcombos.AbstractTermComboComposite#preferredTerms()
+ */
+ @Override
+ protected List<RightsTerm> preferredTerms() {
+ return PreferencesUtil.getPreferredRightsTypes();
+ }
+}
import eu.etaxonomy.cdm.model.common.TermBase;\r
import eu.etaxonomy.cdm.model.description.Feature;\r
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;\r
+import eu.etaxonomy.cdm.model.media.RightsTerm;\r
import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;\r
import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;\r
/** @return a <code>List</code> containing user preferred <code>ExtensionType</code> terms */\r
public static List<ExtensionType> getPreferredExtensionTypes() { return getPreferredTerms(VocabularyStore.getExtensionTypes()); }\r
\r
+ /** @return a <code>List</code> containing user preferred <code>RightsType</code> terms */\r
+ public static List<RightsTerm> getPreferredRightsTypes() { return getPreferredTerms(VocabularyStore.getRightsTypes());}\r
+ \r
\r
/**\r
* Generic method to set term preferences\r
import eu.etaxonomy.cdm.model.common.VocabularyEnum;
import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
+import eu.etaxonomy.cdm.model.media.RightsTerm;
import eu.etaxonomy.cdm.model.name.NameRelationshipType;
import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
import eu.etaxonomy.cdm.model.name.Rank;
return extensionTypes;
}
+ /**
+ * @return
+ */
+ public static Set<RightsTerm> getRightsTypes() {
+ Set rightsTypes = getTermVocabulary(VocabularyEnum.RightsTerm).getTermsOrderedByLabels(CdmStore.getDefaultLanguage());
+ return rightsTypes;
+ }
+
+
/**
* Retrieve all ranks from data store.
*
public static TermVocabulary<DefinedTermBase> getTermVocabulary(VocabularyEnum vocabularyType){
return CdmStore.getVocabularyService().getVocabulary(vocabularyType);
}
-
}