99using Rubberduck . Parsing . VBA ;
1010using Rubberduck . Settings ;
1111using Rubberduck . UI ;
12- using Rubberduck . UI . CodeInspections ;
12+ using Rubberduck . UI . Command . MenuItems ;
1313using Rubberduck . UI . ParserErrors ;
14- using Rubberduck . VBEditor ;
15- using Rubberduck . VBEditor . VBEInterfaces . RubberduckCodePane ;
1614
1715namespace Rubberduck
1816{
1917 public class App : IDisposable
2018 {
19+ private readonly IMessageBox _messageBox ;
20+ private readonly IParserErrorsPresenterFactory _parserErrorsPresenterFactory ;
21+ private readonly IRubberduckParserFactory _parserFactory ;
22+ private readonly IInspectorFactory _inspectorFactory ;
23+ private readonly IGeneralConfigService _configService ;
24+ private readonly IAppMenu _appMenus ;
25+
2126 private readonly VBE _vbe ;
2227 private readonly AddIn _addIn ;
2328 private Inspector _inspector ;
@@ -27,40 +32,49 @@ public class App : IDisposable
2732 private readonly IRubberduckCodePaneFactory _factory ;
2833 private readonly Logger _logger ;
2934 private IRubberduckParser _parser ;
35+ private IParserErrorsPresenter _parserErrorsPresenter ;
3036
3137 private Configuration _config ;
32- private RubberduckMenu _menu ;
33- private FormContextMenu _formContextMenu ;
34- private CodeInspectionsToolbar _codeInspectionsToolbar ;
35- private bool _displayToolbar = false ;
36- private Point _toolbarCoords = new Point ( - 1 , - 1 ) ;
3738
38- public App ( VBE vbe , AddIn addIn )
39+ public App ( IMessageBox messageBox ,
40+ IParserErrorsPresenterFactory parserErrorsPresenterFactory ,
41+ IRubberduckParserFactory parserFactory ,
42+ IInspectorFactory inspectorFactory ,
43+ IGeneralConfigService configService ,
44+ IAppMenu appMenus )
3945 {
46+ _messageBox = messageBox ;
47+ _parserErrorsPresenterFactory = parserErrorsPresenterFactory ;
48+ _parserFactory = parserFactory ;
49+ _inspectorFactory = inspectorFactory ;
50+ _configService = configService ;
51+ _appMenus = appMenus ;
4052 _vbe = vbe ;
4153 _addIn = addIn ;
4254 _factory = new RubberduckCodePaneFactory ( ) ;
4355 _logger = LogManager . GetCurrentClassLogger ( ) ;
4456
45- _parserErrorsPresenter = new ParserErrorsPresenter ( vbe , addIn ) ;
4657 _configService . SettingsChanged += _configService_SettingsChanged ;
58+ }
4759
48- _editor = new ActiveCodePaneEditor ( vbe , _factory ) ;
60+ public void Startup ( )
61+ {
62+ CleanReloadConfig ( ) ;
4963
50- LoadConfig ( ) ;
64+ _appMenus . Initialize ( ) ;
65+ _appMenus . Localize ( ) ;
66+ }
5167
68+ private void CleanReloadConfig ( )
69+ {
70+ LoadConfig ( ) ;
5271 CleanUp ( ) ;
53-
5472 Setup ( ) ;
5573 }
5674
5775 private void _configService_SettingsChanged ( object sender , EventArgs e )
5876 {
59- LoadConfig ( ) ;
60-
61- CleanUp ( ) ;
62-
63- Setup ( ) ;
77+ CleanReloadConfig ( ) ;
6478 }
6579
6680 private void LoadConfig ( )
@@ -85,28 +99,13 @@ private void LoadConfig()
8599
86100 private void Setup ( )
87101 {
88- _parser = new RubberduckParser ( _factory ) ;
102+ _parser = _parserFactory . Create ( ) ;
89103 _parser . ParseStarted += _parser_ParseStarted ;
90104 _parser . ParserError += _parser_ParserError ;
91105
92- _inspector = new Inspector ( _parser , _configService ) ;
93-
94- _parserErrorsPresenter = new ParserErrorsPresenter ( _vbe , _addIn ) ;
95-
96- _menu = new RubberduckMenu ( _vbe , _addIn , _configService , _parser , _editor , _inspector , _factory ) ;
97- _menu . Initialize ( ) ;
98-
99- _formContextMenu = new FormContextMenu ( _vbe , _parser , _editor , _factory ) ;
100- _formContextMenu . Initialize ( ) ;
101-
102- _codeInspectionsToolbar = new CodeInspectionsToolbar ( _vbe , _inspector ) ;
103- _codeInspectionsToolbar . Initialize ( ) ;
106+ _inspectorFactory . Create ( ) ;
104107
105- if ( _toolbarCoords . X != - 1 && _toolbarCoords . Y != - 1 )
106- {
107- _codeInspectionsToolbar . ToolbarCoords = _toolbarCoords ;
108- }
109- _codeInspectionsToolbar . ToolbarVisible = _displayToolbar ;
108+ _parserErrorsPresenter = _parserErrorsPresenterFactory . Create ( ) ;
110109 }
111110
112111 private void _parser_ParseStarted ( object sender , ParseStartedEventArgs e )
@@ -134,33 +133,6 @@ protected virtual void Dispose(bool disposing)
134133
135134 private void CleanUp ( )
136135 {
137- if ( _menu != null )
138- {
139- _menu . Dispose ( ) ;
140- }
141-
142- if ( _formContextMenu != null )
143- {
144- _formContextMenu . Dispose ( ) ;
145- }
146-
147- if ( _codeInspectionsToolbar != null )
148- {
149- _displayToolbar = _codeInspectionsToolbar . ToolbarVisible ;
150- _toolbarCoords = _codeInspectionsToolbar . ToolbarCoords ;
151- _codeInspectionsToolbar . Dispose ( ) ;
152- }
153-
154- if ( _inspector != null )
155- {
156- _inspector . Dispose ( ) ;
157- }
158-
159- if ( _parserErrorsPresenter != null )
160- {
161- _parserErrorsPresenter . Dispose ( ) ;
162- }
163-
164136 if ( _parser != null )
165137 {
166138 _parser . ParseStarted -= _parser_ParseStarted ;
0 commit comments