/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
/*
* MetaAttributeRendererFactory.java
*
* Created on 24. Mai 2007, 15:14
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package de.cismet.cids.tools.metaobjectrenderer;
import Sirius.server.localserver.attribute.Attribute;
import Sirius.server.middleware.types.MetaObject;
import javax.swing.JComponent;
/**
* DOCUMENT ME!
*
* @author hell
* @version $Revision$, $Date$
*/
public class MetaAttributeRendererFactory {
//~ Static fields/initializers ---------------------------------------------
static MetaAttributeRendererFactory instance = null;
//~ Instance fields --------------------------------------------------------
private final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(this.getClass());
//~ Constructors -----------------------------------------------------------
/**
* Creates a new instance of MetaObjectRendererFactory.
*/
private MetaAttributeRendererFactory() {
}
//~ Methods ----------------------------------------------------------------
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public static MetaAttributeRendererFactory getInstance() {
if (instance == null) {
instance = new MetaAttributeRendererFactory();
}
return instance;
}
/**
* DOCUMENT ME!
*
* @param attr DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public JComponent getRenderer(final Attribute attr) {
return getRenderer(attr, ""); // NOI18N
}
/**
* DOCUMENT ME!
*
* @param attr DOCUMENT ME!
* @param title DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public JComponent getRenderer(final Attribute attr, final String title) {
if (attr != null) {
if (false) { // es existiert ein renderer
return null;
}
// es existiert keiner aber substitute==false und es ist ein komplexes Attribut, deshalb wird der
// ObjectRenderer genommen
else if ((attr.getValue() instanceof MetaObject) && !attr.isSubstitute()) {
return MetaObjectRendererFactory.getInstance().getSingleRenderer((MetaObject)attr.getValue(), title);
} else {
return new DefaultMetaAttributeRenderer(attr).getMetaAttributeRenderer();
}
} else {
return null;
}
}
}