kevinhuo88888 / idempiere-plugin-template

iDempiere OSGI Plugin Template

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

org.idempiere.plugin-template

Description

This project is a example template for iDempiere plugins. It's a standard structure. It contains examples about the most frequently used elements (5) Callout, Forms, Models, Processes, Events.

Features

      org.idempiere.{plugin name}
        |_.settings
        |_.classpath
        |_.project
        |_build.properties
        |_COPYING
        |_README.md
        |_META-INF
        |   |_MANIFEST.MF
        |   |_2Pack_x.x.x.zip
        |_OSGI-INF
        |   |_org.idempiere.component.CalloutFactory.xml
        |   |_org.idempiere.component.EventManager.xml
        |   |_org.idempiere.component.FormFactory.xml
        |   |_org.idempiere.component.ModelFactory.xml
        |   |_org.idempiere.component.ProcessFactory.xml
        |_src
            |_org
                |_idempiere
                    |_base (plugin core)                    
                    |   |_CustomCalloutFactory.java (IColumnCalloutFactory implementation)
                    |   |_CustomEventManager.java (AbstractEventHandler implementation)
                    |   |_CustomFormFactory.java (IFormFactory implementation)
                    |   |_CustomModelFactory.java (IModelFactory implementation)
                    |   |_CustomProcessFactory.java (IProcessFactory implementation)
                    |   |_CustomCallout.java (IColumnCallout implementation)
                    |   |_CustomEventHandler.java (for event implementation)
                    |   |_CustomFormController.java (IFormController implementation)
                    |   |_CustomProcess.java (SvrProcess implementation)
                    |_component (pugin components)
                    |   |_CalloutFactory.java (register class callout)
                    |   |_EventManager.java (register class event handler)
                    |   |_FormFactory.java (register class form)
                    |   |_ProcessFactory.java (register class process)
                    |   |_ModelFactory.java (register class model)
                    |_util
                    |   |_PluginInfo.java (gets plugin information dynamically)
                    |   |_TimestampUtil.java (Time utils)
                    |_callout (new callouts, extends CustomCallout)
                    |_event (new events, extends CustomEventHandler)
                    |_form (new forms, extends CustomFormController)
                    |_process (new processes, extends CustomProcess)
                    |_model (autogenerated models)

Standard New Plugin

  • New callout

    • Name: C{callout name}
    • Package: org.idempiere.callout
    • Example: org.idempiere.callout.CStringFormat
  • New process

    • Name: P{process name}
    • Package: org.idempiere.process
    • Example: org.idempiere.process.PGenerateWithholding
  • New form

    • Name: F{form name}
    • Package: org.idempiere.form
    • Example: org.idempiere.form.FMultiPayment
  • New event

    • Name: E{event name}
    • Package: org.idempiere.event
    • Example: org.idempiere.event.EAfterCompleteInvoice
  • New model (extends class X)

    • Name: M{table name without prefix}.
    • Package: org.idempiere.model
    • Example: org.idempiere.model.X_TL_TableExample -> org.idempiere.model.MTableExample

Documentation

  • New callout

    • Create callout in package org.idempiere.callout, extends from CustomCallout
    • Add license header
    • Register callout in org.idempiere.component.CalloutFactory. Example:
        protected void initialize() {
            registerCallout(MTableExample.Table_Name, MTableExample.COLUMNNAME_Text, CPrintPluginInfo.class);
        }
  • New process

    • Create process in package org.idempiere.process, extends from CustomProcess
    • Add license header
    • Register process in org.idempiere.component.ProcessFactory. Example:
        protected void initialize() {
            registerProcess(PPrintPluginInfo.class);
        }
  • New form

    • Create form in package org.idempiere.form, extends from CustomFormController
    • Add license header
    • Register form in org.idempiere.component.FormFactory. Example:
        protected void initialize() {
            registerForm(FPrintPluginInfo.class);
        }
  • New event

    • Create event in package org.idempiere.event, extends from CustomEventHandler
    • Add license header
    • Register event in org.idempiere.component.EventManager. Example:
        protected void initialize() {
            registerTableEvent(IEventTopics.DOC_BEFORE_COMPLETE, MTableExample.Table_Name, EPrintPluginInfo.class);
        }
  • New model (extends form class X)

    • Create model in package org.idempiere.model, extends class X. Example: org.idempiere.model.X_TL_TableExample -> org.idempiere.model.MTableExample
    • Add license header
    • Register model in org.idempiere.component.ModelFactory. Example:
        protected void initialize() {
            registerTableModel(MTableExample.Table_Name, MTableExample.class);
        }

About

iDempiere OSGI Plugin Template

License:GNU General Public License v2.0


Languages

Language:Java 100.0%