Beispiel #1
0
        private IAppender[] ReadAppenders(IAppenderFactory appenderFactory, ILayoutFactory layoutFactory, int n)
        {
            IAppender[] appenders = new IAppender[n];

            for (int i = 0; i < n; i++)
            {
                string[] appenderParts = this.reader.ReadLine().Split();

                string      appenderType = appenderParts[0];
                string      layoutType   = appenderParts[1];
                ReportLevel reportLevel  = appenderParts.Length == 3
                    ? Enum.Parse <ReportLevel>(appenderParts[2], true)
                    : ReportLevel.Info;

                try
                {
                    ILayout layout = this.layoutFactory.CreateLayout(layoutType);

                    IAppender appender = this.appenderFactory.CreateAppender(appenderType, layout, reportLevel);

                    appenders[i] = appender;
                }
                catch (ArgumentException ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }

            return(appenders);
        }
Beispiel #2
0
 public void RegisterLayoutFactory(ILayoutFactory lf)
 {
     if (!_factories.Contains(lf))
     {
         _factories.Add(lf);
     }
 }
Beispiel #3
0
        public DynamicLayout(Type implementationType, ILayoutFactory <TLayout> factory, IEnumerable <ILayoutProperty <TLayout, TSchema> > properties)
        {
            _factory           = factory;
            ImplementationType = implementationType;

            _properties = properties.ToArray();
        }
 public CommandInterpreter()
 {
     this.appenders       = new List <IAppender>();
     this.loggers         = new List <ILogger>();
     this.layoutFactory   = new LayoutFactory();
     this.appenderFactory = new AppenderFactory();
 }
Beispiel #5
0
 public Engine(IAppenderFactory appenderFactory, ILayoutFactory layoutFactory, IReader reader, IWriter writer)
 {
     this.appenderFactory = appenderFactory;
     this.layoutFactory   = layoutFactory;
     this.reader          = reader;
     this.writer          = writer;
 }
 public AppenderFactory(
     ILayoutFactory layoutFactory,
     ILogFileFactory logFileFactory)
 {
     this.layoutFactory  = layoutFactory;
     this.logFileFactory = logFileFactory;
 }
Beispiel #7
0
        private static void LoadUnPinnedToolDataNodes(ILayoutFactory iLayoutFactory, Dictionary <string, UserControl> viewsMap, WindowLocation windowLocation, XmlElement xmlParentElement)
        {
            foreach (var xmlChildNode in xmlParentElement.ChildNodes)
            {
                if (xmlChildNode is XmlElement)
                {
                    if ((xmlChildNode as XmlElement).Name == "UnpinnedToolData")
                    {
                        XmlElement xmlUnpinnedToolData = xmlChildNode as XmlElement;

                        string guid         = GetStringAttribute(xmlUnpinnedToolData, "Sibling");
                        bool   isHorizontal = GetBooleanAttribute(xmlUnpinnedToolData, "IsHorizontal");
                        bool   isFirst      = GetBooleanAttribute(xmlUnpinnedToolData, "IsFirst");

                        foreach (var xmlUnpinnedToolDataChildNode in xmlUnpinnedToolData.ChildNodes)
                        {
                            if (xmlUnpinnedToolDataChildNode is XmlElement)
                            {
                                if ((xmlUnpinnedToolDataChildNode as XmlElement).Name == "ToolPaneGroup")
                                {
                                    ToolPaneGroup toolPaneGroup    = iLayoutFactory.MakeToolPaneGroup();
                                    XmlElement    xmlToolPaneGroup = xmlUnpinnedToolDataChildNode as XmlElement;
                                    LoadTools(viewsMap, xmlToolPaneGroup, toolPaneGroup.IViewContainer);
                                    iLayoutFactory.MakeUnpinnedToolPaneGroup(windowLocation, toolPaneGroup, guid, isHorizontal, isFirst);
                                }
                            }
                        }
                    }
                }
            }
        }
Beispiel #8
0
        private bool Load(XmlDocument xmlDocument)
        {
            if (xmlDocument.ChildNodes.Count == 0)
            {
                return(false);
            }

            List <UserControl> documentViews = LoadViewsFromTemplates(DocumentTemplates, DocumentsSource);
            List <UserControl> toolViews     = LoadViewsFromTemplates(ToolTemplates, ToolsSource);

            List <UserControl> views = new List <UserControl>();
            Dictionary <string, UserControl> viewsMap = new Dictionary <string, UserControl>();

            foreach (var item in documentViews)
            {
                viewsMap.Add(ILayoutFactory.MakeDocumentKey(item.Name, ((item.DataContext) as IViewModel).URL), item);
            }

            foreach (var item in toolViews)
            {
                viewsMap.Add(item.Name, item);
            }

            // Now load the views into the dock manager => one or more views might not be visible!

            Serialisation.LayoutReader.LoadNode(this, viewsMap, this, this, xmlDocument.DocumentElement, true);

            // Remove any view without a view model

            ValidateToolPanes();
            ValidateDocumentPanes();
            IFloatingPaneManager.CancelSelection();

            return(true);
        }
 public FloatingPaneManager(
     IFloatingPaneHost iFloatingPaneManagerOwner,
     ILayoutFactory iLayoutFactory)
 {
     IFloatingPaneHost          = iFloatingPaneManagerOwner;
     ILayoutFactory             = iLayoutFactory;
     FloatingToolPaneGroups     = new List <IFloatingPane>();
     FloatingDocumentPaneGroups = new List <IFloatingPane>();
 }
Beispiel #10
0
        public Controller(ILayoutFactory layoutFactory, IDesktop desktop, IWindowManager windowManager, IDesktopManager desktopManager)
        {
            Desktop = desktop;
            WindowManager = windowManager;
            DesktopManager = desktopManager;
            LayoutFactory = layoutFactory;

            SetDefaultLayouts();
        }
 public Engine(
     ILogger logger,
     ILayoutFactory layoutFactory,
     IAppenderFactory appenderFactory,
     IReportLevelFactory reportLevelFactory)
 {
     this.layoutFactory      = layoutFactory;
     this.appenderFactory    = appenderFactory;
     this.reportLevelFactory = reportLevelFactory;
     this.logger             = logger;
 }
Beispiel #12
0
        public LayoutService(
            ILayoutFactory factory,
            ILayoutRepository repo
            )
        {
            factory.CheckArgumentIsNull();
            _factory = factory;

            repo.CheckArgumentIsNull();
            _repo = repo;
        }
Beispiel #13
0
 public Engine(IReader reader,
               ILayoutFactory layoutFactory,
               IAppenderFactory appenderFactory,
               ICommandInterpreter commandInterpreter,
               ILoggerReport loggerReport)
 {
     this.reader             = reader;
     this.layoutFactory      = layoutFactory;
     this.appenderFactory    = appenderFactory;
     this.commandInterpreter = commandInterpreter;
     this.loggerReport       = loggerReport;
 }
Beispiel #14
0
        static void Main(string[] args)
        {
            apeenderFactory = new AppendarFactory();
            layoutFactory   = new LayoutFactory();

            int n = int.Parse(Console.ReadLine());


            IAppender[] appenders = ReadAppenders(n);

            ILogger logger = new Loggerrr(appenders);

            while (true)
            {
                string line = Console.ReadLine();

                if (line == "END")
                {
                    break;
                }

                string[] parts = line.Split('|', StringSplitOptions.RemoveEmptyEntries);

                ReportLevel reportLevel = Enum.Parse <ReportLevel>(parts[0], true);
                string      date        = parts[1];
                string      message     = parts[2];

                switch (reportLevel)
                {
                case ReportLevel.Info:
                    logger.Info(date, message);
                    break;

                case ReportLevel.Critical:
                    logger.Critical(date, message);
                    break;

                case ReportLevel.Warning:
                    logger.Warning(date, message);
                    break;

                case ReportLevel.Error:
                    logger.Error(date, message);
                    break;

                case ReportLevel.Fatal:
                    logger.Fatal(date, message);
                    break;
                }
            }

            Console.WriteLine(logger);
        }
Beispiel #15
0
        static void Main(string[] args)
        {
            layoutFactory  = new LayoutFactory();
            apenderFactory = new AppenderFactory();

            int n = int.Parse(Console.ReadLine());

            List <IAppender> appenders = ReadAppender(n);

            Logger logger = new Logger(appenders.ToArray());

            LogErrors(logger);

            Console.WriteLine(logger);
        }
Beispiel #16
0
        private static void LoadDocuments(ILayoutFactory iLayoutFactory, Dictionary <string, UserControl> viewsMap, XmlElement xmlDocumentPaneGroup, IViewContainer iViewContainer)
        {
            foreach (var xmlChild in xmlDocumentPaneGroup.ChildNodes)
            {
                if (xmlChild is XmlElement)
                {
                    if ((xmlChild as XmlElement).Name == "Document")
                    {
                        XmlElement xmlToolElement = xmlChild as XmlElement;

                        string contentId = GetStringAttribute(xmlToolElement, "ContentId");
                        string url       = GetStringAttribute(xmlToolElement, "Url");
                        string key       = iLayoutFactory.MakeDocumentKey(contentId, url);

                        if (viewsMap.ContainsKey(key))
                        {
                            iViewContainer.AddUserControl(viewsMap[key]);
                            viewsMap.Remove(contentId);
                        }
                    }
                }
            }
        }
Beispiel #17
0
 public CommandInterpreter()
 {
     appenders       = new List <IAppender>();
     layoutFactory   = new LayoutFactory();
     appenderFactory = new AppenderFactory();
 }
Beispiel #18
0
 public CommandInterpreter(ILayoutFactory layoutFactory, IAppenderFactory appenderFactory)
 {
     this.appenders       = new List <IAppender>();
     this.layoutFactory   = layoutFactory;
     this.appenderFactory = appenderFactory;
 }
Beispiel #19
0
        public DynamicLayout(ILayoutFactory <TLayout> factory, IEnumerable <ILayoutProperty <TLayout, TSchema> > properties)
        {
            _factory = factory;

            _properties = properties.ToArray();
        }
Beispiel #20
0
 public LayoutParser(ILayoutFactory <TLayout> factory, IEnumerable <IParser <TSchema, LayoutMatch <TLayout> > > parsers)
 {
     _factory = factory;
     _parsers = parsers.ToArray();
 }
Beispiel #21
0
        public static void LoadNode(ILayoutFactory iLayoutFactory, Dictionary <string, UserControl> viewsMap, FrameworkElement rootFrameworkElement, FrameworkElement parentFrameworkElement, XmlNode xmlParentElement, bool isParentHorizontal)
        {
            int row             = 0;
            int rowIncrement    = isParentHorizontal ? 2 : 0;
            int column          = 0;
            int columnIncrement = isParentHorizontal ? 0 : 2;

            foreach (var xmlChildNode in xmlParentElement.ChildNodes)
            {
                if (xmlChildNode is XmlElement)
                {
                    if ((xmlChildNode as XmlElement).Name == "SplitterPane")
                    {
                        XmlElement xmlSplitterPane = xmlChildNode as XmlElement;

                        XmlAttribute xmlAttribute = xmlSplitterPane.Attributes.GetNamedItem("Orientation") as XmlAttribute;

                        System.Diagnostics.Trace.Assert(xmlAttribute != null, "SplitterPane element does not have an orientation attribute");

                        bool isChildHorizontal = xmlAttribute.Value == "Horizontal";

                        SplitterPane newGrid = iLayoutFactory.MakeSplitterPane(isChildHorizontal);
                        newGrid.Tag = GetGuid(xmlSplitterPane);

                        if (parentFrameworkElement == rootFrameworkElement)
                        {
                            iLayoutFactory.SetRootPane(newGrid, out row, out column);
                        }
                        else
                        {
                            System.Windows.Markup.IAddChild parentElement = (System.Windows.Markup.IAddChild)parentFrameworkElement;
                            parentElement.AddChild(newGrid);
                            Grid.SetRow(newGrid, row);
                            Grid.SetColumn(newGrid, column);
                        }
                        SetWidthOrHeight(xmlSplitterPane, parentFrameworkElement, isParentHorizontal, row, column);

                        row    += rowIncrement;
                        column += columnIncrement;

                        LoadNode(iLayoutFactory, viewsMap, rootFrameworkElement, newGrid, xmlSplitterPane, isChildHorizontal);
                    }
                    else if ((xmlChildNode as XmlElement).Name == "DocumentPanel")
                    {
                        DocumentPanel documentPanel = iLayoutFactory.MakeDocumentPanel();

                        if (parentFrameworkElement == rootFrameworkElement)
                        {
                            iLayoutFactory.SetRootPane(documentPanel, out row, out column);
                        }
                        else
                        {
                            System.Windows.Markup.IAddChild parentElement = (System.Windows.Markup.IAddChild)parentFrameworkElement;
                            parentElement.AddChild(documentPanel);
                            Grid.SetRow(documentPanel, row);
                            Grid.SetColumn(documentPanel, column);
                        }

                        XmlElement xmlDocumentPanel = xmlChildNode as XmlElement;
                        SetWidthOrHeight(xmlDocumentPanel, parentFrameworkElement, isParentHorizontal, row, column);

                        row    += rowIncrement;
                        column += columnIncrement;

                        LoadNode(iLayoutFactory, viewsMap, rootFrameworkElement, documentPanel, xmlDocumentPanel, true);
                    }
                    else if ((xmlChildNode as XmlElement).Name == "DocumentPaneGroup")
                    {
                        DocumentPaneGroup documentPaneGroup = iLayoutFactory.MakeDocumentPaneGroup();

                        System.Windows.Markup.IAddChild parentElement = (System.Windows.Markup.IAddChild)parentFrameworkElement;
                        parentElement.AddChild(documentPaneGroup);

                        XmlElement xmlDocumentGroup = xmlChildNode as XmlElement;

                        documentPaneGroup.Tag = GetGuid(xmlDocumentGroup);;
                        SetWidthOrHeight(xmlDocumentGroup, parentFrameworkElement, isParentHorizontal, row, column);

                        LoadDocuments(iLayoutFactory, viewsMap, xmlDocumentGroup, documentPaneGroup.IViewContainer);
                        Grid.SetRow(documentPaneGroup, row);
                        Grid.SetColumn(documentPaneGroup, column);
                        row    += rowIncrement;
                        column += columnIncrement;
                    }
                    else if ((xmlChildNode as XmlElement).Name == "ToolPaneGroup")
                    {
                        ToolPaneGroup toolPaneGroup = iLayoutFactory.MakeToolPaneGroup();

                        System.Windows.Markup.IAddChild parentElement = (System.Windows.Markup.IAddChild)parentFrameworkElement;
                        parentElement.AddChild(toolPaneGroup);

                        XmlElement xmlToolPaneGroup = xmlChildNode as XmlElement;

                        toolPaneGroup.Tag = GetGuid(xmlToolPaneGroup);
                        SetWidthOrHeight(xmlToolPaneGroup, parentFrameworkElement, isParentHorizontal, row, column);

                        LoadTools(viewsMap, xmlToolPaneGroup, toolPaneGroup.IViewContainer);
                        Grid.SetRow(toolPaneGroup, row);
                        Grid.SetColumn(toolPaneGroup, column);
                        row    += rowIncrement;
                        column += columnIncrement;
                    }
                    else if ((xmlChildNode as XmlElement).Name == "FloatingToolPaneGroup")
                    {
                        FloatingToolPaneGroup floatingToolPaneGroup = iLayoutFactory.MakeFloatingToolPaneGroup();
                        XmlElement            xmlfloatingTool       = xmlChildNode as XmlElement;
                        floatingToolPaneGroup.Tag = GetGuid(xmlfloatingTool);
                        SetLocationAndSize(xmlfloatingTool, floatingToolPaneGroup);
                        LoadTools(viewsMap, xmlfloatingTool, floatingToolPaneGroup.IViewContainer);
                    }
                    else if ((xmlChildNode as XmlElement).Name == "FloatingDocumentPaneGroup")
                    {
                        FloatingDocumentPaneGroup floatingDocumentPaneGroup = iLayoutFactory.MakeFloatingDocumentPaneGroup();
                        XmlElement xmlfloatingDocument = xmlChildNode as XmlElement;
                        floatingDocumentPaneGroup.Tag = GetGuid(xmlfloatingDocument);
                        SetLocationAndSize(xmlfloatingDocument, floatingDocumentPaneGroup);
                        LoadDocuments(iLayoutFactory, viewsMap, xmlfloatingDocument, floatingDocumentPaneGroup.IViewContainer);
                    }
                    else if ((xmlChildNode as XmlElement).Name == "LeftSide")
                    {
                        XmlElement xmlLeftSide = xmlChildNode as XmlElement;
                        LoadUnPinnedToolDataNodes(iLayoutFactory, viewsMap, WindowLocation.LeftSide, xmlLeftSide);
                    }
                    else if ((xmlChildNode as XmlElement).Name == "TopSide")
                    {
                        XmlElement xmlTopSide = xmlChildNode as XmlElement;
                        LoadUnPinnedToolDataNodes(iLayoutFactory, viewsMap, WindowLocation.TopSide, xmlTopSide);
                    }
                    else if ((xmlChildNode as XmlElement).Name == "RightSide")
                    {
                        XmlElement xmlRightSide = xmlChildNode as XmlElement;
                        LoadUnPinnedToolDataNodes(iLayoutFactory, viewsMap, WindowLocation.RightSide, xmlRightSide);
                    }
                    else if ((xmlChildNode as XmlElement).Name == "BottomSide")
                    {
                        XmlElement xmlBottomSide = xmlChildNode as XmlElement;
                        LoadUnPinnedToolDataNodes(iLayoutFactory, viewsMap, WindowLocation.BottomSide, xmlBottomSide);
                    }
                }

                if (parentFrameworkElement != rootFrameworkElement)
                {
                    if ((row > 2) || (column > 2))
                    {
                        // we can only have two child elements (plus a splitter) in each grid
                        break;
                    }
                }
            }
        }
Beispiel #22
0
 public Engine(IReader reader, IAppenderFactory appenderFactory, ILayoutFactory layoutFactory)
 {
     this.reader          = reader;
     this.appenderFactory = appenderFactory;
     this.layoutFactory   = layoutFactory;
 }
Beispiel #23
0
 public RouteResultController(IHslRouteSolver hslRouteSolver, ILayoutFactory layoutFactory)
 {
     _hslRouteSolver = hslRouteSolver;
     _layoutFactory  = layoutFactory;
 }
Beispiel #24
0
 public AppenderFactory()
 {
     this.layoutFactory = new LayoutFactory();
 }
Beispiel #25
0
 public Controller(ILayoutFactory layoutFactory)
     : this(layoutFactory, new Desktop(), new WindowManager(), new DesktopManager())
 {
 }
 public CommandInterpreter()
 {
     this.collection      = new List <IAppender>();
     this.appenderFactory = new AppenderFactory();
     this.layoutFactory   = new LayoutFactory();
 }
 public void RegisterLayoutFactory(ILayoutFactory lf)
 {
     if (!_factories.Contains(lf))
     {
         _factories.Add(lf);
     }
 }
 public DockPaneManager(IDockPaneHost iDockPaneHost, ILayoutFactory iLayoutFactory)
 {
     ILayoutFactory = iLayoutFactory;
     IDockPaneHost  = iDockPaneHost;
 }