public AddInstances(DataTable newDataSet, DataFile newDataSetDataFile)
        {
            InitializeComponent();

            dataSet         = newDataSet;
            dataSetDataFile = newDataSetDataFile;

            // Verificar si el tipo de archivo es CSV (null) o DATA.
            if (dataSetDataFile != null)
            {
                TextBoxDefaultValue.Text    = dataSetDataFile.MissingValue;
                TextBoxDefaultValue.Enabled = false;
            }
        }
        public DeleteAttribute(DataTable newDataSet, DataFile newDataSetDataFile)
        {
            InitializeComponent();

            dataSet         = newDataSet;
            dataSetDataFile = newDataSetDataFile;
            List <string> attributes = new List <string>();

            for (int i = 0; i < dataSet.Columns.Count; i++)
            {
                attributes.Add(dataSet.Columns[i].Caption);
            }

            ListBoxAttributes.DataSource = attributes;
        }
示例#3
0
        public CorrectTypographicErrors(DataTable newDataSet, DataFile newDataSetDataFile, int newAttributeIndex, List <string> newAttributeValues, List <string> newInOfDomainValues, List <int> newOutOfDomainValuesIndices)
        {
            InitializeComponent();

            // Inicializar variables.
            dataSet                       = newDataSet;
            dataSetDataFile               = newDataSetDataFile;
            attributeIndex                = newAttributeIndex;
            attributeValues               = newAttributeValues;
            inOfDomainValues              = newInOfDomainValues;
            outOfDomainValuesIndices      = newOutOfDomainValuesIndices;
            currentoutOfDomainValuesIndex = 0;

            // Inicializar las herramientas.
            UpdateTools();
        }
示例#4
0
        public SaveFileAsDATA(DataTable newDataSet, DataFile newDataSetDataFile)
        {
            InitializeComponent();

            dataSet         = newDataSet;
            DataSetDataFile = newDataSetDataFile;

            if (DataSetDataFile != null)
            {
                TextBoxGeneralInformation.Text = DataSetDataFile.GeneralInformation;
                TextBoxRelation.Text           = DataSetDataFile.Relation;
                TextBoxMissingValue.Text       = DataSetDataFile.MissingValue;
            }

            InitializeDataGridViewAttributes();
        }
        public void UpdateContent(DataFile newDataSetDataFile)
        {
            dataSetDataFile = newDataSetDataFile;

            attributes.Clear();

            foreach (DataColumn attribute in dataSet.Columns)
            {
                attributes.Add(attribute.Caption);
            }

            if (attributes.Count != 0)
            {
                GetAttributeStatistics();
            }
        }
        public CorrectOutliers(DataTable newDataSet, DataFile newDataSetDataFile, int newAttributeIndex, List <string> newAttributeValues, List <int> newPossibleOutliersIndices, List <int> newOutliersIndices)
        {
            InitializeComponent();

            // Inicializar las variables.
            dataSet                 = newDataSet;
            dataSetDataFile         = newDataSetDataFile;
            attributeIndex          = newAttributeIndex;
            attributeValues         = newAttributeValues;
            possibleOutliersIndices = newPossibleOutliersIndices;
            outliersIndices         = newOutliersIndices;
            ChangesMade             = false;

            // Inicializar las herramientas.
            UpdateTools();
        }
示例#7
0
        private void ButtonSaveSample_Click(object sender, EventArgs e)
        {
            // Definir el nombre del archivo por defecto como "Muestra".
            SaveFileDialogSample.FileName = "Muestra";

            // Mostrar el "SaveFileDialog" para guardar la muestra.
            if (SaveFileDialogSample.ShowDialog() == DialogResult.OK)
            {
                // Se seleccionó un tipo y se dio clic en "Aceptar".
                // Decidir que acciones realizar en base al tipo del archivo seleccionado.
                switch ((DataEntry.SaveFileDialogFilter)SaveFileDialogSample.FilterIndex)
                {
                case DataEntry.SaveFileDialogFilter.CSV:

                    // Archivo CSV.
                    // Guardar la muestra como archivo CSV.
                    File.WriteAllText(SaveFileDialogSample.FileName, SaveFileAsCSV());

                    break;

                case DataEntry.SaveFileDialogFilter.DATA:

                    // Archivo DATA.
                    // Crear un nuevo "DataFile" utilizando el "DataFile" actual pero con los datos de la muestra.
                    DataFile dataSetSampleDataFile = new DataFile(dataSetDataFile.GeneralInformation, dataSetDataFile.Relation, dataSetDataFile.Attributes, dataSetDataFile.MissingValue, dataSetSample);

                    // Llenar los campos del archivo DATA.
                    using (SaveFileAsDATA saveFileAsDATAForm = new SaveFileAsDATA(dataSet, dataSetSampleDataFile))
                    {
                        // Mostrar el "Form" con los atributos del archivo DATA.
                        if (saveFileAsDATAForm.ShowDialog() == DialogResult.OK)
                        {
                            // Guardar la muestra como archivo DATA.
                            File.WriteAllText(SaveFileDialogSample.FileName, saveFileAsDATAForm.DataSetDataFile.Save());
                        }
                        else
                        {
                            // En caso de cancelar el guardado, retornar.
                            return;
                        }
                    }

                    break;
                }
            }
        }
示例#8
0
        public void UpdateContent(DataFile newDataSetDataFile)
        {
            // Asignar el "DataFile" global al local.
            dataSetDataFile = newDataSetDataFile;

            // Limpiar las opciones de los "ComboBox" de los atributos.
            attributeNumberOneOptions.Clear();
            attributeNumberTwoOptions.Clear();

            // Agregar las opciones a los "ComboBox" de los atributos.
            foreach (DataColumn attribute in dataSet.Columns)
            {
                attributeNumberOneOptions.Add(attribute.Caption);
                attributeNumberTwoOptions.Add(attribute.Caption);
            }

            // Obtener la correlación de los dos atributos seleccionados.
            GetAttributeCorrelation();
        }
示例#9
0
        public AddAttribute(DataTable newDataSet, DataFile newDataSetDataFile)
        {
            InitializeComponent();

            dataSet         = newDataSet;
            dataSetDataFile = newDataSetDataFile;

            // Verificar si el tipo de archivo es CSV (null) o DATA.
            if (dataSetDataFile != null)
            {
                TextBoxDefaultValue.Text    = dataSetDataFile.MissingValue;
                TextBoxDefaultValue.Enabled = false;
            }
            else
            {
                // Desactivar las opciones innecesarias para una archivo CSV.
                ComboBoxDataType.Enabled = false;
                TextBoxDomain.Enabled    = false;
            }
        }
示例#10
0
        public EditAttribute(DataTable newDataSet, DataFile newDataSetDataFile)
        {
            InitializeComponent();

            dataSet         = newDataSet;
            dataSetDataFile = newDataSetDataFile;

            List <string> attributes = new List <string>();

            for (int i = 0; i < dataSet.Columns.Count; i++)
            {
                attributes.Add(dataSet.Columns[i].Caption);
            }

            ListBoxAttributes.DataSource = attributes;

            if (dataSetDataFile == null)
            {
                ComboBoxDataType.Enabled = false;

                TextBoxDomain.Text    = "N/A";
                TextBoxDomain.Enabled = false;
            }
        }
示例#11
0
        private void ButtonSave_Click(object sender, EventArgs e)
        {
            if (TextBoxGeneralInformation.Text == "")
            {
                MessageBox.Show("La información general se encuentra vacía.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (TextBoxRelation.Text == "")
            {
                MessageBox.Show("La relación se encuentra vacía.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (DataSetDataFile != null)
            {
                DataSetDataFile.GeneralInformation = TextBoxGeneralInformation.Text;
                DataSetDataFile.Relation           = TextBoxRelation.Text;

                for (int i = 0; i < DataGridViewAttributes.RowCount; i++)
                {
                    if (DataGridViewAttributes[(int)ColumnIndex.Name, i].Value == null || DataGridViewAttributes[(int)ColumnIndex.Name, i].Value.ToString() == "")
                    {
                        MessageBox.Show("El nombre del atributo #" + (i + 1) + " se encuentra vacío.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    if (DataGridViewAttributes[(int)ColumnIndex.Domain, i].Value == null || DataGridViewAttributes[(int)ColumnIndex.Domain, i].Value.ToString() == "")
                    {
                        MessageBox.Show("El dominio del atributo #" + (i + 1) + " se encuentra vacío.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    DataFileAttribute        attribute         = DataSetDataFile.Attributes[i];
                    DataGridViewComboBoxCell attributeDataType = (DataGridViewComboBoxCell)DataGridViewAttributes[(int)ColumnIndex.DataType, i];

                    try
                    {
                        attribute.Edit(DataGridViewAttributes[(int)ColumnIndex.Name, i].Value.ToString(), attributeDataType.Items.IndexOf(attributeDataType.Value), DataGridViewAttributes[(int)ColumnIndex.Domain, i].Value.ToString());
                    }
                    catch (ArgumentException)
                    {
                        MessageBox.Show("El dominio (expresión regular) del atributo #" + (i + 1) + " es inválido.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                }

                if (TextBoxMissingValue.Text == "")
                {
                    MessageBox.Show("El valor faltante se encuentra vacío.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                DataSetDataFile.MissingValue = TextBoxMissingValue.Text;
            }
            else
            {
                List <DataFileAttribute> attributes = new List <DataFileAttribute>();

                for (int i = 0; i < DataGridViewAttributes.RowCount; i++)
                {
                    if (DataGridViewAttributes[(int)ColumnIndex.Name, i].Value == null || DataGridViewAttributes[(int)ColumnIndex.Name, i].Value.ToString() == "")
                    {
                        MessageBox.Show("El nombre del atributo #" + (i + 1) + " se encuentra vacío.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    if (DataGridViewAttributes[(int)ColumnIndex.Domain, i].Value == null || DataGridViewAttributes[(int)ColumnIndex.Domain, i].Value.ToString() == "")
                    {
                        MessageBox.Show("El dominio del atributo #" + (i + 1) + " se encuentra vacío.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    DataGridViewComboBoxCell attributeDataType = (DataGridViewComboBoxCell)DataGridViewAttributes[(int)ColumnIndex.DataType, i];

                    try
                    {
                        attributes.Add(new DataFileAttribute(DataGridViewAttributes[(int)ColumnIndex.Name, i].Value.ToString(), attributeDataType.Items.IndexOf(attributeDataType.Value), DataGridViewAttributes[(int)ColumnIndex.Domain, i].Value.ToString()));
                    }
                    catch (ArgumentException)
                    {
                        MessageBox.Show("El dominio (expresión regular) del atributo #" + (i + 1) + " es inválido.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                }

                DataSetDataFile = new DataFile(TextBoxGeneralInformation.Text, TextBoxRelation.Text, attributes, TextBoxMissingValue.Text, dataSet);
            }

            DialogResult = DialogResult.OK;
        }
示例#12
0
        private void LoadFile()
        {
            string fileExtension = Path.GetExtension(OpenFileDialogDataSet.FileName);

            // Se limpia el archivo DATA.
            DataSetDataFile = null;

            // Se limpia la DataTable local.
            dataSet.Columns.Clear();
            dataSet.Rows.Clear();

            // Se limpia el DataGridView.
            DataGridViewDataSet.Columns.Clear();
            DataGridViewDataSet.DataSource = null;

            // Se resetea la variable Bool.
            ChangesMade = false;

            // Se verifica el tipo del archivo a leer.
            if (fileExtension == ".csv")
            {
                // Leer el archivo CSV.
                ReadCSVFile();
            }
            else
            {
                // Leer el archivo DATA.
                ReadDATAFile();
            }

            // Cargar en el DataGridView el contenido del archivo leido con la BindingSource.
            bindingDataSet.DataSource      = dataSet;
            DataGridViewDataSet.DataSource = bindingDataSet;

            // Agregar al DataGridView las columnas con el número de instancia y con el botón de eliminar.
            DataGridViewButtonColumn ColumnDeleteInstanceButton = new DataGridViewButtonColumn()
            {
                Name = "Eliminar Instancia",
                Text = "Eliminar",
                UseColumnTextForButtonValue = true
            };

            DataGridViewColumn ColumnInstance = new DataGridViewColumn()
            {
                HeaderText   = "Instancia",
                ReadOnly     = true,
                CellTemplate = new DataGridViewTextBoxCell()
            };

            DataGridViewDataSet.Columns.Insert((int)ColumnIndex.DeleteInstanceButton, ColumnDeleteInstanceButton);
            DataGridViewDataSet.Columns.Insert((int)ColumnIndex.Instance, ColumnInstance);

            // Colocar el numero de instancia en la columna de "Instancia" del DataGridView
            FillInstanceColumn();

            // Obtener y mostrar la información del conjunto de datos.
            LabelDatasetNameValue.Text              = Path.GetFileNameWithoutExtension(OpenFileDialogDataSet.FileName);
            LabelDataSetInstanceQuantityValue.Text  = dataSet.Rows.Count.ToString();
            LabelDataSetAttributeQuantityValue.Text = dataSet.Columns.Count.ToString();

            // Verificar el tipo del archivo.
            if (DataSetDataFile != null)
            {
                // Archivo DATA.
                // Asignar contenido único de archivos DATA.
                TextBoxGeneralInformation.Text = DataSetDataFile.GeneralInformation;
                LabelRelationValue.Text        = DataSetDataFile.Relation;

                // Encontrar valores faltantes y valores fuera del dominio para colorear las celdas.
                FindMissingAndOutOfDomainValues();
            }
            else
            {
                // Archivo CSV.
                // Limpiar contenido único de archivos DATA.
                TextBoxGeneralInformation.Text = "N/A";
                LabelRelationValue.Text        = "N/A";

                // Encontrar valores faltantes para colorear las celdas.
                FindMissingValues();
            }
        }
示例#13
0
        public void UpdateContent(DataFile newDataSetDataFile)
        {
            dataSetDataFile = newDataSetDataFile;

            UpdateTabPages();
        }