Package com.sourcetap.sfa.customization

Source Code of com.sourcetap.sfa.customization.UIEntityEventProcessor

/*
*
* Copyright (c) 2004 SourceTap - www.sourcetap.com
*
*  The contents of this file are subject to the SourceTap Public License
* ("License"); You may not use this file except in compliance with the
* License. You may obtain a copy of the License at http://www.sourcetap.com/license.htm
* Software distributed under the License is distributed on an  "AS IS"  basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
*/

package com.sourcetap.sfa.customization;

import java.util.Iterator;

import org.ofbiz.base.util.Debug;
import org.ofbiz.entity.GenericDelegator;
import org.ofbiz.entity.GenericEntityException;
import org.ofbiz.entity.GenericValue;
import org.ofbiz.entity.model.ModelEntity;
import org.ofbiz.entity.model.ModelField;

import com.sourcetap.sfa.event.DataMatrix;
import com.sourcetap.sfa.event.GenericEventProcessor;
import com.sourcetap.sfa.replication.GenericReplicator;
import com.sourcetap.sfa.util.StringHelper;
import com.sourcetap.sfa.util.UserInfo;


/**
* DOCUMENT ME!
*
*/
public class UIEntityEventProcessor extends GenericEventProcessor {
  public static final String module = UIEntityEventProcessor.class.getName();

  private static String displayObjectText20 = "1";
  private static String displayObjectText60 = "2";
  private static String displayObjectDateTime = "17";
  private static String displayObjectDate = "18";
  private static String displayObjectTime = "19";
  private static String displayObjectCheckbox = "41";
  private static String displayObjectCurrency = "25";
  private static String displayObjectNumber = "26";
  private static String displayObjectSelectUser = "21";
  private static String displayObjectText255 = "34";
  private static String displayObjectTextArea = "55";
 
    /**
     * Create the default UIAttribute values by copying from fields from the Table Definition
     *
     * @param userInfo
     * @param delegator
     * @param dataMatrix
     *
     * @return
     */
    protected int postInsert(UserInfo userInfo, GenericDelegator delegator,
        DataMatrix dataMatrix) {

        // Get the current values.
        GenericValue uiEntityGV = dataMatrix.getCurrentBuffer()
                                                   .getGenericValue(0, 0);
    String entityId = uiEntityGV.getString("entityId");
    String entityName = uiEntityGV.getString("entityName");
   
    if ( ( entityId == null ) || ( entityName == null ) )
      return STATUS_CONTINUE;

    ModelEntity me = delegator.getModelEntity(entityName);
    if ( me == null)
      return STATUS_CONTINUE;

    ModelEntity uiAttributeME = delegator.getModelEntity("UiAttribute");
   
    Iterator fieldI = me.getFieldsIterator();
    int displayOrder = 0;
   
    while ( fieldI.hasNext())
    {
      ModelField fld = (ModelField) fieldI.next();
     
      String attrName = fld.getName();
      String colName  = fld.getName();
      String type = fld.getType();
      boolean isPK = fld.getIsPk();
     
      String displayType = "";
      String maxLength = "20";
      String editMask = "";
      String displayLogic = "";
      boolean isMandatory = fld.getIsPk();
      boolean isReadOnly = false;
      boolean isVisible = true;
      boolean isSearchable = true;
      boolean isExtension = false;
      displayOrder += 10;
      String displayLabel = StringHelper.javaNameToDescription(attrName);
      int colSpan = 1;
      int rowSpan = 1;
      boolean startOnNewRow = false;
      String displayObjectId = "0";
       
       
      if ( attrName.equals("createdBy") || attrName.equals("modifiedBy"))
      {
        displayObjectId = displayObjectSelectUser;
        maxLength = "60";
       
      }
      else if ( type.equals("date-time"))
      {
        displayObjectId = displayObjectDateTime;
      }
      else if ( type.equals("time"))
      {
        displayObjectId = displayObjectTime;
      }
      else if ( type.equals("date"))
      {
        displayObjectId = displayObjectDate;
      }
      else if ( type.equals("currency-amount"))
      {
        displayObjectId = displayObjectCurrency; 
      }
      else if ( type.equals("floating-point") || type.equals("numeric"))
      {
        displayObjectId = displayObjectNumber;
      }
      else if ( type.equals("id") || type.equals("id-ne"))
      {
        displayObjectId = displayObjectText20;
      }
      else if ( type.equals("id-long") || type.equals("short-varchar") || type.equals("id-long-ne") || type.equals("tel-number") )
      {
        displayObjectId = displayObjectText60;
        maxLength = "60";
      }
      else if ( type.equals("id-vlong") || type.equals("long-varchar") || type.equals("comment") || type.equals("description") || type.equals("value")
                 || type.equals("email") || type.equals("url") || type.equals("id-vlong-ne"))
      {
        displayObjectId = displayObjectText255;
        maxLength = "255";
      }
      else if ( type.equals("very-short"))
      {
        displayObjectId = displayObjectText20;
        maxLength = "10";
      }
      else if ( type.equals("indicator"))
      {
        displayObjectId = displayObjectCheckbox;
        maxLength = "1";
      }
      else if ( type.equals("very-long"))
      {
        displayObjectId = displayObjectTextArea;
        maxLength = "1000";
      }
      else if ( type.equals("name"))
      {
        displayObjectId = displayObjectText60;
        maxLength = "100";
      }
      else
      {
        displayObjectId = displayObjectText20;
        maxLength = "20";
      }
       
      if ( type.equals("id-ne") || type.equals("id-long-ne") || type.equals("id-vlong-ne"))
      {
        isMandatory = true;
      }
       
      String attributeId = GenericReplicator.getNextSeqId("UiAttribute", delegator);
     
      GenericValue uiAttributeGV = new GenericValue(uiAttributeME);
      uiAttributeGV.setDelegator(delegator);
      uiAttributeGV.set("attributeId", attributeId);
      uiAttributeGV.set("entityId", entityId);
      uiAttributeGV.set("attributeName", attrName);
      uiAttributeGV.set("description", displayLabel);
      uiAttributeGV.set("columnName", colName);
      uiAttributeGV.set("displayObjectId", displayObjectId);
      uiAttributeGV.set("maxLength", maxLength);
      uiAttributeGV.set("editMask", "");
      uiAttributeGV.set("displayLogic", "");
      uiAttributeGV.set("isMandatory", Boolean.valueOf(isMandatory));
      uiAttributeGV.set("isReadOnly", Boolean.valueOf(isReadOnly));
      uiAttributeGV.set("isVisible", Boolean.valueOf(isVisible));
      uiAttributeGV.set("isSearchable", Boolean.valueOf(isSearchable));
      uiAttributeGV.set("isExtension", Boolean.valueOf(isExtension));
      uiAttributeGV.set("displayOrder", new Integer(displayOrder));
      uiAttributeGV.set("displayLabel", displayLabel);
      uiAttributeGV.set("displayLength", maxLength);
      uiAttributeGV.set("colSpan", new Integer(colSpan));
      uiAttributeGV.set("rowSpan", new Integer(rowSpan));
      uiAttributeGV.set("startOnNewRow", Boolean.valueOf(startOnNewRow));
     

            // This is a copy of an existing screen section.

       try {
              delegator.create(uiAttributeGV);
       }catch (GenericEntityException e)
            {
              Debug.logError(e, module);
            }
    }

        return STATUS_CONTINUE;
    }

    /**
     * DOCUMENT ME!
     *
     * @param userInfo
     * @param delegator
     * @param originatingEntityName
     * @param entityGV
     *
     * @return
     */
    public int deleteAllRelated(UserInfo userInfo, GenericDelegator delegator,
        String originatingEntityName, GenericValue entityGV) {

        int status = STATUS_CONTINUE;

        // Delete related screen section entities.
        status = deleteOneRelated(userInfo, delegator, entityGV, "",
                "UiAttribute", originatingEntityName,
                new GenericEventProcessor());

        return status;
    }
}
TOP

Related Classes of com.sourcetap.sfa.customization.UIEntityEventProcessor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.