/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package de.cismet.cids.custom.switchon.wizards.panels;
import org.apache.commons.lang.StringUtils;
import org.openide.WizardDescriptor;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.List;
import de.cismet.cids.custom.switchon.wizards.AdvancedFinishablePanel;
import de.cismet.cids.custom.switchon.wizards.DefaultPropertySetter;
import de.cismet.cids.custom.switchon.wizards.GenericAbstractWizardPanel;
import de.cismet.cids.custom.switchon.wizards.MetaDataWizardAction;
import de.cismet.cids.custom.switchon.wizards.NameProvider;
import de.cismet.cids.dynamics.CidsBean;
/**
* DOCUMENT ME!
*
* @author Gilles Baatz
* @version $Revision$, $Date$
*/
public class RelationshipsEditDocumentPanel extends GenericAbstractWizardPanel<AdditonalMetaDataEditDocumentVisualPanel>
implements NameProvider,
PropertyChangeListener,
AdvancedFinishablePanel {
//~ Static fields/initializers ---------------------------------------------
private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(
RelationshipsEditDocumentPanel.class);
//~ Instance fields --------------------------------------------------------
private boolean finishPanel = false;
//~ Constructors -----------------------------------------------------------
/**
* Creates a new RelationshipsEditDocumentPanel object.
*/
public RelationshipsEditDocumentPanel() {
super(AdditonalMetaDataEditDocumentVisualPanel.class);
}
//~ Methods ----------------------------------------------------------------
@Override
protected void read(final WizardDescriptor wizard) {
final CidsBean relationship = (CidsBean)wizard.getProperty(MetaDataWizardAction.PROP_CREATED_RELATIONSHIP_BEAN);
final List<CidsBean> metaDatas = relationship.getBeanCollectionProperty("metadata"); // NOI18N
if (metaDatas.isEmpty()) {
final CidsBean newMetaData = DefaultPropertySetter.createNewMetaDataForRelationshipCidsBean(relationship);
if (newMetaData != null) {
metaDatas.add(newMetaData);
}
}
if (!metaDatas.isEmpty()) {
final CidsBean metaData = relationship.getBeanCollectionProperty("metadata").get(0); // NOI18N
// disable the content and content location components if RelationshipsImportDocumentPanel was already
// open
getComponent().changeAppearanceAsImportButtonWasPressed((boolean)wizard.getProperty(
MetaDataWizardAction.PROP_RelationshipsImportDocumentPanel_IMPORT_BUTTON_WAS_PRESSED));
getComponent().setCidsBean(metaData);
metaData.addPropertyChangeListener(this);
}
}
@Override
protected void store(final WizardDescriptor wizard) {
final CidsBean metaData = getComponent().getCidsBean();
metaData.removePropertyChangeListener(this);
getComponent().dispose();
}
@Override
public String getName() {
return org.openide.util.NbBundle.getMessage(
RelationshipsEditDocumentPanel.class,
"RelationshipsEditDocumentPanel.name"); // NOI18N
}
@Override
public void propertyChange(final PropertyChangeEvent evt) {
changeSupport.fireChange();
}
@Override
public boolean isValid() {
final CidsBean metaData = getComponent().getCidsBean();
final String content = (String)metaData.getProperty("content"); // NOI18N
final String contentlocation = (String)metaData.getProperty("contentlocation"); // NOI18N
final boolean isValid = StringUtils.isNotBlank(content) || StringUtils.isNotBlank(contentlocation);
if (isValid) {
showGeneralInformation();
} else {
showWarning(org.openide.util.NbBundle.getMessage(
RelationshipsEditDocumentPanel.class,
"RelationshipsEditDocumentPanel.isValid().missingContent"));
}
return isValid;
}
@Override
public void setFinishPanel(final boolean finishPanel) {
this.finishPanel = finishPanel;
}
@Override
public boolean isFinishPanel() {
return finishPanel;
}
}