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

Reply via email to