Development
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 CVS 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 FreeMindThere are different possible ways of taking part in the FreeMind development: the project needs people for:
Also:
Getting started as a developerSee Getting started as a developer. Getting started as a testerSee Getting started as a tester. Organization of FreeMind developmentInitially, every active developer of the core team works on his own CVS branch. Our intermediate results are published as our "alpha versions". We use forum Open Discussion and section Experimental_versions on this wiki page to communicate them. Further details about the FreeMind release process are described on the FreeMind Release process page. Experimental versionsCurrently, there are the following experimental versions available. They are not meant for productive use; use at your own risk! FreeMind 0.9.0 beta 9 with Node Attributes, Map Filters and WYSIWYG rich text node editorAttaching of named attributes to every node, filtering of the displayed map content based on node text, node icons and node attributes, HTML based rich text formatting for nodes and notes, fit for Java6, a script editor is included in the script plugin --Rben13 10:06, 3 Sep 2007 (PDT) Conceptual remarksOriginal vision of Joerg MuellerJoerg 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:
One may think of extending FreeMind to work with networks as opposed to trees only, an example of this being Topic Maps (ISO). 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. Why may FreeMind be more relevant than some other open source applications
There are many efforts to create new text editors, text processor and the like. While this activity is not without value, it does not fill that big value gap as mind mapping application. Take, for instance, text editors like JEdit. There are already well estabilished text editors like Emacs or Vim, and there are many others. It's not that these editors would be perfect, far from that, but they're still pretty useful and with some training users can become very efficient with them. With text processors, the thing is that most users in companies have already Microsoft Office for free. What does that mean? That means that the individual users do not have to pay for the MS Office, and they cannot effectively decide to use other Office platform either because of the value of easy sharing. Furthermore, there are competing free Office platforms like KOffice, OpenOffice or AbiWord. In mind mapping, the situation is quite different. You do not get commercial alternative granted in companies, unlike office applications. The point here is that most of MS Windows users, the mainstream, do not have a mind mapping application yet. For them, starting to use FreeMind is not a switch from Microsoft product to alternative product. It is a switch from scattered documents in incomparable and hard-to-overview formats to one document with unprecedented order and transparency - FreeMind's mind map. Therefore, I am expecting a growth of interest of free developers in developing and using this application. Furthermore, even though Java is quite slow and memory hungry, it solves the never ending quarrel between religious die-hard fans of different computing platforms, which I have first experienced with Atari 800 XL versus Commodore 64 battle, later IBM compatible versus Commodore Amiga battle, and nowadays Windows versus Linux battles. MiscTo create proper copyright noticeA source file may be viewed as a sum b + d1 + d2 + ... + dk, where b is the basis, di are deltas (or patches), and the plus operator is the operator of applying a patch. The basis and each delta have their own copyright holder and the year of copyright. If there is only one author and one year, then the copyright notice is simple. If there is only one author and more years, then the copyright notice may look like
which is to be understood as
If there are more authors, then the copyright notice consists of more lines, like
Not all changes are eligible for copyright. If a change is small, then it does not make sense to add a line to the copyright notice for it. Copyright notice is not required for copyright to hold. It makes claiming your right at court easier. The correctness of these instructions is not granted. They are subject to improvement as we see fit. --Danielpolansky 11:29, 3 Jun 2005 (PDT)
To translate FreeMind into your languageSee Translation.
Libraries and tools used in FreeMindSources of free iconsFreeMind uses (a) tool icons used in the toolbars, and (b) icons used in nodes. Especially for the icons used in nodes, a good comprehensive source of free icons is needed. FreeMind uses PNG icons, in the size of 16 x 16. Nowadays many icons are drawn in SVG vector format first, and converted to 16 x 16 bitmap images afterwards. Ideally, it would not be the task of FreeMind team to draw icons; this task should be outsourced instead. Whether this is a realistic assumption remains to be seen. Some links on the sources of free icons follow.
ImplementationTo obtain focus for selected node in reliable mannerRequesting focus for NodeView using requestFocus() method is unreliable. A reliable way of doing that has been implemented in the method getController().obtainFocusForSelected(); Requesting focus using newSelected.requestFocus(); where To set the class load path in manifest.mf in jarIn the source folder tree of FreeMind, there's a file MANIFEST.MF. This file tells what should happen with the freemind.jar when java tries to run the jar archive. The file may look like Manifest-Version: 1.0 Main-Class: freemind.main.FreeMind Class-Path: silk.jar nanoxml.jar ekit.jar kafenio.jar kafenio-config.jar kafenio-icons.jar gnu-regexp-1.1.4.jar Created-By: Joerg Mueller A tricky thing about the file is that the length of the lines can be at most 72 characters. That creates difficulties when specifying Class-Path. In the exaple above, the first line of Class-Path is set in such a way that it has 70 chacters. That has been achieved by putting spaces before the actual list of classes. In the freemind.jar, the file can be found in the folder META-INF. Here you can check if the manifest has been created correctly. Deleting nodes and branches in FreeMindSince version 0.8.0, it is possible to delete a whole branch of nodes by pressing DELETE. When a user accidentally presses DELETE and does not notice that, they may loose considerable amount of data. For users using FreeMind as a knowledge base or a semi-structured database, being able to delete whole branch at one keystroke is problematic and unusual; in filesystem browsers, users are asked for confirmation before the file is deleted by the system. However, some users use FreeMind as a mind mapper and are glad to be able to delete nodes just by pressing DELETE. There are several solutions to this problem.
The confirmation would be requested both for keystrokes DELETE and CONTROL + X, that is the actions Delete and Cut. More development pagesTo see all development pages, have a look at the category Development, by clicking on the link at the bottom of this page. |