我的支架底部面板不起作用

时间:2015-08-15 21:41:31

标签: coffeescript adobe-brackets

我尝试做一个Brackets扩展(网页编辑器),我必须创建一个底部面板,但它永远不会出现, show方法什么都不做,也是setVisible, 你能告诉我为什么吗? THX ...

define (require, exports, module)->
    log = (s)->
        console.log "%c[SQL-DISPLAY] " + s, "color:#f4aa05;font-size:large"
    log "started..."
    commandManager      = brackets.getModule "command/CommandManager"
    menus               = brackets.getModule "command/Menus"
    appInit             = brackets.getModule "utils/AppInit"
    dialogs             = brackets.getModule "widgets/Dialogs"
    defaultDialogs      = brackets.getModule "widgets/DefaultDialogs"
    workspaceManager    = brackets.getModule "view/WorkspaceManager"

    sql_display_execute = 'sql-display.execute' # mon entrée dans le menu
    panel = {}


    appInit.appReady ()->
        commandManager.register 'sql-display panel', sql_display_execute, handleSqlDisplay
        menu = menus.getMenu menus.AppMenuBar.VIEW_MENU
        menu.addMenuItem sql_display_execute

        panel = workspaceManager.createBottomPanel 'sql.display.execute', $(require('text!templates/panel.html')), 400

    handleSqlDisplay = ()->

        log "disp modal box"
        console.log panel

        console.log panel.isVisible() #always false
        # affiche une modal
        #dialogs.showModalDialog defaultDialogs.DIALOG_ID_INFO, "database informations", "<p>test</p>"
        if panel.isVisible()
            #panel.setVisible(false)
            panel.hide()
            commandManager.get(sql_display_execute).setChecked(false)
        else
            panel.show()
            console.log 'try to show'
            #panel.setVisible(true)
            commandManager.get(sql_display_execute).setChecked(true)

            while( !panel.isVisible)
                panel.show()

        console.log panel.isVisible()#always false

3 个答案:

答案 0 :(得分:0)

不确定这是否是您的真正问题,但此代码永远不会运行:

        while( !panel.isVisible)
            panel.show()

panel.isVisible将始终评估为true,因为isVisible是一个函数。你需要括号来实际调用函数;对于零参数函数,它们不是可选的。

答案 1 :(得分:0)

好的我解决了我的问题,如果你没有加载样式表就无法打开底部^^

extensionUtils = brackets.getModule "utils/ExtensionUtils"
extensionUtils.loadStyleSheet(module, "main.css");

有了它,它的工作......

答案 2 :(得分:0)

似乎WorkspaceManager.createBottomPanel中$ panel参数中的html需要一个DOM ID才能使函数正常工作。

panel = WorkspaceManager.createBottomPanel(ID_OF_EXECUTE, $("<div id='some-id' class='bottom-panel'>HTML for my panel</div>"),200);

请参阅Brackets -WorkspaceManager (click show code)