我的支架底部面板不起作用
My brackets bottom panel doesn't work
我尝试做一个 Brackets 扩展(网络编辑器),我必须创建一个底部面板,但它从未出现,
show 方法什么也不做,setVisible 也一样,
你能告诉我为什么吗?谢谢...
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
不确定这是否是您的真正问题,但此代码永远不会 运行:
while( !panel.isVisible)
panel.show()
panel.isVisible
将始终计算为真,因为 isVisible 是一个函数。您需要括号才能实际调用该函数;它们对于零参数函数不是可选的。
OK我的问题解决了,不加载样式表无法打开底部^^
extensionUtils = brackets.getModule "utils/ExtensionUtils"
extensionUtils.loadStyleSheet(module, "main.css");
有了这个,就可以了...
似乎 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 扩展(网络编辑器),我必须创建一个底部面板,但它从未出现, show 方法什么也不做,setVisible 也一样, 你能告诉我为什么吗?谢谢...
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
不确定这是否是您的真正问题,但此代码永远不会 运行:
while( !panel.isVisible)
panel.show()
panel.isVisible
将始终计算为真,因为 isVisible 是一个函数。您需要括号才能实际调用该函数;它们对于零参数函数不是可选的。
OK我的问题解决了,不加载样式表无法打开底部^^
extensionUtils = brackets.getModule "utils/ExtensionUtils"
extensionUtils.loadStyleSheet(module, "main.css");
有了这个,就可以了...
似乎 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);