javamanager/javasettings_qt/src/javaapplicationsettings.h
author hgs
Fri, 09 Jul 2010 16:35:45 +0300
changeset 50 023eef975703
permissions -rw-r--r--
v2.2.4_1

/*
* 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