コード例 #1
0
        public void DisplayOutput(AbstractServiceTab callingService, string callingAction, object output, params string[] extraInfo)
        {
            var outputType = TypeUtils.DetermineOutputType(output);

            addOutputHeader(callingAction, extraInfo);
            addCopyOutputButton();
            bool success = false;

            switch (outputType)
            {
            case OutputType.Single:
                _outputControl = outputAsSingle(output, out success);
                break;

            case OutputType.List:
                _outputControl = outputAsList(output, out success);
                break;

            case OutputType.Table:
                _outputControl = outputAsTable(output, out success);
                break;

            default:
                _outputControl = new Control();
                break;
            }
            Canvas.SetTop(_outputControl, 50);
            Canvas.SetLeft(_outputControl, CANVAS_MARGIN);
            if (success)
            {
                _tabCanvas.Children.Add(_outputControl);
                _disposableElements.Add(_outputControl);
            }
            _executingTab = callingService;
        }
コード例 #2
0
        public void DisplayInputFields(AbstractServiceTab callingService, MethodInfo callingAction)
        {
            _mandatoryControls = new Dictionary <string, Control>();
            _inputControls     = new Dictionary <string, Control>();
            int i = 1;

            _executedAction = callingAction;
            _executingTab   = callingService;
            foreach (var parameter in callingAction.GetParameters())
            {
                var fieldLabel = createFieldLabel(parameter, i);
                _disposableElements.Add(fieldLabel);
                if (parameter.ParameterType == typeof(bool))
                {
                    _inputControls[parameter.Name] = createBoolField(parameter, i);
                }
                else
                {
                    _inputControls[parameter.Name] = createInputField(parameter, i);
                }
                if (parameter.IsMandatory())
                {
                    _mandatoryControls[parameter.Name] = _inputControls[parameter.Name];
                }
                _disposableElements.Add(_inputControls[parameter.Name]);
                i++;
            }
            addExecuteButton();
        }
コード例 #3
0
        public OutputTab InitialiseOutputTab(AbstractServiceTab executingTab, MethodInfo executedAction)
        {
            var inputTab = createNewOutputTab(_outputControl, ref _outputTabCount, executedAction);

            inputTab.Focus();
            return(inputTab);
        }
コード例 #4
0
        public void DisplayOutput(OutputTab outputTab, object objectToDisplay, AbstractServiceTab source, MethodInfo actionMethod)
        {
            var callingAction = outputTab.ExecutedAction ?? actionMethod;

            outputTab.ClearInputElements();
            outputTab.DisplayOutput(source, callingAction.Name, objectToDisplay ?? "No Output To Display");
            outputTab.Focus();
        }
コード例 #5
0
        private void addNewServiceTab(AbstractServiceTab tab, double width, double left, TabControl tabControl)
        {
            var tabItem = createNewServiceTabItem(tab.Title, width, left, tabControl);

            tab.TabManager = this;
            tab.SetControls(tabItem, tabControl);
            tab.InitialiseServiceTab();
        }
コード例 #6
0
        public void DisplayError(Exception exception, AbstractServiceTab source, OutputTab tab)
        {
            tab.TabTitle = "Error";
            var outputString = new StringBuilder();

            outputString.AppendLine("Error calling action. Unwinding Stacktrace:");
            outputString.AppendLine("-------------------------------------------");
            outputString.AppendLine(exception.Message);
            var indent = string.Empty;

            while (exception.InnerException != null)
            {
                indent += " ";
                outputString.AppendLine(indent + ">" + exception.InnerException.Message);
                exception = exception.InnerException;
            }
            tab.DisplayOutput(source, "Error", outputString.ToString());
            tab.Focus();
        }
コード例 #7
0
 public void DisplayInputTab(OutputTab inputTab, AbstractServiceTab executingTab, MethodInfo executedAction)
 {
     inputTab.DisplayInputFields(executingTab, executedAction);
     inputTab.Focus();
 }