pascalabcnet/VisualPascalABCNET/Workbench/WorkbenchServiceFactory.cs

245 lines
6.5 KiB
C#
Raw Normal View History

// Copyright (c) Ivan Bondarev, Stanislav Mikhalkovich (for details please see \doc\copyright.txt)
2015-06-02 22:52:35 +03:00
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
2015-05-14 22:35:07 +03:00
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using VisualPascalABCPlugins;
namespace VisualPascalABC
{
public class WorkbenchServiceContainer: IWorkbenchServiceContainer
{
public IWorkbenchDocumentService DocumentService
{
get { return WorkbenchServiceFactory.DocumentService; }
}
public IWorkbenchOptionService OptionsService
{
get { return WorkbenchServiceFactory.OptionsService; }
}
2016-09-16 22:14:49 +03:00
public IWorkbenchUpdateService UpdateService
{
get { return WorkbenchServiceFactory.UpdateService; }
}
2015-05-14 22:35:07 +03:00
public IEditorService EditorService
{
get { return WorkbenchServiceFactory.EditorService; }
}
public IHelpService HelpService
{
get { return WorkbenchServiceFactory.HelpService; }
}
public IWorkbenchDebuggerOperationsService DebuggerOperationsService
{
get { return WorkbenchServiceFactory.DebuggerOperationsService; }
}
public IWorkbenchBuildService BuildService
{
get { return WorkbenchServiceFactory.BuildService; }
}
public IWorkbenchFileService FileService
{
get { return WorkbenchServiceFactory.FileService; }
}
public IWorkbenchProjectService ProjectService
{
get { return WorkbenchServiceFactory.ProjectService; }
}
public IWorkbenchRunService RunService
{
get { return WorkbenchServiceFactory.RunService; }
}
public IWorkbenchDesignerService DesignerService
{
get { return WorkbenchServiceFactory.DesignerService; }
}
public IWorkbenchOperationsService OperationsService
{
get { return WorkbenchServiceFactory.OperationsService; }
}
2017-05-26 13:29:21 +03:00
public ICodeCompletionService CodeCompletionService
{
get { return WorkbenchServiceFactory.CodeCompletionService; }
}
2015-05-14 22:35:07 +03:00
}
public class WorkbenchServiceFactory
{
static IWorkbenchBuildService _buildService;
static IWorkbenchRunService _runService;
2016-09-16 22:14:49 +03:00
static IWorkbenchUpdateService _updateService;
2015-05-14 22:35:07 +03:00
static CodeCompletionParserController _codeCompletionParserController;
static DebugHelper _debuggerManager;
public static IWorkbenchBuildService BuildService
{
get
{
if (_buildService == null)
_buildService = new WorkbenchBuildService();
return _buildService;
}
}
public static IWorkbenchRunService RunService
{
get
{
if (_runService == null)
_runService = new WorkbenchRunService();
return _runService;
}
}
2016-09-16 22:14:49 +03:00
public static IWorkbenchUpdateService UpdateService
{
get
{
if (_updateService == null)
_updateService = new WorkbenchUpdateService();
return _updateService;
}
}
2015-05-14 22:35:07 +03:00
public static IWorkbenchOptionService OptionsService
{
get
{
return VisualPABCSingleton.MainForm;
}
}
public static IWorkbenchOperationsService OperationsService
{
get
{
return VisualPABCSingleton.MainForm;
}
}
public static IEditorService EditorService
{
get
{
return VisualPABCSingleton.MainForm;
}
}
public static IWorkbenchDocumentService DocumentService
{
get
{
return VisualPABCSingleton.MainForm;
}
}
public static IWorkbenchDebuggerOperationsService DebuggerOperationsService
{
get
{
return VisualPABCSingleton.MainForm;
}
}
public static IWorkbenchProjectService ProjectService
{
get
{
return VisualPABCSingleton.MainForm;
}
}
public static IWorkbenchFileService FileService
{
get
{
return VisualPABCSingleton.MainForm;
}
}
public static IHelpService HelpService
{
get
{
return VisualPABCSingleton.MainForm;
}
}
public static IWorkbenchDesignerService DesignerService
{
get
{
return VisualPABCSingleton.MainForm;
}
}
public static IWorkbench Workbench
{
get
{
return VisualPABCSingleton.MainForm;
}
}
public static DebugHelper DebuggerManager
{
get
{
if (_debuggerManager == null)
_debuggerManager = new DebugHelper();
return _debuggerManager;
}
}
2017-05-26 13:29:21 +03:00
public static ICodeCompletionService CodeCompletionService
{
get
{
return CodeCompletionParserController;
}
}
2015-05-14 22:35:07 +03:00
public static CodeCompletionParserController CodeCompletionParserController
{
get
{
if (_codeCompletionParserController == null)
_codeCompletionParserController = new CodeCompletionParserController();
return _codeCompletionParserController;
}
}
}
public static class WorkbenchStorage
{
internal static string WorkingDirectory = null;
internal static string WorkingDirectoryInOptionsFile = null;
internal static string LibSourceDirectory = null;
internal static Hashtable StandartDirectories;
internal static System.Threading.Thread MainProgramThread;
internal static bool SetCurrentTabPageIfWriteToOutputWindow = false;
internal static bool WorkingDirectoryExsist
{
get { return Directory.Exists(WorkingDirectory); }
}
}
}