Exemplo n.º 1
0
        public bool CanRun()
        {
            //check if any commands in active workflow
            DocumentViewModel wvm = DocumentsSource.FirstOrDefault(x => x.IsSelected);

            return(wvm != null && wvm.Workflow.Any());
        }
Exemplo n.º 2
0
        /// <summary>
        /// Remove a layout item from this instance.
        /// </summary>
        /// <param name="item">The item to remove.</param>
        /// <returns>True if the item was sucsessfully remove, else false.</returns>
        public bool RemoveLayoutItem(ILayoutItemViewModel item)
        {
            bool sucsess;

            switch (item)
            {
            case IToolViewModel tool:
                sucsess = AnchorablesSource.Remove(tool);
                break;

            case IDocumentViewModel document:
                sucsess = DocumentsSource.Remove(document);
                break;

            default:
                sucsess = false;
                break;
            }
            if (item == ActiveContent && sucsess)
            {
                ILayoutItemViewModel newActive = DocumentsSource.FirstOrDefault();
                if (newActive is null)
                {
                    newActive = AnchorablesSource.FirstOrDefault();
                }
                ActiveContent = newActive;
            }
            return(sucsess);
        }
Exemplo n.º 3
0
        public string AddDocument(string title)
        {
            var doc = new Document();

            doc.Title.Value = title;
            DocumentsSource.Add(doc);
            return(doc.Id.Value);
        }
Exemplo n.º 4
0
 private void StartObserveDataChanged()
 {
     DataChangedDisposable.Disposable = Observable.Merge(DocumentsSource.CollectionChangedAsObservable().ToUnit(),
                                                         DocumentsSource.ObserveElementObservableProperty(x => x.Title).ToUnit(),
                                                         DocumentsSource.ObserveElementObservableProperty(x => x.Content).ToUnit())
                                        .Throttle(TimeSpan.FromSeconds(5))
                                        .Subscribe(async _ => await LocalObjectStorageHelper.SaveFileAsync("docs.json", DocumentsSource.ToArray()));
 }
Exemplo n.º 5
0
 void IFloatingPaneHost.RemoveViewModel(IViewModel iViewModel)
 {
     if (DocumentsSource.Contains(iViewModel))
     {
         DocumentsSource.Remove(iViewModel);
     }
     else if (ToolsSource.Contains(iViewModel))
     {
         ToolsSource.Remove(iViewModel);
     }
 }
Exemplo n.º 6
0
        public async Task LoadDataAsync()
        {
            if (!await LocalObjectStorageHelper.FileExistsAsync("docs.json"))
            {
                return;
            }

            DataChangedDisposable.Disposable = Disposable.Empty;
            var docs = await LocalObjectStorageHelper.ReadFileAsync("docs.json", Enumerable.Empty <Document>());

            foreach (var doc in docs)
            {
                DocumentsSource.Add(doc);
            }
            StartObserveDataChanged();
        }
Exemplo n.º 7
0
        /// <summary>
        /// Add a layout item to this instance.
        /// </summary>
        /// <param name="item">The item to dock.</param>
        /// <param name="setAsActive">Set the item as the currenly active content.</param>
        public void AddLayoutItem(ILayoutItemViewModel item, bool setAsActive)
        {
            switch (item)
            {
            case IToolViewModel tool:
                AnchorablesSource.Add(tool);
                break;

            case IDocumentViewModel document:
                DocumentsSource.Add(document);
                break;

            default:
                return;
            }
            if (setAsActive)
            {
                ActiveContent = item;
            }
        }
Exemplo n.º 8
0
        /// <summary>
        /// Adds a new Document. Optionally adds a Command or Workflow
        /// </summary>
        /// <param name="title"></param>
        public DocumentViewModel AddDocument(string title)
        {
            //FIXME handle better?
            string ContentId = "workspace_" + (this.DocumentsSource.Count + 1).ToString();

            DocumentViewModel document = new DocumentViewModel(DialogService, ConfigService)
            {
                Title           = title,
                ContentId       = ContentId,
                ParentViewModel = this,
                Settings        = new WF_Settings(ConfigService, Logger) //FIXME
            };

            DocumentsSource.Add(document);

            //FIXME bugged?
            DocumentViewModel currentDoc = this.DocumentsSource.FirstOrDefault(x => x.ContentId == ContentId);

            return(document);
        }
Exemplo n.º 9
0
        public void Run()
        {
            DocumentViewModel wvm = DocumentsSource.FirstOrDefault(x => x.IsSelected);
            var      workflow     = wvm.Workflow;
            RAD_Task RAD_Task     = Kernel.Get <RAD_Task>();
            WCC_Task WCC_Task     = Kernel.Get <WCC_Task>();

            Logger.Clear();
            Logger.LogString("Starting Workflow...");

            // FIXME structure?
            foreach (IWorkflowItem item in workflow)
            {
                WFR completed = WFR.WFR_Error;

                if (item.GetType().IsSubclassOf(typeof(RAD_Command)))
                {
                    completed = RAD_Task.RunCommandSync((RAD_Command)item);
                }
                else if (item.GetType().IsSubclassOf(typeof(WCC_Command)))
                {
                    completed = WCC_Task.RunCommandSync((WCC_Command)item);
                }
                else //workflowitems
                {
                    completed = item.Run();
                }

                if (completed == WFR.WFR_Error)
                {
                    Logger.LogString("Aborting.");
                    break;
                }
                else
                {
                    continue;
                }
            }

            Logger.LogString("Done.");
        }
Exemplo n.º 10
0
 public void RemoveDocument(string id)
 {
     DocumentsSource.Remove(DocumentsSource.First(x => x.Id.Value == id));
 }