Short Description: MOMS OLAM "Initialize Target Account List Slots" Operation Bug Number: n/a Release notes (y/n): Yes, as part of the MOMS OLAM work. For Release Nums: 5.3 (1) Completed the "Set List Slots" function of the "Initialize Account List Slot on Objects" dialog for assigning the "Target Account" List Slot, used by the "Copy Slot to Slot Info" (OLAM) method. This dialog is done. (2) In the Multiple Object Method Selector (MOMS) dialog, completed the Method Operation Panel support for the Initialize Target Account List Slots operation (related to above). ... Also, GUI HOOKS for the "Set OLAM Execution Times" operation. ------------------------------------------- QtAccounting/InitAccountListSlotsDlg.hpp QtAccounting/InitAccountListSlotsDlg.cpp QtAccounting/InitAccountListSlotsWidgets.ui ------------------------------------------- Implemented the "Set List Slots" function. The Account List Slot identified by the client on each of the given simulation objects is assigned the Accounts which match the criteria entered by the user (by account name or water type). A hard coded setting constrains this operation to EXACTLY ONE Account on each simulation object matching the user's criteria, but this module was also tested without that constraint. See also the note in the .cpp file accompanying this definition: static const bool CONSTRAIN_TO_EXACTLY_ONE_ACCOUNT_ON_EACH_SIMOBJ (true); An error is reported (via a QMessageBox popup) if any of the given simulation objects LACK the Account List Slot having the name provided by the client (which happens to be "Target Account", provided by the MOMS dialog, see below). This is essentially an internal error, and won't occur if the client module correctly provides a list of simulation objects which all have an Account List Slot with the provided name. New data members: QString _listSlotName; New methods: void setListSlotName (const QString&); bool requireExactlyOneAccountMatch() const; QList matchingAccounts (SimObj*) const; okstat setListSlots(); ------------------------------ Q3GUI/MultiObjMethSelector.hpp Q3GUI/MultiObjMethSelector.cpp ------------------------------ Added a conditionally-shown "Method Operations Panel" with two conditionally shown "rows" of widgets: Row 1: Button: "Initialize Target Account List Slots..." (IMPLEMENTED) Row 2: ComboBox and "Set" Button for OLAM Execution Times (NOT IMPLEMENTED) (As indicated above) the "Initialize Target Account List Slots..." function has been completed. The Method Operations Panel, with the "Init ..." button is shown only when the "Copy Slot to Slot Info" OLAM method is SELECTED. And that button is _enabled_ only if at least one Simulation Object has that method selected. Clicking that button brings up the "Initialize Account List Slot on Objects" dialog to set the "Target Account" list slot on the simulation objects having the "Copy Slot to Slot Info" method set. Only hooks have been implemented for the OLAM Execution Times editing function. New data members: // Method Operations Panel QFrame* _methodOpsFrame; QVBoxLayout* _methodOpsVBox; QWidget* _methodOpsRow1; QHBoxLayout* _methodOpsRowHBox1; QPushButton* _initTargAcctListSlotsButton; QSpacerItem* _methodOpsRow1Spring; QWidget* _methodOpsRow2; // STUB QHBoxLayout* _methodOpsRowHBox2; // STUB QComboBox* _execTimeComboBox; // STUB QPushButton* _setExecTimeButton; // STUB QSpacerItem* _methodOpsRow2Spring; // STUB New methods: void buildMethodOpsFrame(); bool methodOpsRow1Needed() const; bool methodOpsRow2Needed() const; // STUB void refreshMethodOpsPanelState(); New Qt slots (signal handlers): void initTargAcctListSlotsButton_clicked(); void setExecTimeButton_clicked(); // STUB ONLY Revised the composition of the SimObj list passed to the support dialog in method: void MultiObjMethSelector::showInitAccountListSlotsDlg(); // Magic Names (defined in EngrObjs/libEngrObjsGlobals.cpp). extern const RWCString COPY_TO_SLOT_INFLOW; // OLAM method extern const RWCString TARGET_ACCOUNT; // ListSlot ---