javamanager/javasettings_qt/src/javaapplicationsettings.h
changeset 61 bf7ee68962da
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javamanager/javasettings_qt/src/javaapplicationsettings.h	Wed Aug 18 09:43:15 2010 +0300
@@ -0,0 +1,120 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#ifndef JAVAAPPLICATIONSETTINGS_H
+#define JAVAAPPLICATIONSETTINGS_H
+
+#include <string>
+#include <vector>
+#include <QString>
+#include <QStringList>
+#include <hbdataformmodelitem.h>
+#include <cmapplsettingsui.h>
+
+namespace java
+{
+namespace settings
+{
+
+/**
+ * Encapsulation of java settings:
+ *   - name (as localized string displayed to user)
+ *   - values (as a list of localized strings displayed to user)
+ *   - current value (one of the values)
+ *   - storage details (name of table, name of column, storage values)
+ * MIDP spec sets requirements for some combinations of settings:
+ *   - some combinations of settings values are considered as sensitive,
+ *     since they can cause privacy exposure or network costs. Whenever
+ *     such a combination is about to be set, the user needs to be
+ *     notified about possible consequences
+ *   - such combinations of settings values are forbidden (mutually exclusive)
+ * Each setting is initialized with a list of sensitive settings counterparts
+ * and mutually exclusive counterparts respectively
+ */
+class JavaApplicationSettings
+{
+public:
+
+    struct NetworkConnection
+        {
+        QString name;
+        uint id;
+        CmApplSettingsUi::SelectionType type;
+        };
+
+    JavaApplicationSettings(const QString& aName,
+                            const QStringList& aValues);
+    JavaApplicationSettings(const QString& aName,
+                            const QStringList& aValues,
+                            const std::wstring& aColumnName,
+                            const std::string& aTableName,
+                            const std::vector<std::wstring>& aStorageValues);
+    JavaApplicationSettings(const QString& aName,
+                            const QStringList& aValues,
+                            const std::wstring& aColumnName,
+                            const std::string& aTableName,
+                            const std::vector<std::wstring>& aStorageValues,
+                            const std::wstring& aFilterColumnName,
+                            const std::wstring& aFilterColumnValue,
+                            const std::wstring& aValuesColumnName);
+    JavaApplicationSettings();
+
+    const QString& getName() const;
+    const QStringList& getValues() const;
+    void setCurrentValue(int aCurrentValue);
+    int getCurrentValue();
+    const QString getValue(int aValueIndex);
+    int getValueIndex(const QString& aValue);
+    void removeValue(int aValueIndex);
+    void setId(HbDataFormModelItem * aId);
+    HbDataFormModelItem * getId();
+    const QList<JavaApplicationSettings*>& getHighRiskList() const;
+    void setHighRiskList(const QList<JavaApplicationSettings*>& aHighRiskList);
+    const QList<JavaApplicationSettings*>& getMutuallyExclusiveList() const;
+    void setMutuallyExclusiveList(const QList<JavaApplicationSettings*>& aMutuallyExclusiveList);
+    const std::wstring& getColumnName();
+    const std::string& getTableName();
+    const std::wstring& getValuesColumnName();
+    const std::wstring& getFilterColumnName();
+    const std::wstring& getFilterColumnValue();
+    const std::vector<std::wstring>& getStorageValues();
+    void setStorageValuesFilter(const std::wstring& aStorageValuesFilter);
+    const std::wstring& getStorageValuesFilter();
+    void connectToUi();
+    void disconnectFromUi();
+    bool isConnectedToUi();
+
+private:
+    QString mName;
+    QStringList mValues;
+    HbDataFormModelItem * mId;
+    QList<JavaApplicationSettings*> mHighRiskList;
+    QList<JavaApplicationSettings*> mMutuallyExclusiveList;
+    int mCurrentValue;
+    std::wstring mColumnName;
+    std::string mTableName;
+    std::vector<std::wstring> mStorageValues;
+    std::wstring mStorageValuesFilter;
+    std::wstring mValuesColumnName;
+    std::wstring mFilterColumnName;
+    std::wstring mFilterColumnValue;
+    bool mConnectedToUi;
+};
+
+} // namespace settings
+} // namespace java
+
+#endif // JAVAAPPLICATIONSETTINGS_H