Mathieu Tozer's Dev Blog

Cocoa, the development of Words, and other software projects (including those dang assessment tasks).




Dictionary Management Design Notes


E-mail this post



Remember me (?)



All personal information that you provide here will be governed by the Privacy Policy of Blogger.com. More...



The UI of the dictionary management system.

As documented in my specifications document,

In the preferences menu, only the dictionaries that are applicable to the languages the user has defined should be shown, this is to avoid long lists of languages for the user to search through if the system actually supports many languages.

Disadvantage is that yes, you won't be able to 'browse what's available' but MOST people won't be bothered with that anyway.

The view will be bound to a something which will tell it which languages are defined. (The language array?) Something will take the language names and use them as keys or fields in a predicate which will fetch the dictionaries that are applicable to that language combination from the 'bag of dictionaries' in the managedObjectContext.

On the left hand side of the preferences pane will be a view displaying all these fetched dictionaries. On the right hand side will be a view of the objects on the left hand side that currently have their relationship set to the language object in question. Ie, it is being used in finding definitions. If the language is in the right hand view, then it should be visible, but greyed in the left hand side.

View:
The two 'available dictionary' tableviews
Language Chooser in the preferences - > dictionaries pane
The create new dictionary

Controllers:
This is always the tricky part.
I'll use the language array controller to see which languages are available.
The controller should manage the creation of the new dictionaries.

Model
Dictionary Objects
Some related to languages, some not.
A generic dictionary entity which more specific dictionary types can be children of.

I would also be nice to have the preferences in a separate nib file.

I need to decide which dictionaries I am going to support, and how. Actually, I should engineer it so that I don't have to make that decision at all. The software should be extensible.

So let's start by looking at managing whatever the dictionaries might become. Build the framework for the dictionaries and fill in the details later.

I have to think about what all dictionaries have in common.

Perhaps I should just directly bind the combo box to the languageArrayController, after all, it is likely that a user has been editing in a language and has decided to check or change the dictionary preferences. And there is no harm done in switching languages in the main view when changing preferences, in fact this could be a feature of the application. Kind of like a big context switch from language to language.


0 Responses to “Dictionary Management Design Notes”

Leave a Reply

      Convert to boldConvert to italicConvert to link

 


+RSS | dev blog | Portfolio

About me

My status

Previous posts

  • my del.icio.us
  • my flickr