Ok, I was about to post some very minor bugfixes and do some api docs, but when this came up, I decided to halt the docs part. Since this seems to be a good time to do any major/semimajor design changes, here goes a few suggestions and questions - both from a stranger's perspective (given that I am new to this project):
* Seems ApplicationController can have only one instance of FreeMindContainer. Maybe we could share one ApplicationController over many FreeMindController, sort of like our web browsers which run multiple windows in the same process tree? Might help a few synchronization problems between user preferences (right now, if we run two instances of FreeMind and one changes user prefs, other might not sync up. Then later, when saving prefs on exit or something, those changes might be lost). * FreeMindContainer#isApplet() - while useful, I'd prefer if later on FreeMind makes use of other containers like text-based, or something else. So a similar but more generic method could be added here as well, isOfType(String). I know this is basically the same as invoking reflection on 'this', but for the sake of completeness it feels like it might have a place here. * ModeController#getActiveMapView() - shouldn't the return type be a MapView? * ModeController#getMenuBar()/getToolBar() - seems like we are implementing the entire menu for every mode. If so, should every new feature added require tweaks in the menues/toolbars of every single ModeController implementation? I was thinking may be we could assign a few attributes to every menu item/action or make them implement an interface so that different ModeControlloers can pick which item they want on their own. Not sure if this is actually possible, but could make maintaining features much easier if well done. * What is an "Active Map" for a ModeController? Does every mode of map have a separate "Active" map of it's own? * Usually, the close() method of a resource comes with the class representing that resource. However, here we have to call ModeController.close to close a MindMap object. Usually I see that kind of method attached to the MindMap object (like File objects have a close method, NOT a System.close(File) method). So it seems more intuitive to me that Map create/load/save/close methods should be in the MindMap class. createMap and loadMap could translate to create(ModeController) and load(ModeController) in MindMap, save and close could become non-static instance members. I know this would probably mean they simply wrap the corresponding calls in a ModeController, but it reduces the need for a ModeController object to be exposed in areas where it could be treated as an implementation details hidden inside a MindMap, simplifying codes. * The getIntProperty has a "default value" parameter, so how come the getProperty (presumeably the String counterpart) doesn't? * What is the exact distinction between a ResourceString and a PropertyString? Is it that one is readonly and the other isn't? Any reply at all would be appreciated - it would let me get a much better understanding of the project details and ideas. Thanks Reasamp On Mon, 14 Jan 2008 03:08:53 +0600, Dimitry Polivaev <[EMAIL PROTECTED]> wrote: > Hello, > > I have created a new design proposal attached to this > mail. I think that developing a new design is more > efficient than documenting the current one. (Two diagrams > demonstrating the complexity of the current design are also attached to > this mail). > > Although the document is still not perfect, I hope that it is good > start. And I want to post it today because I am quite busy on the next > three weekends. > > I hope to hear from you, > > Best regards, > Dimitry > >> Hi Dimitry, >> >> your mail is far to abstract for me. You only write: "it is everything >> too complex." without any concrete references. >> And if you find this references, I would propose that you spend your >> time better in documenting them or - at least - to >> write an email to me with the request for documentation or explanation. >> >> Regards, Chris >> > > ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace _______________________________________________ Freemind-developer mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freemind-developer
