@@ -21,6 +21,8 @@ import { LogProviderInterface, wrapLogger } from "./log-provider.interface";
21
21
import { NoopLogProvider } from "./log/noop-log-provider.class" ;
22
22
import { TextFinderInterface } from "./text-finder.interface" ;
23
23
import { WindowFinderInterface } from "./window-finder.interface" ;
24
+ import { ColorFinderInterface } from "./color-finder.interface" ;
25
+ import ColorFinderImpl from "./color/color-finder.class" ;
24
26
25
27
export interface ProviderRegistry {
26
28
getClipboard ( ) : ClipboardProviderInterface ;
@@ -70,6 +72,10 @@ export interface ProviderRegistry {
70
72
getWindowFinder ( ) : WindowFinderInterface ;
71
73
72
74
registerWindowFinder ( value : WindowFinderInterface ) : void ;
75
+
76
+ getColorFinder ( ) : ColorFinderInterface ;
77
+
78
+ registerColorFinder ( value : ColorFinderInterface ) : void ;
73
79
}
74
80
75
81
class DefaultProviderRegistry implements ProviderRegistry {
@@ -85,6 +91,7 @@ class DefaultProviderRegistry implements ProviderRegistry {
85
91
private _logProvider ?: LogProviderInterface ;
86
92
private _textFinder ?: TextFinderInterface ;
87
93
private _windowFinder ?: WindowFinderInterface ;
94
+ private _colorFinder ?: ColorFinderInterface ;
88
95
89
96
getClipboard = ( ) : ClipboardProviderInterface => {
90
97
if ( this . _clipboard ) {
@@ -195,7 +202,7 @@ class DefaultProviderRegistry implements ProviderRegistry {
195
202
196
203
registerWindowFinder = ( value : WindowFinderInterface ) => {
197
204
this . _windowFinder = value ;
198
- this . getLogProvider ( ) . trace ( "Registered new TextFinder provider" , value ) ;
205
+ this . getLogProvider ( ) . trace ( "Registered new WindowFinder provider" , value ) ;
199
206
} ;
200
207
201
208
getImageReader = ( ) : ImageReader => {
@@ -253,6 +260,20 @@ class DefaultProviderRegistry implements ProviderRegistry {
253
260
this . _logProvider = wrapLogger ( value ) ;
254
261
this . getLogProvider ( ) . trace ( "Registered new log provider" , value ) ;
255
262
} ;
263
+
264
+ getColorFinder = ( ) : ColorFinderInterface => {
265
+ if ( this . _colorFinder ) {
266
+ return this . _colorFinder ;
267
+ }
268
+ const error = new Error ( `No ColorFinder registered` ) ;
269
+ this . getLogProvider ( ) . error ( error ) ;
270
+ throw error ;
271
+ } ;
272
+
273
+ registerColorFinder = ( value : ColorFinderInterface ) : void => {
274
+ this . _colorFinder = value ;
275
+ this . getLogProvider ( ) . trace ( "Registered new ColorFinder provider" , value ) ;
276
+ } ;
256
277
}
257
278
258
279
const providerRegistry = new DefaultProviderRegistry ( ) ;
@@ -266,5 +287,6 @@ providerRegistry.registerImageWriter(new ImageWriterImpl());
266
287
providerRegistry . registerImageReader ( new ImageReaderImpl ( ) ) ;
267
288
providerRegistry . registerImageProcessor ( new ImageProcessorImpl ( ) ) ;
268
289
providerRegistry . registerLogProvider ( new NoopLogProvider ( ) ) ;
290
+ providerRegistry . registerColorFinder ( new ColorFinderImpl ( ) ) ;
269
291
270
292
export default providerRegistry ;
0 commit comments