首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在其中打开窗口时的面板侦听器

在其中打开窗口时的面板侦听器
EN

Stack Overflow用户
提问于 2013-02-21 02:14:17
回答 1查看 103关注 0票数 0

我有一个面板,它作为一个桌面。单击按钮时,会在面板内打开一个窗口。我在配置中设置了以下内容:

代码语言:javascript
复制
var win = Ext.create('window', { 
   renderTo : currentPanel.getLayout().getTarget(),
   constrain : true
});
win.show();

因此,我的窗口在主面板中处于打开和约束状态。我想让面板监听其中是否有任何窗口打开,这样我就可以监控它。有没有监听器会这样做呢?我尝试了“添加”和“添加”,但窗口必须通过以下方式添加到面板:

代码语言:javascript
复制
panel.add(window);

但在我的例子中,我没有将它添加到容器中,而是使用renderTo打开它并将其约束到我的容器中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-22 11:37:58

我要做的是为你的桌面创建一个panel的子类,为你的windows创建一个window的子类。向您的自定义面板添加一个'windowOpened‘侦听器,并从您的自定义窗口的'show’侦听器中激发此事件。

如下所示:

DesktopPanel.js

代码语言:javascript
复制
Ext.define('App.view.DesktopPanel', {
    extend: 'Ext.panel.Panel',
    alias: 'widget.desktoppanel',

    initComponent: function() {
        this.callParent();
        this.addListener('windowOpened', function(newWindow){
            //Do whatever it is you want to do here
        });
    }
});    

DesktopWindow.js

代码语言:javascript
复制
Ext.define('App.view.DesktopWindow', {
    extend: 'Ext.window.Window',
    alias: 'widget.desktopwindow',

    constrain: true,

    initComponent: function() {
        this.renderTo = this.ownerPanel.getLayout().getTarget();
        this.callParent();
        this.addListener('show', function(){
            this.ownerPanel.fireEvent('windowOpened',this);
        });
    }
});

那么你的代码应该是这样的:

代码语言:javascript
复制
var win = Ext.create('App.view.DesktopWindow', { 
   ownerPanel: MyDesktop,  //an instance of 'DesktopPanel'
});
win.show();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14987025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档