SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
ipropertyeditor.h File Reference
#include <QString>
#include "selection/selectionmanager.h"
Include dependency graph for ipropertyeditor.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  IPropertyEditor
 Abstract interface every concrete editor implements. More...
 

Detailed Description

Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
Date
2026
License\n GPL-3.0-or-later

Slice BM Phase 6.3.1 — abstract IPropertyEditor interface.

Substrate for every concrete object editor (Slice BN node/link editors, BO subcatchment/raingage/infiltration/LID, BP pollutant/landuse/treatment/ aquifer/snowpack/groundwater, BQ curves/transect/xsection/culvert/patterns /timeseries/UH, BR controls, BS climatology+RDII, BT defaults). The PropertyEditorRegistry maps a (kind) string to a factory that materialises the right concrete editor when PropertiesPanel resolves a selection.

Lifecycle on a typical right-side panel binding:

  1. User selects an object in Object Browser / Attribute Table / Map.
  2. PropertiesPanel translates the SWMMObjectRef to an "editor kind" string (e.g. "junction", "outfall", "curve", "timeseries").
  3. PropertiesPanel asks the registry for a factory; if missing, the legacy property-tree path is used (unchanged from Slice AG.3).
  4. The returned editor builds its widgets, attaches to the engine, and is shown. apply() pushes user-entered values back through engine setters.

Engine ownership: editors hold (engine, name) just like the existing property adapters in swmm{node,link,subcatch}propertyadapter.h. The registry does NOT own the engine; editors look it up through whatever adapter their concrete BN/BO/BP slice introduces.