<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ojwiki.soldin.de/index.php?action=history&amp;feed=atom&amp;title=How_to_use_and_make_own_Plugins</id>
	<title>How to use and make own Plugins - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ojwiki.soldin.de/index.php?action=history&amp;feed=atom&amp;title=How_to_use_and_make_own_Plugins"/>
	<link rel="alternate" type="text/html" href="https://ojwiki.soldin.de/index.php?title=How_to_use_and_make_own_Plugins&amp;action=history"/>
	<updated>2026-08-06T20:11:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.5</generator>
	<entry>
		<id>https://ojwiki.soldin.de/index.php?title=How_to_use_and_make_own_Plugins&amp;diff=1328&amp;oldid=prev</id>
		<title>Mentaer at 10:17, 3 January 2012</title>
		<link rel="alternate" type="text/html" href="https://ojwiki.soldin.de/index.php?title=How_to_use_and_make_own_Plugins&amp;diff=1328&amp;oldid=prev"/>
		<updated>2012-01-03T10:17:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:17, 3 January 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l93&quot; &gt;Line 93:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 93:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Example&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Example&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For Eclipse i have done an example Project, which needs OpenJump &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;or Jumpi18n core &lt;/del&gt;(http://&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;www&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;geo.unizh&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ch&lt;/del&gt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;publications&lt;/del&gt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sstein&lt;/del&gt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;openjump&lt;/del&gt;/eclipsehelloi18.zip donwload here). To use that in Eclipse:   &lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For Eclipse i have done an example Project, which needs OpenJump (&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[&lt;/ins&gt;http://&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sourceforge&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;net/projects/mentaer&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;u&lt;/ins&gt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;files&lt;/ins&gt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;openjump&lt;/ins&gt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;development_resources&lt;/ins&gt;/eclipsehelloi18.zip&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;/download &lt;/ins&gt;donwload here&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/ins&gt;). To use that in Eclipse:   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* download it and unpack. Put it into your Eclipse workspace folder&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* download it and unpack. Put it into your Eclipse workspace folder&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* use the following menu entry to load &amp;quot;\File\Import\&amp;quot;. Select &amp;quot;Existing Project into Workspace&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* use the following menu entry to load &amp;quot;\File\Import\&amp;quot;. Select &amp;quot;Existing Project into Workspace&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l118&quot; &gt;Line 118:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 118:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# export the compiled directory/files to a jar file (it is like&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# export the compiled directory/files to a jar file (it is like&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;zipping the project and renaming the ending to jar)&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;zipping the project and renaming the ending to jar)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# then put the jar file in Jumpi18n/lib/ext and start jump as usual ([http://&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;www&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;geo.unizh&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ch&lt;/del&gt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;publications&lt;/del&gt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sstein&lt;/del&gt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;openjump&lt;/del&gt;/myhelloi18nplugin.jar example myhelloi18nplugin.jar])&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# then put the jar file in Jumpi18n/lib/ext and start jump as usual ([http://&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sourceforge&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;net/projects/mentaer&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;u&lt;/ins&gt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;files&lt;/ins&gt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;openjump&lt;/ins&gt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;development_resources&lt;/ins&gt;/myhelloi18nplugin.jar&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;/download &lt;/ins&gt;example myhelloi18nplugin.jar])&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;How does such an Extension class look like:&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;How does such an Extension class look like:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l160&quot; &gt;Line 160:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 160:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;note&amp;#039;&amp;#039;&amp;#039;: for this version is might be good to have the original openjump sources in a project (since one can better trace errors and has good examples on programming). The Jump sources can be obtained from the Jump or OpenJUMP SVN or as zip files. If you create your own Openjump project, don&amp;#039;t forget to include the libraries into your project (using the &amp;quot;Buildpath&amp;quot; properties). Further you have to create a dependency of the &amp;#039;&amp;#039;Helloi18&amp;#039;&amp;#039; project on the new Jump (OpenJump) project, which can be also done in the project properties of &amp;#039;&amp;#039;Helloi18&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;note&amp;#039;&amp;#039;&amp;#039;: for this version is might be good to have the original openjump sources in a project (since one can better trace errors and has good examples on programming). The Jump sources can be obtained from the Jump or OpenJUMP SVN or as zip files. If you create your own Openjump project, don&amp;#039;t forget to include the libraries into your project (using the &amp;quot;Buildpath&amp;quot; properties). Further you have to create a dependency of the &amp;#039;&amp;#039;Helloi18&amp;#039;&amp;#039; project on the new Jump (OpenJump) project, which can be also done in the project properties of &amp;#039;&amp;#039;Helloi18&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 1 - create in your project a new file and call it workbench-properties.xml ([http://&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;www&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;geo.unizh&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ch&lt;/del&gt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;publications&lt;/del&gt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sstein&lt;/del&gt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;openjump&lt;/del&gt;/workbench-properties.xml example workbench file])&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 1 - create in your project a new file and call it workbench-properties.xml ([http://&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sourceforge&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;net/projects/mentaer&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;u&lt;/ins&gt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;files&lt;/ins&gt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;openjump&lt;/ins&gt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;development_resources&lt;/ins&gt;/workbench-properties.xml&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;/download &lt;/ins&gt;example workbench file])&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 2 - write the package path to your plugin inside the file (see file)&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 2 - write the package path to your plugin inside the file (see file)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 3 - create a new &amp;#039;&amp;#039;run entry&amp;#039;&amp;#039;: the class which is the entry point for OpenJUMP&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 3 - create a new &amp;#039;&amp;#039;run entry&amp;#039;&amp;#039;: the class which is the entry point for OpenJUMP&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l176&quot; &gt;Line 176:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 176:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;the examples above use the parent class AbstractPlugIn which has disadvatanges for long computations. For such a case use &amp;quot;implements ThreadedPlugIn&amp;quot;. Here also a _monitor_ can be used to send messages to the user. Apart from that a second method &amp;#039;&amp;#039;run()&amp;#039;&amp;#039; has to be implemented which contains the now the time consuming code while &amp;#039;&amp;#039;execute()&amp;#039;&amp;#039; should contain dialogs for initial interatcion. (I will make this clearer in future - hopefully)&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;the examples above use the parent class AbstractPlugIn which has disadvatanges for long computations. For such a case use &amp;quot;implements ThreadedPlugIn&amp;quot;. Here also a _monitor_ can be used to send messages to the user. Apart from that a second method &amp;#039;&amp;#039;run()&amp;#039;&amp;#039; has to be implemented which contains the now the time consuming code while &amp;#039;&amp;#039;execute()&amp;#039;&amp;#039; should contain dialogs for initial interatcion. (I will make this clearer in future - hopefully)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Please don&amp;#039;t forget to document your plugin. I&amp;#039;ve done a template that can be downloaded: [http://sourceforge.net/projects/jump-pilot/files/Documentation/PlugIn%&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;20description%20example_template&lt;/del&gt;/Openjump_exampleplugin_description_template.doc/download here]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Please don&amp;#039;t forget to document your plugin. I&amp;#039;ve done a template that can be downloaded: [http://sourceforge.net/projects/jump-pilot/files/Documentation/PlugIn%&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;20Documentation&lt;/ins&gt;/Openjump_exampleplugin_description_template.doc/download here]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;have fun,&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;have fun,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Stefan (sstein)&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Stefan (sstein)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Mentaer</name></author>
	</entry>
	<entry>
		<id>https://ojwiki.soldin.de/index.php?title=How_to_use_and_make_own_Plugins&amp;diff=318&amp;oldid=prev</id>
		<title>Mentaer at 21:22, 18 October 2009</title>
		<link rel="alternate" type="text/html" href="https://ojwiki.soldin.de/index.php?title=How_to_use_and_make_own_Plugins&amp;diff=318&amp;oldid=prev"/>
		<updated>2009-10-18T21:22:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://ojwiki.soldin.de/index.php?title=How_to_use_and_make_own_Plugins&amp;amp;diff=318&amp;amp;oldid=317&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Mentaer</name></author>
	</entry>
	<entry>
		<id>https://ojwiki.soldin.de/index.php?title=How_to_use_and_make_own_Plugins&amp;diff=317&amp;oldid=prev</id>
		<title>Mentaer: Created page with &#039;== Introduction ==  The first part of this page will describe how one can make its own plugins for JUMP/OpenJUMP. In part B we will outline how the plugins are used. Either inter…&#039;</title>
		<link rel="alternate" type="text/html" href="https://ojwiki.soldin.de/index.php?title=How_to_use_and_make_own_Plugins&amp;diff=317&amp;oldid=prev"/>
		<updated>2009-10-18T21:00:55Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;== Introduction ==  The first part of this page will describe how one can make its own plugins for JUMP/OpenJUMP. In part B we will outline how the plugins are used. Either inter…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The first part of this page will describe how one can make its own plugins for JUMP/OpenJUMP. In part B we will outline how the plugins are used. Either internally from Eclipse using the workbench-properties.xml file or externally as jar for distributing.&lt;br /&gt;
&lt;br /&gt;
== How to make your own plugin ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;First of all&amp;#039;&amp;#039;&amp;#039;: To make coding easier you should use a Integrated Developement Environment (IDE) like [http://www.eclipse.org Eclipse] or [http://www.netbeans.org NetBeans] (of course you can also use commercial IDEs). Such an IDE shows you errors in your code already during programming and has nice properties like proposing you &amp;#039;&amp;#039;commands&amp;#039;&amp;#039; or paths.&lt;br /&gt;
&lt;br /&gt;
*Now* have a look here: [[FAQ OpenJump and Eclipse]]&lt;br /&gt;
&lt;br /&gt;
*Note*: If you use Eclipse for the first time, then have a look on this very good tutorial on how to use the Eclipse IDE:  &amp;quot;Eclipse Tutorial&amp;quot;:http://eclipsetutorial.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
*Finally* lets start.. :)&lt;br /&gt;
&lt;br /&gt;
_If you have installed Eclipse see also [[How to make your plugin in ECLIPSE]]_&lt;br /&gt;
&lt;br /&gt;
* create a new Java project (eg. call it &amp;quot;Helloi18n&amp;quot;)&lt;br /&gt;
* go to the project properties, and look where you can set the Java \BuildPath. Look for an option called like &amp;quot;add JAR&amp;quot;. Now use this to add the JUMP kernel file jumpxxx.jar which should be located in your Jump (\OpenJump) folder. (nota bene: xxx is used a placeholder for different names)&lt;br /&gt;
Further add also all the jar files which are in the JUMPxxx/lib/ folder.&lt;br /&gt;
* now you can start coding - preferably make a &amp;quot;hello world&amp;quot; plugin like it is described in the jump developer manual. (see also code below of \HelloWorldPlugIn.java)&lt;br /&gt;
&lt;br /&gt;
** basically you have to know that a plugin has to have &lt;br /&gt;
the class ending &amp;quot;\PlugIn&amp;quot; and inherits methods using &amp;quot;extends \AbstractPlugIn&amp;quot;&lt;br /&gt;
** further it has always 2 methods which are called by Jump to interact:&lt;br /&gt;
**# the method _initialize()_ is necessary to register and to create a menu item (for the example it is done in the _View_ menu)&lt;br /&gt;
**# the method _execute()_ contains the code which should be evaluated if the menu entry/button is activated. (see below)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * created on 		04.10.2005&lt;br /&gt;
 * last modified: 	05.10.2005 comments added&lt;br /&gt;
 * &lt;br /&gt;
 * author:			sstein&lt;br /&gt;
 * &lt;br /&gt;
 **/&lt;br /&gt;
&lt;br /&gt;
package ch.unizh.geo.degen;&lt;br /&gt;
&lt;br /&gt;
import com.vividsolutions.jump.workbench.WorkbenchContext;&lt;br /&gt;
import com.vividsolutions.jump.workbench.plugin.AbstractPlugIn;&lt;br /&gt;
import com.vividsolutions.jump.workbench.plugin.EnableCheckFactory;&lt;br /&gt;
import com.vividsolutions.jump.workbench.plugin.MultiEnableCheck;&lt;br /&gt;
import com.vividsolutions.jump.workbench.plugin.PlugInContext;&lt;br /&gt;
import com.vividsolutions.jump.workbench.ui.plugin.FeatureInstaller;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * @description:&lt;br /&gt;
 * 	testplugin for jump&amp;lt;p&amp;gt;&lt;br /&gt;
 *  	shows hello world - window in Jump&lt;br /&gt;
 *  &lt;br /&gt;
 * @author sstein&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
public class HelloWorldPlugIn extends AbstractPlugIn{&lt;br /&gt;
	&lt;br /&gt;
	public HelloWorldPlugIn() {&lt;br /&gt;
		// empty constructor&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public void initialize(PlugInContext context) throws Exception {&lt;br /&gt;
		FeatureInstaller featureInstaller = new FeatureInstaller(context.getWorkbenchContext());&lt;br /&gt;
		featureInstaller.addMainMenuItem(&lt;br /&gt;
				this,								//exe&lt;br /&gt;
				new String[] {&amp;quot;View&amp;quot;}, 	//menu path&lt;br /&gt;
				this.getName(), //name methode .getName recieved by AbstractPlugIn &lt;br /&gt;
				false,			//checkbox&lt;br /&gt;
				null,			//icon&lt;br /&gt;
				createEnableCheck(context.getWorkbenchContext())); //enable check        &lt;br /&gt;
	}&lt;br /&gt;
		&lt;br /&gt;
	public static MultiEnableCheck createEnableCheck(WorkbenchContext workbenchContext) {&lt;br /&gt;
		EnableCheckFactory checkFactory = new EnableCheckFactory(workbenchContext);&lt;br /&gt;
		&lt;br /&gt;
		return new MultiEnableCheck()&lt;br /&gt;
		.add(checkFactory.createWindowWithLayerNamePanelMustBeActiveCheck());&lt;br /&gt;
	}	&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Action on menu item selection:&lt;br /&gt;
	 * creates doc to show&lt;br /&gt;
	 */&lt;br /&gt;
	public boolean execute(PlugInContext context) throws Exception{&lt;br /&gt;
		&lt;br /&gt;
		context.getWorkbenchFrame().getOutputFrame().createNewDocument();&lt;br /&gt;
		context.getWorkbenchFrame().getOutputFrame().addText(&amp;quot;Hello, World!&amp;quot;);&lt;br /&gt;
		context.getWorkbenchFrame().getOutputFrame().surface();&lt;br /&gt;
		&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Example*&lt;br /&gt;
=&amp;gt; For Eclipse i have done an example Project, which needs \OpenJump or Jumpi18n core(&amp;quot;donwload here&amp;quot;:http://www.geo.unizh.ch/publications/sstein/openjump/eclipsehelloi18.zip ). To use that in Eclipse:  &lt;br /&gt;
** download it and unpack. Put it into your Eclipse workspace folder&lt;br /&gt;
** use the following menu entry to load &amp;quot;\File\Import\&amp;quot;. Select &amp;quot;Existing Project into Workspace&amp;quot;&lt;br /&gt;
** After importing don&amp;#039;t forget to set the java build path entries in the project properties.&lt;br /&gt;
&lt;br /&gt;
Another example, that shows how to create buffers from features in a layer has been posted here: [[Example Plugin For Buffering Features in a Layer]]&lt;br /&gt;
&lt;br /&gt;
h2. B) How to use own plugins&lt;br /&gt;
&lt;br /&gt;
To load a plugin in Jump we have two options:&lt;br /&gt;
* either we create a library for the _Jump\lib\ext\ Folder_&lt;br /&gt;
* or we load our plugin by using a _workbench-properties.xml_ file&lt;br /&gt;
&lt;br /&gt;
_If you have installed Eclipse see also_&lt;br /&gt;
* [[How to create a jar plugin in ECLIPSE]] and&lt;br /&gt;
* [[How to use a plugin with a properties file in ECLIPSE]]&lt;br /&gt;
&lt;br /&gt;
h3. Version 1 &lt;br /&gt;
&lt;br /&gt;
This option is a bad choice for finding errors, but necessary to deploy our work.&lt;br /&gt;
&lt;br /&gt;
# to load an external plugin on Jump start we have to create a class&lt;br /&gt;
\HelloWorldExtension.java (see also the downloadable example). The Extension class is necessary to register the plugin in Jump. Note: The class name must end with Extension, (see below) &lt;br /&gt;
# export the compiled directory/files to a jar file (it is like&lt;br /&gt;
zipping the project and renaming the ending to jar)&lt;br /&gt;
# then put the jar file in Jumpi18n/lib/ext and start jump as usual (&amp;quot;example myhelloi18nplugin.jar&amp;quot;:http://www.geo.unizh.ch/publications/sstein/openjump/myhelloi18nplugin.jar )&lt;br /&gt;
&lt;br /&gt;
How does such an Extension class look like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * created on 		04.10.2005&lt;br /&gt;
 * last modified: 	&lt;br /&gt;
 * &lt;br /&gt;
 * author:			sstein&lt;br /&gt;
 * &lt;br /&gt;
 *************************************************/&lt;br /&gt;
package ch.unizh.geo.degen;&lt;br /&gt;
&lt;br /&gt;
import com.vividsolutions.jump.workbench.plugin.Extension;&lt;br /&gt;
import com.vividsolutions.jump.workbench.plugin.PlugInContext;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * @description&lt;br /&gt;
 *  - this class loads the PlugIn into Jump &amp;lt;p&amp;gt;&lt;br /&gt;
 *  - class has to be called &amp;quot;Extension&amp;quot; on the end of classname&lt;br /&gt;
 *    to use the PlugIn in Jump&lt;br /&gt;
 * &lt;br /&gt;
 *  @author sstein &lt;br /&gt;
 */&lt;br /&gt;
public class HelloWorldExtension extends Extension{&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * calls PlugIn using class method xplugin.initialize() &lt;br /&gt;
	 */&lt;br /&gt;
	public void configure(PlugInContext context) throws Exception{&lt;br /&gt;
		new HelloWorldPlugIn().initialize(context);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
h3. Version 2 &lt;br /&gt;
&lt;br /&gt;
This option is a good choice for debugging errors but not for deployment.&lt;br /&gt;
&lt;br /&gt;
*note:* for this version is might be good to have the original openjump sources in a project (since one can better trace errors and has good examples on programming). The Jump sources can be obtained from the Jump or \OpenJUMP %{color:black}SVN% or as zip files. If you create your own Openjump project, don&amp;#039;t forget to include the libraries into your project (using the &amp;quot;Buildpath&amp;quot; properties). Further you have to create a dependency of the _Helloi18_ project on the new Jump (\OpenJump) project, which can be also done in the project properties of _Helloi18_&lt;br /&gt;
&lt;br /&gt;
# create in your project a new file and call it workbench-properties.xml (&amp;quot;example workbench file&amp;quot;:http://www.geo.unizh.ch/publications/sstein/openjump/workbench-properties.xml )&lt;br /&gt;
# write the package path to your plugin inside the file (see file)&lt;br /&gt;
# create a new _run entry_: the class which is the entry point for jump&lt;br /&gt;
is com.vividsolutions.jump.workbench.JUMPWorkbench&lt;br /&gt;
# add to the &amp;quot;Arguments&amp;quot; of the run entry:&lt;br /&gt;
-properties _C:\myRealProjectPath\workbench-properties.xml_&lt;br /&gt;
-plug-in-directory _C:\Programme\Jumpi18n\lib\ext_&lt;br /&gt;
# add to your &amp;quot;run entry&amp;quot; the &amp;quot;classpaths&amp;quot; for the jar files in&lt;br /&gt;
jump/lib/ (as Bootstrap Entries) and the project you just created (as&lt;br /&gt;
User Entries)&lt;br /&gt;
# start the _run_ entry &lt;br /&gt;
&lt;br /&gt;
h2. Notes&lt;br /&gt;
&lt;br /&gt;
the examples above use the parent class \AbstractPlugIn which has disadvatanges for long computations. For such a case use &amp;quot;implements \ThreadedPlugIn&amp;quot;. Here also a _monitor_ can be used to send messages to the user. Apart from that a second method _run()_ has to be implemented which contains the now the time consuming code while _execute()_ should contain dialogs for initial interatcion. (I will make this clearer in future - hopefully)&lt;br /&gt;
&lt;br /&gt;
Please don&amp;#039;t forget to document your plugin. I&amp;#039;ve done a template that can be downloaded here: http://sourceforge.net/project/showfiles.php?group_id=118054&amp;amp;package_id=209987&lt;br /&gt;
 &lt;br /&gt;
have fun,&lt;br /&gt;
Stefan (sstein)&lt;/div&gt;</summary>
		<author><name>Mentaer</name></author>
	</entry>
</feed>