Hi,We are using Infragistics 15.2 in our vast project. We are facing a challenge with UltraWinSchedule controls for UltraDayView.The UltraDayView controls is binded with UltraCalendarInfo and it will take care of resources and appointments for that. We have created a week control using the existing UltraDayView control and changing the grouping style according the Day or Week in a view. We have applied a caledar look with some customized appearance and we are not using the Outlook style for that. We have also used a CreationFilter to draw the appointments, tooltip, subject, etc. We tried expanding the DayViewHeaderAreaUIElement in creation filter but didn't succeed. How can I have a similar Week like in Outlook. Here we are not allowed to use Outlook style because in outlook style the same is already been created.Could you please help us on this as early as possible?Thanks & Regards,Ashish
Hi,
It may not be possible to do this. CreationFilters are a powerful tool, but they have some limitations and one of those is that you are only changing the control's drawing. So if you want to add a new element into the control, you have to move other elements around to make room and the control won't necessarily work right if you move certain elements.
I'd be happy to try it out and see if I can create a sample that does this, but I'd like to make sure I understand exactly what you want. You posted a screen shot here, but I'm not sure what I am looking at. Are those owners at the top there? Is that the existing control already doing that? Or is that the extra row you want to add in? If it is, then it seems like you also want that row to be interactive. Presumably that arrow and the x there would be clickable. Is that right?
If those are not already owners, then have you considered using the Owners functionality instead of trying to do this with a CreationFilter?
Hi Mike,
Appreciate your quick response on this, thank you.
Mike Saltzman said:Are those owners at the top there?
Mike Saltzman said: Is that the existing control already doing that?
Mike Saltzman said:Or is that the extra row you want to add in?
Mike Saltzman said: If it is, then it seems like you also want that row to be interactive.
Mike Saltzman said:Presumably that arrow and the x there would be clickable. Is that right?
There is CreationFilter created for this to draw appointments, its subject, its tooltip, etc. I have tried expanding the height of DayHeaderAreaUIElement/DayHeaderUIElement to accommodate day name and day number on Day header but it seems the height couldn't be changed. Because in day calendar I want the default behaviour of the control like in attached screenshot but for week calendar, as I'm changing the grouping style it seems not working. Please find an attached CreationFilter (few methods are not implemented) that I'm using for this.
I've attached the screenshot of Day and Week calendar that I'm using in my application. There might be N number of owners to be displayed in Week calendar. Also, after changing the SelectedDateRanges property to multiple days to create a week calendar using UltraDayView control, the owner separator is missing, there is no way to identify the separation between the owners, you can check this in attachment. Could you please provide a sample modifying an attached CreationFilter as per my requirement if possible? If not, is the latest version of infragistics could do this?
Thanks & Regards,
Ashish
Hi Ashish,
I'm afraid I'm still not sure exactly what you want. I couldn't really do anything with your CreationFilter since this code appears to have invalid preprocessor directives in it and when I removed those, the code is still references other classes that I don't have. So it's not very useful.
I created a small sample project with a DayView with 2 owners. The day headers already show both the Day name (abbreviated) and the number (if there is enough horizontal space).
In your screen shots, they are showing only the full day name. So presumably you changed this via some property. So what you want is to leave the day names as they are and then show a second row of headers underneath the day names that shows the date or the day number? Is that right?
Regarding the separator between owners - I'm not seeing a separator in my sample, regardless of whether I select a week or a single day. Is that something you did with your CreationFilter?
Thanks for the sample and sorry for the confusion. The creation filter was for your reference only that was partially implemented.
Mike Saltzman said:So what you want is to leave the day names as they are and then show a second row of headers underneath the day names that shows the date or the day number? Is that right?
Also please do not consider the MS Outlook screenshot which was attached in initial post.
Mike Saltzman said:Regarding the separator between owners - I'm not seeing a separator in my sample, regardless of whether I select a week or a single day. Is that something you did with your CreationFilter?
Okay, so I started to take a look at this and I'm still not sure if this is possible. If it is possible, it's not going to be easy.
You mentioned that you tried to expand the DayViewHeaderAreaUIElement. There's no UIElement by that name, so I assume you meant the HeadingAreaUIElement. But expanding this element would be extremely tricky. The element encompasses the top part of the DayView. So that includes the owner header, the day headers, and the AllDayEventArea. Increasing the height of this element would make it overlap the elements below. So that means you would also have to adjust the Y and the height of the DayAreaUIElement, which is where the timeslots display. In addition, the TileSlotDescriptorUIElement on the left would also have to be adjusted in order to line up with the time slots. So this would be very complex and it's entirely possible that this would not even work correctly, since the control might have it's own internal metrics which do not account for resizing those elements.
A simpler option would be to leave the height of the HeadingAreaUIElement and adjust the height of the AllDayEventAreaUIElement. So the headers space is essentially taken away from the AllDayEventArea, instead of messing with the DayAreaUIElement and the time slots.
You would then have to create a UIElement for the header. You will probably want to derive a class from HeaderUIElementBase. You'd have to override PositionChildElements on this new UIElement and add a TextUIElement and apply whatever text you want to it.
Frankly, I think this is probably a lot more work and a lot more difficult than it's worth. I spent some time trying to whip up a sample but I ran into a lot of very time-consuming coding issues, so this is going to be beyond the normal scope of what we can do in a support case.
You can Submit a Feature Request and maybe we can add a feature for this in some future version.
Since I did a bunch of experimenting with this, I figured I'd post my sample here in case you want to continue with it.
Basically, I got as far as adjusting the positions of the HeadingAreaUIElement and the AllDayEventAreaUIElement. And I even added in a HeaderUIElementBase for each day.
My header UIElement doesn't display anything though. You'd have to implement InitAppearance, PositionChildElements, and perhaps some other methods in order to get it to show the background and text. And it would presumably need a Caption or Text property, which you would set when you create it.
Okay... let me know how it goes. :)
Thanks for the sample. I will take this for my reference and will try adding new UIElement as per your suggestion and check if it works.