public ValueCopySettingsWrapper GetCopySettings()
        {
            ValueCopySettingsWrapper wrapper = new ValueCopySettingsWrapper();

            if (m_CopyType.Combo.SelectedIndex == 0)
            {
                wrapper.CopyType = ValueCopyTypes.CopyValueFromSource;
            }
            else
            {
                wrapper.CopyType = ValueCopyTypes.DeliveryValuePropotrionalSource;
            }
            try
            {
                wrapper.Coefficient = Convert.ToDouble(m_Coefficient.Text);
            }
            catch {
                wrapper.Coefficient = 1;
            }
            wrapper.Value = m_Value.Text;
            wrapper.ShowNotEmptyCoordinates = m_Coordinates.ShowNotEmpty;

            foreach (CoordinateItem item in m_Coordinates.CoordinatesList)
            {
                CoordinateItem_Wrapper item_wrapper = new CoordinateItem_Wrapper(item);
                wrapper.CoordinatesList.Add(item_wrapper);
            }
            return(wrapper);
        }
        public void Initialize(ValueCopySettingsWrapper wrapper)
        {
            if (wrapper != null)
            {
                m_Value.Text       = wrapper.Value;
                m_Coefficient.Text = wrapper.Coefficient.ToString();
                if (wrapper.CopyType == ValueCopyTypes.CopyValueFromSource)
                {
                    m_CopyType.Combo.SelectedIndex = 0;
                }
                else
                {
                    m_CopyType.Combo.SelectedIndex = 1;
                }

                m_Coordinates.ShowNotEmpty = wrapper.ShowNotEmptyCoordinates;

                List <CoordinateItem> coordinates = new List <CoordinateItem>();
                foreach (CoordinateItem_Wrapper coord_wrap in wrapper.CoordinatesList)
                {
                    CoordinateItem item = new CoordinateItem(coord_wrap);
                    coordinates.Add(item);
                }

                m_Coordinates.Initialize(coordinates);
            }
        }
        void StorageManager_ActionCompleted(object sender, DataLoaderEventArgs e)
        {
            if (e.Error != null)
            {
                LogManager.LogError(this, e.Error.ToString());
                return;
            }

            if (e.Result.ContentType == InvokeContentType.Error)
            {
                LogManager.LogError(this, e.Result.Content);
                return;
            }

            StorageActionArgs args = e.UserState as StorageActionArgs;

            if (args != null)
            {
                if (args.ActionType == StorageActionTypes.Load)
                {
                    ValueCopySettingsWrapper wrapper = XmlSerializationUtility.XmlStr2Obj <ValueCopySettingsWrapper>(e.Result.Content);
                    m_CopyControl.Initialize(wrapper);
                }
            }
        }
        void m_ImportLayout_Click(object sender, RoutedEventArgs e)
        {
            String str = ImportFromStorage();

            if (!String.IsNullOrEmpty(str))
            {
                ValueCopySettingsWrapper wrapper = XmlSerializationUtility.XmlStr2Obj <ValueCopySettingsWrapper>(str);
                Initialize(wrapper);
            }
        }
        void m_ExportLayout_Click(object sender, RoutedEventArgs e)
        {
            ValueCopySettingsWrapper wrapper = GetCopySettings();

            if (wrapper != null)
            {
                String str = XmlSerializationUtility.Obj2XmlStr(wrapper, Common.Namespace);
                ExportToStorage(str);
            }
        }
        void SaveAsDialog_DialogOk(object sender, EventArgs e)
        {
            ObjectSaveAsDialog dlg = sender as ObjectSaveAsDialog;

            if (dlg == null)
            {
                return;
            }

            String str = String.Empty;
            ValueCopySettingsWrapper wrapper = m_CopyControl.GetCopySettings();

            if (wrapper != null)
            {
                str = XmlSerializationUtility.Obj2XmlStr(wrapper, Common.Namespace);
            }

            StorageActionArgs args = new StorageActionArgs();

            args.ActionType  = StorageActionTypes.Save;
            args.Content     = str;
            args.ContentType = StorageContentTypes.ValueCopySettings;
            ObjectDescription descr = dlg.Object;

            if (descr != null && !String.IsNullOrEmpty(descr.Name))
            {
                if (String.IsNullOrEmpty(descr.Caption))
                {
                    descr.Caption = descr.Name;
                }
                args.FileDescription = new ObjectStorageFileDescription(descr);
                StorageManager.Invoke(XmlSerializationUtility.Obj2XmlStr(args, Common.Namespace), args);
            }
            else
            {
                MessageBox.Show(Localization.ObjectSaveDialog_NameIsEmpty_Message, Localization.Warning, MessageBoxButton.OK);
            }
        }