summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chart2/source/controller/sidebar/ChartElementsPanel.cxx48
-rw-r--r--chart2/source/controller/sidebar/ChartElementsPanel.hxx1
2 files changed, 49 insertions, 0 deletions
diff --git a/chart2/source/controller/sidebar/ChartElementsPanel.cxx b/chart2/source/controller/sidebar/ChartElementsPanel.cxx
index 658df2a6de6c..396416ac31b0 100644
--- a/chart2/source/controller/sidebar/ChartElementsPanel.cxx
+++ b/chart2/source/controller/sidebar/ChartElementsPanel.cxx
@@ -32,12 +32,58 @@
#include <svl/intitem.hxx>
#include <svl/stritem.hxx>
+#include "LegendHelper.hxx"
+#include "TitleHelper.hxx"
+
+#include "ChartModel.hxx"
+
using namespace css;
using namespace css::uno;
using ::sfx2::sidebar::Theme;
namespace chart { namespace sidebar {
+namespace {
+
+ChartModel* getChartModel(css::uno::Reference<css::frame::XModel> xModel)
+{
+ ChartModel* pModel = dynamic_cast<ChartModel*>(xModel.get());
+
+ return pModel;
+}
+
+bool isLegendVisible(css::uno::Reference<css::frame::XModel> xModel)
+{
+ ChartModel* pModel = getChartModel(xModel);
+ if (!pModel)
+ return false;
+
+ Reference< beans::XPropertySet > xLegendProp( LegendHelper::getLegend(*pModel), uno::UNO_QUERY );
+ if( xLegendProp.is())
+ {
+ try
+ {
+ bool bShow = false;
+ if( xLegendProp->getPropertyValue( "Show") >>= bShow )
+ {
+ return bShow;
+ }
+ }
+ catch(const uno::Exception &)
+ {
+ }
+ }
+
+ return false;
+}
+
+bool isTitleVisisble(css::uno::Reference<css::frame::XModel> xModel, TitleHelper::eTitleType eTitle)
+{
+ return TitleHelper::getTitle(eTitle, xModel).is();
+}
+
+}
+
ChartElementsPanel::ChartElementsPanel(
vcl::Window* pParent,
const css::uno::Reference<css::frame::XFrame>& rxFrame,
@@ -132,6 +178,7 @@ VclPtr<vcl::Window> ChartElementsPanel::Create (
void ChartElementsPanel::DataChanged(
const DataChangedEvent& )
{
+ updateData();
}
void ChartElementsPanel::HandleContextChange(
@@ -144,6 +191,7 @@ void ChartElementsPanel::HandleContextChange(
}
maContext = rContext;
+ updateData();
}
void ChartElementsPanel::NotifyItemUpdate(
diff --git a/chart2/source/controller/sidebar/ChartElementsPanel.hxx b/chart2/source/controller/sidebar/ChartElementsPanel.hxx
index be53c758201f..399b0f9b003b 100644
--- a/chart2/source/controller/sidebar/ChartElementsPanel.hxx
+++ b/chart2/source/controller/sidebar/ChartElementsPanel.hxx
@@ -96,6 +96,7 @@ private:
css::uno::Reference<css::frame::XModel> mxModel;
void Initialize();
+ void updateData();
};
} } // end of namespace ::chart::sidebar