FreeMind
- フリーのマインドマップ作成ソフト -
訳注)一部に未訳箇所があります。[Rev.0.1]
FreeMind
ホームページ
ファイル操作
新規マップ
Ctrl+N
マップを開く
Ctrl+O
保存
Ctrl+S
名前を付けて保存
Ctrl+Shift+S
印刷
Ctrl+P
閉じる
Ctrl+W
終了
Ctrl+Q
前のマップへ
Alt+Shift+LEFT
次のマップへ
Alt+Shift+RIGHT
HTMLにエクスポート
Ctrl+E
枝をHTMLにエクスポート
Ctrl+H
枝を新規ファイルにエクスポート
Alt+Shift+A
履歴の最新ファイルを開く
Ctrl+Shift+W
編集
Find - Ctrl+F
Find next - Ctrl+G
Cut - Ctrl+X
Copy - Ctrl+C
Copy single - Ctrl+Shift+C
Paste - Ctrl+V
MindMap mode - Alt+1
Browse mode - Alt+2
File mode - Alt+3
ノード書式
Italicize - Ctrl+I
Bold - Ctrl+B
Cloud - Ctrl+Shift+B
Change node color - Alt+Shift+F
Blend node color - Alt+Shift+B
Change node edge color - Alt+Shift+E
Increase node font size - Ctrl+'+'
decrease node font size - Ctrl+'-'
ナビゲーション
Go to root - ESCAPEMove up - UPMove down - DOWNMove left - LEFTMove right - RIGHTFollow link - Ctrl+ENTERZoom out - Alt+UPZoom in - Alt+DOWN
ノードの移動
Move node up - Ctrl+UPMove node down - Ctrl+DOWNMove node left - Ctrl+LEFTMove node right - Ctrl+RIGHT
ノードの追加
Add sibling node - ENTERAdd child node - INSERTAdd sibling before - Shift+ENTERAdd new parent - Shift+INSERT
ノードの編集
Edit selected node - F2Edit long node - Alt+ENTERJoin nodes - Ctrl+JToggle folded - SPACEToggle children folded - Ctrl+SPACESet link by filechooser - Ctrl+Shift+KSet link by text entry - Ctrl+KSet image by filechooser - Alt+K
ウェブサイトへのFreeMind
アプレットのインストール
訳注)
FreeMind 0.9.0ではインストール済みのため、訳出しません。
FreeMindアプレットの使い方
バージョン0.6.5における
インターフェイスの変更点
訳注)FreeMind 0.9.0より古いバージョンの情報については訳出しません。
訳注)FreeMind 0.9.0より古いバージョンの情報のため訳出しません。
訳注)FreeMind 0.8.0以前の情報のため、訳出しません。最新の日本語翻訳者は、Googleコード「FreeMind日本語化 <http://code.google.com/p/freemind-ja-localization/>」を参照。
Ctrl + Fで検索。
Ctrl + G で次を検索。
マップ全体を検索するには、Escを押してから検索。
→でノードを展開。
改行つきの短い複数行ノード
Line,
and second,
and yet another will do,
so what do you think of that?
リッチテキストノード
アプリケーション |
楽しさ |
FreeMind |
高 |
L*tus |
低 |
このノードにはノートが付いています。「表示」メニューで画面下部に表示して使います。ノートは完全に隠れているので、マインドマップに使えるスペースを減らすことができます。長文の入力にはマインドマップをきれいにしたままテキストを入力する最も良い方法です。
訳注)日本語環境では動作しません。
訳注)日本語環境では動作しません。
mailto:info@freemind.asia
mailto:info@freemind.asia?subject=FreeMindのヘルプドキュメントについて
訳注)FreeMind 0.9.0日本語環境では動作しません。2つのノードを選んでCtrl+Lをお薦めします。
A new search and replace dialog enables to quickly search for text fragments and to replace them.
Its functionality includes
訳注)Mac OS X 10.6 Leopardでも動作します。
訳注)この機能を使うには、メモ帳(ノートパッド)のようなHTML機能のないテキストエディタからペーストする必要があります。
訳注)「HTMLをペーストするとプレーンテキストとしてペーストされます。さらに、HTML中のリンクは、リンクつきの新しい子ノードとしてペーストされます。」
という意味ですが、FreeMind 0.9.0でHTMLをペーストするとHTMLテキストでペーストされるため、この説明は古いFreeMindのものかもしれません。
訳注)FreeMind 0.9.0では、このようにペーストされないため、訳出しません。
カーソルを上下左右に移動するには、矢印キー。
最初の兄ノードに移動するには、PageUp。
訳注)最初の兄ノードを選んでいる場合は、親の階層の最初の兄ノードに移動します。
最後の弟ノードに移動するには、PageDown。
訳注)最後の弟ノードを選んでいる場合は、親の階層の最後の弟ノードに移動します。
ルートノードに移動するには、Escape。
Internet Explorerのお気に入りをFreeMindにインポートするには、「ファイル」メニューの「インポート」の「エクスプローラのお気に入り」。「お気に入り」を保存したフォルダへのパスを入力する画面が表示されたら、ディスク上の「お気に入り」という名前のフォルダを選択します。Windows 2000ではパスは「C:\Documents and Settings\<ユーザー名>\お気に入り」です。
WordやOutlookとの連携
メールリンクに件名を含めることもできます。
HTMLによるノード内の
リッチテキスト利用
There are several items:
And we have boldface or italics. Underlined a strike-through as well. We can have table:
Cell1 |
Cell2 |
Cell3 |
Cell4. |
Â?e can have various foreground colors.
他者との同時編集時の
ファイルロック機能
バージョン0.9.0の新機能
The new editor supports text formatting in nodes and notes (the little window at the bottom of the frame).
It is stored as (X)HTML inside the nodes and can be thus exported to HTML very efficiently.
The notes do now directly belong to the main window. Even if it is not visible a tooltip indicates the content.
Using Filters the current mindmap can be reduced to nodes satisfying certain criteria. For example, if you only want to see every node containing "TODO", then you have to press on the filter symbol (the funnel beside the zoom box), the filter toolbar appears, choose "edit" and add the condition that the node content contains "TODO". Then select the filter in the filter toolbar. Now, only the filtered nodes and its ancestors are displayed unless you choose "No filtering" in the toolbar.
Using the settings "Show ancestors" and "Show descendants" you can influence the apperance of the parent and child nodes that are connected with the nodes being filtered.
There are many different criteria filters can be based on such as a set of selected nodes, a specific icon and some attributes.
Attributes are additional meta information in the form of text pairs attached to nodes.
Thus, criteria like Context->Home or Context->Job can be expressed. Later a filter limits the display only to certain contexts.
Moreover, Groovy scripts are currently stored within attributes.
It is possible to see all currently open maps at a glance.
This kind of navigation was already published in 0.8.0. But now, you can use other directions as well.
It is now possible to move nodes left and right. They come closer to root or move as new subnodes of the node above. The nodes can even change the side of root with this navigation. You can use it by the control+left and control+right keys.
Patterns are very useful helpers to get a consistent layout of your map. You can perform various format changes with one keystroke.
The pattern editor is opened using F11 and presents all currently defined patterns.
The following basic actions are available:
The patterns are stored in the patterns.xml file in your <user directory>/.freemind/ directory and are reloaded the next time you use freemind. The patterns are not part of the maps.
Inside the patterns, there is a left and right hand side. On the right hand side, the format changes are displayed. On the left side there is a plus or minus or empty box. They mean the following:
A novelity is the possibility to associate a script to a pattern. Thus, patterns can now change much more than the pure format changes. For example, you can put macros inside the patterns that change the selected or more nodes at once. This functionality can't be overestimated as it opens complete new automatism capabilities to FreeMind.
Inside the preferences there is the possibility to change the layout of the automatic layout functionality.
Thus, you can change the color and appearance of each level. For example, the used color green is difficult to be read with a beamer. Now, you can change the color to dark green.
Observe, that changes to the specification doesn't change the layout of the map directly. You have to close and reopen the map, first.
Currently, these format specifications are stored in the preferences of the current user and not inside the map. Thus, on a different system, the automatic layout of a map may look different. This will be changed in the next release of FreeMind.
For advanced users it is even possible to change the number of levels. Change something in the preferences of the automatic layout. Now, the format specification is stored in the user preferences. Open the file <user_directory>/.freemind/auto.properties and search for the line automaticLayout_level, and duplicate the last <pattern name=...>...</pattern> entry. Now, you have one level more.
A new search and replace dialog enables to quickly search for text fragments and to replace them.
Its functionality includes
Some key strokes makes the handling of icons even more easier. If you hold the SHIFT key while pressing on an icon on the left toolbar, all other icons are removed and this icon is the only one after the action. This is for example useful for changing the priority of a node.
Another feature comes with pressing CTRL while choosing an icon. It causes this type of icon to be removed one by one. Suppose you have a node with the icons (1)(2)(1)(3) and you press CTRL-1 you get (1)(2)(3). This is useful as with the normal remove methods, only the last icon can be removed.
Flash and Java applet export can be used to bring mindmaps into the internet.
The difference between the two is, that the Java applet looks exactly like the map on the screen, but needs longer to be loaded.
The flash application is very fast and has some different features built in. But it has a different look and feel.
FreeMind can now be scripted by using Groovy scripts. Groovy is a very easy to use scripting language best integrating into FreeMind.
There are two possibilities to use scripts:
Every script is at evaluation time started with two predefined java objects coming from the map:
There are two automatisms regarding the effect of a script:
For more examples consult our little scripting guide below or our web pages.
A last word on security: before scripts is evaluated for the first time in FreeMind, the user is asked whether or not he allows it. The answer can be stored for every script but observe that a malicious script is able to perform every action on your computer that your users rights allow up to delete all files or send them to pirates.ru. This said, be careful and don't allow scripts when you don't know that the author is trusted. Finally, scripts are never evaluated automatically in FreeMind for these reasons. Thus, you can open a map without problems and have a look at the scripts it contains.
If your scripts want to change some map data (which they commonly want to) they should rely on the methods provided by the MindMapController c.
These methods are summarized and partially documented in the class "MindMapActions":
The listeners mentioned below (ie. NodeSelectionListener and NodeLifetimeListener) can be registered and found in the class "ModeController" (also c):
Here we present some snippets of useful Groovy code that can be used as parts of your scripts. More scripts can be found on our web sites.
def stack = new java.util.Stack();
stack.push(node);
while(stack.size()>0) {
def current =stack.pop();
print current.getShortText(c) + ", ";
stack.addAll(current.getChildren());
}
def calcWork(child) { def sum = 0; def it = child.childrenUnfolded(); while(it.hasNext()) { def child2 = it.next(); sum += calcWork(child2); def w = child2.getAttribute("work"); if(w != null) sum += Integer.parseInt( w); } if(sum>0) c.editAttribute(child, "sum", (String) sum); return sum; } calcWork(c.getRootNode());
class MyNodeListener implements freemind.modes.ModeController.NodeSelectionListener { freemind.modes.mindmapmode.MindMapController c; MyNodeListener(freemind.modes.mindmapmode.MindMapController con) { this.c = con; } /** * Sent, if a node is changed * */ void onUpdateNodeHook(freemind.modes.MindMapNode node){ calcWork(c.getRootNode()); }; /** Is sent when a node is selected. */ void onSelectHook(freemind.view.mindmapview.NodeView node){}; /** * Is sent when a node is deselected. */ void onDeselectHook(freemind.view.mindmapview.NodeView node){}; /** * Is issued before a node is saved (eg. to save its notes, too, even if the notes is currently edited). */ void onSaveNode(freemind.modes.MindMapNode node){}; def calcWork(child) { def sum = 0; def it = child.childrenUnfolded(); while(it.hasNext()) { def child2 = it.next(); sum += calcWork(child2); def w = child2.getAttribute("work"); if(w != null) sum += Integer.parseInt( w); } if(sum>0) c.editAttribute(child, "sum", (String) sum); return sum; } } def cookieKey = "work_update_listener"; if(cookies.get(cookieKey) != null) { c.deregisterNodeSelectionListener(cookies.get(cookieKey)); } def newListener = new MyNodeListener(c); cookies.put(cookieKey, newListener); c.registerNodeSelectionListener(newListener);
import java.awt.datatransfer.Transferable; import java.util.Comparator; import java.util.Iterator; import java.util.TreeSet; import java.util.Vector; import freemind.modes.MindMapNode; class IconComparator implements java.util.Comparator { int compare(java.lang.Object pArg0, java.lang.Object pArg1) { if (pArg0 instanceof MindMapNode) { MindMapNode node1 = (MindMapNode) pArg0; if (pArg1 instanceof MindMapNode) { MindMapNode node2 = (MindMapNode) pArg1; String iconText1 = getIconText(node1); String iconText2 = getIconText(node2); //print "comparing" + iconText1 + " with " + iconText2 + "\n"; return iconText1.compareToIgnoreCase(iconText2); } } return 0; } def getIconText(MindMapNode n) { if(n.getIcons() == null || n.getIcons().size()==0) return ""; def retString = ""; def it = n.getIcons().iterator(); while(it.hasNext()) { retString +=it.next().getName()+", "; } return retString; } } // we want to sort the children of the node: Vector children = new Vector(); // put in all children of the node children.addAll(node.getChildren()); // sort them java.util.Collections.sort(children, new IconComparator()); //print "The set has " + children.size() + " entries\n"; // now, as it is sorted. we cut the children def it2 = children.iterator(); while (it2.hasNext()) { MindMapNode child = (MindMapNode) it2.next(); Vector childList = new Vector(); childList.add(child); Transferable cut = c.cut(childList); // paste directly again causes that the node is added as the last one. c.paste(cut, node); } c.select(c.getNodeView(node));
class MyNodeListener implements freemind.modes.ModeController.NodeSelectionListener { freemind.modes.mindmapmode.MindMapController c; MyNodeListener(freemind.modes.mindmapmode.MindMapController con) { this.c = con; } /** * Sent, if a node is changed * */ void onUpdateNodeHook(freemind.modes.MindMapNode node){ }; /** Is sent when a node is selected. */ void onSelectHook(freemind.view.mindmapview.NodeView node){ if(c.getSelecteds().size()>1) return; // unfold node: c.setFolded(node.getModel(), false); // fold every child: def it2 = node.getModel().childrenUnfolded().iterator(); while (it2.hasNext()) { def child = it2.next(); c.setFolded(child, true); } // close everything else: foldEverybody(node.getModel().getParent(),node.getModel()); }; /** * Is sent when a node is deselected. */ void onDeselectHook(freemind.view.mindmapview.NodeView node){}; /** * Is issued before a node is saved (eg. to save its notes, too, even if the notes is currently edited). */ void onSaveNode(freemind.modes.MindMapNode node){}; def foldEverybody(child, exception) { if(child == null || child.isRoot()) return; def it = child.childrenUnfolded(); while(it.hasNext()) { def child2 = it.next(); if(child2 != exception) { c.setFolded(child2, true); } } if(!child.getParent().isRoot()) foldEverybody(child.getParent(), exception.getParent()); } } def cookieKey = "presentation_listener"; if(cookies.get(cookieKey) != null) { c.deregisterNodeSelectionListener(cookies.get(cookieKey)); } def newListener = new MyNodeListener(c); cookies.put(cookieKey, newListener); c.registerNodeSelectionListener(newListener);
Once, you've created or found some interesting scripts, you probably want to get a FreeMind menu item with an own shortcut to execute the script.
To do this, save the script to a file and edit "ScriptingEngine.xml" inside the FreeMind script directory inside your installation.
You'll find a template for a script action that is commented out (ie. surrounded by <!-- ... -->). Uncomment the template and fill out the following bold places:
<plugin_action name="GroovyGroovy" documentation="this is my first installed groovy script." label="plugins/GroovyScript1" base="freemind.extensions.ModeControllerHookAdapter" class_name="plugins.script.ScriptingEngine"> <plugin_mode class_name="freemind.modes.mindmapmode"/> <plugin_menu location="menu_bar/extras/first/scripting/groovy1"/> <plugin_property name="ScriptLocation" value="/home/foltin/test.groovy"/> </plugin_action>
The most important change is the location of the script. Moreover, if you have several scripts you want to install, the labels and the menu_location must be unique.
If you now restart FreeMind you get a new menu item (in this example in the "Extras" menu) that carries out your script. Observe, that the "node" variable points to the root node.
If you want to have a keyboard short cut for the new script, you have to add the bold line into the entry in ScriptingEngine.xml like:
<plugin_action name="GroovyGroovy" documentation="this is my first installed groovy script." label="plugins/GroovyScript1" key_stroke="control shift M" base="freemind.extensions.ModeControllerHookAdapter" class_name="plugins.script.ScriptingEngine"> <plugin_mode class_name="freemind.modes.mindmapmode"/> <plugin_menu location="menu_bar/extras/first/scripting/groovy1"/> <plugin_property name="ScriptLocation" value="/home/foltin/test.groovy"/> </plugin_action>