[Gutter] Add ::getDomNode method to all 'components'

This commit is contained in:
Jess Lin
2015-04-18 16:23:30 -07:00
parent 5dfa6b3e1e
commit 79b460a0ca
10 changed files with 45 additions and 24 deletions

View File

@@ -46,7 +46,7 @@ describe "TextEditorComponent", ->
lineHeightInPixels = editor.getLineHeightInPixels()
charWidth = editor.getDefaultCharWidth()
componentNode = component.domNode
componentNode = component.getDomNode()
verticalScrollbarNode = componentNode.querySelector('.vertical-scrollbar')
horizontalScrollbarNode = componentNode.querySelector('.horizontal-scrollbar')
@@ -2392,7 +2392,7 @@ describe "TextEditorComponent", ->
wrapperView.appendTo(hiddenParent)
{component} = wrapperView
componentNode = component.domNode
componentNode = component.getDomNode()
expect(componentNode.querySelectorAll('.line').length).toBe 0
hiddenParent.style.display = 'block'
@@ -2599,7 +2599,7 @@ describe "TextEditorComponent", ->
expect(wrapperNode.classList.contains('mini')).toBe true
it "does not have an opaque background on lines", ->
expect(component.linesComponent.domNode.getAttribute('style')).not.toContain 'background-color'
expect(component.linesComponent.getDomNode().getAttribute('style')).not.toContain 'background-color'
it "does not render invisible characters", ->
atom.config.set('editor.invisibles', eol: 'E')

View File

@@ -7,6 +7,9 @@ class CursorsComponent
@domNode = document.createElement('div')
@domNode.classList.add('cursors')
getDomNode: ->
@domNode
updateSync: (state) ->
newState = state.content
@oldState ?= {cursors: {}}

View File

@@ -17,6 +17,9 @@ class HighlightsComponent
insertionPoint.setAttribute('select', '.underlayer')
@domNode.appendChild(insertionPoint)
getDomNode: ->
@domNode
updateSync: (state) ->
newState = state.content.highlights
@oldState ?= {}

View File

@@ -7,6 +7,9 @@ class InputComponent
@domNode.style['-webkit-transform'] = 'translateZ(0)'
@domNode.addEventListener 'paste', (event) -> event.preventDefault()
getDomNode: ->
@domNode
updateSync: (state) ->
@oldState ?= {}
newState = state.hiddenInput

View File

@@ -29,16 +29,19 @@ class LinesComponent
@domNode.classList.add('lines')
@cursorsComponent = new CursorsComponent(@presenter)
@domNode.appendChild(@cursorsComponent.domNode)
@domNode.appendChild(@cursorsComponent.getDomNode())
@highlightsComponent = new HighlightsComponent(@presenter)
@domNode.appendChild(@highlightsComponent.domNode)
@domNode.appendChild(@highlightsComponent.getDomNode())
if @useShadowDOM
insertionPoint = document.createElement('content')
insertionPoint.setAttribute('select', '.overlayer')
@domNode.appendChild(insertionPoint)
getDomNode: ->
@domNode
updateSync: (state) ->
@newState = state.content
@oldState ?= {lines: {}}

View File

@@ -12,6 +12,9 @@ class ScrollbarComponent
@domNode.addEventListener 'scroll', @onScrollCallback
getDomNode: ->
@domNode
updateSync: (state) ->
@oldState ?= {}
switch @orientation

View File

@@ -7,6 +7,9 @@ class ScrollbarCornerComponent
@contentNode = document.createElement('div')
@domNode.appendChild(@contentNode)
getDomNode: ->
@domNode
updateSync: (state) ->
@oldState ?= {}
@newState ?= {}

View File

@@ -73,19 +73,19 @@ class TextEditorComponent
@mountGutterContainerComponent() if @presenter.getState().gutters.sortedDescriptions.length
@hiddenInputComponent = new InputComponent
@scrollViewNode.appendChild(@hiddenInputComponent.domNode)
@scrollViewNode.appendChild(@hiddenInputComponent.getDomNode())
@linesComponent = new LinesComponent({@presenter, @hostElement, @useShadowDOM})
@scrollViewNode.appendChild(@linesComponent.domNode)
@scrollViewNode.appendChild(@linesComponent.getDomNode())
@horizontalScrollbarComponent = new ScrollbarComponent({orientation: 'horizontal', onScroll: @onHorizontalScroll})
@scrollViewNode.appendChild(@horizontalScrollbarComponent.domNode)
@scrollViewNode.appendChild(@horizontalScrollbarComponent.getDomNode())
@verticalScrollbarComponent = new ScrollbarComponent({orientation: 'vertical', onScroll: @onVerticalScroll})
@domNode.appendChild(@verticalScrollbarComponent.domNode)
@domNode.appendChild(@verticalScrollbarComponent.getDomNode())
@scrollbarCornerComponent = new ScrollbarCornerComponent
@domNode.appendChild(@scrollbarCornerComponent.domNode)
@domNode.appendChild(@scrollbarCornerComponent.getDomNode())
@observeEditor()
@listenForDOMEvents()
@@ -108,6 +108,9 @@ class TextEditorComponent
@presenter.destroy()
window.removeEventListener 'resize', @requestHeightAndWidthMeasurement
getDomNode: ->
@domNode
updateSync: ->
@oldState ?= {}
@newState = @presenter.getState()
@@ -138,7 +141,7 @@ class TextEditorComponent
@mountGutterContainerComponent() unless @gutterContainerComponent?
@gutterContainerComponent.updateSync(@newState)
else
@gutterContainerComponent?.domNode?.remove()
@gutterContainerComponent?.getDomNode()?.remove()
@gutterContainerComponent = null
@hiddenInputComponent.updateSync(@newState)
@@ -163,7 +166,7 @@ class TextEditorComponent
mountGutterContainerComponent: ->
@gutterContainerComponent = new GutterContainerComponent({@editor, @onLineNumberGutterMouseDown})
@domNode.insertBefore(@gutterContainerComponent.domNode, @domNode.firstChild)
@domNode.insertBefore(@gutterContainerComponent.getDomNode(), @domNode.firstChild)
becameVisible: ->
@updatesPaused = true
@@ -282,7 +285,7 @@ class TextEditorComponent
focused: ->
if @mounted
@presenter.setFocused(true)
@hiddenInputComponent.domNode.focus()
@hiddenInputComponent.getDomNode().focus()
blurred: ->
if @mounted
@@ -646,7 +649,7 @@ class TextEditorComponent
lineNumberGutter = @gutterContainerComponent?.getLineNumberGutterComponent()
if lineNumberGutter
gutterBackgroundColor = getComputedStyle(lineNumberGutter.domNode).backgroundColor
gutterBackgroundColor = getComputedStyle(lineNumberGutter.getDomNode()).backgroundColor
@presenter.setGutterBackgroundColor(gutterBackgroundColor)
measureLineHeightAndDefaultCharWidth: ->
@@ -666,7 +669,7 @@ class TextEditorComponent
measureScrollbars: ->
@measureScrollbarsWhenShown = false
cornerNode = @scrollbarCornerComponent.domNode
cornerNode = @scrollbarCornerComponent.getDomNode()
originalDisplayValue = cornerNode.style.display
cornerNode.style.display = 'block'
@@ -692,9 +695,9 @@ class TextEditorComponent
@measureScrollbarsWhenShown = true
return
verticalNode = @verticalScrollbarComponent.domNode
horizontalNode = @horizontalScrollbarComponent.domNode
cornerNode = @scrollbarCornerComponent.domNode
verticalNode = @verticalScrollbarComponent.getDomNode()
horizontalNode = @horizontalScrollbarComponent.getDomNode()
cornerNode = @scrollbarCornerComponent.getDomNode()
originalVerticalDisplayValue = verticalNode.style.display
originalHorizontalDisplayValue = horizontalNode.style.display
@@ -764,7 +767,7 @@ class TextEditorComponent
pixelPositionForMouseEvent: (event) ->
{clientX, clientY} = event
linesClientRect = @linesComponent.domNode.getBoundingClientRect()
linesClientRect = @linesComponent.getDomNode().getBoundingClientRect()
top = clientY - linesClientRect.top
left = clientX - linesClientRect.left
{top, left}

View File

@@ -113,12 +113,12 @@ class TextEditorElement extends HTMLElement
lineOverdrawMargin: @lineOverdrawMargin
useShadowDOM: @useShadowDOM
)
@rootElement.appendChild(@component.domNode)
@rootElement.appendChild(@component.getDomNode())
if @useShadowDOM
@shadowRoot.addEventListener('blur', @shadowRootBlurred.bind(this), true)
else
inputNode = @component.hiddenInputComponent.domNode
inputNode = @component.hiddenInputComponent.getDomNode()
inputNode.addEventListener 'focus', @focused.bind(this)
inputNode.addEventListener 'blur', => @dispatchEvent(new FocusEvent('blur', bubbles: false))
@@ -126,7 +126,7 @@ class TextEditorElement extends HTMLElement
callRemoveHooks(this)
if @component?
@component.destroy()
@component.domNode.remove()
@component.getDomNode().remove()
@component = null
focused: ->
@@ -134,7 +134,7 @@ class TextEditorElement extends HTMLElement
blurred: (event) ->
unless @useShadowDOM
if event.relatedTarget is @component.hiddenInputComponent.domNode
if event.relatedTarget is @component.hiddenInputComponent.getDomNode()
event.stopImmediatePropagation()
return

View File

@@ -125,7 +125,7 @@ class TextEditorView extends View
Object.defineProperty @::, 'firstRenderedScreenRow', get: -> @component.getRenderedRowRange()[0]
Object.defineProperty @::, 'lastRenderedScreenRow', get: -> @component.getRenderedRowRange()[1]
Object.defineProperty @::, 'active', get: -> @is(@getPaneView()?.activeView)
Object.defineProperty @::, 'isFocused', get: -> document.activeElement is @element or document.activeElement is @element.component?.hiddenInputComponent?.domNode
Object.defineProperty @::, 'isFocused', get: -> document.activeElement is @element or document.activeElement is @element.component?.hiddenInputComponent?.getDomNode()
Object.defineProperty @::, 'mini', get: -> @model?.isMini()
Object.defineProperty @::, 'component', get: -> @element?.component