ClassificationWidget.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef CLASSIFICATIONWIDGET_H
00011 #define CLASSIFICATIONWIDGET_H
00012
00013 #include "Classification.h"
00014 #include "ConfigurationSettings.h"
00015 #include "DynamicObject.h"
00016 #include "SafePtr.h"
00017
00018 #include <QtGui/QWidget>
00019
00020 #include <boost/any.hpp>
00021 #include <string>
00022 #include <vector>
00023
00024 class DateTime;
00025 class QComboBox;
00026 class QDate;
00027 class QDateEdit;
00028 class QListWidget;
00029 class QPushButton;
00030 class QSpinBox;
00031 class QStackedWidget;
00032 class QTabWidget;
00033 class QTextEdit;
00034 class Subject;
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069 class ClassificationWidget : public QWidget
00070 {
00071 Q_OBJECT
00072
00073 public:
00074 SETTING_PTR(Favorites, SecurityMarkings, DynamicObject)
00075
00076
00077
00078
00079
00080
00081
00082 ClassificationWidget(QWidget* pParent = NULL);
00083
00084
00085
00086
00087 virtual ~ClassificationWidget();
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104 void setClassification(Classification* pClassification, bool initializeWidgets = true);
00105
00106 protected:
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116 virtual void showEvent(QShowEvent* pEvent);
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127 virtual void hideEvent(QHideEvent* pEvent);
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140 bool serializeFavorites();
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152 bool deserializeFavorites();
00153
00154
00155
00156
00157 void updateFavoritesCombo();
00158
00159
00160
00161
00162
00163
00164
00165
00166 void clearFavorites();
00167
00168 protected slots:
00169
00170
00171
00172
00173
00174
00175
00176 void updateMarkings();
00177
00178 private:
00179 ClassificationWidget(const ClassificationWidget& rhs);
00180 ClassificationWidget& operator=(const ClassificationWidget& rhs);
00181
00182 QComboBox* mpClassLevelCombo;
00183 QTabWidget* mpTabWidget;
00184 QStackedWidget* mpValueStack;
00185 QListWidget* mpCodewordList;
00186 QListWidget* mpSystemList;
00187 QListWidget* mpFileReleasingList;
00188 QListWidget* mpCountryCodeList;
00189 QListWidget* mpExemptionList;
00190 QPushButton* mpAddButton;
00191 QComboBox* mpClassReasonCombo;
00192 QComboBox* mpDeclassTypeCombo;
00193 QDateEdit* mpDeclassDateEdit;
00194 QPushButton* mpResetDeclassDateButton;
00195 QComboBox* mpFileDowngradeCombo;
00196 QDateEdit* mpDowngradeDateEdit;
00197 QPushButton* mpResetDowngradeDateButton;
00198 QComboBox* mpFileControlCombo;
00199 QTextEdit* mpDescriptionEdit;
00200 QSpinBox* mpCopyNumberSpinBox;
00201 QSpinBox* mpNumberOfCopiesSpinBox;
00202 QTextEdit* mpMarkingsEdit;
00203 QComboBox* mpFavoritesCombo;
00204
00205 SafePtr<Classification> mpClass;
00206 std::vector<Classification*> mlstFavorites;
00207 bool mNeedsInitialization;
00208
00209 private:
00210 void resetToDefault(QWidget* pWidget = NULL);
00211 void initialize();
00212
00213 QString getListString(QListWidget* pListWidget);
00214 void selectListFromString(QListWidget* pListWidget, const QString& strText);
00215 void selectComboFromString(QComboBox* pComboBox, const QString& strText);
00216 void setDateEdit(QDateEdit* pDateEdit, const DateTime* pDateTime);
00217
00218 void classificationModified(Subject& subject, const std::string& signal, const boost::any& value);
00219
00220 private slots:
00221 void setLevel(const QString& level);
00222 void updateSize();
00223 void checkAddButton(int iIndex);
00224 void setCodewords();
00225 void setSystem();
00226 void setFileReleasing();
00227 void setCountryCode();
00228 void setDeclassificationExemption();
00229 void addListItem();
00230 void resetList();
00231 void setClassificationReason(const QString& reason);
00232 void setDeclassificationType(const QString& declassType);
00233 void setDeclassificationDate(const QDate& declassDate);
00234 void resetDeclassificationDate();
00235 void setFileDowngrade(const QString& fileDowngrade);
00236 void setDowngradeDate(const QDate& downgradeDate);
00237 void resetDowngradeDate();
00238 void setFileControl(const QString& fileControl);
00239 void setDescription();
00240 void setFileCopyNumber(const QString& copyNumber);
00241 void setFileNumberOfCopies(const QString& numberOfCopies);
00242 void favoriteSelected();
00243 void addFavoriteItem();
00244 void removeFavoriteItem();
00245 };
00246
00247 #endif