Пример #1
0
        /// <summary>
        /// figure out if the feature represented by the node is already in the database
        /// </summary>
        /// <param name="cache">database cache</param>
        public override void DetermineInDatabase(FdoCache cache)
        {
            CheckDisposed();

            XmlNode item = m_node.SelectSingleNode(".");
            string  sId  = XmlUtils.GetOptionalAttributeValue(item, "id");

            if (m_eKind == GlossListTreeView.ImageKind.closedFolder || m_eKind == GlossListTreeView.ImageKind.openFolder)
            {
                m_fInDatabase = false;
            }
            if (KindCanBeInDatabase())
            {
                switch (m_eKind)
                {
                case GlossListTreeView.ImageKind.radio:                         // fall through
                case GlossListTreeView.ImageKind.radioSelected:                 // fall through
                case GlossListTreeView.ImageKind.checkBox:                      // fall through
                case GlossListTreeView.ImageKind.checkedBox:
                    // these are all feature values
                    m_fInDatabase = FsFeatureSystem.HasSymbolicValue(cache, sId);
                    break;

                case GlossListTreeView.ImageKind.complex:
                    m_fInDatabase = FsFeatureSystem.HasComplexFeature(cache, sId);
                    break;

                case GlossListTreeView.ImageKind.userChoice:                         // closed feature
                    string sStatus = XmlUtils.GetAttributeValue(m_node, "status");
                    if (sStatus == "proxy")
                    {
                        XmlNode xnType = this.m_node.SelectSingleNode("ancestor::item[@type='fsType']/@id");
                        if (xnType != null)
                        {
                            m_fInDatabase = FsFeatureSystem.FsFeatStrucTypeHasFeature(cache, xnType.InnerText, sId) &&
                                            FsFeatureSystem.HasClosedFeature(cache, sId);
                        }
                        else
                        {
                            m_fInDatabase = FsFeatureSystem.HasClosedFeature(cache, sId);
                        }
                    }
                    else
                    {
                        m_fInDatabase = FsFeatureSystem.HasClosedFeature(cache, sId);
                    }
                    break;
                }
            }
        }
        /// <summary>
        /// figure out if the feature represented by the node is already in the database
        /// </summary>
        /// <param name="cache">database cache</param>
        public override void DetermineInDatabase(FdoCache cache)
        {
            CheckDisposed();

            //XmlNode item = m_node.SelectSingleNode(".");
            string sId = XmlUtils.GetOptionalAttributeValue(m_node, "id");

            if (IsAGroup())
            {
                m_fInDatabase = false;
            }
            else
            {
                m_fInDatabase = FsFeatureSystem.HasClosedFeature(cache, sId);
            }
        }