home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Demos / A.D. Software / OOFILE / Buildable, limited OOFILE / source / GUI / Mac / PPlant / oofppx.hpp < prev   
Encoding:
Text File  |  1995-12-13  |  4.2 KB  |  198 lines  |  [TEXT/CWIE]

  1. // COPYRIGHT 1995 A.D. Software, All rights reserved
  2.  
  3. // Private interface of PowerPlant Integration layer of OOFILE database
  4.  
  5. #ifndef H_OOFPowerPlantX
  6. #define H_OOFPowerPlantX
  7.  
  8. #include "oofpp.hpp"
  9. class dbView;
  10.  
  11. #include "LStrTableView.h"
  12. #include <UTableHelpers.h>
  13.  
  14. class dbCharLink2EditField : public dbFieldLink {
  15. public:
  16.     dbCharLink2EditField(dbChar* fld, LEditField* ctl) :
  17.                         mField(fld), 
  18.                         mLinkTo(ctl)
  19.                         {};
  20.     virtual void copyFieldToLink();
  21.     virtual void copyLinkToField();
  22.     
  23. private:
  24.     LEditField* mLinkTo;
  25.     dbChar* mField;
  26. };
  27.  
  28.  
  29. class dbCharLink2TextEdit : public dbFieldLink {
  30. public:
  31.     dbCharLink2TextEdit(dbChar* fld, LTextEdit* ctl) :
  32.                         mField(fld), 
  33.                         mLinkTo(ctl)
  34.                         {};
  35.     virtual void copyFieldToLink();
  36.     virtual void copyLinkToField();
  37.  
  38. private:
  39.     LTextEdit* mLinkTo;
  40.     dbChar* mField;
  41. };
  42.  
  43.  
  44. class dbTextLink2TextEdit : public dbFieldLink {
  45. public:
  46.     dbTextLink2TextEdit(dbText* fld, LTextEdit* ctl) :
  47.                         mField(fld), 
  48.                         mLinkTo(ctl)
  49.                         {};
  50.     virtual void copyFieldToLink();
  51.     virtual void copyLinkToField();
  52.  
  53. private:
  54.     LTextEdit* mLinkTo;
  55.     dbText* mField;
  56. };
  57.  
  58.  
  59. class dbLongLink2EditField : public dbFieldLink {
  60. public:
  61.     dbLongLink2EditField(dbLong* fld, LEditField* ctl) :
  62.                         mField(fld), 
  63.                         mLinkTo(ctl)
  64.                         {};
  65.     virtual void copyFieldToLink();
  66.     virtual void copyLinkToField();
  67.     
  68. private:
  69.     LEditField* mLinkTo;
  70.     dbLong* mField;
  71. };
  72.  
  73.  
  74. class dbShortLink2EditField : public dbFieldLink {
  75. public:
  76.     dbShortLink2EditField(dbShort* fld, LEditField* ctl) :
  77.                         mField(fld), 
  78.                         mLinkTo(ctl)
  79.                         {};
  80.     virtual void copyFieldToLink();
  81.     virtual void copyLinkToField();
  82.     
  83. private:
  84.     LEditField* mLinkTo;
  85.     dbShort* mField;
  86. };
  87.  
  88.  
  89. class dbDateLink2EditField : public dbFieldLink {
  90. public:
  91.     dbDateLink2EditField(dbDate* fld, LEditField* ctl) :
  92.                         mField(fld), 
  93.                         mLinkTo(ctl)
  94.                         {};
  95.     virtual void copyFieldToLink();
  96.     virtual void copyLinkToField();
  97.     
  98. private:
  99.     LEditField* mLinkTo;
  100.     dbDate* mField;
  101. };
  102.  
  103.  
  104. class dbBrowserDisplay { // abstract base to allow us to wrap different controls
  105. public:
  106.     dbBrowserDisplay() {};
  107.     virtual ~dbBrowserDisplay() {};
  108.     virtual void loadData()=0;
  109.     virtual void refresh()=0;
  110.     virtual void changeViewTo(dbView*)=0;
  111.     virtual long selectedRow() const=0;
  112. };
  113.  
  114.  
  115. class dbListBoxDisplay : public dbBrowserDisplay {
  116. public:
  117.     dbListBoxDisplay(LListBox* theLB, dbView* theView=0);
  118.     virtual ~dbListBoxDisplay() {};
  119.     virtual void loadData();
  120.     virtual void refresh();
  121.     virtual void changeViewTo(dbView*);
  122.     virtual long selectedRow() const;
  123. private:
  124.     void DeleteAllData();
  125.     void LoadRow(const int row, bool insertTheRow=false);
  126.     void SetColWidths();
  127.     
  128.     LListBox* mDisplay;
  129.     dbView* mView;
  130.     bool mLoadedData;
  131. };
  132.  
  133.  
  134. class dbTableViewDisplay : public dbBrowserDisplay {
  135. public:
  136.     dbTableViewDisplay(LStrTableView* inTable, dbView* inView=0);
  137.     virtual ~dbTableViewDisplay() {};
  138.     virtual void loadData();
  139.     virtual void refresh();
  140.     virtual void changeViewTo(dbView*);
  141.     virtual long selectedRow() const;
  142. private:
  143.     
  144.     LStrTableView* mDisplay;
  145.     LTableStorage* mStorage;  // created but not owned
  146.     dbView* mView;
  147.     bool mLoadedData;
  148. };
  149.  
  150.  
  151. class    dbViewAsTableStorage : public LTableStorage {
  152. public:
  153.                         dbViewAsTableStorage(
  154.                                 LTableView            *inTableView,
  155.                                 dbView                *inView);
  156.     virtual                ~dbViewAsTableStorage() {};
  157.  
  158.     virtual void        SetCellData(
  159.                                 const STableCell    &inCell,
  160.                                 const void            *inDataPtr,
  161.                                 Uint32                inDataSize);
  162.     virtual void        GetCellData(
  163.                                 const STableCell    &inCell,
  164.                                 void                *outDataPtr,
  165.                                 Uint32                &ioDataSize) const;
  166.     virtual Boolean        FindCellData(
  167.                                 STableCell            &outCell, 
  168.                                 const void            *inDataPtr,
  169.                                 Uint32                inDataSize) const;
  170.                                 
  171.     virtual void        InsertRows(
  172.                                 Uint32                inHowMany,
  173.                                 TableIndexT            inAfterRow,
  174.                                 const void            *inDataPtr,
  175.                                 Uint32                inDataSize);
  176.     virtual void        InsertCols(
  177.                                 Uint32                inHowMany,
  178.                                 TableIndexT            inAfterCol,
  179.                                 const void            *inDataPtr,
  180.                                 Uint32                inDataSize);
  181.                                 
  182.     virtual void        RemoveRows(
  183.                                 Uint32                inHowMany,
  184.                                 TableIndexT            inFromRow);
  185.     virtual void        RemoveCols(
  186.                                 Uint32                inHowMany,
  187.                                 TableIndexT            inFromCol);
  188.                                     
  189.     virtual void        GetStorageSize(
  190.                                 TableIndexT            &outRows,
  191.                                 TableIndexT            &outCols);
  192.  
  193. protected:
  194.     dbView    *mView;  // ref only
  195. };
  196.  
  197.  
  198. #endif