summaryrefslogtreecommitdiff
path: root/chart2
diff options
context:
space:
mode:
authorBjörn Milcke <bm@openoffice.org>2003-11-04 11:37:45 +0000
committerBjörn Milcke <bm@openoffice.org>2003-11-04 11:37:45 +0000
commit759b3eb17c50b66794547ed560358678123bddf7 (patch)
treee7ea3c7c200523c737f18fd44310932771f17fcc /chart2
parentb001ff129865a183eab89f310e9b72ae8d1f68ca (diff)
ChartType concept: the template creates the diagram. To determine with which
template an existing Diagram was probably created, the data series tree is searched and according to the result the template is guessed. OldApi chart type support SubGrid added
Diffstat (limited to 'chart2')
-rw-r--r--chart2/prj/d.lst1
-rw-r--r--chart2/qa/TestCaseOldAPI.java58
-rw-r--r--chart2/source/controller/dialogs/dlg_ChartType.cxx773
-rw-r--r--chart2/source/controller/inc/AxisItemConverter.hxx6
-rw-r--r--chart2/source/controller/inc/CharacterPropertyItemConverter.hxx6
-rw-r--r--chart2/source/controller/inc/DataPointItemConverter.hxx6
-rw-r--r--chart2/source/controller/inc/GraphicPropertyItemConverter.hxx8
-rw-r--r--chart2/source/controller/inc/ItemConverter.hxx25
-rw-r--r--chart2/source/controller/inc/LegendItemConverter.hxx6
-rw-r--r--chart2/source/controller/inc/TitleItemConverter.hxx6
-rw-r--r--chart2/source/controller/inc/dlg_ChartType.hxx55
-rw-r--r--chart2/source/controller/itemsetwrapper/AxisItemConverter.cxx6
-rw-r--r--chart2/source/controller/itemsetwrapper/CharacterPropertyItemConverter.cxx6
-rw-r--r--chart2/source/controller/itemsetwrapper/DataPointItemConverter.cxx6
-rw-r--r--chart2/source/controller/itemsetwrapper/GraphicPropertyItemConverter.cxx8
-rw-r--r--chart2/source/controller/itemsetwrapper/ItemConverter.cxx32
-rw-r--r--chart2/source/controller/itemsetwrapper/LegendItemConverter.cxx6
-rw-r--r--chart2/source/controller/itemsetwrapper/TitleItemConverter.cxx6
-rw-r--r--chart2/source/controller/main/ChartController.cxx69
-rw-r--r--chart2/source/controller/main/ChartController_Insert.cxx17
-rw-r--r--chart2/source/model/inc/Diagram.hxx8
-rw-r--r--chart2/source/model/main/Axis.cxx12
-rw-r--r--chart2/source/model/main/Axis.hxx10
-rw-r--r--chart2/source/model/main/ChartModel.cxx61
-rw-r--r--chart2/source/model/main/ChartModel.hxx20
-rw-r--r--chart2/source/model/main/Diagram.cxx17
-rw-r--r--chart2/source/model/main/ImplChartModel.cxx22
-rw-r--r--chart2/source/model/main/ImplChartModel.hxx15
-rw-r--r--chart2/source/model/main/makefile.mk5
-rw-r--r--chart2/source/model/template/AreaChartTypeTemplate.cxx181
-rw-r--r--chart2/source/model/template/AreaChartTypeTemplate.hxx39
-rw-r--r--chart2/source/model/template/BarChartTypeTemplate.cxx176
-rw-r--r--chart2/source/model/template/BarChartTypeTemplate.hxx39
-rw-r--r--chart2/source/model/template/ChartTypeManager.cxx108
-rw-r--r--chart2/source/model/template/ChartTypeTemplate.cxx157
-rw-r--r--chart2/source/model/template/ChartTypeTemplate.hxx36
-rw-r--r--chart2/source/model/template/ColumnChartType.cxx83
-rw-r--r--chart2/source/model/template/ColumnChartType.hxx84
-rw-r--r--chart2/source/model/template/ColumnLineChartTypeTemplate.cxx164
-rw-r--r--chart2/source/model/template/ColumnLineChartTypeTemplate.hxx41
-rw-r--r--chart2/source/model/template/LineChartTypeTemplate.cxx10
-rw-r--r--chart2/source/model/template/LineChartTypeTemplate.hxx9
-rw-r--r--chart2/source/model/template/PieChartTypeTemplate.cxx227
-rw-r--r--chart2/source/model/template/PieChartTypeTemplate.hxx60
-rw-r--r--chart2/source/model/template/makefile.mk5
-rw-r--r--chart2/source/tools/makefile.mk5
-rw-r--r--chart2/source/view/main/VLegend.cxx17
47 files changed, 1948 insertions, 769 deletions
diff --git a/chart2/prj/d.lst b/chart2/prj/d.lst
index 968e228ac349..a2013d6f0beb 100644
--- a/chart2/prj/d.lst
+++ b/chart2/prj/d.lst
@@ -7,6 +7,7 @@ mkdir: %COMMON_DEST%\bin%_EXT%\hid
..\%__SRC%\lib\*.sl %_DEST%\lib%_EXT%\*.sl
..\%__SRC%\bin\*.bin %_DEST%\bin%_EXT%\*.bin
..\%__SRC%\bin\*.res %_DEST%\bin%_EXT%\*.res
+..\%__SRC%\bin\*.rdb %_DEST%\rdb%_EXT%\*.rdb
mkdir: %_DEST%\inc%_EXT%\chart2
diff --git a/chart2/qa/TestCaseOldAPI.java b/chart2/qa/TestCaseOldAPI.java
index 05d3750a204e..208ea24cde9b 100644
--- a/chart2/qa/TestCaseOldAPI.java
+++ b/chart2/qa/TestCaseOldAPI.java
@@ -23,6 +23,7 @@ import drafts.com.sun.star.chart2.XTitled;
import drafts.com.sun.star.chart2.XTitle;
import drafts.com.sun.star.chart2.XDataProvider;
import drafts.com.sun.star.chart2.XFormattedString;
+import drafts.com.sun.star.chart2.XDiagramProvider;
import com.sun.star.uno.AnyConverter;
import com.sun.star.comp.helper.ComponentContext;
@@ -57,13 +58,14 @@ public class TestCaseOldAPI extends ComplexTestCase {
*/
public String[] getTestMethodNames() {
return new String[] {
+ "testChartType",
"testTitle",
"testSubTitle",
"testDiagram",
"testAxis",
"testLegend",
"testArea",
- "testChartType"
+ "testAggregation"
};
}
@@ -71,9 +73,10 @@ public class TestCaseOldAPI extends ComplexTestCase {
public void before()
{
- boolean bCreateView = false;
+ // change to "true" to get a view
+ mbCreateView = false;
- if( bCreateView )
+ if( mbCreateView )
mxChartModel = createDocument( "chart" );
else
mxChartModel = createChartModel();
@@ -91,14 +94,18 @@ public class TestCaseOldAPI extends ComplexTestCase {
XCloseable.class, mxChartModel );
assure( "document is no XCloseable", xCloseable != null );
- try
- {
- xCloseable.close( true );
- }
- catch( CloseVetoException ex )
+ // do not close document if there exists a view
+ if( ! mbCreateView )
{
- failed( ex.getMessage() );
- ex.printStackTrace( (PrintWriter)log );
+ try
+ {
+ xCloseable.close( true );
+ }
+ catch( CloseVetoException ex )
+ {
+ failed( ex.getMessage() );
+ ex.printStackTrace( (PrintWriter)log );
+ }
}
}
@@ -209,7 +216,7 @@ public class TestCaseOldAPI extends ComplexTestCase {
XPropertySet xProp = xDisp.getWall();
if( xProp != null )
{
- log.println( "Testing wall" );
+// log.println( "Testing wall" );
int nColor = 0xffe1ff; // thistle1
@@ -220,7 +227,7 @@ public class TestCaseOldAPI extends ComplexTestCase {
}
assure( "Wrong Diagram Type", xDia.getDiagramType().equals(
- "com.sun.star.chart.BarDiagram" ));
+ "com.sun.star.chart.AreaDiagram" ));
}
}
catch( Exception ex )
@@ -375,9 +382,19 @@ public class TestCaseOldAPI extends ComplexTestCase {
{
XDiagram xDia = (XDiagram) UnoRuntime.queryInterface(
XDiagram.class, xFact.createInstance( aMyServiceName ));
- assure( "AreaDiagram could not be created", xDia != null );
+ assure( aMyServiceName + " could not be created", xDia != null );
mxOldDoc.setDiagram( xDia );
+
+ XPropertySet xDiaProp = (XPropertySet) UnoRuntime.queryInterface(
+ XPropertySet.class, xDia );
+ assure( "Diagram is no XPropertySet", xDiaProp != null );
+
+ xDiaProp.getPropertyValue( "Stacked" );
+ xDiaProp.setPropertyValue( "Stacked", new Boolean( true ));
+ assure( "StackMode could not be set correctly",
+ AnyConverter.toBoolean(
+ xDiaProp.getPropertyValue( "Stacked" )));
}
}
catch( Exception ex )
@@ -387,10 +404,25 @@ public class TestCaseOldAPI extends ComplexTestCase {
}
}
+ // ------------
+
+ public void testAggregation()
+ {
+ // query to new type
+ XChartDocument xDiaProv = (XChartDocument) UnoRuntime.queryInterface(
+ XChartDocument.class, mxOldDoc );
+ assure( "query to new interface failed", xDiaProv != null );
+
+ com.sun.star.chart.XChartDocument xDoc = (com.sun.star.chart.XChartDocument) UnoRuntime.queryInterface(
+ com.sun.star.chart.XChartDocument.class, xDiaProv );
+ assure( "querying back to old interface failed", xDoc != null );
+ }
+
// ================================================================================
private XModel mxChartModel;
private XChartDocument mxOldDoc;
+ private boolean mbCreateView;
// --------------------------------------------------------------------------------
diff --git a/chart2/source/controller/dialogs/dlg_ChartType.cxx b/chart2/source/controller/dialogs/dlg_ChartType.cxx
index 029663b0d9b7..1c47fc1541a3 100644
--- a/chart2/source/controller/dialogs/dlg_ChartType.cxx
+++ b/chart2/source/controller/dialogs/dlg_ChartType.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: dlg_ChartType.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: bm $ $Date: 2003-10-06 09:58:25 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:12 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -93,14 +93,13 @@
#include "Bitmaps.hrc"
#include "Bitmaps_HC.hrc"
#include "Strings.hrc"
+#include "DataSeriesTreeHelper.hxx"
+#include "InlineContainer.hxx"
+#include "macros.hxx"
-#include "SchSfxItemIds.hxx"
+#include <functional>
-//#include "SchAllDefinesFor_svx_chrtitem.hxx"
-#define ITEMID_CHARTSTYLE SCHATTR_DIAGRAM_STYLE
-#ifndef _SVX_CHRTITEM_HXX
-#include <svx/chrtitem.hxx>
-#endif
+#include "SchSfxItemIds.hxx"
// header for class SfxInt32Item
#ifndef _SFXINTITEM_HXX
@@ -141,6 +140,175 @@
//#define CHTYPE_ADDIN 11
//.............................................................................
+namespace
+{
+typedef ::std::map< ::rtl::OUString, sal_Int32 > tTemplateServiceMap;
+
+const tTemplateServiceMap & lcl_GetChartTemplateServiceNameMap()
+{
+ static tTemplateServiceMap aTemplateMap(
+ ::comphelper::MakeMap< ::rtl::OUString, sal_Int32 >
+ ( C2U( "com.sun.star.chart2.template.Line" ), CHSTYLE_2D_LINE)
+ ( C2U( "com.sun.star.chart2.template.StackedLine" ), CHSTYLE_2D_STACKEDLINE)
+ ( C2U( "com.sun.star.chart2.template.PercentStackedLine" ), CHSTYLE_2D_PERCENTLINE)
+ ( C2U( "com.sun.star.chart2.template.LineSymbol" ), CHSTYLE_2D_LINESYMBOLS)
+ ( C2U( "com.sun.star.chart2.template.StackedLineSymbol" ), CHSTYLE_2D_STACKEDLINESYM)
+ ( C2U( "com.sun.star.chart2.template.PercentStackedLineSymbol" ), CHSTYLE_2D_PERCENTLINESYM)
+ ( C2U( "com.sun.star.chart2.template.CubicSpline" ), CHSTYLE_2D_CUBIC_SPLINE)
+ ( C2U( "com.sun.star.chart2.template.CubicSplineSymbol" ), CHSTYLE_2D_CUBIC_SPLINE_SYMBOL)
+ ( C2U( "com.sun.star.chart2.template.BSpline" ), CHSTYLE_2D_B_SPLINE)
+ ( C2U( "com.sun.star.chart2.template.BSplineSymbol" ), CHSTYLE_2D_B_SPLINE_SYMBOL)
+ ( C2U( "com.sun.star.chart2.template.ThreeDLine" ), CHSTYLE_3D_STRIPE)
+ ( C2U( "com.sun.star.chart2.template.Column" ), CHSTYLE_2D_COLUMN)
+ ( C2U( "com.sun.star.chart2.template.StackedColumn" ), CHSTYLE_2D_STACKEDCOLUMN)
+ ( C2U( "com.sun.star.chart2.template.PercentStackedColumn" ), CHSTYLE_2D_PERCENTCOLUMN)
+ ( C2U( "com.sun.star.chart2.template.Bar" ), CHSTYLE_2D_BAR)
+ ( C2U( "com.sun.star.chart2.template.StackedBar" ), CHSTYLE_2D_STACKEDBAR)
+ ( C2U( "com.sun.star.chart2.template.PercentStackedBar" ), CHSTYLE_2D_PERCENTBAR)
+ ( C2U( "com.sun.star.chart2.template.ThreeDColumnDeep" ), CHSTYLE_3D_COLUMN)
+ ( C2U( "com.sun.star.chart2.template.ThreeDColumnFlat" ), CHSTYLE_3D_FLATCOLUMN)
+ ( C2U( "com.sun.star.chart2.template.StackedThreeDColumnFlat" ), CHSTYLE_3D_STACKEDFLATCOLUMN)
+ ( C2U( "com.sun.star.chart2.template.PercentStackedThreeDColumnFlat" ), CHSTYLE_3D_PERCENTFLATCOLUMN)
+ ( C2U( "com.sun.star.chart2.template.ThreeDBarDeep" ), CHSTYLE_3D_BAR)
+ ( C2U( "com.sun.star.chart2.template.ThreeDBarFlat" ), CHSTYLE_3D_FLATBAR)
+ ( C2U( "com.sun.star.chart2.template.StackedThreeDBarFlat" ), CHSTYLE_3D_STACKEDFLATBAR)
+ ( C2U( "com.sun.star.chart2.template.PercentStackedThreeDBarFlat" ), CHSTYLE_3D_PERCENTFLATBAR)
+ ( C2U( "com.sun.star.chart2.template.ColumnWithLine" ), CHSTYLE_2D_LINE_COLUMN)
+ ( C2U( "com.sun.star.chart2.template.StackedColumnWithLine" ), CHSTYLE_2D_LINE_STACKEDCOLUMN)
+ ( C2U( "com.sun.star.chart2.template.Area" ), CHSTYLE_2D_AREA)
+ ( C2U( "com.sun.star.chart2.template.StackedArea" ), CHSTYLE_2D_STACKEDAREA)
+ ( C2U( "com.sun.star.chart2.template.PercentStackedArea" ), CHSTYLE_2D_PERCENTAREA)
+ ( C2U( "com.sun.star.chart2.template.ThreeDArea" ), CHSTYLE_3D_AREA)
+ ( C2U( "com.sun.star.chart2.template.StackedThreeDArea" ), CHSTYLE_3D_STACKEDAREA)
+ ( C2U( "com.sun.star.chart2.template.PercentStackedThreeDArea" ), CHSTYLE_3D_PERCENTAREA)
+ ( C2U( "com.sun.star.chart2.template.Pie" ), CHSTYLE_2D_PIE)
+ ( C2U( "com.sun.star.chart2.template.PieOneExploded" ), CHSTYLE_2D_PIE_SEGOF1)
+ ( C2U( "com.sun.star.chart2.template.PieAllExploded" ), CHSTYLE_2D_PIE_SEGOFALL)
+ ( C2U( "com.sun.star.chart2.template.Ring" ), CHSTYLE_2D_DONUT1)
+// ( C2U( "com.sun.star.chart2.template.Ring" ), CHSTYLE_2D_DONUT2)
+ ( C2U( "com.sun.star.chart2.template.ThreeDPie" ), CHSTYLE_3D_PIE)
+ ( C2U( "com.sun.star.chart2.template.ScatterLineSymbol" ), CHSTYLE_2D_XY)
+ ( C2U( "com.sun.star.chart2.template.CubicSplineScatter" ), CHSTYLE_2D_CUBIC_SPLINE_XY)
+ ( C2U( "com.sun.star.chart2.template.CubicSplineScatterSymbol" ), CHSTYLE_2D_CUBIC_SPLINE_SYMBOL_XY)
+ ( C2U( "com.sun.star.chart2.template.BSplineScatter" ), CHSTYLE_2D_B_SPLINE_XY)
+ ( C2U( "com.sun.star.chart2.template.BSplineScatterSymbol" ), CHSTYLE_2D_B_SPLINE_SYMBOL_XY)
+ ( C2U( "com.sun.star.chart2.template.ScatterLine" ), CHSTYLE_2D_XY_LINE)
+ ( C2U( "com.sun.star.chart2.template.ScatterSymbol" ), CHSTYLE_2D_XYSYMBOLS)
+ ( C2U( "com.sun.star.chart2.template.Net" ), CHSTYLE_2D_NET)
+ ( C2U( "com.sun.star.chart2.template.NetSymbol" ), CHSTYLE_2D_NET_SYMBOLS)
+ ( C2U( "com.sun.star.chart2.template.StackedNet" ), CHSTYLE_2D_NET_STACK)
+ ( C2U( "com.sun.star.chart2.template.StackedNetSymbol" ), CHSTYLE_2D_NET_SYMBOLS_STACK)
+ ( C2U( "com.sun.star.chart2.template.PercentStackedNet" ), CHSTYLE_2D_NET_PERCENT)
+ ( C2U( "com.sun.star.chart2.template.PercentStackedNetSymbol" ), CHSTYLE_2D_NET_SYMBOLS_PERCENT)
+ ( C2U( "com.sun.star.chart2.template.StockLowHighClose" ), CHSTYLE_2D_STOCK_1)
+ ( C2U( "com.sun.star.chart2.template.StockOpenLowHighClose" ), CHSTYLE_2D_STOCK_2)
+ ( C2U( "com.sun.star.chart2.template.StockVolumeLowHighClose" ), CHSTYLE_2D_STOCK_3)
+ ( C2U( "com.sun.star.chart2.template.StockVolumeOpenLowHighClose" ), CHSTYLE_2D_STOCK_4)
+ ( C2U( "com.sun.star.chart2.template.Surface" ), CHSTYLE_3D_SURFACE)
+ ( C2U( "com.sun.star.chart2.template.ThreeDScatter" ), CHSTYLE_3D_XYZ)
+ ( C2U( "com.sun.star.chart2.template.ThreeDScatterSymbol" ), CHSTYLE_3D_XYZSYMBOLS)
+ ( C2U( "com.sun.star.chart2.template.Addin" ), CHSTYLE_ADDIN)
+ );
+
+ return aTemplateMap;
+}
+
+SvxChartStyle lcl_GetChartStyleForTemplateServiceName( const ::rtl::OUString & rServiceName )
+{
+ const tTemplateServiceMap & rMap = lcl_GetChartTemplateServiceNameMap();
+ tTemplateServiceMap::const_iterator aIt( rMap.find( rServiceName ));
+ if( aIt != rMap.end())
+ return static_cast< SvxChartStyle >( (*aIt).second );
+
+ return CHSTYLE_ADDIN;
+}
+
+::rtl::OUString lcl_GetTemplateServiceNameForChartStyle( SvxChartStyle eStyle )
+{
+ const tTemplateServiceMap & rMap = lcl_GetChartTemplateServiceNameMap();
+ tTemplateServiceMap::const_iterator aIt(
+ ::std::find_if( rMap.begin(), rMap.end(),
+ ::std::compose1( ::std::bind2nd(
+ ::std::equal_to< tTemplateServiceMap::data_type >(),
+ static_cast< sal_Int32 >( eStyle ) ),
+ ::std::select2nd< tTemplateServiceMap::value_type >())));
+ if( aIt != rMap.end())
+ return (*aIt).first;
+
+ return ::rtl::OUString();
+}
+
+bool lcl_IsBSplineChart( SvxChartStyle eStyle )
+{
+ switch( eStyle )
+ {
+ case CHSTYLE_2D_B_SPLINE :
+ case CHSTYLE_2D_B_SPLINE_SYMBOL :
+ case CHSTYLE_2D_B_SPLINE_XY :
+ case CHSTYLE_2D_B_SPLINE_SYMBOL_XY :
+ return true;
+
+ default:
+ return false;
+ }
+ return false;
+}
+
+bool lcl_IsCubicSplineChart( SvxChartStyle eStyle )
+{
+ switch( eStyle )
+ {
+ case CHSTYLE_2D_CUBIC_SPLINE :
+ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL :
+ case CHSTYLE_2D_CUBIC_SPLINE_XY :
+ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL_XY :
+ return true;
+
+ default:
+ return false;
+ }
+ return false;
+}
+
+bool lcl_IsShapeStyleChartType( SvxChartStyle eStyle )
+{
+ switch( eStyle )
+ {
+ case CHSTYLE_3D_COLUMN:
+ case CHSTYLE_3D_FLATCOLUMN:
+ case CHSTYLE_3D_STACKEDFLATCOLUMN:
+ case CHSTYLE_3D_PERCENTFLATCOLUMN:
+ case CHSTYLE_3D_BAR:
+ case CHSTYLE_3D_FLATBAR:
+ case CHSTYLE_3D_STACKEDFLATBAR:
+ case CHSTYLE_3D_PERCENTFLATBAR:
+ return true;
+
+ default:
+ return false;
+ }
+ return false;
+}
+
+bool lcl_IsCombiChart( SvxChartStyle eStyle )
+{
+ switch( eStyle )
+ {
+ case CHSTYLE_2D_LINE_COLUMN:
+ case CHSTYLE_2D_LINE_STACKEDCOLUMN:
+ return true;
+ default:
+ return false;
+ }
+ return false;
+}
+
+} // anonymous namespace
+
+using namespace ::com::sun::star;
+using namespace ::drafts::com::sun::star;
+
+//.............................................................................
namespace chart
{
//.............................................................................
@@ -149,30 +317,33 @@ namespace chart
// bIsHighContrast must exist and reflect the correct state
#define SELECT_BITMAP(name) Bitmap( SchResId( bIsHighContrast ? name ## _HC : name ))
-SchDiagramTypeDlg::SchDiagramTypeDlg(Window* pWindow,
- const SfxItemSet& rInAttrs) :
- ModalDialog(pWindow, SchResId(DLG_DIAGRAM_TYPE)),
-
- n3DGeometry(CHART_SHAPE3D_ANY),
- aRbt2D(this, ResId(RBT_2D)),
- aRbt3D(this, ResId(RBT_3D)),
- aFlDimension(this, ResId(FL_DIMENSION)),
- aFtDeep( this, ResId( FT_DEEP ) ),
- aMtrFldDeep( this, ResId( MTR_FLD_DEEP ) ),
- aFtGran( this, ResId( FT_GRAN ) ),
- aMtrFldGran( this, ResId( MTR_FLD_GRAN ) ),
- aFtNumLines( this, ResId( FT_NUM_OF_LINES ) ),
- aMtrFldNumLines( this, ResId( MTR_FLD_NUM_OF_LINES ) ),
-
- aFtType(this, ResId(FT_TYPE)),
- aCtlType(this, ResId(CTL_TYPE)),
- aFtVariant(this, ResId(FT_VARIANT)),
- aCtlVariant(this, ResId(CTL_VARIANT)),
- aBtnOK(this, ResId(BTN_OK)),
- aBtnCancel(this, ResId(BTN_CANCEL)),
- aBtnHelp(this, ResId(BTN_HELP)),
- eDimension(CHDIM_2D),
- rOutAttrs(rInAttrs)
+SchDiagramTypeDlg::SchDiagramTypeDlg(
+ Window* pWindow,
+ const uno::Reference< chart2::XDiagram > & xDiagram,
+ const uno::Reference< lang::XMultiServiceFactory > & xTemplateManager ) :
+ ModalDialog(pWindow, SchResId(DLG_DIAGRAM_TYPE)),
+
+ n3DGeometry(CHART_SHAPE3D_ANY),
+ aRbt2D(this, ResId(RBT_2D)),
+ aRbt3D(this, ResId(RBT_3D)),
+ aFlDimension(this, ResId(FL_DIMENSION)),
+ aFtDeep( this, ResId( FT_DEEP ) ),
+ aMtrFldDeep( this, ResId( MTR_FLD_DEEP ) ),
+ aFtGran( this, ResId( FT_GRAN ) ),
+ aMtrFldGran( this, ResId( MTR_FLD_GRAN ) ),
+ aFtNumLines( this, ResId( FT_NUM_OF_LINES ) ),
+ aMtrFldNumLines( this, ResId( MTR_FLD_NUM_OF_LINES ) ),
+
+ aFtType(this, ResId(FT_TYPE)),
+ aCtlType(this, ResId(CTL_TYPE)),
+ aFtVariant(this, ResId(FT_VARIANT)),
+ aCtlVariant(this, ResId(CTL_VARIANT)),
+ aBtnOK(this, ResId(BTN_OK)),
+ aBtnCancel(this, ResId(BTN_CANCEL)),
+ aBtnHelp(this, ResId(BTN_HELP)),
+ eDimension(CHDIM_2D),
+ m_xDiagram( xDiagram ),
+ m_xTemplateManager( xTemplateManager )
{
FreeResource();
@@ -203,8 +374,8 @@ SchDiagramTypeDlg::SchDiagramTypeDlg(Window* pWindow,
Reset();
- //ToDo: This is just to have some default
- SetMaximumNumberOfLines( 12 );
+ // "- 1": at least one bar should remain
+ SetMaximumNumberOfLines( helper::DataSeriesTreeHelper::getDataSeriesFromDiagram( m_xDiagram ).getLength() - 1 );
}
/*************************************************************************
@@ -224,180 +395,169 @@ SchDiagramTypeDlg::~SchDiagramTypeDlg()
void SchDiagramTypeDlg::Reset()
{
- const SfxPoolItem *pPoolItem = NULL;
-
- if (rOutAttrs.GetItemState(SCHATTR_STYLE_SHAPE, TRUE, &pPoolItem)
- == SFX_ITEM_SET)
- n3DGeometry=((const SfxInt32Item*)pPoolItem)->GetValue();
+ if( ! m_xDiagram.is())
+ return;
- if (rOutAttrs.GetItemState(SCHATTR_DIAGRAM_STYLE, TRUE, &pPoolItem)
- == SFX_ITEM_SET)
- {
- USHORT nType;
- ChartDimension eDim;
+ uno::Reference< chart2::XDataSeriesTreeParent > xTree( m_xDiagram->getTree());
+ SvxChartStyle eStyle = lcl_GetChartStyleForTemplateServiceName(
+ helper::DataSeriesTreeHelper::getChartTypeTemplateServiceName( xTree ));
- //Hier sollte demnaechst folgendes ersatzweise stehen:
- //nType=pDoc->GetBaseType();
- //eDim=(pDoc->GetDisplayDimension()==3)?CHDIM_3D:CHDIM_2D;
-
- switch (((const SvxChartStyleItem*)pPoolItem)->GetValue())
- {
- case CHSTYLE_2D_B_SPLINE :
- case CHSTYLE_2D_B_SPLINE_SYMBOL :
- case CHSTYLE_2D_LINE:
- case CHSTYLE_2D_STACKEDLINE:
- case CHSTYLE_2D_PERCENTLINE:
- case CHSTYLE_2D_LINESYMBOLS:
- case CHSTYLE_2D_STACKEDLINESYM:
- case CHSTYLE_2D_PERCENTLINESYM:
- case CHSTYLE_2D_CUBIC_SPLINE :
- case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL :
- nType = CHTYPE_LINE;
- eDim = CHDIM_2D;
- break;
-
- case CHSTYLE_2D_COLUMN:
- case CHSTYLE_2D_STACKEDCOLUMN:
- case CHSTYLE_2D_PERCENTCOLUMN:
- case CHSTYLE_2D_LINE_COLUMN:
- case CHSTYLE_2D_LINE_STACKEDCOLUMN:
-
- nType = CHTYPE_COLUMN;
- eDim = CHDIM_2D;
- break;
+ USHORT nType;
+ ChartDimension eDim;
- case CHSTYLE_2D_BAR:
- case CHSTYLE_2D_STACKEDBAR:
- case CHSTYLE_2D_PERCENTBAR:
- nType = CHTYPE_BAR;
- eDim = CHDIM_2D;
- break;
-
- case CHSTYLE_2D_AREA:
- case CHSTYLE_2D_STACKEDAREA:
- case CHSTYLE_2D_PERCENTAREA:
- nType = CHTYPE_AREA;
- eDim = CHDIM_2D;
- break;
+ switch( eStyle )
+ {
+ case CHSTYLE_2D_B_SPLINE :
+ case CHSTYLE_2D_B_SPLINE_SYMBOL :
+ case CHSTYLE_2D_LINE:
+ case CHSTYLE_2D_STACKEDLINE:
+ case CHSTYLE_2D_PERCENTLINE:
+ case CHSTYLE_2D_LINESYMBOLS:
+ case CHSTYLE_2D_STACKEDLINESYM:
+ case CHSTYLE_2D_PERCENTLINESYM:
+ case CHSTYLE_2D_CUBIC_SPLINE :
+ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL :
+ nType = CHTYPE_LINE;
+ eDim = CHDIM_2D;
+ break;
- case CHSTYLE_2D_PIE:
- case CHSTYLE_2D_PIE_SEGOF1:
- case CHSTYLE_2D_PIE_SEGOFALL:
- case CHSTYLE_2D_DONUT1:
- case CHSTYLE_2D_DONUT2:
- nType = CHTYPE_CIRCLE;
- eDim = CHDIM_2D;
- break;
+ case CHSTYLE_2D_COLUMN:
+ case CHSTYLE_2D_STACKEDCOLUMN:
+ case CHSTYLE_2D_PERCENTCOLUMN:
+ case CHSTYLE_2D_LINE_COLUMN:
+ case CHSTYLE_2D_LINE_STACKEDCOLUMN:
- case CHSTYLE_2D_B_SPLINE_XY :
- case CHSTYLE_2D_XY_LINE :
- case CHSTYLE_2D_B_SPLINE_SYMBOL_XY :
- case CHSTYLE_2D_XYSYMBOLS:
- case CHSTYLE_2D_XY:
- case CHSTYLE_2D_CUBIC_SPLINE_XY :
- case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL_XY :
- nType = CHTYPE_XY;
- eDim = CHDIM_2D;
- break;
+ nType = CHTYPE_COLUMN;
+ eDim = CHDIM_2D;
+ break;
- case CHSTYLE_2D_NET:
- case CHSTYLE_2D_NET_SYMBOLS:
- case CHSTYLE_2D_NET_STACK:
- case CHSTYLE_2D_NET_SYMBOLS_STACK:
- case CHSTYLE_2D_NET_PERCENT:
- case CHSTYLE_2D_NET_SYMBOLS_PERCENT:
- nType = CHTYPE_NET;
- eDim = CHDIM_2D;
- break;
+ case CHSTYLE_2D_BAR:
+ case CHSTYLE_2D_STACKEDBAR:
+ case CHSTYLE_2D_PERCENTBAR:
+ nType = CHTYPE_BAR;
+ eDim = CHDIM_2D;
+ break;
- case CHSTYLE_3D_STRIPE:
- nType = CHTYPE_LINE;
- eDim = CHDIM_3D;
- break;
+ case CHSTYLE_2D_AREA:
+ case CHSTYLE_2D_STACKEDAREA:
+ case CHSTYLE_2D_PERCENTAREA:
+ nType = CHTYPE_AREA;
+ eDim = CHDIM_2D;
+ break;
- case CHSTYLE_3D_COLUMN:
- case CHSTYLE_3D_FLATCOLUMN:
- case CHSTYLE_3D_STACKEDFLATCOLUMN:
- case CHSTYLE_3D_PERCENTFLATCOLUMN:
- nType = CHTYPE_COLUMN;
- eDim = CHDIM_3D;
- break;
+ case CHSTYLE_2D_PIE:
+ case CHSTYLE_2D_PIE_SEGOF1:
+ case CHSTYLE_2D_PIE_SEGOFALL:
+ case CHSTYLE_2D_DONUT1:
+ case CHSTYLE_2D_DONUT2:
+ nType = CHTYPE_CIRCLE;
+ eDim = CHDIM_2D;
+ break;
- case CHSTYLE_3D_BAR:
- case CHSTYLE_3D_FLATBAR:
- case CHSTYLE_3D_STACKEDFLATBAR:
- case CHSTYLE_3D_PERCENTFLATBAR:
- nType = CHTYPE_BAR;
- eDim = CHDIM_3D;
- break;
+ case CHSTYLE_2D_B_SPLINE_XY :
+ case CHSTYLE_2D_XY_LINE :
+ case CHSTYLE_2D_B_SPLINE_SYMBOL_XY :
+ case CHSTYLE_2D_XYSYMBOLS:
+ case CHSTYLE_2D_XY:
+ case CHSTYLE_2D_CUBIC_SPLINE_XY :
+ case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL_XY :
+ nType = CHTYPE_XY;
+ eDim = CHDIM_2D;
+ break;
- case CHSTYLE_3D_AREA:
- case CHSTYLE_3D_STACKEDAREA:
- case CHSTYLE_3D_PERCENTAREA:
- nType = CHTYPE_AREA;
- eDim = CHDIM_3D;
- break;
+ case CHSTYLE_2D_NET:
+ case CHSTYLE_2D_NET_SYMBOLS:
+ case CHSTYLE_2D_NET_STACK:
+ case CHSTYLE_2D_NET_SYMBOLS_STACK:
+ case CHSTYLE_2D_NET_PERCENT:
+ case CHSTYLE_2D_NET_SYMBOLS_PERCENT:
+ nType = CHTYPE_NET;
+ eDim = CHDIM_2D;
+ break;
- case CHSTYLE_3D_PIE:
- nType = CHTYPE_CIRCLE;
- eDim = CHDIM_3D;
- break;
+ case CHSTYLE_3D_STRIPE:
+ nType = CHTYPE_LINE;
+ eDim = CHDIM_3D;
+ break;
- case CHSTYLE_2D_STOCK_1:
- case CHSTYLE_2D_STOCK_2:
- case CHSTYLE_2D_STOCK_3:
- case CHSTYLE_2D_STOCK_4:
- nType = CHTYPE_STOCK;
- eDim = CHDIM_2D;
- break;
+ case CHSTYLE_3D_COLUMN:
+ case CHSTYLE_3D_FLATCOLUMN:
+ case CHSTYLE_3D_STACKEDFLATCOLUMN:
+ case CHSTYLE_3D_PERCENTFLATCOLUMN:
+ nType = CHTYPE_COLUMN;
+ eDim = CHDIM_3D;
+ break;
- default:
- DBG_ERROR("Invalid chart style given!");
- return;
- }
+ case CHSTYLE_3D_BAR:
+ case CHSTYLE_3D_FLATBAR:
+ case CHSTYLE_3D_STACKEDFLATBAR:
+ case CHSTYLE_3D_PERCENTFLATBAR:
+ nType = CHTYPE_BAR;
+ eDim = CHDIM_3D;
+ break;
- if (eDim == CHDIM_3D)
- {
- aRbt3D.Check(TRUE);
- eDimension = CHDIM_2D;
- SelectDimensionHdl(&aRbt3D);
- }
- else
- {
- aRbt2D.Check(TRUE);
- eDimension = CHDIM_3D;
- SelectDimensionHdl(&aRbt2D);
- }
+ case CHSTYLE_3D_AREA:
+ case CHSTYLE_3D_STACKEDAREA:
+ case CHSTYLE_3D_PERCENTAREA:
+ nType = CHTYPE_AREA;
+ eDim = CHDIM_3D;
+ break;
- aCtlType.SelectItem(nType);
- SelectTypeHdl(&aCtlType);
+ case CHSTYLE_3D_PIE:
+ nType = CHTYPE_CIRCLE;
+ eDim = CHDIM_3D;
+ break;
- USHORT nItemChartType = static_cast< USHORT >(
- static_cast< const SvxChartStyleItem * >( pPoolItem )->GetValue() );
+ case CHSTYLE_2D_STOCK_1:
+ case CHSTYLE_2D_STOCK_2:
+ case CHSTYLE_2D_STOCK_3:
+ case CHSTYLE_2D_STOCK_4:
+ nType = CHTYPE_STOCK;
+ eDim = CHDIM_2D;
+ break;
- SwitchDepth( nItemChartType );
- SwitchNumLines( nItemChartType );
+ default:
+ DBG_ERROR("Invalid chart style given!");
+ return;
}
- if (rOutAttrs.GetItemState(SCHATTR_NUM_OF_LINES_FOR_BAR, TRUE, &pPoolItem)
- == SFX_ITEM_SET)
+ if (eDim == CHDIM_3D)
{
- aMtrFldNumLines.SetValue(
- reinterpret_cast< const SfxInt32Item * >( pPoolItem )->GetValue());
+ aRbt3D.Check(TRUE);
+ eDimension = CHDIM_2D;
+ SelectDimensionHdl(&aRbt3D);
}
+ else
+ {
+ aRbt2D.Check(TRUE);
+ eDimension = CHDIM_3D;
+ SelectDimensionHdl(&aRbt2D);
+ }
+
+ aCtlType.SelectItem(nType);
+ SelectTypeHdl(&aCtlType);
- if (rOutAttrs.GetItemState(SCHATTR_SPLINE_RESOLUTION, TRUE, &pPoolItem)
- == SFX_ITEM_SET)
+ SwitchDepth( eStyle );
+ SwitchNumLines( eStyle );
+
+ if( lcl_IsCombiChart( eStyle ))
{
- aMtrFldGran.SetValue(
- reinterpret_cast< const SfxInt32Item * >( pPoolItem )->GetValue());
+ sal_Int32 nNumLines = helper::DataSeriesTreeHelper::getNumberOfSeriesForChartTypeByIndex(
+ xTree, 1 );
+ aMtrFldNumLines.SetValue( nNumLines );
}
- if (rOutAttrs.GetItemState(SCHATTR_SPLINE_ORDER, TRUE, &pPoolItem)
- ==SFX_ITEM_SET)
+ if( lcl_IsBSplineChart( eStyle ) ||
+ lcl_IsCubicSplineChart( eStyle ))
{
- aMtrFldDeep.SetValue(
- reinterpret_cast< const SfxInt32Item * >( pPoolItem )->GetValue());
+ // todo: take model value (XChartType)
+ SetGranularity( 20 );
+
+ if( lcl_IsBSplineChart( eStyle ))
+ {
+ // todo: take model value (XChartType)
+ SetDepth( 3 );
+ }
}
}
@@ -806,35 +966,40 @@ void SchDiagramTypeDlg::FillVariantSet(USHORT nType)
aCtlVariant.Show();
USHORT nSelId = aCtlVariant.GetItemId(0);
- const SfxPoolItem *pPoolItem = NULL;
- if( rOutAttrs.GetItemState(SCHATTR_DIAGRAM_STYLE, TRUE, &pPoolItem) == SFX_ITEM_SET )
- {
- USHORT nId = (USHORT)((const SvxChartStyleItem*)pPoolItem)->GetValue() + 1;
+ uno::Reference< chart2::XDataSeriesTreeParent > xTree( m_xDiagram->getTree());
+ SvxChartStyle eStyle = lcl_GetChartStyleForTemplateServiceName(
+ helper::DataSeriesTreeHelper::getChartTypeTemplateServiceName( xTree ));
- if( aCtlVariant.GetItemPos(nId) != VALUESET_ITEM_NOTFOUND )
- {
- nSelId = nId;
- nDefaultOffset = 0;
- }
+ USHORT nId = static_cast< USHORT >( eStyle ) + 1;
+// (USHORT)((const SvxChartStyleItem*)pPoolItem)->GetValue() + 1;
+
+ if( aCtlVariant.GetItemPos( nId ) != VALUESET_ITEM_NOTFOUND )
+ {
+ nSelId = nId;
+ nDefaultOffset = 0;
}
+
long nShape3dOffset = 0;
- if( rOutAttrs.GetItemState(SCHATTR_STYLE_SHAPE, TRUE, &pPoolItem) == SFX_ITEM_SET )
+ if( lcl_IsShapeStyleChartType( eStyle ))
{
-// long nId3D = ((const SfxInt32Item*)&pPoolItem)->GetValue();
- switch( n3DGeometry )
- {
- case CHART_SHAPE3D_CYLINDER:
- nShape3dOffset = OFFSET_ROUND;
- break;
- case CHART_SHAPE3D_CONE:
- nShape3dOffset = OFFSET_CONE;
- break;
- case CHART_SHAPE3D_PYRAMID:
- nShape3dOffset = OFFSET_PYRAMID;
- break;
- }
+ nShape3dOffset = OFFSET_CONE;
}
+
+// long nId3D = ((const SfxInt32Item*)&pPoolItem)->GetValue();
+// switch( n3DGeometry )
+// {
+// case CHART_SHAPE3D_CYLINDER:
+// nShape3dOffset = OFFSET_ROUND;
+// break;
+// case CHART_SHAPE3D_CONE:
+// nShape3dOffset = OFFSET_CONE;
+// break;
+// case CHART_SHAPE3D_PYRAMID:
+// nShape3dOffset = OFFSET_PYRAMID;
+// break;
+// }
+
if( aCtlVariant.GetItemPos( nSelId + nShape3dOffset + nDefaultOffset ) != VALUESET_ITEM_NOTFOUND )
nSelId += (nShape3dOffset + nDefaultOffset);
@@ -843,8 +1008,9 @@ void SchDiagramTypeDlg::FillVariantSet(USHORT nType)
// make selected Item visible
aCtlVariant.SetFirstLine( aCtlVariant.GetItemPos( aCtlVariant.GetSelectItemId() ) / aCtlVariant.GetColCount() );
- SwitchDepth( nSelId - 1 );
- SwitchNumLines( nSelId - 1 );
+ eStyle = static_cast< SvxChartStyle >( nSelId - 1 );
+ SwitchDepth( eStyle );
+ SwitchNumLines( eStyle );
}
/*************************************************************************
@@ -889,36 +1055,36 @@ IMPL_LINK( SchDiagramTypeDlg, DoubleClickHdl, void *, EMPTYARG )
|*
\*************************************************************************/
-void SchDiagramTypeDlg::GetAttr(SfxItemSet& rOutAttrs)
-{
- long nId=aCtlVariant.GetSelectItemId() - 1;
- long nGeo=CHART_SHAPE3D_ANY;
- if(nId>OFFSET_CONE)
- {
- nId-=OFFSET_CONE;
- nGeo=CHART_SHAPE3D_CONE;
- }
- if(nId>OFFSET_ROUND)
- {
- nId-=OFFSET_ROUND;
- nGeo=CHART_SHAPE3D_CYLINDER;
- }
- if(nId>OFFSET_PYRAMID)
- {
- nId-=OFFSET_PYRAMID;
- nGeo=CHART_SHAPE3D_PYRAMID;
- }
- if(nGeo != n3DGeometry)
- rOutAttrs.Put(SfxInt32Item(SCHATTR_STYLE_SHAPE,nGeo));
- else
- rOutAttrs.ClearItem(SCHATTR_STYLE_SHAPE);
-
- rOutAttrs.Put(SvxChartStyleItem((SvxChartStyle) (nId)));
-
- rOutAttrs.Put( SfxInt32Item( SCHATTR_NUM_OF_LINES_FOR_BAR, aMtrFldNumLines.GetValue()));
- rOutAttrs.Put( SfxInt32Item( SCHATTR_SPLINE_RESOLUTION, aMtrFldGran.GetValue()));
- rOutAttrs.Put( SfxInt32Item( SCHATTR_SPLINE_ORDER, aMtrFldDeep.GetValue()));
-}
+// void SchDiagramTypeDlg::GetAttr(SfxItemSet& rOutAttrs)
+// {
+// long nId=aCtlVariant.GetSelectItemId() - 1;
+// long nGeo=CHART_SHAPE3D_ANY;
+// if(nId>OFFSET_CONE)
+// {
+// nId-=OFFSET_CONE;
+// nGeo=CHART_SHAPE3D_CONE;
+// }
+// if(nId>OFFSET_ROUND)
+// {
+// nId-=OFFSET_ROUND;
+// nGeo=CHART_SHAPE3D_CYLINDER;
+// }
+// if(nId>OFFSET_PYRAMID)
+// {
+// nId-=OFFSET_PYRAMID;
+// nGeo=CHART_SHAPE3D_PYRAMID;
+// }
+// if(nGeo != n3DGeometry)
+// rOutAttrs.Put(SfxInt32Item(SCHATTR_STYLE_SHAPE,nGeo));
+// else
+// rOutAttrs.ClearItem(SCHATTR_STYLE_SHAPE);
+
+// rOutAttrs.Put(SvxChartStyleItem((SvxChartStyle) (nId)));
+
+// rOutAttrs.Put( SfxInt32Item( SCHATTR_NUM_OF_LINES_FOR_BAR, aMtrFldNumLines.GetValue()));
+// rOutAttrs.Put( SfxInt32Item( SCHATTR_SPLINE_RESOLUTION, aMtrFldGran.GetValue()));
+// rOutAttrs.Put( SfxInt32Item( SCHATTR_SPLINE_ORDER, aMtrFldDeep.GetValue()));
+// }
/*************************************************************************
|*
@@ -926,10 +1092,10 @@ void SchDiagramTypeDlg::GetAttr(SfxItemSet& rOutAttrs)
|*
\************************************************************************/
-// int SchDiagramTypeDlg::GetDepth()
-// {
-// return aMtrFldDeep.GetValue();
-// }
+sal_Int32 SchDiagramTypeDlg::GetDepth()
+{
+ return aMtrFldDeep.GetValue();
+}
/*************************************************************************
|*
@@ -937,10 +1103,10 @@ void SchDiagramTypeDlg::GetAttr(SfxItemSet& rOutAttrs)
|*
\************************************************************************/
-// void SchDiagramTypeDlg::SetDepth( int nDepth )
-// {
-// aMtrFldDeep.SetValue( nDepth );
-// }
+void SchDiagramTypeDlg::SetDepth( sal_Int32 nDepth )
+{
+ aMtrFldDeep.SetValue( nDepth );
+}
/*************************************************************************
|*
@@ -948,32 +1114,23 @@ void SchDiagramTypeDlg::GetAttr(SfxItemSet& rOutAttrs)
|*
\************************************************************************/
-void SchDiagramTypeDlg::SwitchDepth (USHORT nID)
+void SchDiagramTypeDlg::SwitchDepth( SvxChartStyle eID )
{
- aFtDeep.Hide ();
- aMtrFldDeep.Hide ();
- aFtGran.Hide ();
- aMtrFldGran.Hide ();
+ aFtDeep.Hide();
+ aMtrFldDeep.Hide();
+ aFtGran.Hide();
+ aMtrFldGran.Hide();
- switch (nID)
+ if( lcl_IsBSplineChart( eID ))
{
- case CHSTYLE_2D_B_SPLINE :
- case CHSTYLE_2D_B_SPLINE_SYMBOL :
- case CHSTYLE_2D_B_SPLINE_XY :
- case CHSTYLE_2D_B_SPLINE_SYMBOL_XY :
- aFtDeep.Show ();
- aMtrFldDeep.Show ();
-
- case CHSTYLE_2D_CUBIC_SPLINE :
- case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL :
- case CHSTYLE_2D_CUBIC_SPLINE_XY :
- case CHSTYLE_2D_CUBIC_SPLINE_SYMBOL_XY :
- aFtGran.Show ();
- aMtrFldGran.Show ();
- break;
+ aFtDeep.Show ();
+ aMtrFldDeep.Show ();
+ }
- default :
- break;
+ if( lcl_IsCubicSplineChart( eID ))
+ {
+ aFtGran.Show ();
+ aMtrFldGran.Show ();
}
}
@@ -985,8 +1142,11 @@ void SchDiagramTypeDlg::SwitchDepth (USHORT nID)
IMPL_LINK( SchDiagramTypeDlg, ClickHdl, void *, EMPTYARG )
{
- SwitchDepth (aCtlVariant.GetSelectItemId() - 1);
- SwitchNumLines( aCtlVariant.GetSelectItemId() - 1 );
+ SvxChartStyle eStyle = static_cast< SvxChartStyle >(
+ aCtlVariant.GetSelectItemId() - 1 );
+
+ SwitchDepth( eStyle );
+ SwitchNumLines( eStyle );
return 0;
}
@@ -996,10 +1156,10 @@ IMPL_LINK( SchDiagramTypeDlg, ClickHdl, void *, EMPTYARG )
|*
\************************************************************************/
-// int SchDiagramTypeDlg::GetGranularity()
-// {
-// return aMtrFldGran.GetValue();
-// }
+sal_Int32 SchDiagramTypeDlg::GetGranularity()
+{
+ return aMtrFldGran.GetValue();
+}
/*************************************************************************
|*
@@ -1007,10 +1167,10 @@ IMPL_LINK( SchDiagramTypeDlg, ClickHdl, void *, EMPTYARG )
|*
\************************************************************************/
-// void SchDiagramTypeDlg::SetGranularity( int nGranularity )
-// {
-// aMtrFldGran.SetValue( nGranularity );
-// }
+void SchDiagramTypeDlg::SetGranularity( sal_Int32 nGranularity )
+{
+ aMtrFldGran.SetValue( nGranularity );
+}
void SchDiagramTypeDlg::FillValueSets()
{
@@ -1034,20 +1194,17 @@ void SchDiagramTypeDlg::DataChanged( const DataChangedEvent& rDCEvt )
}
-void SchDiagramTypeDlg::SwitchNumLines( USHORT nID )
+void SchDiagramTypeDlg::SwitchNumLines( SvxChartStyle eID )
{
- switch( nID )
+ if( lcl_IsCombiChart( eID ))
{
- case CHSTYLE_2D_LINE_COLUMN:
- case CHSTYLE_2D_LINE_STACKEDCOLUMN:
- aFtNumLines.Show();
- aMtrFldNumLines.Show();
- break;
-
- default:
- aFtNumLines.Hide();
- aMtrFldNumLines.Hide();
- break;
+ aFtNumLines.Show();
+ aMtrFldNumLines.Show();
+ }
+ else
+ {
+ aFtNumLines.Hide();
+ aMtrFldNumLines.Hide();
}
}
@@ -1057,15 +1214,45 @@ void SchDiagramTypeDlg::SetMaximumNumberOfLines( long nMaxLines )
aMtrFldNumLines.SetMax( nMaxLines );
}
+uno::Reference< chart2::XChartTypeTemplate > SchDiagramTypeDlg::getTemplate() const
+{
+ uno::Reference< chart2::XChartTypeTemplate > xResult;
+
+ if( m_xTemplateManager.is())
+ {
+ SvxChartStyle eStyle = static_cast< SvxChartStyle >(
+ aCtlVariant.GetSelectItemId() - 1 );
+
+ xResult.set( m_xTemplateManager->createInstance(
+ lcl_GetTemplateServiceNameForChartStyle( eStyle )),
+ uno::UNO_QUERY );
+
+ if( lcl_IsCombiChart( eStyle ))
+ {
+ try
+ {
+ uno::Reference< beans::XPropertySet > xProp( xResult, uno::UNO_QUERY_THROW );
+ xProp->setPropertyValue( C2U( "NumberOfLines" ), uno::makeAny( GetNumberOfLines()));
+ }
+ catch( uno::Exception & ex )
+ {
+ ASSERT_EXCEPTION( ex );
+ }
+ }
+ }
+
+ return xResult;
+}
+
// void SchDiagramTypeDlg::SetNumberOfLines( long nLines )
// {
// aMtrFldNumLines.SetValue( nLines );
// }
-// long SchDiagramTypeDlg::GetNumberOfLines() const
-// {
-// return aMtrFldNumLines.GetValue();
-// }
+sal_Int32 SchDiagramTypeDlg::GetNumberOfLines() const
+{
+ return aMtrFldNumLines.GetValue();
+}
//.............................................................................
} //namespace chart
diff --git a/chart2/source/controller/inc/AxisItemConverter.hxx b/chart2/source/controller/inc/AxisItemConverter.hxx
index 8f4115ed0cc1..5581e6a83e1c 100644
--- a/chart2/source/controller/inc/AxisItemConverter.hxx
+++ b/chart2/source/controller/inc/AxisItemConverter.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: AxisItemConverter.hxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: bm $ $Date: 2003-10-17 14:30:08 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:13 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -106,7 +106,7 @@ protected:
virtual void FillSpecialItem( USHORT nWhichId, SfxItemSet & rOutItemSet ) const
throw( ::com::sun::star::uno::Exception );
- virtual bool ApplySpecialItem( USHORT nWhichId, const SfxItemSet & rItemSet ) const
+ virtual bool ApplySpecialItem( USHORT nWhichId, const SfxItemSet & rItemSet )
throw( ::com::sun::star::uno::Exception );
private:
diff --git a/chart2/source/controller/inc/CharacterPropertyItemConverter.hxx b/chart2/source/controller/inc/CharacterPropertyItemConverter.hxx
index 8810ef51de66..178940f58314 100644
--- a/chart2/source/controller/inc/CharacterPropertyItemConverter.hxx
+++ b/chart2/source/controller/inc/CharacterPropertyItemConverter.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: CharacterPropertyItemConverter.hxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: bm $ $Date: 2003-10-17 14:30:09 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:13 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -91,7 +91,7 @@ protected:
virtual void FillSpecialItem( USHORT nWhichId, SfxItemSet & rOutItemSet ) const
throw( ::com::sun::star::uno::Exception );
- virtual bool ApplySpecialItem( USHORT nWhichId, const SfxItemSet & rItemSet ) const
+ virtual bool ApplySpecialItem( USHORT nWhichId, const SfxItemSet & rItemSet )
throw( ::com::sun::star::uno::Exception );
};
diff --git a/chart2/source/controller/inc/DataPointItemConverter.hxx b/chart2/source/controller/inc/DataPointItemConverter.hxx
index bb5df88cf1a4..7f3781338b13 100644
--- a/chart2/source/controller/inc/DataPointItemConverter.hxx
+++ b/chart2/source/controller/inc/DataPointItemConverter.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: DataPointItemConverter.hxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: bm $ $Date: 2003-10-17 14:30:09 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:13 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -97,7 +97,7 @@ protected:
virtual void FillSpecialItem( USHORT nWhichId, SfxItemSet & rOutItemSet ) const
throw( ::com::sun::star::uno::Exception );
- virtual bool ApplySpecialItem( USHORT nWhichId, const SfxItemSet & rItemSet ) const
+ virtual bool ApplySpecialItem( USHORT nWhichId, const SfxItemSet & rItemSet )
throw( ::com::sun::star::uno::Exception );
private:
diff --git a/chart2/source/controller/inc/GraphicPropertyItemConverter.hxx b/chart2/source/controller/inc/GraphicPropertyItemConverter.hxx
index 538b7f3f4f16..6156165f7dbf 100644
--- a/chart2/source/controller/inc/GraphicPropertyItemConverter.hxx
+++ b/chart2/source/controller/inc/GraphicPropertyItemConverter.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: GraphicPropertyItemConverter.hxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: bm $ $Date: 2003-10-17 14:30:09 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:13 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -104,12 +104,12 @@ protected:
virtual void FillSpecialItem( USHORT nWhichId, SfxItemSet & rOutItemSet ) const
throw( ::com::sun::star::uno::Exception );
- virtual bool ApplySpecialItem( USHORT nWhichId, const SfxItemSet & rItemSet ) const
+ virtual bool ApplySpecialItem( USHORT nWhichId, const SfxItemSet & rItemSet )
throw( ::com::sun::star::uno::Exception );
void FillBitmapItem( USHORT nWhichId, SfxItemSet & rOutItemSet ) const
throw( ::com::sun::star::beans::UnknownPropertyException );
- void ApplyBitmapItem( USHORT nWhichId, const SfxItemSet & rItemSet ) const
+ void ApplyBitmapItem( USHORT nWhichId, const SfxItemSet & rItemSet )
throw( ::com::sun::star::beans::UnknownPropertyException );
private:
diff --git a/chart2/source/controller/inc/ItemConverter.hxx b/chart2/source/controller/inc/ItemConverter.hxx
index cc438bd69c13..025eac3bb2af 100644
--- a/chart2/source/controller/inc/ItemConverter.hxx
+++ b/chart2/source/controller/inc/ItemConverter.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ItemConverter.hxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: bm $ $Date: 2003-10-17 14:30:10 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:14 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -166,6 +166,12 @@ public:
*/
bool IsValid() const;
+ /** Returns the XPropertySet that was given in the CTOR and is used to apply
+ items in ApplyItemSet().
+ */
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::beans::XPropertySet > GetPropertySet() const;
+
/** Invalidates all items in rDestSet, that are set (state SFX_ITEM_SET) in
both item sets (rDestSet and rSourceSet) and have differing content.
*/
@@ -215,20 +221,21 @@ protected:
@return true if the item changed a property, false otherwise.
*/
- virtual bool ApplySpecialItem( USHORT nWhichId, const SfxItemSet & rItemSet ) const
+ virtual bool ApplySpecialItem( USHORT nWhichId, const SfxItemSet & rItemSet )
throw( ::com::sun::star::uno::Exception );
+ /** If the XPropertySet has to change during the converting (necessary for ChartType)
+ */
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
+ SetNewPropertySet(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::beans::XPropertySet > & xNewProp );
+
// ________
/// Returns the pool
SfxItemPool & GetItemPool() const;
- /** Returns the XPropertySet that was given in the CTOR and is used to apply
- items in ApplyItemSet().
- */
- ::com::sun::star::uno::Reference<
- ::com::sun::star::beans::XPropertySet > GetPropertySet() const;
-
// ____ ::utl::OEventListenerAdapter ____
virtual void _disposing( const ::com::sun::star::lang::EventObject& _rSource );
diff --git a/chart2/source/controller/inc/LegendItemConverter.hxx b/chart2/source/controller/inc/LegendItemConverter.hxx
index c583e04915fe..2fd3323386d1 100644
--- a/chart2/source/controller/inc/LegendItemConverter.hxx
+++ b/chart2/source/controller/inc/LegendItemConverter.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: LegendItemConverter.hxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: bm $ $Date: 2003-10-17 14:30:10 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:14 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -92,7 +92,7 @@ protected:
virtual void FillSpecialItem( USHORT nWhichId, SfxItemSet & rOutItemSet ) const
throw( ::com::sun::star::uno::Exception );
- virtual bool ApplySpecialItem( USHORT nWhichId, const SfxItemSet & rItemSet ) const
+ virtual bool ApplySpecialItem( USHORT nWhichId, const SfxItemSet & rItemSet )
throw( ::com::sun::star::uno::Exception );
private:
diff --git a/chart2/source/controller/inc/TitleItemConverter.hxx b/chart2/source/controller/inc/TitleItemConverter.hxx
index eac217d814fb..8551991c7034 100644
--- a/chart2/source/controller/inc/TitleItemConverter.hxx
+++ b/chart2/source/controller/inc/TitleItemConverter.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: TitleItemConverter.hxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: bm $ $Date: 2003-10-17 14:30:10 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:14 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -92,7 +92,7 @@ protected:
virtual void FillSpecialItem( USHORT nWhichId, SfxItemSet & rOutItemSet ) const
throw( ::com::sun::star::uno::Exception );
- virtual bool ApplySpecialItem( USHORT nWhichId, const SfxItemSet & rItemSet ) const
+ virtual bool ApplySpecialItem( USHORT nWhichId, const SfxItemSet & rItemSet )
throw( ::com::sun::star::uno::Exception );
private:
diff --git a/chart2/source/controller/inc/dlg_ChartType.hxx b/chart2/source/controller/inc/dlg_ChartType.hxx
index b5b047cb02ec..fee2df40b594 100644
--- a/chart2/source/controller/inc/dlg_ChartType.hxx
+++ b/chart2/source/controller/inc/dlg_ChartType.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: dlg_ChartType.hxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: bm $ $Date: 2003-10-06 09:58:27 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:14 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -109,6 +109,20 @@
#ifndef _SFXITEMSET_HXX
#include <svtools/itemset.hxx>
#endif
+// header for SvxChartStyle
+#ifndef _SVX_CHRTITEM_HXX
+#include <svx/chrtitem.hxx>
+#endif
+
+#ifndef _DRAFTS_COM_SUN_STAR_CHART2_XDIAGRAM_HPP_
+#include <drafts/com/sun/star/chart2/XDiagram.hpp>
+#endif
+#ifndef _DRAFTS_COM_SUN_STAR_CHART2_XCHARTTYPETEMPLATE_HPP_
+#include <drafts/com/sun/star/chart2/XChartTypeTemplate.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#endif
//.............................................................................
namespace chart
@@ -151,7 +165,12 @@ private:
HelpButton aBtnHelp;
ChartDimension eDimension;
- const SfxItemSet& rOutAttrs;
+// const SfxItemSet& rOutAttrs;
+
+ ::com::sun::star::uno::Reference<
+ ::drafts::com::sun::star::chart2::XDiagram > m_xDiagram;
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::lang::XMultiServiceFactory > m_xTemplateManager;
void Reset();
@@ -163,31 +182,37 @@ private:
DECL_LINK(DoubleClickHdl, void*);
DECL_LINK(ClickHdl, void*);
- void SwitchDepth (USHORT nID);
+ void SwitchDepth( SvxChartStyle eID );
/** Hides/Shows the controls for line/bar combination chart according to the
chart type id given as nID.
*/
- void SwitchNumLines( USHORT nID );
+ void SwitchNumLines( SvxChartStyle eID );
void FillValueSets();
public:
- SchDiagramTypeDlg(Window* pWindow, const SfxItemSet& rInAttrs);
+ SchDiagramTypeDlg(
+ Window* pWindow,
+ const ::com::sun::star::uno::Reference<
+ ::drafts::com::sun::star::chart2::XDiagram > & xDiagram,
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::lang::XMultiServiceFactory > & xTemplateManager );
virtual ~SchDiagramTypeDlg();
- void GetAttr(SfxItemSet& rOutAttrs);
-// int GetDepth();
-// void SetDepth( int nDeep );
+//BM void GetAttr(SfxItemSet& rOutAttrs);
-// int GetGranularity();
-// void SetGranularity( int nGranularity );
+ sal_Int32 GetDepth();
+ void SetDepth( sal_Int32 nDeep );
+
+ sal_Int32 GetGranularity();
+ void SetGranularity( sal_Int32 nGranularity );
/** The value set here determines the maximum number of lines in a line/bar
combination chart. This should usually be one less than the number of
series, such that at least one series remains a bar.
*/
- void SetMaximumNumberOfLines( long nMaxLines );
+ void SetMaximumNumberOfLines( sal_Int32 nMaxLines );
/** set the current number of lines that are used in a line/bar combination
chart.
*/
@@ -195,9 +220,13 @@ public:
/** get the number of lines that should be used for a line/bar combination
chart. This has to be set before to be meaningful
*/
-// long GetNumberOfLines() const;
+ sal_Int32 GetNumberOfLines() const;
virtual void DataChanged( const DataChangedEvent& rDCEvt );
+
+ ::com::sun::star::uno::Reference<
+ ::drafts::com::sun::star::chart2::XChartTypeTemplate >
+ getTemplate() const;
};
//.............................................................................
diff --git a/chart2/source/controller/itemsetwrapper/AxisItemConverter.cxx b/chart2/source/controller/itemsetwrapper/AxisItemConverter.cxx
index b4ec9d21085c..6577a07ccdd6 100644
--- a/chart2/source/controller/itemsetwrapper/AxisItemConverter.cxx
+++ b/chart2/source/controller/itemsetwrapper/AxisItemConverter.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: AxisItemConverter.cxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: bm $ $Date: 2003-10-17 14:30:13 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:16 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -436,7 +436,7 @@ void AxisItemConverter::FillSpecialItem( USHORT nWhichId, SfxItemSet & rOutItemS
}
}
-bool AxisItemConverter::ApplySpecialItem( USHORT nWhichId, const SfxItemSet & rItemSet ) const
+bool AxisItemConverter::ApplySpecialItem( USHORT nWhichId, const SfxItemSet & rItemSet )
throw( uno::Exception )
{
if( ! ( m_xAxis.is() &&
diff --git a/chart2/source/controller/itemsetwrapper/CharacterPropertyItemConverter.cxx b/chart2/source/controller/itemsetwrapper/CharacterPropertyItemConverter.cxx
index c5abbd41de63..099a8a75cd88 100644
--- a/chart2/source/controller/itemsetwrapper/CharacterPropertyItemConverter.cxx
+++ b/chart2/source/controller/itemsetwrapper/CharacterPropertyItemConverter.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: CharacterPropertyItemConverter.cxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: bm $ $Date: 2003-10-17 14:30:13 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:17 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -249,7 +249,7 @@ void CharacterPropertyItemConverter::FillSpecialItem(
}
bool CharacterPropertyItemConverter::ApplySpecialItem(
- USHORT nWhichId, const SfxItemSet & rItemSet ) const
+ USHORT nWhichId, const SfxItemSet & rItemSet )
throw( uno::Exception )
{
bool bChanged = false;
diff --git a/chart2/source/controller/itemsetwrapper/DataPointItemConverter.cxx b/chart2/source/controller/itemsetwrapper/DataPointItemConverter.cxx
index 0bb4d256ab1f..cf2bfd899751 100644
--- a/chart2/source/controller/itemsetwrapper/DataPointItemConverter.cxx
+++ b/chart2/source/controller/itemsetwrapper/DataPointItemConverter.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: DataPointItemConverter.cxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: bm $ $Date: 2003-10-17 14:30:14 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:17 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -162,7 +162,7 @@ bool DataPointItemConverter::GetItemPropertyName( USHORT nWhichId, ::rtl::OUStri
bool DataPointItemConverter::ApplySpecialItem(
- USHORT nWhichId, const SfxItemSet & rItemSet ) const
+ USHORT nWhichId, const SfxItemSet & rItemSet )
throw( uno::Exception )
{
bool bChanged = false;
diff --git a/chart2/source/controller/itemsetwrapper/GraphicPropertyItemConverter.cxx b/chart2/source/controller/itemsetwrapper/GraphicPropertyItemConverter.cxx
index efb4ea7270fa..490b4b8c95f3 100644
--- a/chart2/source/controller/itemsetwrapper/GraphicPropertyItemConverter.cxx
+++ b/chart2/source/controller/itemsetwrapper/GraphicPropertyItemConverter.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: GraphicPropertyItemConverter.cxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: bm $ $Date: 2003-10-17 14:30:14 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:17 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -416,7 +416,7 @@ void GraphicPropertyItemConverter::FillSpecialItem(
}
bool GraphicPropertyItemConverter::ApplySpecialItem(
- USHORT nWhichId, const SfxItemSet & rItemSet ) const
+ USHORT nWhichId, const SfxItemSet & rItemSet )
throw( uno::Exception )
{
// if( m_eGraphicObjectType == LINE_DATA_POINT ||
@@ -631,7 +631,7 @@ void GraphicPropertyItemConverter::FillBitmapItem(
}
void GraphicPropertyItemConverter::ApplyBitmapItem(
- USHORT nWhichId, const SfxItemSet & rItemSet ) const
+ USHORT nWhichId, const SfxItemSet & rItemSet )
throw( beans::UnknownPropertyException )
{
static const ::rtl::OUString aBitmapPropName(
diff --git a/chart2/source/controller/itemsetwrapper/ItemConverter.cxx b/chart2/source/controller/itemsetwrapper/ItemConverter.cxx
index eed966a7279c..204fb74bcac6 100644
--- a/chart2/source/controller/itemsetwrapper/ItemConverter.cxx
+++ b/chart2/source/controller/itemsetwrapper/ItemConverter.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ItemConverter.cxx,v $
*
- * $Revision: 1.5 $
+ * $Revision: 1.6 $
*
- * last change: $Author: bm $ $Date: 2003-10-17 14:30:14 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:17 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -127,6 +127,32 @@ uno::Reference< beans::XPropertySet > ItemConverter::GetPropertySet() const
return m_xPropertySet;
}
+uno::Reference< beans::XPropertySet > ItemConverter::SetNewPropertySet(
+ const uno::Reference< beans::XPropertySet > & xNewProp )
+{
+ uno::Reference< lang::XComponent > xComp( m_xPropertySet, uno::UNO_QUERY );
+ if( xComp.is())
+ {
+ // method of base class ::utl::OEventListenerAdapter
+ stopComponentListening( xComp );
+ }
+
+ m_xPropertySetInfo.set( NULL );
+ m_xPropertySet.set( xNewProp );
+
+ if( m_xPropertySet.is())
+ {
+ m_xPropertySetInfo.set( m_xPropertySet->getPropertySetInfo());
+
+ uno::Reference< lang::XComponent > xNewComp( m_xPropertySet, uno::UNO_QUERY );
+ if( xNewComp.is())
+ {
+ // method of base class ::utl::OEventListenerAdapter
+ startComponentListening( xNewComp );
+ }
+ }
+}
+
void ItemConverter::_disposing( const lang::EventObject& _rSource )
{
if( _rSource.Source == m_xPropertySet )
@@ -221,7 +247,7 @@ void ItemConverter::FillSpecialItem(
}
bool ItemConverter::ApplySpecialItem(
- USHORT nWhichId, const SfxItemSet & rItemSet ) const
+ USHORT nWhichId, const SfxItemSet & rItemSet )
throw( uno::Exception )
{
OSL_ENSURE( false, "ItemConverter: Unhandled special item found!" );
diff --git a/chart2/source/controller/itemsetwrapper/LegendItemConverter.cxx b/chart2/source/controller/itemsetwrapper/LegendItemConverter.cxx
index 9cb57ed67ab5..84c1dd2dfdb4 100644
--- a/chart2/source/controller/itemsetwrapper/LegendItemConverter.cxx
+++ b/chart2/source/controller/itemsetwrapper/LegendItemConverter.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: LegendItemConverter.cxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: bm $ $Date: 2003-10-17 14:30:14 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:17 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -166,7 +166,7 @@ bool LegendItemConverter::GetItemPropertyName( USHORT nWhichId, ::rtl::OUString
bool LegendItemConverter::ApplySpecialItem(
- USHORT nWhichId, const SfxItemSet & rItemSet ) const
+ USHORT nWhichId, const SfxItemSet & rItemSet )
throw( uno::Exception )
{
bool bChanged = false;
diff --git a/chart2/source/controller/itemsetwrapper/TitleItemConverter.cxx b/chart2/source/controller/itemsetwrapper/TitleItemConverter.cxx
index 8a5b9d9c740c..592fe71d7031 100644
--- a/chart2/source/controller/itemsetwrapper/TitleItemConverter.cxx
+++ b/chart2/source/controller/itemsetwrapper/TitleItemConverter.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: TitleItemConverter.cxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: bm $ $Date: 2003-10-17 14:30:15 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:18 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -209,7 +209,7 @@ bool TitleItemConverter::GetItemPropertyName( USHORT nWhichId, ::rtl::OUString &
bool TitleItemConverter::ApplySpecialItem(
- USHORT nWhichId, const SfxItemSet & rItemSet ) const
+ USHORT nWhichId, const SfxItemSet & rItemSet )
throw( uno::Exception )
{
bool bChanged = false;
diff --git a/chart2/source/controller/main/ChartController.cxx b/chart2/source/controller/main/ChartController.cxx
index c21b4983e565..2fc602a1fa87 100644
--- a/chart2/source/controller/main/ChartController.cxx
+++ b/chart2/source/controller/main/ChartController.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ChartController.cxx,v $
*
- * $Revision: 1.5 $
+ * $Revision: 1.6 $
*
- * last change: $Author: iha $ $Date: 2003-10-30 12:15:45 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:19 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -71,6 +71,7 @@
#include "ChartWindow.hxx"
#include "DrawModelWrapper.hxx"
#include "DrawViewWrapper.hxx"
+#include "DataSeriesTreeHelper.hxx"
#include "macros.hxx"
@@ -90,6 +91,9 @@
#ifndef _DRAFTS_COM_SUN_STAR_CHART2_XSTACKABLESCALEGROUP_HPP_
#include <drafts/com/sun/star/chart2/XStackableScaleGroup.hpp>
#endif
+#ifndef _DRAFTS_COM_SUN_STAR_CHART2_XCHARTTYPETEMPLATE_HPP_
+#include <drafts/com/sun/star/chart2/XChartTypeTemplate.hpp>
+#endif
//-------
// header for define RET_OK
@@ -1077,52 +1081,55 @@ void SAL_CALL ChartController::executeDispatch_ChartType()
//-------------------------------------------------------------
//convert properties to ItemSet
- uno::Reference< beans::XPropertySet > xProp;
- uno::Reference< XChartDocument > xChartDoc( m_aModel->getModel(), uno::UNO_QUERY );
- if( xChartDoc.is())
- xProp.set( xChartDoc->getChartTypeManager(), uno::UNO_QUERY );
- DBG_ASSERT( xProp.is(), "Invalid ChartTypeManager" );
+ uno::Reference< XChartDocument > xChartDoc( m_aModel->getModel(), uno::UNO_QUERY );
+ DBG_ASSERT( xChartDoc.is(), "Invalid XChartDocument" );
+ if( !xChartDoc.is())
+ return;
+ uno::Reference< XDiagram > xDia( xChartDoc->getDiagram() );
+ DBG_ASSERT( xDia.is(), "No Diagram set!" );
+ uno::Reference< XChartTypeTemplate > xTemplate;
+ if( xChartDoc.is())
{
- wrapper::ChartTypeItemConverter aItemConverter( xProp, m_pDrawModelWrapper->GetItemPool() );
- SfxItemSet aItemSet = aItemConverter.CreateEmptyItemSet();//creates only an empty itemset
- aItemConverter.FillItemSet( aItemSet );
+ uno::Reference< lang::XMultiServiceFactory > xCTManager( xChartDoc->getChartTypeManager(), uno::UNO_QUERY );
+// wrapper::ChartTypeItemConverter aItemConverter( xCTManager, xProp, m_pDrawModelWrapper->GetItemPool() );
+// SfxItemSet aItemSet = aItemConverter.CreateEmptyItemSet();//creates only an empty itemset
+// aItemConverter.FillItemSet( aItemSet );
//-------------------------------------------------------------
//prepare and open dialog
Window* pParent( NULL );
- SchDiagramTypeDlg aDlg( pParent, aItemSet );
+ SchDiagramTypeDlg aDlg( pParent, xDia, xCTManager );
if( aDlg.Execute() == RET_OK )
{
- SfxItemSet aOutItemSet = aItemConverter.CreateEmptyItemSet();
- aDlg.GetAttr( aOutItemSet );
+// SfxItemSet aOutItemSet = aItemConverter.CreateEmptyItemSet();
+// aDlg.GetAttr( aOutItemSet );
+
+// bChanged = aItemConverter.ApplyItemSet( aOutItemSet );//model should be changed now
- bChanged = aItemConverter.ApplyItemSet( aOutItemSet );//model should be changed now
+// // XPropertySet may have been changed
+// uno::Reference< beans::XPropertySet > xNewProp( aItemConverter.GetPropertySet());
+// bChanged = bChanged || (xProp != xNewProp);
+// xProp = xNewProp;
+ xTemplate.set( aDlg.getTemplate());
+ bChanged = true;
}
}
try
{
//make sure that all objects using m_pDrawModelWrapper or m_pChartView are already deleted
- if(bChanged &&
- xChartDoc.is())
+ if( bChanged &&
+ xTemplate.is() )
{
- uno::Reference< lang::XMultiServiceFactory > xFact( xProp, uno::UNO_QUERY );
- if( xFact.is() )
- {
- ::rtl::OUString aServiceName;
- if( xProp->getPropertyValue( C2U( "ChartStyleTemplateServiceName" )) >>= aServiceName )
- {
- uno::Reference< XChartTypeTemplate > xTemplate(
- xFact->createInstance( aServiceName ), uno::UNO_QUERY );
- xChartDoc->setChartTypeTemplate( xTemplate );
- if( xTemplate.is())
- xTemplate->changeDiagram( xChartDoc->getDiagram() );
- impl_rebuildView();
- }
- }
+ xChartDoc->setDiagram(
+ xTemplate->createDiagram(
+ helper::DataSeriesTreeHelper::getDataSeriesFromDiagram(
+ xChartDoc->getDiagram())));
+
+ impl_rebuildView();
}
}
- catch( uno::RuntimeException& e)
+ catch( uno::Exception& e)
{
ASSERT_EXCEPTION( e );
}
diff --git a/chart2/source/controller/main/ChartController_Insert.cxx b/chart2/source/controller/main/ChartController_Insert.cxx
index b29f63cad9db..e1a9b1df5f12 100644
--- a/chart2/source/controller/main/ChartController_Insert.cxx
+++ b/chart2/source/controller/main/ChartController_Insert.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ChartController_Insert.cxx,v $
*
- * $Revision: 1.5 $
+ * $Revision: 1.6 $
*
- * last change: $Author: iha $ $Date: 2003-10-28 15:54:47 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:19 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -75,9 +75,6 @@
#include "MultipleChartConverters.hxx"
#include "LegendItemConverter.hxx"
-//maybe superfluous in future:
-#include "ChartTypeItemConverter.hxx"
-
#ifndef _DRAFTS_COM_SUN_STAR_CHART2_XAXISCONTAINER_HPP_
#include <drafts/com/sun/star/chart2/XAxisContainer.hpp>
#endif
@@ -522,8 +519,9 @@ void SAL_CALL ChartController::executeDispatch_InsertStatistic()
uno::Reference< beans::XPropertySet > xProp=NULL;
//@todo use correct ItemConverter if available
- wrapper::ChartTypeItemConverter aItemConverter( xProp, m_pDrawModelWrapper->GetItemPool() );
- SfxItemSet aItemSet = aItemConverter.CreateEmptyItemSet();
+// wrapper::ChartTypeItemConverter aItemConverter( NULL, xProp, m_pDrawModelWrapper->GetItemPool() );
+// SfxItemSet aItemSet = aItemConverter.CreateEmptyItemSet();
+ SfxItemSet aItemSet( m_pDrawModelWrapper->GetItemPool(), 1, 2 );
//aItemConverter.FillItemSet( aItemSet );
//prepare and open dialog
@@ -531,10 +529,11 @@ void SAL_CALL ChartController::executeDispatch_InsertStatistic()
SchDataStatisticsDlg aDlg( pParent, aItemSet);
if( aDlg.Execute() == RET_OK )
{
- SfxItemSet aOutItemSet = aItemConverter.CreateEmptyItemSet();
+// SfxItemSet aOutItemSet = aItemConverter.CreateEmptyItemSet();
+ SfxItemSet aOutItemSet( m_pDrawModelWrapper->GetItemPool(), 1, 2 );
aDlg.GetAttr( aOutItemSet );
- bChanged = aItemConverter.ApplyItemSet( aOutItemSet );//model should be changed now
+// bChanged = aItemConverter.ApplyItemSet( aOutItemSet );//model should be changed now
}
}
catch( uno::RuntimeException& e)
diff --git a/chart2/source/model/inc/Diagram.hxx b/chart2/source/model/inc/Diagram.hxx
index b8247b65a15c..a7962f302b3b 100644
--- a/chart2/source/model/inc/Diagram.hxx
+++ b/chart2/source/model/inc/Diagram.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: Diagram.hxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: bm $ $Date: 2003-10-06 09:58:30 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:21 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -178,6 +178,8 @@ protected:
const ::com::sun::star::uno::Reference< ::drafts::com::sun::star::chart2::XDataSeriesTreeParent >& xTree )
throw (::com::sun::star::lang::IllegalArgumentException,
::com::sun::star::uno::RuntimeException);
+// virtual ::rtl::OUString SAL_CALL getChartTypeTemplateServiceName()
+// throw (::com::sun::star::uno::RuntimeException);
virtual ::com::sun::star::uno::Reference<
::com::sun::star::beans::XPropertySet > SAL_CALL getWall()
throw (::com::sun::star::uno::RuntimeException);
@@ -302,6 +304,8 @@ private:
::com::sun::star::uno::Reference<
::drafts::com::sun::star::chart2::XLegend >
m_xLegend;
+
+ const ::rtl::OUString m_aTemplateServiceName;
};
} // namespace chart
diff --git a/chart2/source/model/main/Axis.cxx b/chart2/source/model/main/Axis.cxx
index 6ee34b675bdd..a1c0ed79de73 100644
--- a/chart2/source/model/main/Axis.cxx
+++ b/chart2/source/model/main/Axis.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: Axis.cxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: bm $ $Date: 2003-10-06 15:49:33 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:22 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -309,7 +309,13 @@ Axis::~Axis()
// --------------------------------------------------------------------------------
// ____ XAxis ____
-// (nothing)
+uno::Sequence< uno::Reference< beans::XPropertySet > > SAL_CALL Axis::getSubTickProperties()
+ throw (uno::RuntimeException)
+{
+ OSL_ENSURE( false, "Not implemented yet" );
+ return uno::Sequence< uno::Reference< beans::XPropertySet > >();
+}
+
// ____ XMeter ____
void SAL_CALL Axis::attachCoordinateSystem(
diff --git a/chart2/source/model/main/Axis.hxx b/chart2/source/model/main/Axis.hxx
index 7ff3d0068691..3a69fac502dc 100644
--- a/chart2/source/model/main/Axis.hxx
+++ b/chart2/source/model/main/Axis.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: Axis.hxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: bm $ $Date: 2003-10-06 09:58:30 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:22 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -144,8 +144,12 @@ protected:
// throw (::com::sun::star::lang::IllegalArgumentException);
// ____ XAxis ____
+ virtual ::com::sun::star::uno::Sequence<
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::beans::XPropertySet > > SAL_CALL getSubTickProperties()
+ throw (::com::sun::star::uno::RuntimeException);
- // ____ XMeter ____
+// ____ XMeter ____
virtual void SAL_CALL attachCoordinateSystem(
const ::com::sun::star::uno::Reference<
::drafts::com::sun::star::chart2::XBoundedCoordinateSystem >& xCoordSys,
diff --git a/chart2/source/model/main/ChartModel.cxx b/chart2/source/model/main/ChartModel.cxx
index 847656233427..a07a5af186d7 100644
--- a/chart2/source/model/main/ChartModel.cxx
+++ b/chart2/source/model/main/ChartModel.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ChartModel.cxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: bm $ $Date: 2003-10-17 14:48:14 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:22 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -62,6 +62,8 @@
#include "ImplChartModel.hxx"
#include "servicenames.hxx"
#include "MediaDescriptorHelper.hxx"
+#include "macros.hxx"
+#include "ChartDocumentWrapper.hxx"
#ifndef _COM_SUN_STAR_UNO_REFERENCE_H_
#include <com/sun/star/uno/Reference.h>
@@ -100,11 +102,15 @@ ChartModel::ChartModel(uno::Reference<uno::XComponentContext > const & xContext)
, m_xCurrentController( NULL )
, m_nControllerLockCount(0)
, m_pImplChartModel( new impl::ImplChartModel( xContext ) )
+ , m_xContext( xContext )
{
}
ChartModel::~ChartModel()
{
+ if( m_xOldModelAgg.is())
+ m_xOldModelAgg->setDelegator( NULL );
+
//@todo
if ( m_pControllers )
@@ -783,8 +789,7 @@ APPHELPER_XSERVICEINFO_IMPL(ChartModel,CHART_MODEL_SERVICE_IMPLEMENTATION_NAME)
void SAL_CALL ChartModel
::setDiagram( const uno::Reference< chart2::XDiagram >& xDiagram )
- throw (lang::IllegalArgumentException,
- uno::RuntimeException)
+ throw (uno::RuntimeException)
{
OSL_ASSERT( m_pImplChartModel.get() != 0 );
// /--
@@ -839,28 +844,6 @@ APPHELPER_XSERVICEINFO_IMPL(ChartModel,CHART_MODEL_SERVICE_IMPLEMENTATION_NAME)
// \--
}
- void SAL_CALL ChartModel
-::setChartTypeTemplate( const uno::Reference< chart2::XChartTypeTemplate >& xNewTemplate )
- throw (uno::RuntimeException)
-{
- OSL_ASSERT( m_pImplChartModel.get() != 0 );
- // /--
- MutexGuard aGuard( m_aModelMutex );
- m_pImplChartModel->SetChartTypeTemplate( xNewTemplate );
- // \--
-}
-
- uno::Reference< chart2::XChartTypeTemplate > SAL_CALL ChartModel
-::getChartTypeTemplate()
- throw (uno::RuntimeException)
-{
- OSL_ASSERT( m_pImplChartModel.get() != 0 );
- // /--
- MutexGuard aGuard( m_aModelMutex );
- return m_pImplChartModel->GetChartTypeTemplate();
- // \--
-}
-
// void SAL_CALL ChartModel
// ::setSplitLayoutContainer( const uno::Reference< layout::XSplitLayoutContainer >& xLayoutCnt )
// throw (uno::RuntimeException)
@@ -921,14 +904,30 @@ void SAL_CALL ChartModel::setTitle(
uno::Any SAL_CALL ChartModel::queryInterface( const uno::Type& aType )
throw (uno::RuntimeException)
{
- // return old API wrapper
- if( aType ==
- ::getCppuType( (uno::Reference< ::com::sun::star::chart::XChartDocument > *)0 ))
+ uno::Any aResult( impl::ChartModel_Base::queryInterface( aType ));
+
+ if( ! aResult.hasValue())
{
- return uno::makeAny( m_pImplChartModel->GetOldChartDocument( this ));
+ // try old API wrapper
+ try
+ {
+ if( ! m_xOldModelAgg.is())
+ {
+ m_xOldModelAgg.set(
+ static_cast< uno::XWeak* >(
+ new wrapper::ChartDocumentWrapper( m_xContext )), uno::UNO_QUERY_THROW );
+ m_xOldModelAgg->setDelegator( static_cast< ::cppu::OWeakObject* >( this ));
+ }
+
+ aResult = m_xOldModelAgg->queryAggregation( aType );
+ }
+ catch( uno::Exception & ex )
+ {
+ ASSERT_EXCEPTION( ex );
+ }
}
- return impl::ChartModel_Base::queryInterface( aType );
+ return aResult;
}
diff --git a/chart2/source/model/main/ChartModel.hxx b/chart2/source/model/main/ChartModel.hxx
index 68cfff6f5bd9..553f0cb16c05 100644
--- a/chart2/source/model/main/ChartModel.hxx
+++ b/chart2/source/model/main/ChartModel.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ChartModel.hxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: bm $ $Date: 2003-10-17 14:48:14 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:22 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -208,6 +208,9 @@ private:
::std::auto_ptr< impl::ImplChartModel > m_pImplChartModel;
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > m_xContext;
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XAggregation > m_xOldModelAgg;
+
private:
//private methods
@@ -467,8 +470,7 @@ public:
virtual void SAL_CALL
setDiagram( const ::com::sun::star::uno::Reference<
::drafts::com::sun::star::chart2::XDiagram >& xDiagram )
- throw (::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException);
+ throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
attachDataProvider( const ::com::sun::star::uno::Reference<
::drafts::com::sun::star::chart2::XDataProvider >& xProvider )
@@ -484,13 +486,6 @@ public:
virtual ::com::sun::star::uno::Reference< ::drafts::com::sun::star::chart2::XChartTypeManager > SAL_CALL
getChartTypeManager()
throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL
- setChartTypeTemplate( const ::com::sun::star::uno::Reference<
- ::drafts::com::sun::star::chart2::XChartTypeTemplate >& xNewTemplate )
- throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::drafts::com::sun::star::chart2::XChartTypeTemplate > SAL_CALL
- getChartTypeTemplate()
- throw (::com::sun::star::uno::RuntimeException);
// virtual void SAL_CALL setSplitLayoutContainer(
// const ::com::sun::star::uno::Reference<
// ::drafts::com::sun::star::layout::XSplitLayoutContainer >& xLayoutCnt )
@@ -502,7 +497,7 @@ public:
getPageBackground()
throw (::com::sun::star::uno::RuntimeException);
-// ____ XTitled ____
+ // ____ XTitled ____
virtual ::com::sun::star::uno::Reference<
::drafts::com::sun::star::chart2::XTitle > SAL_CALL getTitle()
throw (::com::sun::star::uno::RuntimeException);
@@ -518,4 +513,3 @@ public:
} // namespace chart
#endif
-
diff --git a/chart2/source/model/main/Diagram.cxx b/chart2/source/model/main/Diagram.cxx
index 1ac3bcd359ef..4e55032f3b21 100644
--- a/chart2/source/model/main/Diagram.cxx
+++ b/chart2/source/model/main/Diagram.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: Diagram.cxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: bm $ $Date: 2003-10-06 12:54:13 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:23 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -165,6 +165,11 @@ Diagram::Diagram( uno::Reference< uno::XComponentContext > const & xContext ) :
m_xTitle( NULL ),
m_aIdentifier( C2U( "@diagram" ))
{
+ if( ! m_xContext.is() ||
+ ! ( xContext->getValueByName( C2U( "TemplateServiceName" )) >>= m_aTemplateServiceName ))
+ {
+ OSL_ENSURE( false, "Missing argument TemplateServiceName" );
+ }
}
Diagram::~Diagram()
@@ -200,6 +205,12 @@ void SAL_CALL Diagram::setTree(
}
}
+// ::rtl::OUString SAL_CALL Diagram::getChartTypeTemplateServiceName()
+// throw (uno::RuntimeException)
+// {
+// return m_aTemplateServiceName;
+// }
+
uno::Reference< beans::XPropertySet > SAL_CALL Diagram::getWall()
throw (uno::RuntimeException)
{
@@ -484,6 +495,6 @@ IMPLEMENT_FORWARD_XTYPEPROVIDER2( Diagram, Diagram_Base, ::property::OPropertySe
// implement XServiceInfo methods basing upon getSupportedServiceNames_Static
APPHELPER_XSERVICEINFO_IMPL( Diagram,
- C2U( "com.sun.star.comp.chart.Diagram" ));
+ C2U( "com.sun.star.comp.chart2.Diagram" ));
} // namespace chart
diff --git a/chart2/source/model/main/ImplChartModel.cxx b/chart2/source/model/main/ImplChartModel.cxx
index 5b1659b5aaf7..5a1de910bddc 100644
--- a/chart2/source/model/main/ImplChartModel.cxx
+++ b/chart2/source/model/main/ImplChartModel.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ImplChartModel.cxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: bm $ $Date: 2003-10-17 14:48:14 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:23 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -69,7 +69,6 @@
#include "ContextHelper.hxx"
// #include "SplitLayoutContainer.hxx"
#include "LayoutDefaults.hxx"
-#include "ChartDocumentWrapper.hxx"
#include "PageBackground.hxx"
#ifndef _CPPUHELPER_COMPONENT_CONTEXT_HXX_
@@ -381,23 +380,6 @@ void ImplChartModel::SetTitle( const uno::Reference< chart2::XTitle >& rTitle )
m_xTitle = rTitle;
}
-uno::Reference< ::com::sun::star::chart::XChartDocument > ImplChartModel::GetOldChartDocument(
- const uno::Reference< chart2::XChartDocument > & xNewModel )
-{
- // put weak reference into a strong one
- uno::Reference< ::com::sun::star::chart::XChartDocument > xRef( m_xOldModel );
-
- if( ! xRef.is())
- {
- xRef.set( new wrapper::ChartDocumentWrapper( xNewModel, m_xContext ));
-
- // assing reference to weak reference
- m_xOldModel = xRef;
- }
-
- return xRef;
-}
-
void ImplChartModel::dispose()
{
// exception is thrown by ChartModel
diff --git a/chart2/source/model/main/ImplChartModel.hxx b/chart2/source/model/main/ImplChartModel.hxx
index f09ac0f99666..20eb9d3bd7a6 100644
--- a/chart2/source/model/main/ImplChartModel.hxx
+++ b/chart2/source/model/main/ImplChartModel.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ImplChartModel.hxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: bm $ $Date: 2003-10-17 14:48:14 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:23 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -93,10 +93,6 @@
#include <com/sun/star/container/NoSuchElementException.hpp>
#endif
-#ifndef _COM_SUN_STAR_CHART_XCHARTDOCUMENT_HPP_
-#include <com/sun/star/chart/XChartDocument.hpp>
-#endif
-
#ifndef _CPPUHELPER_WEAKREF_HXX_
#include <cppuhelper/weakref.hxx>
#endif
@@ -180,11 +176,6 @@ public:
void SetTitle( const ::com::sun::star::uno::Reference<
::drafts::com::sun::star::chart2::XTitle >& rTitle );
- ::com::sun::star::uno::Reference<
- ::com::sun::star::chart::XChartDocument > GetOldChartDocument(
- const ::com::sun::star::uno::Reference<
- ::drafts::com::sun::star::chart2::XChartDocument > & xNewModel );
-
/** Is called by the ChartModel's XComponent::dispose() to notify the
impl-class to release resources
*/
@@ -226,8 +217,6 @@ private:
::com::sun::star::uno::Reference< ::drafts::com::sun::star::chart2::XTitle >
m_xTitle;
- ::com::sun::star::uno::WeakReference< ::com::sun::star::chart::XChartDocument >
- m_xOldModel;
bool m_bIsDisposed;
::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
m_xPageBackground;
diff --git a/chart2/source/model/main/makefile.mk b/chart2/source/model/main/makefile.mk
index 65d340b36ac4..6e51963d017e 100644
--- a/chart2/source/model/main/makefile.mk
+++ b/chart2/source/model/main/makefile.mk
@@ -2,9 +2,9 @@
#
# $RCSfile: makefile.mk,v $
#
-# $Revision: 1.2 $
+# $Revision: 1.3 $
#
-# last change: $Author: bm $ $Date: 2003-10-17 14:32:50 $
+# last change: $Author: bm $ $Date: 2003-11-04 12:37:25 $
#
# The Contents of this file are made available subject to the terms of
# either of the following licenses
@@ -106,6 +106,7 @@ SLOFILES= \
$(SLO)$/Scale.obj \
$(SLO)$/StyleFamilies.obj \
$(SLO)$/StyleFamily.obj \
+ $(SLO)$/SubGrid.obj \
$(SLO)$/Title.obj \
$(SLO)$/UserDefinedProperties.obj \
$(SLO)$/Wall.obj \
diff --git a/chart2/source/model/template/AreaChartTypeTemplate.cxx b/chart2/source/model/template/AreaChartTypeTemplate.cxx
index d84b17d09731..cca9d6f88728 100644
--- a/chart2/source/model/template/AreaChartTypeTemplate.cxx
+++ b/chart2/source/model/template/AreaChartTypeTemplate.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: AreaChartTypeTemplate.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: bm $ $Date: 2003-10-06 09:58:31 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:31 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -60,29 +60,175 @@
************************************************************************/
#include "AreaChartTypeTemplate.hxx"
#include "AreaChartType.hxx"
+#include "macros.hxx"
+#include "algohelper.hxx"
+
+#ifndef CHART_PROPERTYHELPER_HXX
+#include "PropertyHelper.hxx"
+#endif
+#ifndef _COM_SUN_STAR_BEANS_PROPERTYATTRIBUTE_HPP_
+#include <com/sun/star/beans/PropertyAttribute.hpp>
+#endif
+
+#include <algorithm>
using namespace ::com::sun::star;
using namespace ::drafts::com::sun::star;
+using ::rtl::OUString;
+using ::com::sun::star::beans::Property;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Any;
+using ::osl::MutexGuard;
+
+namespace
+{
+
+static const ::rtl::OUString lcl_aServiceName(
+ RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart2.AreaChartTypeTemplate" ));
+
+enum
+{
+ PROP_AREA_TEMPLATE_DIMENSION
+};
+
+void lcl_AddPropertiesToVector(
+ ::std::vector< Property > & rOutProperties )
+{
+ rOutProperties.push_back(
+ Property( C2U( "Dimension" ),
+ PROP_AREA_TEMPLATE_DIMENSION,
+ ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)),
+ beans::PropertyAttribute::BOUND
+ | beans::PropertyAttribute::MAYBEDEFAULT ));
+}
+
+void lcl_AddDefaultsToMap(
+ ::chart::helper::tPropertyValueMap & rOutMap )
+{
+ OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_AREA_TEMPLATE_DIMENSION ));
+ rOutMap[ PROP_AREA_TEMPLATE_DIMENSION ] =
+ uno::makeAny( sal_Int32( 2 ) );
+}
+
+const uno::Sequence< Property > & lcl_GetPropertySequence()
+{
+ static uno::Sequence< Property > aPropSeq;
+
+ // /--
+ MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+ if( 0 == aPropSeq.getLength() )
+ {
+ // get properties
+ ::std::vector< ::com::sun::star::beans::Property > aProperties;
+ lcl_AddPropertiesToVector( aProperties );
+
+ // and sort them for access via bsearch
+ ::std::sort( aProperties.begin(), aProperties.end(),
+ ::chart::helper::PropertyNameLess() );
+
+ // transfer result to static Sequence
+ aPropSeq = ::chart::helper::VectorToSequence( aProperties );
+ }
+
+ return aPropSeq;
+}
+
+::cppu::IPropertyArrayHelper & lcl_getInfoHelper()
+{
+ static ::cppu::OPropertyArrayHelper aArrayHelper(
+ lcl_GetPropertySequence(),
+ /* bSorted = */ sal_True );
+
+ return aArrayHelper;
+}
+
+} // anonymous namespace
+
namespace chart
{
AreaChartTypeTemplate::AreaChartTypeTemplate(
uno::Reference<
uno::XComponentContext > const & xContext,
+ const ::rtl::OUString & rServiceName,
chart2::StackMode eStackMode,
sal_Int32 nDim /* = 2 */ ) :
- ChartTypeTemplate( xContext ),
- m_eStackMode( eStackMode ),
- m_nDim( nDim )
-{}
+ ChartTypeTemplate( xContext, rServiceName ),
+ ::property::OPropertySet( m_aMutex ),
+ m_eStackMode( eStackMode )
+{
+ setFastPropertyValue_NoBroadcast( PROP_AREA_TEMPLATE_DIMENSION, uno::makeAny( nDim ));
+}
AreaChartTypeTemplate::~AreaChartTypeTemplate()
{}
+// ____ OPropertySet ____
+uno::Any AreaChartTypeTemplate::GetDefaultValue( sal_Int32 nHandle ) const
+ throw(beans::UnknownPropertyException)
+{
+ static helper::tPropertyValueMap aStaticDefaults;
+
+ // /--
+ ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+ if( 0 == aStaticDefaults.size() )
+ {
+ // initialize defaults
+ lcl_AddDefaultsToMap( aStaticDefaults );
+ }
+
+ helper::tPropertyValueMap::const_iterator aFound(
+ aStaticDefaults.find( nHandle ));
+
+ if( aFound == aStaticDefaults.end())
+ return uno::Any();
+
+ return (*aFound).second;
+ // \--
+}
+
+::cppu::IPropertyArrayHelper & SAL_CALL AreaChartTypeTemplate::getInfoHelper()
+{
+ return lcl_getInfoHelper();
+}
+
+
+// ____ XPropertySet ____
+uno::Reference< beans::XPropertySetInfo > SAL_CALL
+ AreaChartTypeTemplate::getPropertySetInfo()
+ throw (uno::RuntimeException)
+{
+ static uno::Reference< beans::XPropertySetInfo > xInfo;
+
+ // /--
+ MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+ if( !xInfo.is())
+ {
+ xInfo = ::cppu::OPropertySetHelper::createPropertySetInfo(
+ getInfoHelper());
+ }
+
+ return xInfo;
+ // \--
+}
+
sal_Int32 AreaChartTypeTemplate::getDimension() const
{
- return m_nDim;
+ sal_Int32 nDim = 2;
+ try
+ {
+ // note: UNO-methods are never const
+ const_cast< AreaChartTypeTemplate * >( this )->
+ getFastPropertyValue( PROP_AREA_TEMPLATE_DIMENSION ) >>= nDim;
+ }
+ catch( beans::UnknownPropertyException & ex )
+ {
+ ASSERT_EXCEPTION( ex );
+ }
+
+ return nDim;
}
chart2::StackMode AreaChartTypeTemplate::getStackMode() const
@@ -90,11 +236,26 @@ chart2::StackMode AreaChartTypeTemplate::getStackMode() const
return m_eStackMode;
}
-// ____ XChartTypeTemplate ____
-uno::Reference< chart2::XChartType > SAL_CALL AreaChartTypeTemplate::getChartTypeForAdditionalSeries()
+uno::Reference< chart2::XChartType > AreaChartTypeTemplate::getDefaultChartType()
throw (uno::RuntimeException)
{
- return new AreaChartType( m_nDim );
+ return new AreaChartType( getDimension() );
}
+// ----------------------------------------
+
+uno::Sequence< ::rtl::OUString > AreaChartTypeTemplate::getSupportedServiceNames_Static()
+{
+ uno::Sequence< ::rtl::OUString > aServices( 2 );
+ aServices[ 0 ] = lcl_aServiceName;
+ aServices[ 1 ] = C2U( "drafts.com.sun.star.chart2.ChartTypeTemplate" );
+ return aServices;
+}
+
+// implement XServiceInfo methods basing upon getSupportedServiceNames_Static
+APPHELPER_XSERVICEINFO_IMPL( AreaChartTypeTemplate, lcl_aServiceName );
+
+IMPLEMENT_FORWARD_XINTERFACE2( AreaChartTypeTemplate, ChartTypeTemplate, OPropertySet )
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( AreaChartTypeTemplate, ChartTypeTemplate, OPropertySet )
+
} // namespace chart
diff --git a/chart2/source/model/template/AreaChartTypeTemplate.hxx b/chart2/source/model/template/AreaChartTypeTemplate.hxx
index 4c0dbdc1f09c..5c5b806110ea 100644
--- a/chart2/source/model/template/AreaChartTypeTemplate.hxx
+++ b/chart2/source/model/template/AreaChartTypeTemplate.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: AreaChartTypeTemplate.hxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: bm $ $Date: 2003-10-06 09:58:31 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:31 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -63,6 +63,13 @@
#include "ChartTypeTemplate.hxx"
+#include "OPropertySet.hxx"
+#include "MutexContainer.hxx"
+
+#ifndef _COMPHELPER_UNO3_HXX_
+#include <comphelper/uno3.hxx>
+#endif
+
#ifndef _DRAFTS_COM_SUN_STAR_CHART2_STACKMODE_HPP_
#include <drafts/com/sun/star/chart2/StackMode.hpp>
#endif
@@ -70,24 +77,44 @@
namespace chart
{
-class AreaChartTypeTemplate : public ChartTypeTemplate
+class AreaChartTypeTemplate :
+ public helper::MutexContainer,
+ public ChartTypeTemplate,
+ public ::property::OPropertySet
{
public:
explicit AreaChartTypeTemplate(
::com::sun::star::uno::Reference<
::com::sun::star::uno::XComponentContext > const & xContext,
+ const ::rtl::OUString & rServiceName,
::drafts::com::sun::star::chart2::StackMode eStackMode,
sal_Int32 nDim = 2 );
virtual ~AreaChartTypeTemplate();
+ /// XServiceInfo declarations
+ APPHELPER_XSERVICEINFO_DECL()
+
+ /// merge XInterface implementations
+ DECLARE_XINTERFACE()
+ /// merge XTypeProvider implementations
+ DECLARE_XTYPEPROVIDER()
+
protected:
+ // ____ OPropertySet ____
+ virtual ::com::sun::star::uno::Any GetDefaultValue( sal_Int32 nHandle ) const
+ throw(::com::sun::star::beans::UnknownPropertyException);
+ virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper();
+
+ // ____ XPropertySet ____
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL
+ getPropertySetInfo()
+ throw (::com::sun::star::uno::RuntimeException);
+
// ____ ChartTypeTemplate ____
virtual sal_Int32 getDimension() const;
virtual ::drafts::com::sun::star::chart2::StackMode getStackMode() const;
-
- // ____ XChartTypeTemplate ____
virtual ::com::sun::star::uno::Reference<
- ::drafts::com::sun::star::chart2::XChartType > SAL_CALL getChartTypeForAdditionalSeries()
+ ::drafts::com::sun::star::chart2::XChartType > getDefaultChartType()
throw (::com::sun::star::uno::RuntimeException);
private:
diff --git a/chart2/source/model/template/BarChartTypeTemplate.cxx b/chart2/source/model/template/BarChartTypeTemplate.cxx
index 91f988602939..387ba68402a8 100644
--- a/chart2/source/model/template/BarChartTypeTemplate.cxx
+++ b/chart2/source/model/template/BarChartTypeTemplate.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: BarChartTypeTemplate.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: bm $ $Date: 2003-10-06 09:58:31 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:31 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -60,21 +60,115 @@
************************************************************************/
#include "BarChartTypeTemplate.hxx"
#include "BarChartType.hxx"
+#include "ColumnChartType.hxx"
+#include "algohelper.hxx"
+#include "macros.hxx"
+
+#ifndef CHART_PROPERTYHELPER_HXX
+#include "PropertyHelper.hxx"
+#endif
+#ifndef _COM_SUN_STAR_BEANS_PROPERTYATTRIBUTE_HPP_
+#include <com/sun/star/beans/PropertyAttribute.hpp>
+#endif
+#ifndef _COM_SUN_STAR_CHART_CHARTSOLIDTYPE_HPP_
+#include <com/sun/star/chart/ChartSolidType.hpp>
+#endif
+
+#include <algorithm>
using namespace ::com::sun::star;
using namespace ::drafts::com::sun::star;
+using ::com::sun::star::beans::Property;
+using ::osl::MutexGuard;
+
+namespace
+{
+
+static const ::rtl::OUString lcl_aServiceName(
+ RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart2.BarChartTypeTemplate" ));
+
+enum
+{
+ PROP_BAR_TEMPLATE_DIMENSION,
+ PROP_BAR_TEMPLATE_SOLID_TYPE
+};
+
+void lcl_AddPropertiesToVector(
+ ::std::vector< Property > & rOutProperties )
+{
+ rOutProperties.push_back(
+ Property( C2U( "Dimension" ),
+ PROP_BAR_TEMPLATE_DIMENSION,
+ ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)),
+ beans::PropertyAttribute::BOUND
+ | beans::PropertyAttribute::MAYBEDEFAULT ));
+ rOutProperties.push_back(
+ Property( C2U( "SolidType" ),
+ PROP_BAR_TEMPLATE_SOLID_TYPE,
+ ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)),
+ beans::PropertyAttribute::BOUND
+ | beans::PropertyAttribute::MAYBEDEFAULT ));
+}
+
+void lcl_AddDefaultsToMap(
+ ::chart::helper::tPropertyValueMap & rOutMap )
+{
+ OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_BAR_TEMPLATE_DIMENSION ));
+ rOutMap[ PROP_BAR_TEMPLATE_DIMENSION ] =
+ uno::makeAny( sal_Int32( 2 ) );
+ OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_BAR_TEMPLATE_SOLID_TYPE ));
+ rOutMap[ PROP_BAR_TEMPLATE_SOLID_TYPE ] =
+ uno::makeAny( ::com::sun::star::chart::ChartSolidType::RECTANGULAR_SOLID );
+}
+
+const uno::Sequence< Property > & lcl_GetPropertySequence()
+{
+ static uno::Sequence< Property > aPropSeq;
+
+ // /--
+ MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+ if( 0 == aPropSeq.getLength() )
+ {
+ // get properties
+ ::std::vector< ::com::sun::star::beans::Property > aProperties;
+ lcl_AddPropertiesToVector( aProperties );
+
+ // and sort them for access via bsearch
+ ::std::sort( aProperties.begin(), aProperties.end(),
+ ::chart::helper::PropertyNameLess() );
+
+ // transfer result to static Sequence
+ aPropSeq = ::chart::helper::VectorToSequence( aProperties );
+ }
+
+ return aPropSeq;
+}
+
+::cppu::IPropertyArrayHelper & lcl_getInfoHelper()
+{
+ static ::cppu::OPropertyArrayHelper aArrayHelper(
+ lcl_GetPropertySequence(),
+ /* bSorted = */ sal_True );
+
+ return aArrayHelper;
+}
+
+} // anonymous namespace
+
namespace chart
{
BarChartTypeTemplate::BarChartTypeTemplate(
uno::Reference<
uno::XComponentContext > const & xContext,
+ const ::rtl::OUString & rServiceName,
chart2::StackMode eStackMode,
BarDirection eDirection,
sal_Int32 nDim /* = 2 */,
ThreeDMode eThreeDMode /* = THREE_D_FLAT */ ) :
- ChartTypeTemplate( xContext ),
+ ChartTypeTemplate( xContext, rServiceName ),
+ ::property::OPropertySet( m_aMutex ),
m_eStackMode( eStackMode ),
m_eBarDirection( eDirection ),
m_nDim( nDim ),
@@ -94,11 +188,81 @@ chart2::StackMode BarChartTypeTemplate::getStackMode() const
return m_eStackMode;
}
-// ____ XChartTypeTemplate ____
-uno::Reference< chart2::XChartType > SAL_CALL BarChartTypeTemplate::getChartTypeForAdditionalSeries()
+uno::Reference< chart2::XChartType > BarChartTypeTemplate::getDefaultChartType()
throw (uno::RuntimeException)
{
- return new BarChartType( m_nDim );
+ uno::Reference< chart2::XChartType > xResult;
+ if( m_eBarDirection == HORIZONTAL )
+ xResult.set( new BarChartType( m_nDim ));
+ else
+ xResult.set( new ColumnChartType( m_nDim ));
+
+ return xResult;
}
+// ____ OPropertySet ____
+uno::Any BarChartTypeTemplate::GetDefaultValue( sal_Int32 nHandle ) const
+ throw(beans::UnknownPropertyException)
+{
+ static helper::tPropertyValueMap aStaticDefaults;
+
+ // /--
+ ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+ if( 0 == aStaticDefaults.size() )
+ {
+ // initialize defaults
+ lcl_AddDefaultsToMap( aStaticDefaults );
+ }
+
+ helper::tPropertyValueMap::const_iterator aFound(
+ aStaticDefaults.find( nHandle ));
+
+ if( aFound == aStaticDefaults.end())
+ return uno::Any();
+
+ return (*aFound).second;
+ // \--
+}
+
+::cppu::IPropertyArrayHelper & SAL_CALL BarChartTypeTemplate::getInfoHelper()
+{
+ return lcl_getInfoHelper();
+}
+
+
+// ____ XPropertySet ____
+uno::Reference< beans::XPropertySetInfo > SAL_CALL
+ BarChartTypeTemplate::getPropertySetInfo()
+ throw (uno::RuntimeException)
+{
+ static uno::Reference< beans::XPropertySetInfo > xInfo;
+
+ // /--
+ MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+ if( !xInfo.is())
+ {
+ xInfo = ::cppu::OPropertySetHelper::createPropertySetInfo(
+ getInfoHelper());
+ }
+
+ return xInfo;
+ // \--
+}
+
+// ----------------------------------------
+
+uno::Sequence< ::rtl::OUString > BarChartTypeTemplate::getSupportedServiceNames_Static()
+{
+ uno::Sequence< ::rtl::OUString > aServices( 2 );
+ aServices[ 0 ] = lcl_aServiceName;
+ aServices[ 1 ] = C2U( "drafts.com.sun.star.chart2.ChartTypeTemplate" );
+ return aServices;
+}
+
+// implement XServiceInfo methods basing upon getSupportedServiceNames_Static
+APPHELPER_XSERVICEINFO_IMPL( BarChartTypeTemplate, lcl_aServiceName );
+
+IMPLEMENT_FORWARD_XINTERFACE2( BarChartTypeTemplate, ChartTypeTemplate, OPropertySet )
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( BarChartTypeTemplate, ChartTypeTemplate, OPropertySet )
+
} // namespace chart
diff --git a/chart2/source/model/template/BarChartTypeTemplate.hxx b/chart2/source/model/template/BarChartTypeTemplate.hxx
index 6ca1e720e447..8117c6ab2052 100644
--- a/chart2/source/model/template/BarChartTypeTemplate.hxx
+++ b/chart2/source/model/template/BarChartTypeTemplate.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: BarChartTypeTemplate.hxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: bm $ $Date: 2003-10-06 09:58:31 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:32 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -61,6 +61,13 @@
#ifndef CHART_BARCHARTTYPETEMPLATE_HXX
#define CHART_BARCHARTTYPETEMPLATE_HXX
+#include "OPropertySet.hxx"
+#include "MutexContainer.hxx"
+
+#ifndef _COMPHELPER_UNO3_HXX_
+#include <comphelper/uno3.hxx>
+#endif
+
#include "ChartTypeTemplate.hxx"
#ifndef _DRAFTS_COM_SUN_STAR_CHART2_STACKMODE_HPP_
@@ -70,7 +77,10 @@
namespace chart
{
-class BarChartTypeTemplate : public ChartTypeTemplate
+class BarChartTypeTemplate :
+ public helper::MutexContainer,
+ public ChartTypeTemplate,
+ public ::property::OPropertySet
{
public:
enum BarDirection
@@ -88,20 +98,37 @@ public:
explicit BarChartTypeTemplate(
::com::sun::star::uno::Reference<
::com::sun::star::uno::XComponentContext > const & xContext,
+ const ::rtl::OUString & rServiceName,
::drafts::com::sun::star::chart2::StackMode eStackMode,
BarDirection eDirection,
sal_Int32 nDim = 2,
ThreeDMode eThreeDMode = THREE_D_FLAT );
virtual ~BarChartTypeTemplate();
+ /// XServiceInfo declarations
+ APPHELPER_XSERVICEINFO_DECL()
+
+ /// merge XInterface implementations
+ DECLARE_XINTERFACE()
+ /// merge XTypeProvider implementations
+ DECLARE_XTYPEPROVIDER()
+
protected:
+ // ____ OPropertySet ____
+ virtual ::com::sun::star::uno::Any GetDefaultValue( sal_Int32 nHandle ) const
+ throw(::com::sun::star::beans::UnknownPropertyException);
+ virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper();
+
+ // ____ XPropertySet ____
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL
+ getPropertySetInfo()
+ throw (::com::sun::star::uno::RuntimeException);
+
// ____ ChartTypeTemplate ____
virtual sal_Int32 getDimension() const;
virtual ::drafts::com::sun::star::chart2::StackMode getStackMode() const;
-
- // ____ XChartTypeTemplate ____
virtual ::com::sun::star::uno::Reference<
- ::drafts::com::sun::star::chart2::XChartType > SAL_CALL getChartTypeForAdditionalSeries()
+ ::drafts::com::sun::star::chart2::XChartType > getDefaultChartType()
throw (::com::sun::star::uno::RuntimeException);
private:
diff --git a/chart2/source/model/template/ChartTypeManager.cxx b/chart2/source/model/template/ChartTypeManager.cxx
index 4457ba879921..d02164bafa8c 100644
--- a/chart2/source/model/template/ChartTypeManager.cxx
+++ b/chart2/source/model/template/ChartTypeManager.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ChartTypeManager.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: bm $ $Date: 2003-10-06 09:58:31 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:32 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -244,8 +244,8 @@ enum TemplateId
TEMPLATE_THREEDBARFLAT,
TEMPLATE_STACKEDTHREEDBARFLAT,
TEMPLATE_PERCENTSTACKEDTHREEDBARFLAT,
- TEMPLATE_COLUMNWITHONELINE,
- TEMPLATE_STACKEDCOLUMNWITHONELINE,
+ TEMPLATE_COLUMNWITHLINE,
+ TEMPLATE_STACKEDCOLUMNWITHLINE,
TEMPLATE_AREA,
TEMPLATE_STACKEDAREA,
TEMPLATE_PERCENTSTACKEDAREA,
@@ -312,8 +312,8 @@ const tTemplateMapType & lcl_DefaultChartTypeMap()
( C2U( "com.sun.star.chart2.template.ThreeDBarFlat" ), TEMPLATE_THREEDBARFLAT )
( C2U( "com.sun.star.chart2.template.StackedThreeDBarFlat" ), TEMPLATE_STACKEDTHREEDBARFLAT )
( C2U( "com.sun.star.chart2.template.PercentStackedThreeDBarFlat" ), TEMPLATE_PERCENTSTACKEDTHREEDBARFLAT )
- ( C2U( "com.sun.star.chart2.template.ColumnWithOneLine" ), TEMPLATE_COLUMNWITHONELINE )
- ( C2U( "com.sun.star.chart2.template.StackedColumnWithOneLine" ), TEMPLATE_STACKEDCOLUMNWITHONELINE )
+ ( C2U( "com.sun.star.chart2.template.ColumnWithLine" ), TEMPLATE_COLUMNWITHLINE )
+ ( C2U( "com.sun.star.chart2.template.StackedColumnWithLine" ), TEMPLATE_STACKEDCOLUMNWITHLINE )
( C2U( "com.sun.star.chart2.template.Area" ), TEMPLATE_AREA )
( C2U( "com.sun.star.chart2.template.StackedArea" ), TEMPLATE_STACKEDAREA )
( C2U( "com.sun.star.chart2.template.PercentStackedArea" ), TEMPLATE_PERCENTSTACKEDAREA )
@@ -399,167 +399,167 @@ uno::Reference< uno::XInterface > SAL_CALL ChartTypeManager::createInstance(
{
// Line
case TEMPLATE_LINE:
- xTemplate.set( new LineChartTypeTemplate( m_xContext,
+ xTemplate.set( new LineChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_NONE, LineChartTypeTemplate::NO_SPLINE, false ));
break;
case TEMPLATE_STACKEDLINE:
- xTemplate.set( new LineChartTypeTemplate( m_xContext,
+ xTemplate.set( new LineChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_STACKED, LineChartTypeTemplate::NO_SPLINE, false ));
break;
case TEMPLATE_PERCENTSTACKEDLINE:
- xTemplate.set( new LineChartTypeTemplate( m_xContext,
+ xTemplate.set( new LineChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_STACKED_PERCENT, LineChartTypeTemplate::NO_SPLINE, false ));
break;
case TEMPLATE_LINESYMBOL:
- xTemplate.set( new LineChartTypeTemplate( m_xContext,
+ xTemplate.set( new LineChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_NONE, LineChartTypeTemplate::NO_SPLINE, true ));
break;
case TEMPLATE_STACKEDLINESYMBOL:
- xTemplate.set( new LineChartTypeTemplate( m_xContext,
+ xTemplate.set( new LineChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_STACKED, LineChartTypeTemplate::NO_SPLINE, true ));
break;
case TEMPLATE_PERCENTSTACKEDLINESYMBOL:
- xTemplate.set( new LineChartTypeTemplate( m_xContext,
+ xTemplate.set( new LineChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_STACKED_PERCENT, LineChartTypeTemplate::NO_SPLINE, true ));
break;
case TEMPLATE_CUBICSPLINE:
- xTemplate.set( new LineChartTypeTemplate( m_xContext,
+ xTemplate.set( new LineChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_NONE, LineChartTypeTemplate::CUBIC_SPLINE, false ));
break;
case TEMPLATE_CUBICSPLINESYMBOL:
- xTemplate.set( new LineChartTypeTemplate( m_xContext,
+ xTemplate.set( new LineChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_NONE, LineChartTypeTemplate::CUBIC_SPLINE, true ));
break;
case TEMPLATE_BSPLINE:
- xTemplate.set( new LineChartTypeTemplate( m_xContext,
+ xTemplate.set( new LineChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_NONE, LineChartTypeTemplate::B_SPLINE, false ));
break;
case TEMPLATE_BSPLINESYMBOL:
- xTemplate.set( new LineChartTypeTemplate( m_xContext,
+ xTemplate.set( new LineChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_NONE, LineChartTypeTemplate::B_SPLINE, true ));
break;
case TEMPLATE_THREEDLINE:
- xTemplate.set( new LineChartTypeTemplate( m_xContext,
+ xTemplate.set( new LineChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_NONE, LineChartTypeTemplate::NO_SPLINE, false, 3 ));
break;
// Bar/Column
case TEMPLATE_COLUMN:
- xTemplate.set( new BarChartTypeTemplate( m_xContext,
+ xTemplate.set( new BarChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_NONE, BarChartTypeTemplate::VERTICAL ));
break;
case TEMPLATE_STACKEDCOLUMN:
- xTemplate.set( new BarChartTypeTemplate( m_xContext,
+ xTemplate.set( new BarChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_STACKED, BarChartTypeTemplate::VERTICAL ));
break;
case TEMPLATE_PERCENTSTACKEDCOLUMN:
- xTemplate.set( new BarChartTypeTemplate( m_xContext,
+ xTemplate.set( new BarChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_STACKED_PERCENT, BarChartTypeTemplate::VERTICAL ));
break;
case TEMPLATE_BAR:
- xTemplate.set( new BarChartTypeTemplate( m_xContext,
+ xTemplate.set( new BarChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_NONE, BarChartTypeTemplate::HORIZONTAL ));
break;
case TEMPLATE_STACKEDBAR:
- xTemplate.set( new BarChartTypeTemplate( m_xContext,
+ xTemplate.set( new BarChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_STACKED, BarChartTypeTemplate::HORIZONTAL ));
break;
case TEMPLATE_PERCENTSTACKEDBAR:
- xTemplate.set( new BarChartTypeTemplate( m_xContext,
+ xTemplate.set( new BarChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_STACKED_PERCENT, BarChartTypeTemplate::HORIZONTAL ));
break;
case TEMPLATE_THREEDCOLUMNDEEP:
- xTemplate.set( new BarChartTypeTemplate( m_xContext,
+ xTemplate.set( new BarChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_NONE, BarChartTypeTemplate::VERTICAL,
3, BarChartTypeTemplate::THREE_D_DEEP ));
break;
case TEMPLATE_THREEDCOLUMNFLAT:
- xTemplate.set( new BarChartTypeTemplate( m_xContext,
+ xTemplate.set( new BarChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_NONE, BarChartTypeTemplate::VERTICAL,
3, BarChartTypeTemplate::THREE_D_FLAT ));
break;
case TEMPLATE_STACKEDTHREEDCOLUMNFLAT:
- xTemplate.set( new BarChartTypeTemplate( m_xContext,
+ xTemplate.set( new BarChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_STACKED, BarChartTypeTemplate::VERTICAL,
3, BarChartTypeTemplate::THREE_D_FLAT ));
case TEMPLATE_PERCENTSTACKEDTHREEDCOLUMNFLAT:
- xTemplate.set( new BarChartTypeTemplate( m_xContext,
+ xTemplate.set( new BarChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_STACKED_PERCENT, BarChartTypeTemplate::VERTICAL,
3, BarChartTypeTemplate::THREE_D_FLAT ));
case TEMPLATE_THREEDBARDEEP:
- xTemplate.set( new BarChartTypeTemplate( m_xContext,
+ xTemplate.set( new BarChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_NONE, BarChartTypeTemplate::HORIZONTAL,
3, BarChartTypeTemplate::THREE_D_DEEP ));
break;
case TEMPLATE_THREEDBARFLAT:
- xTemplate.set( new BarChartTypeTemplate( m_xContext,
+ xTemplate.set( new BarChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_NONE, BarChartTypeTemplate::HORIZONTAL,
3, BarChartTypeTemplate::THREE_D_FLAT ));
break;
case TEMPLATE_STACKEDTHREEDBARFLAT:
- xTemplate.set( new BarChartTypeTemplate( m_xContext,
+ xTemplate.set( new BarChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_STACKED, BarChartTypeTemplate::HORIZONTAL,
3, BarChartTypeTemplate::THREE_D_FLAT ));
break;
case TEMPLATE_PERCENTSTACKEDTHREEDBARFLAT:
- xTemplate.set( new BarChartTypeTemplate( m_xContext,
+ xTemplate.set( new BarChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_STACKED_PERCENT, BarChartTypeTemplate::HORIZONTAL,
3, BarChartTypeTemplate::THREE_D_FLAT ));
break;
// Combi-Chart Line/Column
- case TEMPLATE_COLUMNWITHONELINE:
- case TEMPLATE_STACKEDCOLUMNWITHONELINE:
+ case TEMPLATE_COLUMNWITHLINE:
+ case TEMPLATE_STACKEDCOLUMNWITHLINE:
{
- chart2::StackMode eMode = ( nId == TEMPLATE_COLUMNWITHONELINE )
+ chart2::StackMode eMode = ( nId == TEMPLATE_COLUMNWITHLINE )
? chart2::StackMode_NONE
: chart2::StackMode_STACKED;
sal_Int32 nNumOfLines = 1;
getFastPropertyValue( PROP_TEMPLATE_MANAGER_NUMBER_OF_LINES ) >>= nNumOfLines;
- xTemplate.set( new ColumnLineChartTypeTemplate( m_xContext, eMode, nNumOfLines ));
+ xTemplate.set( new ColumnLineChartTypeTemplate( m_xContext, aServiceSpecifier, eMode, nNumOfLines ));
}
break;
// Area
case TEMPLATE_AREA:
- xTemplate.set( new AreaChartTypeTemplate( m_xContext, chart2::StackMode_NONE ));
+ xTemplate.set( new AreaChartTypeTemplate( m_xContext, aServiceSpecifier, chart2::StackMode_NONE ));
break;
case TEMPLATE_STACKEDAREA:
- xTemplate.set( new AreaChartTypeTemplate( m_xContext, chart2::StackMode_STACKED ));
+ xTemplate.set( new AreaChartTypeTemplate( m_xContext, aServiceSpecifier, chart2::StackMode_STACKED ));
break;
case TEMPLATE_PERCENTSTACKEDAREA:
- xTemplate.set( new AreaChartTypeTemplate( m_xContext, chart2::StackMode_STACKED_PERCENT ));
+ xTemplate.set( new AreaChartTypeTemplate( m_xContext, aServiceSpecifier, chart2::StackMode_STACKED_PERCENT ));
break;
case TEMPLATE_THREEDAREA:
- xTemplate.set( new AreaChartTypeTemplate( m_xContext, chart2::StackMode_NONE, 3 ));
+ xTemplate.set( new AreaChartTypeTemplate( m_xContext, aServiceSpecifier, chart2::StackMode_NONE, 3 ));
break;
case TEMPLATE_STACKEDTHREEDAREA:
- xTemplate.set( new AreaChartTypeTemplate( m_xContext, chart2::StackMode_STACKED, 3 ));
+ xTemplate.set( new AreaChartTypeTemplate( m_xContext, aServiceSpecifier, chart2::StackMode_STACKED, 3 ));
break;
case TEMPLATE_PERCENTSTACKEDTHREEDAREA:
- xTemplate.set( new AreaChartTypeTemplate( m_xContext, chart2::StackMode_STACKED_PERCENT, 3 ));
+ xTemplate.set( new AreaChartTypeTemplate( m_xContext, aServiceSpecifier, chart2::StackMode_STACKED_PERCENT, 3 ));
break;
case TEMPLATE_PIE:
- xTemplate.set( new PieChartTypeTemplate( m_xContext,
- PieChartTypeTemplate::NO_OFFSET, false ));
+ xTemplate.set( new PieChartTypeTemplate( m_xContext, aServiceSpecifier,
+ chart2::PieChartOffsetMode_NONE, false ));
break;
case TEMPLATE_PIEONEEXPLODED:
- xTemplate.set( new PieChartTypeTemplate( m_xContext,
- PieChartTypeTemplate::FIRST_EXPLODED, false ));
+ xTemplate.set( new PieChartTypeTemplate( m_xContext, aServiceSpecifier,
+ chart2::PieChartOffsetMode_FIRST_EXPLODED, false ));
break;
case TEMPLATE_PIEALLEXPLODED:
- xTemplate.set( new PieChartTypeTemplate( m_xContext,
- PieChartTypeTemplate::ALL_EXPLODED, false ));
+ xTemplate.set( new PieChartTypeTemplate( m_xContext, aServiceSpecifier,
+ chart2::PieChartOffsetMode_ALL_EXPLODED, false ));
break;
case TEMPLATE_RING:
- xTemplate.set( new PieChartTypeTemplate( m_xContext,
- PieChartTypeTemplate::NO_OFFSET, true ));
+ xTemplate.set( new PieChartTypeTemplate( m_xContext, aServiceSpecifier,
+ chart2::PieChartOffsetMode_NONE, true ));
break;
case TEMPLATE_THREEDPIE:
- xTemplate.set( new PieChartTypeTemplate( m_xContext,
- PieChartTypeTemplate::NO_OFFSET, false, 3 ));
+ xTemplate.set( new PieChartTypeTemplate( m_xContext, aServiceSpecifier,
+ chart2::PieChartOffsetMode_NONE, false, 3 ));
break;
case TEMPLATE_SCATTERLINESYMBOL:
@@ -572,7 +572,7 @@ uno::Reference< uno::XInterface > SAL_CALL ChartTypeManager::createInstance(
// TEST !!!
case TEMPLATE_NET:
- xTemplate.set( new DoubleStackedBarChartTypeTemplate( m_xContext,
+ xTemplate.set( new DoubleStackedBarChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_NONE, chart2::StackMode_STACKED ));
break;
@@ -580,14 +580,14 @@ uno::Reference< uno::XInterface > SAL_CALL ChartTypeManager::createInstance(
case TEMPLATE_NETSYMBOL:
case TEMPLATE_STACKEDNET:
case TEMPLATE_STACKEDNETSYMBOL:
- xTemplate.set( new DoubleStackedBarChartTypeTemplate( m_xContext,
+ xTemplate.set( new DoubleStackedBarChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_STACKED, chart2::StackMode_STACKED ));
break;
// TEST !!!
case TEMPLATE_PERCENTSTACKEDNET:
case TEMPLATE_PERCENTSTACKEDNETSYMBOL:
- xTemplate.set( new DoubleStackedBarChartTypeTemplate( m_xContext,
+ xTemplate.set( new DoubleStackedBarChartTypeTemplate( m_xContext, aServiceSpecifier,
chart2::StackMode_STACKED_PERCENT, chart2::StackMode_STACKED ));
break;
diff --git a/chart2/source/model/template/ChartTypeTemplate.cxx b/chart2/source/model/template/ChartTypeTemplate.cxx
index 4ff84c4ecc41..e21eb8065562 100644
--- a/chart2/source/model/template/ChartTypeTemplate.cxx
+++ b/chart2/source/model/template/ChartTypeTemplate.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ChartTypeTemplate.cxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: bm $ $Date: 2003-10-09 16:46:43 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:32 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -60,17 +60,17 @@
************************************************************************/
#include "ChartTypeTemplate.hxx"
#include "PropertyHelper.hxx"
-#include "algohelper.hxx"
#include "macros.hxx"
#include "ContextHelper.hxx"
#include "Scale.hxx"
+#include "DataSeriesTreeHelper.hxx"
-#include "Diagram.hxx"
#include "Scaling.hxx"
#include "CartesianCoordinateSystem.hxx"
#include "BoundedCoordinateSystem.hxx"
#include "MeterHelper.hxx"
#include "LegendHelper.hxx"
+#include "BarChartType.hxx"
#ifndef _CPPUHELPER_COMPONENT_CONTEXT_HXX_
#include <cppuhelper/component_context.hxx>
@@ -106,85 +106,6 @@ using ::com::sun::star::uno::Any;
namespace
{
-bool lcl_SetStackModeAtTree(
- const Reference< chart2::XDataSeriesTreeParent > & rTree,
- chart2::StackMode eMode )
-{
- if( ! rTree.is())
- return false;
-
- bool bResult = false;
-
- // seek value stacking group
- Sequence< Reference< chart2::XDataSeriesTreeNode > > aChildren( rTree->getChildren());
- for( sal_Int32 i = 0;
- ( ! bResult ) && ( i < aChildren.getLength() );
- ++i )
- {
- Reference< chart2::XStackableScaleGroup > xStackGroup( aChildren[ i ], uno::UNO_QUERY );
- if( xStackGroup.is())
- {
- Reference< lang::XServiceInfo > xServInfo( aChildren[ i ], uno::UNO_QUERY );
- if( xServInfo.is() &&
- xServInfo->supportsService(
- C2U( "drafts.com.sun.star.chart2.ContinuousScaleGroup" )))
- {
- xStackGroup->setStackMode( eMode );
- bResult = true;
- break;
- }
- }
-
- // recurse
- Reference< chart2::XDataSeriesTreeParent > xNewParent( aChildren[ i ], uno::UNO_QUERY );
- if( xNewParent.is() &&
- lcl_SetStackModeAtTree( xNewParent, eMode ))
- bResult = true;
- }
-
- return bResult;
-}
-
-// helping method for lcl_GetDataSeries() (see below)
-void lcl_AddSeriesRecursive(
- Reference< chart2::XDataSeriesTreeParent > xParent,
- ::std::vector< Reference< chart2::XDataSeries > > & rOutSeriesVec )
-{
- if( xParent.is())
- {
- Sequence< Reference< chart2::XDataSeriesTreeNode > > aChildren( xParent->getChildren());
- for( sal_Int32 i = 0; i < aChildren.getLength(); ++i )
- {
- Reference< chart2::XDataSeries > aDataSeries( aChildren[ i ], uno::UNO_QUERY );
- if( aDataSeries.is())
- {
- rOutSeriesVec.push_back( aDataSeries );
- }
- else
- {
- Reference< chart2::XDataSeriesTreeParent > xNewParent( aChildren[ i ], uno::UNO_QUERY );
- if( xNewParent.is())
- lcl_AddSeriesRecursive( xNewParent, rOutSeriesVec );
- }
- }
- }
-}
-Sequence< Reference< chart2::XDataSeries > >
- lcl_GetDataSeries( const Reference< chart2::XDiagram > & xDia )
-{
- ::std::vector< Reference< chart2::XDataSeries > > aSeriesVec;
-
- if( xDia.is())
- {
- Reference< chart2::XDataSeriesTreeParent > aParent( xDia->getTree());
-
- if( aParent.is())
- lcl_AddSeriesRecursive( aParent, aSeriesVec );
- }
-
- return ::chart::helper::VectorToSequence( aSeriesVec );
-}
-
void lcl_FlushLegend( const Reference< chart2::XLegend > & xLegend )
{
if( xLegend.is())
@@ -213,8 +134,10 @@ namespace chart
{
ChartTypeTemplate::ChartTypeTemplate(
- Reference< uno::XComponentContext > const & xContext ) :
- m_xContext( xContext )
+ Reference< uno::XComponentContext > const & xContext,
+ const ::rtl::OUString & rServiceName ) :
+ m_xContext( xContext ),
+ m_aServiceName( rServiceName )
{
}
@@ -227,35 +150,49 @@ Reference< chart2::XDiagram > SAL_CALL ChartTypeTemplate::createDiagram(
const Sequence< Reference< chart2::XDataSeries > >& aSeriesSeq )
throw (uno::RuntimeException)
{
- // create diagram
- Reference< chart2::XDiagram > xDia( new Diagram( m_xContext ) );
+ Reference< chart2::XDiagram > xDia;
- // modify diagram
- FillDiagram( xDia, aSeriesSeq );
+ try
+ {
+ // create diagram
+ ContextHelper::tContextEntryMapType aContextValues(
+ ContextHelper::MakeContextEntryMap
+ ( C2U( "TemplateServiceName" ),
+ uno::makeAny( getServiceName() ))
+ );
- // create and attach legend
- Reference< chart2::XLegend > xLegend(
- m_xContext->getServiceManager()->createInstanceWithContext(
- C2U( "drafts.com.sun.star.chart2.Legend" ),
- m_xContext ),
- uno::UNO_QUERY );
+ xDia.set(
+ m_xContext->getServiceManager()->createInstanceWithContext(
+ C2U( "drafts.com.sun.star.chart2.Diagram" ),
+ ContextHelper::createContext( aContextValues, m_xContext ) ),
+ uno::UNO_QUERY_THROW );
- xDia->setLegend( xLegend );
- LegendHelper::defaultFillEmptyLegend( xLegend, xDia );
+ // modify diagram
+ FillDiagram( xDia, aSeriesSeq );
+
+ // create and attach legend
+ Reference< chart2::XLegend > xLegend(
+ m_xContext->getServiceManager()->createInstanceWithContext(
+ C2U( "drafts.com.sun.star.chart2.Legend" ),
+ m_xContext ),
+ uno::UNO_QUERY_THROW );
+
+ xDia->setLegend( xLegend );
+ LegendHelper::defaultFillEmptyLegend( xLegend, xDia );
+ }
+ catch( uno::Exception & ex )
+ {
+ ASSERT_EXCEPTION( ex );
+ }
return xDia;
}
-// simple first approach
-void SAL_CALL ChartTypeTemplate::changeDiagram( const Reference< chart2::XDiagram >& xDiagram )
+// ____ XServiceName ____
+ ::rtl::OUString SAL_CALL ChartTypeTemplate::getServiceName()
throw (uno::RuntimeException)
{
- Sequence< Reference< chart2::XDataSeries > > aSeriesSeq( lcl_GetDataSeries( xDiagram ));
- FillDiagram( xDiagram, aSeriesSeq );
-
- Reference< chart2::XLegend > xLegend( xDiagram->getLegend());
- lcl_FlushLegend( xLegend );
- LegendHelper::defaultFillEmptyLegend( xLegend, xDiagram );
+ return m_aServiceName;
}
// ________________________________________
@@ -270,6 +207,12 @@ chart2::StackMode ChartTypeTemplate::getStackMode() const
return chart2::StackMode_NONE;
}
+uno::Reference< chart2::XChartType > ChartTypeTemplate::getDefaultChartType()
+ throw (uno::RuntimeException)
+{
+ return new BarChartType( 2 );
+}
+
// ________________________________________
Reference< chart2::XBoundedCoordinateSystem > ChartTypeTemplate::createCoordinateSystem(
@@ -528,7 +471,7 @@ Reference< chart2::XDataSeriesTreeParent > ChartTypeTemplate::createDataSeriesTr
// chart type group
Reference< chart2::XDataSeriesTreeNode > aChartTypeNode(
- createChartTypeGroup( getChartTypeForAdditionalSeries()));
+ createChartTypeGroup( getDefaultChartType()));
// 'x-axis' group
Reference< chart2::XDataSeriesTreeNode > aCategoryNode(
@@ -558,7 +501,7 @@ void ChartTypeTemplate::setStackModeAtTree(
const Reference< chart2::XDataSeriesTreeParent > & rTree,
chart2::StackMode eMode )
{
- bool bResult = lcl_SetStackModeAtTree( rTree, eMode );
+ bool bResult = helper::DataSeriesTreeHelper::setStackMode( rTree, eMode );
OSL_ENSURE( bResult, "stack-mode could not be set" );
}
diff --git a/chart2/source/model/template/ChartTypeTemplate.hxx b/chart2/source/model/template/ChartTypeTemplate.hxx
index f69bd610dd31..d59763872a90 100644
--- a/chart2/source/model/template/ChartTypeTemplate.hxx
+++ b/chart2/source/model/template/ChartTypeTemplate.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ChartTypeTemplate.hxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: bm $ $Date: 2003-10-09 16:46:43 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:32 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -61,8 +61,8 @@
#ifndef CHART_CHARTTYPETEMPLATE_HXX
#define CHART_CHARTTYPETEMPLATE_HXX
-#ifndef _CPPUHELPER_IMPLBASE1_HXX_
-#include <cppuhelper/implbase1.hxx>
+#ifndef _CPPUHELPER_IMPLBASE2_HXX_
+#include <cppuhelper/implbase2.hxx>
#endif
#include "ServiceMacros.hxx"
@@ -87,17 +87,25 @@
#ifndef _DRAFTS_COM_SUN_STAR_CHART2_XLEGEND_HPP_
#include <drafts/com/sun/star/chart2/XLegend.hpp>
#endif
+#ifndef _COM_SUN_STAR_LANG_XSERVICENAME_HPP_
+#include <com/sun/star/lang/XServiceName.hpp>
+#endif
+#ifndef _DRAFTS_COM_SUN_STAR_CHART2_XCHARTTYPE_HPP_
+#include <drafts/com/sun/star/chart2/XChartType.hpp>
+#endif
namespace chart
{
-class ChartTypeTemplate : public ::cppu::WeakImplHelper1<
- ::drafts::com::sun::star::chart2::XChartTypeTemplate >
+class ChartTypeTemplate : public ::cppu::WeakImplHelper2<
+ ::drafts::com::sun::star::chart2::XChartTypeTemplate,
+ ::com::sun::star::lang::XServiceName >
{
public:
explicit ChartTypeTemplate(
::com::sun::star::uno::Reference<
- ::com::sun::star::uno::XComponentContext > const & xContext );
+ ::com::sun::star::uno::XComponentContext > const & xContext,
+ const ::rtl::OUString & rServiceName );
virtual ~ChartTypeTemplate();
APPHELPER_XSERVICEINFO_DECL()
@@ -106,17 +114,14 @@ public:
protected:
// ____ XChartTypeTemplate ____
- // still abstract !
- virtual ::com::sun::star::uno::Reference<
- ::drafts::com::sun::star::chart2::XChartType > SAL_CALL getChartTypeForAdditionalSeries()
- throw (::com::sun::star::uno::RuntimeException) = 0;
virtual ::com::sun::star::uno::Reference< ::drafts::com::sun::star::chart2::XDiagram > SAL_CALL
createDiagram( const ::com::sun::star::uno::Sequence<
::com::sun::star::uno::Reference<
::drafts::com::sun::star::chart2::XDataSeries > >& aSeriesSeq )
throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL changeDiagram(
- const ::com::sun::star::uno::Reference< ::drafts::com::sun::star::chart2::XDiagram >& xDiagram )
+
+ // ____ XServiceName ____
+ virtual ::rtl::OUString SAL_CALL getServiceName()
throw (::com::sun::star::uno::RuntimeException);
// Methods to overload for automatic creation
@@ -130,6 +135,10 @@ protected:
*/
virtual ::drafts::com::sun::star::chart2::StackMode getStackMode() const;
+ virtual ::com::sun::star::uno::Reference<
+ ::drafts::com::sun::star::chart2::XChartType > getDefaultChartType()
+ throw (::com::sun::star::uno::RuntimeException);
+
// Methods for creating the diagram piecewise
// ------------------------------------------
@@ -252,6 +261,7 @@ protected:
private:
::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >
m_xContext;
+ const ::rtl::OUString m_aServiceName;
/** modifies the given diagram
*/
diff --git a/chart2/source/model/template/ColumnChartType.cxx b/chart2/source/model/template/ColumnChartType.cxx
new file mode 100644
index 000000000000..dfb3c98f579f
--- /dev/null
+++ b/chart2/source/model/template/ColumnChartType.cxx
@@ -0,0 +1,83 @@
+/*************************************************************************
+ *
+ * $RCSfile: ColumnChartType.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:33 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2003 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#include "ColumnChartType.hxx"
+
+using namespace ::com::sun::star;
+using namespace ::drafts::com::sun::star;
+
+namespace chart
+{
+
+ColumnChartType::ColumnChartType( sal_Int32 nDim /* = 2 */ ) :
+ ChartType( nDim )
+{}
+
+ColumnChartType::~ColumnChartType()
+{}
+
+// ____ XChartType ____
+::rtl::OUString SAL_CALL ColumnChartType::getChartType()
+ throw (uno::RuntimeException)
+{
+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart2.ColumnChart" ));
+}
+
+} // namespace chart
diff --git a/chart2/source/model/template/ColumnChartType.hxx b/chart2/source/model/template/ColumnChartType.hxx
new file mode 100644
index 000000000000..2a56b9c95c0b
--- /dev/null
+++ b/chart2/source/model/template/ColumnChartType.hxx
@@ -0,0 +1,84 @@
+/*************************************************************************
+ *
+ * $RCSfile: ColumnChartType.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:33 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2003 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef CHART_COLUMNCHARTTYPE_HXX
+#define CHART_COLUMNCHARTTYPE_HXX
+
+#include "ChartType.hxx"
+
+namespace chart
+{
+
+class ColumnChartType : public ChartType
+{
+public:
+ ColumnChartType( sal_Int32 nDim = 2 );
+ virtual ~ColumnChartType();
+
+protected:
+ // ____ XChartType ____
+ virtual ::rtl::OUString SAL_CALL getChartType()
+ throw (::com::sun::star::uno::RuntimeException);
+};
+
+} // namespace chart
+
+// CHART_COLUMNCHARTTYPE_HXX
+#endif
diff --git a/chart2/source/model/template/ColumnLineChartTypeTemplate.cxx b/chart2/source/model/template/ColumnLineChartTypeTemplate.cxx
index 4a264b6d1a66..bff100afd7c4 100644
--- a/chart2/source/model/template/ColumnLineChartTypeTemplate.cxx
+++ b/chart2/source/model/template/ColumnLineChartTypeTemplate.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ColumnLineChartTypeTemplate.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: bm $ $Date: 2003-10-06 09:58:32 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:33 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -62,6 +62,14 @@
#include "macros.hxx"
#include "LineChartType.hxx"
#include "BarChartType.hxx"
+#include "algohelper.hxx"
+
+#ifndef CHART_PROPERTYHELPER_HXX
+#include "PropertyHelper.hxx"
+#endif
+#ifndef _COM_SUN_STAR_BEANS_PROPERTYATTRIBUTE_HPP_
+#include <com/sun/star/beans/PropertyAttribute.hpp>
+#endif
#include <algorithm>
@@ -71,6 +79,74 @@ using namespace ::drafts::com::sun::star;
using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::Sequence;
using ::rtl::OUString;
+using ::com::sun::star::beans::Property;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Any;
+using ::osl::MutexGuard;
+
+namespace
+{
+
+static const ::rtl::OUString lcl_aServiceName(
+ RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart2.ColumnLineChartTypeTemplate" ));
+
+enum
+{
+ PROP_COL_LINE_NUMBER_OF_LINES
+};
+
+void lcl_AddPropertiesToVector(
+ ::std::vector< Property > & rOutProperties )
+{
+ rOutProperties.push_back(
+ Property( C2U( "NumberOfLines" ),
+ PROP_COL_LINE_NUMBER_OF_LINES,
+ ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)),
+ beans::PropertyAttribute::BOUND
+ | beans::PropertyAttribute::MAYBEDEFAULT ));
+}
+
+void lcl_AddDefaultsToMap(
+ ::chart::helper::tPropertyValueMap & rOutMap )
+{
+ OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_COL_LINE_NUMBER_OF_LINES ));
+ rOutMap[ PROP_COL_LINE_NUMBER_OF_LINES ] =
+ uno::makeAny( sal_Int32( 1 ) );
+}
+
+const uno::Sequence< Property > & lcl_GetPropertySequence()
+{
+ static uno::Sequence< Property > aPropSeq;
+
+ // /--
+ MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+ if( 0 == aPropSeq.getLength() )
+ {
+ // get properties
+ ::std::vector< ::com::sun::star::beans::Property > aProperties;
+ lcl_AddPropertiesToVector( aProperties );
+
+ // and sort them for access via bsearch
+ ::std::sort( aProperties.begin(), aProperties.end(),
+ ::chart::helper::PropertyNameLess() );
+
+ // transfer result to static Sequence
+ aPropSeq = ::chart::helper::VectorToSequence( aProperties );
+ }
+
+ return aPropSeq;
+}
+
+::cppu::IPropertyArrayHelper & lcl_getInfoHelper()
+{
+ static ::cppu::OPropertyArrayHelper aArrayHelper(
+ lcl_GetPropertySequence(),
+ /* bSorted = */ sal_True );
+
+ return aArrayHelper;
+}
+
+} // anonymous namespace
namespace chart
{
@@ -78,16 +154,69 @@ namespace chart
ColumnLineChartTypeTemplate::ColumnLineChartTypeTemplate(
Reference<
uno::XComponentContext > const & xContext,
+ const ::rtl::OUString & rServiceName,
chart2::StackMode eStackMode,
sal_Int32 nNumberOfLines ) :
- ChartTypeTemplate( xContext ),
- m_eStackMode( eStackMode ),
- m_nNumberOfLines( nNumberOfLines )
-{}
+ ChartTypeTemplate( xContext, rServiceName ),
+ ::property::OPropertySet( m_aMutex ),
+ m_eStackMode( eStackMode )
+{
+ setFastPropertyValue_NoBroadcast( PROP_COL_LINE_NUMBER_OF_LINES, uno::makeAny( nNumberOfLines ));
+}
ColumnLineChartTypeTemplate::~ColumnLineChartTypeTemplate()
{}
+
+// ____ OPropertySet ____
+uno::Any ColumnLineChartTypeTemplate::GetDefaultValue( sal_Int32 nHandle ) const
+ throw(beans::UnknownPropertyException)
+{
+ static helper::tPropertyValueMap aStaticDefaults;
+
+ // /--
+ ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+ if( 0 == aStaticDefaults.size() )
+ {
+ // initialize defaults
+ lcl_AddDefaultsToMap( aStaticDefaults );
+ }
+
+ helper::tPropertyValueMap::const_iterator aFound(
+ aStaticDefaults.find( nHandle ));
+
+ if( aFound == aStaticDefaults.end())
+ return uno::Any();
+
+ return (*aFound).second;
+ // \--
+}
+
+::cppu::IPropertyArrayHelper & SAL_CALL ColumnLineChartTypeTemplate::getInfoHelper()
+{
+ return lcl_getInfoHelper();
+}
+
+
+// ____ XPropertySet ____
+uno::Reference< beans::XPropertySetInfo > SAL_CALL
+ ColumnLineChartTypeTemplate::getPropertySetInfo()
+ throw (uno::RuntimeException)
+{
+ static uno::Reference< beans::XPropertySetInfo > xInfo;
+
+ // /--
+ MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+ if( !xInfo.is())
+ {
+ xInfo = ::cppu::OPropertySetHelper::createPropertySetInfo(
+ getInfoHelper());
+ }
+
+ return xInfo;
+ // \--
+}
+
Reference< chart2::XDataSeriesTreeParent > ColumnLineChartTypeTemplate::createDataSeriesTree(
const Sequence< Reference< chart2::XDataSeries > > & aSeriesSeq,
const Reference< chart2::XBoundedCoordinateSystem > & rCoordSys )
@@ -97,7 +226,9 @@ Reference< chart2::XDataSeriesTreeParent > ColumnLineChartTypeTemplate::createDa
Reference< chart2::XDataSeriesTreeParent > aRoot( createRootNode());
sal_Int32 nNumberOfBars = aSeriesSeq.getLength();
- sal_Int32 nNumberOfLines = m_nNumberOfLines;
+ sal_Int32 nNumberOfLines = 1;
+ getFastPropertyValue( PROP_COL_LINE_NUMBER_OF_LINES ) >>= nNumberOfLines;
+
if( nNumberOfLines >= nNumberOfBars )
{
nNumberOfLines = 1;
@@ -165,11 +296,26 @@ Reference< chart2::XDataSeriesTreeParent > ColumnLineChartTypeTemplate::createDa
return aRoot;
}
-// ____ XChartTypeTemplate ____
-uno::Reference< chart2::XChartType > SAL_CALL ColumnLineChartTypeTemplate::getChartTypeForAdditionalSeries()
+uno::Reference< chart2::XChartType > ColumnLineChartTypeTemplate::getDefaultChartType()
throw (uno::RuntimeException)
{
return new LineChartType();
}
+// ----------------------------------------
+
+uno::Sequence< ::rtl::OUString > ColumnLineChartTypeTemplate::getSupportedServiceNames_Static()
+{
+ uno::Sequence< ::rtl::OUString > aServices( 2 );
+ aServices[ 0 ] = lcl_aServiceName;
+ aServices[ 1 ] = C2U( "drafts.com.sun.star.chart2.ChartTypeTemplate" );
+ return aServices;
+}
+
+// implement XServiceInfo methods basing upon getSupportedServiceNames_Static
+APPHELPER_XSERVICEINFO_IMPL( ColumnLineChartTypeTemplate, lcl_aServiceName );
+
+IMPLEMENT_FORWARD_XINTERFACE2( ColumnLineChartTypeTemplate, ChartTypeTemplate, OPropertySet )
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( ColumnLineChartTypeTemplate, ChartTypeTemplate, OPropertySet )
+
} // namespace chart
diff --git a/chart2/source/model/template/ColumnLineChartTypeTemplate.hxx b/chart2/source/model/template/ColumnLineChartTypeTemplate.hxx
index fed23a93aefc..0ea4dd39d5ed 100644
--- a/chart2/source/model/template/ColumnLineChartTypeTemplate.hxx
+++ b/chart2/source/model/template/ColumnLineChartTypeTemplate.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ColumnLineChartTypeTemplate.hxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: bm $ $Date: 2003-10-06 09:58:32 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:34 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -63,6 +63,13 @@
#include "ChartTypeTemplate.hxx"
+#include "OPropertySet.hxx"
+#include "MutexContainer.hxx"
+
+#ifndef _COMPHELPER_UNO3_HXX_
+#include <comphelper/uno3.hxx>
+#endif
+
#ifndef _DRAFTS_COM_SUN_STAR_CHART2_STACKMODE_HPP_
#include <drafts/com/sun/star/chart2/StackMode.hpp>
#endif
@@ -70,20 +77,37 @@
namespace chart
{
-class ColumnLineChartTypeTemplate : public ChartTypeTemplate
+class ColumnLineChartTypeTemplate :
+ public helper::MutexContainer,
+ public ChartTypeTemplate,
+ public ::property::OPropertySet
{
public:
explicit ColumnLineChartTypeTemplate(
::com::sun::star::uno::Reference<
::com::sun::star::uno::XComponentContext > const & xContext,
+ const ::rtl::OUString & rServiceName,
::drafts::com::sun::star::chart2::StackMode eStackMode,
sal_Int32 nNumberOfLines );
virtual ~ColumnLineChartTypeTemplate();
+ /// XServiceInfo declarations
+ APPHELPER_XSERVICEINFO_DECL()
+
+ /// merge XInterface implementations
+ DECLARE_XINTERFACE()
+ /// merge XTypeProvider implementations
+ DECLARE_XTYPEPROVIDER()
+
protected:
- // ____ XChartTypeTemplate ____
- virtual ::com::sun::star::uno::Reference<
- ::drafts::com::sun::star::chart2::XChartType > SAL_CALL getChartTypeForAdditionalSeries()
+ // ____ OPropertySet ____
+ virtual ::com::sun::star::uno::Any GetDefaultValue( sal_Int32 nHandle ) const
+ throw(::com::sun::star::beans::UnknownPropertyException);
+ virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper();
+
+ // ____ XPropertySet ____
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL
+ getPropertySetInfo()
throw (::com::sun::star::uno::RuntimeException);
// ____ ChartTypeTemplate ____
@@ -96,10 +120,13 @@ protected:
::drafts::com::sun::star::chart2::XBoundedCoordinateSystem > & rCoordSys
);
+ virtual ::com::sun::star::uno::Reference<
+ ::drafts::com::sun::star::chart2::XChartType > getDefaultChartType()
+ throw (::com::sun::star::uno::RuntimeException);
+
private:
::drafts::com::sun::star::chart2::StackMode
m_eStackMode;
- sal_Int32 m_nNumberOfLines;
};
} // namespace chart
diff --git a/chart2/source/model/template/LineChartTypeTemplate.cxx b/chart2/source/model/template/LineChartTypeTemplate.cxx
index 1334b365c4bc..7e6dc44bfa9a 100644
--- a/chart2/source/model/template/LineChartTypeTemplate.cxx
+++ b/chart2/source/model/template/LineChartTypeTemplate.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: LineChartTypeTemplate.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: bm $ $Date: 2003-10-06 09:58:32 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:35 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -70,11 +70,12 @@ namespace chart
LineChartTypeTemplate::LineChartTypeTemplate(
uno::Reference<
uno::XComponentContext > const & xContext,
+ const ::rtl::OUString & rServiceName,
chart2::StackMode eStackMode,
SplineMode eSplineMode,
bool bSymbols,
sal_Int32 nDim /* = 2 */ ) :
- ChartTypeTemplate( xContext ),
+ ChartTypeTemplate( xContext, rServiceName ),
m_eStackMode( eStackMode ),
m_eSplineMode( eSplineMode ),
m_bHasSymbols( bSymbols ),
@@ -94,8 +95,7 @@ chart2::StackMode LineChartTypeTemplate::getStackMode() const
return m_eStackMode;
}
-// ____ XChartTypeTemplate ____
-uno::Reference< chart2::XChartType > SAL_CALL LineChartTypeTemplate::getChartTypeForAdditionalSeries()
+uno::Reference< chart2::XChartType > LineChartTypeTemplate::getDefaultChartType()
throw (uno::RuntimeException)
{
return new LineChartType( m_nDim );
diff --git a/chart2/source/model/template/LineChartTypeTemplate.hxx b/chart2/source/model/template/LineChartTypeTemplate.hxx
index d8c2c939192c..f2f478142b48 100644
--- a/chart2/source/model/template/LineChartTypeTemplate.hxx
+++ b/chart2/source/model/template/LineChartTypeTemplate.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: LineChartTypeTemplate.hxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: bm $ $Date: 2003-10-06 09:58:32 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:35 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -83,6 +83,7 @@ public:
explicit LineChartTypeTemplate(
::com::sun::star::uno::Reference<
::com::sun::star::uno::XComponentContext > const & xContext,
+ const ::rtl::OUString & rServiceName,
::drafts::com::sun::star::chart2::StackMode eStackMode, SplineMode eSplineMode,
bool bSymbols, sal_Int32 nDim = 2 );
virtual ~LineChartTypeTemplate();
@@ -91,10 +92,8 @@ protected:
// ____ ChartTypeTemplate ____
virtual sal_Int32 getDimension() const;
virtual ::drafts::com::sun::star::chart2::StackMode getStackMode() const;
-
- // ____ XChartTypeTemplate ____
virtual ::com::sun::star::uno::Reference<
- ::drafts::com::sun::star::chart2::XChartType > SAL_CALL getChartTypeForAdditionalSeries()
+ ::drafts::com::sun::star::chart2::XChartType > getDefaultChartType()
throw (::com::sun::star::uno::RuntimeException);
private:
diff --git a/chart2/source/model/template/PieChartTypeTemplate.cxx b/chart2/source/model/template/PieChartTypeTemplate.cxx
index 01037b7d4d8c..11245487af7c 100644
--- a/chart2/source/model/template/PieChartTypeTemplate.cxx
+++ b/chart2/source/model/template/PieChartTypeTemplate.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: PieChartTypeTemplate.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: bm $ $Date: 2003-10-06 09:58:32 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:35 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -65,6 +65,16 @@
#include "PieChartType.hxx"
#include "Scale.hxx"
#include "macros.hxx"
+#include "algohelper.hxx"
+
+#ifndef CHART_PROPERTYHELPER_HXX
+#include "PropertyHelper.hxx"
+#endif
+#ifndef _COM_SUN_STAR_BEANS_PROPERTYATTRIBUTE_HPP_
+#include <com/sun/star/beans/PropertyAttribute.hpp>
+#endif
+
+#include <algorithm>
using namespace ::com::sun::star;
using namespace ::drafts::com::sun::star;
@@ -76,27 +86,189 @@ using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::Any;
using ::osl::MutexGuard;
+namespace
+{
+
+static const ::rtl::OUString lcl_aServiceName(
+ RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.chart2.PieChartTypeTemplate" ));
+
+enum
+{
+ PROP_PIE_TEMPLATE_DEFAULT_OFFSET,
+ PROP_PIE_TEMPLATE_OFFSET_MODE,
+ PROP_PIE_TEMPLATE_DIMENSION,
+ PROP_PIE_TEMPLATE_USE_RINGS
+};
+
+void lcl_AddPropertiesToVector(
+ ::std::vector< Property > & rOutProperties )
+{
+ rOutProperties.push_back(
+ Property( C2U( "OffsetMode" ),
+ PROP_PIE_TEMPLATE_OFFSET_MODE,
+ ::getCppuType( reinterpret_cast< const chart2::PieChartOffsetMode * >(0)),
+ beans::PropertyAttribute::BOUND
+ | beans::PropertyAttribute::MAYBEDEFAULT ));
+ rOutProperties.push_back(
+ Property( C2U( "DefaultOffset" ),
+ PROP_PIE_TEMPLATE_DEFAULT_OFFSET,
+ ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)),
+ beans::PropertyAttribute::BOUND
+ | beans::PropertyAttribute::MAYBEDEFAULT ));
+ rOutProperties.push_back(
+ Property( C2U( "Dimension" ),
+ PROP_PIE_TEMPLATE_DIMENSION,
+ ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)),
+ beans::PropertyAttribute::BOUND
+ | beans::PropertyAttribute::MAYBEDEFAULT ));
+ rOutProperties.push_back(
+ Property( C2U( "UseRings" ),
+ PROP_PIE_TEMPLATE_USE_RINGS,
+ ::getBooleanCppuType(),
+ beans::PropertyAttribute::BOUND
+ | beans::PropertyAttribute::MAYBEDEFAULT ));
+}
+
+void lcl_AddDefaultsToMap(
+ ::chart::helper::tPropertyValueMap & rOutMap )
+{
+ OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_PIE_TEMPLATE_OFFSET_MODE ));
+ rOutMap[ PROP_PIE_TEMPLATE_OFFSET_MODE ] =
+ uno::makeAny( chart2::PieChartOffsetMode_NONE );
+ OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_PIE_TEMPLATE_DEFAULT_OFFSET ));
+ rOutMap[ PROP_PIE_TEMPLATE_DEFAULT_OFFSET ] =
+ uno::makeAny( sal_Int32( 10 ) );
+ OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_PIE_TEMPLATE_DIMENSION ));
+ rOutMap[ PROP_PIE_TEMPLATE_DIMENSION ] =
+ uno::makeAny( sal_Int32( 2 ) );
+ OSL_ASSERT( rOutMap.end() == rOutMap.find( PROP_PIE_TEMPLATE_USE_RINGS ));
+ rOutMap[ PROP_PIE_TEMPLATE_USE_RINGS ] =
+ uno::makeAny( sal_False );
+}
+
+const uno::Sequence< Property > & lcl_GetPropertySequence()
+{
+ static uno::Sequence< Property > aPropSeq;
+
+ // /--
+ MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+ if( 0 == aPropSeq.getLength() )
+ {
+ // get properties
+ ::std::vector< ::com::sun::star::beans::Property > aProperties;
+ lcl_AddPropertiesToVector( aProperties );
+
+ // and sort them for access via bsearch
+ ::std::sort( aProperties.begin(), aProperties.end(),
+ ::chart::helper::PropertyNameLess() );
+
+ // transfer result to static Sequence
+ aPropSeq = ::chart::helper::VectorToSequence( aProperties );
+ }
+
+ return aPropSeq;
+}
+
+::cppu::IPropertyArrayHelper & lcl_getInfoHelper()
+{
+ static ::cppu::OPropertyArrayHelper aArrayHelper(
+ lcl_GetPropertySequence(),
+ /* bSorted = */ sal_True );
+
+ return aArrayHelper;
+}
+
+} // anonymous namespace
+
namespace chart
{
PieChartTypeTemplate::PieChartTypeTemplate(
uno::Reference<
uno::XComponentContext > const & xContext,
- PieOffsetMode eMode,
+ const ::rtl::OUString & rServiceName,
+ chart2::PieChartOffsetMode eMode,
bool bRings /* = false */,
sal_Int32 nDim /* = 2 */ ) :
- ChartTypeTemplate( xContext ),
+ ChartTypeTemplate( xContext, rServiceName ),
+ ::property::OPropertySet( m_aMutex ),
m_ePieOffsetMode( eMode ),
- m_nDim( nDim ),
m_bIsRingChart( bRings )
-{}
+{
+ setFastPropertyValue_NoBroadcast( PROP_PIE_TEMPLATE_OFFSET_MODE, uno::makeAny( eMode ));
+ setFastPropertyValue_NoBroadcast( PROP_PIE_TEMPLATE_DIMENSION, uno::makeAny( nDim ));
+ setFastPropertyValue_NoBroadcast( PROP_PIE_TEMPLATE_USE_RINGS, uno::makeAny( sal_Bool( bRings )));
+}
PieChartTypeTemplate::~PieChartTypeTemplate()
{}
+// ____ OPropertySet ____
+uno::Any PieChartTypeTemplate::GetDefaultValue( sal_Int32 nHandle ) const
+ throw(beans::UnknownPropertyException)
+{
+ static helper::tPropertyValueMap aStaticDefaults;
+
+ // /--
+ ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+ if( 0 == aStaticDefaults.size() )
+ {
+ // initialize defaults
+ lcl_AddDefaultsToMap( aStaticDefaults );
+ }
+
+ helper::tPropertyValueMap::const_iterator aFound(
+ aStaticDefaults.find( nHandle ));
+
+ if( aFound == aStaticDefaults.end())
+ return uno::Any();
+
+ return (*aFound).second;
+ // \--
+}
+
+::cppu::IPropertyArrayHelper & SAL_CALL PieChartTypeTemplate::getInfoHelper()
+{
+ return lcl_getInfoHelper();
+}
+
+
+// ____ XPropertySet ____
+uno::Reference< beans::XPropertySetInfo > SAL_CALL
+ PieChartTypeTemplate::getPropertySetInfo()
+ throw (uno::RuntimeException)
+{
+ static uno::Reference< beans::XPropertySetInfo > xInfo;
+
+ // /--
+ MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+ if( !xInfo.is())
+ {
+ xInfo = ::cppu::OPropertySetHelper::createPropertySetInfo(
+ getInfoHelper());
+ }
+
+ return xInfo;
+ // \--
+}
+
+
+// ____ ChartTypeTemplate ____
sal_Int32 PieChartTypeTemplate::getDimension() const
{
- return m_nDim;
+ sal_Int32 nDim = 2;
+ try
+ {
+ // note: UNO-methods are never const
+ const_cast< PieChartTypeTemplate * >( this )->
+ getFastPropertyValue( PROP_PIE_TEMPLATE_DIMENSION ) >>= nDim;
+ }
+ catch( beans::UnknownPropertyException & ex )
+ {
+ ASSERT_EXCEPTION( ex );
+ }
+
+ return nDim;
}
uno::Reference< chart2::XBoundedCoordinateSystem > PieChartTypeTemplate::createCoordinateSystem(
@@ -139,9 +311,12 @@ Reference< chart2::XDataSeriesTreeParent > PieChartTypeTemplate::createDataSerie
const Sequence< Reference< chart2::XDataSeries > > & aSeriesSeq,
const Reference< chart2::XBoundedCoordinateSystem > & rCoordSys )
{
- sal_Int32 nOffset = (m_ePieOffsetMode == NO_OFFSET)
+ sal_Int32 nDefaultOffset = 10;
+ sal_Int32 nDim = getDimension();
+ getFastPropertyValue( PROP_PIE_TEMPLATE_DEFAULT_OFFSET ) >>= nDefaultOffset;
+ sal_Int32 nOffset = (m_ePieOffsetMode == chart2::PieChartOffsetMode_NONE)
? 0
- : m_nDefaultOffset;
+ : nDefaultOffset;
// create series tree nodes
// root
@@ -149,7 +324,7 @@ Reference< chart2::XDataSeriesTreeParent > PieChartTypeTemplate::createDataSerie
// chart type group
Reference< chart2::XDataSeriesTreeNode > aChartTypeNode(
- createChartTypeGroup( new PieChartType( m_nDim, nOffset )));
+ createChartTypeGroup( new PieChartType( nDim, nOffset )));
// 'x-axis' group
Reference< chart2::XDataSeriesTreeNode > aCategoryNode(
@@ -164,7 +339,7 @@ Reference< chart2::XDataSeriesTreeParent > PieChartTypeTemplate::createDataSerie
// build tree
// add series node to value node
- if( m_ePieOffsetMode == FIRST_EXPLODED )
+ if( m_ePieOffsetMode == chart2::PieChartOffsetMode_FIRST_EXPLODED )
{
if( aSeriesSeq.getLength() >= 1 )
{
@@ -176,7 +351,7 @@ Reference< chart2::XDataSeriesTreeParent > PieChartTypeTemplate::createDataSerie
{
// chart type group
Reference< chart2::XDataSeriesTreeNode > aChartTypeNode2(
- createChartTypeGroup( new PieChartType( m_nDim, 0 )));
+ createChartTypeGroup( new PieChartType( nDim, 0 )));
// 'x-axis' group
Reference< chart2::XDataSeriesTreeNode > aCategoryNode2(
@@ -208,15 +383,33 @@ Reference< chart2::XDataSeriesTreeParent > PieChartTypeTemplate::createDataSerie
return aRoot;
}
-// ____ XChartTypeTemplate ____
-uno::Reference< chart2::XChartType > SAL_CALL PieChartTypeTemplate::getChartTypeForAdditionalSeries()
+uno::Reference< chart2::XChartType > PieChartTypeTemplate::getDefaultChartType()
throw (uno::RuntimeException)
{
sal_Int32 nOffset = 0;
- if( m_ePieOffsetMode == ALL_EXPLODED )
- nOffset = m_nDefaultOffset;
+ if( m_ePieOffsetMode == chart2::PieChartOffsetMode_ALL_EXPLODED )
+ {
+ nOffset = 10;
+ getFastPropertyValue( PROP_PIE_TEMPLATE_DEFAULT_OFFSET ) >>= nOffset;
+ }
+
+ return new PieChartType( getDimension(), nOffset );
+}
- return new PieChartType( m_nDim, nOffset );
+// ----------------------------------------
+
+uno::Sequence< ::rtl::OUString > PieChartTypeTemplate::getSupportedServiceNames_Static()
+{
+ uno::Sequence< ::rtl::OUString > aServices( 2 );
+ aServices[ 0 ] = lcl_aServiceName;
+ aServices[ 1 ] = C2U( "drafts.com.sun.star.chart2.ChartTypeTemplate" );
+ return aServices;
}
+// implement XServiceInfo methods basing upon getSupportedServiceNames_Static
+APPHELPER_XSERVICEINFO_IMPL( PieChartTypeTemplate, lcl_aServiceName );
+
+IMPLEMENT_FORWARD_XINTERFACE2( PieChartTypeTemplate, ChartTypeTemplate, OPropertySet )
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( PieChartTypeTemplate, ChartTypeTemplate, OPropertySet )
+
} // namespace chart
diff --git a/chart2/source/model/template/PieChartTypeTemplate.hxx b/chart2/source/model/template/PieChartTypeTemplate.hxx
index 8d2bbdd24904..010616b02fe7 100644
--- a/chart2/source/model/template/PieChartTypeTemplate.hxx
+++ b/chart2/source/model/template/PieChartTypeTemplate.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: PieChartTypeTemplate.hxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: bm $ $Date: 2003-10-06 09:58:32 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:36 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -61,30 +61,56 @@
#ifndef CHART_PIECHARTTYPETEMPLATE_HXX
#define CHART_PIECHARTTYPETEMPLATE_HXX
+#include "OPropertySet.hxx"
+#include "MutexContainer.hxx"
+
+#ifndef _COMPHELPER_UNO3_HXX_
+#include <comphelper/uno3.hxx>
+#endif
+
#include "ChartTypeTemplate.hxx"
+#ifndef _DRAFTS_COM_SUN_STAR_CHART2_PIECHARTOFFSETMODE_HPP_
+#include <drafts/com/sun/star/chart2/PieChartOffsetMode.hpp>
+#endif
+
namespace chart
{
-class PieChartTypeTemplate : public ChartTypeTemplate
+class PieChartTypeTemplate :
+ public helper::MutexContainer,
+ public ChartTypeTemplate,
+ public ::property::OPropertySet
{
public:
- enum PieOffsetMode
- {
- NO_OFFSET,
- FIRST_EXPLODED,
- ALL_EXPLODED
- };
-
PieChartTypeTemplate(
::com::sun::star::uno::Reference<
::com::sun::star::uno::XComponentContext > const & xContext,
- PieOffsetMode eMode,
+ const ::rtl::OUString & rServiceName,
+ ::drafts::com::sun::star::chart2::PieChartOffsetMode eMode,
bool bRings = false,
sal_Int32 nDim = 2 );
virtual ~PieChartTypeTemplate();
+ /// XServiceInfo declarations
+ APPHELPER_XSERVICEINFO_DECL()
+
+ /// merge XInterface implementations
+ DECLARE_XINTERFACE()
+ /// merge XTypeProvider implementations
+ DECLARE_XTYPEPROVIDER()
+
protected:
+ // ____ OPropertySet ____
+ virtual ::com::sun::star::uno::Any GetDefaultValue( sal_Int32 nHandle ) const
+ throw(::com::sun::star::beans::UnknownPropertyException);
+ virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper();
+
+ // ____ XPropertySet ____
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL
+ getPropertySetInfo()
+ throw (::com::sun::star::uno::RuntimeException);
+
// ____ ChartTypeTemplate ____
virtual sal_Int32 getDimension() const;
@@ -109,18 +135,14 @@ protected:
::drafts::com::sun::star::chart2::XBoundedCoordinateSystem > & rCoordSys
);
- // ____ XChartTypeTemplate ____
virtual ::com::sun::star::uno::Reference<
- ::drafts::com::sun::star::chart2::XChartType > SAL_CALL getChartTypeForAdditionalSeries()
+ ::drafts::com::sun::star::chart2::XChartType > getDefaultChartType()
throw (::com::sun::star::uno::RuntimeException);
private:
- PieOffsetMode m_ePieOffsetMode;
- sal_Int32 m_nDim;
- bool m_bIsRingChart;
-
- // same value as in old chart
- static const sal_Int32 m_nDefaultOffset = 10;
+ ::drafts::com::sun::star::chart2::PieChartOffsetMode
+ m_ePieOffsetMode;
+ bool m_bIsRingChart;
};
} // namespace chart
diff --git a/chart2/source/model/template/makefile.mk b/chart2/source/model/template/makefile.mk
index a24cb6d3eed0..bcfddc2fc99e 100644
--- a/chart2/source/model/template/makefile.mk
+++ b/chart2/source/model/template/makefile.mk
@@ -2,9 +2,9 @@
#
# $RCSfile: makefile.mk,v $
#
-# $Revision: 1.1.1.1 $
+# $Revision: 1.2 $
#
-# last change: $Author: bm $ $Date: 2003-10-06 09:58:32 $
+# last change: $Author: bm $ $Date: 2003-11-04 12:37:36 $
#
# The Contents of this file are made available subject to the terms of
# either of the following licenses
@@ -83,6 +83,7 @@ SLOFILES= \
$(SLO)$/ChartType.obj \
$(SLO)$/ChartTypeManager.obj \
$(SLO)$/ChartTypeTemplate.obj \
+ $(SLO)$/ColumnChartType.obj \
$(SLO)$/ColumnLineChartTypeTemplate.obj \
$(SLO)$/DoubleStackedBarChartTypeTemplate.obj \
$(SLO)$/LineChartType.obj \
diff --git a/chart2/source/tools/makefile.mk b/chart2/source/tools/makefile.mk
index 1b67dc4988fe..8942992a9c4e 100644
--- a/chart2/source/tools/makefile.mk
+++ b/chart2/source/tools/makefile.mk
@@ -2,9 +2,9 @@
#
# $RCSfile: makefile.mk,v $
#
-# $Revision: 1.2 $
+# $Revision: 1.3 $
#
-# last change: $Author: bm $ $Date: 2003-10-20 09:59:32 $
+# last change: $Author: bm $ $Date: 2003-11-04 12:37:44 $
#
# The Contents of this file are made available subject to the terms of
# either of the following licenses
@@ -85,6 +85,7 @@ SLOFILES= \
$(SLO)$/MediaDescriptorHelper.obj \
$(SLO)$/CommonConverters.obj \
$(SLO)$/ContextHelper.obj \
+ $(SLO)$/DataSeriesTreeHelper.obj \
$(SLO)$/ImplOPropertySet.obj \
$(SLO)$/LayoutHelper.obj \
$(SLO)$/OChartElementContainerHelper.obj \
diff --git a/chart2/source/view/main/VLegend.cxx b/chart2/source/view/main/VLegend.cxx
index b90188f8be83..84d796009c4d 100644
--- a/chart2/source/view/main/VLegend.cxx
+++ b/chart2/source/view/main/VLegend.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: VLegend.cxx,v $
*
- * $Revision: 1.19 $
+ * $Revision: 1.20 $
*
- * last change: $Author: iha $ $Date: 2003-10-31 12:50:57 $
+ * last change: $Author: bm $ $Date: 2003-11-04 12:37:45 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -263,6 +263,19 @@ uno::Reference< drawing::XShape >
else if( aChartType.equals( C2U( "com.sun.star.chart2.LineChart" )))
{
eSymbolStyle = chart2::LegendSymbolStyle_LINE;
+ try
+ {
+ // use a box for 3d-line charts
+ sal_Int32 nDim;
+ uno::Reference< beans::XPropertySet > xCTProp( xChartType, uno::UNO_QUERY_THROW );
+ if(( xCTProp->getPropertyValue( C2U( "Dimension" )) >>= nDim ) &&
+ nDim == 3 )
+ eSymbolStyle = chart2::LegendSymbolStyle_BOX;
+ }
+ catch( uno::Exception & ex )
+ {
+ ASSERT_EXCEPTION( ex );
+ }
}
else if( aChartType.equals( C2U( "com.sun.star.chart2.PieChart" )))
{