Ext.ux.grid.RowActions Plugin Updated for Ext 4.0.2

We use the RowActions extensively throughout our application, especially the group actions thus the ActionColumn that was introduced with Ext 4 didn't fulfill our needs. I don't know if Saki was planning an update and I didn't see anyone else post anything about it, so I'm going to go ahead and share what I've done. There are two things that I ran into that I think may need to be fixed in the new Ext.grid.ColumnLayout and Ext.grid.plugin.HeaderResizer. I've included overrides but they are not absolutely critical for the plugin to function, just to function as we expected it to and render identically to Ext3.

The override for ColumnLayout specifically excludes items marked as "fixed" (aka not resizable) from changing to flex. This now works the same as Ext3 grid and allows the autoWidth of the rowActions to size the column correctly.

The override for the HeaderResizer does two things:

1) Adds :not([fixed]) to the selector, it is looking for the next header to add or remove space from, but we don't want it to change the size of fixed columns.

2) Changed it from nextNode to just next to prevent it from grabbing a column that is not on this grid.

2011-06-16
- Updated to fix problems with IE and Firefox rendering, it seems to work across all browsers now. But then again I'm tired so I may have missed something.
- Updated again, fixed the cell renderer to append to cell.tdCls now instead of cell.css, also fixed the keepSelection option. I moved the click event on rowactions to override the "processEvent" function from Ext.grid.column.Column. There is still more i'd like to clean up (give them all a unique id when referencing the callbacks for example so we don't have issues with reusing icon classes).

2011-06-17
- Small breaking update but I think it's worth it, the row actions are no longer a plugin. You can create them directly within the column model now with the component config (xtype: 'rowactions').
- Ok last update, I modified it so the actionEvent is respected again (you can have the actions work on mouseover or double click or regular click) also cleaned up the documentation. Tested in Chrome, Safari, Firefox, IE8 and IE9.

2011-06-21
- Fixed a small problem when you only had one row action in the column the header resizer would be larger than the column width causing render issues. minWidth will now default to the minColSize on Ext.grid.plugin.HeaderResizer
- Added example and download links

It's great that you are keeping a plugin updated but can I make one suggestion? I would keep one thread per plugin/extension/etc. This way when people search for something they don't come across 5 different threads and now they have to decide which they should use.

What I do is keep "release notes" at the bottom and then update the title to include what version it currently is working with.

Thanks for the feedback. Unfortunately I can't update the original thread as I'm not the original author. Also because of how the forums are structured and split into the different version of ext (this one is under Ext JS Community Forums 4.x) it only made sense to make a new thread here because people simply browsing or searching a specific forum would never find it if they wanted something that worked with Ext 4.

Perhaps you misunderstood because I specifically put 4.0.2 in the title? I ported this from an Ext3 extension, this isn't an update to something else in this forum, that just happens to be the only version I tested against and what version I've made the overrides for the broken column sizing for.

Migrate extendions and plu ins

I tried to migrate some Nice ux and plugins. With no success. A bridge too far for me. I know 3.0 uxes are made by great people like saki. But who is migrating thes
I'm talking especially about HttpProvider, cellactions, rowactions

How to handle metachange event with rowactions plugin

Do you also have a suggestion how to handle this plugin within the metachange event where a reconfigure of the grid must be done (all headerCt's are removed) and new columns must be created (Ext 4.0.7.)? When I re-use the reference to the plugin (the instatiated rowaction plugin is also added to the grid plugins), I get the message that the headerId is already used as a warning within the firebug console ('Ext.grid.header.Container attempted to reuse an existing id h1': ext-all-dev.js: line 116777). I also tried to remove the plugin in the metachange event with:

Issue when removing grid from a panel (SOLVED)

EDIT: The below issue has been resolved. In rowactions there is a line which calls me.purgeListeners which has been deprecated in 4.0.7 (and I assume going forward) and should be replaced with clearListeners

old way

Code:

me.grid.on('destroy', me.purgeListeners);

new way

Code:

me.grid.on('destroy', me.clearListeners);

HERE IS MY ORIGINAL ISSUE ------

I am experiencing an issue with rowactions. It seems to cause an error on destroy.
My application looks like this: