Improve property editor for well path completions

This commit is contained in:
Bjørnar Grip Fjær
2017-05-11 11:19:55 +02:00
parent 0bc423a0d1
commit 265969f246
2 changed files with 8 additions and 6 deletions
@@ -22,6 +22,7 @@
#include "RimProject.h" #include "RimProject.h"
#include "cafPdmUiListEditor.h" #include "cafPdmUiListEditor.h"
#include "cafPdmUiTextEditor.h"
CAF_PDM_SOURCE_INIT(RimWellPathCompletion, "WellPathCompletion"); CAF_PDM_SOURCE_INIT(RimWellPathCompletion, "WellPathCompletion");
@@ -40,6 +41,7 @@ RimWellPathCompletion::RimWellPathCompletion()
CAF_PDM_InitFieldNoDefault(&m_displayCoordinates, "DisplayCoordinates", "Coordinates", "", "", ""); CAF_PDM_InitFieldNoDefault(&m_displayCoordinates, "DisplayCoordinates", "Coordinates", "", "", "");
m_displayCoordinates.registerGetMethod(this, &RimWellPathCompletion::displayCoordinates); m_displayCoordinates.registerGetMethod(this, &RimWellPathCompletion::displayCoordinates);
m_displayCoordinates.uiCapability()->setUiReadOnly(true); m_displayCoordinates.uiCapability()->setUiReadOnly(true);
m_displayCoordinates.uiCapability()->setUiEditorTypeName(caf::PdmUiTextEditor::uiEditorTypeName());
} }
@@ -88,19 +90,19 @@ void RimWellPathCompletion::defineUiOrdering(QString uiConfigName, caf::PdmUiOrd
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
std::vector<QString> RimWellPathCompletion::displayCoordinates() const QString RimWellPathCompletion::displayCoordinates() const
{ {
CVF_ASSERT(m_coordinates().size() == m_measuredDepths().size()); CVF_ASSERT(m_coordinates().size() == m_measuredDepths().size());
std::vector<QString> displayValues; QStringList displayValues;
displayValues.push_back(QString("X\tY\tZ\tMD")); displayValues.push_back(QString("X\tY\tZ\tMD"));
for (size_t i = 0; i < m_coordinates().size(); i++) for (size_t i = 0; i < m_coordinates().size(); i++)
{ {
const cvf::Vec3d& coords = m_coordinates()[i]; const cvf::Vec3d& coords = m_coordinates()[i];
const double& measuredDepth = m_measuredDepths()[i]; const double& measuredDepth = m_measuredDepths()[i];
displayValues.push_back(QString("%1\t%2\t%3\t%4\t").arg(coords.x()).arg(coords.y()).arg(coords.z()).arg(measuredDepth)); displayValues.push_back(QString("%1\t%2\t%3\t%4").arg(coords.x()).arg(coords.y()).arg(coords.z()).arg(measuredDepth));
} }
return displayValues; return displayValues.join("\n");
} }
@@ -58,9 +58,9 @@ public:
std::vector< cvf::Vec3d > coordinates() { return m_coordinates(); } std::vector< cvf::Vec3d > coordinates() { return m_coordinates(); }
std::vector< double > measuredDepths() { return m_measuredDepths(); } std::vector< double > measuredDepths() { return m_measuredDepths(); }
private: private:
std::vector<QString> displayCoordinates() const; QString displayCoordinates() const;
caf::PdmField< std::vector< cvf::Vec3d> > m_coordinates; caf::PdmField< std::vector< cvf::Vec3d> > m_coordinates;
caf::PdmField< std::vector< double > > m_measuredDepths; caf::PdmField< std::vector< double > > m_measuredDepths;
caf::PdmProxyValueField< std::vector<QString> > m_displayCoordinates; caf::PdmProxyValueField< QString > m_displayCoordinates;
}; };