Custom Components

I am interested in using this framework with a Node.js backend. However, I have a few custom UI components I wish to create. Is there any way to do this in Webix?

Hello,

You can create any custom component, either from the scratch, or on the base of any already existing Webix component. It is exactly the way all the Webix components are created themselves:

webix.protoUI({
   name:"custom",
   $init:function(config){
   //method called during initialization
   },
   defaults:{
   //set of default properties
   },
   render:function(){
   //paint the component
   }
})

And then use it the same way like any component:

webix.ui({ view:"custom", ...});

You can study the source code (webix_debug.js) as well as documentation:

http://docs.webix.com/desktop__custom_component.html

Very good.

I am making a comparison between Webix and ExtJS.
ExtJS requires a license per domain, in addition to developer licenses.
It looks to me that Webix has just developer licenses. Is that correct?

Yes, you are right, there is no per-domain limitation.

Very good.

What about a free-form layout? Like if I want to have a canvas where my components are laid out with absolute X,Y positioning. Can this be done too?

We plan to add this functionality as part of standard package in one of next updates.
Currently it can be done through custom coding.
if necessary - I can share a snippet

Ok that’s good. What about creating a custom layout? Is that possible?

Yep, you can subclass layout as any other component but I don’t think that public API in the current version will allow to redefine all behaviors nicely.

Very Good.

Last question… I may need to make some custom charts or extend functionality of existing charts/graphs. What about that?

Existing charts are quite configurable - you can define sizes, labels, colors, etc.
Creating new chart type is a lot of work.
If you need something beyond standard chart - you can use third party libraries

http://webix-hub.github.io/components/d3/sample.html
http://webix-hub.github.io/components/raphael/sample.html

I would like to see an example of an absolute layout (X,Y) positioning, and a way to design your own layout (if that is possible). Thanks.