AppFwk : Added concept of isUiTreeHidden and isUiTreeChildrenHidden

This commit is contained in:
Magne Sjaastad
2016-10-10 15:38:31 +02:00
parent c07f13d407
commit 8ae75b5f27
20 changed files with 94 additions and 49 deletions

View File

@@ -76,11 +76,11 @@ RimEclipseCase::RimEclipseCase()
m_matrixModelResults = new RimReservoirCellResultsStorage;
m_matrixModelResults.uiCapability()->setUiHidden(true);
m_matrixModelResults.uiCapability()->setUiChildrenHidden(true);
m_matrixModelResults.uiCapability()->setUiTreeChildrenHidden(true);
m_fractureModelResults = new RimReservoirCellResultsStorage;
m_fractureModelResults.uiCapability()->setUiHidden(true);
m_fractureModelResults.uiCapability()->setUiChildrenHidden(true);
m_fractureModelResults.uiCapability()->setUiTreeChildrenHidden(true);
this->setReservoirData( NULL );
}

View File

@@ -150,7 +150,7 @@ bool RimEclipseFaultColors::hasValidCustomResult()
void RimEclipseFaultColors::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName /*= ""*/)
{
if (m_customFaultResultColors()->ternaryLegendConfig()
&& !m_customFaultResultColors()->ternaryLegendConfig.uiCapability()->isUiChildrenHidden(uiConfigName))
&& !m_customFaultResultColors()->ternaryLegendConfig.uiCapability()->isUiTreeChildrenHidden(uiConfigName))
{
uiTreeOrdering.add(m_customFaultResultColors()->ternaryLegendConfig());
}

View File

@@ -70,7 +70,7 @@ RimEclipsePropertyFilter::RimEclipsePropertyFilter()
// Set to hidden to avoid this item to been displayed as a child item
// Fields in this object are displayed using defineUiOrdering()
resultDefinition.uiCapability()->setUiHidden(true);
resultDefinition.uiCapability()->setUiChildrenHidden(true);
resultDefinition.uiCapability()->setUiTreeChildrenHidden(true);
CAF_PDM_InitField(&m_lowerBound, "LowerBound", 0.0, "Min", "", "", "");
m_lowerBound.uiCapability()->setUiEditorTypeName(caf::PdmUiDoubleSliderEditor::uiEditorTypeName());

View File

@@ -51,7 +51,7 @@ RimGeoMechPropertyFilter::RimGeoMechPropertyFilter()
// Set to hidden to avoid this item to been displayed as a child item
// Fields in this object are displayed using defineUiOrdering()
resultDefinition.uiCapability()->setUiHidden(true);
resultDefinition.uiCapability()->setUiChildrenHidden(true);
resultDefinition.uiCapability()->setUiTreeChildrenHidden(true);
CAF_PDM_InitField(&lowerBound, "LowerBound", 0.0, "Min", "", "", "");
lowerBound.uiCapability()->setUiEditorTypeName(caf::PdmUiDoubleSliderEditor::uiEditorTypeName());

View File

@@ -92,7 +92,7 @@ RimIntersection::RimIntersection()
inputFromViewerEnabled = false;
uiCapability()->setUiChildrenHidden(true);
uiCapability()->setUiTreeChildrenHidden(true);
}
//--------------------------------------------------------------------------------------------------

View File

@@ -86,7 +86,7 @@ RimProject::RimProject(void)
CAF_PDM_InitFieldNoDefault(&wellPathImport, "WellPathImport", "WellPathImport", "", "", "");
wellPathImport = new RimWellPathImport();
wellPathImport.uiCapability()->setUiHidden(true);
wellPathImport.uiCapability()->setUiChildrenHidden(true);
wellPathImport.uiCapability()->setUiTreeChildrenHidden(true);
CAF_PDM_InitFieldNoDefault(&mainPlotCollection, "MainPlotCollection", "Plots", "", "", "");
mainPlotCollection.uiCapability()->setUiHidden(true);

View File

@@ -143,7 +143,7 @@ RimSummaryCurve::RimSummaryCurve()
CAF_PDM_InitObject("Summary Curve", ":/SummaryCurve16x16.png", "", "");
CAF_PDM_InitFieldNoDefault(&m_summaryCase, "SummaryCase", "Case", "", "", "");
m_summaryCase.uiCapability()->setUiChildrenHidden(true);
m_summaryCase.uiCapability()->setUiTreeChildrenHidden(true);
CAF_PDM_InitFieldNoDefault(&m_selectedVariableDisplayField, "SelectedVariableDisplayVar", "Vector", "", "", "");
m_selectedVariableDisplayField.xmlCapability()->setIOWritable(false);
@@ -153,7 +153,7 @@ RimSummaryCurve::RimSummaryCurve()
CAF_PDM_InitFieldNoDefault(&m_summaryFilter, "VarListFilter", "Filter", "", "", "");
m_summaryFilter.xmlCapability()->setIOWritable(false);
m_summaryFilter.xmlCapability()->setIOReadable(false);
m_summaryFilter.uiCapability()->setUiChildrenHidden(true);
m_summaryFilter.uiCapability()->setUiTreeChildrenHidden(true);
m_summaryFilter.uiCapability()->setUiHidden(true);
m_summaryFilter = new RimSummaryFilter();
@@ -168,7 +168,7 @@ RimSummaryCurve::RimSummaryCurve()
CAF_PDM_InitFieldNoDefault(&m_curveVariable, "SummaryAddress", "SummaryAddress", "", "", "");
m_curveVariable.uiCapability()->setUiHidden(true);
m_curveVariable.uiCapability()->setUiChildrenHidden(true);
m_curveVariable.uiCapability()->setUiTreeChildrenHidden(true);
CAF_PDM_InitFieldNoDefault(&m_plotAxis, "PlotAxis", "Axis", "", "", "");

View File

@@ -66,7 +66,7 @@ RimSummaryCurveFilter::RimSummaryCurveFilter()
CAF_PDM_InitObject("Curve Filter", ":/SummaryCurveFilter16x16.png", "", "");
CAF_PDM_InitFieldNoDefault(&m_selectedSummaryCases, "SummaryCases", "Cases", "", "", "");
m_selectedSummaryCases.uiCapability()->setUiChildrenHidden(true);
m_selectedSummaryCases.uiCapability()->setUiTreeChildrenHidden(true);
m_selectedSummaryCases.uiCapability()->setUiEditorTypeName(caf::PdmUiListEditor::uiEditorTypeName());
m_selectedSummaryCases.uiCapability()->setAutoAddingOptionFromValue(false);
m_selectedSummaryCases.xmlCapability()->setIOWritable(false);
@@ -80,7 +80,7 @@ RimSummaryCurveFilter::RimSummaryCurveFilter()
m_selectedVariableDisplayField.uiCapability()->setUiHidden(true);
CAF_PDM_InitFieldNoDefault(&m_summaryFilter, "VarListFilter", "Filter", "", "", "");
m_summaryFilter.uiCapability()->setUiChildrenHidden(true);
m_summaryFilter.uiCapability()->setUiTreeChildrenHidden(true);
m_summaryFilter.uiCapability()->setUiHidden(true);
m_summaryFilter = new RimSummaryFilter();
@@ -93,7 +93,7 @@ RimSummaryCurveFilter::RimSummaryCurveFilter()
CAF_PDM_InitFieldNoDefault(&m_curves, "FilteredCurves", "Filtered Curves", "", "", "");
m_curves.uiCapability()->setUiHidden(true);
m_curves.uiCapability()->setUiChildrenHidden(false);
m_curves.uiCapability()->setUiTreeChildrenHidden(false);
CAF_PDM_InitFieldNoDefault(&m_applyButtonField, "ApplySelection", "Apply", "", "", "");
m_applyButtonField.xmlCapability()->setIOWritable(false);

View File

@@ -38,6 +38,7 @@
#include "qwt_plot_curve.h"
#include "qwt_plot_renderer.h"
#include "cafPdmUiTreeOrdering.h"
CAF_PDM_SOURCE_INIT(RimSummaryPlot, "SummaryPlot");
@@ -54,23 +55,23 @@ RimSummaryPlot::RimSummaryPlot()
CAF_PDM_InitField(&m_userName, "PlotDescription", QString("Summary Plot"), "Name", "", "", "");
CAF_PDM_InitFieldNoDefault(&m_curveFilters, "SummaryCurveFilters", "", "", "", "");
m_curveFilters.uiCapability()->setUiHidden(true);
m_curveFilters.uiCapability()->setUiTreeHidden(true);
CAF_PDM_InitFieldNoDefault(&m_curves, "SummaryCurves", "", "", "", "");
m_curves.uiCapability()->setUiHidden(true);
m_curves.uiCapability()->setUiTreeHidden(true);
CAF_PDM_InitField(&m_visibleWindow, "VisibleWindow", std::vector<float>(), "Visible Display Window", "", "", "");
m_visibleWindow.uiCapability()->setUiHidden(true);
CAF_PDM_InitFieldNoDefault(&m_leftYAxisProperties, "LeftYAxisProperties", "Left Y Axis", "", "", "");
m_leftYAxisProperties.uiCapability()->setUiHidden(true);
m_leftYAxisProperties.uiCapability()->setUiTreeHidden(true);
m_leftYAxisPropertiesObject = std::unique_ptr<RimSummaryYAxisProperties>(new RimSummaryYAxisProperties);
m_leftYAxisPropertiesObject->setNameAndAxis("Left Y-Axis", QwtPlot::yLeft);
m_leftYAxisProperties = m_leftYAxisPropertiesObject.get();
CAF_PDM_InitFieldNoDefault(&m_rightYAxisProperties, "RightYAxisProperties", "Right Y Axis", "", "", "");
m_rightYAxisProperties.uiCapability()->setUiHidden(true);
m_rightYAxisProperties.uiCapability()->setUiTreeHidden(true);
m_rightYAxisPropertiesObject = std::unique_ptr<RimSummaryYAxisProperties>(new RimSummaryYAxisProperties);
m_rightYAxisPropertiesObject->setNameAndAxis("Right Y-Axis", QwtPlot::yRight);
@@ -335,6 +336,17 @@ QImage RimSummaryPlot::snapshotWindowContent()
return image;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryPlot::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName /*= ""*/)
{
uiTreeOrdering.add(&m_leftYAxisProperties);
uiTreeOrdering.add(&m_rightYAxisProperties);
uiTreeOrdering.add(&m_curveFilters);
uiTreeOrdering.add(&m_curves);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -36,6 +36,7 @@ class RiuSummaryQwtPlot;
class RimSummaryCurve;
class RimSummaryCurveFilter;
class RimSummaryYAxisProperties;
class PdmUiTreeOrdering;
class QwtPlotCurve;
@@ -76,9 +77,12 @@ protected:
virtual caf::PdmFieldHandle* userDescriptionField() { return &m_userName; }
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
virtual void setupBeforeSave() override;
virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "") override;
virtual QImage snapshotWindowContent() override;
private:
void updateViewerWidget();
void updateViewerWidgetWindowTitle();

View File

@@ -64,7 +64,7 @@ RimViewController::RimViewController(void)
m_name.uiCapability()->setUiHidden(true);
CAF_PDM_InitFieldNoDefault(&m_managedView, "ManagedView", "Linked View", "", "", "");
m_managedView.uiCapability()->setUiChildrenHidden(true);
m_managedView.uiCapability()->setUiTreeChildrenHidden(true);
CAF_PDM_InitField(&m_syncCamera, "SyncCamera", true, "Camera", "", "", "");
CAF_PDM_InitField(&m_syncTimeStep, "SyncTimeStep", true, "Time Step", "", "", "");

View File

@@ -61,12 +61,12 @@ RimViewLinker::RimViewLinker(void)
m_name.uiCapability()->setUiHidden(true);
CAF_PDM_InitFieldNoDefault(&m_masterView, "MainView", "Main View", "", "", "");
m_masterView.uiCapability()->setUiChildrenHidden(true);
m_masterView.uiCapability()->setUiTreeChildrenHidden(true);
m_masterView.uiCapability()->setUiHidden(true);
CAF_PDM_InitFieldNoDefault(&m_viewControllers, "ManagedViews", "Managed Views", "", "", "");
m_viewControllers.uiCapability()->setUiHidden(true);
m_viewControllers.uiCapability()->setUiChildrenHidden(true);
m_viewControllers.uiCapability()->setUiTreeChildrenHidden(true);
}
//--------------------------------------------------------------------------------------------------

View File

@@ -66,20 +66,20 @@ RimWellLogExtractionCurve::RimWellLogExtractionCurve()
CAF_PDM_InitObject("Well Log Curve", "", "", "");
CAF_PDM_InitFieldNoDefault(&m_wellPath, "CurveWellPath", "Well Path", "", "", "");
m_wellPath.uiCapability()->setUiChildrenHidden(true);
m_wellPath.uiCapability()->setUiTreeChildrenHidden(true);
//m_wellPath.uiCapability()->setUiHidden(true);
CAF_PDM_InitFieldNoDefault(&m_case, "CurveCase", "Case", "", "", "");
m_case.uiCapability()->setUiChildrenHidden(true);
m_case.uiCapability()->setUiTreeChildrenHidden(true);
//m_case.uiCapability()->setUiHidden(true);
CAF_PDM_InitFieldNoDefault(&m_eclipseResultDefinition, "CurveEclipseResult", "", "", "", "");
m_eclipseResultDefinition.uiCapability()->setUiHidden(true);
m_eclipseResultDefinition.uiCapability()->setUiChildrenHidden(true);
m_eclipseResultDefinition.uiCapability()->setUiTreeChildrenHidden(true);
m_eclipseResultDefinition = new RimEclipseResultDefinition;
CAF_PDM_InitFieldNoDefault(&m_geomResultDefinition, "CurveGeomechResult", "", "", "", "");
m_geomResultDefinition.uiCapability()->setUiHidden(true);
m_geomResultDefinition.uiCapability()->setUiChildrenHidden(true);
m_geomResultDefinition.uiCapability()->setUiTreeChildrenHidden(true);
m_geomResultDefinition = new RimGeoMechResultDefinition;
CAF_PDM_InitField(&m_timeStep, "CurveTimeStep", 0,"Time Step", "", "", "");

View File

@@ -49,7 +49,7 @@ RimWellLogFileCurve::RimWellLogFileCurve()
CAF_PDM_InitObject("Well Log File Curve", "", "", "");
CAF_PDM_InitFieldNoDefault(&m_wellPath, "CurveWellPath", "Well Path", "", "", "");
m_wellPath.uiCapability()->setUiChildrenHidden(true);
m_wellPath.uiCapability()->setUiTreeChildrenHidden(true);
CAF_PDM_InitFieldNoDefault(&m_wellLogChannnelName, "CurveWellLogChannel", "Well Log Channel", "", "", "");

View File

@@ -49,7 +49,7 @@ RimOilFieldEntry::RimOilFieldEntry()
CAF_PDM_InitFieldNoDefault(&wells, "Wells", "", "", "", "");
wells.uiCapability()->setUiHidden(true);
wells.uiCapability()->setUiChildrenHidden(true);
wells.uiCapability()->setUiTreeChildrenHidden(true);
}
//--------------------------------------------------------------------------------------------------

View File

@@ -140,15 +140,25 @@ bool PdmUiItem::isUiHidden(QString uiConfigName) const
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool PdmUiItem::isUiChildrenHidden(QString uiConfigName) const
bool PdmUiItem::isUiTreeHidden(QString uiConfigName) const
{
// TODO: Must be separated from uiHidden when childField object embedding is implemented
return isUiHidden(uiConfigName);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool PdmUiItem::isUiTreeChildrenHidden(QString uiConfigName) const
{
const PdmUiItemInfo* conInfo = configInfo(uiConfigName);
const PdmUiItemInfo* defInfo = defaultInfo();
const PdmUiItemInfo* sttInfo = m_staticItemInfo;
if (conInfo && !(conInfo->m_isChildrenHidden == -1)) return conInfo->m_isChildrenHidden;
if (defInfo && !(defInfo->m_isChildrenHidden == -1)) return defInfo->m_isChildrenHidden;
if (sttInfo && !(sttInfo->m_isChildrenHidden == -1)) return sttInfo->m_isChildrenHidden;
if (conInfo && !(conInfo->m_isTreeChildrenHidden == -1)) return conInfo->m_isTreeChildrenHidden;
if (defInfo && !(defInfo->m_isTreeChildrenHidden == -1)) return defInfo->m_isTreeChildrenHidden;
if (sttInfo && !(sttInfo->m_isTreeChildrenHidden == -1)) return sttInfo->m_isTreeChildrenHidden;
return false;
}

View File

@@ -56,27 +56,27 @@ class PdmUiItemInfo
{
public:
PdmUiItemInfo()
: m_editorTypeName(""), m_isHidden(-1), m_isChildrenHidden(-1), m_isReadOnly(-1), m_labelAlignment(LEFT)
: m_editorTypeName(""), m_isHidden(-1), m_isTreeChildrenHidden(-1), m_isReadOnly(-1), m_labelAlignment(LEFT)
{}
PdmUiItemInfo( QString uiName, QIcon icon = QIcon(), QString toolTip = "", QString whatsThis = "")
: m_uiName(uiName), m_icon(icon), m_toolTip(toolTip), m_whatsThis(whatsThis),
m_editorTypeName(""), m_isHidden(false), m_isChildrenHidden(false), m_isReadOnly(false), m_labelAlignment(LEFT)
m_editorTypeName(""), m_isHidden(false), m_isTreeChildrenHidden(false), m_isReadOnly(false), m_labelAlignment(LEFT)
{ }
enum LabelPosType { LEFT, TOP, HIDDEN };
private:
friend class PdmUiItem;
QString m_uiName;
QString m_toolTip;
QString m_whatsThis;
QIcon m_icon;
QString m_editorTypeName; ///< Use this exact type of editor to edit this UiItem
int m_isHidden; ///< UiItem should be hidden. -1 means not set
int m_isChildrenHidden; ///< Children of UiItem should be hidden. -1 means not set
int m_isReadOnly; ///< UiItem should be insensitive, or read only. -1 means not set.
LabelPosType m_labelAlignment;
QString m_uiName;
QString m_toolTip;
QString m_whatsThis;
QIcon m_icon;
QString m_editorTypeName; ///< Use this exact type of editor to edit this UiItem
int m_isHidden; ///< UiItem should be hidden. -1 means not set
int m_isTreeChildrenHidden; ///< Children of UiItem should be hidden. -1 means not set
int m_isReadOnly; ///< UiItem should be insensitive, or read only. -1 means not set.
LabelPosType m_labelAlignment;
};
//==================================================================================================
@@ -184,8 +184,11 @@ public:
bool isUiHidden(QString uiConfigName = "") const;
void setUiHidden(bool isHidden, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_isHidden = isHidden; }
bool isUiChildrenHidden(QString uiConfigName = "") const;
void setUiChildrenHidden(bool isChildrenHidden, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_isChildrenHidden = isChildrenHidden; }
bool isUiTreeHidden(QString uiConfigName = "") const;
void setUiTreeHidden(bool isHidden, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_isHidden = isHidden; }
bool isUiTreeChildrenHidden(QString uiConfigName = "") const;
void setUiTreeChildrenHidden(bool isTreeChildrenHidden, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_isTreeChildrenHidden = isTreeChildrenHidden; }
bool isUiReadOnly(QString uiConfigName = "");
void setUiReadOnly(bool isReadOnly, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_isReadOnly = isReadOnly; }

View File

@@ -114,7 +114,7 @@ void PdmUiObjectHandle::addDefaultUiTreeChildren(PdmUiTreeOrdering* uiTreeOrderi
{
if (fields[fIdx]->hasChildObjects() && !uiTreeOrdering->containsField(fields[fIdx]))
{
if (fields[fIdx]->uiCapability()->isUiHidden() && !fields[fIdx]->uiCapability()->isUiChildrenHidden())
if (fields[fIdx]->uiCapability()->isUiHidden() && !fields[fIdx]->uiCapability()->isUiTreeChildrenHidden())
{
std::vector<PdmObjectHandle*> children;
fields[fIdx]->childObjects(&children);
@@ -182,7 +182,7 @@ void PdmUiObjectHandle::expandUiTree(PdmUiTreeOrdering* root, QString uiConfigNa
{
if (!root->ignoreSubTree())
{
if (root->isRepresentingField() && !root->field()->uiCapability()->isUiChildrenHidden(uiConfigName))
if (root->isRepresentingField() && !root->field()->uiCapability()->isUiTreeChildrenHidden(uiConfigName))
{
std::vector<PdmObjectHandle*> fieldsChildObjects;
root->field()->childObjects(&fieldsChildObjects);
@@ -195,7 +195,7 @@ void PdmUiObjectHandle::expandUiTree(PdmUiTreeOrdering* root, QString uiConfigNa
}
}
}
else if (root->isRepresentingObject() && !root->object()->uiCapability()->isUiChildrenHidden(uiConfigName))
else if (root->isRepresentingObject() && !root->object()->uiCapability()->isUiTreeChildrenHidden(uiConfigName))
{
uiObj(root->object())->defineUiTreeOrdering(*root, uiConfigName);
uiObj(root->object())->addDefaultUiTreeChildren(root);

View File

@@ -52,11 +52,27 @@ namespace caf
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void PdmUiTreeOrdering::add(PdmFieldHandle * field)
void PdmUiTreeOrdering::add(PdmFieldHandle* field, QString uiConfigName)
{
assert(field);
PdmUiTreeOrdering* child = new PdmUiTreeOrdering(this, field);
if (field->uiCapability()->isUiTreeHidden(uiConfigName))
{
if (!field->uiCapability()->isUiTreeChildrenHidden(uiConfigName))
{
std::vector<PdmObjectHandle*> children;
field->childObjects(&children);
for (PdmObjectHandle* objHandle : children)
{
this->add(objHandle);
}
}
}
else
{
PdmUiTreeOrdering* child = new PdmUiTreeOrdering(this, field);
}
}
//--------------------------------------------------------------------------------------------------

View File

@@ -69,7 +69,7 @@ public:
~PdmUiTreeOrdering();
void add(PdmFieldHandle * field);
void add(PdmFieldHandle * field, QString uiConfigName = "");
void add(PdmObjectHandle* object);
PdmUiTreeOrdering* add(const QString & title, const QString& iconResourceName );