Sha256: 898ffb344da2b59c1990ba76d321b3b51067e46c80d9cbfafb62ffa4c2ea32f1

Contents?: true

Size: 988 Bytes

Versions: 1

Compression:

Stored size: 988 Bytes

Contents

CodeSync.plugins.ModeSelector = Backbone.View.extend
  className: "mode-selector"

  events:
    "change select" : "onSelect"

  initialize: (options={})->
    @editor = options.editor

    @modes = @editor.modes

    @modes.on "reset", @render, @

    @editor.on "change:mode", (modeModel, modeId)=>
      @setValue(modeId)

    Backbone.View::initialize.apply(@, arguments)

  onSelect: ()->
    selected = @$('select').val()
    mode = @modes.get(selected)

    @editor.setMode(mode)

  setValue: (val)->
    @$('select').val(val)

  render: ()->
    options = ""

    for mode in @modes.models
      options += "<option value='#{ mode.id }'>#{ mode.get('name') }</option>"

    @$el.html("<select>#{ options }</select>")

    @


CodeSync.plugins.ModeSelector.setup = (editor)->
  v = @views.modeSelector = new CodeSync.plugins.ModeSelector({editor})

  editor.$('.codesync-asset-editor').append v.render().el

  editor.on "document:loaded", (doc)->
    v.setValue(doc.get('mode'))


Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
code_sync-0.6.7 lib/assets/javascripts/code_sync/editor/views/mode_selector.coffee