Flexicious 3.0 Release - EXCITING Announcements

clock May 21, 2013 06:49 by author Flexicious

Three Major (And one usual) Announcements

Those who watch our blog probably are wondering why we’ve been so quiet all this time. Usually when you see a long period of silence, it means we are working on something big. Today we have four major announcements to update you about what we have been doing over the past few months.


  • First, we’re releasing a whole new product, the HTML version of Ultimate. We are calling it the HTMLTreeGrid, because that’s what it is, an HTML TreeGrid component, based on the same code base as Ultimate.
  • Second, and this is a reinforcement to our commitment to supporting and enriching our Flex suite of products, a MAJOR 3.0 release for to our Dashboard Products - A full-fledged, Spark Based, Completely Skinnable, and extremely light weight Charting Framework, with 3d Bar, 3d Column, 3d Pie Charts, Line/Area/Multi/Bubble/Plot/HLOC/CandleStick charts, Pyramids, Funnels, Zoom/Slider Charts, and a lot more!
  • Third, and this is the first step in our goal of providing best of breed components on AIR Mobile, we’re releasing a version of the Dashboard and Ultimate with support for mobile. The work that has gone in so far represents a lot of the UI/Graphics, Look and Feel type and User Experience type effort. There is still work to be done, we need to add better support for touch events, and improve performance, but we wanted to get this out as soon as we could, since a number of you are asking for it.
  • Finally, this release adds exciting enhancements to the grid products, specifically Ultimatefull row edit, column header menu operations, much better tabbing support, completely redesigned column group rendering, native excel (xls) export in addition to usual list of enhancements, bug fixes and performance improvements.

Before we delve into the details, we would like to clarify a few things. The introduction of the HTMLTreeGrid is by no means an indication that our Flex business is winding down, on the contrary, it has been on a constant upswing ever since the Adobe fiasco. Sales/revenues for our Flex business in fact, have been growing year over year and Q1 2013 was our best quarter ever. Some of its success could be attributed to organic growth of the company, as well as an increase in our product offering, but we’re still selling new licenses and providing consulting services for greenfield projects. Another factor that we think is contributing to increasing sales is that Ultimate is the only DataGrid product that is seeing constant development and enhancements. It already left the SDK datagrids in the dust being with, and with the sdk grid development not seeing much action at Apache, Ultimate remains the only viable alternative for most folks doing Flex/Air development.

That said, there have been a number of customers who are either moving or contemplating moving off of flex, most notably to either Sencha EXT JS or DOJO. These customers have come to us with a desire to have Ultimate like functionality in their applications. Although both EXT-JS and DOJO offer quite powerful DataGrid components, the feature set, maturity, familiarity and LOB RIA functionality that Ultimate offers is a class apart. This is what led us to create the HTMLTreeGrid. We are a small company, and we’ve built solid branding and relationships with you by providing the best tools money can buy, tools that save you many man-months’ worth of effort, that are carefully crafted to match your scenarios and use cases. Tools that are well thought out to meet your needs while being generic and extensible enough not to be too bloated or rigid. Our focus is you, the customer. We are not married to a technology, we are partnered with you, and we will continue to work with you, be it with Flex or HTML.

There is a LOT of information to share about both the 3.0 release of our Flex products, as well as our journey porting a codebase as massive as Ultimate from Flex/ActionScript to DOJO/JQuery/EXT and JavaScript. We have posted a series of blog posts outlined below, please take your time to read and consume all of it, there is a lot of information to consume in one go:

 

Before we end, we are very eager to hear your thoughts. We got this far by listening to you, implementing your feature requests, learning from your customization of our products, and collaborating with you on strategic direction. So please, share your thoughts with us, we are eager to hear from you.



Flexicious 3.0 Release - Grid Edition

clock May 21, 2013 06:48 by author Flexicious

 

So as you may have already read, 3.0 has some big things for the Dashboard Framework, but it also contains some much requested features for Ultimate as well as the other grids.

1)      Enhancements, All Grids: Addition of the MultiSelectComboBoxEx. This is particularly useful when you have columns with large numbers of selectable values. Right now with the regular MSCB, you have to scroll through and select them individually. Now, you can simply search and add. Below is a screenshot of this new component.

2)      Enhancement, All Grids: Built in documentation : This is something that our source customers already have, but non-source customers should have documentation built into the swc. So now when you hover over a flexicious component, property or event in FlashBuilder, it should show you the documentation like the other sdk components:

3)      Enhancement, All Grids: Pure Native Excel export. This is probably one of the most asked for features in Ultimate. For the longest time we had said, our export mechanism allows you to simply plug in your own exporters. One of the reasons we did not do this initially is that to write native excel files, you have to import a library like as3xls. We did not want to include this into the core, since that would create a hard dependency. So in this release, we did with as3xls what we did with AlivePDF previously, in that we exposed a mechanism for you to easily plugin a Native Excel Exporter, and provided a Native Excel Exporter that integrates with as3xls out of the box. The new sample code, SimpleGrid.mxml shows how easy this is: nativeExcelExporter="{new As3XLSExporter()}". This basically swaps out the built in CsvExporter with native excel one behind the scenes, and you get pure excel docs. In case you want to control the logic, you can do that since the code is now in As3XLSExporter which is open for you to make changes. In addition to this, we have an Excel 2007 version of the exporter, that spits out Open Office Excel Markup Language. It saves an xml file, but this file can be opened in excel without the dreaded “The file you are trying to open is in a different format than specified by the file extension” message. The big upside of the excel 2007 exporter is that it lets you achieve a combination of no extension message, PLUS the ability to define styles and fonts. Finally, double clicking on this file will automatically open excel on systems that have Office 2007 and above installed. You can wire the excel 2007 explorter by using nativeExcelExporter="{new Excel2007Exporter()}" See below for a screenshot:

Both the AS3XlsExporter and Excel2007Exporter are included with the latest sample projects. You can also download them here : As3XLSExporter.as (4.33 kb) and Excel2007Exporter.as (4.83 kb). If you use the AS3XLSExporter, you will also need the AS3XLS library, which can be downloaded here: https://code.google.com/p/as3xls/ 

4)      Enhancement, Ultimate: Complete rewrite of the tab-handling mechanism. Previously, fast tabbing caused the grid to lose focus. It was not possible to selectively mark some cells as editable and still maintain keyboard navigation. Now, both these requirements can be met for cell based edit. Although sounds trivial, focus handling in flex is a major challenge that we were able to overcome in this release. Also, attached is an example that shows the new cellEditableFunction to selectively mark cells as editable.

CellEditable.mxml (2.88 kb)

5)      Enhancement, Ultimate: Support for Full Row Edit. In scenarios where there is cross dependencies between different cells, it makes sense to make changes to the entire row before committing changes. So, for the first time in the history of Flex, a DataGrid that supports entire row edit. See the enableRowEdit flag for details. Screenshot below:

6)      Enhancement, Ultimate : Added support for column header operations. A configurable list of column header operations that can be applied to each column:

7)      Enhancement, Ultimate : Complete rewrite of the header/column group rendering mechanism. This was requested by a number of our customers, and we managed to squeeze it in for this release. Basically, Ultimate always had a limitation, that it could only render header cells and column group cells of equal height. This worked fine where you had single line headers, but as soon as we start talking about multiline headers or complex header renderers along with column group renderers, Ultimate did a very poor job of rendering these. So, we rewrote the header/column group rendering mechanism to combat this scenario. Below is what you would see when you run the attached file with 2.9 vs 3.0.

 

VerticalHeaderMore.mxml (3.95 kb)

8)      Enhancement, Ultimate : The MultiSelectComboBox now works like Excel, where it does not allow you to uncheck all and click ok. This usually led to inconsistent behavior.

9)      Enhancement, Ultimate : Native support for GroupingCollection and GroupingCollection2

10)   Enhancement, Ultimate : Much better, faster mechanism for drawing filler rows.

11)   Enhancement, All Grids : The MSCB now supports spacebar based checkbox selection

12)   Enhancement, All Grids : Added the beforeExport, afterExport and preferencesLoading events. The export events allow you to customize the text being exported as shown below:

  1. addEventListener(ExportEvent.AFTER_EXPORT,onAfterExport);

protectedfunction onAfterExport(event:ExportEvent):void

              {

                     if(event.exportOptions.exporter is CsvExporter){

                           var csvBody:String = event.textWritten;

                           csvBody = “Report Title” + "\n" + “Subtitle” + "\n" + csvBody;

                           event.textWritten = csvBody;

 

                     }

              }

 

13)   Enhancement, All Grids : The numeric text input filter now supports decimals (previously it only supported integers).

14)   Enhancement, Ultimate: Shift Select support when selectionMode=multipleCells.

15)   Enhancement, Ultimate: Export will now respect the expand/collapse state of the grid. Option needs to be explicitly enabled, exportCollapsedRows on ExportOptions.

16)   Enhancement, Ultimate : Added headerTooltip flag to FlexDataGridColumn

17)   Enhancement, Ultimate : Added bankValuesLabel property to FlexDataGridColumn to show blank values in MSCB

18)   Enhancement, Ultimate : Added the built in UTF8ExcelExporter, useful for non-ascii characters in excel export. Just set useExcelExporter flag=true in export options.

19)   Enhancement, Ultimate: The Print, Export, as well as Settings window will now show column group header text concatenated with the column header text for better readability

20)   Bug Fix, Ultimate : Scrolling with tall rows caused grid to show partially drawn rows.

21)   Bug Fix, All Grids : Clearing the Grid sometimes did not clear the MSCB correctly.

22)   Bug Fix, Classic – the selectAllChange event was being dispatched incorrectly when there was only a selected key change

23)   Bug Fix, All Grids : When the same date is chosen in the DateComboBox custom date range, no records are returned.

24)   Bug Fix, All Grids : When you choose a custom date range, cancelling does not revert to old date range.

25)   Bug Fix, All Grids : Printing a Grid and then printing it again caused the first page to be printed blank.

26)   Bug Fix, Classic : In certain scenarios, the last record to be printed was being skipped.

27)   Bug Fix, Ultimate: Added flag to print and export options to completely remove hidden columns from being printed/exported, or to simply not select them by default (see hideHiddenColumns and excludeHiddenColumns) on PrintExportOptions

28)   Bug Fix, Ultimate: When filterPageSortMode=server, sorting on any page always reported pageIndex=0.

29)   Enhancement, Ultimate : Added support for Copy Selected Rows menu operation.

30)   Enhancement, Ultimate : Added the stylesToTransfer property to PrintOptoins. By default, it includes textAlign. This way, print will carry over text align settings from the parent datagrid. This array can be extended to include any additional style properties you want to carry over from the parent datagrid columns, while still maintaining a separate look and feel for the print version of the datagrid.

31)   Enhancement, Ultimate : new Style property : dataCellEmbeddedFonts - previously, you could not use enableDataCellOptimization with embedded Fonts. We added support for embedded fonts to FlexDataGridDataCell3, which makes it possible for you to leverage the performance gains while using embedded fonts.

32)   Added the printJob parameter to PrintPreviewEvent for better control over the print output.

 

 



Flexicious 3.0 Release - Dashboard and Charting Edition

clock May 21, 2013 06:47 by author Flexicious

Update : We have updated the demo to include the components shown below : http://www.flexicious.com/Home/Dashboard 

So the Flexicious Dashboard Framework started off as a little bit of an underdog eclipsed by the larger shadow of Ultimate. Ultimate has been our best selling and most successful product, but slowly and surely, Dashboard is catching up. It is one of those things that gets our development team, as well as our customers excited, and gives us a little room to exercise our creative/user experience muscles a little bit, something that we sorely missed while working on Ultimate. There’s only so much jazz you can add to a datagrid. But with a dashboard framework, it opens up a whole new arena for creative innovation. So that said, Introducing for the first time in the history of Flex…..

A full-fledged, Spark Based, Completely Skinnable, and extremely light weight Charting Framework. Most of you are familiar with our vast array of data visualization tools like the TinyCharts, the Gauges, the Stop Lights, Bullet Charts, Sparklines, and the like. Our goal is simple – the Flex Charts are very well built, and they are very feature rich. However, they are not spark based, and they are quite heavy. Our goal with the Flexicious Dashboard Framework Charting Library has been to maintain that level of Features, while at the same time leveraging the Skinning Aspects from Spark, while at the same time keeping the Charts extremely light weight. For this release, we focused on feature parity with the SDK charts. And this in itself is a huge undertaking. Although we are not quite all the way there yet, we have tried to cover the vast majority of use cases that most people encounter. Our next step will be obviously getting as close as we can to full feature parity. But wait, we could not simply offer you what’s in the sdk already, that would be so bland. So, in addition to all the basic SDK Charts, you have .. Durmroll please….. 3D Pie Charts! 3D Bar and Column Charts! What is that? You want more? 3d Pyramid Charts… You thought that was all? 3d Funnel Charts… This is in addition to all other charts- Line, Area, Bubble, CandleStick, HLOC, Plot, MultiSeries, Zoom Charts, AND, all of this in an extremely lightweight, Spark based package. Oh – and please – keep sending us your feedback. Some of you have sent us screenshots of stuff you have done with our dashboards and it is FANTASTIC! One of the reasons we invested so much into the Dashboard Framework is because of the enthusiasm you have shown in using and adopting it, and are building great things with it. Below is a quick rundown of the new components, with  screen shots for some eye candy.

    A native Flex 3d Pie Chart:  The great thing about this is that it draws in an elliptical manner, so unlike our old TinyChart, it can fit in an area that is not necessarily square, which makes it usable in may more places.

 

3d Column & Bar Charts: Full featured 3d Column and Bar Chart with support for Stacked, Clustered, 100% and Overlaid chart types.

 

Area Charts: 

 

Line Charts: Line charts with support for segment, step, vertical, horizontal and reverse step line modes.

 

Bubble, HLOC, CandleStick and Plot Charts! 

 

A 3D Pyramid component:

 

 

A 3D Funnel component:

 

 

Zoom Based Google Finance like Charts:

 

 

 

API Changes:


There are way too many API changes (since most of these charts come with their own API), to list here, but following are some other API changes not related to charts:
 Renamed the dropIndicator to resizeIndicator. So if you have custom skins, you might need to modify it as such:
<s:Rect id="dropresizeIndicator" left="0" right="0" height="1" bottom="0" visible="false"  includeInLayout="false">
There should be a new dropIndicator:
<container:DashedBorderContainer id="dropIndicator" left="0" right="0" height="1" bottom="0" visible="false"  includeInLayout="false">. The new sample code contain this. 

Here is the updated skin:

DashboardSkin.mxml (12.35 kb)

This generates a nice drop area like the below when you drag and drop:

 



Flexicious 3.0 Release - Flex Spark Charts with Skinning Support

clock May 21, 2013 06:46 by author Flexicious

Flex Spark Charts with Skinning Support – New with Flexicious 3.0

The Spark Architecture was among the best things that could have happened to Flex. With the old Halo architecture, it was right out painful to customize the look and feel of the components that shipped with the SDK. Most of our customers who use the Dashboard Framework realize the benefits of Spark. If you look at our examples, the same basic component (DashboardContainer and Dashlets) can now be used with Horizontal, Vertical, Basic, Tile as well as custom scrollable layouts. Most of you don’t even realize this because it is all under the hood, but this is BIG DEAL! We have been working with a number of our customers to create dashboards for them via our consulting services; it is beyond amazing how much the Spark Architecture has simplified implementing the multitude of custom requirements that are presented to us in terms of layout and user experience.

So, with that said, we wanted to extend the same flexibility to the Charting Framework. Most of you know since Adobe donated the SDK to Apache, not much work has been done on the Charting components. This is such a shame, because the Charting piece can be simplified by orders of magnitude by using the Spark Architecture. Currently if you have to modify the axes, or change the layout of your charts you have to jump through numerous hoops and some requirements are flat out impossible. Well, say hello to Spark Based, fully Skinnable Flexicious SPARK CHARTS!!

Our initial goal was to get at feature parity with the MX Charting toolset. We did not realize this upfront, but this is a HUGE undertaking. Nevertheless, we were able to get 95% of the way there. There are always some edge cases that very few people actually use, but if it turns out we need to add those features, we will. Below are the list of charts, and here is a link to some screenshots  : http://blog.flexicious.com/post/Flexicious-30-Release-Dashboard-and-Charting-Edition.aspx

Bar Charts

  • Clustered
  • Stacked
  • Overlaid
  • 100%
  • Regular and 3D

Column Charts

  • Clustered
  • Stacked
  • Overlaid
  • 100%
  • Regular and 3D

Area Charts

  • Line Chats
  • Segment
  • Step
  • Vertical
  • Horizontal
  • Reverse step line

Pie Charts

  • Regular
  • 3D Pie

Pyramid Charts

  • Regular and 3D

Funnel Charts

  • Regular and 3D

Bubble Charts

  • Plot Chart
  • HLOC Chart
  • CandleStickChart
  • CandleStickChart

Zoom Slider (Google Finance Type) chart

So, we went ahead and implemented most of the SDK charts, and went above and beyond the stock charts with the addition of things like the 3D pie, pyramid funnel and 3d regular charts that are not in the SDK. And we wanted to keep going, but figured at this point we had enough for a release. This will continue to grow, and we are hoping to build the best charting library Flex has ever seen. We are already working on some more advanced visualizations, but we wanted to get parity with MX first.

These are exciting times; we are very invigorated by the demand for our Dashboard product suite. If you have a flex application, there is no reason for you to not use our Dashboard Product to deliver a STUNNING first impression on your clients and stakeholders.



Flexicious 3.0 Release - Flex/Air Mobile DataGrid, Charting and Data Visualization

clock May 21, 2013 06:45 by author Flexicious

 Flexicious 3.0 Release - Flex/Air Mobile DataGrid, Charting and Data Visualization

          As most of you know, the SDK datagrids are not optimized for mobile. Adobe actually recommends not using it in mobile. However, many of our customers have a need to render datagrids in mobile applications. We have been wanting to get Ultimate to meet this requirement for a long time, and finally, in this release, we have included the first steps of this effort.. We did a lot of work on styles, themes, and a lot of the basic plumbing level work to get the grid to render on mobile. We have included a number of skins in the sample code that look GREAT on mobile applications. Mobile has become an area of huge momentum in flex, and our goal is to provide you with the same sort of polished component set for mobile that you are used to on the desktop. This release represents the first steps that we are taking towards that goal. We are now focusing on a lot of performance related work effort, as well as better support for some touch interaction. Right now however, we have bigger buttons, a styled scrollbar, and icons and skins that look good on a mobile experience. There is still work to be done, we need to add better support for touch events, and improve performance, but we wanted to get this out as soon as we could.. Here is a little eye candy:

 

In addition to making Ultimate mobile friendly, we have put in a lot of work in making the dashboard components mobile friendly. A lot of work has gone in to get this far, and we are investing heavily on this front. The Dashboard product complements mobile development very well, because they are ideally suited for information consumption and presentation that mobile devices are built for. Below are a few screenshots:

  1. Download the above samples from (choose appropriate)
  1. In Flash/Flex Builder, click on File -> Import, and choose the file(s) you downloaded in step 1.
  2. In the LIBS folder, place the your copy of the licensed swc
    • For Ultimate you will just need to place UltimateLib swc into your libs folder.
  3. For Ultimate, navigate to the src->TreeGrid.mxml (UltimateMobile.mxml for mobile), right click on it, and Debug or Run Application. Please note, Ultimate samples automatically load the html documents associated with the explanations. In some browsers, this may lead to a security error like below:
    • SecurityError: Error #2060: Security sandbox violation: ExternalInterface caller file:///C:/Users/YourUserName/Downloads/trials/FlexiciousUltimateFlex4Trial/bin-debug/TreeGrid.swf cannot access file:///C:/Users/YourUserName/Downloads/trials/FlexiciousUltimateFlex4Trial/bin-debug/TreeGrid.html.
    • If you encounter this error, click on dismiss all, and then on the flash area of the browser, Right Click -> Global Settings -> Advanced -> Trusted Location Settings -> Add -> Add the folder above (The one where the swf is located).
  • For Dashboard,
    • For 3.0 and above, you will need to import the DashboardShared project, as well as either the DashboardDesktop or DashboardMobile (or both) projects into Flash Builder. Then, drop the ClassicLib swc (or UltimateLib) as well as the DashboardLib.swc in libs folder for DashboardShared, and the DashboardLib.swc in to the libs folder for DashboardDesktop or DashboardMobile (or both). You should then be able to run the ComponentSample.mxml application (or MobileDashboard) via Right Click -> Run As.


Introducing the HTMLTreeGrid, Render Hierarchical/Nested as well as Flat Data in JQuery, DOJO, and Sencha EXT-JS based HTML5/JavaScript RIA Apps like never before!

clock May 21, 2013 06:44 by author Flexicious

Introduction To HTMLTreeGrid

The HTMLTreeGrid is a Jquery, EXTJS and DOJO based TreeGrid component designed to render highly complex, Hierarchical/Nested as well as Flat Data in Line Of Business RIA applications. Out of the Box, it enables you to leverage a vast spectrum of features, like Inline Filters, Summary Footers, Fully Customizable Server/Client Paging, DataGrid Print, Excel Export, Word Export, and User Settings Persistence, Smooth Scroll, Nested hierarchical Tree/Child grids, Right Locked columns, and built in Lazy Load support. It is built in support for numerous use cases and scenarios. It has support for flat as well as rich support for various forms of nested and hierarchical data, including columns per level, tree based grids as well as nested/sub grids, inline detail panels within grid rows, and more. It Ships with 10 professional, easily customizable themes.

Introduction

The HTMLTreeGrid is a JavaScript port of the Flexicious ultimate DataGrid, which is the most powerful DataGrid component available for flex application development. For those of you who are not familiar with flex, Flex is a highly productive, open source application framework for building and maintaining expressive web applications that deploy consistently on all major browsers, desktops, and devices. It provides a modern, standards-based language and programming model that supports common design patterns suitable for developers from many backgrounds.

Why HTMLTreeGrid?

Built on the shoulders of giants: There is a flavor of the HTMLTreeGrid built on top of the excellent JQuery, DOJO, and EXT-JS libraries/frameworks. HTMLTreeGrid leverages the underlying framework for a lot of things like dialog boxes, date pickers, item editors, as well as core concepts like component lifecycle management, display list management, event handling framework, and more. By leveraging the framework features for a lot of these dependencies, not only do we reduce the footprint of our CodeBase, but also make it easier for our customers to integrate our product into their systems, while at the same time benefiting from the many man months of effort that goes into developing these framework pieces.

A Feature set unmatched by any: Although these frameworks offer a DataGrid component of their own, none of the available DataGrid components offer all the features that are available in the HTMLTreeGrid in a unified API. The HTMLTreeGrid was specifically designed to handle very complex use cases that involve hierarchical data as well as complex interactions you can perform with such data sets. Some of the examples of such interactions include lazy loading child records that each hierarchical level, recursive selection, selection cascading and bubbling, virtual scroll, built-in support for drill up and drill down, built in support for in-line detail panels, in addition to integrating with regular DataGrid features like in-line filtering, paging, multiple columns sort, grouped as well as left and right locked columns, row span and column span, a number of selection modes like cell, row , multiple cell, multiple row, as well as customizable programmatic cell backgrounds contents borders and colors. The complete list of features is way too long to cover in this single blog post so please look at the features and the demos to get an idea of what's possible.

Highly Optimized: Rendering complex component inside flash player is significantly more resource intensive than rendering a similar amount of DOM Elements or table cells in a browser. Consequently the code that HTMLTreeGrid is based upon is significantly more optimized than some of its counterparts primarily because it has to function inside the flash player VM and perform well. This is why we have gone to great lengths to optimize every single piece of the rendering mechanism. We recycle renderers as you scroll in both directions horizontal as well as vertical. We draw just the visible area for all the sections of the DataGrid including headers footers filters the toolbar as well as the data area. This makes it possible for us to render very large record sets in a very short period of time.

Enterprise Ready, Proven, and Robust: Since the HTMLTreeGrid has its roots in the Flexicious ultimate flex DataGrid, it automatically inherits years and years of development, testing, refining as well as the level of robustness that comes from being used in the most demanding enterprise applications ever built. For years flex has been the application development framework of choice for large organizations especially with the Java J2EE stack. There is good reason for it, because a number of the concepts that have been developed in the flex ecosystem make it a very attractive option as the UI technology of choice for large-scale applications. HTMLTreeGrid benefits from inheriting all of these underlying concepts that are baked into its architecture.

Laser Sharp Focus: As a company, we have been making a living for years by providing our customers with the most powerful Flex DataGrid component money can buy. Today we are bringing that same level of polish to flex developers moving to JavaScript as well as JavaScript developers in general. We have a team of very talented developers and designers who have thought about the DataGrid component more than what should be considered healthy. We have pondered over use cases, argued over user interaction schematics, listened to our customers, refined and improved our product on basis of what their requirements are,  and relentlessly refactored, redesigned and redeveloped features until they achieve perfection. We're committed to constantly improving our product in pursuit of the highest level of quality.

Below is a screenshot of the HTMLTreeGrid running inside a DOJO application. You can find out more information about HTMLTreegrid at HTMLTREEGRID.COM

For those of our customers who are coming to us from a flex background, we welcome you to the world of JavaScript and hope to make the transition as seamless and effortless as possible. For those of our customers who are coming to us from a pure JavaScript background, we invite you to see what you've been missing in the wonderful world of flex development. With HTMLTreeGrid, we are bringing together the best of both worlds in one package.