<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://dokuwiki.grogra.de/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://dokuwiki.grogra.de/feed.php">
        <title>GroIMP wiki - 05_developer_tutorials:02_extending_groimp</title>
        <description></description>
        <link>https://dokuwiki.grogra.de/</link>
        <image rdf:resource="https://dokuwiki.grogra.de/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-05-16T08:23:56+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:01_create-groimp-plugin&amp;rev=1739976682&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:add-object-as-node-production&amp;rev=1765541628&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:add-templates-and-examples&amp;rev=1738328584&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:create-new-api-function&amp;rev=1738669868&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:create-new-mimetypes-and-file-types&amp;rev=1738328662&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:create-windows&amp;rev=1763740254&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:creating-node-class&amp;rev=1763739835&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:creating-own-plugin&amp;rev=1773307307&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:jedit-plugins&amp;rev=1738136021&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:linking-help-button&amp;rev=1738328774&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:markdowndoku&amp;rev=1738328792&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:translating-groimp-into-other-languages&amp;rev=1738328811&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://dokuwiki.grogra.de/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>GroIMP wiki</title>
        <link>https://dokuwiki.grogra.de/</link>
        <url>https://dokuwiki.grogra.de/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:01_create-groimp-plugin&amp;rev=1739976682&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-19T14:51:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Creating a Plugin</title>
        <link>https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:01_create-groimp-plugin&amp;rev=1739976682&amp;do=diff</link>
        <description>Creating a Plugin

This tutorial aims at showing how to get started on GroIMP plugin development. It is assumed that you are able to compile the plugin using Maven (either the plugin alone, or the whole project).
In this tutorial we are going to create a new plugin (from the empty template), add a new MimeType (format of file accepted by GroIMP) for import, and add a menu item that run a specific command.</description>
    </item>
    <item rdf:about="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:add-object-as-node-production&amp;rev=1765541628&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-12T12:13:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Includes object in production</title>
        <link>https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:add-object-as-node-production&amp;rev=1765541628&amp;do=diff</link>
        <description>Includes object in production

XL rules can include a production statement, in which some Node and Edges are created (and possibly added - depends on the rule).

The production statement is managed by a Producer object. 
By default, RGG files use a RGGProducer.

RGG producer

By default, all java objects that extends</description>
    </item>
    <item rdf:about="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:add-templates-and-examples&amp;rev=1738328584&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-01-31T13:03:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Add templates and examples</title>
        <link>https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:add-templates-and-examples&amp;rev=1738328584&amp;do=diff</link>
        <description>Add templates and examples

The CLI and the API use the same way to load examples and templates, this way is different from the way currently used in the gui. Therefore the examples and templates added as follows will not show in the GUI.

For the CLI and the</description>
    </item>
    <item rdf:about="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:create-new-api-function&amp;rev=1738669868&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-04T11:51:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Create new API functions</title>
        <link>https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:create-new-api-function&amp;rev=1738669868&amp;do=diff</link>
        <description>Create new API functions

New GroIMP commands that work with the API can be created in any plugin. This small guide will only create a first starting point, for further information the code of the API plugin should be considered.

This does only work with the</description>
    </item>
    <item rdf:about="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:create-new-mimetypes-and-file-types&amp;rev=1738328662&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-01-31T13:04:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Creating new mimeType and File type</title>
        <link>https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:create-new-mimetypes-and-file-types&amp;rev=1738328662&amp;do=diff</link>
        <description>Creating new mimeType and File type

Adding a new type

To add the management of a type of file in GroIMP, three java objects needs to be correctly set up:

	*  The Filetype links the extension types and the Mimetype.
	*  The Mimetype defines how GroIMP detect this object type. It links the</description>
    </item>
    <item rdf:about="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:create-windows&amp;rev=1763740254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-21T15:50:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Create windows</title>
        <link>https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:create-windows&amp;rev=1763740254&amp;do=diff</link>
        <description>Create windows

There are many level of windows that can be created in GroIMP, depending on the needs. 

Basic windows

The most common way of creating a new window is by invoking the “createPanel” of the currently used uitoolkit (Swingtoolkit in</description>
    </item>
    <item rdf:about="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:creating-node-class&amp;rev=1763739835&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-21T15:43:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>How to create a node class</title>
        <link>https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:creating-node-class&amp;rev=1763739835&amp;do=diff</link>
        <description>How to create a node class

Creating an own Java node class is not difficult. The new class, say Cube, has to be a subclass of _de.grogra.graph.impl.Node_ or one of its subclasses. So we have to write something like


import de.grogra.graph.impl.Node;

public class Cube extends Node
{
}</description>
    </item>
    <item rdf:about="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:creating-own-plugin&amp;rev=1773307307&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-12T09:21:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Creating a new Plugin</title>
        <link>https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:creating-own-plugin&amp;rev=1773307307&amp;do=diff</link>
        <description>Creating a new Plugin

Plugin structure

The GroIMP software can be extended by plugins. This page describes how to write a plugin named MyPlugin.

Firstly, a plugin has to have a special directory layout. The layout depends on how you run GroIMP. There are currently two layout:</description>
    </item>
    <item rdf:about="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:jedit-plugins&amp;rev=1738136021&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-01-29T07:33:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>JEdit plugins for GroIMP</title>
        <link>https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:jedit-plugins&amp;rev=1738136021&amp;do=diff</link>
        <description>JEdit plugins for GroIMP

The embedded text editor jEdit has some additional plugins not included in the GroIMP version.

They can be downloaded on the jEdit website.

Integration in GroIMP

To include a jEdit plugin in GroIMP you need to:

	*  Download the plugin source code from the jEdit website.</description>
    </item>
    <item rdf:about="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:linking-help-button&amp;rev=1738328774&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-01-31T13:06:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Configuration of Help buttons</title>
        <link>https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:linking-help-button&amp;rev=1738328774&amp;do=diff</link>
        <description>Configuration of Help buttons

By default every explorer created in GroIMP has a small question mark button on the upper right corner. 
Moreover several buttons are added to different panels. In the following it will be described how to link this buttons to the right places and how to add buttons to newly created panels.</description>
    </item>
    <item rdf:about="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:markdowndoku&amp;rev=1738328792&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-01-31T13:06:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Create embedded documentation based on markdown files</title>
        <link>https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:markdowndoku&amp;rev=1738328792&amp;do=diff</link>
        <description>Create embedded documentation based on markdown files

With GroIMP 2.1.4 it is possible to use a markdown file to generate the content of the embedded documentation of a GroIMP plugin. The idea is that the README.md file of a git repository is then doubly used. Yet since the pipeline depends on pandoc, it is in theory also possible to use a</description>
    </item>
    <item rdf:about="https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:translating-groimp-into-other-languages&amp;rev=1738328811&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-01-31T13:06:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Translating GroIMP into other languages</title>
        <link>https://dokuwiki.grogra.de/doku.php?id=05_developer_tutorials:02_extending_groimp:translating-groimp-into-other-languages&amp;rev=1738328811&amp;do=diff</link>
        <description>Translating GroIMP into other languages

Help to translate GroIMP into other languages is welcome. The steps needed to do so are simple. Every project contains a file src/plugin.properties which stores the text messages displayed in the GUI. To translate those messages into another language, a copy of the file must be made and each message must be replaced by the correct translation.</description>
    </item>
</rdf:RDF>
