Extjs Tree editor - отключить один клик для редактирования - PullRequest
0 голосов
/ 27 сентября 2011

Я использую редактор дерева. Мне нужно, чтобы узел дерева стал редактируемым только при двойном щелчке. Пока я сделал это

  var tree = new Ext.tree.TreePanel({
      root: this.getChildren(),
      height: 300,
      loader: new Ext.tree.TreeLoader(),
      useArrows: true,
      autoScroll: true,
      listeners: {
          dblclick: onTreeNodeDblClick
      }
  });

  var treeEditor = new Ext.tree.TreeEditor(tree, {}, {
      cancelOnEsc: true,
      completeOnEnter: true,
      selectOnFocus: true,
      allowBlank: false,
      listeners: {
          complete: onTreeEditComplete
      }
  });

  onTreeNodeDblClick: function (n) {
      treeEditor.editNode = n;
      treeEditor.startEdit(n.ui.textNode);
  }

  onTreeEditComplete: function (treeEditor, o, n) {}

Я искал API, чтобы найти что-то вроде «clicksToEdit», который мы используем в сетке редактора, но не могу найти ничего. Есть ли способ сделать это?

Ответы [ 2 ]

2 голосов
/ 07 июня 2012

Ext.tree.TreeEditor добавляет двух прослушивателей событий (beforeclick, dblclick) в дерево, чтобы вы могли отписаться от него в дереве

tree.on('afterrender', function() {
    tree.un('beforeclick', treeEditor.beforeNodeClick, treeEditor);
    tree.un('dblclick', treeEditor.onNodeDblClick, treeEditor);
})
0 голосов
/ 27 сентября 2011

Из API Ext.tree.TreePanel:

beforeclick : ( Node node, Ext.EventObject e )

Fires before click processing on a node. Return false to cancel the default action.

Так что вы можете сделать это:

var tree = new Ext.tree.TreePanel({
  root: this.getChildren(),
  height: 300,
  loader: new Ext.tree.TreeLoader(),
  useArrows: true,
  autoScroll: true,
  listeners: {
      dblclick: onTreeNodeDblClick,
      beforeclick: function() { return false;}
  }

});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...