Wiki Map Plugin#
It shows the Wiki structure in a touchgraph, using an applet. It should help finding hot spots in the wiki and showing the development of the wiki. Some screenshots are attached.
Here two screenshots of the WikiMapPlugin in action:
Developer#
I work at the Heilbronn University's i3G Institute in
ChristophSauer's Team, developing plugins.
Parameter#
name | default | used for |
---|---|---|
width | 300 | width of the applet |
height | 300 | height of the applet |
startpage | the edited site | the focussed site |
zoom | 0 (-100 / 100) | the distance to the wikigraph |
locality | 2 (0 / 7) | the depth of the wikigraph |
Example codes:
[{org.wikiwizard.jspwiki.wikimap.WikiMap}]
[{org.wikiwizard.jspwiki.wikimap.WikiMap width='300' height='300' startpage='LeftMenu' }]
Problems#
- There is a bug that "shows" with Firefox 1.5
- a bug when youre fast going "forward" and "backward" with your browser
Future - Upcoming features#
- improved User Interface
- a printfunction
- improved Design and Compostion of the Graph (I am playing width color and size of the nodes, using visitercount of a page, Content etc...)
- i am going to replace my Servlet, using XMLRPC annotation: to make the installation easier, I currently don't use my servlet; the pages and references are given to the applet from the plugin, so there is no need for applet-servlet communication. I am trying to find a fast solution, thats not communicating with parameters, embedded in html code.
Download#
You can download the newest Version of WikiMap here
http://www.i3g.hs-heilbronn.de/attach/WikiMapProjekt/WikiMap0.7.zip
and the SourceCode here
http://www.i3g.hs-heilbronn.de/attach/WikiMapProjekt/WikiMap07Source.zip
Installation#
- Copy the wikimapplugin.jar in the web-inf/lib/ directory of your wiki.
- Copy the WikiMap.jar in a directory applets in the root directory of your wiki
(example for the WikiMap.jar)
If your wiki is installed /tomcat/webapps/JSPWiki
- make directory /tomcat/webapps/JSPWiki/applets
- copy WikiMap.jar to /tomcat/webapps/JSPWiki/applets
You specify the following should be done for installation:
- Copy the wikimapplugin.jar in the web-inf/lib/ directory of your wiki.
- this one makes sense /../../tomcat/webapps/WEB-INF/lib
- Copy the WikiMap.jar in a directory applets in the root directory of your wiki
- what or where is this one?.. I don't understand do I need to create an $WIKI_ROOT/applets directory? (where $WIKI_ROOT is the jspwiki.fileSystemProvider.pageDir value)
Do I also need to update the jspwiki.plugin.searchPath?
--RobSchramm, 03-Jul-2006
Just switch in the "wiki-root" directory (this is the directory where atom.jsp, Comment.jsp etc. lies). Now create a directory with the name "applets" and put the WikiMap.jar in it. You don't need to change jspwiki.plugin.searchPath.
The instruction step was really not clear. I hope it works now!?
--JoergDoneit, 04-Jul-2006
Thank you very much for the clarification Joerg. That really helped.
The wikimap is now working. I was confusing the "root directory of my wiki" with the "jspwiki.fileSystemProvider.pageDir".
I put an update for the installation instructions.
--RobSchramm, 05-Jul-2006
Very nice plugin! I have problems displaying the applet in IE, but it works fine in Firefox.
Some questions:
- Can you provide some documentation on your use of colors in the graph?
- What does the red square mean?
- Can I use the WikiMap for navigation - is there a way to open the page associated with a node?
I have a suggestion: In addition to supporting "hide" and "show" for nodes and edges, you should also support a "show all". Currently it is possible to hide the entire graph, and there is no way to show it back.
I found this NPE trace in the wiki log while playing with it:
2006-07-07 11:45:39,549 [http-8080-Processor22] INFO com.ecyrd.jspwiki.plugin.PluginManager MyWiki:http://ips.na.sas.com:8080/MyWiki/Edit.jsp - Plugin failed while executing: java.lang.NullPointerException at org.wikiwizard.jspwiki.wikimap.WikiMap.execute(WikiMap.java:33) at com.ecyrd.jspwiki.plugin.PluginManager.execute(PluginManager.java:367) at com.ecyrd.jspwiki.parser.PluginContent.getText(PluginContent.java:84) at org.jdom.output.XMLOutputter.printTextRange(XMLOutputter.java:1054) at org.jdom.output.XMLOutputter.printContentRange(XMLOutputter.java:989)
Another error: the Java Console is showing the following exception over and over again:
Exception in thread "AWT-EventQueue-2" sun.dc.pr.PRError: setPenT4: invalid pen transformation (singular) at sun.dc.pr.PathStroker.setPenT4(Native Method) at sun.dc.pr.Rasterizer.setPenT4(Unknown Source) at sun.java2d.pipe.DuctusRenderer.createShapeRasterizer(Unknown Source) at sun.java2d.pipe.DuctusShapeRenderer.renderPath(Unknown Source) at sun.java2d.pipe.DuctusShapeRenderer.draw(Unknown Source) at sun.java2d.pipe.PixelToShapeConverter.drawLine(Unknown Source) at sun.java2d.SunGraphics2D.drawLine(Unknown Source) at org.wikiwizard.jspwiki.wikimap.touchgraph.graphlayout.Edge.paintWikiArrow(Edge.java:285) at org.wikiwizard.jspwiki.wikimap.touchgraph.graphlayout.Edge.paint(Edge.java:329) at org.wikiwizard.jspwiki.wikimap.touchgraph.graphlayout.TGPanel$6.forEachEdge(TGPanel.java:831) at org.wikiwizard.jspwiki.wikimap.touchgraph.graphlayout.graphelements.GraphEltSet.forAllEdges(GraphEltSet.java:368) at org.wikiwizard.jspwiki.wikimap.touchgraph.graphlayout.TGPanel.update(TGPanel.java:835) at org.wikiwizard.jspwiki.wikimap.touchgraph.graphlayout.TGPanel.paint(TGPanel.java:800) at javax.swing.JComponent.paintWithOffscreenBuffer(Unknown Source) at javax.swing.JComponent.paintDoubleBuffered(Unknown Source) at javax.swing.JComponent._paintImmediately(Unknown Source) at javax.swing.JComponent.paintImmediately(Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
-- NascifAbousalhNeto - 7-Jul-2006
Some suggestions:
- A plugin parameter that instructs the applet to start with controls enabled;
- A "search" field - if the map is too convoluted, searching (or filtering) nodes by name would help.
- Enable the Hyperbolic View feature (already part of Kaon - you can see it in action in their demo
).
- A decoration button in the nodes or an entry in the popup menu with wiki-related actions, like open and edit. In the current implementation double-clicking is not very precise - it doesn't work all the time, probably due to timing issues.
-- NascifAbousalhNeto - 11-Jul-2006
First to the exceptions. That had something to do the newest Java Version, Swing and Threads. It is fixed in the new Version. You can download it here
http://www.i3g.hs-heilbronn.de/attach/WikiMapProjekt/WikiMap0.7.zip

- The colors are choosen randomly, so they have yet no meaning :-(
- The red square shows how much linked pages are on it
- Navigation (You can open pages with a double-klick on the nodes)
Thank you for your feedback. In this version I focused on bugfixing Browser, Applet and Communication Porblems. Upcoming features for the next version are
- give colors sense (Blog Entrys --> yellow ......)
- improve the searchbox with filter-functions and focus
- improve the navigation (I like NascifAbousalhNeto 's ideas)
-- JoergDoneit - 31-Jul-2006
Where's the source code? I'd like to see how the applet does it's communictions to the wiki
Sry for the late answer; you can download the sourcecode here
http://www.i3g.hs-heilbronn.de/attach/WikiMapProjekt/WikiMap07Source.zip
-- JoergDoneit - 20-Aug-2006
There is a problem when opening pages from the applet: it converts the page name to all lower case, and that creates a mismatch when the web server is running on a *nix box (where file names are case-sensitive).
For example, I have a page called "TeamMembers"; clicking on it from the applet tries to open the page "teammembers" - and the wiki offers me to create a new one, saying it doesn't exist.
--NascifAbousalhNeto, 20-Nov-2006
I solved the problem of the conversion to lowercase. Page names are converted in lower case into the applet due to layout issues, but when you click on the node the right page is loaded. I added a couple of features that are necessay to my application:
- back links following: incoming links can be used in the applet, so if you are on a "leaf" page all works fine.
- page exlusion: to exclude some pages from the map you can insert in the parameter "exclude" the pattern of the pages to be excluded.
For example, assume your template uses contextual menus in the form _pagename, you can exclude menu pages from the graph with:
{org.wikiwizard.jspwiki.wikimap.WikiMap allowInverses='true' exclude='_.*'}
the modified version is WikiMapCaseInverseExclude.zip
--MarioArrigoniNeri, 30-Apr-2007
Add new attachment
List of attachments
Kind | Attachment Name | Size | Version | Date Modified | Author | Change note |
---|---|---|---|---|---|---|
rar |
AppletSource.rar | 112.3 kB | 1 | 28-Apr-2006 16:26 | jorg doneit | |
jar |
WikiMap.jar | 166.3 kB | 1 | 28-Apr-2006 16:26 | jorg doneit | |
java |
WikiMap.java | 5.4 kB | 1 | 28-Apr-2006 16:26 | jorg doneit | |
zip |
WikiMapCaseInverseExclude.zip | 154.0 kB | 1 | 30-Apr-2008 16:12 | 81.116.75.154 | case sentive bug fix, inverse links and page filter |
jpg |
wikimap1.JPG | 50.2 kB | 1 | 28-Apr-2006 16:26 | jorg doneit | |
png |
wikimap1.png | 270.5 kB | 1 | 30-Apr-2006 14:30 | j doneit | |
jpg |
wikimap2.JPG | 16.3 kB | 1 | 28-Apr-2006 16:26 | jorg doneit | |
png |
wikimap2.png | 104.7 kB | 1 | 30-Apr-2006 14:30 | j doneit | |
jpg |
wikimapOverloaded.JPG | 99.1 kB | 1 | 28-Apr-2006 16:26 | jorg doneit | |
jar |
wikimapplugin.jar | 5.4 kB | 2 | 30-Apr-2006 14:23 | j doneit |