Bleh. I think I have more questions than answers. Sorry for the length, I tend to "type out loud" and responses mirror my (usually derailed) train of thought.
I was thinking along the lines of Ptz's suggestion for "boundary dates" for each event, where you set the start and end days. The user could optionally enter the start and end time (hours, minutes, seconds) as well. This would serve two purposes and fulfill two feature requests -- set the duration of the event, but also allow for "fuzzy dates." There might be a "simple mode" where you can just set the duration (as you do in the 0.1.x beta) by typing in a # and selecting the time interval, and Aeon would know / pre-fill the end day / time.
If the event in question is dependent upon a prior event's boundary date(s), we're then talking about a "linked" event.
When you link an event, either a sheet or popup window could appear (or perhaps the Event Inspector could then display this information) where you specify the rule for the link, where the rule is a measurement of time.
In my mind, you would either select a checkbox marked "Fixed" and enter the specific gap of time (1 year, 3 months, 2 days, 21 hours, 18 minutes, 36 seconds, for example), OR you select a checkbox marked "Fuzzy" and enter the information similar to how you specify the duration in an Event in the current beta -- "2 hours" or "2 days".
Aeon Timeline would then know that these 2 events are linked and must be separated on the timeline by the value of time you've specified (whether highly specific or totally vague).
That said, I don't know how to handle the situation where Event A and Event C are linked together, and Event B and Event C are also linked together, and the link "gap" you specify between A & C and B & C result in a conflict....
How to Link Events in the UI
- Option 1:
In OS X, holding down Command+Option keys + Drag an item will create an "alias" of that item that is linked to and dependent upon its original's location, so my first thought was to use that key combination and drag the event in question in the Central Pane to the event it is dependent upon, but the problem is that you may be linking events that are years apart, which could require an awful lot of scrolling in the Central Pane, so, that idea seems to be out of consideration.
- Option 2: a user control in the Event Inspector, perhaps a popup menu similar to the way you create links in Scrivener -- a series of hierarchical "flyout" menus that let you drill down in your project (timeline, in AT's case) to select the item you want this Event to be linked to.
I'm not sure how to organize the menu though, as we may be talking about a timeline that spans 1,000 years (hey, some people might be really ambitious!), so I imagine it would require some significant programmatic effort to determine how to build out this menu, something like:
- If the timeline spans more than 10 but less than 100 years, you could break out the top-level by decades, second level by year, third level by month, fourth level by day, and the fifth level would list the events (where the name matches the Event's title, and could also display the specific date / time for that event).
- If the timeline spans more than 100 years, you could break out the top-level by centuries, the second level by decade, third level by year, fourth level by month, fifth level by day, and the sixth level would contain one entry per event (where the name matches that Event's title).
- Option 3: A button that says, "Link Event..." and when clicked, opens up a copy of the Central Pane view, where you scroll to the event in question, and double-click on the Event you want to link to, which then closes this second Central Pane view.
- Option 4: A button that says, "Link Event", which turns your cursor into a link icon, and you scroll the main Central Pane to find the event you want to link to, then double-click on it to link the events, exit the "Link" mode, and display the options for how / by what gap of time these events are linked.
I have questions though that I've no idea how to answer...
Does entering just ONE "linked" event (with or without a fuzzy date) automatically require you to make ALL your events linked and specify the rules for each event's relationship to other events, or would Aeon be able to automatically adjust every event accordingly, even if it wasn't linked?
For example, if Event A needed to happen 28 days before Event B, and you moved Event B further back in time by 2 days, would Aeon automatically adjust Event C, D, E, and F (which were NOT linked) by 2 days to keep everything in synch with its original layout, or would it just auto-adjust Event A and leave C, D, E, and F where they were?
If it can automatically adjust every event just based on having ONE link in your timeline, that's awesome, but what about other events that should NOT be adjusted (meaning, you need that event to stay fixed to the date & time you've specified, with everything else "floating" around it in time)?
In that case, I think we'd need an option in the UI for each event, where the user selects whether the event's date is "fixed in time" (and should not be auto-adjusted) or if it "floats" in time (and should be adjusted if other events are adjusted).
If you select "fixed in time" then that event is never auto-adjusted by Aeon, even if a prior or subsequent event was moved around the timeline.
Maybe there isn't even an automatic adjustment when you move linked events; perhaps it's a menu item / specific command you have to explicitly execute after moving events around the timeline, at which point Aeon goes through each event and all the links and figures out where things should be in relation to each other based on the data you've already provided for each event and link. When it's done figuring all this out, it can report back all the events that will be moved, listing their old and new date/time, and requiring you to click another button to actually adjust them in your timeline.
I think ideally it would let you select / deselect specific events in that report just in case there are some you don't want to be adjusted.
Anyway, from a graphical perspective, linked events can probably be reduced down to a fairly simple representation in the Central Pane.
We've all seen the little chain-link "infinity" symbol used to represent links in various applications. It's usually horizontal, but given Aeon's Central Pane, we'd need it vertical. The little link icon can appear before the title of the event, with an arrow on top (pointing upward) if the Event is "linked" to a prior event, and an arrow at bottom (pointing downward) if the Event is "linked" to a subsequent event. (And obviously, it would need to display both an up and down arrow if it's linked both ways.)
That's all that I have for now... my last brain cell is now fried and on strike.