[Libreoffice-commits] core.git: 3 commits - chart2/source

Markus Mohrhard markus.mohrhard at googlemail.com
Fri Jul 17 01:26:23 PDT 2015


 chart2/source/controller/sidebar/Chart2PanelFactory.cxx |   26 ---
 chart2/source/controller/sidebar/ChartElementsPanel.cxx |   18 --
 chart2/source/controller/sidebar/ChartElementsPanel.hxx |    7 
 chart2/source/controller/sidebar/ChartSeriesPanel.cxx   |  122 +++++++---------
 chart2/source/controller/sidebar/ChartSeriesPanel.hxx   |   10 -
 5 files changed, 75 insertions(+), 108 deletions(-)

New commits:
commit 7ea6f476cb4f3a21904db5a5d7170e8dbae804a1
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri Jul 17 10:24:53 2015 +0200

    remove duplicated code
    
    Change-Id: I4a5dcb9d05446dc938f978cb30428c70c70d6914

diff --git a/chart2/source/controller/sidebar/ChartSeriesPanel.cxx b/chart2/source/controller/sidebar/ChartSeriesPanel.cxx
index 7d15a96..483ae91 100644
--- a/chart2/source/controller/sidebar/ChartSeriesPanel.cxx
+++ b/chart2/source/controller/sidebar/ChartSeriesPanel.cxx
@@ -261,6 +261,25 @@ OUString getSeriesLabel(css::uno::Reference<css::frame::XModel> xModel, const OU
     return DataSeriesHelper::getDataSeriesLabel(xSeries, xChartType->getRoleOfSequenceForSeriesLabel());
 }
 
+OUString getCID(css::uno::Reference<css::frame::XModel> xModel)
+{
+    css::uno::Reference<css::frame::XController> xController(xModel->getCurrentController());
+    css::uno::Reference<css::view::XSelectionSupplier> xSelectionSupplier(xController, css::uno::UNO_QUERY);
+    if (!xSelectionSupplier.is())
+        return OUString();
+
+    uno::Any aAny = xSelectionSupplier->getSelection();
+    assert(aAny.hasValue());
+    OUString aCID;
+    aAny >>= aCID;
+#ifdef DBG_UTIL
+    ObjectType eType = ObjectIdentifier::getObjectType(aCID);
+    assert(eType == OBJECTTYPE_DATA_SERIES);
+#endif
+
+    return aCID;
+}
+
 }
 
 ChartSeriesPanel::ChartSeriesPanel(
@@ -334,19 +353,7 @@ void ChartSeriesPanel::Initialize()
 
 void ChartSeriesPanel::updateData()
 {
-    css::uno::Reference<css::frame::XController> xController(mxModel->getCurrentController());
-    css::uno::Reference<css::view::XSelectionSupplier> xSelectionSupplier(xController, css::uno::UNO_QUERY);
-    if (!xSelectionSupplier.is())
-        return;
-
-    uno::Any aAny = xSelectionSupplier->getSelection();
-    assert(aAny.hasValue());
-    OUString aCID;
-    aAny >>= aCID;
-#ifdef DBG_UTIL
-    ObjectType eType = ObjectIdentifier::getObjectType(aCID);
-    assert(eType == OBJECTTYPE_DATA_SERIES);
-#endif
+    OUString aCID = getCID(mxModel);
     SolarMutexGuard aGuard;
     bool bLabelVisible = isDataLabelVisible(mxModel, aCID);
     mpCBLabel->Check(bLabelVisible);
@@ -406,19 +413,7 @@ void ChartSeriesPanel::modelInvalid()
 IMPL_LINK(ChartSeriesPanel, CheckBoxHdl, CheckBox*, pCheckBox)
 {
     bool bChecked = pCheckBox->IsChecked();
-    css::uno::Reference<css::frame::XController> xController(mxModel->getCurrentController());
-    css::uno::Reference<css::view::XSelectionSupplier> xSelectionSupplier(xController, css::uno::UNO_QUERY);
-    if (!xSelectionSupplier.is())
-        return 0;
-
-    uno::Any aAny = xSelectionSupplier->getSelection();
-    assert(aAny.hasValue());
-    OUString aCID;
-    aAny >>= aCID;
-#ifdef DBG_UTIL
-    ObjectType eType = ObjectIdentifier::getObjectType(aCID);
-    assert(eType == OBJECTTYPE_DATA_SERIES);
-#endif
+    OUString aCID = getCID(mxModel);
     if (pCheckBox == mpCBLabel.get())
         setDataLabelVisible(mxModel, aCID, bChecked);
     else if (pCheckBox == mpCBTrendline.get())
@@ -433,20 +428,7 @@ IMPL_LINK(ChartSeriesPanel, CheckBoxHdl, CheckBox*, pCheckBox)
 
 IMPL_LINK_NOARG(ChartSeriesPanel, RadioBtnHdl)
 {
-    css::uno::Reference<css::frame::XController> xController(mxModel->getCurrentController());
-    css::uno::Reference<css::view::XSelectionSupplier> xSelectionSupplier(xController, css::uno::UNO_QUERY);
-    if (!xSelectionSupplier.is())
-        return 0;
-
-    uno::Any aAny = xSelectionSupplier->getSelection();
-    assert(aAny.hasValue());
-    OUString aCID;
-    aAny >>= aCID;
-#ifdef DBG_UTIL
-    ObjectType eType = ObjectIdentifier::getObjectType(aCID);
-    assert(eType == OBJECTTYPE_DATA_SERIES);
-#endif
-
+    OUString aCID = getCID(mxModel);
     bool bChecked = mpRBPrimaryAxis->IsChecked();
 
     setAttachedAxisType(mxModel, aCID, bChecked);
@@ -456,19 +438,7 @@ IMPL_LINK_NOARG(ChartSeriesPanel, RadioBtnHdl)
 
 IMPL_LINK_NOARG(ChartSeriesPanel, ListBoxHdl)
 {
-    css::uno::Reference<css::frame::XController> xController(mxModel->getCurrentController());
-    css::uno::Reference<css::view::XSelectionSupplier> xSelectionSupplier(xController, css::uno::UNO_QUERY);
-    if (!xSelectionSupplier.is())
-        return 0;
-
-    uno::Any aAny = xSelectionSupplier->getSelection();
-    assert(aAny.hasValue());
-    OUString aCID;
-    aAny >>= aCID;
-#ifdef DBG_UTIL
-    ObjectType eType = ObjectIdentifier::getObjectType(aCID);
-    assert(eType == OBJECTTYPE_DATA_SERIES);
-#endif
+    OUString aCID = getCID(mxModel);
 
     sal_Int32 nPos = mpLBLabelPlacement->GetSelectEntryPos();
     setDataLabelPlacement(mxModel, aCID, nPos);
commit 24c0aafdaf0a9f67e88d1c092285e3ee882391d5
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri Jul 17 10:17:50 2015 +0200

    last item in series panel
    
    Change-Id: Ib37e36d98d599affb379a8727bae88be0acf2631

diff --git a/chart2/source/controller/sidebar/ChartSeriesPanel.cxx b/chart2/source/controller/sidebar/ChartSeriesPanel.cxx
index 8341fc7..7d15a96 100644
--- a/chart2/source/controller/sidebar/ChartSeriesPanel.cxx
+++ b/chart2/source/controller/sidebar/ChartSeriesPanel.cxx
@@ -25,6 +25,10 @@
 #include <com/sun/star/chart/ErrorBarStyle.hpp>
 #include <com/sun/star/beans/XPropertySet.hpp>
 #include <com/sun/star/chart/DataLabelPlacement.hpp>
+#include <com/sun/star/chart2/XChartDocument.hpp>
+#include <com/sun/star/chart2/XDiagram.hpp>
+#include <com/sun/star/chart2/XChartTypeContainer.hpp>
+#include <com/sun/star/chart2/XCoordinateSystemContainer.hpp>
 
 #include "ChartSeriesPanel.hxx"
 #include "ChartController.hxx"
@@ -233,6 +237,30 @@ void setAttachedAxisType(css::uno::Reference<css::frame::XModel>
     xSeries->setPropertyValue("AttachedAxisIndex", css::uno::makeAny(nIndex));
 }
 
+css::uno::Reference<css::chart2::XChartType> getChartType(
+        css::uno::Reference<css::frame::XModel> xModel)
+{
+    css::uno::Reference<css::chart2::XChartDocument> xChartDoc (xModel, css::uno::UNO_QUERY);
+    css::uno::Reference<css::chart2::XDiagram> xDiagram = xChartDoc->getFirstDiagram();
+    css::uno::Reference< css::chart2::XCoordinateSystemContainer > xCooSysContainer( xDiagram, UNO_QUERY_THROW );
+    css::uno::Sequence< css::uno::Reference< css::chart2::XCoordinateSystem > > xCooSysSequence( xCooSysContainer->getCoordinateSystems());
+    css::uno::Reference< css::chart2::XChartTypeContainer > xChartTypeContainer( xCooSysSequence[0], UNO_QUERY_THROW );
+    css::uno::Sequence< css::uno::Reference< css::chart2::XChartType > > xChartTypeSequence( xChartTypeContainer->getChartTypes() );
+    return xChartTypeSequence[0];
+}
+
+OUString getSeriesLabel(css::uno::Reference<css::frame::XModel> xModel, const OUString& rCID)
+{
+    css::uno::Reference< css::chart2::XDataSeries > xSeries(
+        ObjectIdentifier::getDataSeriesForCID(rCID, xModel), uno::UNO_QUERY );
+
+    if (!xSeries.is())
+        return OUString();
+
+    css::uno::Reference<css::chart2::XChartType> xChartType = getChartType(xModel);
+    return DataSeriesHelper::getDataSeriesLabel(xSeries, xChartType->getRoleOfSequenceForSeriesLabel());
+}
+
 }
 
 ChartSeriesPanel::ChartSeriesPanel(
@@ -254,6 +282,8 @@ ChartSeriesPanel::ChartSeriesPanel(
 
     get(mpLBLabelPlacement, "comboboxtext_label");
 
+    get(mpFTSeriesName, "label_series_name");
+
     Initialize();
 }
 
@@ -277,6 +307,8 @@ void ChartSeriesPanel::dispose()
 
     mpLBLabelPlacement.clear();
 
+    mpFTSeriesName.clear();
+
     PanelLayout::dispose();
 }
 
@@ -328,6 +360,8 @@ void ChartSeriesPanel::updateData()
 
     mpLBLabelPlacement->Enable(bLabelVisible);
     mpLBLabelPlacement->SelectEntryPos(getDataLabelPlacement(mxModel, aCID));
+
+    mpFTSeriesName->SetText(getSeriesLabel(mxModel, aCID));
 }
 
 VclPtr<vcl::Window> ChartSeriesPanel::Create (
diff --git a/chart2/source/controller/sidebar/ChartSeriesPanel.hxx b/chart2/source/controller/sidebar/ChartSeriesPanel.hxx
index a19ecb2..7c951f6 100644
--- a/chart2/source/controller/sidebar/ChartSeriesPanel.hxx
+++ b/chart2/source/controller/sidebar/ChartSeriesPanel.hxx
@@ -83,6 +83,8 @@ private:
 
     VclPtr<ListBox> mpLBLabelPlacement;
 
+    VclPtr<FixedText> mpFTSeriesName;
+
     css::uno::Reference<css::frame::XFrame> mxFrame;
 
     css::uno::Reference<css::frame::XModel> mxModel;
commit c2bd7a7de177bd81927ad29060ec3db43f9a6086
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri Jul 17 09:59:52 2015 +0200

    remove unnecessary parts in chart sidebar code
    
    Change-Id: I5adedbb47edd39959220fa7ab3826d586734e943

diff --git a/chart2/source/controller/sidebar/Chart2PanelFactory.cxx b/chart2/source/controller/sidebar/Chart2PanelFactory.cxx
index 61e1677..be68e6b 100644
--- a/chart2/source/controller/sidebar/Chart2PanelFactory.cxx
+++ b/chart2/source/controller/sidebar/Chart2PanelFactory.cxx
@@ -62,8 +62,6 @@ Reference<css::ui::XUIElement> SAL_CALL ChartPanelFactory::createUIElement (
         const ::comphelper::NamedValueCollection aArguments (rArguments);
         Reference<css::frame::XFrame> xFrame (aArguments.getOrDefault("Frame", Reference<css::frame::XFrame>()));
         Reference<css::awt::XWindow> xParentWindow (aArguments.getOrDefault("ParentWindow", Reference<css::awt::XWindow>()));
-        const sal_uInt64 nBindingsValue (aArguments.getOrDefault("SfxBindings", sal_uInt64(0)));
-        SfxBindings* pBindings = reinterpret_cast<SfxBindings*>(nBindingsValue);
         Reference<css::frame::XController> xController (aArguments.getOrDefault("Controller", Reference<css::frame::XController>()));
 
         vcl::Window* pParentWindow = VCLUnoHelper::GetWindow(xParentWindow);
@@ -75,10 +73,6 @@ Reference<css::ui::XUIElement> SAL_CALL ChartPanelFactory::createUIElement (
             throw RuntimeException(
                 "PanelFactory::createUIElement called without Frame",
                 NULL);
-        if (pBindings == NULL)
-            throw RuntimeException(
-                "PanelFactory::createUIElement called without SfxBindings",
-                NULL);
         if (!xController.is())
             throw RuntimeException(
                 "ChartPanelFactory::createUIElement called without Controller",
@@ -93,25 +87,9 @@ Reference<css::ui::XUIElement> SAL_CALL ChartPanelFactory::createUIElement (
         sal_Int32 nMinimumSize = -1;
         VclPtr<vcl::Window> pPanel;
         if (rsResourceURL.endsWith("/ElementsPanel"))
-            pPanel = ChartElementsPanel::Create( pParentWindow, xFrame, pBindings, pController );
+            pPanel = ChartElementsPanel::Create( pParentWindow, xFrame, pController );
         else if (rsResourceURL.endsWith("/SeriesPanel"))
-            pPanel = ChartSeriesPanel::Create(pParentWindow, xFrame, pBindings, pController);
-        /*
-        else if (rsResourceURL.endsWith("/CellAppearancePropertyPanel"))
-            pPanel = CellAppearancePropertyPanel::Create( pParentWindow, xFrame, pBindings );
-        else if (rsResourceURL.endsWith("/NumberFormatPropertyPanel"))
-            pPanel = NumberFormatPropertyPanel::Create( pParentWindow, xFrame, pBindings );
-        else if (rsResourceURL.endsWith("/NavigatorPanel"))
-        {
-            pPanel = VclPtr<ScNavigatorDlg>::Create(pBindings, nullptr, pParentWindow, false);
-            nMinimumSize = 0;
-        }
-        else if (rsResourceURL.endsWith("/FunctionsPanel"))
-        {
-            pPanel = VclPtr<ScFunctionDockWin>::Create(pBindings, nullptr, pParentWindow, ScResId(FID_FUNCTION_BOX));
-            nMinimumSize = 0;
-        }
-        */
+            pPanel = ChartSeriesPanel::Create(pParentWindow, xFrame, pController);
 
         if (pPanel)
             xElement = sfx2::sidebar::SidebarPanelBase::Create(
diff --git a/chart2/source/controller/sidebar/ChartElementsPanel.cxx b/chart2/source/controller/sidebar/ChartElementsPanel.cxx
index 8325ee4..1cbec9e 100644
--- a/chart2/source/controller/sidebar/ChartElementsPanel.cxx
+++ b/chart2/source/controller/sidebar/ChartElementsPanel.cxx
@@ -284,12 +284,10 @@ void setLegendPos(css::uno::Reference<css::frame::XModel> xModel, sal_Int32 nPos
 ChartElementsPanel::ChartElementsPanel(
     vcl::Window* pParent,
     const css::uno::Reference<css::frame::XFrame>& rxFrame,
-    SfxBindings* pBindings,
     ChartController* pController)
   : PanelLayout(pParent, "ChartElementsPanel", "modules/schart/ui/sidebarelements.ui", rxFrame),
     mxFrame(rxFrame),
     maContext(),
-    mpBindings(pBindings),
     mxModel(pController->getModel()),
     mxListener(new ChartSidebarModifyListener(this))
 {
@@ -408,24 +406,17 @@ void ChartElementsPanel::updateData()
     mpLBLegendPosition->SelectEntryPos(getLegendPos(mxModel));
 }
 
-void ChartElementsPanel::modelInvalid()
-{
-}
-
 VclPtr<vcl::Window> ChartElementsPanel::Create (
     vcl::Window* pParent,
     const css::uno::Reference<css::frame::XFrame>& rxFrame,
-    SfxBindings* pBindings, ChartController* pController)
+    ChartController* pController)
 {
     if (pParent == NULL)
         throw lang::IllegalArgumentException("no parent Window given to ChartElementsPanel::Create", NULL, 0);
     if ( ! rxFrame.is())
         throw lang::IllegalArgumentException("no XFrame given to ChartElementsPanel::Create", NULL, 1);
-    if (pBindings == NULL)
-        throw lang::IllegalArgumentException("no SfxBindings given to ChartElementsPanel::Create", NULL, 2);
-
     return  VclPtr<ChartElementsPanel>::Create(
-                        pParent, rxFrame, pBindings, pController);
+                        pParent, rxFrame, pController);
 }
 
 void ChartElementsPanel::DataChanged(
@@ -455,6 +446,11 @@ void ChartElementsPanel::NotifyItemUpdate(
 {
 }
 
+void ChartElementsPanel::modelInvalid()
+{
+
+}
+
 IMPL_LINK(ChartElementsPanel, CheckBoxHdl, CheckBox*, pCheckBox)
 {
     bool bChecked = pCheckBox->IsChecked();
diff --git a/chart2/source/controller/sidebar/ChartElementsPanel.hxx b/chart2/source/controller/sidebar/ChartElementsPanel.hxx
index 358a8be..32ffb7d 100644
--- a/chart2/source/controller/sidebar/ChartElementsPanel.hxx
+++ b/chart2/source/controller/sidebar/ChartElementsPanel.hxx
@@ -45,7 +45,7 @@ public:
     static VclPtr<vcl::Window> Create(
         vcl::Window* pParent,
         const css::uno::Reference<css::frame::XFrame>& rxFrame,
-        SfxBindings* pBindings, ChartController* pController);
+        ChartController* pController);
 
     virtual void DataChanged(
         const DataChangedEvent& rEvent) SAL_OVERRIDE;
@@ -59,13 +59,11 @@ public:
         const SfxPoolItem* pState,
         const bool bIsEnabled) SAL_OVERRIDE;
 
-    SfxBindings* GetBindings() { return mpBindings;}
-
     // constructor/destuctor
     ChartElementsPanel(
         vcl::Window* pParent,
         const css::uno::Reference<css::frame::XFrame>& rxFrame,
-        SfxBindings* pBindings, ChartController* pController);
+        ChartController* pController);
     virtual ~ChartElementsPanel();
     virtual void dispose() SAL_OVERRIDE;
 
@@ -96,7 +94,6 @@ private:
 
     css::uno::Reference<css::frame::XFrame> mxFrame;
     ::sfx2::sidebar::EnumContext            maContext;
-    SfxBindings*                            mpBindings;
 
     css::uno::Reference<css::frame::XModel> mxModel;
     css::uno::Reference<css::util::XModifyListener> mxListener;
diff --git a/chart2/source/controller/sidebar/ChartSeriesPanel.cxx b/chart2/source/controller/sidebar/ChartSeriesPanel.cxx
index c42407c..8341fc7 100644
--- a/chart2/source/controller/sidebar/ChartSeriesPanel.cxx
+++ b/chart2/source/controller/sidebar/ChartSeriesPanel.cxx
@@ -238,12 +238,9 @@ void setAttachedAxisType(css::uno::Reference<css::frame::XModel>
 ChartSeriesPanel::ChartSeriesPanel(
     vcl::Window* pParent,
     const css::uno::Reference<css::frame::XFrame>& rxFrame,
-    SfxBindings* pBindings,
     ChartController* pController)
   : PanelLayout(pParent, "ChartSeriesPanel", "modules/schart/ui/sidebarseries.ui", rxFrame),
     mxFrame(rxFrame),
-    maContext(),
-    mpBindings(pBindings),
     mxModel(pController->getModel()),
     mxListener(new ChartSidebarModifyListener(this))
 {
@@ -336,17 +333,15 @@ void ChartSeriesPanel::updateData()
 VclPtr<vcl::Window> ChartSeriesPanel::Create (
     vcl::Window* pParent,
     const css::uno::Reference<css::frame::XFrame>& rxFrame,
-    SfxBindings* pBindings, ChartController* pController)
+    ChartController* pController)
 {
     if (pParent == NULL)
         throw lang::IllegalArgumentException("no parent Window given to ChartSeriesPanel::Create", NULL, 0);
     if ( ! rxFrame.is())
         throw lang::IllegalArgumentException("no XFrame given to ChartSeriesPanel::Create", NULL, 1);
-    if (pBindings == NULL)
-        throw lang::IllegalArgumentException("no SfxBindings given to ChartSeriesPanel::Create", NULL, 2);
 
     return  VclPtr<ChartSeriesPanel>::Create(
-                        pParent, rxFrame, pBindings, pController);
+                        pParent, rxFrame, pController);
 }
 
 void ChartSeriesPanel::DataChanged(
@@ -356,9 +351,8 @@ void ChartSeriesPanel::DataChanged(
 }
 
 void ChartSeriesPanel::HandleContextChange(
-    const ::sfx2::sidebar::EnumContext& rContext)
+    const ::sfx2::sidebar::EnumContext& )
 {
-    maContext = rContext;
     updateData();
 }
 
diff --git a/chart2/source/controller/sidebar/ChartSeriesPanel.hxx b/chart2/source/controller/sidebar/ChartSeriesPanel.hxx
index 32cce955..a19ecb2 100644
--- a/chart2/source/controller/sidebar/ChartSeriesPanel.hxx
+++ b/chart2/source/controller/sidebar/ChartSeriesPanel.hxx
@@ -46,7 +46,7 @@ public:
     static VclPtr<vcl::Window> Create(
         vcl::Window* pParent,
         const css::uno::Reference<css::frame::XFrame>& rxFrame,
-        SfxBindings* pBindings, ChartController* pController);
+        ChartController* pController);
 
     virtual void DataChanged(
         const DataChangedEvent& rEvent) SAL_OVERRIDE;
@@ -60,13 +60,11 @@ public:
         const SfxPoolItem* pState,
         const bool bIsEnabled) SAL_OVERRIDE;
 
-    SfxBindings* GetBindings() { return mpBindings;}
-
     // constructor/destuctor
     ChartSeriesPanel(
         vcl::Window* pParent,
         const css::uno::Reference<css::frame::XFrame>& rxFrame,
-        SfxBindings* pBindings, ChartController* pController);
+        ChartController* pController);
     virtual ~ChartSeriesPanel();
     virtual void dispose() SAL_OVERRIDE;
 
@@ -86,8 +84,6 @@ private:
     VclPtr<ListBox> mpLBLabelPlacement;
 
     css::uno::Reference<css::frame::XFrame> mxFrame;
-    ::sfx2::sidebar::EnumContext            maContext;
-    SfxBindings*                            mpBindings;
 
     css::uno::Reference<css::frame::XModel> mxModel;
     css::uno::Reference<css::util::XModifyListener> mxListener;


More information about the Libreoffice-commits mailing list