00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef _TSUTILS_H_
00031 #define _TSUTILS_H_
00032
00033
00034
00035
00036 #include <map>
00037
00038
00039 #include <osbid.h>
00040 #include <qtabwidget.h>
00041 #include <qlistview.h>
00042
00043
00044 #include "osbcombos.h"
00045 #include "osbdlgbase.h"
00046 #include "tautils.h"
00047
00048
00049
00050 namespace OSB_LIB {
00051 class TariffSystem;
00052 class TsVersion;
00053 class ScSystem;
00054
00055 class ServiceClass;
00056 class TcSystem;
00057 typedef std::map< Id<ServiceClass>, Id<TcSystem> > ScTcsCfg;
00058
00059 class TariffClass;
00060 class TpSystem;
00061 typedef std::map< Id<TariffClass>, Id<TpSystem> > TcTpsCfg;
00062
00063 class TariffPeriod;
00064 class Tariff;
00065 typedef std::pair< Id<TariffClass>, Id<TariffPeriod> > TcTp;
00066 typedef std::map< TcTp, Id<Tariff> > TcTpTariff;
00067 }
00068 namespace OSB_GUI {
00069 class ToVsHead;
00070 }
00071
00072 class QCheckBox;
00073 class QFrame;
00074 class QHBoxLayout;
00075 class QLabel;
00076 class QListView;
00077 class QPushButton;
00078 class QSpacerItem;
00079 class QVBoxLayout;
00080
00081
00082
00083 namespace OSB_GUI {
00084
00085
00086
00087 class TsVsGeneral;
00088 class TsScCfg;
00089 class TsTcCfg;
00090 class TsTfCfg;
00091
00092
00093
00094
00095
00096
00100 class TsVsCfg : public QTabWidget {
00101 Q_OBJECT
00102 public:
00104 explicit TsVsCfg(
00105 QWidget* parent,
00106 const char* name = "tsVsCfg_",
00107 WFlags flags = 0
00108 );
00110 void languageChange();
00112 void addGeneralInfo(
00113 ToVsHead* generalInfo
00114 );
00121 void display(
00122 const OSB_LIB::TsVersion& tsVs,
00123 bool showOnly
00124 );
00130 void setEditedTsVs(OSB_LIB::TsVersion* tsVs);
00132 bool tsVsModified() const;
00133 private slots:
00135 void refreshCurrent();
00137 void bundledToggled(bool on);
00139 void setScs(
00140 const OSB_LIB::Id<OSB_LIB::ScSystem>& scsId
00141 );
00143 void setTcs(
00144 const OSB_LIB::ScTcsCfg& scTcsCfg
00145 );
00147 void setTps(
00148 const OSB_LIB::TcTpsCfg& tcTpsCfg
00149 );
00151 void setFlatTf(
00152 const OSB_LIB::TcTpTariff& tfCfg
00153 );
00155 void setBundledTf(
00156 const OSB_LIB::TcTpTariff& tfCfg
00157 );
00158 private:
00160 OSB_LIB::TsVersion* tsVs_;
00162 bool tsVsModified_;
00164 TsVsGeneral* general_;
00166 TsScCfg* scCfg_;
00168 TsTcCfg* tcCfg_;
00170 TsTfCfg* flatCfg_;
00172 TsTfCfg* bundledCfg_;
00173 };
00174
00179 class TsVsGeneral : public QWidget {
00181 friend class TsVsCfg;
00182 public:
00184 explicit TsVsGeneral(
00185 QWidget* parent,
00186 const char* name,
00187 WFlags flags = 0
00188 );
00189 public:
00191 void languageChange();
00197 void setup(bool showOnly);
00203 void display(
00204 const OSB_LIB::TsVersion& tsVs
00205 );
00206 private:
00208 QCheckBox* cbBundled_;
00210 QFrame* lineBundled_;
00212 QSpacerItem* spGeneral_;
00214 QVBoxLayout* layout_;
00215 };
00216
00221 class LvTsScCfg : public QListView {
00222 Q_OBJECT
00223
00224 class Item;
00225 public:
00227 explicit LvTsScCfg(
00228 QWidget* parent,
00229 const char* name = "lvTsScCfg_",
00230 WFlags flags = 0
00231 );
00232 public:
00234 void languageChange();
00236 void display(
00237 const OSB_LIB::ScTcsCfg& scCfg
00238 );
00240 void setEditable(bool on);
00248 int selectedCfgs();
00249 signals:
00256 void tcsChanged(
00257 const OSB_LIB::ScTcsCfg& scTcsCfg
00258 );
00259 private slots:
00261 void selectTcs();
00262 private:
00269 Item* selectedCfg();
00271 void setTcs(
00272 const OSB_LIB::TcSystem& tcs
00273 );
00274 void clearTcs();
00275 private:
00277 bool editable_;
00278 };
00279
00284 class LvTsScCfg::Item : public QListViewItem {
00285 private:
00287 typedef OSB_LIB::Id<OSB_LIB::ServiceClass> ScId;
00289 typedef OSB_LIB::Id<OSB_LIB::TcSystem> TcsId;
00290 public:
00292 Item(
00293 QListView* parent,
00294 const OSB_LIB::ServiceClass& sc
00295 );
00300 Item(
00301 QListView* parent,
00302 const OSB_LIB::ServiceClass& sc,
00303 const OSB_LIB::TcSystem& tcs
00304 );
00306 const OSB_LIB::Id<OSB_LIB::ServiceClass> scId() const;
00312 const OSB_LIB::Id<OSB_LIB::TcSystem> tcsId() const;
00314 void setTcs(
00315 const OSB_LIB::TcSystem& tcs
00316 );
00318 void clearTcs();
00319 private:
00321 int compare(
00322 QListViewItem* item,
00323 int col,
00324 bool asc
00325 ) const;
00326 private:
00328 ScId scId_;
00330 TcsId tcsId_;
00331 };
00332
00337 class TsScCfg : public QWidget {
00338 Q_OBJECT
00340 friend class TsVsCfg;
00341 public:
00343 explicit TsScCfg(
00344 QWidget* parent,
00345 const char* name,
00346 WFlags flags = 0
00347 );
00348 public:
00350 void languageChange();
00356 void setup(bool showOnly);
00362 void display(
00363 const OSB_LIB::TsVersion& tsVs
00364 );
00365 signals:
00371 void scsChanged(const OSB_LIB::Id<OSB_LIB::ScSystem>& scsId);
00372 private slots:
00378 void selectScs();
00383 void setPbTcs();
00384 private:
00386 OSB_LIB::Id<OSB_LIB::ScSystem> scsId_;
00388 QLabel* tlScs_;
00390 QLineEdit* leScs_;
00392 LvTsScCfg* lvScTcs_;
00394 QPushButton* pbScs_;
00396 QPushButton* pbTcs_;
00398 QSpacerItem* spPb_;
00400 QHBoxLayout* loScs_;
00402 QHBoxLayout* loPb_;
00404 QVBoxLayout* layout_;
00405 };
00406
00411 class LvTsTcCfg : public QListView {
00412 Q_OBJECT
00413
00414 class Item;
00415 public:
00417 explicit LvTsTcCfg(
00418 QWidget* parent,
00419 const char* name = "lvTsTcCfg_",
00420 WFlags flags = 0
00421 );
00422 public:
00424 void languageChange();
00426 void display(
00427 const OSB_LIB::TcTpsCfg& tcCfg
00428 );
00430 void setEditable(bool on);
00432 int selectedCfgs();
00433 signals:
00440 void tpsChanged(
00441 const OSB_LIB::TcTpsCfg& tcTpsCfg
00442 );
00443 private slots:
00445 void selectTps();
00446 private:
00453 Item* selectedCfg();
00455 void setTps(
00456 const OSB_LIB::TpSystem& tps
00457 );
00458 void clearTps();
00459 private:
00461 bool editable_;
00462 };
00463
00468 class LvTsTcCfg::Item : public QListViewItem {
00469 private:
00471 typedef OSB_LIB::Id<OSB_LIB::TariffClass> TcId;
00473 typedef OSB_LIB::Id<OSB_LIB::TpSystem> TpsId;
00474 public:
00476 Item(
00477 QListView* parent,
00478 const OSB_LIB::TariffClass& tc
00479 );
00484 Item(
00485 QListView* parent,
00486 const OSB_LIB::TariffClass& tc,
00487 const OSB_LIB::TpSystem& tps
00488 );
00490 const OSB_LIB::Id<OSB_LIB::TariffClass> tcId() const;
00496 const OSB_LIB::Id<OSB_LIB::TpSystem> tpsId() const;
00498 void setTps(
00499 const OSB_LIB::TpSystem& tps
00500 );
00502 void clearTps();
00503 private:
00505 int compare(
00506 QListViewItem* item,
00507 int col,
00508 bool asc
00509 ) const;
00510 private:
00512 TcId tcId_;
00514 TpsId tpsId_;
00515 };
00516
00521 class TsTcCfg : public QWidget {
00522 Q_OBJECT
00524 friend class TsVsCfg;
00525 public:
00527 explicit TsTcCfg(
00528 QWidget* parent,
00529 const char* name,
00530 WFlags flags = 0
00531 );
00533 void languageChange();
00539 void setup(bool showOnly);
00545 void display(
00546 const OSB_LIB::TsVersion& tsVs
00547 );
00548 private slots:
00553 void setPbTps();
00554 private:
00556 LvTsTcCfg* lvTcTps_;
00558 QPushButton* pbTps_;
00560 QSpacerItem* spPb_;
00562 QHBoxLayout* loPb_;
00564 QVBoxLayout* layout_;
00565 };
00566
00571 class LvTsTfCfg : public QListView {
00572 Q_OBJECT
00573
00574 class Item;
00575 public:
00577 explicit LvTsTfCfg(
00578 QWidget* parent,
00579 const char* name = "lvTsTfCfg_",
00580 WFlags flags = 0
00581 );
00582 public:
00584 void languageChange();
00586 void display(
00587 const OSB_LIB::TcTpTariff& tfCfg
00588 );
00590 void setEditable(bool on);
00592 int selectedCfgs();
00593 signals:
00600 void tfChanged(
00601 const OSB_LIB::TcTpTariff& tfCfg
00602 );
00603 private slots:
00605 void selectTf();
00606 private:
00613 Item* selectedCfg();
00615 void setTf(
00616 const OSB_LIB::Tariff& tf
00617 );
00618 void clearTf();
00619 private:
00621 bool editable_;
00622 };
00623
00628 class LvTsTfCfg::Item : public QListViewItem {
00629 private:
00631 typedef OSB_LIB::Id<OSB_LIB::TariffClass> TcId;
00633 typedef OSB_LIB::Id<OSB_LIB::TariffPeriod> TpId;
00635 typedef OSB_LIB::Id<OSB_LIB::Tariff> TfId;
00636 public:
00638 Item(
00639 QListView* parent,
00640 const OSB_LIB::TariffClass& tc,
00641 const OSB_LIB::TariffPeriod& tp
00642 );
00647 Item(
00648 QListView* parent,
00649 const OSB_LIB::TariffClass& tc,
00650 const OSB_LIB::TariffPeriod& tp,
00651 const OSB_LIB::Tariff& tf
00652 );
00654 const OSB_LIB::Id<OSB_LIB::TariffClass> tcId() const;
00656 const OSB_LIB::Id<OSB_LIB::TariffPeriod> tpId() const;
00662 const OSB_LIB::Id<OSB_LIB::Tariff> tfId() const;
00664 void setTf(
00665 const OSB_LIB::Tariff& tf
00666 );
00668 void clearTf();
00669 private:
00671 int compare(
00672 QListViewItem* item,
00673 int col,
00674 bool asc
00675 ) const;
00676 private:
00678 TcId tcId_;
00680 TpId tpId_;
00682 TfId tfId_;
00683 };
00684
00689 class TsTfCfg : public QWidget {
00690 Q_OBJECT
00692 friend class TsVsCfg;
00693 public:
00695 explicit TsTfCfg(
00696 QWidget* parent,
00697 const char* name,
00698 WFlags flags = 0
00699 );
00701 void languageChange();
00707 void setup(bool showOnly);
00713 void display(
00714 const OSB_LIB::TcTpTariff& tfCfg
00715 );
00716 private slots:
00721 void setPbTf();
00722 private:
00724 LvTsTfCfg* lvTfCfg_;
00726 QPushButton* pbTf_;
00728 QSpacerItem* spPb_;
00730 QHBoxLayout* loPb_;
00732 QVBoxLayout* layout_;
00733 };
00734
00738 class LvScSystem : public QListView {
00739
00740 class Item;
00741 public:
00743 explicit LvScSystem(
00744 QWidget* parent,
00745 const char* name = "lvScSystem_",
00746 WFlags flags = 0
00747 );
00749 void languageChange();
00751 void populate();
00758 const OSB_LIB::Id<OSB_LIB::ScSystem> scsId() const;
00765 void setScs(const OSB_LIB::Id<OSB_LIB::ScSystem>& scsId);
00766 };
00767
00771 class LvScSystem::Item : public QListViewItem {
00772 public:
00774 Item(
00775 QListView* parent,
00776 const OSB_LIB::ScSystem& scs
00777 );
00779 const OSB_LIB::Id<OSB_LIB::ScSystem> scsId() const;
00780 private:
00782 OSB_LIB::Id<OSB_LIB::ScSystem> scsId_;
00783 };
00784
00788 class DlgScsSelect : public DlgBase {
00789 public:
00791 DlgScsSelect(
00792 QWidget* parent,
00793 const char* name = "DlgScsSelect",
00794 bool modal = false,
00795 WFlags flags = 0
00796 );
00797 public:
00799 void languageChange();
00806 int exec(const OSB_LIB::Id<OSB_LIB::ScSystem> scsId);
00813 const OSB_LIB::Id<OSB_LIB::ScSystem> scsId() const;
00814 private:
00816 LvScSystem* lv_;
00817 };
00818
00822 class LvTcSystem : public QListView {
00823
00824 class Item;
00825 public:
00827 explicit LvTcSystem(
00828 QWidget* parent,
00829 const char* name = "lvTcSystem_",
00830 WFlags flags = 0
00831 );
00833 void languageChange();
00835 void populate();
00842 const OSB_LIB::Id<OSB_LIB::TcSystem> tcsId() const;
00849 void setTcs(const OSB_LIB::Id<OSB_LIB::TcSystem>& tcsId);
00850 };
00851
00855 class LvTcSystem::Item : public QListViewItem {
00856 public:
00858 Item(
00859 QListView* parent,
00860 const OSB_LIB::TcSystem& tcs
00861 );
00863 const OSB_LIB::Id<OSB_LIB::TcSystem> tcsId() const;
00864 private:
00866 OSB_LIB::Id<OSB_LIB::TcSystem> tcsId_;
00867 };
00868
00872 class DlgTcsSelect : public DlgBase {
00873 public:
00875 DlgTcsSelect(
00876 QWidget* parent,
00877 const char* name = "DlgTcsSelect",
00878 bool modal = false,
00879 WFlags flags = 0
00880 );
00881 public:
00883 void languageChange();
00890 int exec(const OSB_LIB::Id<OSB_LIB::TcSystem> tcsId);
00897 const OSB_LIB::Id<OSB_LIB::TcSystem> tcsId() const;
00898 private:
00900 LvTcSystem* lv_;
00901 };
00902
00906 class LvTpSystem : public QListView {
00907
00908 class Item;
00909 public:
00911 explicit LvTpSystem(
00912 QWidget* parent,
00913 const char* name = "lvTpSystem_",
00914 WFlags flags = 0
00915 );
00917 void languageChange();
00919 void populate();
00926 const OSB_LIB::Id<OSB_LIB::TpSystem> tpsId() const;
00933 void setTps(const OSB_LIB::Id<OSB_LIB::TpSystem>& tpsId);
00934 };
00935
00939 class LvTpSystem::Item : public QListViewItem {
00940 public:
00942 Item(
00943 QListView* parent,
00944 const OSB_LIB::TpSystem& tps
00945 );
00947 const OSB_LIB::Id<OSB_LIB::TpSystem> tpsId() const;
00948 private:
00950 OSB_LIB::Id<OSB_LIB::TpSystem> tpsId_;
00951 };
00952
00956 class DlgTpsSelect : public DlgBase {
00957 public:
00959 DlgTpsSelect(
00960 QWidget* parent,
00961 const char* name = "DlgTpsSelect",
00962 bool modal = false,
00963 WFlags flags = 0
00964 );
00965 public:
00967 void languageChange();
00974 int exec(const OSB_LIB::Id<OSB_LIB::TpSystem> tpsId);
00981 const OSB_LIB::Id<OSB_LIB::TpSystem> tpsId() const;
00982 private:
00984 LvTpSystem* lv_;
00985 };
00986
00990 class LvTariff : public QListView {
00991
00992 class Item;
00993 public:
00995 explicit LvTariff(
00996 QWidget* parent,
00997 const char* name = "lvTariff_",
00998 WFlags flags = 0
00999 );
01001 void languageChange();
01003 void populate();
01010 const OSB_LIB::Id<OSB_LIB::Tariff> tfId() const;
01017 void setTf(const OSB_LIB::Id<OSB_LIB::Tariff>& tfId);
01018 };
01019
01023 class LvTariff::Item : public QListViewItem {
01024 public:
01026 Item(
01027 QListView* parent,
01028 const OSB_LIB::Tariff& tf
01029 );
01031 const OSB_LIB::Id<OSB_LIB::Tariff> tfId() const;
01032 private:
01034 OSB_LIB::Id<OSB_LIB::Tariff> tfId_;
01035 };
01036
01040 class DlgTfSelect : public DlgBase {
01041 public:
01043 DlgTfSelect(
01044 QWidget* parent,
01045 const char* name = "DlgTfSelect",
01046 bool modal = false,
01047 WFlags flags = 0
01048 );
01049 public:
01051 void languageChange();
01058 int exec(const OSB_LIB::Id<OSB_LIB::Tariff> tfId);
01065 const OSB_LIB::Id<OSB_LIB::Tariff> tfId() const;
01066 private:
01068 LvTariff* lv_;
01069 };
01070
01072 typedef ValueCombo< OSB_LIB::Id2<OSB_LIB::TsVersion> > CmbTsVsBase;
01073
01077 class CmbTsVersion : public CmbTsVsBase {
01078 public:
01080 explicit CmbTsVersion(
01081 QWidget* parent,
01082 const char* name = "cmbTs_"
01083 );
01084 public:
01093 void populate(
01094 const OSB_LIB::Id<OSB_LIB::TariffSystem>& tsId
01095 );
01096 };
01097
01102 class TsVsStatusProxy : public ToCfgTsStatusProxy {
01103 public:
01109 explicit TsVsStatusProxy(
01110 OSB_LIB::TsVersion& tsVs
01111 );
01113 TsVsStatusProxy& operator=(const TsVsStatusProxy&);
01114 public:
01116 OSB_LIB::ToCfgTsBase& toCfgTs();
01121 void setStatus(
01122 OSB_LIB::CfgStatus newStatus,
01123 OSB_LIB::OsbErrors& errors
01124 );
01125
01126 bool setReleaseTs(
01127 const OSB_LIB::DateTime& ts,
01128 OSB_LIB::OsbErrors& errors
01129 );
01130 private:
01132 OSB_LIB::TsVersion& tsVs_;
01133 };
01134
01135 }
01136
01137
01138
01139 namespace OSB_GUI {
01140 }
01141 #endif // #ifndef _TSUTILS_H_