/*
 * Licensed Materials - Property of Perforce Software, Inc. 
 * © Copyright Perforce Software, Inc. 2014, 2021 
 * © Copyright IBM Corp. 2009, 2014
 * © Copyright ILOG 1996, 2009
 * All Rights Reserved.
 *
 * Note to U.S. Government Users Restricted Rights:
 * The Software and Documentation were developed at private expense and
 * are "Commercial Items" as that term is defined at 48 CFR 2.101,
 * consisting of "Commercial Computer Software" and
 * "Commercial Computer Software Documentation", as such terms are
 * used in 48 CFR 12.212 or 48 CFR 227.7202-1 through 227.7202-4,
 * as applicable.
 */

package demo.editing;

import ilog.views.diagrammer.IlvDiagrammer;
import ilog.views.diagrammer.faces.dhtml.component.IlvFacesDiagrammerPropertyAccessor;

/**
 * This property accessor is a simple example of one of its usage.
 * <p>
 * In this subclass we filter some properties.
 * </p>
 */
public class PropertyAccessor extends IlvFacesDiagrammerPropertyAccessor {

  /**
   * Subclassed to entirely filter the SDM properties.
   */
  Override
  protected boolean acceptProperty(IlvDiagrammer diagrammer, Object object, String propertyName) {
    return propertyName.indexOf("sdm:") == -1;
  }

  /**
   * Forbid the modification of the CSSclass property (but is readable and
   * settable if no value exist).
   */
  Override
  protected boolean acceptSetProperty(IlvDiagrammer diagrammer, Object object, String propertyName,
      Object propertyValue) {
    if (propertyName.equals("CSSclass")) {
      return (diagrammer.getObjectProperty(object, propertyName) == null);
    } else
      return super.acceptSetProperty(diagrammer, object, propertyName, propertyValue);
  }
}