Opened 5 years ago

Closed 5 years ago

Last modified 2 years ago

#9356 closed enhancement (fixed)

Move dojox.form._HasDropDown to dijit

Reported by: toonetown Owned by: toonetown
Priority: low Milestone: 1.4
Component: Dijit Version: 1.3.0
Keywords: Cc: bill
Blocked by: Blocking:

Description (last modified by bill)

The following things need to happen:

1 - Rename and flag as protected the following members:

dropDownNode -> _buttonNode
aroundNode -> _aroundNode
popupStateNode -> _popupStateNode

2 - Remove _onMenuMouseup from _HasDropDown
3 - Move the dijit.Menu-specific handling code from dojox.form.DropDownSelect into _HasDropDown
4 - Move _HasDropDown to dijit._HasDropDown, and create a stub (deprecated) in dojox.form (in case anyone is using it)
5 - Upgrade the following dijit components to use _HasDropDown instead of their current code:

dijit.form.DropDownButton
dijit.form.ComboButton (extends from DropDownButton)
dijit.form.ComboBox
dijit.form.FilteringSelect (extends from ComboBox)
dijit.form._DateTimeTextBox
dijit.form.DateTextBox (extends from _DateTimeTextBox)
dijit.form.TimeTextBox (extends from _DateTimeTextBox)

6 - Cross fingers and wait for breakage reports to come in :)

Attachments (1)

DDSMigration.patch (139.6 KB) - added by toonetown 5 years ago.
Patch which does the first 4 of these tasks (and also move dojox.form.DropDownSelect to dijit.form.DropDownSelect)

Download all attachments as: .zip

Change History (20)

comment:1 Changed 5 years ago by toonetown

  • Description modified (diff)

comment:2 Changed 5 years ago by bill

(In [17647]) Comment format/content update as per explanations from toonetown. Plus a few TODO/TODOC's.

Refs #9356 !strict

Changed 5 years ago by toonetown

Patch which does the first 4 of these tasks (and also move dojox.form.DropDownSelect to dijit.form.DropDownSelect)

comment:3 Changed 5 years ago by toonetown

(In [19071]) Refs #9356 - initial 4 steps towards completing the migration of DropDownSelect/_HasDropDown to dijit !strict

comment:4 Changed 5 years ago by toonetown

(In [19305]) Refs #9356 - do step 5 for DropDownButton and ComboButton

comment:5 Changed 5 years ago by liucougar

(In [19511]) refs #9356: fixed broken ComboButton
popupStateNode is renamed to _popupStateNode in ComboButton in r19305

comment:6 Changed 5 years ago by bill

(In [19519]) just saving a few bytes, refs #9356 !strict.

comment:7 Changed 5 years ago by bill

(In [19523]) Correctly account for page scroll when testing if the drop down menu has appeared over the drop down button, and the user has moused-up w/out moving off of the button. (BTW this can be tested on test_Button.html by making the browser window very short and then scrolling down to the first row of buttons)

Also switching from dojo.coords() to dojo.position().

Refs #9356, #9648 !strict

comment:8 Changed 5 years ago by bill

(In [20034]) Add DropDownSelect test to suite, refs #9356.

comment:9 Changed 5 years ago by toonetown

  • Resolution set to fixed
  • Status changed from new to closed

Closing this as fixed - a separate bug will be opened for the migration of combobox, filtering select, and date/time text boxes. I don't want to destabilize those so close to 1.4...

comment:10 Changed 5 years ago by bill

  • Description modified (diff)

New ticket is #9945.

comment:11 Changed 5 years ago by becky

(In [20238]) refs #9356 updated with more appropriate aria roles and states. Updated the test file to include label elements for accessibility.

comment:12 Changed 5 years ago by bill

(In [20283]) Regression from [20238], need to define jsId=testDisabled for the DOH test to run. Plus fixed some typos.
Refs #9356.

comment:13 Changed 4 years ago by bill

(In [20822]) Updating comments, refs #9356 !strict.

comment:14 Changed 4 years ago by bill

(In [20944]) Add dijit.form.Select to themeTester, plus adding some menu items for memory leak testing and theme switching. Refs #9356.

comment:15 Changed 4 years ago by bill

(In [20945]) On second thought, put dijit.form.Select in a new tab, since it can't qualify as a "text input widget". And put ComboBox in the new tab too, so Select isn't lonely.

Also splitting Editor into a separate tab.

Refs #9356.

comment:16 Changed 4 years ago by bill

(In [21018]) Missing dojo.require() calls. These are loaded anyway via dijit-all.js but it's proper to have the dojo.require() calls. Refs #9356

comment:17 Changed 4 years ago by bill

(In [21203]) Don't orphan the drop down widget from the DOM tree; it causes TooltipDialog to prematurely load it's href (before the widget is visible), and also possibly other obscure problems, like if the app has dojo.query() code that runs on page load, and expects to find nodes in the drop down widget.

Fixes #10652, refs #9356 (the code which prevents the orphaning was removed in [19305] but I'm not sure why), !strict.

comment:18 Changed 4 years ago by bill

(In [22603]) Undo() is inherited from _FormValueWidget, no need to repeat the definition in _FormSelectWidget. Refs #9356 !strict.

comment:19 Changed 2 years ago by bill

In [27461]:

Add back dijitDropDownButtonOpened class that used to be written before the conversion to use _HasDropDown, fixes #14524, refs #9356 !strict.

Note: See TracTickets for help on using tickets.