• Jump To … +
    server.coffee src/actionknob.coffee src/autosem.coffee src/bitbucket_kba.coffee src/browserlog.coffee src/datareduction.coffee src/dci.coffee src/dciknob.coffee src/deeseeeye.coffee src/dnd.coffee src/doof.coffee src/formurla-mngr.coffee src/fractalpanel.coffee src/fractalpanel_test.coffee src/front.coffee src/ingestor.coffee src/kbabitbucket.coffee src/knobctrl.coffee src/lib_test.coffee src/nanoclock.coffee src/noodb.coffee src/noodbabstract.coffee src/noodbbrowser.coffee src/noodbbrowser_test.coffee src/noodbsec.coffee src/noorauth.coffee src/noorplugin.coffee src/noorquery.coffee src/noorvm.coffee src/noorwrite.coffee src/quadparser.coffee src/quadparsern3.coffee src/rbac.coffee src/reactor.coffee src/rebase.coffee src/rsrcidx.coffee src/sandboxactions.coffee src/screen_ctx.coffee src/spogi.coffee src/tabular_widget.coffee src/visctrl.coffee src/voicesknob.coffee src/whowhen.coffee src/xsd2native.coffee
  • actionknob.coffee

  • ¶
    class ActionKnob extends KnobController
      main_icon: 'gears'
      css_classes: 'action_menu'
      elem_label: 'Action Menu'
      make_panel: ->
        super(@elem_tmpl)
  • ¶

    ColoredTreePicker = require(‘coloredtreepicker’).ColoredTreePicker @verb_box = @elem.append($(‘

    ‘)) @action_picker = new ColoredTreePicker(@verb_box, ‘anything’, [], true)

        @elem.hide()
        @watch_for(':visible', null, () => @reveal())
    
      fp_spec:
        make_frame: true
        suppress_corner_buttons: true
        propagate:
          always_show_NEWS_buttons: false
          make_frame: false
          color_panels_uniquely: false
          inject_tree_path: false
          suppress_corner_buttons: true  # just suppress the close button
          suppress_content_area: false
          always_show_close_button: false
          show_NEWS_handle: {} # supress side drop zones
    
      get_formurlaManager: ->
        @fractalcomponent.get_formurlaManager()
    
      get_unique_panel_name: () ->
        return "knob_" + (new Date()).getTime()
    
      get_formurla: () ->
        return "#{@function_spec.name}(g=#{@function_spec.g})"
    
      reveal: () ->
        if not @my_panel
          FractalPanel = require('fractalpanel').FractalPanel
          @my_panel = new FractalPanel @target, @get_unique_panel_name(), @fp_spec
          forMan = @get_formurlaManager() # HACK? Perhaps the global formurlaManager should NOT be used?
          menuFunc = forMan.resolve_function(@function_spec.name)
          src = @get_formurla()
  • ¶

    alert src

          formurla = forMan.compile_formurla(src)
          expression = forMan.get_first_expression(formurla)
          @menu_widget = menuFunc.apply(forMan,[@my_panel.first_frac, expression])
  • ¶

    One should not normally do such intimate things TO somebody else, but this means that the menu_widgets do not have to be subclasses of the same parent just to inherit a method like register_knob_which_controls_me()

          @menu_widget.knob_which_controls_me = @
    
    (exports ? this).ActionKnob = ActionKnob