


#include <mapperwindow.h>
#include <qaction.h>
#include <qpopupmenu.h>
#include <qmenubar.h>
#include <iwear/i18n.h>
#include <iwlocator/fixedlocator.h>
#include <iwlocator/dummylocator.h>
#include <iwear/configuration.h>

namespace iwear
{
    namespace sensor
    {
	namespace location
	{

MapperWindow::MapperWindow( const std::list<tr1::shared_ptr<iwear::sensor::location::Locator> >& locl, 
	const std::list<tr1::shared_ptr<iwear::sensor::location::wlan_locator> >& wlanl, 
	ServiceManager* sm, EventDispatcher* ed)
    : d_splitter(0),
    d_leftbar(0),
    d_rightfield(0),
    serman(sm),
    evdis(ed)
{
    setup(locl, wlanl);
}

void MapperWindow::setup( const std::list<tr1::shared_ptr<iwear::sensor::location::Locator> >& locl, 
	const std::list<tr1::shared_ptr<iwear::sensor::location::wlan_locator> >& wlanl)
{
//    d_rightfield = new RightField(d_splitter);

    // Setup the menubar stuff... (Actually disabled Dummies...)
    QAction* fileNewAction = new QAction( i18n::trans("&New Connection"), CTRL+Key_N, this, "new" );
    QAction* editCopy = new QAction( i18n::trans("&Copy"), CTRL+Key_C, this, "copy" );

    QPopupMenu* fileMenu = new QPopupMenu( this );
    QPopupMenu* editMenu = new QPopupMenu( this );

    fileNewAction->addTo( fileMenu );
    editCopy->addTo( editMenu );


    QPopupMenu* aboutMenu = new QPopupMenu( this );
    set_databasemenu(fileMenu);
    set_editmenu(editMenu);
    set_viewmenu(editMenu);
    set_extramenu(editMenu);

    menuBar()->insertItem(i18n::trans("&Help"),aboutMenu,0,4);

    // Setup the sub-windows
    d_splitter = new QSplitter(QSplitter::Horizontal,this,"main_split");
    d_leftbar = new LeftBar(d_splitter);
    d_rightfield = new RightField(d_splitter);

    LocationLister* ll = d_leftbar->get_locationlister();

    for( std::list<tr1::shared_ptr<iwear::sensor::location::Locator> >::const_iterator i = locl.begin(); i != locl.end(); ++i )
    {
	ll->add_locator(i->get());
    }

    for( std::list<tr1::shared_ptr<iwear::sensor::location::wlan_locator> >::const_iterator i = wlanl.begin(); i != wlanl.end(); ++i )
    {
	ll->add_wlanlocator(i->get());
    }
    d_splitter->setOpaqueResize( TRUE );
    setCentralWidget(d_splitter); // Important
    // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    act = new Actualizer(serman, ll, *evdis);
    act->Init();
    act->Start();
}

void MapperWindow::set_extramenu( QPopupMenu* xm )
{
    menuBar()->insertItem(i18n::trans("&Extras"),xm,0,3);
}

void MapperWindow::set_viewmenu( QPopupMenu* vm )
{
    menuBar()->insertItem(i18n::trans("&View"),vm,0,2);
}

void MapperWindow::set_editmenu( QPopupMenu* pm )
{
    menuBar()->insertItem(i18n::trans("&Edit"),pm,0,1);
}

void MapperWindow::set_databasemenu( QPopupMenu* dm )
{
    menuBar()->insertItem(i18n::trans("&Database"),dm,0,0);
}

MapperWindow::~MapperWindow()
{
    act->Stop();
    delete d_rightfield;
    delete d_leftbar;
    delete d_splitter;
}

	}
    }
}

/**
 * $Log$
 * Revision 1.2  2005/09/28 13:10:21  plasmahh
 * stuff
 *
 * Revision 1.1  2005/06/01 19:53:21  plasmahh
 * added mapper files
 *
 */
