Ext JS 4.1.3 Sencha Docs

Ext.tree.plugin.TreeViewDragDrop

Hierarchy

Ext.Base
Ext.AbstractPlugin
Ext.tree.plugin.TreeViewDragDrop

Uses

Files

This plugin provides drag and/or drop functionality for a TreeView.

It creates a specialized instance of DragZone which knows how to drag out of a TreeView and loads the data object which is passed to a cooperating DragZone's methods with the following properties:

  • copy : Boolean

    The value of the TreeView's copy property, or true if the TreeView was configured with allowCopy: true and the control key was pressed when the drag operation was begun.

  • view : TreeView

    The source TreeView from which the drag originated.

  • ddel : HtmlElement

    The drag proxy element which moves with the mouse

  • item : HtmlElement

    The TreeView node upon which the mousedown event was registered.

  • records : Array

    An Array of Models representing the selected data being dragged from the source TreeView.

It also creates a specialized instance of Ext.dd.DropZone which cooperates with other DropZones which are members of the same ddGroup which processes such data objects.

Adding this plugin to a view means that two new events may be fired from the client TreeView, beforedrop and drop.

Note that the plugin must be added to the tree view, not to the tree panel. For example using viewConfig:

viewConfig: {
    plugins: { ptype: 'treeviewdragdrop' }
}

Available since: 4.0.4

Defined By

Config options

Ext.tree.plugin.TreeViewDragDrop
view source
: Boolean
True if drops on the tree container (outside of a specific tree node) are allowed. ...

True if drops on the tree container (outside of a specific tree node) are allowed.

Defaults to: false

Available since: 4.1.1

Ext.tree.plugin.TreeViewDragDrop
view source
: Boolean
Allow inserting a dragged node between an expanded parent node and its first child that will become a sibling of the ...

Allow inserting a dragged node between an expanded parent node and its first child that will become a sibling of the parent when dropped.

Defaults to: false

Available since: 4.1.1

Ext.tree.plugin.TreeViewDragDrop
view source
: Boolean
True if the tree should only allow append drops (use for trees which are sorted). ...

True if the tree should only allow append drops (use for trees which are sorted).

Defaults to: false

Available since: 4.0.4

Ext.tree.plugin.TreeViewDragDrop
view source
: Object/Boolean
True to register this container with the Scrollmanager for auto scrolling during drag operations. ...

True to register this container with the Scrollmanager for auto scrolling during drag operations. A Ext.dd.ScrollManager configuration may also be passed.

Defaults to: false

Available since: 4.1.2

Ext.tree.plugin.TreeViewDragDrop
view source
: String
A named drag drop group to which this object belongs. ...

A named drag drop group to which this object belongs. If a group is specified, then both the DragZones and DropZone used by this plugin will only interact with other drag drop objects in the same group.

Defaults to: "TreeDD"

Available since: 4.0.4

Ext.tree.plugin.TreeViewDragDrop
view source
: String
The ddGroup to which the DragZone will belong. ...

The ddGroup to which the DragZone will belong.

This defines which other DropZones the DragZone will interact with. Drag/DropZones only interact with other Drag/DropZones which are members of the same ddGroup.

Available since: 4.0.4

Ext.tree.plugin.TreeViewDragDrop
view source
: String
The text to show while dragging. ...

The text to show while dragging.

Two placeholders can be used in the text:

  • {0} The number of selected items.
  • {1} 's' when more than 1 items (only useful for English).

Defaults to: '{0} selected node{1}'

Available since: 4.1.1

Ext.tree.plugin.TreeViewDragDrop
view source
: String
The ddGroup to which the DropZone will belong. ...

The ddGroup to which the DropZone will belong.

This defines which other DragZones the DropZone will interact with. Drag/DropZones only interact with other Drag/DropZones which are members of the same ddGroup.

Available since: 4.0.4

Ext.tree.plugin.TreeViewDragDrop
view source
: Boolean
Set to false to disallow dragging items from the View. ...

Set to false to disallow dragging items from the View.

Defaults to: true

Available since: 4.0.4

Ext.tree.plugin.TreeViewDragDrop
view source
: Boolean
Set to false to disallow the View from accepting drop gestures. ...

Set to false to disallow the View from accepting drop gestures.

Defaults to: true

Available since: 4.0.4

Ext.tree.plugin.TreeViewDragDrop
view source
: String
The delay in milliseconds to wait before expanding a target tree node while dragging a droppable node over the target. ...

The delay in milliseconds to wait before expanding a target tree node while dragging a droppable node over the target.

Defaults to: 1000

Available since: 4.0.4

Ext.tree.plugin.TreeViewDragDrop
view source
: String
The color to use when visually highlighting the dragged or dropped node (default value is light blue). ...

The color to use when visually highlighting the dragged or dropped node (default value is light blue). The color must be a 6 digit hex value, without a preceding '#'. See also nodeHighlightOnDrop and nodeHighlightOnRepair.

Defaults to: 'c3daf9'

Available since: 4.0.4

Ext.tree.plugin.TreeViewDragDrop
view source
: Boolean
Whether or not to highlight any nodes after they are successfully dropped on their target. ...

Whether or not to highlight any nodes after they are successfully dropped on their target. Defaults to the value of Ext.enableFx. See also nodeHighlightColor and nodeHighlightOnRepair.

Available since: 4.0.4

Ext.tree.plugin.TreeViewDragDrop
view source
: Boolean
Whether or not to highlight any nodes after they are repaired from an unsuccessful drag/drop. ...

Whether or not to highlight any nodes after they are repaired from an unsuccessful drag/drop. Defaults to the value of Ext.enableFx. See also nodeHighlightColor and nodeHighlightOnDrop.

Available since: 4.0.4

A name for the plugin that can be set at creation time to then retrieve the plugin through getPlugin method. ...

A name for the plugin that can be set at creation time to then retrieve the plugin through getPlugin method. For example:

var grid = Ext.create('Ext.grid.Panel', {
    plugins: [{
        ptype: 'cellediting',
        clicksToEdit: 2,
        pluginId: 'cellplugin'
    }]
});

// later on:
var plugin = grid.getPlugin('cellplugin');

Available since: 4.1.1

Properties

Defined By

Instance properties

...

Defaults to: 'Ext.Base'

Available since: 4.1.1

...

Defaults to: {}

Available since: 4.1.1

...

Defaults to: false

Available since: 4.0.0

...

Defaults to: []

Available since: 4.1.1

...

Defaults to: {}

Available since: 4.1.1

...

Defaults to: true

Available since: 4.1.1

Get the reference to the current class from which this object was instantiated. ...

Get the reference to the current class from which this object was instantiated. Unlike statics, this.self is scope-dependent and it's meant to be used for dynamic inheritance. See statics for a detailed comparison

Ext.define('My.Cat', {
    statics: {
        speciesName: 'Cat' // My.Cat.speciesName = 'Cat'
    },

    constructor: function() {
        alert(this.self.speciesName); // dependent on 'this'
    },

    clone: function() {
        return new this.self();
    }
});


Ext.define('My.SnowLeopard', {
    extend: 'My.Cat',
    statics: {
        speciesName: 'Snow Leopard'         // My.SnowLeopard.speciesName = 'Snow Leopard'
    }
});

var cat = new My.Cat();                     // alerts 'Cat'
var snowLeopard = new My.SnowLeopard();     // alerts 'Snow Leopard'

var clone = snowLeopard.clone();
alert(Ext.getClassName(clone));             // alerts 'My.SnowLeopard'

Available since: 4.0.0

Defined By

Static properties

...

Defaults to: []

Available since: 4.1.1

Methods

Defined By

Instance methods

...

Available since: 4.0.0

Parameters

Returns

( args ) : Objectdeprecatedprotected
Call the original method that was previously overridden with override Ext.define('My.Cat', { constructor: functi...

Call the original method that was previously overridden with override

Ext.define('My.Cat', {
    constructor: function() {
        alert("I'm a cat!");
    }
});

My.Cat.override({
    constructor: function() {
        alert("I'm going to be a cat!");

        this.callOverridden();

        alert("Meeeeoooowwww");
    }
});

var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
                          // alerts "I'm a cat!"
                          // alerts "Meeeeoooowwww"

Available since: 4.0.0

This method has been deprecated

as of 4.1. Use callParent instead.

Parameters

  • args : Array/Arguments

    The arguments, either an array or the arguments object from the current method, for example: this.callOverridden(arguments)

Returns

  • Object

    Returns the result of calling the overridden method

Call the "parent" method of the current method. ...

Call the "parent" method of the current method. That is the method previously overridden by derivation or by an override (see Ext.define).

 Ext.define('My.Base', {
     constructor: function (x) {
         this.x = x;
     },

     statics: {
         method: function (x) {
             return x;
         }
     }
 });

 Ext.define('My.Derived', {
     extend: 'My.Base',

     constructor: function () {
         this.callParent([21]);
     }
 });

 var obj = new My.Derived();

 alert(obj.x);  // alerts 21

This can be used with an override as follows:

 Ext.define('My.DerivedOverride', {
     override: 'My.Derived',

     constructor: function (x) {
         this.callParent([x*2]); // calls original My.Derived constructor
     }
 });

 var obj = new My.Derived();

 alert(obj.x);  // now alerts 42

This also works with static methods.

 Ext.define('My.Derived2', {
     extend: 'My.Base',

     statics: {
         method: function (x) {
             return this.callParent([x*2]); // calls My.Base.method
         }
     }
 });

 alert(My.Base.method(10);     // alerts 10
 alert(My.Derived2.method(10); // alerts 20

Lastly, it also works with overridden static methods.

 Ext.define('My.Derived2Override', {
     override: 'My.Derived2',

     statics: {
         method: function (x) {
             return this.callParent([x*2]); // calls My.Derived2.method
         }
     }
 });

 alert(My.Derived2.method(10); // now alerts 40

To override a method and replace it and also call the superclass method, use callSuper. This is often done to patch a method to fix a bug.

Available since: 4.0.0

Parameters

  • args : Array/Arguments

    The arguments, either an array or the arguments object from the current method, for example: this.callParent(arguments)

Returns

  • Object

    Returns the result of calling the parent method

( args ) : Objectprotected
This method is used by an override to call the superclass method but bypass any overridden method. ...

This method is used by an override to call the superclass method but bypass any overridden method. This is often done to "patch" a method that contains a bug but for whatever reason cannot be fixed directly.

Consider:

 Ext.define('Ext.some.Class', {
     method: function () {
         console.log('Good');
     }
 });

 Ext.define('Ext.some.DerivedClass', {
     method: function () {
         console.log('Bad');

         // ... logic but with a bug ...

         this.callParent();
     }
 });

To patch the bug in DerivedClass.method, the typical solution is to create an override:

 Ext.define('App.paches.DerivedClass', {
     override: 'Ext.some.DerivedClass',

     method: function () {
         console.log('Fixed');

         // ... logic but with bug fixed ...

         this.callSuper();
     }
 });

The patch method cannot use callParent to call the superclass method since that would call the overridden method containing the bug. In other words, the above patch would only produce "Fixed" then "Good" in the console log, whereas, using callParent would produce "Fixed" then "Bad" then "Good".

Available since: Ext JS 4.1.3

Parameters

  • args : Array/Arguments

    The arguments, either an array or the arguments object from the current method, for example: this.callSuper(arguments)

Returns

  • Object

    Returns the result of calling the superclass method

...

Available since: 4.1.1

...

Available since: 4.1.1

Ext.tree.plugin.TreeViewDragDrop
view source
( )private
AbstractComponent calls destroy on all its plugins at destroy time. ...

AbstractComponent calls destroy on all its plugins at destroy time.

Available since: 4.0.4

Overrides: Ext.AbstractPlugin.destroy

The base implementation just sets the plugin's disabled flag to true Plugin subclasses which need more complex proce...

The base implementation just sets the plugin's disabled flag to true

Plugin subclasses which need more complex processing may implement an overriding implementation.

Available since: 4.0.0

The base implementation just sets the plugin's disabled flag to false Plugin subclasses which need more complex proc...

The base implementation just sets the plugin's disabled flag to false

Plugin subclasses which need more complex processing may implement an overriding implementation.

Available since: 4.0.0

...

Available since: 4.0.0

...

Available since: 4.1.0

Parameters

Returns the initial configuration passed to constructor when instantiating this class. ...

Returns the initial configuration passed to constructor when instantiating this class.

Available since: 4.1.0

Parameters

  • name : String (optional)

    Name of the config option to return.

Returns

  • Object/Mixed

    The full config object or a single config value when name parameter specified.

...

Available since: 4.1.0

Parameters

Ext.tree.plugin.TreeViewDragDrop
view source
( view )
The init method is invoked after initComponent method has been run for the client Component. ...

The init method is invoked after initComponent method has been run for the client Component.

The supplied implementation is empty. Subclasses should perform plugin initialization, and set up bidirectional links between the plugin and its client Component in their own implementation of this method.

Available since: 4.0.4

Parameters

Overrides: Ext.AbstractPlugin.init

( config ) : Ext.Basechainableprotected
Initialize configuration for this class. ...

Initialize configuration for this class. a typical example:

Ext.define('My.awesome.Class', {
    // The default config
    config: {
        name: 'Awesome',
        isAwesome: true
    },

    constructor: function(config) {
        this.initConfig(config);
    }
});

var awesome = new My.awesome.Class({
    name: 'Super Awesome'
});

alert(awesome.getName()); // 'Super Awesome'

Available since: 4.0.0

Parameters

Returns

( names, callback, scope )private
...

Available since: 4.1.0

Parameters

Ext.tree.plugin.TreeViewDragDrop
view source
( view )private
...

Available since: 4.0.4

Parameters

( config, applyIfNotSet ) : Ext.Basechainableprivate
...

Available since: 4.0.0

Parameters

Returns

Get the reference to the class from which this object was instantiated. ...

Get the reference to the class from which this object was instantiated. Note that unlike self, this.statics() is scope-independent and it always returns the class from which it was called, regardless of what this points to during run-time

Ext.define('My.Cat', {
    statics: {
        totalCreated: 0,
        speciesName: 'Cat' // My.Cat.speciesName = 'Cat'
    },

    constructor: function() {
        var statics = this.statics();

        alert(statics.speciesName);     // always equals to 'Cat' no matter what 'this' refers to
                                        // equivalent to: My.Cat.speciesName

        alert(this.self.speciesName);   // dependent on 'this'

        statics.totalCreated++;
    },

    clone: function() {
        var cloned = new this.self;                      // dependent on 'this'

        cloned.groupName = this.statics().speciesName;   // equivalent to: My.Cat.speciesName

        return cloned;
    }
});


Ext.define('My.SnowLeopard', {
    extend: 'My.Cat',

    statics: {
        speciesName: 'Snow Leopard'     // My.SnowLeopard.speciesName = 'Snow Leopard'
    },

    constructor: function() {
        this.callParent();
    }
});

var cat = new My.Cat();                 // alerts 'Cat', then alerts 'Cat'

var snowLeopard = new My.SnowLeopard(); // alerts 'Cat', then alerts 'Snow Leopard'

var clone = snowLeopard.clone();
alert(Ext.getClassName(clone));         // alerts 'My.SnowLeopard'
alert(clone.groupName);                 // alerts 'Cat'

alert(My.Cat.totalCreated);             // alerts 3

Available since: 4.0.0

Returns

Defined By

Static methods

( config )privatestatic
...

Available since: 4.1.1

Parameters

( members )chainableprivatestatic
...

Available since: 4.1.1

Parameters

( name, member )chainableprivatestatic
...

Available since: 4.1.1

Parameters

( members )chainablestatic
Add methods / properties to the prototype of this class. ...

Add methods / properties to the prototype of this class.

Ext.define('My.awesome.Cat', {
    constructor: function() {
        ...
    }
});

 My.awesome.Cat.addMembers({
     meow: function() {
        alert('Meowww...');
     }
 });

 var kitty = new My.awesome.Cat;
 kitty.meow();

Available since: 4.1.0

Parameters

( members ) : Ext.Basechainablestatic
Add / override static properties of this class. ...

Add / override static properties of this class.

Ext.define('My.cool.Class', {
    ...
});

My.cool.Class.addStatics({
    someProperty: 'someValue',      // My.cool.Class.someProperty = 'someValue'
    method1: function() { ... },    // My.cool.Class.method1 = function() { ... };
    method2: function() { ... }     // My.cool.Class.method2 = function() { ... };
});

Available since: 4.0.2

Parameters

Returns

( xtype )chainableprivatestatic
...

Available since: 4.1.1

Parameters

( fromClass, members ) : Ext.Basechainableprivatestatic
Borrow another class' members to the prototype of this class. ...

Borrow another class' members to the prototype of this class.

Ext.define('Bank', {
    money: '$$$',
    printMoney: function() {
        alert('$$$$$$$');
    }
});

Ext.define('Thief', {
    ...
});

Thief.borrow(Bank, ['money', 'printMoney']);

var steve = new Thief();

alert(steve.money); // alerts '$$$'
steve.printMoney(); // alerts '$$$$$$$'

Available since: 4.0.2

Parameters

  • fromClass : Ext.Base

    The class to borrow members from

  • members : Array/String

    The names of the members to borrow

Returns

Create a new instance of this Class. ...

Create a new instance of this Class.

Ext.define('My.cool.Class', {
    ...
});

My.cool.Class.create({
    someConfig: true
});

All parameters are passed to the constructor of the class.

Available since: 4.0.2

Returns

Overrides: Ext.layout.Layout.create

( alias, origin )static
Create aliases for existing prototype methods. ...

Create aliases for existing prototype methods. Example:

Ext.define('My.cool.Class', {
    method1: function() { ... },
    method2: function() { ... }
});

var test = new My.cool.Class();

My.cool.Class.createAlias({
    method3: 'method1',
    method4: 'method2'
});

test.method3(); // test.method1()

My.cool.Class.createAlias('method5', 'method3');

test.method5(); // test.method3() -> test.method1()

Available since: 4.0.2

Parameters

( config )privatestatic
...

Available since: 4.1.1

Parameters

Get the current class' name in string format. ...

Get the current class' name in string format.

Ext.define('My.cool.Class', {
    constructor: function() {
        alert(this.self.getName()); // alerts 'My.cool.Class'
    }
});

My.cool.Class.getName(); // 'My.cool.Class'

Available since: 4.0.4

Returns

( )deprecatedstatic
Adds members to class. ...

Adds members to class.

Available since: 4.0.2

This method has been deprecated since 4.1

Use addMembers instead.

( name, mixinClass )chainableprivatestatic
Used internally by the mixins pre-processor ...

Used internally by the mixins pre-processor

Available since: 4.1.1

Parameters

( fn, scope )chainableprivatestatic
...

Available since: 4.1.1

Parameters

( members ) : Ext.Basechainabledeprecatedstatic
Override members of this class. ...

Override members of this class. Overridden methods can be invoked via callParent.

Ext.define('My.Cat', {
    constructor: function() {
        alert("I'm a cat!");
    }
});

My.Cat.override({
    constructor: function() {
        alert("I'm going to be a cat!");

        this.callParent(arguments);

        alert("Meeeeoooowwww");
    }
});

var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
                          // alerts "I'm a cat!"
                          // alerts "Meeeeoooowwww"

As of 4.1, direct use of this method is deprecated. Use Ext.define instead:

Ext.define('My.CatOverride', {
    override: 'My.Cat',
    constructor: function() {
        alert("I'm going to be a cat!");

        this.callParent(arguments);

        alert("Meeeeoooowwww");
    }
});

The above accomplishes the same result but can be managed by the Ext.Loader which can properly order the override and its target class and the build process can determine whether the override is needed based on the required state of the target class (My.Cat).

Available since: 4.0.2

This method has been deprecated since 4.1.0

Use Ext.define instead

Parameters

  • members : Object

    The properties to add to this class. This should be specified as an object literal containing one or more properties.

Returns

...

Available since: 4.1.1

Defined By

Events

Ext.tree.plugin.TreeViewDragDrop
view source
( node, data, overModel, dropPosition, dropHandler, eOpts )
This event is fired through the TreeView. ...

This event is fired through the TreeView. Add listeners to the TreeView object

Fired when a drop gesture has been triggered by a mouseup event in a valid drop position in the TreeView.

Available since: 4.0.4

Parameters

  • node : HTMLElement

    The TreeView node if any over which the mouse was positioned.

    Returning false to this event signals that the drop gesture was invalid, and if the drag proxy will animate back to the point from which the drag began.

    Returning 0 To this event signals that the data transfer operation should not take place, but that the gesture was valid, and that the repair operation should not take place.

    Any other return value continues with the data transfer operation.

  • data : Object

    The data object gathered at mousedown time by the cooperating DragZone's getDragData method it contains the following properties:

    • copy : Boolean

      The value of the TreeView's copy property, or true if the TreeView was configured with allowCopy: true and the control key was pressed when the drag operation was begun

    • view : Ext.tree.View

      The source TreeView from which the drag originated.

    • ddel : HTMLElement

      The drag proxy element which moves with the mouse

    • item : HTMLElement

      The TreeView node upon which the mousedown event was registered.

    • records : Ext.data.Model[]

      An Array of Models representing the selected data being dragged from the source TreeView.

  • overModel : Ext.data.Model

    The Model over which the drop gesture took place.

  • dropPosition : String

    "before", "after" or "append" depending on whether the mouse is above or below the midline of the node, or the node is a branch node which accepts new child nodes.

  • dropHandler : Object

    An object containing methods to complete/cancel the data transfer operation and either move or copy Model instances from the source View's Store to the destination View's Store.

    This is useful when you want to perform some kind of asynchronous processing before confirming/cancelling the drop, such as an confirm call, or an Ajax request.

    Set dropHandler.wait = true in this event handler to delay processing. When you want to complete the event, call dropHandler.processDrop(). To cancel the drop, call dropHandler.cancelDrop.

  • eOpts : Object

    The options object passed to Ext.util.Observable.addListener.

Ext.tree.plugin.TreeViewDragDrop
view source
( node, data, overModel, dropPosition, eOpts )
This event is fired through the TreeView. ...

This event is fired through the TreeView. Add listeners to the TreeView object Fired when a drop operation has been completed and the data has been moved or copied.

Available since: 4.0.4

Parameters

  • node : HTMLElement

    The TreeView node if any over which the mouse was positioned.

  • data : Object

    The data object gathered at mousedown time by the cooperating DragZone's getDragData method it contains the following properties:

    • copy : Boolean

      The value of the TreeView's copy property, or true if the TreeView was configured with allowCopy: true and the control key was pressed when the drag operation was begun

    • view : Ext.tree.View

      The source TreeView from which the drag originated.

    • ddel : HTMLElement

      The drag proxy element which moves with the mouse

    • item : HTMLElement

      The TreeView node upon which the mousedown event was registered.

    • records : Ext.data.Model[]

      An Array of Models representing the selected data being dragged from the source TreeView.

  • overModel : Ext.data.Model

    The Model over which the drop gesture took place.

  • dropPosition : String

    "before", "after" or "append" depending on whether the mouse is above or below the midline of the node, or the node is a branch node which accepts new child nodes.

  • eOpts : Object

    The options object passed to Ext.util.Observable.addListener.