Merge with
NakedObjects?
UserInterfacePatterns
Here are some thoughts on this topic:
Business objects should be behaviorally complete. In other words, they must implement all business logic that applies to them.
The UI then provides generic views onto the business objects. There are several ways to approach this. One way is described at
http://www.nakedobjects.org. Although I am still understanding their work, it appears that a limitation of their approach is a lack of ability to search for some subset of objects to manipulate or to manipulate more than one object at a time.
More work needs to be done on generalizing UI patterns so that they can be applied successfully to
TheDataIsTheUserInterface.
Another example of
TheDataIsTheUserInterface is [the
PowerOfPlainText] the classic Unix tradition of storing all data in ASCII files that can be edited by a text editor. Die-hard Unix sysadmins tend to mistrust any graphical or other tool built on top of these files in order to make editing them more convenient, often because they have experienced situations where these tools break, causing the system itself to break.
--
DaveOrme
Searching should be accomplished using generic first-class search objects. It should be possible to search through anything that implements either allInstances or allObjects. One way to implement searches is to use the
VisitorPattern and have Searches as your visitors.
Selecting and manipulating more than one object at a time should be done using a non-broken UI. Something that isn't WIMP. It's really a no-brainer since all operations (moving, deleting, copying, renaming, injecting, flattening) should be defined over a set or graph of objects. -- RK
See
CascadingDialogBoxesAntiPattern,
WidgetsRepresentRelationshipsInTheModel
See
http://www.nakedobjects.org
CategoryUserInterface