From e87aebf1ffbab89de0f694c4dc0c8448e22b61a7 Mon Sep 17 00:00:00 2001 From: Patric Plitzner
Constructor for LanguageStringWithLabelElement.
+ * + * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object. + * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object. + * @param labelString a {@link java.lang.String} object. + * @param languageString a {@link eu.etaxonomy.cdm.model.common.LanguageString} object. + * @param style a int. + */ + protected LanguageTextFieldController(Text controlledText, CdmFormFactory formFactory, + ICdmFormElement parentElement, + LanguageString languageString) { + this(controlledText, formFactory, parentElement, languageString, null); + } + + /** + *Constructor for LanguageStringWithLabelElement.
+ * + * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object. + * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object. + * @param labelString a {@link java.lang.String} object. + * @param languageString a {@link eu.etaxonomy.cdm.model.common.LanguageString} object. + * @param height a int. + * @param style a int. + */ + protected LanguageTextFieldController(Text controlledText, CdmFormFactory formFactory, + ICdmFormElement parentElement, + LanguageString languageString, Integer height) { + super(controlledText, formFactory, parentElement, null, height); + + setLanguageString(languageString); + } + + /** + *Getter for the field languageString
.
Setter for the field languageString
.
+ * Constructor for PointElement. + *
+ * + * @param formFactory + * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} + * object. + * @param formElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param point + * a {@link eu.etaxonomy.cdm.model.location.Point} object. + * @param style + * a int. + */ + public PointFieldController(PointField pointField, CdmFormFactory formFactory, ICdmFormElement formElement, Point point, final int style) { + super(formFactory, formElement); + + setPropertyChangeListeners(formFactory.getPropertyChangeListeners()); + formFactory.addPropertyChangeListener(this); + + text_latitude = new TextFieldController(pointField.getText_latitude(), getFormFactory(), formElement, null, style); + text_latitudeParsed = new TextFieldController(pointField.getText_latitudeParsed(), getFormFactory(), formElement, null, style); + text_longitude = new TextFieldController(pointField.getText_longitude(), getFormFactory(), formElement, null, style); + text_longitudeParsed = new TextFieldController(pointField.getText_longitudeParsed(), getFormFactory(), formElement, null, style); + number_errorRadius = new NumberFieldController(pointField.getNumber_errorRadius(), getFormFactory(), formElement, (Integer)null); + combo_referenceSystem = new TermComboFieldController+ * setEntity + *
+ * + * @param point + * a {@link eu.etaxonomy.cdm.model.location.Point} object. + */ + public void setEntity(Point point) { + setPoint(point); + } + + /** + *
+ * Setter for the field point
.
+ *
+ * Getter for the field point
.
+ *
+ * Constructor for AbstractTermComboElement. + *
+ * + * @param parentElement + * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} + * object. + * @param style + * a int. + * @param formFactory + * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} + * object. + * @param labelString + * a {@link java.lang.String} object. + * @param selection + * a T object. + * @param visibleItems + * a int. + * @param
+ * Getter for the field selection
.
+ *
+ * Sets the selection of the combo to the given T object. + *
+ *
+ * Passing null
to this method will set the selection to the
+ * empty element and effectively clear the selection
+ *
null
to clear the selection
+ */
+ public void setSelection(T selection) {
+ this.selection = selection;
+
+ this.selection = selection;
+
+ Listener[] listeners = combo.getListeners(SWT.Selection);
+
+ for (Listener listener : listeners) {
+ combo.removeListener(SWT.Selection, listener);
+ }
+ int selectedIndex;
+ if (selection == null) {
+ // set selection to the emptyElement
+ selectedIndex = 0;
+ } else {
+ selectedIndex = terms.indexOf(selection);
+ if (selectedIndex == -1) {
+ createTermNotInPreferredTerms(selection);
+ selectedIndex = terms.indexOf(selection);
+ }
+ }
+ combo.select(selectedIndex);
+
+ for (Listener listener : listeners) {
+ combo.addListener(SWT.Selection, listener);
+ }
+ }
+
+ /**
+ * Fills the combo with elements and sets up the convenience functions for
+ * selection index
+ *
+ * @param preferredTerms
+ */
+ private void populateTerms(List+ * preferredTerms + *
+ * + * @return a {@link java.util.List} object. + */ + protected List+ * addSelectionListener + *
+ * + * @param listener + * a {@link org.eclipse.swt.events.SelectionListener} object. + */ + public void addSelectionListener(SelectionListener listener) { + combo.addSelectionListener(listener); + } + + /** + *+ * removeSelectionListener + *
+ * + * @param listener + * a {@link org.eclipse.swt.events.SelectionListener} object. + */ + public void removeSelectionListener(SelectionListener listener) { + combo.removeSelectionListener(listener); + } + + /* + * (non-Javadoc) + * + * @see + * org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt + * .events.SelectionEvent) + */ + /** {@inheritDoc} */ + @Override + public void widgetSelected(SelectionEvent e) { + selection = terms.get(combo.getSelectionIndex()); + firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e)); + } + + /* + * (non-Javadoc) + * + * @see java.beans.PropertyChangeListener#propertyChange(java.beans. + * PropertyChangeEvent) + */ + /** {@inheritDoc} */ + @Override + public void propertyChange(PropertyChangeEvent event) { + super.propertyChange(event); + if (event != null && PreferencesUtil.PREFERRED_TERMS_CHANGE.equals(event.getProperty())) { + populateTerms(getPreferredTerms()); + } + } + + /** {@inheritDoc} */ + @Override + public void setSelected(boolean selected) { + setBackground(selected ? SELECTED : getPersistentBackground()); + } + + /** {@inheritDoc} */ + @Override + public void widgetDisposed(DisposeEvent e) { + PreferencesUtil.getPreferenceStore().removePropertyChangeListener(this); + } + + // not used + /** {@inheritDoc} */ + @Override + public void widgetDefaultSelected(SelectionEvent e) { + } + + /** {@inheritDoc} */ + @Override + public void setIrrelevant(boolean irrelevant) { + String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT : Resources.COLOR_COMPOSITE_BACKGROUND; + + Color color = StoreUtil.getColor(colorId); + combo.setBackground(color); + } + +// /** {@inheritDoc} */ +// @Override +// public void setBackground(Color color) { +// if (label != null) +// label.setBackground(color); +// } + + /** +* +*/ + protected TermManager getTermManager() { + return CdmStore.getTermManager(); + } + + /** + * + * @return + */ + public int getVisibleItemCount() { + return combo.getVisibleItemCount(); + } + + /** + * + * @param count + */ + public void setVisibleItemCount(int count) { + combo.setVisibleItemCount(count); + } + + /** + *+ * A {@link List} of term objects may be passed to this combo box. In this + * case, the default behaviour of displaying the preferred terms for the T + * type will be overridden and the combo will only display the given terms. + * Also, any previous selection will be reseted. + *
+ * + *
+ * To return to the default of displaying the preferred terms, simply pass
+ * null
.
+ *
null
for default
+ * preferred terms
+ */
+ public void setTerms(List