All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.jwic.controls.pojoedit.PojoField Maven / Gradle / Ivy

There is a newer version: 5.3.43
Show newest version
/**
 * 
 */
package de.jwic.controls.pojoedit;

import java.beans.PropertyDescriptor;

import de.jwic.base.IControl;

/**
 * A property on the pojo that is editable in a field.
 * @author lippisch
 */
public class PojoField implements Comparable{

	private PropertyDescriptor propertyDescriptor;
	private String title = null;
	private String name = null;
	
	private IControl control = null;
	private IFieldHandler fieldHandler = null;
	private PojoEditable annotation;
	
	/**
	 * @param pd
	 */
	public PojoField(PropertyDescriptor pd, PojoEditable annotation) {
		this.propertyDescriptor = pd;
		this.annotation = annotation;

		title = pd.getDisplayName();
		name = pd.getName();
		
		if (annotation != null) {
			if (annotation.title() != null && !annotation.title().isEmpty()) {
				title = annotation.title();
			}
		}
	}

	/**
	 * Returns the title of this field.
	 * @return
	 */
	public String getTitle() {
		return title;
	}

	/**
	 * @return the control
	 */
	public IControl getControl() {
		return control;
	}

	/**
	 * @param control the control to set
	 */
	public void setControl(IControl control) {
		this.control = control;
	}

	/**
	 * @return the mapper
	 */
	public IFieldHandler getFieldHandler() {
		return fieldHandler;
	}

	/**
	 * @param mapper the mapper to set
	 */
	public void setFieldHandler(IFieldHandler mapper) {
		this.fieldHandler = mapper;
	}

	/**
	 * @param title the title to set
	 */
	public void setTitle(String title) {
		this.title = title;
	}

	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @return the annotation
	 */
	public PojoEditable getAnnotation() {
		return annotation;
	}

	/**
	 * @return the propertyDescriptor
	 */
	public PropertyDescriptor getPropertyDescriptor() {
		return propertyDescriptor;
	}

	/* (non-Javadoc)
	 * @see java.lang.Comparable#compareTo(java.lang.Object)
	 */
	@Override
	public int compareTo(PojoField o) {
		int myOrder = annotation != null ? annotation.order() : 0;
		int otherOrder = o.annotation != null ? o.annotation.order() : 0;
		
		if (myOrder == otherOrder) {
			// Sort by title if the sort order is the same.
			return this.title.compareTo(o.title);
		}
		if (myOrder < otherOrder) {
			return -1;
		} else {
			return 1;
		}
	}
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy