Kim, it’s a D-E-M-O! Please remember that!

So I have essentially 15 days to finish this.  Actually, let’s be more precise.  I will need to finish this demo by May 18th.  I will then have the final report and defend my capstone on May 22nd.  Talk about pressure!

So here’s quick update on what I have done so far:

Spent two days trying to figure out why my Dynamic Text Field would not show up.  It’s because when you rotate the text field, you need to embed the font.

I had a moment of freak out yesterday.  After talking with Andy and Matt, I proceeded to head to the gym to work out.  Mind you this was 10 pm on Sunday night.  I guess my major problem at this point is defining on what a demo is.  The way I am building this prototype is how I would build the actual application.  This is a good thing because I do want to build this.  This is a bad thing because I am doing way more work then I need to at this point for only a DEMO.

I’m taking Andy’s suggestion and making up a list.  I talked to Elouise today and she made me feel better.  I am not going to concern myself with too much of the logic and the data handling.  It’s making the demo feel like what the actual application will do. I am currently finishing up the Day View with the dynamic text field.  After that is done, I will add a few more events to my XML.

I will post an updated timeline and what needs to be accomplish by tomorrow night.

I can do this!

XML, formatting data, and possibly extending the Appointment Class?

Over the past few days, I have been working on my XML and data handling.  I made up some fake information on in an XML file and was able to load it successfully in flash.  I figured out how to extract information from the XML.  In AS 3.0, XMLNode has been deprecated and is only used for backward compatibility.   Therefore, I could not use this class.  I used XML and was able to successfully extract information but it came to a price of having it be hardcoded.  This means that the I had to use the name of the elements in my XML file and if I were to change a name of an element, I will have to change it in the AppointmentManager class.

Now, I could go back and try to figure out a way to come up with a better solution but I decided not to.  This is because this application is only a demo!  In addition, when I build this into a full working application in the future, I will be using a database.  However, I have been toying with the idea of using Google Calendar data.  I would have to xslt the data though.  But that is off topic and not necessary for the demo.

Calendar data may be simple but it has it’s own little complexities.  As I am working through the data part of this project, I am toying with the idea of have various Appointment classes.  There would be the super class – Appointment followed by sub-classes such as AllDayAppointment. The reason for my thinking thus far is because there are certain information that is not inherent in all types of appointments/events.  For example, a birthday event that only reoccur once a year, is an all day event, and will never have an end is different from a family meeting that happens once a week and may last only a month.  I guess I don’t want my current Appointment class to have empty strings.  Depending on the logic of how I handle my data, I may or may not have various Appointment classes.  I will just have to see.

Thoughts and Reflection: As I work on this more and more, I have to keep reminding myself that this is only a demo.  There are so many thoughts that involve: “I should have…” or “I wish…” or “What was I thinking” and “If only I had more time…”  But so far, it has been a great learning experience.  I only have 2 quarters (6 months) to finish design and implementation.  Unfortunately, time is a factor and has greatly influence my decisions.  Once I get my degree and get a job, I can then take the time to really plan and design the Sundial Calendar Application out and then build it.  I want this application to be different from traditional calendar applications.  It’s time that someone started thinking outside the box.

Some visual updates

Here are some visual updates to give a better sense of what I have been doing.

The picture below is a the Sundial Layout that I created in Illustrator. The key on the left with the colors wil be used for the bands. This will make more sense when you look at the next picture.

The picture below is what I built in Flash thus far. So far I have built only the views. The data is what I am currently working on right now and interaction will come last.

Sundial Application Flow Diagram – This is a simple diagram showing the flow and the interaction.

Sundial UML – Here is the UML I am working on thus far. This is nowhere complete and is still being worked on.

A little help from my friends

When I realized I had come to a stopping point with my views and had to go back to the data part, I knew I was going to need some help.  I am very fortunate to have friends who are very good coders which I can turn to so that I can bounce off ideas and get suggestions and feedback.  I was able to meet with one of them on Monday and get some help.

Things I was stuck on:

  • UTC – how to format it
  • Day View – The day view is very complex.  It is not as simple as the other views such as year or month.  I was debating on whether to have a Day Manager class to take care of the day due to the complexity.

Things that were resolved:

  • UTC – Matt K was able to help me with it.
  • Day View – Going to write a Day Manager class.

Suggestions:

  • Write a Model Locater class to keep maintain the instances.  This is not based on the Cairgorn.  Therefore a singleton is not needed.

At this point, I’m just trying to get my data working.  I’m not sure about the model locator class.  I will be hashing about a diagram of my classes so far and will post them up.

Thanks to Matt and Andy for the help so far.

Day View

**I had started writing this a few days prior but never got around to finishing it. Unfortunately, I couldn’t find it till now. It was on the page section – unpublished. Weird. But here it is!

The Day View is proving to be a little tricker than expected and has caused some possible changes in the rest of the views.

My first step was figuring out how I would have the three events for overlapping for the specified time. I ended up creating three views for the day views. The first view is for one event and takes up the whole segment. The second view overlaps the first view in half – so that you have two events. The third view overlaps the first and second view in the middle, so that the block is split into three. It’s pretty much a layering process and it looks like the segment is being split into two and then three.

Second step – masking! I ended up doing using the same trick of using different frames. It works.

Third step – how to pull the day events all together. At this point, I have only one event showing. Unfortunately, I have to go back to the data part.