10

APEX Plugin – Ext JS Tree (Coming very soon)

This is a sneak peek at a new Ext JS tree plugin which I’ve developed. I’m in the final stages of packaging it and producing the demo’s and documentation so it will be available for download on apex-plugin.com very soon.

So what features does the plugin offer?

  • AJAX enabled with the choice of loading the entire tree in one call or on node by node expanding
  • Search: Dynamic filtering of the tree contents
  • Expand & Collapse buttons
  • Drag & Drop Reordering Support
  • Tree Label Editing
  • Checkbox Nodes with state saving using an existing APEX item
  • Context Menu Support (from SQL Query)
  • Cookie based state saving for expanded nodes.
  • Order by “Display Sequence” support
  • Fully integrated into dynamic actions. Bind click, drag & drop, edit complete, expand, collapse, context menu selection etc. events
  • In it’s basic form opens URL targets
  • Tree config is fully customizable
  • Support for node by node custom config, e.g. enableDrag = false
  • Full support for replacing substitution strings (label, help text, url, etc)
  • Custom icon support
  • Help text support
  • Supports unlimited tree’s on a single page

The plugin takes the following list of 10 parameters:

With the event support you can create dynamic actions to process tree events. This means that it’s simple to refresh reports, perform AJAX callbacks to process the reordering of nodes, or label edits, or filtering of reports based on check box selections.

The hidden gem is the context menu. The context menu can be generated just like the tree in an object hierarchy from a single SQL statement. This means that you can have multi navigational capabilities, or filtering. Here’s one example of using a date picker within the context menu….

and if you’re using 11g and you need a complex context menu with datepicker, radio items, combo support, you can define your context menu query based on a table/view which has a parameter and value column like this…

SELECT id           menu_id
,      pid          menu_pid
,      display_seq  display_seq
,      LISTAGG('<'||parameter||'>'||parameter_value||'</'||parameter||'>', ' ')
         WITHIN GROUP (ORDER BY parameter) xmlconfig
FROM   af#tree_context_menu
GROUP BY
       id
,      pid
,      display_seq

Your parameter values can be (sub)JSON objects I’ll take care of turning the entire resultset into a JSON object hieararchy with the aid of “dbms_xmlgen.newcontextfromhierarchy” and XSLT.

P.S. This is just the first Ext plugin in the series, with more coming soon.

  1. Hi Matt,

    that’s looking really good, can’t wait to test-drive this Plugin.

    Peter

    • mnolan says:

      Thanks Peter, I’ve tried to cram in as much functionality as possible to make it really versatile and easy to use. I’m hoping to have it ready next week.

      P.S. everythings going to be a plugin soon. It’s addictive ;)

      Cheers
      Matt

  2. Patrick Wolf says:

    Hi Matt,

    looks really nice!

    BTW, if you want to safe one of your plug-in attributes for future use (as you know you can never have enough :-) ), I would suggest to define the “Ex JS Source Directory” attribute as “application scope”. I think that setting will be the same for all trees in an application.

    Regards
    Patrick

    • mnolan says:

      Hi Patrick

      Thanks, I’m loving plugin development, the possibilities are just expanding day by day the more work I do. I’m hoping to focus on it full time next month after my current project winds up… I’ve become a plugin junkie ;) See what you’ve done!

      Thanks for the tip, I’ll definitely be making the change.

      P.S. any chance for 4.1 in the “page classic view” which shows [Plug-in] you can wrap an hyperlink around it? I’m still using this view mostly… old habits die hard… and it will save a few valuable mouse clicks have to go through “shared compnents -> plugins ->

      Cheers
      Matt

  3. Tobin says:

    Do we need to have ExtJs license to use your plugins?
    Thanks.

    • mnolan says:

      Hi Tobin

      Correct, you’ll need a valid Ext JS license to use the plugin. Plus you will also need to purchase an appropriate license for my APEX plugin when it’s released.

      Cheers
      Matt

  4. Johannes de Jong says:

    Hi Matt,

    Any ideas when it will be published & what the cost of the license will be?

    Kind regards

    Johannes

    • mnolan says:

      Hi Johannes

      It should be ready next week, I was probably a bit premature in posting because I was quite excited about the plugin… as holidays, customer work, and documentation has slowed me down.

      Licensing wise it will be similar in price to the file upload plugin.

      Cheers
      Matt

  5. Jacob says:

    Where can i find this plugin?

    it looks very nice, and i would like to get it..