Giter Site home page Giter Site logo

raydac / netbeans-mmd-plugin Goto Github PK

View Code? Open in Web Editor NEW
380.0 21.0 44.0 63.52 MB

Free mind map editor with plug-ins for both NetBeans and Intellij

License: Apache License 2.0

Java 98.09% HTML 0.01% Shell 0.24% Batchfile 0.08% Go 0.06% Mermaid 1.52%
intellij-plugin netbeans-plugin gui mindmap java editor documentation-tool standalone plantuml mind-maps

netbeans-mmd-plugin's Introduction

Banner

License Apache 2.0 Java 8.0+ NetBeans Intellij IDEA PayPal donation YooMoney donation

Introduction

The Main part of a software project is not code but knowledge generated during the project. I guess knowledge is the main part of every business today and it is very important to move the generated knowledge from non-formal level to formal level to avoid its loss. There are many approaches to save knowledge and a mind map diagram is one of them. Also it is very important to keep the "distance" between project and its knowledge as short as possible and the ideal variant is to keep knowledge just within the project as a document set. If you use any external knowledge engineering tool then the distance already is not so short and for the cause I had decided to develop some plugin which would allow to form mind maps and keep knowledge graph just within projects and allow to work with the graphs just with the IDE.

Initially I developed a plugin for NetBeans IDE then the IntellijIDEA plugin was developed. I have a friend who is not from Java world but he also wanted to use the too so that Scia Reto editor was written.
Screenshots from all

Changelog

1.6.7 (SNAPSHOT)

  • IJ: Minimal supported Intellij IDEA platform lifted up to 2022.2 (Build: 222.3345.118)
  • IJ: Fixed scope for MMD files
  • IJ: Plugin renamed to 'SciaReto Mind Map' by requirement of JetBrains
  • SR: Added version for Linux ARM (aarch64)
  • SR: Embedded JDK updated to 22.0.1+10
  • SR: PlantUML updated to 1.2024.4

1.6.6 (11-feb-2024)

  • SR: PlantUML updated to 1.2024.1
  • SR: Added option to keep non-saved documents between sessions
  • SR: Embedded JDK updated to 21.0.2+14
  • IJ: Added MMD Files view panel
  • IJ: Minimal supported Intellij IDEA platform lifted up to 202.8194.7
  • AP: improved annotation processor to find and extract marks in method bodies
  • SR: embedded Intellij fonts (JetBrains Mono Kawkab and JetBrains Mono Vazir) with Farsi char-set support #120
  • IJ,NB: Improved font configuration use for Note text editor #120

Full changelog

Implementation

All parts of the application are written in Java and it needs Java 1.8+ for work.

The editor has three implementations

How to use?

Just after first release for NetBeans IDE, Geertjan Wielenga created nice screen-cast which a bit out of date but still look good to understand common idea. It is very easy editor and the main set of operations look very intuitive, main questions from users I had about keyboard shortcuts but if keep in mind that TAB creates new mind map node and ENTER creates new sibling mode then life becomes much easier. It is a pop-up menu centric software so that all operations accessible through pop-up menu.

Key features

Data format

The Plugin keeps all mind map information in single UTF8 encoded plain text file formed in markdown compatible format, so the file can be easily read and interpret and without the plug-in.

Mind Map generated by NB MindMap plugin   
> __version__=`1.1`
---

# Root <br/>topic
> topicLinkUID=`14F9D4CD31DA`


## First level
- LINK
<pre>http://www.google.com</pre>

### Item 1\.1
- NOTE
<pre>Some note for item 1.1</pre>

### Item 1\.2
- TOPIC
<pre>14F9D4CD31DA</pre>

How to create new Mind map

SciaReto standalone application

In project tree just click mouse to activate pop-up menu for a folder and select in menu New->Mind map. New mind map file

NetBeans

Mind map type is added as one more file type and can be found among file types in the Other.
New file wizard

Intellij IDEA

Mind map type is registered as a file type which can be created through New pop-up menu for a folder. New MindMap file

Work with mind maps

Mind maps are opened in IDE as documents with graphic interface and the plugin doesn't add any new actions into IDE menu so all operations over mind maps you can make through the document pop-up menu. The Pop-up menu is formed for the current document state and context.
Screenshot

Move topics

All manipulations over topic order and its position in the map hierarchy can be made only through mouse Drag&Drop operations (keep in mind that only one topic can be moved in the same time).
Screenshot

Tune look of mind map editor

You can tune most of graphic parameters for mind map rendering through special panel Options. It can be activated through Options item of pop-up menu and through menu Edit->Preferences in the standalone version.
Screenshot

Export mind map data

Today it is very important to have way to export data to another formats to use the knowledge in another tools. The Plug-in supports several formats to export data:

  • Plain text format
  • Markdown format
  • Freemind format
  • Mindmup format
  • PNG image
  • SVG image
  • ORG format

Import data as Mind map

At present the editor allows to import main maps from many well-known mind map formats

  • Mindmup format
  • Freemind format
  • XMind format
  • Coggle format
  • Novamind format also it can import mind map from tabbed text files.

Content alowed in mind maps

Mainly you can keep short texts in your mind maps as topic names but sometime it is useful to keep and another information, the plugin allows to keep below listed information assets:

  • Short text - short text in one or two lines as topic name, mainly used as id for the topic.
  • Long text - long text information which can be opened and edited in special editor.
  • URL link - just URL link to be opened in system browser
  • File link - link to a file, youc can add them through special dialog or just drag and drop file from NetBeans project tree to a topic, the file will be opened within IDE as a document
  • Transition - link to another topic in the same mind map, it allows to make some navigation in very big mind maps

You can add and edit new topic content through the mind map pop-up menu and if you want remove some content then just open editor for the content and remove all text information.

netbeans-mmd-plugin's People

Contributors

benherbst avatar jlleitschuh avatar netmackan avatar raydac avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

netbeans-mmd-plugin's Issues

More folding actions

One thing I noticed when demonstrating a mind map was that there could be useful to be able to expand all children of one node. Currently one can "Unfold All" but that expands all nodes in the whole map not just under the selected/clicked on one.

Maybe when clicking on one node all of this actions could be available:

  • Unfold This / Fold This: Would be the same as clicking on (+) or (-)
  • Unfold All Children: Would unfold all nodes under the selected one (or even all selected nodes' children)
  • Fold All Children: Would fold all nodes under the selected one (or even all selected nodes' children)
  • Unfold All: As before
  • Fold All: As before

[feature] programmatic access to "export as markdown"

Great Plugin 🙂

Would it be possible to have some kind of scriptable access to the "export as markdown" functionality?

I would like to have a pre-commit hook processing the .mmd file and insert/edit a section within the Readme of my project repository.

Usually I use husky or pip pre-commit in case that matters.

Edit: That said, a separate npm module to achieve that would be also cool 😉

Line break doesn't wok when editing topics on Mac OS

Line break is not available on Mac OS either IDEA plugin or Standalone. I've tried 'shift', 'fn', 'control', 'option' and 'command' buttons, but none of them works.

OS version:
macOS Sierra 10.12.6 (16G1212)

Java version:
1.8.0_163

Relative path file link between modules in IDEA plugin support

The file link that added to topic stored as absolute path. It's ok for own usage, but when I share mind map file with others through VCS like SVN, the links cannot be opened even the file exists in project. Is there any solution to make it possible to support both absolute and relative path?

Export to Org Mode

There has never been a better match between this and the org mode.

Please add this feature

Unexpected exception in NetBeans

java.awt.dnd.InvalidDnDOperationException: invalid rejectDrop()
at sun.awt.dnd.SunDropTargetContextPeer.rejectDrop(SunDropTargetContextPeer.java:646)
at java.awt.dnd.DropTargetContext.rejectDrop(DropTargetContext.java:208)
at java.awt.dnd.DropTargetDropEvent.rejectDrop(DropTargetDropEvent.java:241)
at com.igormaznitsa.nbmindmap.nb.editor.MMDGraphEditor.drop(MMDGraphEditor.java:678)
at java.awt.dnd.DropTarget.drop(DropTarget.java:455)
at sun.awt.dnd.SunDropTargetContextPeer.processDropMessage(SunDropTargetContextPeer.java:538)
at sun.awt.X11.XDropTargetContextPeer.processDropMessage(XDropTargetContextPeer.java:184)
at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchDropEvent(SunDropTargetContextPeer.java:852)
at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEvent(SunDropTargetContextPeer.java:776)
at sun.awt.dnd.SunDropTargetEvent.dispatch(SunDropTargetEvent.java:48)
at java.awt.Component.dispatchEventImpl(Component.java:4746)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processDropTargetEvent(Container.java:4599)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4461)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
[catch] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Allow the map sources to be edited as text in the source editor

It seems to be possible to work perfectly to make changes outside of NetBeans IDE to the mind map sources and the changes will be reflected directly in the graph. It would be great if it was possible to open the mind map sources for editing in the IDE as well.

However when clicking on a .mmd file in the Projects or Files view there is only an "Open" action available and a disabled "View" action. I would expect there to be two different ways of opening the file: one which opens it as MindMap and one which opens it in the editor for raw editing. This would be useful for Search and replacements or other bulk changes.

This is for instance how it works for Properties files (and other as well).

Alternatively there could be a toolbar in the editor pane with Source and Graph tabs like how it is for the NetBeans Form designer and certain types of XML documents. This is probably a bit more work though then just supporting the two different ways of opening the file.

XXE in file import

The Issue

An XML External Entity attack is a type of attack against an application that parses XML input. This attack occurs when XML input containing a reference to an external entity is processed by a weakly configured XML parser. This attack may lead to the disclosure of confidential data, denial of service, server side request forgery, port scanning from the perspective of the machine where the parser is located, and other system impacts.

Where the Issue Occured

The parser parses mind map files (which is XML) without proper protections within the parsing function.

The parsing module is called from the function below:

final Document document = Utils.loadXmlDocument(new FileInputStream(file), "UTF-8", true);

A specially crafted mind map file can exploit this XXE issue.

Context menu only opens by mouse click

Way to reproduce:

  1. Select a node in the graph, for instance by clicking Ctrl+Space
  2. Click Shift+F10 (on Linux systems where this should open the context menu, or using the context menu button if such exists on the keyboard)
    Expected: The popup menu that you otherwise would get by right clicking on the node should be opened.
    Actual: No popup is displayed

In my system Shift+F10 works in other applications including other parts of NetBeans IDE.

Having a look at the code it seems to menu is displayed manually as a result of the mouse events instead of using the JComponent.setComponentPopupMenu() which might register the possibly system-dependent bindings etc. Not sure if it would be possible to use that one though.

Remember setting in "add file"

When adding a file to a mindmap the "open in external browser" is always unchecked. Can it be a preference to always have it checked? or checked if the last time it was checked?

Markdown edit and preview support

Excellent mindmap tool especially for developers. Could you integrate with markdown that we can edit and preview markdown file inside it. I think it will be more useful than only text file.

In Select topic dialog; Fold All only closes the root node

Way to reproduce:

  1. In a mind map with multiple nodes containing child nodes: right click on a node
  2. Select "Add jump"
  3. The "Select topic" dialog opens with all nodes unfolded. Click Fold All.
  4. It seems all nodes are folded as the root node is folded. But now click the "+" to expand the root node.
    Expected: Now only the direct child nodes of the root should be visible.
    Actual: The whole tree is unfolded

Basically it seems the "Fold All" toolbar button only closes the root node.

Hidden files on Mac OS are still visible in SciaReto

After you manipulating SciaReto project folder or sub-folders by Mac Finder, one hidden file named '.DS_Store' will be created, I think any hidden files like that should be hidden in SciaReto as well, or need one option to switch the visibility.

Project Project (Disposed) project_name already disposed

Hello. I get the errors.

Error message

Project Project (Disposed) $project_name$ already disposed

Details

Log: error_already_disposed.txt
PyCharm 2016.3.2
Build #PY-163.10154.50, built on December 28, 2016
JRE: 1.8.0_112-release-408-b6 x86
JVM: OpenJDK Server VM by JetBrains s.r.o

How to reproduce

  1. Open any project with mindmap file
  2. Do any changes in mindmap.
  3. Click Close project. Important: Do not close the IDE completely. Just close project
  4. Open it again. You'll get the error.

Добавить в сущность (узел) понятие атрибут

Добавить в сущность (узел) атрибут.
Сущность может иметь произвольное количество атрибутов.

Один атрибут - это конечный список, который имеет свою уникальную графическую визуализацию для каждого из значений.

Пример:
Приоритет = { 1, 2, 3, 4 }
Прогресс выполнения = { 0%, 25%, 50%, 75%, 100% } (Как вариант компактной визуализации - круговая диаграмма )
Флаги = { Red, Green, Yellow, Blue, Green, Grey, White }

Пользователи должны иметь возможность сами создавать атрибуты.

Пользователь может перетащить в сущность (узел) столько атрибутов сколько ему надо.

По атрибутам потом нужна будет фильтрация.

Creates empty .projectKnowledge folders

I suddenly have empty .projectKnowledge folders in all my projects. I guess it's the mindmap plugin that creates them although I only use mindmaps in just one project. Please don't clutter the project with unnecessary folders.

Remember per session last used directory for files

I use mindmaps to organize information about projects. So I have a documents node where each child links to a document. Everytime I want to add a document the filebrowser starts in the directory where the mindmap file is stored not in the directory I used.

Itellij IDEA issues

This is the start up issue.

Plugin 'nb-mind-map-idea' failed to initialize and will be disabled. Please restart IntelliJ IDEA.

java.lang.NoClassDefFoundError: com/igormaznitsa/mindmap/plugins/api/MindMapPlugin
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at com.intellij.openapi.components.impl.ComponentManagerImpl.a(ComponentManagerImpl.java:382)
at com.intellij.openapi.components.impl.ComponentManagerImpl.init(ComponentManagerImpl.java:97)
at com.intellij.openapi.application.impl.ApplicationImpl.load(ApplicationImpl.java:425)
at com.intellij.openapi.application.impl.ApplicationImpl.load(ApplicationImpl.java:411)
at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:203)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.idea.MainImpl$1$1.a(MainImpl.java:63)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:343)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.ClassNotFoundException: com.igormaznitsa.mindmap.plugins.api.MindMapPlugin PluginClassLoader[nb-mind-map-idea, 1.4.0]
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:65)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 27 more

cant enter shift+enter on mac

having trouble inserting returns in mind map text. I would normally do this with shift+enter but no luck is there a different key combination?

Add multiple jumps from a node

Would it be possible to add multiple jumps from a node?

Node_0.0
|
|-Node_1.0
|    |- Node_1.1
|    |- Node_1.2 (Jump to Node_2.0 AND jump to Node_3.0)
|                        |                   |
|-Node_2.0 <-------------|                   |
|                                            |
|-Node_3.0  <--------------------------------|

Activation failed: Not all requested modules can be enabled

Hi!

After upgrading to Netbeans 8.1, I imported all my installed add-ons and the mind map add-on does not start. I get this message:

Activation failed: Not all requested modules can be enabled: > [StandardModule:com.igormaznitsa.nbmindmap jarFile: C:\Users\billy\AppData\Roaming\NetBeans\8.1\modules\com-igormaznitsa-nbmindmap.jar]

I have installed the PHP-Version of Netbeans. I don't know if it needs the full version?! Should not I think...

Cannot find configurable: com.igormaznitsa.ideamindmap.settings.MindMapSettingsComponent

I am using your nice plugin IDEA Mind Map in Webstorm 9, but when I click the Options context menu item I get the above error.

Cannot find configurable: com.igormaznitsa.ideamindmap.settings.MindMapSettingsComponent
java.lang.AssertionError: Cannot find configurable: com.igormaznitsa.ideamindmap.settings.MindMapSettingsComponent
at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.java:130)
at com.igormaznitsa.ideamindmap.editor.MindMapPanelControllerImpl.startOptionsEdit(MindMapPanelControllerImpl.java:402)
at com.igormaznitsa.ideamindmap.editor.MindMapPanelControllerImpl.access$800(MindMapPanelControllerImpl.java:69)
at com.igormaznitsa.ideamindmap.editor.MindMapPanelControllerImpl$15.actionPerformed(MindMapPanelControllerImpl.java:381)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
at java.awt.Component.processMouseEvent(Component.java:6516)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6281)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4872)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4698)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4698)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:748)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:573)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:384)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

Exception with IDEA 2019.1

The following exception show that KnowledgeViewPane creates inconsistent SelectInTarget.
This may lead to issues with ScrollTo actions.

java.lang.Throwable: Unexpected SelectInTarget: class com.intellij.ide.impl.ProjectPaneSelectInTarget
created by project pane:class com.igormaznitsa.ideamindmap.view.KnowledgeViewPane
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:145)
at com.intellij.ide.projectView.impl.ProjectViewImpl.addProjectPane(ProjectViewImpl.java:325)
at com.intellij.ide.projectView.impl.ProjectViewImpl.ensurePanesLoaded(ProjectViewImpl.java:538)
at com.intellij.ide.projectView.impl.ProjectViewImpl.setupImpl(ProjectViewImpl.java:506)
at com.intellij.ide.projectView.impl.ProjectViewImpl.setupImpl(ProjectViewImpl.java:485)
at com.intellij.ide.projectView.impl.ProjectViewToolWindowFactory.createToolWindowContent(ProjectViewToolWindowFactory.java:21)
at com.intellij.openapi.wm.impl.ToolWindowImpl.ensureContentInitialized(ToolWindowImpl.java:533)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.lambda$initToolWindow$9(ToolWindowManagerImpl.java:482)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.initToolWindow(ToolWindowManagerImpl.java:485)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl$5.run(ToolWindowManagerImpl.java:437)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
at com.intellij.openapi.wm.impl.ToolWindowsPane$AddToolStripeButtonCmd.run(ToolWindowsPane.java:970)
at com.intellij.openapi.wm.impl.CommandProcessor.runNext(CommandProcessor.java:78)
at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:59)
at com.intellij.openapi.wm.impl.CommandProcessor.flush(CommandProcessor.java:32)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.flushCommands(ToolWindowManagerImpl.java:568)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.access$3100(ToolWindowManagerImpl.java:70)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl$InitToolWindowsActivity.lambda$runActivity$0(ToolWindowManagerImpl.java:2273)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:723)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:672)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:367)
at com.intellij.ide.IdeEventQueue.pumpEventsForHierarchy(IdeEventQueue.java:780)
at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:210)
at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:196)
at com.intellij.openapi.application.impl.ApplicationImpl.runProcessWithProgressSynchronously(ApplicationImpl.java:608)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:454)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcessWithProgressSynchronously(ProgressManagerImpl.java:109)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:251)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:205)
at com.intellij.openapi.project.impl.ProjectManagerImpl.loadProjectUnderProgress(ProjectManagerImpl.java:446)
at com.intellij.openapi.project.impl.ProjectManagerImpl.openProject(ProjectManagerImpl.java:421)
at com.intellij.platform.PlatformProjectOpenProcessor.doOpenProject(PlatformProjectOpenProcessor.java:260)
at com.intellij.ide.RecentProjectsManagerBase.doOpenProject(RecentProjectsManagerBase.java:509)
at com.intellij.ide.RecentProjectsManagerBase.doReopenLastProject(RecentProjectsManagerBase.java:628)
at com.intellij.ide.RecentProjectsManagerBase$MyAppLifecycleListener.appStarting(RecentProjectsManagerBase.java:684)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:114)
at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:393)
at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:354)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:343)
at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:320)
at com.intellij.util.messages.impl.MessageBusImpl.access$100(MessageBusImpl.java:29)
at com.intellij.util.messages.impl.MessageBusImpl$1.invoke(MessageBusImpl.java:192)
at com.sun.proxy.$Proxy47.appStarting(Unknown Source)
at com.intellij.idea.IdeaApplication$IdeStarter.lambda$main$1(IdeaApplication.java:370)
at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:88)
at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:111)
at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:120)
at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:121)
at com.intellij.idea.IdeaApplication$IdeStarter.main(IdeaApplication.java:368)
at com.intellij.idea.IdeaApplication.lambda$run$1(IdeaApplication.java:211)
at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:195)
at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:211)
at com.intellij.idea.IdeaApplication.lambda$initApplication$0(IdeaApplication.java:74)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:346)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

IJ: java.lang.IllegalStateException: Clipboard is busy

update failed for AnAction(com.intellij.ide.actions.PasteAction) with ID=$Paste: Clipboard is busy

java.lang.IllegalStateException: Clipboard is busy
                at sun.awt.windows.WClipboard.openClipboard(Native Method)
                at sun.awt.datatransfer.SunClipboard.getClipboardFormatsOpenClose(SunClipboard.java:327)
                at sun.awt.datatransfer.SunClipboard.isDataFlavorAvailable(SunClipboard.java:188)
                at com.igormaznitsa.ideamindmap.editor.MindMapDocumentEditor.isPasteEnabled(MindMapDocumentEditor.java:879)
                at com.igormaznitsa.ideamindmap.editor.MindMapDocumentEditor.isPastePossible(MindMapDocumentEditor.java:872)
                at com.intellij.ide.actions.PasteAction.update(PasteAction.java:32)
                at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:136)
                at com.intellij.openapi.actionSystem.impl.Utils.a(Utils.java:257)
                at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:202)
                at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.a(ActionToolbarImpl.java:1005)
                at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.access$000(ActionToolbarImpl.java:63)
                at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl$2.updateActionsImpl(ActionToolbarImpl.java:182)
                at com.intellij.openapi.actionSystem.impl.ToolbarUpdater$MyUpdateRunnable.run(ToolbarUpdater.java:186)
                at com.intellij.openapi.wm.impl.FocusManagerImpl.a(FocusManagerImpl.java:643)
                at com.intellij.openapi.wm.impl.FocusManagerImpl.h(FocusManagerImpl.java:624)
                at com.intellij.openapi.wm.impl.FocusManagerImpl.g(FocusManagerImpl.java:594)
                at com.intellij.openapi.wm.impl.FocusManagerImpl.a(FocusManagerImpl.java:476)
                at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:2767)
                at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:456)
                at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.a(ToolbarUpdater.java:108)
                at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.access$400(ToolbarUpdater.java:40)
                at com.intellij.openapi.actionSystem.impl.ToolbarUpdater$MyTimerListener.run(ToolbarUpdater.java:158)
                at com.intellij.openapi.actionSystem.impl.WeakTimerListener.run(WeakTimerListener.java:54)
                at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.a(ActionManagerImpl.java:1406)
                at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.a(ActionManagerImpl.java:1396)
                at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.actionPerformed(ActionManagerImpl.java:1380)
                at javax.swing.Timer.fireActionPerformed(Timer.java:313)
                at javax.swing.Timer$DoPostEvent.run(Timer.java:245)
                at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
                at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
                at java.awt.EventQueue.access$500(EventQueue.java:98)
                at java.awt.EventQueue$3.run(EventQueue.java:715)
                at java.awt.EventQueue$3.run(EventQueue.java:709)
                at java.security.AccessController.doPrivileged(Native Method)
                at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
                at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
                at com.intellij.ide.IdeEventQueue.j(IdeEventQueue.java:822)
                at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:650)
                at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:366)
                at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
                at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
                at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
                at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
                at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
                at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Keyboard shortcut for folding a node

When navigating the map with the keyboard it is possible to unfold/open a node by pressing the arrow keys (move focus) but after finishing looking at a branch one would like to fold/close it again.
There should probably be some keyboard shortcut for folding a node just as if one clicked the (-) button.

This could maybe by default be the '-' key and then in the same way it would probably make sense to also add '+' key to unfold a node.'

Or alternatively (or in addition) something like moving focus with Ctrl+Arrow could close/fold the node moved away from.

Template for colors

Let's say I create a mind map containing different levels of supported and unsupported features in my open source project and assign different colors to those (i.e. some shade of green, yellow and red).
Then I would find myself having to define the same colors over and over again for each different node.

One workaround I found to "copy" the color from one node to other node(s) is to first select the nodes without color and then one which has the color I want. Then I would only have to click OK in the dialog and all the selected nodes would get the color.

But it would be nice if one could have some user defined colors saved in the color chooser or alternatively the previously used colors could be listed or all the colors available from other nodes could be there. Then one would not have to either blend together the wanted color again or to try to locate an other node with the color one want.

Intellij 2017 throws error if turn off facet flag 'disable .projectKnowledge folder autocreation'

Access is allowed from event dispatch thread only.

EventQueue.isDispatchThread()=false isDispatchThread()=false Toolkit.getEventQueue()=com.intellij.ide.IdeEventQueue@12bc02ff Current thread: Thread[ApplicationImpl pooled thread 6,4,Idea Thread Group] 573120594 SystemEventQueueThread: Thread[AWT-EventQueue-0,6,main] 1272330861

java.lang.Throwable
at com.intellij.util.ExceptionUtil.currentStackTrace(ExceptionUtil.java:65)
at com.intellij.psi.impl.DebugUtil.currentStackTrace(DebugUtil.java:486)
at com.intellij.diagnostic.LogEventException.(LogEventException.java:32)
at com.intellij.openapi.application.impl.ApplicationImpl.b(ApplicationImpl.java:1089)
at com.intellij.openapi.application.impl.ApplicationImpl.assertIsDispatchThread(ApplicationImpl.java:1078)
at com.intellij.openapi.command.impl.CoreCommandProcessor.a(CoreCommandProcessor.java:130)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:109)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:99)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:85)
at com.igormaznitsa.ideamindmap.utils.IdeaUtils.findKnowledgeFolderForModule(IdeaUtils.java:244)
at com.igormaznitsa.ideamindmap.facet.MindMapFacet.(MindMapFacet.java:38)
at com.igormaznitsa.ideamindmap.facet.MindMapFacetType.createFacet(MindMapFacetType.java:41)
at com.igormaznitsa.ideamindmap.facet.MindMapFacetType.createFacet(MindMapFacetType.java:28)
at com.intellij.facet.FacetManagerImpl.createFacet(FacetManagerImpl.java:136)
at com.intellij.facet.FacetManagerImpl.a(FacetManagerImpl.java:275)
at com.intellij.facet.FacetManagerImpl.a(FacetManagerImpl.java:212)
at com.intellij.facet.FacetManagerImpl.loadState(FacetManagerImpl.java:294)
at com.intellij.facet.FacetManagerImpl.loadState(FacetManagerImpl.java:58)
at com.intellij.configurationStore.ComponentStoreImpl.a(ComponentStoreImpl.kt:328)
at com.intellij.configurationStore.ComponentStoreImpl.a(ComponentStoreImpl.kt:290)
at com.intellij.configurationStore.ComponentStoreImpl.initComponent(ComponentStoreImpl.kt:90)
at com.intellij.openapi.components.impl.PlatformComponentManagerImpl.initializeComponent(PlatformComponentManagerImpl.java:54)
at com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentConfigComponentAdapter.getComponentInstance(ComponentManagerImpl.java:495)
at com.intellij.openapi.components.impl.ComponentManagerImpl.createComponents(ComponentManagerImpl.java:119)
at com.intellij.openapi.components.impl.ComponentManagerImpl.init(ComponentManagerImpl.java:103)
at com.intellij.openapi.module.impl.ModuleImpl.init(ModuleImpl.java:73)
at com.intellij.openapi.module.impl.ModuleManagerImpl$ModuleModelImpl.a(ModuleManagerImpl.java:806)
at com.intellij.openapi.module.impl.ModuleManagerImpl$ModuleModelImpl.e(ModuleManagerImpl.java:800)
at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:47)
at com.intellij.openapi.module.impl.ModuleManagerImpl$ModuleModelImpl.c(ModuleManagerImpl.java:798)
at com.intellij.openapi.module.impl.ModuleManagerImpl$ModuleModelImpl.access$400(ModuleManagerImpl.java:638)
at com.intellij.openapi.module.impl.ModuleManagerImpl.a(ModuleManagerImpl.java:301)
at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:173)
at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:157)
at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:543)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:488)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:94)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:144)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173)
at com.intellij.openapi.module.impl.ModuleManagerImpl.a(ModuleManagerImpl.java:299)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at com.intellij.util.concurrency.BoundedTaskExecutor$2.run(BoundedTaskExecutor.java:212)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

Doesn't work in pycharm :(

Can't parse MindMap text: Wrong format of mind map, end of header is not found
java.lang.IllegalArgumentException: Wrong format of mind map, end of header is not found
at com.igormaznitsa.mindmap.model.MindMap.(MindMap.java:105)
at com.igormaznitsa.ideamindmap.editor.MindMapDocumentEditor$5$2$1$1.run(MindMapDocumentEditor.java:273)
at com.igormaznitsa.ideamindmap.utils.SwingUtils.safeSwing(SwingUtils.java:27)
at com.igormaznitsa.ideamindmap.editor.MindMapDocumentEditor$5$2$1.run(MindMapDocumentEditor.java:268)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:907)
at com.igormaznitsa.ideamindmap.editor.MindMapDocumentEditor$5$2.run(MindMapDocumentEditor.java:264)
at com.intellij.openapi.command.impl.CoreCommandProcessor.a(CoreCommandProcessor.java:149)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:109)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:90)
at com.igormaznitsa.ideamindmap.editor.MindMapDocumentEditor$5.run(MindMapDocumentEditor.java:261)
at com.igormaznitsa.ideamindmap.utils.SwingUtils.safeSwing(SwingUtils.java:27)
at com.igormaznitsa.ideamindmap.editor.MindMapDocumentEditor.loadMindMapFromDocument(MindMapDocumentEditor.java:235)
at com.igormaznitsa.ideamindmap.editor.MindMapDocumentEditor.(MindMapDocumentEditor.java:132)
at com.igormaznitsa.ideamindmap.editor.MindMapDocumentEditorProvider.createEditor(MindMapDocumentEditorProvider.java:40)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.a(FileEditorManagerImpl.java:860)
at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:315)
at com.intellij.openapi.application.impl.LaterInvocator$1.run(LaterInvocator.java:158)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.a(LaterInvocator.java:424)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:407)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
at com.intellij.ide.IdeEventQueue.i(IdeEventQueue.java:822)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:650)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:366)
at com.intellij.ide.IdeEventQueue.pumpEventsForHierarchy(IdeEventQueue.java:924)
at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:217)
at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:203)
at com.intellij.openapi.application.impl.ApplicationImpl.runProcessWithProgressSynchronously(ApplicationImpl.java:589)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:409)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcessWithProgressSynchronously(ProgressManagerImpl.java:117)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:250)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:203)
at com.intellij.openapi.project.impl.ProjectManagerImpl.a(ProjectManagerImpl.java:456)
at com.intellij.openapi.project.impl.ProjectManagerImpl.openProject(ProjectManagerImpl.java:431)
at com.intellij.platform.PlatformProjectOpenProcessor.doOpenProject(PlatformProjectOpenProcessor.java:262)
at com.intellij.ide.RecentDirectoryProjectsManager.doOpenProject(RecentDirectoryProjectsManager.java:60)
at com.intellij.ide.RecentProjectsManagerBase.doReopenLastProject(RecentProjectsManagerBase.java:691)
at com.intellij.ide.RecentProjectsManagerBase$MyAppLifecycleListener.appStarting(RecentProjectsManagerBase.java:733)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:117)
at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:449)
at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:410)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:399)
at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:380)
at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:45)
at com.intellij.util.messages.impl.MessageBusImpl$2.invoke(MessageBusImpl.java:231)
at com.sun.proxy.$Proxy47.appStarting(Unknown Source)
at com.intellij.idea.IdeaApplication$IdeStarter.a(IdeaApplication.java:363)
at com.intellij.openapi.application.TransactionGuardImpl.a(TransactionGuardImpl.java:88)
at com.intellij.openapi.application.TransactionGuardImpl.a(TransactionGuardImpl.java:111)
at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:120)
at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:122)
at com.intellij.idea.IdeaApplication$IdeStarter.main(IdeaApplication.java:361)
at com.intellij.idea.IdeaApplication.a(IdeaApplication.java:206)
at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:195)
at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:206)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.idea.MainImpl$1$1.a(MainImpl.java:65)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:346)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Version 1.4.4 for Netbeans 8.2

The last version available through the Netbeans plugin download is 1.4.1.
So I'm looking for the latest 1.4.4 nbm file.
Do you have it available ?
Thanks

Searching for nodes

It would be nice if one could search the topic names. This could be useful for larger mind maps.

The search could either be in the MindMapPanel or in the Navigator or both.

Searches in the Navigator would preferably work the same way as in the Projects window where if I start typing a search bar is opened at the bottom of the view and while I type it starts selecting any matching node. As a user was expecting it to work the same for the Navigator window.

not sure if mmd issue or other

I just updated from Netbeans 8.0.2 to Netbeans 8.1.

Product Version: NetBeans IDE 8.1 (Build 201510222201)
Java: 1.8.0_60; Java HotSpot(TM) 64-Bit Server VM 25.60-b23
Runtime: Java(TM) SE Runtime Environment 1.8.0_60-b27
System: Linux version 3.16.0-4-amd64 running on amd64; UTF-8; en_CA (nb)

I have never install your mind map software before, so this is a fresh install. On the initial install (FYI, at the same time I chose to install Nebeans Cheat Sheets) of the plugin after Netbeans restarts I received the message:

Warning - could not install some modules: NB MindMap Editor - The module named org.netbeans.modules.java.source.compat8 was needed and not found.

Help -> Check for updates says everything up to date.
Tools -> Plugins -> Check for updates shows no new updates available.

Here is why I'm not sure if this is a Mind Map issue, under Installed plugins there is an item called "Progress API 8.0 Compatibility" which is in-active. The only other in-active item is NB MindMap Editor.

Right clicking Progress API, activate is greyed out.
Right clicking NB MindMap, activate results in:

Activation failed: Not all requested modules can be enabled: [StandardModule:com.igormaznitsa.nbmindmap jarFile: /home/(censored)/.netbeans/8.1/modules/com-igormaznitsa-nbmindmap.jar]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.