A number of the experts on the exchange use a series of UI extensions to provide shuttle and data entry controls. They are written in java but project a tcl interface that makes them fairly straightforward to use. You may find them useful or you can use the same technique to construct your own.
The UI extensions include:
- Capture data input in a table (oracle.owb.jexpert.DataEntryTable)
- Information selection and ordering (oracle.owb.jexpert.ShuttleObjects)
- Display info in table, action them (oracle.owb.jexpert.ActionTable)
The Shuttle
Invoke this example as;
set selection [java::call oracle.owb.jexpert.ShuttleObjects getSelection "Select dimension levels" "Select columns to identify levels:" "Columns:" "Levels" {"PROD_ID" "PROD_NAME" "PROD_DESC" "CAT_ID" "SUBCAT_ID"}]

The select items will be returned in the variable 'selected', they will be in the order the user has defined. The above returns;
Data Entry Component
This dialog allows information to be collected from the user via a table. In the dialog below, dimension attributes plus the type to level attribute (applicability) to column binding is captured in one dialog (used in the create dimension from expert).
The tcl to invoke this dialog is;
set rowheader {"Attributes/Levels" "Usage" "CATEGORY" "SUBCATEGORY" "PRODUCT"}
set thedata {{"DESCRIPTION" "Standard" "CAT_DESC" "SUBCAT_DESCRIPTION" "PRODUCT_DESC"} {"" "Standard" "" "" ""}}
set avail_cols {"" "CAT_ID" "CAT_DESC" "CAT_INFO" "SUBCAT_ID" "SUBCAT_DESCRIPTION" "PRODUCT_ID" "PRODUCT_DESC"}
set selection_model {{} {"Standard" "Long Description" "Short Description" "Effective Date" "Expiration Date"} }
set selection_model [linsert $selection_model 2 $avail_cols]
set selection_model [linsert $selection_model 3 $avail_cols]
set selection_model [linsert $selection_model 4 $avail_cols]
set data_result [java::call oracle.owb.jexpert.DataEntryTable {getdata java.lang.String java.lang.String tcl.lang.TclObject tcl.lang.TclObject tcl.lang.TclObject} "Level Attribute-Column Details" "Bind attributes to columns:" $rowheader $thedata $selection_model]

The dialog returns {DESCRIPTION Standard CAT_DESC SUBCAT_DESCRIPTION PRODUCT_DESC} {{} Standard {} {} {}} into the variable data_result.
This control also supports copy-paste, so results can be copied from and to the table. So for example it is also possible to copy from a series of cells in Excel into this dialog to quickly construct objects.

Alternatively the construction of the dialog can be like the following where the columns listed in column 1 are all of the columns excluding the level identification columns, and there will be a default stating all columns will be attributes of the leaf (EMP for example).
set rowheader {"Columns/Levels" "Usage" "DEPT" "EMP"}
set thedata {{"GENDER" "Standard" "false" "true"} {"MARITAL_STATUS" "Standard" "false" "true"} }
set avail_cols {"false" "true"}
set selection_model {{} {"Standard" "Long Description" "Short Description" "Effective Date" "Expiration Date"} }
set selection_model [linsert $selection_model 2 $avail_cols]
set selection_model [linsert $selection_model 3 $avail_cols]
set data_result [java::call oracle.owb.jexpert.DataEntryTable {getdata java.lang.String java.lang.String tcl.lang.TclObject tcl.lang.TclObject tcl.lang.TclObject} "Level Attribute-Column Details" "Columns-Level applicability:" $rowheader $thedata $selection_model]
The result of the dialog is a TclList with the selections;

Action Table
This control is for when you use OWB to get a list of objects (for example results of a search) and display this list and allow a set of actions to be performed on them.
set rowheader {"Name" "Description" "Path" "My Funky Info"}
set displaydata { {"DATA_0" "Cube for DATA_0" "//OSA_PROJECT/OWBEXP_TGT/DATA_0" ""} {"LOAD_0" "Load Cube Map Sample" "//OSA_PROJECT/OWBEXP_TGT/LOAD_0" ""}}
set idref {{"CUBE" "//OSA_PROJECT/OWBEXP_TGT" "DATA_0"} {"MAPPING" "//OSA_PROJECT/OWBEXP_TGT" "LOAD_0"}}
set buttons {{"Edit" "OMUALTER"} {"Properties" "OMUPROPERTIES"} {"Lineage" "OMULINEAGE"} {"Cancel" java::null}}
java::call oracle.owb.jexpert.ActionTable displayTable "Search Results" "Object matches" $rowheader $idref $displaydata $buttons

In Summary
These are sample extensions that are supplied via the owb/lib/ext directory in the OWB client and are useful for providing controls for some fairly common UI actions.