Пример #1
0
        /// <summary>
        /// Write out a single value
        /// </summary>
        /// <param name="tw"></param>
        /// <param name="type"></param>
        /// <param name="vo"></param>

        void WriteValue(
            SpotfireDataFileTableWriter tw,
            SpotfireDataFileValueType type,
            object vo)
        {
            if (tw.StdfTw != null)
            {
                if (type != null)
                {
                    StdfWriteValue(tw.StdfTw, type.StdfValueType, vo);
                }

                else
                {
                    tw.StdfTw.WriteLine();
                }
            }

            if (tw.SbdfTw != null)
            {
                if (type != null)
                {
                    SbdfAddValue(tw.SbdfTw, type.SbdfValueType, vo);
                }

                else
                {
                    ;                 // do nothing for binary mode
                }
            }

            return;
        }
Пример #2
0
        }         // WriteIndividualSpotfireDataFilesForEachQueryTable

        /// <summary>
        /// Build and add the metadata for a column
        /// </summary>
        /// <param name="qc"></param>
        /// <param name="nameSuffix"></param>
        /// <param name="extraColNameSuffix"></param>
        /// <param name="mdb"></param>
        /// <param name="nValueMetaColumns"></param>

        void AddMetadataForColumn(
            QueryColumn qc,
            string colName,
            string extraColNameSuffix,
            SpotfireDataFileMetadataBuilder mdb,
            ExportParms ep,
            HashSet <MetaColumn> nValueMetaColumns)
        {
            QueryTable qt = qc.QueryTable;
            MetaTable  mt = qt.MetaTable;
            MetaColumn mc = qc.MetaColumn;

            SpotfireDataFileValueType sdfType = GetSpotfireDataFileType(mc);

            qc.SpotfireExportType = sdfType;

            // Structures get added as string type columns but the ContentType property for the DataTable Columns should be set to
            // chemical/x-mdl-molfile, chemical/x-mdl-chime  or chemical/x-daylight-smiles
            // Also for visualizations columns that display structures the renderer must be set to a structure renderer
            // if the structure format is chime (molfile and smiles autodetect)

            if (mc.DataType == MetaColumnType.Structure)
            {
                mdb.AddColumn(colName + extraColNameSuffix, sdfType);
            }

            // qualified number -> 1 to 3 Spotfire columns

            else if (mc.DataType == MetaColumnType.QualifiedNo)
            {
                if (QnSubcolumns.IsSplitFormat(ep.QualifiedNumberSplit))
                {
                    mdb.AddColumn(colName + "_PRFX_TXT" + extraColNameSuffix, SpotfireDataFileValueType.String);       // qualifier

                    mdb.AddColumn(colName + extraColNameSuffix, SpotfireDataFileValueType.Double);                     // main value, use basic colname

                    if (mt.SummarizedExists && mt.UseSummarizedData)
                    {
                        mdb.AddColumn(colName + "_NBR_VALS_CNSDRD" + extraColNameSuffix, SpotfireDataFileValueType.Int);                         // number of values included if summary value
                        nValueMetaColumns.Add(mc);
                    }
                }

                else                                                                               // combined QNs
                {
                    mdb.AddColumn(colName + extraColNameSuffix, SpotfireDataFileValueType.String); // combined value
                }
            }

            // Other column types use single column in Spotfire of the specified type

            else
            {
                mdb.AddColumn(colName + extraColNameSuffix, sdfType);
            }

            return;
        }
Пример #3
0
 public void AddColumn(string columnName, SpotfireDataFileValueType dataType)
 {
     if (stdfMdb != null)
     {
         stdfMdb.AddColumn((new StdfColumnMetadata(columnName, dataType.StdfValueType)));
     }
     if (sbdfMdb != null)
     {
         sbdfMdb.AddColumn((new SbdfColumnMetadata(columnName, dataType.SbdfValueType)));
     }
 }
Пример #4
0
        /// <summary>
        /// Get Spotfire SBdf (Binary Data Format) column type
        /// </summary>
        /// <param name="mc"></param>
        /// <returns></returns>
        SpotfireDataFileValueType GetSpotfireDataFileType(MetaColumn mc)
        {
            StdfValueType tt;
            SbdfValueType bt;

            GetSpotfireDataTypes(mc, out tt, out bt);

            SpotfireDataFileValueType vt = new SpotfireDataFileValueType();

            if (TextFormat)
            {
                vt.StdfValueType = tt;
            }
            else
            {
                vt.SbdfValueType = bt;
            }

            return(vt);
        }