Eclipse SUMO - Simulation of Urban MObility
GUIParameterTableWindow Class Reference

A window containing a gl-object's parameter. More...

#include <GUIParameterTableWindow.h>

Inheritance diagram for GUIParameterTableWindow:
[legend]
Collaboration diagram for GUIParameterTableWindow:
[legend]

Public Member Functions

void checkFont (const std::string &text)
 ensure that the font covers the given text More...
 
void closeBuilding (const Parameterised *p=0)
 Closes the building of the table. More...
 
 GUIParameterTableWindow (GUIMainWindow &app, GUIGlObject &o, const std::string &title="")
 Constructor. More...
 
void loadWindowPos ()
 
void removeObject (GUIGlObject *const o)
 Lets this window know the object shown is being deleted. More...
 
void saveWindowPos ()
 
 ~GUIParameterTableWindow ()
 Destructor. More...
 
Row adding functions
template<class T >
void mkItem (const char *name, bool dynamic, ValueSource< T > *src)
 Adds a row which obtains its value from a ValueSource. More...
 
void mkItem (const char *name, bool dynamic, std::string value)
 Adds a row which shows a string-value. More...
 
void mkItem (const char *name, bool dynamic, unsigned value)
 Adds a row which shows a unsigned-value. More...
 
void mkItem (const char *name, bool dynamic, int value)
 Adds a row which shows a integer-value. More...
 
void mkItem (const char *name, bool dynamic, long long int value)
 Adds a row which shows a 64 bit integer-value. More...
 
void mkItem (const char *name, bool dynamic, double value)
 Adds a row which shows a double-value. More...
 
FOX-callbacks
long onSimStep (FXObject *, FXSelector, void *)
 Updates the table due to a simulation step. More...
 
long onTableSelected (FXObject *, FXSelector, void *)
 Does nothing. More...
 
long onTableDeselected (FXObject *, FXSelector, void *)
 Does nothing. More...
 
long onRightButtonPress (FXObject *, FXSelector, void *)
 Shows a popup. More...
 
long onLeftBtnPress (FXObject *, FXSelector, void *)
 directly opens tracker when clicking on last column More...
 

Static Public Member Functions

static void updateAll ()
 Updates all instances. More...
 

Protected Member Functions

void updateTable ()
 Updates the table. More...
 

Protected Attributes

int myDefaultHeight
 
int myDefaultWidth
 
int myDefaultX
 
int myDefaultY
 
int myMinSize
 
int myMinTitlebarHeight
 
FXWindow * myParent
 The window for which the position is being stored. More...
 
bool myStoreSize
 whether window size shall be stored More...
 
std::string myWindowName
 Name for storing in the registry. More...
 

Static Protected Attributes

static std::vector< GUIParameterTableWindow * > myContainer
 The container of items that shall be updated. More...
 
static FXMutex myGlobalContainerLock
 The mutex used to avoid concurrent updates of the instance container. More...
 

Static Private Member Functions

static int numParams (const GUIGlObject *obj)
 returns the number of parameters if obj is Parameterised and 0 otherwise More...
 

Private Attributes

GUIMainWindowmyApplication
 The main application window. More...
 
unsigned myCurrentPos
 The index of the next row to add - used while building. More...
 
std::vector< GUIParameterTableItemInterface * > myItems
 The list of table rows. More...
 
FXMutex myLock
 A lock assuring save updates in case of object deletion. More...
 
GUIGlObjectmyObject
 The object to get the information from. More...
 
FXTable * myTable
 The table to display the information in. More...
 
int myTrackerY
 y-position for opening new tracker window More...
 

Detailed Description

A window containing a gl-object's parameter.

This class realises a view on some parameter of a gl-object. The gl-object itself is responsible for filling this table.

After allocating such a table, the object should fill the rows by calling one of the mkItem-methods for each. The building is closed using closeBuilding what forces the table to be displayed.

Each row is represented using an instance of GUIParameterTableItemInterface.

Definition at line 61 of file GUIParameterTableWindow.h.

Constructor & Destructor Documentation

◆ GUIParameterTableWindow()

GUIParameterTableWindow::GUIParameterTableWindow ( GUIMainWindow app,
GUIGlObject o,
const std::string &  title = "" 
)

Constructor.

Parameters
[in]appThe application this window belongs to
[in]oThe gl-object this table describes

Definition at line 65 of file GUIParameterTableWindow.cpp.

References GUIGlObject::addParameterTable(), APP_TABLE, GUIIconSubSys::getIcon(), GUIPersistentWindowPos::loadWindowPos(), MID_TABLE, myContainer, myGlobalContainerLock, myLock, myObject, myTable, and TL.

◆ ~GUIParameterTableWindow()

GUIParameterTableWindow::~GUIParameterTableWindow ( )

Member Function Documentation

◆ checkFont()

void GUIParameterTableWindow::checkFont ( const std::string &  text)

ensure that the font covers the given text

Definition at line 280 of file GUIParameterTableWindow.cpp.

References GUIMainWindow::getFallbackFont(), myApplication, and myTable.

Referenced by GUILane::getParameterWindow().

Here is the caller graph for this function:

◆ closeBuilding()

void GUIParameterTableWindow::closeBuilding ( const Parameterised p = 0)

Closes the building of the table.

Adds the table to the list of child windows of the applications also telling the application that the window should be updated in each simulation step. Shows the table.

See also
GUIMainWindow::addChild

Definition at line 252 of file GUIParameterTableWindow.cpp.

References GUIMainWindow::addChild(), Parameterised::getParametersMap(), MAX2(), mkItem(), myApplication, myItems, myObject, and myTable.

Referenced by GUIBusStop::getParameterWindow(), GUICalibrator::getParameterWindow(), GUIChargingStation::getParameterWindow(), GUIE3Collector::MyWrapper::getParameterWindow(), GUIInstantInductLoop::MyWrapper::getParameterWindow(), GUIJunctionWrapper::getParameterWindow(), GUILaneSpeedTrigger::getParameterWindow(), GUIOverheadWire::getParameterWindow(), GUIOverheadWireClamp::getParameterWindow(), GUIParkingArea::getParameterWindow(), GUITrafficLightLogicWrapper::getParameterWindow(), GUIVehicle::getParameterWindow(), GUIMEInductLoop::MyWrapper::getParameterWindow(), GUIMEVehicle::getParameterWindow(), GNEAdditional::getParameterWindow(), GNEGenericData::getParameterWindow(), GNEDemandElement::getParameterWindow(), GNEInternalLane::getParameterWindow(), GNENetworkElement::getParameterWindow(), GNENet::getParameterWindow(), GUIContainer::getParameterWindow(), GUIE2Collector::MyWrapper::getParameterWindow(), GUIEdge::getParameterWindow(), GUIInductLoop::MyWrapper::getParameterWindow(), GUILane::getParameterWindow(), GUINet::getParameterWindow(), GUIPerson::getParameterWindow(), GUIPointOfInterest::getParameterWindow(), GUIPolygon::getParameterWindow(), GUIVehicle::getTypeParameterWindow(), GUIMEVehicle::getTypeParameterWindow(), GUIContainer::getTypeParameterWindow(), GUIEdge::getTypeParameterWindow(), GUIPerson::getTypeParameterWindow(), GUIContainer::GUIContainerPopupMenu::onCmdShowPlan(), and GUIPerson::GUIPersonPopupMenu::onCmdShowPlan().

Here is the caller graph for this function:

◆ loadWindowPos()

void GUIPersistentWindowPos::loadWindowPos ( )
inherited

◆ mkItem() [1/6]

void GUIParameterTableWindow::mkItem ( const char *  name,
bool  dynamic,
double  value 
)

Adds a row which shows a double-value.

Parameters
[in]nameThe name of the row entry
[in]dynamicInformation whether the entry is dynamic
[in]valueThe value to show
Todo:
the dynamic-parameter is obsolete

Definition at line 208 of file GUIParameterTableWindow.cpp.

References myCurrentPos, myItems, and myTable.

◆ mkItem() [2/6]

void GUIParameterTableWindow::mkItem ( const char *  name,
bool  dynamic,
int  value 
)

Adds a row which shows a integer-value.

Parameters
[in]nameThe name of the row entry
[in]dynamicInformation whether the entry is dynamic
[in]valueThe value to show
Todo:
the dynamic-parameter is obsolete

Definition at line 224 of file GUIParameterTableWindow.cpp.

References myCurrentPos, myItems, and myTable.

◆ mkItem() [3/6]

void GUIParameterTableWindow::mkItem ( const char *  name,
bool  dynamic,
long long int  value 
)

Adds a row which shows a 64 bit integer-value.

Parameters
[in]nameThe name of the row entry
[in]dynamicInformation whether the entry is dynamic
[in]valueThe value to show
Todo:
the dynamic-parameter is obsolete

Definition at line 232 of file GUIParameterTableWindow.cpp.

References myCurrentPos, myItems, and myTable.

◆ mkItem() [4/6]

void GUIParameterTableWindow::mkItem ( const char *  name,
bool  dynamic,
std::string  value 
)

Adds a row which shows a string-value.

Parameters
[in]nameThe name of the row entry
[in]dynamicInformation whether the entry is dynamic
[in]valueThe value to show
Todo:
the dynamic-parameter is obsolete(?)

Definition at line 200 of file GUIParameterTableWindow.cpp.

References myCurrentPos, myItems, and myTable.

◆ mkItem() [5/6]

void GUIParameterTableWindow::mkItem ( const char *  name,
bool  dynamic,
unsigned  value 
)

Adds a row which shows a unsigned-value.

Parameters
[in]nameThe name of the row entry
[in]dynamicInformation whether the entry is dynamic
[in]valueThe value to show
Todo:
the dynamic-parameter is obsolete

Definition at line 216 of file GUIParameterTableWindow.cpp.

References myCurrentPos, myItems, and myTable.

◆ mkItem() [6/6]

template<class T >
void GUIParameterTableWindow::mkItem ( const char *  name,
bool  dynamic,
ValueSource< T > *  src 
)
inline

Adds a row which obtains its value from a ValueSource.

Parameters
[in]nameThe name of the row entry
[in]dynamicInformation whether the entry is dynamic
[in]srcThe value source to use

Definition at line 107 of file GUIParameterTableWindow.h.

References myCurrentPos, myItems, and myTable.

Referenced by closeBuilding(), GUIBusStop::getParameterWindow(), GUICalibrator::getParameterWindow(), GUIChargingStation::getParameterWindow(), GUIE3Collector::MyWrapper::getParameterWindow(), GUIInstantInductLoop::MyWrapper::getParameterWindow(), GUIJunctionWrapper::getParameterWindow(), GUILaneSpeedTrigger::getParameterWindow(), GUIOverheadWire::getParameterWindow(), GUIParkingArea::getParameterWindow(), GUITrafficLightLogicWrapper::getParameterWindow(), GUIVehicle::getParameterWindow(), GUIMEInductLoop::MyWrapper::getParameterWindow(), GUIMEVehicle::getParameterWindow(), GNEAdditional::getParameterWindow(), GNEGenericData::getParameterWindow(), GNEDemandElement::getParameterWindow(), GNENetworkElement::getParameterWindow(), GUIContainer::getParameterWindow(), GUIE2Collector::MyWrapper::getParameterWindow(), GUIEdge::getParameterWindow(), GUIInductLoop::MyWrapper::getParameterWindow(), GUILane::getParameterWindow(), GUINet::getParameterWindow(), GUIPerson::getParameterWindow(), GUIPointOfInterest::getParameterWindow(), GUIPolygon::getParameterWindow(), GUIVehicle::getTypeParameterWindow(), GUIMEVehicle::getTypeParameterWindow(), GUIContainer::getTypeParameterWindow(), GUIEdge::getTypeParameterWindow(), GUIPerson::getTypeParameterWindow(), GUIContainer::GUIContainerPopupMenu::onCmdShowPlan(), and GUIPerson::GUIPersonPopupMenu::onCmdShowPlan().

Here is the caller graph for this function:

◆ numParams()

int GUIParameterTableWindow::numParams ( const GUIGlObject obj)
staticprivate

returns the number of parameters if obj is Parameterised and 0 otherwise

Definition at line 298 of file GUIParameterTableWindow.cpp.

References Parameterised::getParametersMap().

◆ onLeftBtnPress()

long GUIParameterTableWindow::onLeftBtnPress ( FXObject *  sender,
FXSelector  sel,
void *  eventData 
)

◆ onRightButtonPress()

long GUIParameterTableWindow::onRightButtonPress ( FXObject *  ,
FXSelector  ,
void *  eventData 
)

Shows a popup.

Callback for right-mouse-button pressing event. Obtains the selected row and determines whether it is dynamic. If so, a popup-menu which allows to open a tracker for this value is built and shown.

See also
GUIParameterTableItemInterface
GUIParam_PopupMenuInterface

Definition at line 169 of file GUIParameterTableWindow.cpp.

References GUIDesigns::buildFXMenuCommand(), GUIParameterTableItemInterface::dynamic(), GUIParameterTableItemInterface::getdoubleSourceCopy(), GUIParameterTableItemInterface::getName(), MID_OPENTRACKER, myApplication, myItems, myObject, and myTable.

Referenced by FXDEFMAP().

Here is the caller graph for this function:

◆ onSimStep()

long GUIParameterTableWindow::onSimStep ( FXObject *  ,
FXSelector  ,
void *   
)

Updates the table due to a simulation step.

Definition at line 124 of file GUIParameterTableWindow.cpp.

References updateTable().

Referenced by FXDEFMAP().

Here is the caller graph for this function:

◆ onTableDeselected()

long GUIParameterTableWindow::onTableDeselected ( FXObject *  ,
FXSelector  ,
void *   
)

Does nothing.

Todo:
Recheck whether this is needed (to override FXTable-behaviour?)

Definition at line 139 of file GUIParameterTableWindow.cpp.

Referenced by FXDEFMAP().

Here is the caller graph for this function:

◆ onTableSelected()

long GUIParameterTableWindow::onTableSelected ( FXObject *  ,
FXSelector  ,
void *   
)

Does nothing.

Todo:
Recheck whether this is needed (to override FXTable-behaviour?)

Definition at line 133 of file GUIParameterTableWindow.cpp.

Referenced by FXDEFMAP().

Here is the caller graph for this function:

◆ removeObject()

void GUIParameterTableWindow::removeObject ( GUIGlObject *const  o)

Lets this window know the object shown is being deleted.

Parameters
[in]oThe deleted (shown) object

Definition at line 117 of file GUIParameterTableWindow.cpp.

References myLock, and myObject.

◆ saveWindowPos()

void GUIPersistentWindowPos::saveWindowPos ( )
inherited

Definition at line 71 of file GUIPersistentWindowPos.cpp.

References GUIPersistentWindowPos::myParent, GUIPersistentWindowPos::myStoreSize, and GUIPersistentWindowPos::myWindowName.

Referenced by GUIDialog_ViewSettings::hide(), and GUIPersistentWindowPos::~GUIPersistentWindowPos().

Here is the caller graph for this function:

◆ updateAll()

static void GUIParameterTableWindow::updateAll ( )
inlinestatic

Updates all instances.

Definition at line 201 of file GUIParameterTableWindow.h.

References myContainer, and myGlobalContainerLock.

◆ updateTable()

void GUIParameterTableWindow::updateTable ( )
protected

Updates the table.

Goes through all entries and updates them using GUIParameterTableItemInterface::update.

See also
GUIParameterTableItemInterface::update

Definition at line 240 of file GUIParameterTableWindow.cpp.

References myItems, myLock, and myObject.

Referenced by onSimStep().

Here is the caller graph for this function:

Field Documentation

◆ myApplication

GUIMainWindow* GUIParameterTableWindow::myApplication
private

The main application window.

Definition at line 231 of file GUIParameterTableWindow.h.

Referenced by checkFont(), closeBuilding(), onLeftBtnPress(), onRightButtonPress(), and ~GUIParameterTableWindow().

◆ myContainer

std::vector< GUIParameterTableWindow * > GUIParameterTableWindow::myContainer
staticprotected

The container of items that shall be updated.

Definition at line 221 of file GUIParameterTableWindow.h.

Referenced by GUIParameterTableWindow(), updateAll(), and ~GUIParameterTableWindow().

◆ myCurrentPos

unsigned GUIParameterTableWindow::myCurrentPos
private

The index of the next row to add - used while building.

Definition at line 240 of file GUIParameterTableWindow.h.

Referenced by mkItem().

◆ myDefaultHeight

int GUIPersistentWindowPos::myDefaultHeight
protectedinherited

Definition at line 65 of file GUIPersistentWindowPos.h.

Referenced by GUIPersistentWindowPos::loadWindowPos().

◆ myDefaultWidth

int GUIPersistentWindowPos::myDefaultWidth
protectedinherited

Definition at line 64 of file GUIPersistentWindowPos.h.

Referenced by GUIPersistentWindowPos::loadWindowPos().

◆ myDefaultX

int GUIPersistentWindowPos::myDefaultX
protectedinherited

Definition at line 61 of file GUIPersistentWindowPos.h.

Referenced by GUIPersistentWindowPos::loadWindowPos().

◆ myDefaultY

int GUIPersistentWindowPos::myDefaultY
protectedinherited

Definition at line 62 of file GUIPersistentWindowPos.h.

Referenced by GUIPersistentWindowPos::loadWindowPos().

◆ myGlobalContainerLock

FXMutex GUIParameterTableWindow::myGlobalContainerLock
staticprotected

The mutex used to avoid concurrent updates of the instance container.

Definition at line 218 of file GUIParameterTableWindow.h.

Referenced by GUIParameterTableWindow(), updateAll(), and ~GUIParameterTableWindow().

◆ myItems

std::vector<GUIParameterTableItemInterface*> GUIParameterTableWindow::myItems
private

The list of table rows.

Definition at line 234 of file GUIParameterTableWindow.h.

Referenced by closeBuilding(), mkItem(), onLeftBtnPress(), onRightButtonPress(), updateTable(), and ~GUIParameterTableWindow().

◆ myLock

FXMutex GUIParameterTableWindow::myLock
mutableprivate

A lock assuring save updates in case of object deletion.

Definition at line 243 of file GUIParameterTableWindow.h.

Referenced by GUIParameterTableWindow(), removeObject(), updateTable(), and ~GUIParameterTableWindow().

◆ myMinSize

int GUIPersistentWindowPos::myMinSize
protectedinherited

Definition at line 67 of file GUIPersistentWindowPos.h.

Referenced by GUIPersistentWindowPos::loadWindowPos().

◆ myMinTitlebarHeight

int GUIPersistentWindowPos::myMinTitlebarHeight
protectedinherited

Definition at line 68 of file GUIPersistentWindowPos.h.

Referenced by GUIPersistentWindowPos::loadWindowPos().

◆ myObject

GUIGlObject* GUIParameterTableWindow::myObject
private

◆ myParent

FXWindow* GUIPersistentWindowPos::myParent
protectedinherited

The window for which the position is being stored.

Definition at line 53 of file GUIPersistentWindowPos.h.

Referenced by GUIPersistentWindowPos::loadWindowPos(), and GUIPersistentWindowPos::saveWindowPos().

◆ myStoreSize

bool GUIPersistentWindowPos::myStoreSize
protectedinherited

whether window size shall be stored

Definition at line 59 of file GUIPersistentWindowPos.h.

Referenced by GUIPersistentWindowPos::loadWindowPos(), and GUIPersistentWindowPos::saveWindowPos().

◆ myTable

FXTable* GUIParameterTableWindow::myTable
private

The table to display the information in.

Definition at line 228 of file GUIParameterTableWindow.h.

Referenced by checkFont(), closeBuilding(), GUIParameterTableWindow(), mkItem(), onLeftBtnPress(), and onRightButtonPress().

◆ myTrackerY

int GUIParameterTableWindow::myTrackerY
private

y-position for opening new tracker window

Definition at line 237 of file GUIParameterTableWindow.h.

Referenced by onLeftBtnPress().

◆ myWindowName

std::string GUIPersistentWindowPos::myWindowName
protectedinherited

Name for storing in the registry.

Definition at line 56 of file GUIPersistentWindowPos.h.

Referenced by GUIPersistentWindowPos::loadWindowPos(), and GUIPersistentWindowPos::saveWindowPos().


The documentation for this class was generated from the following files: