Smrf.NodeXL.ExcelTemplate.GroupByVertexAttributeDialog.DoDataExchange C# (CSharp) Method

DoDataExchange() protected method

protected DoDataExchange ( System.Boolean bFromControls ) : System.Boolean
bFromControls System.Boolean
return System.Boolean
    DoDataExchange
    (
        Boolean bFromControls
    )
    {
        if (bFromControls)
        {
            // Perform error checking.

            if (cbxVertexColumnName.Items.Count == 0)
            {
                OnInvalidComboBox(cbxVertexColumnName,
                    "There are no columns that can be used.");

                return (false);
            }

            String sVertexColumnName;

            if ( !ValidateRequiredComboBox(cbxVertexColumnName,
                "Select a column.", out sVertexColumnName)
                )
            {
                return (false);
            }

            // Error checking passed.  Transfer the data.

            m_oGroupByVertexAttributeDialogUserSettings.VertexColumnName =
                sVertexColumnName;

            ExcelColumnFormat eSelectedVertexColumnFormat =
                this.SelectedVertexColumnFormat;

            m_oGroupByVertexAttributeDialogUserSettings.VertexColumnFormat =
                eSelectedVertexColumnFormat;

            String sMinimumValues = String.Empty;

            switch (eSelectedVertexColumnFormat)
            {
                case ExcelColumnFormat.Number:

                    sMinimumValues =
                        lbxMinimumValues.ItemsToCultureInvariantString<
                            FormattableNumber, Double>();
                    break;

                case ExcelColumnFormat.Date:

                    sMinimumValues =
                        lbxMinimumValues.ItemsToCultureInvariantString<
                            FormattableDate, DateTime>();

                    break;

                case ExcelColumnFormat.Time:

                    sMinimumValues =
                        lbxMinimumValues.ItemsToCultureInvariantString<
                            FormattableTime, DateTime>();

                    break;

                case ExcelColumnFormat.DateAndTime:

                    sMinimumValues =
                        lbxMinimumValues.ItemsToCultureInvariantString<
                            FormattableDateAndTime, DateTime>();

                    break;

                case ExcelColumnFormat.Other:

                    break;

                default:

                    Debug.Assert(false);
                    break;
            }

            m_oGroupByVertexAttributeDialogUserSettings.MinimumValues =
                sMinimumValues;
        }
        else
        {
            cbxVertexColumnName.Text =
                m_oGroupByVertexAttributeDialogUserSettings.VertexColumnName;

            ExcelColumnFormat eSelectedVertexColumnFormat =
                m_oGroupByVertexAttributeDialogUserSettings.VertexColumnFormat;

            this.SelectedVertexColumnFormat = eSelectedVertexColumnFormat;

            String sMinimumValues =
                m_oGroupByVertexAttributeDialogUserSettings.MinimumValues;

            switch (eSelectedVertexColumnFormat)
            {
                case ExcelColumnFormat.Number:

                    lbxMinimumValues.CultureInvariantStringToItems<
                        FormattableNumber, Double>(sMinimumValues);

                    break;

                case ExcelColumnFormat.Date:

                    lbxMinimumValues.CultureInvariantStringToItems<
                        FormattableDate, DateTime>(sMinimumValues);

                    break;

                case ExcelColumnFormat.Time:

                    lbxMinimumValues.CultureInvariantStringToItems<
                        FormattableTime, DateTime>(sMinimumValues);

                    break;

                case ExcelColumnFormat.DateAndTime:

                    lbxMinimumValues.CultureInvariantStringToItems<
                        FormattableDateAndTime, DateTime>(sMinimumValues);

                    break;

                case ExcelColumnFormat.Other:

                    break;

                default:

                    Debug.Assert(false);
                    break;
            }


            EnableControls();
        }

        return (true);
    }