Skip to content

Commit 79b460a

Browse files
author
Jess Lin
committed
[Gutter] Add ::getDomNode method to all 'components'
1 parent 5dfa6b3 commit 79b460a

10 files changed

+45
-24
lines changed

spec/text-editor-component-spec.coffee

+3-3
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ describe "TextEditorComponent", ->
4646

4747
lineHeightInPixels = editor.getLineHeightInPixels()
4848
charWidth = editor.getDefaultCharWidth()
49-
componentNode = component.domNode
49+
componentNode = component.getDomNode()
5050
verticalScrollbarNode = componentNode.querySelector('.vertical-scrollbar')
5151
horizontalScrollbarNode = componentNode.querySelector('.horizontal-scrollbar')
5252

@@ -2392,7 +2392,7 @@ describe "TextEditorComponent", ->
23922392
wrapperView.appendTo(hiddenParent)
23932393

23942394
{component} = wrapperView
2395-
componentNode = component.domNode
2395+
componentNode = component.getDomNode()
23962396
expect(componentNode.querySelectorAll('.line').length).toBe 0
23972397

23982398
hiddenParent.style.display = 'block'
@@ -2599,7 +2599,7 @@ describe "TextEditorComponent", ->
25992599
expect(wrapperNode.classList.contains('mini')).toBe true
26002600

26012601
it "does not have an opaque background on lines", ->
2602-
expect(component.linesComponent.domNode.getAttribute('style')).not.toContain 'background-color'
2602+
expect(component.linesComponent.getDomNode().getAttribute('style')).not.toContain 'background-color'
26032603

26042604
it "does not render invisible characters", ->
26052605
atom.config.set('editor.invisibles', eol: 'E')

src/cursors-component.coffee

+3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ class CursorsComponent
77
@domNode = document.createElement('div')
88
@domNode.classList.add('cursors')
99

10+
getDomNode: ->
11+
@domNode
12+
1013
updateSync: (state) ->
1114
newState = state.content
1215
@oldState ?= {cursors: {}}

src/highlights-component.coffee

+3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ class HighlightsComponent
1717
insertionPoint.setAttribute('select', '.underlayer')
1818
@domNode.appendChild(insertionPoint)
1919

20+
getDomNode: ->
21+
@domNode
22+
2023
updateSync: (state) ->
2124
newState = state.content.highlights
2225
@oldState ?= {}

src/input-component.coffee

+3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ class InputComponent
77
@domNode.style['-webkit-transform'] = 'translateZ(0)'
88
@domNode.addEventListener 'paste', (event) -> event.preventDefault()
99

10+
getDomNode: ->
11+
@domNode
12+
1013
updateSync: (state) ->
1114
@oldState ?= {}
1215
newState = state.hiddenInput

src/lines-component.coffee

+5-2
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,19 @@ class LinesComponent
2929
@domNode.classList.add('lines')
3030

3131
@cursorsComponent = new CursorsComponent(@presenter)
32-
@domNode.appendChild(@cursorsComponent.domNode)
32+
@domNode.appendChild(@cursorsComponent.getDomNode())
3333

3434
@highlightsComponent = new HighlightsComponent(@presenter)
35-
@domNode.appendChild(@highlightsComponent.domNode)
35+
@domNode.appendChild(@highlightsComponent.getDomNode())
3636

3737
if @useShadowDOM
3838
insertionPoint = document.createElement('content')
3939
insertionPoint.setAttribute('select', '.overlayer')
4040
@domNode.appendChild(insertionPoint)
4141

42+
getDomNode: ->
43+
@domNode
44+
4245
updateSync: (state) ->
4346
@newState = state.content
4447
@oldState ?= {lines: {}}

src/scrollbar-component.coffee

+3
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ class ScrollbarComponent
1212

1313
@domNode.addEventListener 'scroll', @onScrollCallback
1414

15+
getDomNode: ->
16+
@domNode
17+
1518
updateSync: (state) ->
1619
@oldState ?= {}
1720
switch @orientation

src/scrollbar-corner-component.coffee

+3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ class ScrollbarCornerComponent
77
@contentNode = document.createElement('div')
88
@domNode.appendChild(@contentNode)
99

10+
getDomNode: ->
11+
@domNode
12+
1013
updateSync: (state) ->
1114
@oldState ?= {}
1215
@newState ?= {}

src/text-editor-component.coffee

+17-14
Original file line numberDiff line numberDiff line change
@@ -73,19 +73,19 @@ class TextEditorComponent
7373
@mountGutterContainerComponent() if @presenter.getState().gutters.sortedDescriptions.length
7474

7575
@hiddenInputComponent = new InputComponent
76-
@scrollViewNode.appendChild(@hiddenInputComponent.domNode)
76+
@scrollViewNode.appendChild(@hiddenInputComponent.getDomNode())
7777

7878
@linesComponent = new LinesComponent({@presenter, @hostElement, @useShadowDOM})
79-
@scrollViewNode.appendChild(@linesComponent.domNode)
79+
@scrollViewNode.appendChild(@linesComponent.getDomNode())
8080

8181
@horizontalScrollbarComponent = new ScrollbarComponent({orientation: 'horizontal', onScroll: @onHorizontalScroll})
82-
@scrollViewNode.appendChild(@horizontalScrollbarComponent.domNode)
82+
@scrollViewNode.appendChild(@horizontalScrollbarComponent.getDomNode())
8383

8484
@verticalScrollbarComponent = new ScrollbarComponent({orientation: 'vertical', onScroll: @onVerticalScroll})
85-
@domNode.appendChild(@verticalScrollbarComponent.domNode)
85+
@domNode.appendChild(@verticalScrollbarComponent.getDomNode())
8686

8787
@scrollbarCornerComponent = new ScrollbarCornerComponent
88-
@domNode.appendChild(@scrollbarCornerComponent.domNode)
88+
@domNode.appendChild(@scrollbarCornerComponent.getDomNode())
8989

9090
@observeEditor()
9191
@listenForDOMEvents()
@@ -108,6 +108,9 @@ class TextEditorComponent
108108
@presenter.destroy()
109109
window.removeEventListener 'resize', @requestHeightAndWidthMeasurement
110110

111+
getDomNode: ->
112+
@domNode
113+
111114
updateSync: ->
112115
@oldState ?= {}
113116
@newState = @presenter.getState()
@@ -138,7 +141,7 @@ class TextEditorComponent
138141
@mountGutterContainerComponent() unless @gutterContainerComponent?
139142
@gutterContainerComponent.updateSync(@newState)
140143
else
141-
@gutterContainerComponent?.domNode?.remove()
144+
@gutterContainerComponent?.getDomNode()?.remove()
142145
@gutterContainerComponent = null
143146

144147
@hiddenInputComponent.updateSync(@newState)
@@ -163,7 +166,7 @@ class TextEditorComponent
163166

164167
mountGutterContainerComponent: ->
165168
@gutterContainerComponent = new GutterContainerComponent({@editor, @onLineNumberGutterMouseDown})
166-
@domNode.insertBefore(@gutterContainerComponent.domNode, @domNode.firstChild)
169+
@domNode.insertBefore(@gutterContainerComponent.getDomNode(), @domNode.firstChild)
167170

168171
becameVisible: ->
169172
@updatesPaused = true
@@ -282,7 +285,7 @@ class TextEditorComponent
282285
focused: ->
283286
if @mounted
284287
@presenter.setFocused(true)
285-
@hiddenInputComponent.domNode.focus()
288+
@hiddenInputComponent.getDomNode().focus()
286289

287290
blurred: ->
288291
if @mounted
@@ -646,7 +649,7 @@ class TextEditorComponent
646649

647650
lineNumberGutter = @gutterContainerComponent?.getLineNumberGutterComponent()
648651
if lineNumberGutter
649-
gutterBackgroundColor = getComputedStyle(lineNumberGutter.domNode).backgroundColor
652+
gutterBackgroundColor = getComputedStyle(lineNumberGutter.getDomNode()).backgroundColor
650653
@presenter.setGutterBackgroundColor(gutterBackgroundColor)
651654

652655
measureLineHeightAndDefaultCharWidth: ->
@@ -666,7 +669,7 @@ class TextEditorComponent
666669
measureScrollbars: ->
667670
@measureScrollbarsWhenShown = false
668671

669-
cornerNode = @scrollbarCornerComponent.domNode
672+
cornerNode = @scrollbarCornerComponent.getDomNode()
670673
originalDisplayValue = cornerNode.style.display
671674

672675
cornerNode.style.display = 'block'
@@ -692,9 +695,9 @@ class TextEditorComponent
692695
@measureScrollbarsWhenShown = true
693696
return
694697

695-
verticalNode = @verticalScrollbarComponent.domNode
696-
horizontalNode = @horizontalScrollbarComponent.domNode
697-
cornerNode = @scrollbarCornerComponent.domNode
698+
verticalNode = @verticalScrollbarComponent.getDomNode()
699+
horizontalNode = @horizontalScrollbarComponent.getDomNode()
700+
cornerNode = @scrollbarCornerComponent.getDomNode()
698701

699702
originalVerticalDisplayValue = verticalNode.style.display
700703
originalHorizontalDisplayValue = horizontalNode.style.display
@@ -764,7 +767,7 @@ class TextEditorComponent
764767
pixelPositionForMouseEvent: (event) ->
765768
{clientX, clientY} = event
766769

767-
linesClientRect = @linesComponent.domNode.getBoundingClientRect()
770+
linesClientRect = @linesComponent.getDomNode().getBoundingClientRect()
768771
top = clientY - linesClientRect.top
769772
left = clientX - linesClientRect.left
770773
{top, left}

src/text-editor-element.coffee

+4-4
Original file line numberDiff line numberDiff line change
@@ -113,28 +113,28 @@ class TextEditorElement extends HTMLElement
113113
lineOverdrawMargin: @lineOverdrawMargin
114114
useShadowDOM: @useShadowDOM
115115
)
116-
@rootElement.appendChild(@component.domNode)
116+
@rootElement.appendChild(@component.getDomNode())
117117

118118
if @useShadowDOM
119119
@shadowRoot.addEventListener('blur', @shadowRootBlurred.bind(this), true)
120120
else
121-
inputNode = @component.hiddenInputComponent.domNode
121+
inputNode = @component.hiddenInputComponent.getDomNode()
122122
inputNode.addEventListener 'focus', @focused.bind(this)
123123
inputNode.addEventListener 'blur', => @dispatchEvent(new FocusEvent('blur', bubbles: false))
124124

125125
unmountComponent: ->
126126
callRemoveHooks(this)
127127
if @component?
128128
@component.destroy()
129-
@component.domNode.remove()
129+
@component.getDomNode().remove()
130130
@component = null
131131

132132
focused: ->
133133
@component?.focused()
134134

135135
blurred: (event) ->
136136
unless @useShadowDOM
137-
if event.relatedTarget is @component.hiddenInputComponent.domNode
137+
if event.relatedTarget is @component.hiddenInputComponent.getDomNode()
138138
event.stopImmediatePropagation()
139139
return
140140

src/text-editor-view.coffee

+1-1
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ class TextEditorView extends View
125125
Object.defineProperty @::, 'firstRenderedScreenRow', get: -> @component.getRenderedRowRange()[0]
126126
Object.defineProperty @::, 'lastRenderedScreenRow', get: -> @component.getRenderedRowRange()[1]
127127
Object.defineProperty @::, 'active', get: -> @is(@getPaneView()?.activeView)
128-
Object.defineProperty @::, 'isFocused', get: -> document.activeElement is @element or document.activeElement is @element.component?.hiddenInputComponent?.domNode
128+
Object.defineProperty @::, 'isFocused', get: -> document.activeElement is @element or document.activeElement is @element.component?.hiddenInputComponent?.getDomNode()
129129
Object.defineProperty @::, 'mini', get: -> @model?.isMini()
130130
Object.defineProperty @::, 'component', get: -> @element?.component
131131

0 commit comments

Comments
 (0)