 Then I start, okay, I'm Tomasz Wenger from Colabora and Today I present about the new feature in Calc Two new features one is in Calc and one is in Charts, so this is Sparkline's and the data table chart So first off, this was sponsored by NGI and I mentioned them that contribution So first I like to talk about the Sparkline and these Sparklines like they are like mini charts that are inside the cells displayed inside the cells This used to quickly visualize the data Inside the chart you know and they are basically drawn to the background so you can still Edit the Edit to the cells and it's all right with the content, but this is not Nice most cases, so usually they should be empty There are three types of Sparklines one is this line as you can see on the Health column here Next is the column base these are like just columns up and down Positive and negative and then stacked this just shows if the data is positive or it's negative So they don't show the magnitude how Of the data, but just positive or negative And these are generally the types that are support inside So we didn't go and adds new ones here So Sparklines can be Sparkline is generally just for one cell and but they can be grouped inside Sparkline groups because of many cases you have many cases you have Sparklines that multiple sparklines that have more or less the same properties so you can quickly just add them to the group and There's How this is Mantis that even if you have one sparkline you still has to be in a sparkline group So what are the properties? which are now Sparkline group properties because sparkline Have many properties just for the input data And what we can change here is Quite a lot of things For example the serious core and you can choose if There should be a special marker for the negative high low first data last day time so on and you can choose all the colors Then there is like you can choose like if it should display the hidden also or it just should ignore and if the Sparkline should be oriented left to right or right to left and You can also display the X axis This is if you have a positive or a lot of positive and negative Values this is good, but it's just positive values probably you don't want to Show the X axis at all then you have choices like What to do and when the empty the cell is empty you can then choose like it's just totally ignore like it's a gap or It should treat it as like zero or it should just Span it through Then you can also choose the maximums and minimums of the Sparkline So here you can just say it should more or less automatically choose what is the maximum Minimum depending on the data or you can choose Select that it can choose the maximum or minimum for the whole group and the whole group has different maximums and minimums and can just choose the best and last alternative is to just Set the custom value for the minimums and maximums displayed About the implementation of it, so when I was implementing this this was like three major tasks First at Sparkline model And how the it's stored inside the cells Then of course, it's very important to add the ODA support and then Extend the ODA With new elements and attributes So they can be of course Exported imported saying is OXML Microsoft format Should support it for importing or exporting here is a little bit different because there is already support so I kind of started to do this first and then added to the Sparkline model accordingly a bit How the class diagram how the whole Works together so We have a class like Sparkline and which is Only has the data range and output cells or data range, which is what what is That I should take into account and the output cell is just where it should be displayed and then You have Sparkline group which can have multiple sparklines Associated and Besides that There is not much inside Sparkline group because most of the Attributes are the inside Sparkline attribute class and This is done because it's much easier inside undo redo change The Sparkline attributes class itself is thought instead of just Having multiple Sparkline group Which would need to copy and The data around so it's a little bit turned out. It's a little bit easier to do it in this way Then there is this class Sparkline list. It was just more or less like Holds weak pointers to the Sparkline group And a list of Sparklines that are associated with the Sparkline group This is generally just so that it can be easy easy accessed inside OXML and ODI filters and you can just quickly iterate through all the sparklines and write it into the file There's also Sparkline cell. I didn't write anything for this but Sparkline cell is just more or less a class that is instantiated for the one cell and Immediately associated with a sparkline. It should be one-to-one Relationship all the time so Sparkline cell is deleted Sparkline should also be deleted But I think maybe this is also Inside on the redo where you can just be there and allocate it quickly so I think that on the redoist When you undo it you can just unrefuse the Sparkline and when you redo it just reference it back So How the Sparklines are stored inside We have For the Inside card you have for all the columns you have like one multi-type vector That is and that always holds the values you have also other things like Comments that are inside this multi-type vector and of course the values itself So there's a new multi-type vector for especially for the sparklines What's special this multi-type vector is that when you have one column? It's a sparse data type so it only Allocates the the for the ranges The storage so when you have new range or extend the range you have one you Extend the big and big range so if you go to the end it doesn't allocate the whole the whole column vector, but just what is used and The same is like now for the sparkline so it doesn't need to use Unneeded Memory space Okay, I had to add to a lot of other undo redo actions here for the creation destruction of deleting of sparklines and sparklines group in this case I used a principle that reversible actions so that's Generally on a redo We'll add we create the action and undo it undo it so you have like positive and negative actions, and there is no other code besides like do one specific actions, but you have just first you do first if you Execute an action you redo it Or do it and then you can undo it So maybe I'll just show a little bit what you can quickly or can you do it at sparklines inside You can just select some data range at a new sparkline and you just select the way it should be displayed So because it also has like this feel action So we can also do this For the sparklines and it will be created for each row Same you can also do with the columns. So what is select when I said put the cursor on the Sparkline what is selected here is to show what is inside the sparkline group. So we have easier way to see So for example in this case, this is missing here. So this is not part of the sparkline groups, but it is here So here's another accidentally added You can see it with the sparkling you can also then Inside context menu you have a lot of actions here So you can delete a sparkline, which means it is just delete this sparkline one here and we'll leave a gap Or you can just delete the whole sparkline group And send it with the edit You can edit the sparkline group Sparkline itself or you can also for example We can ungroup it. So now we have different sparkline groups and if you are change change the Sparkline here. Now I have again this group it again. And now this is One sparkline group and this is another sparkline group And if you think that this shouldn't be like this you can group it again The same as at the beginning. Okay the next Chart data table This is a little bit shorter What's chart data tables are? Yes Okay, what chart of data tables are is below this The chart These are the data table below the chart area or the visualization area in some cases It can Replace also the x-axis on and there are some cases which still leaves the accesses Present like in the bottom one here. There is this excess x-axis These labels are still present, but the chart data table is drawn below it so chart data table is just The list inside the table all the data that is visualized by the chart as I said like this is position below the x-axis of charts and Can also replace the labels and This is also specified by the OXML. So most of the things are same properties that are inside defined inside the accesses map and There is not a much a lot of properties mainly the Poor properties that are unique to the data table. So this either is show horizontal or vertical border This is and then the horizontal vertical border is If you see on the top line of the top There are horizontal vertical border enabled, but on this left one only the vertical borders are enabled and horizontal borders Are disabled There's also at a show outline and show keys. I go back so show show outline is outline around the table, which is on the bottom This one has the outline enabled but there are other ones. They don't have any outlines and The last is show keys with keys is maybe not a good Description may general these are label legend symbols Which is called keys? inside Microsoft Office left to this and as you can see in the both right side Data tables have the keys and left one doesn't there's another properties which are just already existing properties from for the line and field properties and there's also Text properties so I can change the fonts line properties you can change how the lines will be shown like if what The thickness and if they should be dashed or dotted and feel is how the feel of the Text actually should be displayed so what the implementation Inside Chart so I added a new data table class, which is just responsible for the model. So it holds only the properties Of the data table And also of course the text field line properties Same but the most important here is that the data table view Which is just responsible for our for rendering The data table shape the data table shape just reuses the table shape That is already present For example inside the drawer. It's just the same shape and all what is all needed is just net properties from the data data table class inside to to the data table shape property Which tricky a little bit? a Little bit about undo redo in charts, which is a little bit differently handled as in card in charts Every time we do any change it creates for Copy of the model so what the only thing I have to do here is that I have to Allow the data table class To be closed. So cloning must be supported and Then everything else was already Working out of the box more or less Which is nice. You can quickly change it Don't worry about it, but yeah in the long run it could be a little bit memory Expensive, but I think it's fine Yeah, this is currently gray gray boxes are Fixed, but I have old file here that is still has them but generally what What we can do here is we can delete the data chart. Okay, first we have to edit normally as We added just insert But a table we can choose the properties and it will create some defaults to that a table Inside the chart and As I said, you can delete it. This is most what can you still do is add the properties So here you can choose the properties for example for the line Okay, any questions? Okay, so I just have one question related to data table Have you seen my regression bug reports and do you plan to fix them? Have you seen my regression bug reports about data tables and do you have time to fix them? Yes, I will I will look at them. I saw them that there are Accumulating and at some point I will go and fix all of them Okay, thanks too much. Thanks. Thanks for the presentation. I just saw it with the spark lines When the cell gets highest and right, would it be an interesting option to lay out vertically? Maybe automatically It's done cool any more questions