/// <summary>
        /// Constructor
        /// </summary>
        public StorageConfigurationComponentControl(StorageConfigurationComponent component)
            : base(component)
        {
            InitializeComponent();

            _component = component;

            //This guy's not actually visible. It's just a placeholder for the validation icon.
            _studyDeletionValidationPlaceholder.Text = String.Empty;

            _fileStoreDirectory.DataBindings.Add("Text", _component, "FileStoreDirectory", true, DataSourceUpdateMode.OnPropertyChanged);
            _fileStoreDirectory.DataBindings.Add("Enabled", _component, "CanChangeFileStore", true, DataSourceUpdateMode.OnPropertyChanged);
            _changeFileStore.DataBindings.Add("Enabled", _component, "CanChangeFileStore", true, DataSourceUpdateMode.OnPropertyChanged);

            _infoMessage.DataBindings.Add("Text", _component, "InfoMessage", true, DataSourceUpdateMode.OnPropertyChanged);

            _localServiceControlLink.DataBindings.Add("Text", _component, "LocalServiceControlLinkText", true, DataSourceUpdateMode.OnPropertyChanged);
            _localServiceControlLink.DataBindings.Add("Visible", _component, "IsLocalServiceControlLinkVisible", true, DataSourceUpdateMode.OnPropertyChanged);
            _localServiceControlLink.LinkClicked += (s,e) => _component.LocalServiceControlLinkClicked();

            _fileStoreWarningIcon.DataBindings.Add("Visible", _component, "HasFileStoreChanged", true, DataSourceUpdateMode.OnPropertyChanged);
            _fileStoreWarningMessage.DataBindings.Add("Visible", _component, "HasFileStoreChanged", true, DataSourceUpdateMode.OnPropertyChanged);
            _fileStoreWarningMessage.DataBindings.Add("Text", _component, "FileStoreChangedMessage", true, DataSourceUpdateMode.OnPropertyChanged);

            _totalDiskSpaceDisplay.DataBindings.Add("Text", _component, "TotalSpaceBytesDisplay", true, DataSourceUpdateMode.OnPropertyChanged);

            var maxDiskUsageBinding = new Binding("Value", _component, "MaximumUsedSpacePercent", true, DataSourceUpdateMode.OnPropertyChanged);
			maxDiskUsageBinding.Parse += ParseDiskUsageBinding;
			maxDiskUsageBinding.Format += FormatDiskUsageBinding;

            _maxDiskSpaceDisplay.DataBindings.Add("Text", _component, "MaximumUsedSpaceDisplay", true, DataSourceUpdateMode.OnPropertyChanged);
            _upDownMaxDiskSpace.DataBindings.Add("Value", _component, "MaximumUsedSpacePercent", true, DataSourceUpdateMode.OnPropertyChanged);
			_maxDiskSpace.DataBindings.Add(maxDiskUsageBinding);

            var usedSpaceMeterFillStateBinding = new Binding("FillState", _component, "IsMaximumUsedSpaceExceeded", true, DataSourceUpdateMode.OnPropertyChanged);
            usedSpaceMeterFillStateBinding.Parse += ParseMeterFillState;
            usedSpaceMeterFillStateBinding.Format += FormatMeterFillState;

            _usedSpaceMeter.DataBindings.Add(usedSpaceMeterFillStateBinding);
            _usedSpaceMeter.DataBindings.Add("Value", _component, "UsedSpacePercent", true, DataSourceUpdateMode.OnPropertyChanged);

            _usedDiskSpace.DataBindings.Add("Text", _component, "UsedSpacePercentDisplay", true, DataSourceUpdateMode.OnPropertyChanged);
            _usedDiskSpaceDisplay.DataBindings.Add("Text", _component, "UsedSpaceBytesDisplay", true, DataSourceUpdateMode.OnPropertyChanged);

            _diskSpaceWarningIcon.DataBindings.Add("Visible", _component, "IsMaximumUsedSpaceExceeded", true, DataSourceUpdateMode.OnPropertyChanged);
            _diskSpaceWarningMessage.DataBindings.Add("Visible", _component, "IsMaximumUsedSpaceExceeded", true, DataSourceUpdateMode.OnPropertyChanged);
            _diskSpaceWarningMessage.DataBindings.Add("Text", _component, "MaximumUsedSpaceExceededMessage", true, DataSourceUpdateMode.OnPropertyChanged);

            _studyDeletion.DataBindings.Add("Enabled", _component, "CanChangeDeletionRule", true, DataSourceUpdateMode.OnPropertyChanged);
			_deleteStudiesCheck.DataBindings.Add("Checked", _component, "DeleteStudies", true, DataSourceUpdateMode.OnPropertyChanged);

			_deleteTimeValue.DataBindings.Add("Value", _component, "DeleteTimeValue", true, DataSourceUpdateMode.OnPropertyChanged);
			_deleteTimeValue.DataBindings.Add("Enabled", _component, "DeleteStudies");

			_deleteTimeUnits.Items.AddRange(_component.DeleteTimeUnits.Cast<object>().ToArray());
			_deleteTimeUnits.DataBindings.Add("SelectedItem", _component, "DeleteTimeUnit", true, DataSourceUpdateMode.OnPropertyChanged);
			_deleteTimeUnits.DataBindings.Add("Enabled", _component, "DeleteStudies");
			_deleteTimeUnits.Format += (sender, e) => { e.Value = _component.FormatTimeUnit(e.ListItem); };

			// bug #10076: combobox databinding doesn't apply change until it loses focus, so we do it manually
        	_deleteTimeUnits.SelectedIndexChanged += (sender, args) =>
        	                                         	{
        	                                         		_component.DeleteTimeUnit = (TimeUnit) _deleteTimeUnits.SelectedItem;
        	                                         	};

            _changeFileStore.Click += (s, e) => _component.ChangeFileStore();
            _helpIcon.Click += (s,e) => _component.Help();

            _component.ValidationVisibleChanged += (sender, args) => UpdateDeletionValidationMessage();
            _component.PropertyChanged += OnComponentPropertyChanged;

            //Set initial values.
            OnComponentPropertyChanged(this, new PropertyChangedEventArgs("FileStoreDirectory"));
            OnComponentPropertyChanged(this, new PropertyChangedEventArgs("FileStoreChangedDescription"));
            OnComponentPropertyChanged(this, new PropertyChangedEventArgs("MaximumUsedSpaceExceededDescription"));
            OnComponentPropertyChanged(this, new PropertyChangedEventArgs("HelpMessage"));
        }
 public void SetComponent(IApplicationComponent component)
 {
     _component = (StorageConfigurationComponent)component;
 }
Esempio n. 3
0
 public void SetComponent(IApplicationComponent component)
 {
     _component = (StorageConfigurationComponent)component;
 }
        /// <summary>
        /// Constructor
        /// </summary>
        public StorageConfigurationComponentControl(StorageConfigurationComponent component)
            : base(component)
        {
            InitializeComponent();

            _component = component;

            //This guy's not actually visible. It's just a placeholder for the validation icon.
            _studyDeletionValidationPlaceholder.Text = String.Empty;

            _fileStoreDirectory.DataBindings.Add("Text", _component, "FileStoreDirectory", true, DataSourceUpdateMode.OnPropertyChanged);
            _fileStoreDirectory.DataBindings.Add("Enabled", _component, "CanChangeFileStore", true, DataSourceUpdateMode.OnPropertyChanged);
            _changeFileStore.DataBindings.Add("Enabled", _component, "CanChangeFileStore", true, DataSourceUpdateMode.OnPropertyChanged);

            _infoMessage.DataBindings.Add("Text", _component, "InfoMessage", true, DataSourceUpdateMode.OnPropertyChanged);

            _localServiceControlLink.DataBindings.Add("Text", _component, "LocalServiceControlLinkText", true, DataSourceUpdateMode.OnPropertyChanged);
            _localServiceControlLink.DataBindings.Add("Visible", _component, "IsLocalServiceControlLinkVisible", true, DataSourceUpdateMode.OnPropertyChanged);
            _localServiceControlLink.LinkClicked += (s, e) => _component.LocalServiceControlLinkClicked();

            _fileStoreWarningIcon.DataBindings.Add("Visible", _component, "HasFileStoreChanged", true, DataSourceUpdateMode.OnPropertyChanged);
            _fileStoreWarningMessage.DataBindings.Add("Visible", _component, "HasFileStoreChanged", true, DataSourceUpdateMode.OnPropertyChanged);
            _fileStoreWarningMessage.DataBindings.Add("Text", _component, "FileStoreChangedMessage", true, DataSourceUpdateMode.OnPropertyChanged);

            _totalDiskSpaceDisplay.DataBindings.Add("Text", _component, "TotalSpaceBytesDisplay", true, DataSourceUpdateMode.OnPropertyChanged);

            var maxDiskUsageBinding = new Binding("Value", _component, "MaximumUsedSpacePercent", true, DataSourceUpdateMode.OnPropertyChanged);

            maxDiskUsageBinding.Parse  += ParseDiskUsageBinding;
            maxDiskUsageBinding.Format += FormatDiskUsageBinding;

            _maxDiskSpaceDisplay.DataBindings.Add("Text", _component, "MaximumUsedSpaceDisplay", true, DataSourceUpdateMode.OnPropertyChanged);
            _upDownMaxDiskSpace.DataBindings.Add("Value", _component, "MaximumUsedSpacePercent", true, DataSourceUpdateMode.OnPropertyChanged);
            _maxDiskSpace.DataBindings.Add(maxDiskUsageBinding);

            var usedSpaceMeterFillStateBinding = new Binding("FillState", _component, "IsMaximumUsedSpaceExceeded", true, DataSourceUpdateMode.OnPropertyChanged);

            usedSpaceMeterFillStateBinding.Parse  += ParseMeterFillState;
            usedSpaceMeterFillStateBinding.Format += FormatMeterFillState;

            _usedSpaceMeter.DataBindings.Add(usedSpaceMeterFillStateBinding);
            _usedSpaceMeter.DataBindings.Add("Value", _component, "UsedSpacePercent", true, DataSourceUpdateMode.OnPropertyChanged);

            _usedDiskSpace.DataBindings.Add("Text", _component, "UsedSpacePercentDisplay", true, DataSourceUpdateMode.OnPropertyChanged);
            _usedDiskSpaceDisplay.DataBindings.Add("Text", _component, "UsedSpaceBytesDisplay", true, DataSourceUpdateMode.OnPropertyChanged);

            _diskSpaceWarningIcon.DataBindings.Add("Visible", _component, "IsMaximumUsedSpaceExceeded", true, DataSourceUpdateMode.OnPropertyChanged);
            _diskSpaceWarningMessage.DataBindings.Add("Visible", _component, "IsMaximumUsedSpaceExceeded", true, DataSourceUpdateMode.OnPropertyChanged);
            _diskSpaceWarningMessage.DataBindings.Add("Text", _component, "MaximumUsedSpaceExceededMessage", true, DataSourceUpdateMode.OnPropertyChanged);

            _studyDeletion.DataBindings.Add("Enabled", _component, "CanChangeDeletionRule", true, DataSourceUpdateMode.OnPropertyChanged);
            _deleteStudiesCheck.DataBindings.Add("Checked", _component, "DeleteStudies", true, DataSourceUpdateMode.OnPropertyChanged);

            _deleteTimeValue.DataBindings.Add("Value", _component, "DeleteTimeValue", true, DataSourceUpdateMode.OnPropertyChanged);
            _deleteTimeValue.DataBindings.Add("Enabled", _component, "DeleteStudies");

            _deleteTimeUnits.Items.AddRange(_component.DeleteTimeUnits.Cast <object>().ToArray());
            _deleteTimeUnits.DataBindings.Add("SelectedItem", _component, "DeleteTimeUnit", true, DataSourceUpdateMode.OnPropertyChanged);
            _deleteTimeUnits.DataBindings.Add("Enabled", _component, "DeleteStudies");
            _deleteTimeUnits.Format += (sender, e) => { e.Value = _component.FormatTimeUnit(e.ListItem); };

            // bug #10076: combobox databinding doesn't apply change until it loses focus, so we do it manually
            _deleteTimeUnits.SelectedIndexChanged += (sender, args) =>
            {
                _component.DeleteTimeUnit = (TimeUnit)_deleteTimeUnits.SelectedItem;
            };

            _changeFileStore.Click += (s, e) => _component.ChangeFileStore();
            _helpIcon.Click        += (s, e) => _component.Help();

            _component.ValidationVisibleChanged += (sender, args) => UpdateDeletionValidationMessage();
            _component.PropertyChanged          += OnComponentPropertyChanged;

            //Set initial values.
            OnComponentPropertyChanged(this, new PropertyChangedEventArgs("FileStoreDirectory"));
            OnComponentPropertyChanged(this, new PropertyChangedEventArgs("FileStoreChangedDescription"));
            OnComponentPropertyChanged(this, new PropertyChangedEventArgs("MaximumUsedSpaceExceededDescription"));
            OnComponentPropertyChanged(this, new PropertyChangedEventArgs("HelpMessage"));
        }