Hi Ingrid , Just discard my last email where i reported a bug about renaming sheets . actually i solved the issue . I was probably doing some mistake ,but now i get correct behavior .
The most important thing for me now is to arrange the vertical grid labels in ranges of 1 month . 1-while thinking about the hack you described in last emails ; if i clear date cells that i don't need to display , will the corresponding vertical grid of empty cells be drawn in chart diagram ? 2- we get the range sequence using code : com.sun.star.chart2.data.XDataSequence oSequence=oDataProv.createDataSequenceByRangeRepresentation(string_range); oSequence object has a getData() method that returns an array of Object[] i was thinking i can process array getData() and then set the new processed data to oSequence ; however oSequence doesn't have a setData() method . is it possible to assign an array of Object[] to a XDataSequence instance ? i think this workaround could help me solve the x-axis label ranges without inserting a new dummy column. what you think ? it would really make me a happy man if you propose some other solution to make the vertical grid for x-axis dates more readable? thanks. othman wrote: > > Thanks much Ingrid ,i'll try using this workaround . > As you can see this discussion may be useful to discover bugs and improve > the charting component. > > I think i discovered another bug related to calc sheets renaming. here is > the situation: > > 1-I open a calc spreadsheet with 3 initial sheets : (Sheet1 > ,Sheet2,Sheet3) > 2-programatically from java code i insert a new sheet ( Sheet4) > 3-manually from OO.o i rename (Sheet4) to (Sheet4_bis) (i did that > manually not from java code) > 4-when i query the array of sheet elements Names i got : (Sheet1 > ,Sheet2,Sheet3,Sheet4_bis, Sheet4) > > as you can see renaming (Sheet4) didn't removed this sheet name from > sheets array names :it only push it to end of sheets elemets array . > is this a bug ? how can i fix this issue ? i need when i rename a sheet > manually; the old sheet name (sheet4) should be replaced by new name and > sheet name (Sheet4) must be removed from sheets elements array. > > thanks much . > > othman. > > > Ingrid Halama wrote: >> >> Hi, >> >> That is a bug. You can do the following to work around: >> >> Query the Chart document for interface XMultiServiceFactory: >> http://api.openoffice.org/docs/common/ref/com/sun/star/lang/XMultiServiceFactory.html >> >> Use method createInstance with service name >> "com.sun.star.drawing.DashTable" to get the dash table use by the chart. >> http://api.openoffice.org/docs/common/ref/com/sun/star/drawing/DashTable.html >> >> Now insert your newly created dash to the table using the method >> insertByName. You will need to create a unique name for your dash here. >> >> Use this unique name and set it to the property "LineDashName" instead >> of setting the property "LineDash". >> >> Kind regards, >> Ingrid >> >> othman wrote: >>> Hi Ingid , >>> thanks for providing the hack ..it is never a good Idea to hack ; but if >>> i >>> have no other choice then i'll try your method. >>> >>> there is a small issue i'm facing with the diagram vertical grid : i >>> want to >>> have a dashed line vertical grid . i wrote code to get this effect (see >>> code >>> below) .it indeed displays the dashed line for vertical grid ..but the >>> problem is when i tried to play with the attributes of LineDash, it >>> always >>> gives me same dashed grid. >>> it seems that this line code is not executed : >>> xGridProp.setPropertyValue( >>> "LineDash", aDash ); >>> because if i comment this line code i get the same grid as if i don't >>> comment it . >>> >>> can you point me what is the issue with LineDash ? >>> >>> thanks . >>> >>> code: >>> >>> // x major grid >>> XPropertySet xGridProp = (XPropertySet) >>> UnoRuntime.queryInterface( >>> XPropertySet.class, >>> ( (XAxisXSupplier) UnoRuntime.queryInterface( >>> XAxisXSupplier.class, maDiagram )).getXMainGrid()); >>> >>> if( xGridProp != null ) >>> { >>> LineDash aDash = new LineDash(); >>> >>> aDash.Style = DashStyle.ROUND; >>> aDash.Dots = 2; >>> aDash.DotLen = 10; >>> aDash.Dashes = 1; >>> aDash.DashLen = 200; >>> aDash.Distance = 100; >>> >>> xGridProp.setPropertyValue( "LineColor", new Integer( >>> 0x000000 >>> )); >>> xGridProp.setPropertyValue( "LineStyle", LineStyle.DASH ); >>> xGridProp.setPropertyValue( "LineDash", aDash ); >>> xGridProp.setPropertyValue( "LineWidth", new Integer( 30 )); >>> >>> } >>> >>> >>> Ingrid Halama wrote: >>>> Hi, >>>> >>>> othman wrote: >>>>> Hi Ingrid, >>>>> I believe the zooming feature might be beyond the scope of my project >>>>> requirements now.. >>>> Ok. >>>> >>>>> anyway i wish if you can think adding the feature of scaling the dates >>>>> x-axis values for candle charts : date objects are a widely used data >>>>> type >>>>> and offering this feature of scaling date ranges would be a good Idea. >>>>> >>>> I agree and I know. There are still a lot of issues of similar quality. >>>> Work is ongoing. >>>> >>>>> i have a small issue : >>>>> There is concern on the x-axis labels. I need to display only one >>>>> date >>>>> label for each month. For instance, if the chart starts from Dec 6 >>>>> 2007, >>>>> there should be labels of 12/6/2007, 1/6/2008, 2/6/2008, 3/6/2008, >>>>> 4/6/2008, >>>>> 5/6/2008 on x-axis. and other date labels should not be displayed on >>>>> x-axis >>>>> . how can i implement this ? >>>>> >>>> At the moment there exists no good/normal/acceptable way to do that >>>> (neither API nor user interface). You can only try to hack: >>>> >>>> Assuming you have a data point for each day (ordered in time) and you >>>> have a cell range containing all those days you can try the following: >>>> Copy all the dates to another location in the calc. Calculate which of >>>> the days you want to display and which not. Clear the cells with the >>>> dates that you do not want to display. Use the newly created cell-range >>>> (including all the cleared cells) for display of the categories. To use >>>> the new range for category display you need to do the following: >>>> Query the com::sun::star::chart2::Diagram for interface >>>> XCoordinateSystemContainer >>>> (http://api.openoffice.org/docs/common/ref/com/sun/star/chart2/XCoordinateSystemContainer.html). >>>> Get the first coordinate system: >>>> http://api.openoffice.org/docs/common/ref/com/sun/star/chart2/XCoordinateSystem.html. >>>> At the coordinate system use method getAxisByDimension(0,0) to get the >>>> primary x axis >>>> (http://api.openoffice.org/docs/common/ref/com/sun/star/chart2/XAxis.html). >>>> At the axis get the scale data by using method getScaleData >>>> (http://api.openoffice.org/docs/common/ref/com/sun/star/chart2/ScaleData.html). >>>> At the scale you will find a member "Categories" of type >>>> XLabeledDataSequence. You know already how to create such objects from >>>> cell ranges. Set the role of the values to "categories" in this case. >>>> Then set the new sequence to the Categories member and set the changed >>>> scale back to the axis (setScaleData). Be careful when playing around >>>> with the other scale settings as not all of them are saved and loaded, >>>> some do not have an effect at all so far. >>>> >>>> This hack has a problem. When the user changes the original dates after >>>> creation of the chart, the chart will not reflect those changes. Don't >>>> know whether that is important in your scenario. >>>> >>>> Kind regards, >>>> Ingrid >>>> >>>>> thanks. >>>>> >>>>> othman. >>>>> >>>>> >>>>> >>>>> >>>>> Ingrid Halama wrote: >>>>>> Hi, >>>>>> >>>>>> othman wrote: >>>>>>> Hi Ingrid, >>>>>>> as we all know the candle chart has two bars (black and white) >>>>>>> I guess that by changing the bar width, the chart can have a larger >>>>>>> date >>>>>>> range displayed. >>>>>> No. >>>>>> >>>>>>> I am not sure whether this is the correct direction to fix >>>>>>> the x-axis scale problem . what you think about that ? and is it >>>>>>> possible >>>>>>> to >>>>>>> change the width of candle chart bars ? >>>>>> No, that is not the right direction to fix the problem. It is not >>>>>> possible to set a manual width to the candles. The width is >>>>>> calculated >>>>>> automatically dependent on the amount of data and the place provided. >>>>>> >>>>>> So again, I would suggest to change the data ranges on your zooming >>>>>> control. >>>>>> >>>>>>> thanks >>>>>>> >>>>>>> othman >>>>>>> >>>>>> Kind regards, >>>>>> Ingrid >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>>>>> For additional commands, e-mail: [EMAIL PROTECTED] >>>>>> >>>>>> >>>>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>>> For additional commands, e-mail: [EMAIL PROTECTED] >>>> >>>> >>>> >>> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> > > -- View this message in context: http://www.nabble.com/discussing-com%3Asun%3Astar%3Achart2-API-tp19268400p19591042.html Sent from the openoffice - api dev mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]