This is a start to fixing up XML names for GeoServer components. Initial support includes:
New workspace (also limited to 10 characters)
New/existing layer group
New/QGIS layer style
Currently, no support for adding QGIS or PostGIS layers or drag/drop operations, see below.
The new widgets to handle XML validation:
GSNameWidget - has name validation, contextual help, selection from existing names; outputs the defined name and whether the name choice is an overwrite of an existing name or should be unique
GSNameDialog - simple dialog wrapper for name widget
InfoIcon - simple help icon that shows a tool tip on hover
The shift in UX revolves around the GSNameWidget handling the user interaction of whether to overwrite an existing name. This means such existing names need to be gathered and passed to the widget/dialog. Then, the user is notified when choosing a name if it will be an overwrite, unless it has to be unique. Essentially, any dialog that now notifies the user that a name already existing can be replaced with an interactive dialog for choosing to overwrite or creating a new name.
For QGIS/PostGIS layers or drag/drop operations, there needs to be some more significant changes, as there appears to be a static naming relation between datastore/layer/style upon creation to be resolved. The user needs to be able to have individual control over all of the naming to avoid naming errors and any conflicts with existing component names. This means no naming should be automated, though sensible defaults for the name widget will make things quicker, even for delegated cells within a table widget.
If this UX approach is reasonable, I will continue with its integration.
This is a start to fixing up XML names for GeoServer components. Initial support includes:
Currently, no support for adding QGIS or PostGIS layers or drag/drop operations, see below.
The new widgets to handle XML validation:
GSNameWidget
- has name validation, contextual help, selection from existing names; outputs the defined name and whether the name choice is an overwrite of an existing name or should be uniqueGSNameDialog
- simple dialog wrapper for name widgetInfoIcon
- simple help icon that shows a tool tip on hoverThe shift in UX revolves around the
GSNameWidget
handling the user interaction of whether to overwrite an existing name. This means such existing names need to be gathered and passed to the widget/dialog. Then, the user is notified when choosing a name if it will be an overwrite, unless it has to be unique. Essentially, any dialog that now notifies the user that a name already existing can be replaced with an interactive dialog for choosing to overwrite or creating a new name.For QGIS/PostGIS layers or drag/drop operations, there needs to be some more significant changes, as there appears to be a static naming relation between datastore/layer/style upon creation to be resolved. The user needs to be able to have individual control over all of the naming to avoid naming errors and any conflicts with existing component names. This means no naming should be automated, though sensible defaults for the name widget will make things quicker, even for delegated cells within a table widget.
If this UX approach is reasonable, I will continue with its integration.