Development: Difference between revisions

From FreeMind
Jump to navigationJump to search
No edit summary
 
(32 intermediate revisions by 9 users not shown)
Line 1: Line 1:
<table><tr>
<table><tr>
<td valign=top>
{{Navigation_bar}}
<td>&nbsp;
<td width=600>
<td width=600>


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.cvs.sourceforge.net/freemind/ browse CVS repository].
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.


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.
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.
Line 11: Line 8:
==Contributing to FreeMind==
==Contributing to FreeMind==


There are different possible ways of taking part in the FreeMind development: the project needs people for:
See [[Contributing]].
* developing
* testing
* documenting of the program
* translating its interface
* translating its documentation in foreign languages
 
: ''Currently, FreeMind project is after a feature freeze, heading quickly to the testing phase. An important current contribution is testing.'' --[[User:Danielpolansky|Dan Polansky]] 23:59, 31 Aug 2007 (PDT)
 
Also:
 
* releasing screenshots: if you have a nice screenshot of FreeMind, please help by releasing it under an open-source licence in [http://commons.wikimedia.org/ Wikimedia Commons].


==Getting started as a developer==
==Getting started as a developer==
Line 32: Line 18:
See [[Getting started as a tester]].
See [[Getting started as a tester]].


== Organization of FreeMind development ==
==Reporting bugs==


Initially, every active developer of the core team works on his own CVS branch. Our intermediate results are
See [[Reporting bugs]].
published as our "alpha versions". We use forum [http://sourceforge.net/forum/forum.php?forum_id=22101 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.
==Organization of FreeMind development==
 
=== Experimental versions ===
 
Currently, 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 editor====
Attaching 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
* [https://sourceforge.net/forum/message.php?msg_id=4190697 Discussion forum thread]
* [https://sourceforge.net/project/showfiles.php?group_id=7118&package_id=188772&release_id=488111 Downloads]
--[[User:Rben13|Rben13]] 10:06, 3 Sep 2007 (PDT)
 
==Misc==
 
 
 
=== Creating proper copyright notice ===
 
A source file may be viewed as a sum ''b'' + ''d<sub>1</sub>'' + ''d<sub>2</sub>'' + ... + ''d<sub>k</sub>'', where ''b'' is the basis, ''d<sub>i</sub>'' 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
 
<blockquote>
Copyright © 2003-2005 Big Author
</blockquote>
 
which is to be understood as
 
<blockquote>
Some parts of the sum are copyrighted in 2003, some perhaps in 2004, and some certainly in 2005.
</blockquote>
 
If there are more authors, then the copyright notice consists of more lines, like
 
<blockquote>
Copyright © 2003-2005 Big Author, <br>
Copyright © 2005 Captain,
</blockquote>
 
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.
 
--[[User:Danielpolansky|Danielpolansky]] 11:29, 3 Jun 2005 (PDT)


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 [http://sourceforge.net/forum/forum.php?forum_id=22101 Open Discussion] to communicate them.


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


=== Libraries and tools used in FreeMind ===
==Experimental versions==


* [http://nanoxml.cyberelf.be/ NanoXML]
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].


===Obtaining focus for selected node in reliable manner===
==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 <code>obtainFocusForSelected()</code> of Controller. A typical call in ControllerAdaper.java is  
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  
Line 104: Line 44:


where <code>newSelected</code> is a NodeView is unreliable, though most often works.
where <code>newSelected</code> is a NodeView is unreliable, though most often works.
===Setting class load path in manifest.mf in jar ===
In 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.


== More development pages ==
== More development pages ==

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.