private void FindInField(int depthLimit, FieldInfo f, int arrayIdx, object fieldValue, string path)
        {
            if (depthLimit <= 0)
            {
                return;
            }

            if (fieldValue != null)
            {
                if (type.IsAssignableFrom(fieldValue.GetType()))
                {
                    AddResult(instances, f, fieldValue);
                }
                else
                {
                    string name = f.GetName(true) + (arrayIdx == -1 ? "" : "[" + arrayIdx + "]");
                    var    instancesOfFieldValue = FindInstancesIn(fieldValue, depthLimit - 1, path + " -> " + name);
                    if (instancesOfFieldValue != null)
                    {
                        instances.AddRange(instances);
                    }
                }

                object[] array = LocalsHelper.AsObjectArrayFromIenumerable(fieldValue);
                if (array != null)
                {
                    // check items
                    for (int i = 0; i < array.Length; i++)
                    {
                        FindInField(depthLimit - 1, f, i, array[i], path);
                    }
                }
            }
        }
Пример #2
0
        public override void ApplyLocalization()
        {
            if (_itemsToBackup != null)
            {
                _itemsToBackup.ApplyNewDegreesOfCompression();
            }

            storeToolStripMenuItem.Text   = LocalsHelper.ToString(CompressionDegree.Store);
            fastestToolStripMenuItem.Text = LocalsHelper.ToString(CompressionDegree.Fastest);
            fastToolStripMenuItem.Text    = LocalsHelper.ToString(CompressionDegree.Fast);
            normalToolStripMenuItem.Text  = LocalsHelper.ToString(CompressionDegree.Normal);
            maximumToolStripMenuItem.Text = LocalsHelper.ToString(CompressionDegree.Maximum);
            ultraToolStripMenuItem.Text   = LocalsHelper.ToString(CompressionDegree.Ultra);

            itemsToCompressColumnHeader.Text           = Translation.Current[418];
            setCompressionDegreeToolStripMenuItem.Text = Translation.Current[417];

            SetHintForControl(compressionItemsListView, Translation.Current[73]);
            SetHintForControl(addFoldersButton, Translation.Current[74]);
            addFoldersToolStripMenuItem.Text = Translation.Current[74];
            SetHintForControl(removeCompressionItemButton, Translation.Current[77]);
            removeFromListToolStripMenuItem.Text = Translation.Current[77];
            SetHintForControl(addFilesButton, Translation.Current[78]);
            addFilesToolStripMenuItem.Text = Translation.Current[78];
        }
        public void ApplyNewDegreesOfCompression()
        {
            _listView.BeginUpdate();

            foreach (CompressionDegree degree in CompressionDegree.GetValues(typeof(CompressionDegree)))
            {
                _listView.Groups[(int)degree].Header = LocalsHelper.ToString(degree);
            }

            _listView.EndUpdate();
        }
Пример #4
0
        void LoadForm(object sender, EventArgs e)
        {
            // displaying the current settings

            settingsUserControl.SetSettingsToUi(_controller.Options, PowerTask.None, _task, false, ThreadPriority.BelowNormal);

            tasksListView.BeginUpdate();
            ReadOnlyCollection <CompressionItem> items = _controller.ListOfFiles;

            foreach (CompressionItem item in items)
            {
                var listItem = new ListViewItem(item.Target, item.IsFolder ? (int)ImagesEnum.Folder : (int)ImagesEnum.File);
                listItem.SubItems.Add(LocalsHelper.ToString(item.CompressionDegree));
                listItem.SubItems.Add(string.Empty);
                listItem.Group   = item.IsFolder ? tasksListView.Groups[(int)GroupEnum.CompressionOfFolders] : tasksListView.Groups[(int)GroupEnum.CompressionOfFiles];
                listItem.Tag     = item;
                listItem.Checked = true;
                tasksListView.Items.Add(listItem);
            }

            foreach (StorageBase item in _task.Storages)
            {
                var listItem = new ListViewItem(item.StorageName);

                if (item is FtpStorage)
                {
                    listItem.ImageIndex = (int)ImagesEnum.Ftp;
                }
                else if (item is HddStorage)
                {
                    listItem.ImageIndex = (int)ImagesEnum.Hdd;
                }
                else if (item is NetworkStorage)
                {
                    listItem.ImageIndex = (int)ImagesEnum.Network;
                }
                else
                {
                    throw new NotImplementedException(item.GetType().ToString());
                }

                listItem.SubItems.Add(item.Hint);
                listItem.SubItems.Add(string.Empty);
                listItem.Group   = tasksListView.Groups[(int)GroupEnum.Storages];
                listItem.Tag     = item;
                listItem.Checked = true;
                tasksListView.Items.Add(listItem);
            }

            foreach (BackupEventTaskInfo taskInfo in _task.BeforeBackupTasksChain)
            {
                var listItem = new ListViewItem(taskInfo.Program);
                listItem.ImageIndex = (int)ImagesEnum.ProgramInRunBeforeAfterBackupChain;

                listItem.SubItems.Add(taskInfo.Arguments);
                listItem.SubItems.Add(string.Empty);
                listItem.Group   = tasksListView.Groups[(int)GroupEnum.BeforeBackupChain];
                listItem.Tag     = taskInfo;
                listItem.Checked = true;
                tasksListView.Items.Add(listItem);
            }

            foreach (BackupEventTaskInfo taskInfo in _task.AfterBackupTasksChain)
            {
                var listItem = new ListViewItem(taskInfo.Program);
                listItem.ImageIndex = (int)ImagesEnum.ProgramInRunBeforeAfterBackupChain;

                listItem.SubItems.Add(taskInfo.Arguments);
                listItem.SubItems.Add(string.Empty);
                listItem.Group   = tasksListView.Groups[(int)GroupEnum.AfterBackupChain];
                listItem.Tag     = taskInfo;
                listItem.Checked = true;
                tasksListView.Items.Add(listItem);
            }

            tasksListView.EndUpdate();

            // logical verifying of settings
            // If they are not correct, just closing the Master
            if (items.Count == 0)
            {
                Messages.ShowInformationBox(Translation.Current[522]);
                Close();
            }

            if (_task.Storages.Count < 1)
            {
                Messages.ShowInformationBox(Translation.Current[523]);
                Close();
            }
        }
Пример #5
0
        void OnNotificationReceived(object sender, EventArgs e)
        {
            if (InvokeRequired)
            {
                Invoke(new EventHandler(OnNotificationReceived), new [] { sender, e });
            }
            else
            {
                if (e == null)
                {
                    throw new InvalidOperationException();
                }


                if (e is PackingNotificationEventArgs)
                {
                    var notification = (PackingNotificationEventArgs)e;
                    foreach (ListViewItem item in tasksListView.Items)
                    {
                        if (item.Tag == notification.Item)
                        {
                            item.SubItems[2].Text = LocalsHelper.ToString(notification.State);
                            if (notification.State != ProcessingState.NotStarted)
                            {
                                item.BackColor = GetResultColor(notification.State);
                            }
                        }
                    }
                }
                else if (e is CopyingToStorageNotificationEventArgs)
                {
                    var notification = (CopyingToStorageNotificationEventArgs)e;

                    foreach (ListViewItem item in tasksListView.Items)
                    {
                        if (item.Tag == notification.Storage)
                        {
                            item.SubItems[2].Text = LocalsHelper.ToString(notification.State);
                            if (notification.State != ProcessingState.NotStarted)
                            {
                                item.BackColor = GetResultColor(notification.State);
                            }
                        }
                    }
                }
                else if (e is ImagePackingNotificationEventArgs)
                {
                    var notification = (ImagePackingNotificationEventArgs)e;

                    foreach (ListViewItem item in tasksListView.Items)
                    {
                        if (item.Tag is string)
                        {
                            if ((string)item.Tag == ImagePacking)
                            {
                                item.SubItems[2].Text = LocalsHelper.ToString(notification.State);
                                if (notification.State != ProcessingState.NotStarted)
                                {
                                    item.BackColor = GetResultColor(notification.State);
                                }
                            }
                        }
                    }
                }
                else if (e is RunProgramBeforeOrAfterBackupEventArgs)
                {
                    var notification = (RunProgramBeforeOrAfterBackupEventArgs)e;

                    foreach (ListViewItem item in tasksListView.Items)
                    {
                        if (item.Tag is BackupEventTaskInfo)
                        {
                            if (item.Tag == notification.TaskInfo)
                            {
                                item.SubItems[2].Text = LocalsHelper.ToString(notification.State);
                                if (notification.State != ProcessingState.NotStarted)
                                {
                                    item.BackColor = GetResultColor(notification.State);
                                }
                            }
                        }
                    }
                }
            }
        }