/******************************************************************************
 * Copyright AllSeen Alliance. All rights reserved.
 *
 *    Permission to use, copy, modify, and/or distribute this software for any
 *    purpose with or without fee is hereby granted, provided that the above
 *    copyright notice and this permission notice appear in all copies.
 *
 *    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 *    WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 *    MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 *    ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 *    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 *    ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 *    OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 ******************************************************************************/

#include "alljoyn/controlpanel/ErrorWidget.h"
#include "../ControlPanelConstants.h"

#define ERROR_WIDGET_LABEL "NOT AVAILABLE"

namespace ajn {
namespace services {
using namespace cpsConsts;

ErrorWidget::ErrorWidget(qcc::String const& name, Widget* rootWidget, Widget* originalWidget, ControlPanelDevice* device) :
    Widget(name, rootWidget, device, WIDGET_TYPE_ERROR), m_OriginalWidget(originalWidget)
{
    m_Label.assign(ERROR_WIDGET_LABEL);
}

ErrorWidget::~ErrorWidget()
{
    if (m_OriginalWidget) {
        delete m_OriginalWidget;
    }
}

WidgetBusObject* ErrorWidget::createWidgetBusObject(BusAttachment* bus, qcc::String const& objectPath,
                                                    uint16_t langIndx, QStatus& status)
{
    return NULL;
}

QStatus ErrorWidget::registerObjects(BusAttachment* bus, qcc::String const& objectPath)
{
    return ER_OK;
}

QStatus ErrorWidget::unregisterObjects(BusAttachment* bus)
{
    if (m_OriginalWidget) {
        return m_OriginalWidget->unregisterObjects(bus);
    }
    return ER_OK;
}

Widget* ErrorWidget::getOriginalWidget() const
{
    return m_OriginalWidget;
}

} /* namespace services */
} /* namespace ajn */
