/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package de.cismet.cids.custom.switchon.objecteditors;
import Sirius.server.middleware.types.MetaObject;
import java.awt.Component;
import java.util.HashSet;
import de.cismet.cids.custom.switchon.gui.InfoProviderJPanel;
import de.cismet.cids.dynamics.CidsBean;
import de.cismet.cids.tools.metaobjectrenderer.CidsBeanRenderer;
/**
* An abstract class of for a editor which can be shown inside ShowEditorInDialog. This class can be used to avoid
* boilerplate-code.
*
* @author Gilles Baatz
* @version $Revision$, $Date$
* @see ShowEditorInDialog
*/
public abstract class AbstractEditorShowableInDialog extends InfoProviderJPanel implements CidsBeanRenderer,
EditorShowableInDialog {
//~ Static fields/initializers ---------------------------------------------
private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(MetadataEditor.class);
//~ Instance fields --------------------------------------------------------
protected HashSet<CidsBean> newlyAddedCidsBeans = new HashSet<CidsBean>();
protected HashSet<CidsBean> modifiedCidsBeans = new HashSet<CidsBean>();
protected CidsBean cidsBean;
private boolean avoidPersist = false;
//~ Methods ----------------------------------------------------------------
@Override
public CidsBean getCidsBean() {
return cidsBean;
}
@Override
public String getTitle() {
if (cidsBean != null) {
return cidsBean.toString();
} else {
return "new Object";
}
}
@Override
public void setTitle(final String title) {
}
@Override
public HashSet<CidsBean> getNewlyAddedCidsBeans() {
return newlyAddedCidsBeans;
}
@Override
public HashSet<CidsBean> getModifiedCidsBeans() {
return modifiedCidsBeans;
}
@Override
public void saveChanges() throws Exception {
CidsBean newCidsBean = cidsBean;
if (!avoidPersist) {
newCidsBean = cidsBean.persist();
}
modifiedCidsBeans.add(newCidsBean);
if (cidsBean.getMetaObject().getStatus() == MetaObject.NEW) {
newlyAddedCidsBeans.add(newCidsBean);
}
}
@Override
public Component getComponent() {
return this;
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public boolean isAvoidPersist() {
return avoidPersist;
}
/**
* The persist of the CidsBean can be avoided in the saveChanges() method.
*
* @param avoidPersist DOCUMENT ME!
*/
public void setAvoidPersist(final boolean avoidPersist) {
this.avoidPersist = avoidPersist;
}
}