Ext.draw.Path

Hierarchy

Ext.Base
Ext.draw.Path

Requires

Files

Class representing a path. Designed to be compatible with CanvasPathMethods and will hopefully be replaced by the browsers' implementation of the Path object.

Properties

Defined By

Instance properties

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'
Ext.draw.Path
view source
: Stringprivate
...

Defaults to: ''

Defined By

Static properties

...

Defaults to: []

Ext.draw.Path
view source
: RegExpprivatestatic
...

Defaults to: /,?([achlmqrstvxz]),?/gi

Ext.draw.Path
view source
: RegExpprivatestatic
...

Defaults to: /-/gi

Ext.draw.Path
view source
: RegExpprivatestatic
...

Defaults to: /\s|,/g

Methods

Defined By

Instance methods

Ext.draw.Path
view source
new( pathString ) : Ext.draw.Path
Create a path from pathString ...

Create a path from pathString

Parameters

Returns

Fires

    Ext.draw.Path
    view source
    ( result, cx, cy, rx, ry, phi, theta1, theta2 ) : Numberprivate
    ...

    Parameters

    Returns

    Ext.draw.Path
    view source
    ( x, y, radius, startAngle, endAngle, anticlockwise )
    Create an circular arc. ...

    Create an circular arc.

    Parameters

    Fires

      Ext.draw.Path
      view source
      ( rx, ry, rotation, fA, fS, x2, y2 )
      http://www.w3.org/TR/SVG/implnote.html#ArcImplementationNotes ...

      http://www.w3.org/TR/SVG/implnote.html#ArcImplementationNotes

      Parameters

      Fires

        Ext.draw.Path
        view source
        ( x1, y1, x2, y2, [rx], [ry], [rotation] )
        Create a elliptic arc curve compatible with SVG's arc to instruction. ...

        Create a elliptic arc curve compatible with SVG's arc to instruction.

        The curve start from (x1, y1) and ends at (x2, y2). The ellipse has radius rx and ry and a rotation of rotation.

        Parameters

        Fires

          Ext.draw.Path
          view source
          ( cx1, cy1, cx2, cy2, x, y )
          A cubic bezier curve to a position. ...

          A cubic bezier curve to a position.

          Parameters

          Fires

            Call the original method that was previously overridden with override, This method is deprecated as callParent does ...

            Call the original method that was previously overridden with override,

            This method is deprecated as callParent does the same thing.

            Ext.define('My.Cat', {
                constructor: function() {
                    alert("I'm a cat!");
                }
            });
            
            My.Cat.override({
                constructor: function() {
                    alert("I'm going to be a cat!");
            
                    var instance = this.callOverridden();
            
                    alert("Meeeeoooowwww");
            
                    return instance;
                }
            });
            
            var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
                                      // alerts "I'm a cat!"
                                      // alerts "Meeeeoooowwww"
            

            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.

            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

            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".

            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

            Ext.draw.Path
            view source
            ( )
            Clear the path. ...

            Clear the path.

            Fires

              Clone this path. ...

              Clone this path.

              Returns

              Ext.draw.Path
              view source
              ( )
              Close this path with a straight line. ...

              Close this path with a straight line.

              Fires

                Ext.draw.Path
                view source
                ( a, b, c, d, dim )private
                Determine the curve ...

                Determine the curve

                Parameters

                Fires

                  Ext.draw.Path
                  view source
                  ( )private
                  ...
                  Ext.draw.Path
                  view source
                  ( cx, cy, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise )
                  Create an elliptic arc. ...

                  Create an elliptic arc.

                  See the whatwg reference of ellipse.

                  Parameters

                  Fires

                    Ext.draw.Path
                    view source
                    ( target, x1, y1, cx1, cy1, cx2, cy2, x2, y2 )private
                    Expand the rect by the bbox of a bezier curve. ...

                    Expand the rect by the bbox of a bezier curve.

                    Parameters

                    Fires

                      Ext.draw.Path
                      view source
                      ( stripes )
                      Reconstruct path from cubic bezier curve stripes. ...

                      Reconstruct path from cubic bezier curve stripes.

                      Parameters

                      Fires

                        Ext.draw.Path
                        view source
                        ( pathString )
                        Feed the path from svg path string. ...

                        Feed the path from svg path string.

                        Parameters

                        Fires

                          ...

                          Parameters

                          Ext.draw.Path
                          view source
                          ( [target] ) : Object
                          Get the bounding box of this matrix. ...

                          Get the bounding box of this matrix.

                          Parameters

                          • target : Object (optional)

                            Optional object to receive the result.

                          Returns

                          • Object

                            Object with x, y, width and height

                          Fires

                            Ext.draw.Path
                            view source
                            ( matrix, [target] ) : Object
                            Get the bounding box as if the path is transformed by a matrix. ...

                            Get the bounding box as if the path is transformed by a matrix.

                            Parameters

                            Returns

                            • Object

                              An object with x, y, width and height.

                            Fires

                              Returns the initial configuration passed to constructor. ...

                              Returns the initial configuration passed to constructor.

                              Parameters

                              • name : String (optional)

                                When supplied, value for particular configuration option is returned, otherwise the full config object is returned.

                              Returns

                              ...

                              Parameters

                              ( instanceConfig ) : Objectchainableprotected
                              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'
                              

                              Parameters

                              Returns

                              • Object

                                mixins The mixin prototypes as key - value pairs

                              Fires

                                Ext.draw.Path
                                view source
                                ( a, b, c, d, t ) : Numberprivate
                                Returns a * (1 - t) ^ 3 + 3 * b (1 - t) ^ 2 * t + 3 * c (1 - t) * t ^ 3 + d * t ^ 3. ...

                                Returns a * (1 - t) ^ 3 + 3 * b (1 - t) ^ 2 * t + 3 * c (1 - t) * t ^ 3 + d * t ^ 3.

                                Parameters

                                Returns

                                Ext.draw.Path
                                view source
                                ( x, y ) : Boolean
                                Test whether the given point is on or inside the path. ...

                                Test whether the given point is on or inside the path.

                                Parameters

                                Returns

                                Fires

                                  Ext.draw.Path
                                  view source
                                  ( x, y )
                                  A straight line to a position. ...

                                  A straight line to a position.

                                  Parameters

                                  Fires

                                    Ext.draw.Path
                                    view source
                                    ( x, y )
                                    Move to a position. ...

                                    Move to a position.

                                    Parameters

                                    Fires

                                      ( names, callback, scope )private
                                      ...

                                      Parameters

                                      Ext.draw.Path
                                      view source
                                      ( cx, cy, x, y )
                                      A quadratic bezier curve to a position. ...

                                      A quadratic bezier curve to a position.

                                      Parameters

                                      Fires

                                        Ext.draw.Path
                                        view source
                                        ( x1, y1, x2, y2, x3, y3, x4, y4, x, y, idx ) : *private
                                        ...

                                        Parameters

                                        Returns

                                        • *
                                        Ext.draw.Path
                                        view source
                                        ( x1, y1, x2, y2, x, y ) : Numberprivate
                                        ...

                                        Parameters

                                        Returns

                                        Ext.draw.Path
                                        view source
                                        ( x, y, width, height )
                                        Draw a rectangle and close it. ...

                                        Draw a rectangle and close it.

                                        Parameters

                                        Fires

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

                                          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
                                          

                                          Returns

                                          Ext.draw.Path
                                          view source
                                          ( ) : String
                                          Return an svg path string for this path. ...

                                          Return an svg path string for this path.

                                          Returns

                                          Fires

                                            Ext.draw.Path
                                            view source
                                            ( [target] ) : Array
                                            Convert path to bezier curve stripes. ...

                                            Convert path to bezier curve stripes.

                                            Parameters

                                            • target : Array (optional)

                                              The optional array to receive the result.

                                            Returns

                                            Ext.draw.Path
                                            view source
                                            ( matrix )
                                            Transform the current path by a matrix. ...

                                            Transform the current path by a matrix.

                                            Parameters

                                            Fires

                                              Ext.draw.Path
                                              view source
                                              ( )private
                                              Update cache for svg string of this path. ...

                                              Update cache for svg string of this path.

                                              Defined By

                                              Static methods

                                              ( config, fullMerge )privatestatic
                                              ...

                                              Parameters

                                              ( members )chainableprivatestatic
                                              ...

                                              Parameters

                                              ( name, member )chainableprivatestatic
                                              ...

                                              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();
                                              

                                              Parameters

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

                                              Add / override static properties of this class.

                                              Ext.define('My.cool.Class', {
                                                  // this.se
                                              });
                                              
                                              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() { ... };
                                              });
                                              

                                              Parameters

                                              Returns

                                              ( xtype )chainableprivatestatic
                                              ...

                                              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 '$$$$$$$'
                                              

                                              Parameters

                                              • fromClass : Ext.Base

                                                The class to borrow members from

                                              • members : Array/String

                                                The names of the members to borrow

                                              Returns

                                              ( args )protectedstatic
                                              ...

                                              Parameters

                                              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.

                                              Returns

                                              ( 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()
                                              

                                              Parameters

                                              ( parent )privatestatic
                                              ...

                                              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'
                                              

                                              Returns

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

                                              Used internally by the mixins pre-processor

                                              Parameters

                                              ( fn, scope )chainableprivatestatic
                                              ...

                                              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!");
                                              
                                                      var instance = this.callParent(arguments);
                                              
                                                      alert("Meeeeoooowwww");
                                              
                                                      return instance;
                                                  }
                                              });
                                              
                                              var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
                                                                        // alerts "I'm a cat!"
                                                                        // alerts "Meeeeoooowwww"
                                              

                                              As of 2.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!");
                                              
                                                      var instance = this.callParent(arguments);
                                              
                                                      alert("Meeeeoooowwww");
                                              
                                                      return instance;
                                                  }
                                              });
                                              

                                              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).

                                              This method has been deprecated since 2.1.0

                                              Please 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