private void SetEnabledIfRuleAppIsLoaded(VisualDelegateCommand command)
 {
     if (command != null)
     {
         command.IsEnabled = RuleApplicationService.RuleApplicationDef != null;
     }
 }
        private void AddHomeTabButtons()
        {
            var ribbonTab = IrAuthorShell.HomeTab;

            if (ribbonTab != null)
            {
                _analyzeGroup = ribbonTab.AddGroup("App Analysis", null, "");

                _manageUnusedFields = new VisualDelegateCommand(this.ManageUnusedFields, "Manage Unused Fields",
                                                                ImageFactory.GetImageAuthoringAssembly(@"/Images/Trace16.png"),
                                                                ImageFactory.GetImageAuthoringAssembly(@"/Images/Trace32.png"), true);
                _analyzeGroup.AddButton(_manageUnusedFields);


                _showFieldUsageCommand = new VisualDelegateCommand(this.ShowFieldUsage, "Field Usage Summary",
                                                                   ImageFactory.GetImageAuthoringAssembly(@"/Images/Trace16.png"),
                                                                   ImageFactory.GetImageAuthoringAssembly(@"/Images/Trace32.png"), true);
                _analyzeGroup.AddButton(_showFieldUsageCommand);

                _showDefCountsCommand = new VisualDelegateCommand(this.ShowDefTypeCounts, "Def Types",
                                                                  ImageFactory.GetImageAuthoringAssembly(@"/Images/CollapseAll16.png"),
                                                                  ImageFactory.GetImageAuthoringAssembly(@"/Images/CollapseAll32.png"), true);
                _analyzeGroup.AddButton(_showDefCountsCommand);
            }
        }
예제 #3
0
        public override void Enable()
        {
            var group = IrAuthorShell.HomeTab.GetGroup("Reports");

            var existingButton = group.GetControl("Schema Diagram");

            if (existingButton != null)
            {
                group.RemoveItem(existingButton);
            }

            _loadCommand           = new VisualDelegateCommand(LoadDiagram, "Schema Diagram", "/Images/flow32.png", "/Images/flow32.png", false);
            _loadCommand.IsEnabled = RuleApplicationService.RuleApplicationDef != null;

            _localCommand           = new VisualDelegateCommand(LoadDiagram, "Open in Local Navigator", "/Images/flow16.png", "/Images/flow32.png");
            _localCommand.IsEnabled = RuleApplicationService.RuleApplicationDef != null;

            _ffCommand           = new VisualDelegateCommand(OpenInFF, "Launch in Firefox", "/Images/flow16.png", "/Images/flow32.png");
            _ffCommand.IsEnabled = IsFirefoxInstalled() && RuleApplicationService.RuleApplicationDef != null;

            _browserCommand           = new VisualDelegateCommand(OpenInBrowser, "Launch in Default Browser", "/Images/flow16.png", "/Images/flow32.png");
            _browserCommand.IsEnabled = RuleApplicationService.RuleApplicationDef != null;

            IRibbonMenuButton diagramButton = group.AddSplitMenuButton(_loadCommand);

            diagramButton.AddMenuItem(_localCommand);
            diagramButton.AddMenuItem(_ffCommand);
            diagramButton.AddMenuItem(_browserCommand);

            RuleApplicationService.Opened += WhenRuleApplicationChanged;
            RuleApplicationService.Closed += WhenRuleApplicationChanged;
        }
예제 #4
0
        /// <summary>
        ///
        /// </summary>
        public override void Enable()
        {
            undoCommand = new VisualDelegateCommand(Undo, "Undo",
                                                    ImageFactory.GetImageThisAssembly("Images/arrow-undo-16.png"),
                                                    ImageFactory.GetImageThisAssembly("Images/arrow-undo-32.png"),
                                                    false);

            redoCommand = new VisualDelegateCommand(Redo, "Redo",
                                                    ImageFactory.GetImageThisAssembly("Images/arrow-redo-16.png"),
                                                    ImageFactory.GetImageThisAssembly("Images/arrow-redo-32.png"),
                                                    false);

            var group = IrAuthorShell.HomeTab.GetGroup("Clipboard");

            group.AddButton(undoCommand);
            group.AddButton(redoCommand);

            var deleteStream = Observable.FromEventPattern <CancelEventArgs <RuleRepositoryDefBase> >(
                x => RuleApplicationService.Controller.RemovingDef += x,
                x => RuleApplicationService.Controller.RemovingDef -= x)
                               .Select(x => x.EventArgs.Item)
                               .Select(x => PopulateUndoHistoryItem(x, UndoDefRemoved));

            var insertStream = Observable.FromEventPattern <EventArgs <RuleRepositoryDefBase> >(
                x => RuleApplicationService.Controller.DefAdded += x,
                x => RuleApplicationService.Controller.DefAdded -= x)
                               .Select(x => x.EventArgs.Item)
                               .Select(x => PopulateUndoHistoryItem(x, UndoDefInserted));


            // add operations to the undo stack, as long as there isn't an undo currently in progress
            var operationStream = deleteStream.Merge(insertStream);
            var undoStream      = operationStream.Where(x => !undoInProgress.Value).Do(item => LogEvent("UndoStream: {0}", item.DefToUndo.Name));
            var redoStream      = operationStream.Where(x => undoInProgress.Value).Do(item => LogEvent("RedoStream: {0}", item.DefToUndo.Name));

            subscriptionsDisposable.Add(undoStream.Subscribe(x => undoBuffer.Push(x)));
            subscriptionsDisposable.Add(redoStream.Subscribe(x => redoBuffer.Push(x)));

            subscriptionsDisposable.Add(redoBuffer.ItemCount.Subscribe(x => redoCommand.IsEnabled = x > 0));

            var undoActionStream = UndoClicked.Where(x => undoBuffer.Any());

            subscriptionsDisposable.Add(undoActionStream.Subscribe(x =>
            {
                var item = undoBuffer.Pop();
                PerformUndo(item);
            }, exception => LogEvent(exception.ToString())));

            var redoActionStream = redoSubject.Where(x => redoBuffer.Any());

            subscriptionsDisposable.Add(redoActionStream.Subscribe(x =>
            {
                var item = redoBuffer.Pop();
                item.UndoAction(item);
            }));
            subscriptionsDisposable.Add(undoBuffer.ItemCount.Subscribe(x => undoCommand.IsEnabled = x > 0));
            subscriptionsDisposable.Add(undoInProgress.Subscribe(x => LogEvent("UndoInProgress: {0}", x)));
        }
예제 #5
0
        public override void Enable()
        {
            var group = IrAuthorShell.HomeTab.AddGroup(ExtensionRibbonGroup, ImageFactory.GetImageAuthoringAssembly(ExtensionImageSource16));

            __ExtensionCommand = new VisualDelegateCommand(ButtonWasPressed, ExtensionButtonText, ImageFactory.GetImageAuthoringAssembly(ExtensionImageSource16), ImageFactory.GetImageAuthoringAssembly(ExtensionImageSource32), false);
            group.AddButton(__ExtensionCommand);
            RuleApplicationService.Opened        += SetEnabled;
            RuleApplicationService.Closed        += SetEnabled;
            SelectionManager.SelectedItemChanged += SetEnabled;
        }
예제 #6
0
        public override void Enable()
        {
            _updateRulesCommand = new VisualDelegateCommand(UpdateRules, "Update Rules", "/Images/Amazon.png", "/Images/Amazon.png", false);

            var group = IrAuthorShell.HomeTab.AddGroup("AWS", null, "");

            group.AddButton(_updateRulesCommand);

            RuleApplicationService.Opened += EnableButton;
            RuleApplicationService.Closed += EnableButton;
        }
예제 #7
0
        public override void Enable()
        {
            _group = IrAuthorShell.HomeTab.AddGroup("Import", null, "");

            _importCommand = new VisualDelegateCommand(Import, "Import", ImageFactory.GetImageThisAssembly(@"/import.png"), ImageFactory.GetImageThisAssembly(@"/import.png"), false);
            _button        = _group.AddButton(_importCommand, "Import Decision Table");

            RuleApplicationService.Opened        += EnableButton;
            RuleApplicationService.Closed        += EnableButton;
            SelectionManager.SelectedItemChanged += EnableButton;
        }
예제 #8
0
        public override void Enable()
        {
            ViewGalleryCommand = new VisualDelegateCommand(ViewGallery, "Extensions Manager",
                                                           ImageFactory.GetImage("irAuthor", "Images/Extension32.png"),
                                                           ImageFactory.GetImage("irAuthor", "Images/Extension32.png"),
                                                           true);

            var homeTab = IrAuthorShell.HomeTab;
            var group   = homeTab.AddGroup("Extension Gallery", ImageFactory.GetImage("irAuthor", "Images/SmileFace16.png"));

            _ = group.AddButton(ViewGalleryCommand);
        }
예제 #9
0
        public override void Enable()
        {
            //Icon from https://freeicon.org/icon/15015/magnifying-glass
            OpenSearchCommand = new VisualDelegateCommand(OpenSearch, "Search Catalog",
                                                          ImageFactory.GetImageThisAssembly("images/magnifyingglass.png"),
                                                          ImageFactory.GetImageThisAssembly("images/magnifyingglass.png"),
                                                          RuleApplicationService.Connection != null);

            RuleApplicationService.HasConnectionChanged += RuleApplicationService_HasConnectionChanged;

            var catalogTab = IrAuthorShell.Ribbon.GetTab("Catalog");
            var group      = catalogTab.GetGroup("General");
            var button     = group.AddButton(OpenSearchCommand);
        }
예제 #10
0
        private void WhenContentControlChanged(object sender, EventArgs e)
        {
            if (SelectionManager.SelectedItem is DecisionTableDef)
            {
                decisionTableTabGroup = IrAuthorShell.Ribbon.GetContextualTabGroup("Decision Table");

                if (decisionTableTabGroup != null)
                {
                    settingsTab             = decisionTableTabGroup.GetTab("Settings");
                    toolsGroup              = settingsTab.GetGroup("Tools");
                    exportCommand           = new VisualDelegateCommand(ExportTable, "Export to csv", ImageFactory.GetImageThisAssembly(@"Images/csv32.png"), ImageFactory.GetImageThisAssembly(@"Images/csv48.png"), false);
                    exportCommand.IsEnabled = true;
                    toolsGroup.AddButton(exportCommand);
                }
            }
        }
예제 #11
0
        public override void Enable()
        {
            var group = IrAuthorShell.HomeTab.GetGroup("Reports");
            //var group = IrAuthorShell.HomeTab.AddGroup("Flow Visualizer", ImageFactory.GetImageThisAssembly("/Images/flow32.png"));
            var button = group.GetControl("Execution Flow");

            if (button != null)
            {
                group.RemoveItem(button);
            }
            _submitCommand = new VisualDelegateCommand(Submit, "Execution Flow", "/Images/flow32.png", "/Images/flow32.png", false);
            group.AddButton(_submitCommand);
            _submitCommand.IsEnabled = RuleApplicationService.RuleApplicationDef != null;
            //_submitCommand.IsEnabled = false;

            RuleApplicationService.Opened += WhenRuleApplicationChanged;
            RuleApplicationService.Closed += WhenRuleApplicationChanged;
        }
예제 #12
0
        public override void Enable()
        {
            _group = IrAuthorShell.HomeTab.GetGroup("General");

            if (_group == null)
            {
                _group = IrAuthorShell.HomeTab.AddGroup("General", null);
            }
            else
            {
                _groupExisted = true;
            }

            _command           = new VisualDelegateCommand(Execute, "Export Table", ImageFactory.GetImageThisAssembly("Images/Image16.png"), ImageFactory.GetImageThisAssembly("Images/Image32.png"));
            _command.IsEnabled = false;

            _button = _group.AddButton(_command);

            SelectionManager.SelectedItemChanged += WhenSelectedItemChanged;
        }
예제 #13
0
 public Extension()
     : base("RefreshTemplateEngine", "Refreshes the template engine", new Guid("{D9DA19AA-2C3E-4510-921B-C87F4FA60BCE}"))
 {
     _refreshTemplateEngineCommand = new VisualDelegateCommand(RefreshTemplateEngine, "Refresh Template Engine", ImageFactory.GetImageAuthoringAssembly("/Images/Refresh32.png"), null, false);
 }