Exemplo n.º 1
0
 public static void CheckAttribute(object sender, CheckAttributeEnventArgs e)
 {
     AttributesToCalculateProximity = e.SelectedAttributes;
     if (e.SelectedAttributes.Count == 0)
     {
         Proximity = null;
     }
 }
        /// <summary>
        /// Este metodo esta engachado al evento que lanza el AttributesVisualizer, cuando se chequea o se deschequea algun atributo
        /// para que este mismo control se actualice sobre las Disimilitud que debe mostrar, que coincida su tipo con la de los atributos chequeados
        /// </summary>
        public void CheckAttributes(object sender, CheckAttributeEnventArgs e)
        {
            try
            {
                List<Proximity> _dissTemp = LoadProximities();

                ElementType _elementType = Proximity.GetAttributesType(e.SelectedAttributes);

                List<Proximity> _source = new List<Proximity>();

                //en el caso que le ponga de ItemsSource (al listView de atributes en el control AttributesVisualizer) NULL, entonces e.SelectedAttributes esta vacio
                //por tanto en el metodo Proximity.GetAttributesType va retornar Numeric, porque como la lista esta vacia no hay ninguno que no sea numeric, y eso
                //esta mal, verificar el metodo Proximity.GetAttributesType para ver lo que acabo de decir, cuando la lista que le paso esta vacia
                if (e.SelectedAttributes.Count > 0)
                {
                    foreach (Proximity _prox in _dissTemp)
                        if (_prox.AdmissibleElementType == ElementType.Mixt || _prox.AdmissibleElementType == _elementType)
                            _source.Add(_prox);
                }

                //Esto es lo que se utiliza en UpdateProximities, ya que ahora ademas de cumplir las restricciones de los attributes,
                //tambien hay que verificar que el algoritmo que se seleccione pueda trabajar con esa proximidad
                CurrentProximities = _source;

                this.cb_Proximities.ItemsSource = null;
                this.cb_Proximities.ItemsSource = _source;
                this.cb_Proximities.DisplayMemberPath = "Name";
                if (_source.Count > 0)
                    this.cb_Proximities.SelectedIndex = 0;
                else
                    Enviroment.Proximity = null;

                //Esto es porque si se me queda seleccionado el algoritmo Metis, cuando se actualizan las proximidades 
                //(si se selecciona o deseleccion un attribute)
                //se me quedan para el algoritmo Metis todas las que se puedan cargar, esto es porque no se selecciono un algoritmo,
                //entonces para que se actualicen debo seleccionar otro algoritmo.
                //this.tv_ClusterAlgs.ItemsSource = null;
                //this.tv_ClusterAlgs.ItemsSource = new ListClusterTree();
                this.tv_ClusterAlgs_SelectedItemChanged(null,null);
            }
            catch (Exception _ex)
            {
                GeneralTools.Tools.WriteToLog(_ex);
            }
        }
        /// <summary>
        /// Este metodo esta engachado al evento que lanza el AttributesVisualizer, cuando se chequea o se deschequea algun atributo
        /// para que este mismo control se actualice sobre las Disimilitud que debe mostrar, que coincida su tipo con la de los atributos chequeados
        /// </summary>
        public void CheckAttributes(object sender, CheckAttributeEnventArgs e)
        {
            List<Dissimilarity> _dissTemp = LoadDissimilarities();

            ElementType _elementType = Dissimilarity.GetAttributesType(e.SelectedAttributes);

            List<Dissimilarity> _source  =new List<Dissimilarity>();

            //en el caso que le ponga de ItemsSource (al listView de atributes en el control AttributesVisualizer) NULL, entonces e.SelectedAttributes esta vacio
            //por tanto en el metodo Dissimilarity.GetAttributesType va retornar Numeric, porque como la lista esta vacia no hay ninguno que no sea numeric, y eso
            //esta mal, verificar el metodo Dissimilarity.GetAttributesType para ver lo que acabo de decir, cuando la lista que le paso esta vacia
            if (e.SelectedAttributes.Count > 0)
            {
                foreach (Dissimilarity _diss in _dissTemp)
                    if (_diss.AdmissibleElementType == ElementType.Mixt || _diss.AdmissibleElementType == _elementType)
                        _source.Add(_diss);
            }
            this.cb_Dissimilarities.ItemsSource = null;
            this.cb_Dissimilarities.ItemsSource = _source;
            this.cb_Dissimilarities.DisplayMemberPath = "Name";
            if (Dissimilarities.Count > 0)
                this.cb_Dissimilarities.SelectedIndex = 0;
        }
 public static void CheckAttribute(object sender, CheckAttributeEnventArgs e)
 {
     AttributesToCalculateProximity = e.SelectedAttributes;
     if (e.SelectedAttributes.Count == 0)
         Proximity = null;
 }