docs: public void writeIncludes(CodeType codeType)
      {
          ClassInfo recClassInfo2 = null;
          ClassFields recClassFields = null;
          try   {
          	ClassInfo recClassInfo = (ClassInfo)this.getMainRecord();
          	String classType = recClassInfo.getField(ClassInfo.CLASS_TYPE).toString();
              String strPackage = this.getPackage(codeType);
              m_StreamOut.writeit("package " + strPackage + ";\n\n");
              m_IncludeNameList.addName(strPackage);     // Don't include this!!!
              if ("interface".equalsIgnoreCase(classType))
                  codeType = CodeType.INTERFACE;
  
              if (codeType == CodeType.THICK)
              {
                  //m_StreamOut.writeit("import java.awt.*;\n"); //j Temp
                  m_StreamOut.writeit("import java.util.*;\n\n");    //j Temp
  
                  m_IncludeNameList.addPackage(DBConstants.ROOT_PACKAGE + "base.db");        // Don't include this!!!
                  m_IncludeNameList.addPackage(DBConstants.ROOT_PACKAGE + "thin.base.util");   // Don't include this!!!
                  m_IncludeNameList.addPackage(DBConstants.ROOT_PACKAGE + "thin.base.db");   // Don't include this!!!
                  m_IncludeNameList.addPackage(DBConstants.ROOT_PACKAGE + "base.db.event");      // Don't include this!!!
                  m_IncludeNameList.addPackage(DBConstants.ROOT_PACKAGE + "base.db.filter");     // Don't include this!!!
                  m_IncludeNameList.addPackage(DBConstants.ROOT_PACKAGE + "base.field");     // Don't include this!!!
                  m_IncludeNameList.addPackage(DBConstants.ROOT_PACKAGE + "base.field.convert");     // Don't include this!!!
                  m_IncludeNameList.addPackage(DBConstants.ROOT_PACKAGE + "base.field.event");   // Don't include this!!!
                  if (("Screen".equalsIgnoreCase(classType)) || ("Report".equalsIgnoreCase(classType)))
                  {
                      m_IncludeNameList.addPackage(DBConstants.ROOT_PACKAGE + "base.screen.model");      // Don't include this!!!
                      m_IncludeNameList.addPackage(DBConstants.ROOT_PACKAGE + "base.screen.model.util");     // Don't include this!!!
                  }
                  m_IncludeNameList.addPackage(DBConstants.ROOT_PACKAGE + "base.model");      // Don't include this!!!
                  m_IncludeNameList.addPackage(DBConstants.ROOT_PACKAGE + "base.util");      // Don't include this!!!
                  m_IncludeNameList.addPackage(DBConstants.ROOT_PACKAGE + "model");      // Don't include this!!!
                  m_IncludeNameList.addPackage(DBConstants.ROOT_PACKAGE + "model.db");      // Don't include this!!!
                  m_IncludeNameList.addPackage(DBConstants.ROOT_PACKAGE + "model.screen");      // Don't include this!!!
              }            
          // Now write the include files for any base classes not in this file or fields with class defs not in file
              recClassInfo2 = new ClassInfo(this);
  
              recClassFields = new ClassFields(this);
              recClassFields.setKeyArea(ClassFields.CLASS_INFO_CLASS_NAME_KEY);
              SubFileFilter fileBehavior2 = new SubFileFilter(recClassInfo2.getField(ClassInfo.CLASS_NAME), ClassFields.CLASS_INFO_CLASS_NAME, null, null, null, null);
              recClassFields.addListener(fileBehavior2);   // Only read through the class fields
  
              String strFileName = recClassInfo.getField(ClassInfo.CLASS_SOURCE_FILE).toString();
              
              recClassInfo2.setKeyArea(ClassInfo.CLASS_SOURCE_FILE_KEY);
              StringSubFileFilter fileBehavior = new StringSubFileFilter(strFileName, ClassInfo.CLASS_SOURCE_FILE, null, null, null, null);
              recClassInfo2.addListener(fileBehavior);  // Only select records which match m_strFileName
  
              recClassInfo2.setKeyArea(ClassInfo.CLASS_SOURCE_FILE_KEY);
              recClassInfo2.close();
              while (recClassInfo2.hasNext())
              {
                  recClassInfo2.next();
                  if ((codeType == CodeType.THIN) && (!recClassInfo2.isARecord(false)))
                      continue;
                  //if ((codeType == CodeType.INTERFACE) && (!recClassInfo2.isARecord(false)))
                  //    continue;
  
                  String strBaseRecordClass = recClassInfo2.getField(ClassInfo.BASE_CLASS_NAME).getString();
                  if (codeType == CodeType.THICK)
                      m_IncludeNameList.addInclude(strBaseRecordClass, null);  // Include the base class if it isn't in this file
                  recClassFields.close();
                  while (recClassFields.hasNext())
                  {
                      recClassFields.next();
                      
                      if (!((IncludeScopeField)recClassFields.getField(ClassFields.INCLUDE_SCOPE)).includeThis(codeType, false))
                          continue;
  
                      String strFieldName = recClassFields.getField(ClassFields.CLASS_FIELD_NAME).getString();
                      String strFieldClass = recClassFields.getField(ClassFields.CLASS_FIELD_CLASS).getString();
                      String strReference = "";
                      String strClassFieldType = recClassFields.getField(ClassFields.CLASS_FIELDS_TYPE).toString();
                      if (strClassFieldType.equalsIgnoreCase(ClassFieldsTypeField.INCLUDE_PACKAGE))
                      {
                          if (strFieldClass.length() > 0) if (strFieldClass.charAt(0) == '.')
                          {
                          	ClassProject classProject = (ClassProject)((ReferenceField)recClassInfo2.getField(ClassInfo.CLASS_PROJECT_ID)).getReference();
                          	if ((classProject != null)
                          			&& ((classProject.getEditMode() == DBConstants.EDIT_CURRENT) || (classProject.getEditMode() == DBConstants.EDIT_IN_PROGRESS)))
                          	{
                          		CodeType codeType2 = CodeType.THICK;
                          		if (strFieldClass.startsWith(".thin"))
                          				codeType2 = CodeType.THIN;
                          		if (strFieldClass.startsWith(".res"))
                      				codeType2 = CodeType.RESOURCE_CODE;
                          		strFieldClass = classProject.getFullPackage(CodeType.THICK, strFieldClass);
                          		if (codeType2 != CodeType.THICK)
                          		{
                          			int end = strFieldClass.indexOf(codeType2 == CodeType.THIN ? ".thin" : ".res");
                          			int start = strFieldClass.indexOf('.');
                          			if (start != -1)
                          				start = strFieldClass.indexOf('.', start + 1);
                          			if (start != -1)
                          				strFieldClass = strFieldClass.substring(0, start) + strFieldClass.substring(end);
                          		}
                          	}
                          	else
                          		strFieldClass = DBConstants.ROOT_PACKAGE + strFieldClass.substring(1);
                          }
                          m_IncludeNameList.addPackage(strFieldClass);
                      }
                      else if ((strClassFieldType.equalsIgnoreCase(ClassFieldsTypeField.INCLUDE_CLASS_PACKAGE))
                          || (strClassFieldType.equalsIgnoreCase(ClassFieldsTypeField.INCLUDE_MODEL_PACKAGE))   // For now
                          || (strClassFieldType.equalsIgnoreCase(ClassFieldsTypeField.INCLUDE_RES_PACKAGE))   // For now
                          || (strClassFieldType.equalsIgnoreCase(ClassFieldsTypeField.INCLUDE_THIN_PACKAGE))   // For now
                          || (strClassFieldType.equalsIgnoreCase(ClassFieldsTypeField.CLASS_FIELD))   // For now
                          || (strClassFieldType.equalsIgnoreCase(ClassFieldsTypeField.INCLUDE_CLASS)))
                      {
                          CodeType codeType3 = CodeType.THICK;
                          if (strClassFieldType.equalsIgnoreCase(ClassFieldsTypeField.INCLUDE_MODEL_PACKAGE))
                              codeType3 = CodeType.INTERFACE;
                          if (strClassFieldType.equalsIgnoreCase(ClassFieldsTypeField.INCLUDE_RES_PACKAGE))   // For now
                              codeType3 = CodeType.RESOURCE_CODE;
                          if (strClassFieldType.equalsIgnoreCase(ClassFieldsTypeField.INCLUDE_THIN_PACKAGE))   // For now
                              codeType3 = CodeType.THIN;
                          m_IncludeNameList.addInclude(strFieldClass, codeType3);
                          strReference = "Y";
                      }
                      if (recClassFields.getField(ClassFields.CLASS_FIELD_PROTECT).getString().equalsIgnoreCase("S")) // Static, initialize now
                      {
                          if (strReference.length() == 0)
                              strReference = "0";
                          if (strReference.charAt(0) == 'Y')
                              strReference = "null";
                          else
                          {
                              strReference = recClassFields.getField(ClassFields.CLASS_FIELD_INITIAL).getString();
                              if (strReference.length() == 0)
                                  strReference = "0";
                          }
                          if (!strReference.equals("(none)"))
                              m_StreamOut.writeit(strFieldClass + " " + strFieldName + " = " + strReference + ";\n");
                      }
                  }
                  recClassFields.close();
              } // End of write record method(s) loop
              recClassInfo2.removeListener(fileBehavior, true);
              recClassInfo2.close();
          } catch (DBException ex)   {
              ex.printStackTrace();
          } finally   {
              if (recClassInfo2 != null)
                  recClassInfo2.free();
              if (recClassFields != null)
                  recClassFields.free();
          }
      }