javamanager/javasettings_qt/src/javaapplicationsettings.h
changeset 50 023eef975703
equal deleted inserted replaced
49:35baca0e7a2e 50:023eef975703
       
     1 /*
       
     2 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 #ifndef JAVAAPPLICATIONSETTINGS_H
       
    18 #define JAVAAPPLICATIONSETTINGS_H
       
    19 
       
    20 #include <string>
       
    21 #include <vector>
       
    22 #include <QString>
       
    23 #include <QStringList>
       
    24 #include <hbdataformmodelitem.h>
       
    25 #include <cmapplsettingsui.h>
       
    26 
       
    27 namespace java
       
    28 {
       
    29 namespace settings
       
    30 {
       
    31 
       
    32 /**
       
    33  * Encapsulation of java settings:
       
    34  *   - name (as localized string displayed to user)
       
    35  *   - values (as a list of localized strings displayed to user)
       
    36  *   - current value (one of the values)
       
    37  *   - storage details (name of table, name of column, storage values)
       
    38  * MIDP spec sets requirements for some combinations of settings:
       
    39  *   - some combinations of settings values are considered as sensitive,
       
    40  *     since they can cause privacy exposure or network costs. Whenever
       
    41  *     such a combination is about to be set, the user needs to be
       
    42  *     notified about possible consequences
       
    43  *   - such combinations of settings values are forbidden (mutually exclusive)
       
    44  * Each setting is initialized with a list of sensitive settings counterparts
       
    45  * and mutually exclusive counterparts respectively
       
    46  */
       
    47 class JavaApplicationSettings
       
    48 {
       
    49 public:
       
    50 
       
    51     struct NetworkConnection
       
    52         {
       
    53         QString name;
       
    54         uint id;
       
    55         CmApplSettingsUi::SelectionType type;
       
    56         };
       
    57 
       
    58     JavaApplicationSettings(const QString& aName,
       
    59                             const QStringList& aValues);
       
    60     JavaApplicationSettings(const QString& aName,
       
    61                             const QStringList& aValues,
       
    62                             const std::wstring& aColumnName,
       
    63                             const std::string& aTableName,
       
    64                             const std::vector<std::wstring>& aStorageValues);
       
    65     JavaApplicationSettings(const QString& aName,
       
    66                             const QStringList& aValues,
       
    67                             const std::wstring& aColumnName,
       
    68                             const std::string& aTableName,
       
    69                             const std::vector<std::wstring>& aStorageValues,
       
    70                             const std::wstring& aFilterColumnName,
       
    71                             const std::wstring& aFilterColumnValue,
       
    72                             const std::wstring& aValuesColumnName);
       
    73     JavaApplicationSettings();
       
    74 
       
    75     const QString& getName() const;
       
    76     const QStringList& getValues() const;
       
    77     void setCurrentValue(int aCurrentValue);
       
    78     int getCurrentValue();
       
    79     const QString getValue(int aValueIndex);
       
    80     int getValueIndex(const QString& aValue);
       
    81     void removeValue(int aValueIndex);
       
    82     void setId(HbDataFormModelItem * aId);
       
    83     HbDataFormModelItem * getId();
       
    84     const QList<JavaApplicationSettings*>& getHighRiskList() const;
       
    85     void setHighRiskList(const QList<JavaApplicationSettings*>& aHighRiskList);
       
    86     const QList<JavaApplicationSettings*>& getMutuallyExclusiveList() const;
       
    87     void setMutuallyExclusiveList(const QList<JavaApplicationSettings*>& aMutuallyExclusiveList);
       
    88     const std::wstring& getColumnName();
       
    89     const std::string& getTableName();
       
    90     const std::wstring& getValuesColumnName();
       
    91     const std::wstring& getFilterColumnName();
       
    92     const std::wstring& getFilterColumnValue();
       
    93     const std::vector<std::wstring>& getStorageValues();
       
    94     void setStorageValuesFilter(const std::wstring& aStorageValuesFilter);
       
    95     const std::wstring& getStorageValuesFilter();
       
    96     void connectToUi();
       
    97     void disconnectFromUi();
       
    98     bool isConnectedToUi();
       
    99 
       
   100 private:
       
   101     QString mName;
       
   102     QStringList mValues;
       
   103     HbDataFormModelItem * mId;
       
   104     QList<JavaApplicationSettings*> mHighRiskList;
       
   105     QList<JavaApplicationSettings*> mMutuallyExclusiveList;
       
   106     int mCurrentValue;
       
   107     std::wstring mColumnName;
       
   108     std::string mTableName;
       
   109     std::vector<std::wstring> mStorageValues;
       
   110     std::wstring mStorageValuesFilter;
       
   111     std::wstring mValuesColumnName;
       
   112     std::wstring mFilterColumnName;
       
   113     std::wstring mFilterColumnValue;
       
   114     bool mConnectedToUi;
       
   115 };
       
   116 
       
   117 } // namespace settings
       
   118 } // namespace java
       
   119 
       
   120 #endif // JAVAAPPLICATIONSETTINGS_H