Use Fdx1.utl // FDX aware display global attributes (FDX_DisplayGlobalAttributes procedure) Use Fdx2.utl // FDX aware object for displaying a table definiton Use Fdx3.utl // FDX aware cFileList_List selector class Use SetFiles.pkg // Class for displaying the contents of a cSetOfFiles object Use GridUtil.utl // Grid and List utilities Use FDXSet.vw // Display contents of cSetOfFiles cSetOfFieldsUse FDXSet.vw // Display contents of cSetOfFiles cSetOfFields #IFDEF IS$WINDOWS object oFdxDisplayGlobalAttributes is a aps.View label "Global attributes" on_key kcancel send close_panel set Border_Style to BORDER_THICK // Make panel resizeable object oLst is a cFdxGlobalAttrGrid set peAnchors to (anTop+anLeft+anBottom+anRight) set peResizeColumn to rcAll end_object object oBtn1 is a aps.Multi_Button on_item "Folders" send Activate_Directory_Contents set peAnchors to (anBottom+anRight) end_object object oBtn2 is a aps.Multi_Button on_item t.btn.close send close_panel set peAnchors to (anBottom+anRight) end_object send aps_locate_multi_buttons procedure OnChangeFDX local integer oFDX# move (fdx.object_id(0)) to oFDX# send fill_list.i to (oLst(self)) oFDX# set dynamic_update_state of (oLst(self)) to true end_procedure send DFMatrix_Vw_Register WAY_GLOBAL_ATTRIBUTES_VW self end_object // oFdxDisplayGlobalAttributes send aps_SetMinimumDialogSize (oFdxDisplayGlobalAttributes(self)) procedure Activate_Global_Attributes send popup to (oFdxDisplayGlobalAttributes(self)) end_procedure object oFdxDisplayFileAttributes is a aps.View label "Table definition" property integer piFDX_Server public 0 property integer piMain_File public 0 property integer piIndex public 1 on_key kcancel send close_panel on_key key_ctrl+key_d send DoDisplaySelector set Border_Style to BORDER_THICK // Make panel resizeable procedure DoDisplaySelector send Activate_Table_Selector end_procedure object oTabs is a aps.TabDialog set peAnchors to (anTop+anLeft+anBottom+anRight) object oTab1 is a aps.TabPage label "Fields" set p_Auto_Column to false object oFields is a cFDX.Display.FieldList set size to 160 0 set peAnchors to (anTop+anLeft+anBottom+anRight) set peResizeColumn to rcAll end_object end_object register_object oIndexFields object oTab2 is a aps.TabPage label "Indices" object oIndexNo is a cFDX.Display.IndexList set size to 160 0 set peAnchors to (anTop+anBottom) set peResizeColumn to rcAll procedure item_change integer from# integer to# returns integer local integer rval# forward get msg_item_change from# to# to rval# set piIndex to (rval#+1) send fill_list to (oIndexFields(self)) send display_info procedure_return rval# end_procedure end_object set p_auto_column to false object oIndexFields is a cFDX.Display.IndexSegmentList set peAnchors to (anTop+anLeft+anBottom+anRight) set peResizeColumn to rcAll set size to 160 0 end_object object oFrm1 is a aps.Form label "Key length:" abstract aft_numeric4.0 snap sl_right_space set peAnchors to (anTop+anRight) set object_shadow_state to true end_object object oFrm2 is a aps.Form label "Levels:" abstract aft_numeric4.0 snap sl_down set peAnchors to (anTop+anRight) set object_shadow_state to true set label_offset to 0 0 set label_justification_mode to jmode_right end_object object oFrm3 is a aps.Form label "Batch:" abstract aft_ascii4 snap sl_down set peAnchors to (anTop+anRight) set object_shadow_state to true set label_offset to 0 0 set label_justification_mode to jmode_right end_object procedure display_info local integer idx# attr# local integer file# fdx# get piMain_File to file# get piFDX_Server to fdx# get piIndex to idx# move (FDX_AttrValue_INDEX(fdx#,DF_INDEX_KEY_LENGTH,file#,idx#)) to attr# set value of (oFrm1(self)) item 0 to attr# move (FDX_AttrValue_INDEX(fdx#,DF_INDEX_LEVELS,file#,idx#)) to attr# set value of (oFrm2(self)) item 0 to attr# move (FDX_AttrValue_INDEX(fdx#,DF_INDEX_TYPE,file#,idx#)) to attr# if attr# eq DF_INDEX_TYPE_ONLINE set value of (oFrm3(self)) item 0 to "No" else set value of (oFrm3(self)) item 0 to "Yes" end_procedure end_object object oTab3 is a aps.TabPage label "Attributes" object oOther is a cFDX.Display.FileOtherList set size to 160 0 set peAnchors to (anTop+anLeft+anBottom+anRight) set peResizeColumn to rcAll end_object end_object end_object object oBtn is a aps.Multi_Button on_item t.btn.close send close_panel set peAnchors to (anBottom+anRight) end_object send aps_locate_multi_buttons procedure OnChangeFdxFile local integer oFDX# file# move (fdx.object_id(0)) to oFDX# get DFMatrix_Current_File to file# set piFDX_Server to oFDX# set piMain_File to file# if (active_state(self)) begin // Only if on screen if (file# and piDataOrigin(oFDX#)<>FDX_EMPTY) begin send fill_list to (oFields(oTab1(oTabs(self)))) set piIndex to 1 send fill_list to (oIndexNo(oTab2(oTabs(self)))) send fill_list to (oIndexFields(oTab2(oTabs(self)))) send display_info to (oTab2(oTabs(self))) send fill_list to (oOther(oTab3(oTabs(self)))) oFDX# end else begin send delete_data to (oFields(oTab1(oTabs(self)))) send delete_data to (oOther(oTab3(oTabs(self)))) send delete_data to (oIndexNo(oTab2(oTabs(self)))) send delete_data to (oIndexFields(oTab2(oTabs(self)))) end end end_procedure procedure popup forward send popup send OnChangeFdxFile end_procedure procedure OnChangeFDX send OnChangeFdxFile end_procedure send DFMatrix_Vw_Register WAY_TABLE_DEFINITION_VW self end_object // oFdxDisplayFileAttributes send aps_SetMinimumDialogSize (oFdxDisplayFileAttributes(self)) procedure Activate_Table_Definition send popup to (oFdxDisplayFileAttributes(self)) end_procedure object oDFMatrix_AdvancedSelect_FM is a FloatingPopupMenu send add_item msg_Activate_SetOfTables "Build set of &tables" send add_item msg_Activate_SetOfFields "Build set of &fields" send add_item msg_Activate_SetOfIndices "Build set of &indices" end_object object oUserSelectTables is a aps.View label "Table selector" set Border_Style to BORDER_THICK // Make panel resizeable set pMinimumSize to 225 0 // Size no less than this on_key kCancel send close_panel procedure DoDisplayDefinition local integer vw# sz# move (oFdxDisplayFileAttributes(self)) to vw# ifnot (active_state(vw#)) begin send Activate_Table_Definition set location to 5 5 get size to sz# move (hi(sz#)) to sz# send aps_onResize (230-sz#) 0 set location of vw# to 235 5 end else send Activate_Table_Definition end_procedure register_object oLst on_key key_ctrl+key_a send select_all_not_bad to (oLst(self)) on_key key_ctrl+key_c send select_none to (oLst(self)) on_key key_ctrl+key_d send DoDisplayDefinition on_key key_ctrl+key_h send select_children to (oLst(self)) on_key key_ctrl+key_i send select_invert to (oLst(self)) on_key key_ctrl+key_l send load_current_selection.browse to (oLst(self)) on_key key_ctrl+key_m send select_master to (oLst(self)) on_key key_ctrl+key_p send select_parents to (oLst(self)) on_key key_ctrl+key_s send save_current_selection.browse to (oLst(self)) on_key key_ctrl+key_g send Activate_Global_Attributes object oLst is a cFdxFileMultiSelector set size to 180 0 set piNo_Alias_State to false set piBad_Entries_State to BAD_ENTRIES_SHADOW set piGeneric_Display_Name_State to true on_key key_ctrl+key_d send DoDisplayDefinition set peAnchors to (anTop+anLeft+anBottom+anRight) set peResizeColumn to rcAll procedure sort.i integer by# forward send sort.i by# send OnChangeFile 0 end_procedure procedure OnChangeFile integer row# if (item_count(self)) begin if (Row_Shadow_State(self,row#)) send DFMatrix_NewFileInSelector 0 else send DFMatrix_NewFileInSelector (Row_File(self,row#)) end end_procedure procedure row_change integer row_from# integer row_to# send OnChangeFile row_to# end_procedure procedure re_order end_procedure procedure update_select_display // This is called automatically by the class local integer selected# total# get File_Select_Count to selected# get Row_Count to total# send select_display selected# total# end_procedure end_object // oLst object oSelectTxt is a aps.TextBox snap sl_right set peAnchors to (anBottom+anRight) end_object set auto_size_state of (oSelectTxt(self)) to true send aps_align_by_moving (oSelectTxt(self)) (oLst(self)) SL_ALIGN_BOTTOM procedure select_display integer selected# integer total# set value of (oSelectTxt(self)) to ("Selected: "+string(selected#)+"/"+string(total#)) end_procedure object oBtn11 is a aps.multi_button on_item "&All" send select_all_not_bad to (oLst(self)) set peAnchors to (anTop+anRight) end_object object oBtn12 is a aps.multi_button on_item "&Clear" send select_none to (oLst(self)) set peAnchors to (anTop+anRight) end_object object oBtn13 is a aps.multi_button on_item "&Invert" send select_invert to (oLst(self)) set peAnchors to (anTop+anRight) end_object object oBtn14 is a aps.multi_button on_item "&Master" send select_master to (oLst(self)) set peAnchors to (anTop+anRight) end_object object oBtn15 is a aps.multi_button on_item "&Parents" send select_parents to (oLst(self)) set peAnchors to (anTop+anRight) end_object object oBtn16 is a aps.multi_button on_item "C&hildren" send select_children to (oLst(self)) set peAnchors to (anTop+anRight) end_object object oBtn17 is a aps.multi_button procedure DoAction send popup to (oDFMatrix_AdvancedSelect_FM(self)) end_procedure on_item "Advanced" send DoAction set peAnchors to (anTop+anRight) end_object object oBtn18 is a aps.multi_button on_item "Show &definition" send DoDisplayDefinition set peAnchors to (anTop+anRight) end_object send aps_register_multi_button (oBtn18(self)) object oBtn19 is a aps.multi_button on_item "&Global attr." send Activate_Global_Attributes set peAnchors to (anTop+anRight) end_object send aps_locate_multi_buttons sl_vertical send aps_goto_max_row send aps_make_row_space 3 object oLine is a aps.LineControl set peAnchors to (anBottom+anRight+anLeft) end_object object oBtn1 is a aps.multi_button on_item "&Load selection" send load_current_selection.browse to (oLst(self)) set peAnchors to (anBottom+anRight) end_object object oBtn2 is a aps.multi_button on_item "&Save selection" send save_current_selection.browse to (oLst(self)) set peAnchors to (anBottom+anRight) end_object object oBtn3 is a aps.multi_button on_item "Close" send close_panel set peAnchors to (anBottom+anRight) end_object send aps_locate_multi_buttons function iCallback_Selected_Files integer get# integer obj# returns integer local integer rval# get iCallback_Selected_Files_Server of (oLst(self)) get# obj# to rval# function_return rval# end_function procedure OnChangeFdx local integer oFDX# lst# move (oLst(self)) to lst# move (fdx.object_id(0)) to oFDX# set piFDX_Server of lst# to oFDX# send fill_list_all_files to lst# set dynamic_update_state of lst# to true send OnChangeFile to lst# 0 end_procedure procedure aps_beautify send APS_ALIGN_INSIDE_CONTAINER_BY_SIZING (oLine(self)) SL_ALIGN_RIGHT end_procedure send DFMatrix_Vw_Register WAY_TABLE_SELECTOR_VW self end_object // oUserSelectTables send aps_SetMinimumDialogSize (oUserSelectTables(self)) procedure Activate_Table_Selector send popup to (oUserSelectTables(self)) end_procedure register_object oList object oListDirectoryContents is a aps.View label "Directory contents" on_key kcancel send close_panel property integer piFDX_Server public 0 set Border_Style to BORDER_THICK // Make panel resizeable object oPaths is a aps.ComboFormAux label "Constrain directory:" set combo_sort_state to false set form_margin item 0 to 60 set entry_state item 0 to false procedure fill local integer obj# itm# max# send Combo_Delete_Data send combo_add_item "All" 0 move (oListDir_SnapShot(piFDX_Server(self))) to obj# get iPath_Count of obj# to max# for itm# from 0 to (max#-1) send combo_add_item (sPath.i(obj#,itm#)) (itm#+1) loop end_procedure procedure OnChange local string path# get value item 0 to path# if path# eq "All" move "" to path# set psConstrainPath of (oList(self)) to path# send fill_list to (oList(self)) end_procedure end_object send aps_goto_max_row object oList is a cSetOfFilesList set size to 196 0 procedure fill_list_start set piSetOfFilesObject to (oListDir_SnapShot(piFDX_Server(self))) send fill_list send fill_other end_procedure procedure display_totals number file_count# number total_bytes# send total_display (SEQ_FileSizeToString(total_bytes#)+" in "+string(file_count#)+" files") end_procedure end_object send aps_goto_max_row object oSelectTxt is a aps.TextBox end_object set auto_size_state of (oSelectTxt(self)) to true procedure total_display string str# set value of (oSelectTxt(self)) to str# end_procedure procedure fill_other // is called from oList object send fill to (oPaths(self)) end_procedure set multi_button_size to 14 80 object oBtn1 is a aps.Multi_Button on_item "Read folders" send DFMatrix_OpenDirectoryContents end_object object oBtn2 is a aps.Multi_Button on_item t.btn.close send close_panel end_object send aps_locate_multi_buttons procedure OnChangeFdx local integer oFDX# move (fdx.object_id(0)) to oFDX# set piFDX_Server to oFDX# send fill_list_start to (oList(self)) end_procedure send DFMatrix_Vw_Register WAY_DIRECTORY_CONTENTS_VW self end_object // oListDirectoryContents procedure Activate_Directory_Contents send popup to (oListDirectoryContents(self)) end_procedure #ELSE // ************* CHARACTER MODE SECTION **************************** /FdxDisplayGlobalAttributes.hdr ÚÄGlobal attributesÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ /FdxDisplayGlobalAttributes.lst ³ _________________________ __________________________________________________ ³ ³ _________________________ __________________________________________________ ³ ³ _________________________ __________________________________________________ ³ ³ _________________________ __________________________________________________ ³ ³ _________________________ __________________________________________________ ³ ³ _________________________ __________________________________________________ ³ ³ _________________________ __________________________________________________ ³ ³ _________________________ __________________________________________________ ³ ³ _________________________ __________________________________________________ ³ ³ _________________________ __________________________________________________ ³ ³ _________________________ __________________________________________________ ³ ³ ³ /FdxDisplayGlobalAttributes.btn ³ _____________ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ /* object oFdxDisplayGlobalAttributes is a app.Client FdxDisplayGlobalAttributes.hdr action_bar (main_menu(self)) set location to 3 0 absolute on_key kcancel send request_cancel object oLst is a cFdxGlobalAttrGrid FdxDisplayGlobalAttributes.lst set location to 2 0 relative end_object object oBtn is a app.Button FdxDisplayGlobalAttributes.btn set location to 14 0 relative item_list on_item t.btn.close send request_cancel end_item_list end_object procedure OnChangeFDX local integer oFDX# move (fdx.object_id(0)) to oFDX# send fill_list.i to (oLst(self)) oFDX# set dynamic_update_state of (oLst(self)) to true end_procedure send DFMatrix_Vw_Register WAY_GLOBAL_ATTRIBUTES_VW self end_object // oFdxDisplayGlobalAttributes procedure Activate_Global_Attributes send activate_scope to (oFdxDisplayGlobalAttributes(self)) end_procedure /FdxDisplayFileAttributes.hdr ÚÄTable definitionÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ /FdxDisplayFileAttributes.hdr_btn Alt+Ä_Ä_Ä_Ä¿ /FdxDisplayFileAttributes.Fields ³ ³ ³ # Name Typ Len OffSet Idx Relation ³ ³ __. _______________ ___ _____ ____. _. _________________________ ³ ³ __. _______________ ___ _____ ____. _. _________________________ ³ ³ __. _______________ ___ _____ ____. _. _________________________ ³ ³ __. _______________ ___ _____ ____. _. _________________________ ³ ³ __. _______________ ___ _____ ____. _. _________________________ ³ ³ __. _______________ ___ _____ ____. _. _________________________ ³ ³ __. _______________ ___ _____ ____. _. _________________________ ³ ³ ³ /FdxDisplayFileAttributes.IndexNo ³ ÿ ³ ___________ ÿ ³ ___________ ÿ ³ ___________ ÿ ³ ___________ ÿ ³ ___________ ÿ ³ ___________ ÿ ³ ___________ ÿ ³ ___________ ÿ ³ ÿ /FdxDisplayFileAttributes.IndexFields ÿ Field U/C Dsc ÿ _______________ ___ ___ ÿ _______________ ___ ___ ÿ _______________ ___ ___ ÿ _______________ ___ ___ ÿ _______________ ___ ___ ÿ _______________ ___ ___ ÿ _______________ ___ ___ ÿ ÿ /FdxDisplayFileAttributes.IndexInfo ³ Index length: ____. ³ ³ Index levels: ____. ³ ³ Batch.......: ___ ³ ³ ³ ³ ³ /FdxDisplayFileAttributes.Other ³ ³ ³ Parameter Value ³ ³ _____________________________ ____________________________________ ³ ³ _____________________________ ____________________________________ ³ ³ _____________________________ ____________________________________ ³ ³ _____________________________ ____________________________________ ³ ³ _____________________________ ____________________________________ ³ ³ _____________________________ ____________________________________ ³ ³ _____________________________ ____________________________________ ³ ³ ³ /FdxDisplayFileAttributes.Btn ³ ___ ___ _____________ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ /* indicate filedef.rotate_up? false object oFdxDisplayFileAttributes is a app.Client FdxDisplayFileAttributes.hdr action_bar (main_menu(self)) set location to 5 7 absolute property integer piFDX_Server public 0 property integer piMain_File public 0 property integer piIndex public 1 property integer piCurrentTab public 0 on_key kcancel send request_cancel on_key key_alt+key_1 send activate_tab1 on_key key_alt+key_2 send activate_tab2 on_key key_alt+key_3 send activate_tab3 on_key key_ctrl+key_pgup send request_previous_tab on_key key_ctrl+key_pgdn send request_next_tab on_key key_ctrl+key_d send DoDisplaySelector procedure DoDisplaySelector send Activate_Table_Selector end_procedure object oHdr_Btn is a Button FdxDisplayFileAttributes.hdr_btn set location to 0 58 relative set focus_mode to pointer_only item_list on_item "1" send activate_tab1 on_item "2" send activate_tab2 on_item "3" send activate_tab3 end_item_list end_object procedure OnActivate integer tab# local integer obj# move (oHdr_Btn(self)) to obj# set value of obj# item 0 to "1" set value of obj# item 1 to "2" set value of obj# item 2 to "3" set value of obj# item (tab#-1) to "" set piCurrentTab to tab# end_procedure procedure request_previous_tab local integer tab# get piCurrentTab to tab# decrement tab# if tab# eq 0 move 3 to tab# if tab# eq 1 send activate_tab1 if tab# eq 2 send activate_tab2 if tab# eq 3 send activate_tab3 end_procedure procedure request_next_tab local integer tab# get piCurrentTab to tab# increment tab# if tab# eq 4 move 1 to tab# if tab# eq 1 send activate_tab1 if tab# eq 2 send activate_tab2 if tab# eq 3 send activate_tab3 end_procedure object oFields is a cFDX.Display.FieldList FdxDisplayFileAttributes.Fields set location to 1 0 relative procedure rotate_up forward send rotate_up send OnActivate 1 end_procedure end_object register_object oIndexInfo register_object oIndexFields object oIndexNo is a cFDX.Display.IndexList FdxDisplayFileAttributes.IndexNo set location to 1 0 relative procedure item_change integer from# integer to# returns integer local integer rval# forward get msg_item_change from# to# to rval# set piIndex to (rval#+1) send fill_list to (oIndexFields(self)) send display_info to (oIndexInfo(self)) procedure_return rval# end_procedure procedure rotate_up [~filedef.rotate_up?] send rotate_up_group [ filedef.rotate_up?] forward send rotate_up end_procedure end_object object oIndexFields is a cFDX.Display.IndexSegmentList FdxDisplayFileAttributes.IndexFields set location to 1 19 relative procedure rotate_up [~filedef.rotate_up?] send rotate_up_group [ filedef.rotate_up?] forward send rotate_up end_procedure end_object object oIndexInfo is a Form FdxDisplayFileAttributes.IndexInfo set location to 1 46 relative set skip_state to true item_list on_item "" send none set shadow_state to true on_item "" send none set shadow_state to true on_item "" send none set shadow_state to true end_item_list procedure display_info local integer idx# attr# local integer file# fdx# get piMain_File to file# get piFDX_Server to fdx# get piIndex to idx# move (FDX_AttrValue_INDEX(fdx#,DF_INDEX_KEY_LENGTH,file#,idx#)) to attr# set value item 0 to attr# move (FDX_AttrValue_INDEX(fdx#,DF_INDEX_LEVELS,file#,idx#)) to attr# set value item 1 to attr# move (FDX_AttrValue_INDEX(fdx#,DF_INDEX_TYPE,file#,idx#)) to attr# if attr# eq DF_INDEX_TYPE_ONLINE set value item 2 to "No" else set value item 2 to "Yes" end_procedure procedure rotate_up [~filedef.rotate_up?] send rotate_up_group [ filedef.rotate_up?] forward send rotate_up end_procedure end_object procedure rotate_up_group indicate filedef.rotate_up? true send rotate_up to (oIndexNo(self)) send rotate_up to (oIndexFields(self)) send rotate_up to (oIndexInfo(self)) indicate filedef.rotate_up? false send OnActivate 2 end_procedure object oOther is a cFDX.Display.FileOtherList FdxDisplayFileAttributes.Other set location to 1 0 relative procedure rotate_up forward send rotate_up send OnActivate 3 end_procedure end_object procedure activate_tab1 send activate to (oFields(self)) end_procedure procedure activate_tab2 send activate to (oIndexNo(self)) end_procedure procedure activate_tab3 send activate to (oOther(self)) end_procedure object oBtn is a app.Button FdxDisplayFileAttributes.Btn set location to 11 0 relative item_list on_item "" send request_previous_tab on_item "" send request_next_tab on_item t.btn.close send request_cancel end_item_list end_object procedure OnChangeFdxFile local integer oFDX# file# move (fdx.object_id(0)) to oFDX# get DFMatrix_Current_File to file# set piFDX_Server to oFDX# set piMain_File to file# if (active_state(self)) begin // Only if on screen if (file# and piDataOrigin(oFDX#)<>FDX_EMPTY) begin send fill_list to (oFields(self)) set piIndex to 1 send fill_list to (oIndexNo(self)) send fill_list to (oIndexFields(self)) send display_info to (oIndexInfo(self)) send fill_list to (oOther(self)) oFDX# end else begin send delete_data to (oFields(self)) send delete_data to (oIndexNo(self)) send delete_data to (oIndexFields(self)) send delete_data to (oOther(self)) end end end_procedure procedure activate_scope forward send activate_scope send OnChangeFdxFile end_procedure procedure OnChangeFDX send OnChangeFdxFile end_procedure send DFMatrix_Vw_Register WAY_TABLE_DEFINITION_VW self end_object // oFdxDisplayFileAttributes procedure Activate_Table_Definition send activate_scope to (oFdxDisplayFileAttributes(self)) end_procedure /UserSelectTables.hdr ÚÄTable selectorÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ /UserSelectTables.btn1 ³ ___ ______________________________ _______________ _______________ ³ /UserSelectTables.lst ³ ___ __. ______________________________ _______________ _______________ ³ ³ ___ __. ______________________________ _______________ _______________ ³ ³ ___ __. ______________________________ _______________ _______________ ³ ³ ___ __. ______________________________ _______________ _______________ ³ ³ ___ __. ______________________________ _______________ _______________ ³ ³ ___ __. ______________________________ _______________ _______________ ³ ³ ___ __. ______________________________ _______________ _______________ ³ /UserSelectTables.frm ³ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ³ ³ cR=Reorder Files selected: ___ of ___ ³ ³ ÄÄÄÄÄÄÄÄÄÄÄÄ Select ÄÄÄÄÄÄÄÄÄÄÄÄÄ ³ /UserSelectTables.btn2 ³ cA_______ cN________ cP__________ F4________________ cD____________ ³ ³ F5_______ cE________ cC__________ cS________________ ____________ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ /* register_object oLst object oUserSelectTables is a app.Client UserSelectTables.hdr action_bar (main_menu(self)) set location to 4 2 absolute on_key kcancel send request_cancel object oBtn1 is a Button UserSelectTables.btn1 set location to 2 0 relative set focus_mode to pointer_only item_list on_item "" send re_order on_item "" send re_order on_item "" send re_order on_item "" send re_order set window_color to 0 2 set window_color to 1 2 set window_color to 2 2 set window_color to 3 2 end_item_list procedure DoHeaderLabels integer by# move (by#-1) to by# set value item 0 to "#" set value item 1 to "Display name" set value item 2 to "DF name" set value item 3 to "Root name" set value item by# to ("*"+value(self,by#)+"*") end_procedure send DoHeaderLabels 1 procedure re_order local integer by# get current_item to by# send DoHeaderLabels (by#+1) send sort.i to (oLst(self)) (by#+1) end_procedure end_object object oLst is a cFdxFileMultiSelector UserSelectTables.lst set location to 3 0 relative on_key key_ctrl+key_r send re_order on_key key_ctrl+key_a send select_all_not_bad set piNo_Alias_State to false set piBad_Entries_State to BAD_ENTRIES_SHADOW set piGeneric_Display_Name_State to true procedure sort.i integer by# forward send sort.i by# send OnChangeFile 0 end_procedure procedure OnChangeFile integer row# if (item_count(self)) begin if (Row_Shadow_State(self,row#)) send DFMatrix_NewFileInSelector 0 else send DFMatrix_NewFileInSelector (Row_File(self,row#)) end end_procedure procedure row_change integer row_from# integer row_to# send OnChangeFile row_to# end_procedure procedure re_order local integer by# get Current_Column to by# if by# begin send DoHeaderLabels to (oBtn1(self)) by# send sort.i by# send highlight_current_row end end_procedure procedure fill_list_all_files forward send fill_list_all_files send highlight_current_row end_procedure procedure update_select_display // This is called automatically by the class local integer selected# total# get File_Select_Count to selected# get Row_Count to total# send select_display selected# total# end_procedure end_object // oLst object oFrm is a Form UserSelectTables.frm set location to 10 0 relative set focus_mode to pointer_only item_list on_item "" send none on_item "" send none end_item_list end_object // oFrm procedure select_display integer selected# integer total# set value of (oFrm(self)) item 0 to selected# set value of (oFrm(self)) item 1 to total# end_procedure procedure select_all_not_bad send select_all_not_bad to (oLst(self)) end_procedure on_key key_ctrl+key_a send select_all_not_bad object oBtn2 is a app.Button UserSelectTables.btn2 set location to 13 0 relative item_list on_item "All" send select_all_not_bad to (oLst(self)) on_item "Invert" send select_invert to (oLst(self)) on_item "Parents" send select_parents to (oLst(self)) on_item "Load selection" send load_current_selection.browse to (oLst(self)) on_item "Definition" send Activate_Table_Definition on_item "Clear" send select_none to (oLst(self)) on_item "Master" send select_master to (oLst(self)) on_item "Children" send select_children to (oLst(self)) on_item "Save selection" send save_current_selection.browse to (oLst(self)) on_item "Close" send request_cancel end_item_list end_object // oBtn2 on_key key_ctrl+key_n send select_invert to (oLst(self)) on_key key_ctrl+key_p send select_parents to (oLst(self)) on_key key_F4 send load_current_selection.browse to (oLst(self)) on_key key_F5 send select_none to (oLst(self)) on_key key_ctrl+key_e send select_master to (oLst(self)) on_key key_ctrl+key_c send select_children to (oLst(self)) on_key key_ctrl+key_s send save_current_selection.browse to (oLst(self)) function iCallback_Selected_Files integer get# integer obj# returns integer local integer rval# get iCallback_Selected_Files_Server of (oLst(self)) get# obj# to rval# function_return rval# end_function procedure OnChangeFdx local integer oFDX# lst# move (oLst(self)) to lst# move (fdx.object_id(0)) to oFDX# set piFDX_Server of lst# to oFDX# send fill_list_all_files to lst# set dynamic_update_state of lst# to true send OnChangeFile to lst# 0 end_procedure send DFMatrix_Vw_Register WAY_TABLE_SELECTOR_VW self end_object // oUserSelectTables procedure Activate_Table_Selector send activate_scope to (oUserSelectTables(self)) end_procedure /ListDirectoryContents.hdr ÚÄDirectory contentsÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ /ListDirectoryContents.frm ³ ³ ³ Constrain directory: ________________________________________________________³ ³ ³ ³File name Ext Size Modified Directory ³ /ListDirectoryContents.lst ³____________ ___ _________ ________________ _________________________________ ³ ³____________ ___ _________ ________________ _________________________________ ³ ³____________ ___ _________ ________________ _________________________________ ³ ³____________ ___ _________ ________________ _________________________________ ³ ³____________ ___ _________ ________________ _________________________________ ³ ³____________ ___ _________ ________________ _________________________________ ³ ³____________ ___ _________ ________________ _________________________________ ³ ³____________ ___ _________ ________________ _________________________________ ³ ³____________ ___ _________ ________________ _________________________________ ³ ³____________ ___ _________ ________________ _________________________________ ³ /ListDirectoryContents.frm2 ³ ³ ³ ___________________________________________________ ³ /ListDirectoryContents.btn ³ ____________________ _____________ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ /* register_object oList object oListDirectoryContents is a app.Client ListDirectoryContents.hdr action_bar (main_menu(self)) set location to 2 0 absolute property integer piFDX_Server public 0 object oPaths is a app.form ListDirectoryContents.frm set location to 1 0 relative item_list on_item "" send none end_item_list set Item_Combo_Width 0 to 56 set entry_state item 0 to false procedure fill local integer obj# itm# max# send Item_Combo_Delete_Data 0 send item_combo_add_item 0 "All" 0 move (oListDir_SnapShot(piFDX_Server(self))) to obj# get iPath_Count of obj# to max# for itm# from 0 to (max#-1) send item_combo_add_item 0 (sPath.i(obj#,itm#)) (itm#+1) loop end_procedure procedure OnComboChange integer itm# local string path# if itm# eq 0 begin get value item 0 to path# if path# eq "All" move "" to path# set psConstrainPath of (oList(self)) to path# send fill_list to (oList(self)) end end_procedure end_object object oList is a cSetOfFilesList ListDirectoryContents.lst set location to 5 0 relative procedure fill_list_start set piSetOfFilesObject to (oListDir_SnapShot(piFDX_Server(self))) send fill_list send fill_other end_procedure procedure display_totals number file_count# number total_bytes# send total_display (SEQ_FileSizeToString(total_bytes#)+" in "+string(file_count#)+" files") end_procedure end_object procedure fill_other local integer obj# move (oListDir_SnapShot(piFDX_Server(self))) to obj# send fill to (oPaths(self)) end_procedure object oFrm2 is a form ListDirectoryContents.frm2 set location to 15 0 relative set focus_mode to pointer_only item_list on_item "" send none end_item_list end_object procedure total_display string str# set value of (oFrm2(self)) item 0 to str# end_procedure object oBtn is a app.Button ListDirectoryContents.btn set location to 17 0 relative item_list on_item "Read folders" send DFMatrix_OpenDirectoryContents on_item "Close" send request_cancel end_item_list end_object procedure OnChangeFdx local integer oFDX# move (fdx.object_id(0)) to oFDX# set piFDX_Server to oFDX# send fill_list_start to (oList(self)) end_procedure send DFMatrix_Vw_Register WAY_DIRECTORY_CONTENTS_VW self end_object // oListDirectoryContents procedure Activate_Directory_Contents send activate_scope to (oListDirectoryContents(self)) end_procedure #ENDIF