ExtJS 4 : desktop shortcut location

1757 단어 Desktopextjs4shortcut
ExtJS 4 Desktop 예제의 데스크톱 아이콘은 항상 첫 번째 열에 표시됩니다.Desktop의 일부 메서드를 다시 작성하여 위치에 자동으로 맞게 만듭니다.

  Ext.override(Ext.ux.desktop.Desktop, {
      createDataView: function () {
        var me = this;
        return {
          xtype: 'dataview',
          overItemCls: 'x-view-over',
          trackOver: true,
          itemSelector: me.shortcutItemSelector,
          store: me.shortcuts,
          tpl: new Ext.XTemplate(me.shortcutTpl),
          listeners: {
            'refresh': me.positionItems,
            'resize': me.positionItems
          }
        };
      },

      positionItems: function() {
        var me = this,
            height = this.getHeight(),
            x = 0,
            y = 0;

        // get  the max width and height of shortcuts
        if (!me.itemWidth && !me.itemHeight) {
          me.itemHeight = 0;
          var h = 0, rh;

          this.all.each(function(item) {
            var el = Ext.get(item),
                box = el.getBox();
            me.itemWidth = me.itemWidth || box.right;
            me.itemHeight = (rh = box.bottom - h) > me.itemHeight ? rh : me.itemHeight;
            h = box.bottom;
          });
        }

        this.all.each(function(item) {
          var el = Ext.get(item);
          if ((y+me.itemHeight) > height) {
            x += me.itemWidth;
            y = 0;
          }
          el.setXY([x, y]);
          y += me.itemHeight;
        });
      }
    });

좋은 웹페이지 즐겨찾기