00001
00004 #ifndef BPSTABLEFIELD_H
00005 #define BPSTABLEFIELD_H
00006
00007 #include "bpsgui_global.h"
00008 #include <QList>
00009 #include <QVariant>
00010
00011 class BpsTable;
00012 class BpsTableItem;
00013 class QWidget;
00014 class QPainter;
00015 class QAbstractItemModel;
00016 class QStyleOptionViewItem;
00017
00023 class BPSGUI_EXPORT BpsTableField : public QObject
00024 {
00025 Q_OBJECT
00026 BPS_PRIVATE(BpsTableField)
00027 friend class BpsTable;
00028
00029 public:
00038 BpsTableField(const QString& aHeader, const QString& aColumn);
00039
00043 BpsTableField(const BpsTableField& aOther);
00044
00046 virtual ~BpsTableField();
00048
00053 virtual BpsTableField* clone() const = 0;
00054
00058 QString column() const;
00059
00063 QString wholeColumn() const;
00064
00068 QString header() const;
00069
00073 bool isEditable() const;
00074
00079 void setIsEditable(bool aIsEditable);
00080
00084 int sortRole() const;
00085
00090 void setSortRole(int aRole);
00091
00110 int fractionDigits() const;
00111
00117 void setFractionDigits(int aDigits);
00118
00122 Qt::Alignment alignment() const;
00123
00128 void setAlignment(Qt::Alignment aAlignment);
00129
00133 QString displayedColumn() const;
00134
00145 void setDisplayedColumn(const QString& aColumn);
00146
00150 virtual QVariant defaultValue() const;
00151
00160 virtual QVariant display(BpsTableItem* aItem) const;
00161
00167 virtual QVariant decoration(BpsTableItem* aItem) const;
00168
00174 virtual QWidget* createEditor(QWidget* aParent = 0) = 0;
00175
00181 virtual void setEditorData(QWidget* aEditor, const QVariant& aValue) = 0;
00182
00188 virtual QVariant editorData(QWidget* aEditor) const = 0;
00189
00195 virtual QVariant exp(const QVariant& aValue);
00196
00202 virtual QVariant imp(const QVariant& aValue);
00203
00204 signals:
00210 void editorDataChanged(const QString& aColumn, const QVariant& aValue);
00211
00212 protected:
00216 BpsTable* table() const;
00217
00227 QVariantMap getSettings(const QStringList& aNames) const;
00228
00230 private:
00231 void setTable(BpsTable* aTable);
00233 };
00234
00235
00239 class BPSGUI_EXPORT BpsSpecialField : public BpsTableField
00240 {
00241 Q_OBJECT
00242 BPS_PRIVATE(BpsSpecialField)
00243
00244 public:
00252 BpsSpecialField(const QString& aHeader, const QString& aColumn);
00253
00255 BpsSpecialField(const BpsSpecialField& aOther);
00256 virtual ~BpsSpecialField();
00257 virtual BpsSpecialField* clone() const;
00258 virtual QWidget* createEditor(QWidget* aParent = 0);
00259 virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
00260 virtual QVariant editorData(QWidget* aEditor) const;
00262 };
00263
00264
00268 class BPSGUI_EXPORT BpsCheckBoxField : public BpsTableField
00269 {
00270 Q_OBJECT
00271 BPS_PRIVATE(BpsCheckBoxField)
00272
00273 public:
00285 BpsCheckBoxField(
00286 const QString& aHeader, const QString& aColumn,
00287 const QString& aUnchecked, const QString& aUncheckedDisplay,
00288 const QString& aChecked, const QString& aCheckedDisplay);
00289
00291 BpsCheckBoxField(const BpsCheckBoxField& aOther);
00292 virtual ~BpsCheckBoxField();
00293 virtual BpsCheckBoxField* clone() const;
00294 virtual QVariant defaultValue() const;
00295 virtual QVariant display(BpsTableItem* aItem) const;
00296 virtual QWidget* createEditor(QWidget* aParent = 0);
00297 virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
00298 virtual QVariant editorData(QWidget* aEditor) const;
00300 };
00301
00302
00306 class BPSGUI_EXPORT BpsLineEditField : public BpsTableField
00307 {
00308 Q_OBJECT
00309 BPS_PRIVATE(BpsLineEditField)
00310
00311 public:
00320 BpsLineEditField(const QString& aHeader, const QString& aColumn, QVariant::Type aType = QVariant::String);
00321
00323 BpsLineEditField(const BpsLineEditField& aOther);
00324 virtual ~BpsLineEditField();
00325 virtual BpsLineEditField* clone() const;
00326 virtual QVariant defaultValue() const;
00327 virtual QWidget* createEditor(QWidget* aParent = 0);
00328 virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
00329 virtual QVariant editorData(QWidget* aEditor) const;
00331 };
00332
00333
00337 class BPSGUI_EXPORT BpsTextEditField : public BpsTableField
00338 {
00339 Q_OBJECT
00340 BPS_PRIVATE(BpsTextEditField)
00341
00342 public:
00350 BpsTextEditField(const QString& aHeader, const QString& aColumn);
00351
00353 BpsTextEditField(const BpsTextEditField& aOther);
00354 virtual ~BpsTextEditField();
00355 virtual BpsTextEditField* clone() const;
00356 virtual QVariant defaultValue() const;
00357 virtual QWidget* createEditor(QWidget* aParent = 0);
00358 virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
00359 virtual QVariant editorData(QWidget* aEditor) const;
00361 };
00362
00363
00367 class BPSGUI_EXPORT BpsDateTimeField : public BpsTableField
00368 {
00369 Q_OBJECT
00370 BPS_PRIVATE(BpsDateTimeField)
00371
00372 public:
00380 BpsDateTimeField(const QString& aHeader, const QString& aColumn);
00381
00383 BpsDateTimeField(const BpsDateTimeField& aOther);
00384 virtual ~BpsDateTimeField();
00385 virtual BpsDateTimeField* clone() const;
00386 virtual QVariant defaultValue() const;
00387 virtual QVariant display(BpsTableItem* aItem) const;
00388 virtual QWidget* createEditor(QWidget* aParent = 0);
00389 virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
00390 virtual QVariant editorData(QWidget* aEditor) const;
00392 };
00393
00394
00399 class BPSGUI_EXPORT BpsNvlDateTimeField : public BpsTableField
00400 {
00401 Q_OBJECT
00402 BPS_PRIVATE(BpsNvlDateTimeField)
00403
00404 public:
00412 BpsNvlDateTimeField(const QString& aHeader, const QString& aColumn);
00413
00415 BpsNvlDateTimeField(const BpsNvlDateTimeField& aOther);
00416 virtual ~BpsNvlDateTimeField();
00417 virtual BpsNvlDateTimeField* clone() const;
00418 virtual QVariant defaultValue() const;
00419 virtual QVariant display(BpsTableItem* aItem) const;
00420 virtual QWidget* createEditor(QWidget* aParent = 0);
00421 virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
00422 virtual QVariant editorData(QWidget* aEditor) const;
00424 };
00425
00426
00430 class BPSGUI_EXPORT BpsSpinBoxField : public BpsTableField
00431 {
00432 Q_OBJECT
00433 BPS_PRIVATE(BpsSpinBoxField)
00434
00435 public:
00443 BpsSpinBoxField(const QString& aHeader, const QString& aColumn);
00444
00446 BpsSpinBoxField(const BpsSpinBoxField& aOther);
00447 virtual ~BpsSpinBoxField();
00448 virtual BpsSpinBoxField* clone() const;
00449 virtual QVariant defaultValue() const;
00450 virtual QWidget* createEditor(QWidget* aParent = 0);
00451 virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
00452 virtual QVariant editorData(QWidget* aEditor) const;
00454 };
00455
00456
00460 typedef QPair<QVariant,QString> BpsComboBoxOption;
00461
00462
00466 typedef QList<BpsComboBoxOption> BpsComboBoxOptions;
00467
00468
00472 class BPSGUI_EXPORT BpsComboBoxField : public BpsTableField
00473 {
00474 Q_OBJECT
00475 BPS_PRIVATE(BpsComboBoxField)
00476
00477 public:
00486 BpsComboBoxField(
00487 const QString& aHeader,
00488 const QString& aColumn,
00489 const BpsComboBoxOptions& aOptions);
00490
00492 BpsComboBoxField(const BpsComboBoxField& aOther);
00493 virtual ~BpsComboBoxField();
00494 virtual BpsComboBoxField* clone() const;
00495 virtual QVariant defaultValue() const;
00496 virtual QVariant display(BpsTableItem* aItem) const;
00497 virtual QWidget* createEditor(QWidget* aParent = 0);
00498 virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
00499 virtual QVariant editorData(QWidget* aEditor) const;
00501 };
00502
00503
00509 class BPSGUI_EXPORT BpsColorComboBoxField : public BpsTableField
00510 {
00511 Q_OBJECT
00512 BPS_PRIVATE(BpsColorComboBoxField)
00513
00514 public:
00522 BpsColorComboBoxField(const QString& aHeader, const QString& aColumn);
00523
00525 BpsColorComboBoxField(const BpsColorComboBoxField& aOther);
00526 virtual ~BpsColorComboBoxField();
00527 virtual BpsColorComboBoxField* clone() const;
00528 virtual QVariant defaultValue() const;
00529 virtual QVariant decoration(BpsTableItem* aItem) const;
00530 virtual QWidget* createEditor(QWidget* aParent = 0);
00531 virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
00532 virtual QVariant editorData(QWidget* aEditor) const;
00534 };
00535
00536
00540 class BPSGUI_EXPORT BpsBarcodeComboBoxField : public BpsTableField
00541 {
00542 Q_OBJECT
00543 BPS_PRIVATE(BpsBarcodeComboBoxField)
00544
00545 public:
00553 BpsBarcodeComboBoxField(const QString& aHeader, const QString& aColumn);
00554
00556 BpsBarcodeComboBoxField(const BpsBarcodeComboBoxField& aOther);
00557 virtual ~BpsBarcodeComboBoxField();
00558 virtual QVariant defaultValue() const;
00559 virtual BpsBarcodeComboBoxField* clone() const;
00560 virtual QVariant display(BpsTableItem* aItem) const;
00561 virtual QWidget* createEditor(QWidget* aParent = 0);
00562 virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
00563 virtual QVariant editorData(QWidget* aEditor) const;
00565 };
00566
00567
00581 class BPSGUI_EXPORT BpsRelationInputField : public BpsTableField
00582 {
00583 Q_OBJECT
00584 BPS_PRIVATE(BpsRelationInputField)
00585
00586 public:
00597 BpsRelationInputField(
00598 const QString& aHeader,
00599 const QString& aColumn,
00600 const QString& aRelTable,
00601 const QString& aRelColumn);
00602
00606 QString relTable() const;
00607
00611 QString relColumn() const;
00612
00614 BpsRelationInputField(const BpsRelationInputField& aOther);
00615 virtual ~BpsRelationInputField();
00616 virtual BpsRelationInputField* clone() const;
00617 virtual QVariant display(BpsTableItem* aItem) const;
00618 virtual QWidget* createEditor(QWidget* aParent = 0);
00619 virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
00620 virtual QVariant editorData(QWidget* aEditor) const;
00621 virtual QVariant exp(const QVariant& aValue);
00622 virtual QVariant imp(const QVariant& aValue);
00624 };
00625
00626
00635 class BPSGUI_EXPORT BpsLabelerInputField : public BpsTableField
00636 {
00637 Q_OBJECT
00638 BPS_PRIVATE(BpsLabelerInputField)
00639
00640 public:
00648 BpsLabelerInputField(const QString& aHeader, const QString& aColumn);
00649
00651 BpsLabelerInputField(const BpsLabelerInputField& aOther);
00652 virtual ~BpsLabelerInputField();
00653 virtual BpsLabelerInputField* clone() const;
00654 virtual QVariant display(BpsTableItem* aItem) const;
00655 virtual QWidget* createEditor(QWidget* aParent = 0);
00656 virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
00657 virtual QVariant editorData(QWidget* aEditor) const;
00658 virtual QVariant exp(const QVariant& aValue);
00659 virtual QVariant imp(const QVariant& aValue);
00661 };
00662
00663
00667 class BPSGUI_EXPORT BpsCronEditField : public BpsTableField
00668 {
00669 Q_OBJECT
00670 BPS_PRIVATE(BpsCronEditField)
00671
00672 public:
00680 BpsCronEditField(const QString& aHeader, const QString& aColumn);
00681
00683 BpsCronEditField(const BpsCronEditField& aOther);
00684 virtual ~BpsCronEditField();
00685 virtual QVariant defaultValue() const;
00686 virtual BpsCronEditField* clone() const;
00687 virtual QWidget* createEditor(QWidget* aParent = 0);
00688 virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
00689 virtual QVariant editorData(QWidget* aEditor) const;
00691 };
00692
00696 class BPSGUI_EXPORT BpsStockLocationInputField : public BpsTableField
00697 {
00698 Q_OBJECT
00699 BPS_PRIVATE(BpsStockLocationInputField)
00700
00701 public:
00709 BpsStockLocationInputField(const QString& aHeader, const QString& aColumn);
00710
00712 BpsStockLocationInputField(const BpsStockLocationInputField& aOther);
00713 virtual ~BpsStockLocationInputField();
00714 virtual BpsStockLocationInputField* clone() const;
00715 virtual QVariant display(BpsTableItem* aItem) const;
00716 virtual QWidget* createEditor(QWidget* aParent = 0);
00717 virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
00718 virtual QVariant editorData(QWidget* aEditor) const;
00719 virtual QVariant exp(const QVariant& aValue);
00720 virtual QVariant imp(const QVariant& aValue);
00722 };
00723
00724
00728 class BPSGUI_EXPORT BpsArticleInputField : public BpsTableField
00729 {
00730 Q_OBJECT
00731 BPS_PRIVATE(BpsArticleInputField)
00732
00733 public:
00741 BpsArticleInputField(const QString& aHeader, const QString& aColumn);
00742
00744 BpsArticleInputField(const BpsArticleInputField& aOther);
00745 virtual ~BpsArticleInputField();
00746 virtual BpsArticleInputField* clone() const;
00747 virtual QVariant display(BpsTableItem* aItem) const;
00748 virtual QWidget* createEditor(QWidget* aParent = 0);
00749 virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
00750 virtual QVariant editorData(QWidget* aEditor) const;
00751 virtual QVariant exp(const QVariant& aValue);
00752 virtual QVariant imp(const QVariant& aValue);
00754 };
00755
00756
00760 class BPSGUI_EXPORT BpsPartnerInputField : public BpsTableField
00761 {
00762 Q_OBJECT
00763 BPS_PRIVATE(BpsPartnerInputField)
00764
00765 public:
00773 BpsPartnerInputField(const QString& aHeader, const QString& aColumn);
00774
00776 BpsPartnerInputField(const BpsPartnerInputField& aOther);
00777 virtual ~BpsPartnerInputField();
00778 virtual BpsPartnerInputField* clone() const;
00779 virtual QVariant display(BpsTableItem* aItem) const;
00780 virtual QWidget* createEditor(QWidget* aParent = 0);
00781 virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
00782 virtual QVariant editorData(QWidget* aEditor) const;
00783 virtual QVariant exp(const QVariant& aValue);
00784 virtual QVariant imp(const QVariant& aValue);
00786 };
00787
00788
00796 class BPSGUI_EXPORT BpsImageField : public BpsTableField
00797 {
00798 Q_OBJECT
00799 BPS_PRIVATE(BpsImageField)
00800
00801 public:
00810 BpsImageField(const QString& aHeader, const QString& aColumn, const QSize& aThumbSize);
00811
00813 BpsImageField(const BpsImageField& aOther);
00814 virtual ~BpsImageField();
00815 virtual BpsImageField* clone() const;
00816 virtual QVariant display(BpsTableItem* aItem) const;
00817 virtual QVariant decoration(BpsTableItem* aItem) const;
00818 virtual QWidget* createEditor(QWidget* aParent = 0);
00819 virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
00820 virtual QVariant editorData(QWidget* aEditor) const;
00822 };
00823
00824
00825 #endif // BPSTABLEFIELD_H