Development: Difference between revisions

From FreeMind
Jump to navigationJump to search
No edit summary
 
(398 intermediate revisions by 78 users not shown)
Line 1: Line 1:
=== To get the latest beta version of FreeMind ===
<table><tr>
<td width=600>


[http://freemind.sourceforge.net/testversions/ Here].  
The development of FreeMind is coordinated using FreeMind's [http://sourceforge.net/projects/freemind/ project page] at SourceForge, and also using this wiki. At wiki, we have '''[[requests for enhancements]]''' page; there is also [http://sourceforge.net/tracker/?group_id=7118&atid=357118 requests for enhancements] (RFEs) page at SourceForge (not preferred). You can [http://freemind.git.sourceforge.net/git/gitweb.cgi?p=freemind/freemind;a=summary browse] our new [[GIT]] repository.


=== To compile Freemind on your own ===
We also use SourceForge for [http://sourceforge.net/tracker/?group_id=7118&atid=107118 bugs],  and [http://sourceforge.net/forum/forum.php?forum_id=22101 open discussion forum]. We do not use the documentation part there as we use this wiki instead.


If you are a developer, just download the sources, unpack them,
==Contributing to FreeMind==
find the folder with the file build.xml, and let run the commant
ant in that folder.


If you want to be guided and get all the things you need to
See [[Contributing]].
take care of described in detail, see [http://freemind.sourceforge.net/docs/compile/windows/Quick%20guide%20to%20compiling%20Freemind%20on%20an%20XP%20system.html guide] prepared for you
by Bob Alexander.


=== To use concurrent version repository (CVS) with Eclipse ===
==Getting started as a developer==


Check out the [http://freemind.sourceforge.net/docs/Using%20CVS%20via%20Eclipse/index.html guide] by Bob Alexander.
See [[Getting started as a developer]].


When working with CVS, remember that it is difficult to change directory and file names under CVS. Moreover, it not easy to remove files completely. Therefore, pay attantion when checking files in. The project manager thanks a lot.
==Getting started as a tester==


=== To become a developer ===
See [[Getting started as a tester]].


Due to project reasons, we cannot make you a developer with CVS access of FreeMind directly. You have to follow the following steps:
==Reporting bugs==


* create a SourceForge user account.
See [[Reporting bugs]].
* start to discuss the change/feature/bug in our [http://sourceforge.net/forum/forum.php?forum_id=22101 open discussion forum].
* if the topic is discussed and hopefully accepted, start to change the actual CVS code
* at an early stage of your implementation (and testing), put a version into the patch section of sourceforge and/or send it directly to the current project manager. As this is an open project it may be the case that you have to wait a little time for the first responses, but you should get support, comments and help from the project members soon.
* After having successfully developed and integrated some items, you get the developer rights at the sourceforge page to continue our good work. But this should not change the steps described above.


=== Development resources ===
==Organization of FreeMind development==


* [http://freemind.sourceforge.net/javadoc/index.html API documentation]
Initially, every active developer of the core team works on his own GIT branch. Our intermediate results are
* [http://freemind.sourceforge.net/Freemind-development.html Obsolete development mind map]
published as our "alpha versions". We use forum [http://sourceforge.net/forum/forum.php?forum_id=22101 Open Discussion] to communicate them.
* [http://freemind.sourceforge.net/Freemind-development.mm Obsolete development mind map for download]
* [http://freemind.sourceforge.net/Freemind-development-exported.html Obsolete development mind map exported to HTML with folding]


=== Modular model - view design ===
Further details about the FreeMind release process are described on the FreeMind [[Release process]] page.


The architecture of FreeMind makes it possible that FreeMind becomes general tool for editing tree-structured data, that is mind maps, XML/HTML documents, folder trees etc. in future.
==Experimental versions==


All these kinds of data would be presented to the user as a mind map. Model-View-Controller design makes it possible for you only to write so called model of the data structure, without caring for the visual representation. Currently, mind map mode and file mode are implemented.
Currently, there are no experimental versions available. The latest release candidate can be downloaded from [http://sourceforge.net/project/showfiles.php?group_id=7118 Files section].


=== Original vision of Joerg Mueller ===
==Obtaining focus for selected node in reliable manner==


Joerg Muller is the original author of FreeMind, developing it up to the version 0.4.0. Here follows what he's got to say on his original vision:
Requesting focus for NodeView using requestFocus() method is unreliable. A reliable way of doing that has been implemented in the method <code>obtainFocusForSelected()</code> of Controller. A typical call in ControllerAdaper.java is


: What I had in mind when I began to write FreeMind, was creating a collaborative mind where people can intuitively share there ideas, knowledge and thoughts with each other. Of course FreeMind is only a first step into this direction, but I did this first step. Now a Mode must be implemented that makes collaboration over the Internet possible, maybe using the Topic-Map standard. I think linear text is a very poor way of representing knowledge, and by using trees and networks, visual representation, internet collaboration and open source we should be able to create some kind of a collaborative mind.  
  getController().obtainFocusForSelected();


: FreeMind now has evolved from a specific Mind Map Editor to a generic editor for tree structured data. I want FreeMind to become for tree structured data what emacs is for linear data (ie. text).
Requesting focus using


One may think of extending FreeMind to work with networks as opposed to trees only, an example of this being Topic Maps (ISO).
  newSelected.requestFocus();


Daniel Polansky: Joerg's vision of FreeMind becoming Emacs for tree data is intriguing, but rather far fetched at the time. You would need to provide scripting facility and at least many basic operations, like upcase, downcase, replace and many others. It is even not evident that this goal valuable compared to other goals - there many quite obvious and still missing features.
where <code>newSelected</code> is a NodeView is unreliable, though most often works.
 
== More development pages ==
 
To see all development pages, have a look at the category Development, by clicking on the link at the bottom of this page.
 
[[Category:Development]]

Latest revision as of 19:04, 28 May 2011

The development of FreeMind is coordinated using FreeMind's project page at SourceForge, and also using this wiki. At wiki, we have requests for enhancements page; there is also requests for enhancements (RFEs) page at SourceForge (not preferred). You can browse our new GIT repository.

We also use SourceForge for bugs, and open discussion forum. We do not use the documentation part there as we use this wiki instead.

Contributing to FreeMind

See Contributing.

Getting started as a developer

See Getting started as a developer.

Getting started as a tester

See Getting started as a tester.

Reporting bugs

See Reporting bugs.

Organization of FreeMind development

Initially, every active developer of the core team works on his own GIT branch. Our intermediate results are published as our "alpha versions". We use forum Open Discussion to communicate them.

Further details about the FreeMind release process are described on the FreeMind Release process page.

Experimental versions

Currently, there are no experimental versions available. The latest release candidate can be downloaded from Files section.

Obtaining focus for selected node in reliable manner

Requesting focus for NodeView using requestFocus() method is unreliable. A reliable way of doing that has been implemented in the method obtainFocusForSelected() of Controller. A typical call in ControllerAdaper.java is

 getController().obtainFocusForSelected();

Requesting focus using

 newSelected.requestFocus();

where newSelected is a NodeView is unreliable, though most often works.

More development pages

To see all development pages, have a look at the category Development, by clicking on the link at the bottom of this page.