public void Duplicate()
        {
            var folder = (IWorklistFolder)this.Context.SelectedFolder;

            if (!CanDuplicate(folder))
            {
                return;
            }

            try
            {
                var fs = (IWorklistFolderSystem)this.Context.SelectedFolderSystem;
                var initialWorklistClassName = folder.WorklistClassName;

                var editor   = new WorklistEditorComponent(folder.WorklistRef, false, fs.SupportedWorklistClasses, initialWorklistClassName);
                var exitCode = ApplicationComponent.LaunchAsDialog(
                    this.Context.DesktopWindow,
                    new DialogBoxCreationArgs(editor, "New Worklist", null, DialogSizeHint.Large));
                if (exitCode == ApplicationComponentExitCode.Accepted)
                {
                    AddNewWorklistsToFolderSystem(editor.EditedWorklistSummaries, fs);
                }
            }
            catch (Exception e)
            {
                ExceptionHandler.Report(e, this.Context.DesktopWindow);
            }
        }
        public void Edit()
        {
            var folder = (IWorklistFolder)this.Context.SelectedFolder;

            if (!CanEdit(folder))
            {
                return;
            }

            try
            {
                var editor   = new WorklistEditorComponent(folder.WorklistRef, false);
                var exitCode = ApplicationComponent.LaunchAsDialog(
                    this.Context.DesktopWindow,
                    new DialogBoxCreationArgs(editor, "Edit Worklist" + " - " + folder.Name, null, DialogSizeHint.Large));
                if (exitCode == ApplicationComponentExitCode.Accepted)
                {
                    var worklist = CollectionUtils.FirstElement(editor.EditedWorklistSummaries);
                    var fs       = (IWorklistFolderSystem)this.Context.SelectedFolderSystem;

                    // update folder properties
                    fs.UpdateWorklistFolder(folder, worklist);

                    // refresh folder content
                    fs.InvalidateFolder(folder);
                }
            }
            catch (Exception e)
            {
                ExceptionHandler.Report(e, this.Context.DesktopWindow);
            }
        }