/// <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); } }