Updated extension point documentation formatting. Remove the use of osgi: prefix for form, modelvalidator and process to ease migration, the framework will now always check whether an implementation exists in the extension registry before checking the java classpath. Rename org.adempiere.osgi in swing to org.adempiere.ui.swing.factory and drop the incomplete IMenuAction extension in swing ( will come back to this later ).

This commit is contained in:
Heng Sin Low 2010-12-20 10:46:25 +08:00
parent 474ca1c905
commit 8d1ab1833c
43 changed files with 592 additions and 779 deletions

View File

@ -93,10 +93,12 @@ Instead, you specify Table and Column in the extension declaration.
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension id=&quot;org.adempiere.extend.myCallout point=&quot;org.adempiere.base.Callout&gt; &lt;pre&gt;
&lt;callout class=&quot;org.adempiere.extend.MyCallout tableName=&quot;C_Order&quot; columnName=&quot;C_BPartner_ID&quot;&gt; &lt;extension id=&quot;org.adempiere.extend.myCallout&quot; point=&quot;org.adempiere.base.Callout&quot;&gt;
&lt;callout class=&quot;org.adempiere.extend.MyCallout&quot; tableName=&quot;C_Order&quot; columnName=&quot;C_BPartner_ID&quot;&gt;
&lt;/callout&gt; &lt;/callout&gt;
&lt;/extension&gt; &lt;/extension&gt;
&lt;/pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -115,26 +117,24 @@ Instead, you specify Table and Column in the extension declaration.
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Jorg Viola.
* * Copyright (C) Contributors.
* Copyright (C) Jorg Viola *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * Contributors:
* * Heng Sin Low
* Contributors: *
* - Heng Sin Low *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>

View File

@ -76,12 +76,14 @@
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension &lt;pre&gt;
&lt;extension
point=&quot;org.adempiere.base.IDictionaryService&quot;&gt; point=&quot;org.adempiere.base.IDictionaryService&quot;&gt;
&lt;client &lt;client
class=&quot;org.adempiere.pipo.srv.PipoDictionaryService&quot;&gt; class=&quot;org.adempiere.pipo.srv.PipoDictionaryService&quot;&gt;
&lt;/client&gt; &lt;/client&gt;
&lt;/extension&gt; &lt;/extension&gt;
&lt;/pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -108,25 +110,21 @@
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Jorg Viola.
* * Copyright (C) Contributors.
* Copyright (C) Jorg Viola *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>

View File

@ -90,7 +90,8 @@
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension &lt;pre&gt;
&lt;extension
id=&quot;org.adempiere.base.DefaultDocFactory&quot; id=&quot;org.adempiere.base.DefaultDocFactory&quot;
name=&quot;Default Document Factory&quot; name=&quot;Default Document Factory&quot;
point=&quot;org.adempiere.base.IDocFactory&quot;&gt; point=&quot;org.adempiere.base.IDocFactory&quot;&gt;
@ -100,6 +101,7 @@
priority=&quot;0&quot;&gt; priority=&quot;0&quot;&gt;
&lt;/factory&gt; &lt;/factory&gt;
&lt;/extension&gt; &lt;/extension&gt;
&lt;/pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -126,25 +128,21 @@
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Heng Sin Low.
* * Copyright (C) Contributors.
* Copyright (C) Heng Sin Low *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>

View File

@ -83,7 +83,8 @@
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension &lt;pre&gt;
&lt;extension
id=&quot;org.adempiere.impexp.GridTabXlsExporter&quot; id=&quot;org.adempiere.impexp.GridTabXlsExporter&quot;
name=&quot;Grid data excel exporter&quot; name=&quot;Grid data excel exporter&quot;
point=&quot;org.adempiere.base.IGridTabExporter&quot;&gt; point=&quot;org.adempiere.base.IGridTabExporter&quot;&gt;
@ -92,6 +93,7 @@
priority=&quot;0&quot;&gt; priority=&quot;0&quot;&gt;
&lt;/exporter&gt; &lt;/exporter&gt;
&lt;/extension&gt; &lt;/extension&gt;
&lt;/pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -109,7 +111,7 @@
<meta.section type="implementation"/> <meta.section type="implementation"/>
</appinfo> </appinfo>
<documentation> <documentation>
excel export in org.adempiere.base and 2pack archive export in org.adempiere.pipo[Enter information about supplied implementation of this extension point.] excel export in org.adempiere.base and 2pack archive export in org.adempiere.pipo
</documentation> </documentation>
</annotation> </annotation>
@ -118,25 +120,21 @@
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Heng Sin Low.
* * Copyright (C) Contributors.
* Copyright (C) Heng Sin Low *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>

View File

@ -59,7 +59,7 @@
<attribute name="class" type="string" use="required"> <attribute name="class" type="string" use="required">
<annotation> <annotation>
<documentation> <documentation>
Implementation class name for the org.adempiere.base.IModelFactory interface
</documentation> </documentation>
<appinfo> <appinfo>
<meta.attribute kind="java" basedOn=":org.adempiere.base.IModelFactory"/> <meta.attribute kind="java" basedOn=":org.adempiere.base.IModelFactory"/>
@ -83,7 +83,8 @@
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension &lt;pre&gt;
&lt;extension
id=&quot;org.adempiere.base.DefaultModelFactory&quot; id=&quot;org.adempiere.base.DefaultModelFactory&quot;
name=&quot;Default model factory&quot; name=&quot;Default model factory&quot;
point=&quot;org.adempiere.base.IModelFactory&quot;&gt; point=&quot;org.adempiere.base.IModelFactory&quot;&gt;
@ -92,6 +93,7 @@
priority=&quot;0&quot;&gt; priority=&quot;0&quot;&gt;
&lt;/factory&gt; &lt;/factory&gt;
&lt;/extension&gt; &lt;/extension&gt;
&lt;/pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -118,25 +120,21 @@
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Heng Sin Low.
* * Copyright (C) Contributors.
* Copyright (C) Heng Sin Low *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>

View File

@ -52,7 +52,7 @@
<attribute name="class" type="string" use="required"> <attribute name="class" type="string" use="required">
<annotation> <annotation>
<documentation> <documentation>
Implementation class for the org.compiere.util.IResourceFinder interface Implementation class name for the org.compiere.util.IResourceFinder interface
</documentation> </documentation>
<appinfo> <appinfo>
<meta.attribute kind="java" basedOn=":org.compiere.util.IResourceFinder"/> <meta.attribute kind="java" basedOn=":org.compiere.util.IResourceFinder"/>
@ -76,7 +76,8 @@
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension &lt;pre&gt;
&lt;extension
id=&quot;RF&quot; id=&quot;RF&quot;
name=&quot;RF&quot; name=&quot;RF&quot;
point=&quot;org.adempiere.base.IResourceFinder&quot;&gt; point=&quot;org.adempiere.base.IResourceFinder&quot;&gt;
@ -84,6 +85,7 @@
class=&quot;org.compiere.util.ResourceFinder&quot;&gt; class=&quot;org.compiere.util.ResourceFinder&quot;&gt;
&lt;/finder&gt; &lt;/finder&gt;
&lt;/extension&gt; &lt;/extension&gt;
&lt;/pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -110,25 +112,20 @@
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Jorg Viola.
* * Copyright (C) Contributors.
* Copyright (C) Jorg Viola *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>

View File

@ -6,7 +6,7 @@
<meta.schema plugin="org.adempiere.base" id="org.adempiere.base.ModelValidator" name="Model Validator"/> <meta.schema plugin="org.adempiere.base" id="org.adempiere.base.ModelValidator" name="Model Validator"/>
</appinfo> </appinfo>
<documentation> <documentation>
Extension point to provide model validator instance. Use the osgi:{extension id} syntax in AD_ModelValidator.ModelValidationClass to reference the extension that will provide the concrete ModelValidator instance ( replace {extension id} with your actual extension id ). Alternatively, you can use the EventManager service to listen to model and document event which doesn&apos;t need any AD table entry ( see event.test project for example ). Extension point to provide model validator instance. Use the {extension id} syntax in AD_ModelValidator.ModelValidationClass to reference the extension that will provide the concrete ModelValidator instance ( replace {extension id} with your actual extension id ). Alternatively, you can use the EventManager service to listen to model and document event which doesn&apos;t need any AD table entry ( see event.test project for example ).
</documentation> </documentation>
</annotation> </annotation>
@ -76,7 +76,8 @@
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension &lt;pre&gt;
&lt;extension
id=&quot;org.adempiere.extend.myModelValidator&quot; id=&quot;org.adempiere.extend.myModelValidator&quot;
name=&quot;My Model Validator&quot; name=&quot;My Model Validator&quot;
point=&quot;org.adempiere.base.ModelValidator&quot;&gt; point=&quot;org.adempiere.base.ModelValidator&quot;&gt;
@ -85,6 +86,9 @@
priority=&quot;0&quot;&gt; priority=&quot;0&quot;&gt;
&lt;/listener&gt; &lt;/listener&gt;
&lt;/extension&gt; &lt;/extension&gt;
AD_ModelValidator.ModelValidationClass=&quot;org.adempiere.extend.myModelValidator&quot;
&lt;/pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -103,25 +107,20 @@
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Jorg Viola.
* * Copyright (C) Contributors.
* Copyright (C) Jorg Viola *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>

View File

@ -6,7 +6,7 @@
<meta.schema plugin="org.adempiere.base" id="org.adempiere.base.Process" name="Process"/> <meta.schema plugin="org.adempiere.base" id="org.adempiere.base.Process" name="Process"/>
</appinfo> </appinfo>
<documentation> <documentation>
Extension to provide process implementation. Use the osgi:{extension id} syntax in AD_Process.ClassName to reference the extension that will provide the ProcessCall/SvrProcess instance (replace {extension id} with your actual extension id ) Extension to provide process implementation. Use the {extension id} syntax in AD_Process.ClassName to reference the extension that will provide the ProcessCall/SvrProcess instance (replace {extension id} with your actual extension id )
</documentation> </documentation>
</annotation> </annotation>
@ -76,7 +76,8 @@
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension &lt;pre&gt;
&lt;extension
id=&quot;org.adempiere.extend.myProcess&quot; id=&quot;org.adempiere.extend.myProcess&quot;
name=&quot;My Process&quot; name=&quot;My Process&quot;
point=&quot;org.adempiere.base.Process&quot;&gt; point=&quot;org.adempiere.base.Process&quot;&gt;
@ -84,6 +85,9 @@
class=&quot;org.adempiere.extend.MyProcess&quot;&gt; class=&quot;org.adempiere.extend.MyProcess&quot;&gt;
&lt;/process&gt; &lt;/process&gt;
&lt;/extension&gt; &lt;/extension&gt;
AD_Process.ClassName=&quot;org.adempiere.extend.myProcess&quot;
&lt;/pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -96,39 +100,26 @@
</documentation> </documentation>
</annotation> </annotation>
<annotation>
<appinfo>
<meta.section type="implementation"/>
</appinfo>
<documentation>
[Enter information about supplied implementation of this extension point.]
</documentation>
</annotation>
<annotation> <annotation>
<appinfo> <appinfo>
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Jorg Viola.
* * Copyright (C) Contributors.
* Copyright (C) Jorg Viola *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>

View File

@ -85,13 +85,15 @@ To support a database in adempiere, you need to extend this extension point and
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension &lt;pre&gt;
&lt;extension
point=&quot;org.compiere.db.AdempiereDatabase&quot;&gt; point=&quot;org.compiere.db.AdempiereDatabase&quot;&gt;
&lt;database &lt;database
class=&quot;org.compiere.db.DB_PostgreSQL&quot; class=&quot;org.compiere.db.DB_PostgreSQL&quot;
id=&quot;PostgreSQL&quot;&gt; id=&quot;PostgreSQL&quot;&gt;
&lt;/database&gt; &lt;/database&gt;
&lt;/extension&gt; &lt;/extension&gt;
&lt;/pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -118,25 +120,21 @@ To support a database in adempiere, you need to extend this extension point and
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Heng Sin Low.
* * Copyright (C) Contributors.
* Copyright (C) Heng Sin Low *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>

View File

@ -76,12 +76,14 @@
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension &lt;pre&gt;
&lt;extension
point=&quot;org.compiere.interfaces.Server&quot;&gt; point=&quot;org.compiere.interfaces.Server&quot;&gt;
&lt;interface &lt;interface
class=&quot;org.adempiere.client.ServerInterface&quot;&gt; class=&quot;org.adempiere.client.ServerInterface&quot;&gt;
&lt;/interface&gt; &lt;/interface&gt;
&lt;/extension&gt; &lt;/extension&gt;
&lt;/Pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -108,25 +110,20 @@
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Jorg Viola.
* * Copyright (C) Contributors.
* Copyright (C) Heng Sin Low *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>

View File

@ -76,12 +76,14 @@
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension &lt;pre&gt;
&lt;extension
point=&quot;org.compiere.interfaces.Status&quot;&gt; point=&quot;org.compiere.interfaces.Status&quot;&gt;
&lt;interface &lt;interface
class=&quot;org.adempiere.client.StatusInterface&quot;&gt; class=&quot;org.adempiere.client.StatusInterface&quot;&gt;
&lt;/interface&gt; &lt;/interface&gt;
&lt;/extension&gt; &lt;/extension&gt;
&lt;/pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -108,25 +110,20 @@
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Jorg Viola.
* * Copyright (C) Contributors.
* Copyright (C) Heng Sin Low *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>

View File

@ -31,11 +31,13 @@ import org.compiere.process.ProcessCall;
* It provides simple access to all core services. * It provides simple access to all core services.
* *
* @author viola * @author viola
* @author hengsin
*/ */
public class Core { public class Core {
public static final String OSGI_PREFIX = "osgi:"; /**
* @return list of active resource finder
*/
public static IResourceFinder getResourceFinder() { public static IResourceFinder getResourceFinder() {
return new IResourceFinder() { return new IResourceFinder() {
@ -51,6 +53,12 @@ public class Core {
}; };
} }
/**
*
* @param tableName
* @param columnName
* @return list of callout register for tableName.columnName
*/
public static List<IColumnCallout> findCallout(String tableName, String columnName) { public static List<IColumnCallout> findCallout(String tableName, String columnName) {
ServiceQuery query = new ServiceQuery(); ServiceQuery query = new ServiceQuery();
query.put("tableName", tableName); query.put("tableName", tableName);
@ -59,25 +67,25 @@ public class Core {
return Service.list(IColumnCallout.class, query); return Service.list(IColumnCallout.class, query);
} }
public static boolean isExtension(String className) { /**
return className.startsWith(OSGI_PREFIX); *
} * @param extensionId
* @return ProcessCall instance or null if extensionId not found
public static ProcessCall getProcess(String className) { */
if (isExtension(className)) public static ProcessCall getProcess(String extensionId) {
className = className.substring(Core.OSGI_PREFIX.length());
ServiceQuery query = new ServiceQuery(); ServiceQuery query = new ServiceQuery();
query.put(ServiceQuery.EXTENSION_ID, className); query.put(ServiceQuery.EXTENSION_ID, extensionId);
return Service.locate(ProcessCall.class, "org.adempiere.base.Process", query); return Service.locate(ProcessCall.class, "org.adempiere.base.Process", query);
} }
public static ModelValidator getModelValidator(String className) { /**
if (isExtension(className)) *
className = className.substring(Core.OSGI_PREFIX.length()); * @param extensionId
* @return ModelValidator instance of null if extensionId not found
*/
public static ModelValidator getModelValidator(String extensionId) {
ServiceQuery query = new ServiceQuery(); ServiceQuery query = new ServiceQuery();
query.put(ServiceQuery.EXTENSION_ID, className); query.put(ServiceQuery.EXTENSION_ID, extensionId);
return Service.locate(ModelValidator.class, "org.adempiere.base.ModelValidator", query); return Service.locate(ModelValidator.class, "org.adempiere.base.ModelValidator", query);
} }

View File

@ -142,9 +142,8 @@ public final class ProcessUtil {
} }
ProcessCall process = null; ProcessCall process = null;
if (Core.isExtension(className)) { //always query equinox extension first
process = Core.getProcess(className); process = Core.getProcess(className);
}
if (process == null) { if (process == null) {
//Get Class //Get Class

View File

@ -155,10 +155,9 @@ public class ModelValidationEngine
{ {
// //
ModelValidator validator = null; ModelValidator validator = null;
if (Core.isExtension(className)) //always query equinox extension first
{ validator = Core.getModelValidator(className);
validator = Core.getModelValidator(className);
}
if (validator == null) if (validator == null)
{ {
Class<?> clazz = Class.forName(className); Class<?> clazz = Class.forName(className);

View File

@ -83,7 +83,8 @@
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension &lt;pre&gt;
&lt;extension
id=&quot;org.adempiere.db.postgresql.config.ConfigPostgreSQL&quot; id=&quot;org.adempiere.db.postgresql.config.ConfigPostgreSQL&quot;
name=&quot;PostgreSQL Database Configuration&quot; name=&quot;PostgreSQL Database Configuration&quot;
point=&quot;org.adempiere.install.IDatabaseConfig&quot;&gt; point=&quot;org.adempiere.install.IDatabaseConfig&quot;&gt;
@ -92,6 +93,7 @@
id=&quot;PostgreSQL&quot;&gt; id=&quot;PostgreSQL&quot;&gt;
&lt;/database&gt; &lt;/database&gt;
&lt;/extension&gt; &lt;/extension&gt;
&lt;/pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -118,25 +120,21 @@
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Heng Sin Low.
* * Copyright (C) Contributors.
* Copyright (C) Heng Sin Low *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>

View File

@ -3,7 +3,7 @@
<schema targetNamespace="org.adempiere.pipo" xmlns="http://www.w3.org/2001/XMLSchema"> <schema targetNamespace="org.adempiere.pipo" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation> <annotation>
<appinfo> <appinfo>
<meta.schema plugin="org.adempiere.pipo" id="org.adempiere.pipo.packOutHandlers" name="Packout Handlers"/> <meta.schema plugin="org.adempiere.pipo" id="org.adempiere.pipo.Handlers" name="2Pack Element Handlers"/>
</appinfo> </appinfo>
<documentation> <documentation>
Extension point to provide 2pack handler implementation Extension point to provide 2pack handler implementation
@ -59,7 +59,7 @@
<attribute name="class" type="string" use="required"> <attribute name="class" type="string" use="required">
<annotation> <annotation>
<documentation> <documentation>
Implementation class name for the org.adempiere.pipo2.ElementHandler interface
</documentation> </documentation>
<appinfo> <appinfo>
<meta.attribute kind="java" basedOn=":org.adempiere.pipo2.ElementHandler"/> <meta.attribute kind="java" basedOn=":org.adempiere.pipo2.ElementHandler"/>
@ -90,35 +90,24 @@
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension &lt;pre&gt;
&lt;extension
id=&quot;defaultHandlers&quot; name=&quot;Default Handlers&quot; id=&quot;defaultHandlers&quot; name=&quot;Default Handlers&quot;
point=&quot;org.adempiere.pipo.Handlers&quot;&gt; point=&quot;org.adempiere.pipo.Handlers&quot;&gt;
&lt;handler
class=&quot;org.adempiere.pipo2.handler.AdElementHandler&quot;
id=&quot;AD_Element&quot;&gt;
&lt;/handler&gt;
&lt;handler
class=&quot;org.adempiere.pipo2.handler.CodeSnippetElementHandler&quot;
id=&quot;Code_Snippet&quot;&gt;
&lt;/handler&gt;
&lt;handler &lt;handler
class=&quot;org.adempiere.pipo2.handler.ColumnElementHandler&quot; class=&quot;org.adempiere.pipo2.handler.ColumnElementHandler&quot;
id=&quot;AD_Column&quot;&gt; id=&quot;AD_Column&quot;&gt;
&lt;/handler&gt; &lt;/handler&gt;
...
&lt;handler &lt;handler
class=&quot;org.adempiere.pipo2.handler.SQLStatementElementHandler&quot; class=&quot;org.adempiere.pipo2.handler.SQLStatementElementHandler&quot;
id=&quot;SQLStatement&quot;&gt; id=&quot;SQLStatement&quot;&gt;
&lt;/handler&gt; &lt;/handler&gt;
&lt;handler
class=&quot;org.adempiere.pipo2.handler.CommonTranslationHandler&quot;
id=&quot;table.translationHandler&quot;&gt;
&lt;/handler&gt;
&lt;handler &lt;handler
class=&quot;org.adempiere.pipo2.handler.GenericPOElementHandler&quot; class=&quot;org.adempiere.pipo2.handler.GenericPOElementHandler&quot;
id=&quot;table.genericHandler&quot;&gt; id=&quot;table.genericHandler&quot;&gt;
&lt;/handler&gt; &lt;/handler&gt;
&lt;/extension&gt; &lt;/extension&gt;
&lt;/pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -145,25 +134,21 @@
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Heng Sin Low.
* * Copyright (C) Contributors.
* Copyright (C) Heng Sin Low *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>

View File

@ -76,12 +76,14 @@
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension &lt;pre&gt;
&lt;extension
point=&quot;org.compiere.report.JRViewerProvider&quot;&gt; point=&quot;org.compiere.report.JRViewerProvider&quot;&gt;
&lt;provider &lt;provider
class=&quot;org.adempiere.webui.window.ZkJRViewerProvider&quot;&gt; class=&quot;org.adempiere.webui.window.ZkJRViewerProvider&quot;&gt;
&lt;/provider&gt; &lt;/provider&gt;
&lt;/extension&gt; &lt;/extension&gt;
&lt;/pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -108,25 +110,21 @@
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Heng Sin Low.
* * Copyright (C) Contributors.
* Copyright (C) Heng Sin Low *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>

View File

@ -76,12 +76,14 @@
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension &lt;pre&gt;
&lt;extension
point=&quot;org.adempiere.server.IServerFactory&quot;&gt; point=&quot;org.adempiere.server.IServerFactory&quot;&gt;
&lt;factory &lt;factory
class=&quot;org.adempiere.server.rpl.imp.ReplicationServerFactory&quot;&gt; class=&quot;org.adempiere.server.rpl.imp.ReplicationServerFactory&quot;&gt;
&lt;/factory&gt; &lt;/factory&gt;
&lt;/extension&gt; &lt;/extension&gt;
&lt;/pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -108,25 +110,21 @@
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Heng Sin Low.
* * Copyright (C) Contributors.
* Copyright (C) Heng Sin Low *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>

View File

@ -12,7 +12,6 @@ Export-Package: de.schaeffer.compiere.tools,
net.miginfocom.layout, net.miginfocom.layout,
net.miginfocom.swing, net.miginfocom.swing,
org.adempiere.apps.graph, org.adempiere.apps.graph,
org.adempiere.osgi,
org.adempiere.pdf.viewer, org.adempiere.pdf.viewer,
org.adempiere.plaf, org.adempiere.plaf,
org.compiere, org.compiere,

View File

@ -1,10 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?> <?eclipse version="3.4"?>
<plugin> <plugin>
<extension-point id="org.adempiere.osgi.IMenuAction" name="MenuAction" schema="schema/org.adempiere.osgi.IMenuAction.exsd"/>
<extension-point id="org.adempiere.apps.Form" name="Form" schema="schema/org.adempiere.apps.Form.exsd"/> <extension-point id="org.adempiere.apps.Form" name="Form" schema="schema/org.adempiere.apps.Form.exsd"/>
<extension-point id="org.adempiere.osgi.IInfoFactory" name="Info Factory extension" schema="schema/org.adempiere.osgi.IInfoFactory.exsd"/> <extension-point id="org.adempiere.ui.swing.factory.IInfoFactory" name="Info Factory extension" schema="schema/org.adempiere.ui.swing.factory.IInfoFactory.exsd"/>
<extension-point id="org.adempiere.osgi.IEditorFactory" name="Field editor factory" schema="schema/org.adempiere.osgi.IEditorFactory.exsd"/> <extension-point id="org.adempiere.ui.swing.factory.IEditorFactory" name="Field editor factory" schema="schema/org.adempiere.ui.swing.factory.IEditorFactory.exsd"/>
<extension <extension
id="RF" id="RF"
name="RF" name="RF"
@ -52,20 +51,20 @@
</product> </product>
</extension> </extension>
<extension <extension
id="org.adempiere.osgi.DefaultInfoFactory" id="org.adempiere.ui.swing.factory.DefaultInfoFactory"
name="Default Info Factory" name="Default Info Factory"
point="org.adempiere.osgi.IInfoFactory"> point="org.adempiere.ui.swing.factory.IInfoFactory">
<factory <factory
class="org.adempiere.osgi.DefaultInfoFactory" class="org.adempiere.ui.swing.factory.DefaultInfoFactory"
priority="0"> priority="0">
</factory> </factory>
</extension> </extension>
<extension <extension
id="org.adempiere.osgi.DefaultEditorFactory" id="org.adempiere.ui.swing.factory.DefaultEditorFactory"
name="Default field editor factory" name="Default field editor factory"
point="org.adempiere.osgi.IEditorFactory"> point="org.adempiere.ui.swing.factory.IEditorFactory">
<factory <factory
class="org.adempiere.osgi.DefaultEditorFactory" class="org.adempiere.ui.swing.factory.DefaultEditorFactory"
priority="0"> priority="0">
</factory> </factory>
</extension> </extension>

View File

@ -6,7 +6,7 @@
<meta.schema plugin="org.adempiere.client" id="org.adempiere.apps.Form" name="Form"/> <meta.schema plugin="org.adempiere.client" id="org.adempiere.apps.Form" name="Form"/>
</appinfo> </appinfo>
<documentation> <documentation>
Extension point to provide FormPanel instance. Use the osgi:{extension id} syntax in AD_Form.ClassName to reference the extension that will provide the FormPanel instance ( replace {extension_id} with your actual extension id ). Extension point to provide FormPanel instance. Use the {extension id} syntax in AD_Form.ClassName to reference the extension that will provide the FormPanel instance ( replace {extension id} with your actual extension id ).
</documentation> </documentation>
</annotation> </annotation>
@ -76,14 +76,18 @@
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension &lt;pre&gt;
&lt;extension
id=&quot;org.adempiere.extend.myForm&quot; id=&quot;org.adempiere.extend.myForm&quot;
name=&quot;My Form&quot; name=&quot;My Form&quot;
point=&quot;org.adempiere.apps.Form&quot;&gt; point=&quot;org.adempiere.apps.Form&quot;&gt;
&lt;process &lt;process
class=&quot;org.adempiere.extend.MyForm&quot;&gt; class=&quot;org.adempiere.ui.swing.extend.MyForm&quot;&gt;
&lt;/process&gt; &lt;/process&gt;
&lt;/extension&gt; &lt;/extension&gt;
AD_Form.ClassName=&quot;org.adempiere.extend.myForm&quot;
&lt;/pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -96,39 +100,27 @@
</documentation> </documentation>
</annotation> </annotation>
<annotation>
<appinfo>
<meta.section type="implementation"/>
</appinfo>
<documentation>
[Enter information about supplied implementation of this extension point.]
</documentation>
</annotation>
<annotation> <annotation>
<appinfo> <appinfo>
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Heng Sin Low.
* * Copyright (C) Contributors.
* Copyright (C) Heng Sin Low *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>

View File

@ -1,101 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<schema targetNamespace="org.adempiere.client" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
<appinfo>
<meta.schema plugin="org.adempiere.client" id="org.adempiere.osgi.IMenuAction" name="MenuAction"/>
</appinfo>
<documentation>
[Enter description of this extension point.]
</documentation>
</annotation>
<element name="extension">
<annotation>
<appinfo>
<meta.element />
</appinfo>
</annotation>
<complexType>
<choice>
<element ref="client" minOccurs="1" maxOccurs="unbounded"/>
</choice>
<attribute name="point" type="string" use="required">
<annotation>
<documentation>
</documentation>
</annotation>
</attribute>
<attribute name="id" type="string">
<annotation>
<documentation>
</documentation>
</annotation>
</attribute>
<attribute name="name" type="string">
<annotation>
<documentation>
</documentation>
<appinfo>
<meta.attribute translatable="true"/>
</appinfo>
</annotation>
</attribute>
</complexType>
</element>
<element name="client">
<complexType>
<attribute name="class" type="string" use="required">
<annotation>
<documentation>
</documentation>
<appinfo>
<meta.attribute kind="java" basedOn=":org.adempiere.osgi.IMenuAction"/>
</appinfo>
</annotation>
</attribute>
</complexType>
</element>
<annotation>
<appinfo>
<meta.section type="since"/>
</appinfo>
<documentation>
[Enter the first release in which this extension point appears.]
</documentation>
</annotation>
<annotation>
<appinfo>
<meta.section type="examples"/>
</appinfo>
<documentation>
[Enter extension point usage example here.]
</documentation>
</annotation>
<annotation>
<appinfo>
<meta.section type="apiinfo"/>
</appinfo>
<documentation>
[Enter API information here.]
</documentation>
</annotation>
<annotation>
<appinfo>
<meta.section type="implementation"/>
</appinfo>
<documentation>
[Enter information about supplied implementation of this extension point.]
</documentation>
</annotation>
</schema>

View File

@ -83,15 +83,17 @@
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension &lt;pre&gt;
id=&quot;org.adempiere.osgi.DefaultEditorFactory&quot; &lt;extension
id=&quot;org.adempiere.ui.swing.factory.DefaultEditorFactory&quot;
name=&quot;Default field editor factory&quot; name=&quot;Default field editor factory&quot;
point=&quot;org.adempiere.osgi.IEditorFactory&quot;&gt; point=&quot;org.adempiere.ui.swing.factory.IEditorFactory&quot;&gt;
&lt;factory &lt;factory
class=&quot;org.adempiere.osgi.DefaultEditorFactory&quot; class=&quot;org.adempiere.ui.swing.factory.DefaultEditorFactory&quot;
priority=&quot;0&quot;&gt; priority=&quot;0&quot;&gt;
&lt;/factory&gt; &lt;/factory&gt;
&lt;/extension&gt; &lt;/extension&gt;
&lt;/pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -100,7 +102,7 @@
<meta.section type="apiinfo"/> <meta.section type="apiinfo"/>
</appinfo> </appinfo>
<documentation> <documentation>
The class attribute must represent an implementor of org.adempiere.osgi.IEditorFactory The class attribute must represent an implementor of org.adempiere.ui.swing.factory.IEditorFactory
</documentation> </documentation>
</annotation> </annotation>
@ -118,25 +120,20 @@
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Heng Sin Low.
* * Copyright (C) Contributors.
* Copyright (C) Heng Sin Low *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>

View File

@ -59,7 +59,7 @@
<attribute name="class" type="string" use="required"> <attribute name="class" type="string" use="required">
<annotation> <annotation>
<documentation> <documentation>
Implementation class name for the org.adempiere.osgi.IInfoFactory interface
</documentation> </documentation>
<appinfo> <appinfo>
<meta.attribute kind="java" basedOn=":org.adempiere.osgi.IInfoFactory"/> <meta.attribute kind="java" basedOn=":org.adempiere.osgi.IInfoFactory"/>
@ -83,15 +83,17 @@
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension &lt;pre&gt;
id=&quot;org.adempiere.osgi.DefaultInfoFactory&quot; &lt;extension
id=&quot;org.adempiere.ui.swing.factory.DefaultInfoFactory&quot;
name=&quot;Default Info Factory&quot; name=&quot;Default Info Factory&quot;
point=&quot;org.adempiere.osgi.IInfoFactory&quot;&gt; point=&quot;org.adempiere.ui.swing.factory.IInfoFactory&quot;&gt;
&lt;factory &lt;factory
class=&quot;org.adempiere.osgi.DefaultInfoFactory&quot; class=&quot;org.adempiere.ui.swing.factory.DefaultInfoFactory&quot;
priority=&quot;0&quot;&gt; priority=&quot;0&quot;&gt;
&lt;/factory&gt; &lt;/factory&gt;
&lt;/extension&gt; &lt;/extension&gt;
&lt;/pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -100,7 +102,7 @@
<meta.section type="apiinfo"/> <meta.section type="apiinfo"/>
</appinfo> </appinfo>
<documentation> <documentation>
The class attribute must represent an implementor of org.adempiere.osgi.IInfoFactory The class attribute must represent an implementor of org.adempiere.ui.swing.factory.IInfoFactory
</documentation> </documentation>
</annotation> </annotation>
@ -118,25 +120,20 @@
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Heng Sin Low.
* * Copyright (C) Contributors.
* Copyright (C) Heng Sin Low *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>

View File

@ -1,17 +1,44 @@
/******************************************************************************
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org *
* *
* Copyright (C) Jorg Viola *
* Copyright (C) Contributors *
* *
* This program is free software; you can redistribute it and/or modify it *
* under the terms version 2 of the GNU General Public License as published *
* by the Free Software Foundation. This program is distributed in the hope *
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
* See the GNU General Public License for more details. *
* You should have received a copy of the GNU General Public License along *
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
* - Heng Sin Low *
*****************************************************************************/
package org.adempiere.client; package org.adempiere.client;
import org.adempiere.base.Core;
import org.adempiere.base.Service; import org.adempiere.base.Service;
import org.adempiere.base.ServiceQuery; import org.adempiere.base.ServiceQuery;
import org.compiere.apps.form.FormPanel; import org.compiere.apps.form.FormPanel;
/**
*
* @author viola
* @author hengsin
*/
public class Client { public class Client {
public static FormPanel getFormPanel(String className) { /**
if (Core.isExtension(className)) *
className = className.substring(Core.OSGI_PREFIX.length()); * @param extensionId
* @return
*/
public static FormPanel getFormPanel(String extensionId) {
ServiceQuery query = new ServiceQuery(); ServiceQuery query = new ServiceQuery();
query.put(ServiceQuery.EXTENSION_ID, className); query.put(ServiceQuery.EXTENSION_ID, extensionId);
return Service.locate(FormPanel.class, "org.adempiere.apps.Form", query); return Service.locate(FormPanel.class, "org.adempiere.apps.Form", query);
} }

View File

@ -11,12 +11,13 @@
* with this program; if not, write to the Free Software Foundation, Inc., * * with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
*****************************************************************************/ *****************************************************************************/
package org.adempiere.osgi; package org.adempiere.client;
import java.awt.Frame; import java.awt.Frame;
import java.util.List; import java.util.List;
import org.adempiere.base.Service; import org.adempiere.base.Service;
import org.adempiere.ui.swing.factory.IInfoFactory;
import org.compiere.apps.search.Info; import org.compiere.apps.search.Info;
import org.compiere.model.GridField; import org.compiere.model.GridField;
import org.compiere.model.Lookup; import org.compiere.model.Lookup;

View File

@ -1,35 +0,0 @@
package org.adempiere.osgi;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import org.compiere.util.CLogger;
import org.compiere.util.Env;
import org.compiere.util.Msg;
public abstract class AbstractMenuAction implements IMenuAction {
protected CLogger log = CLogger.getCLogger(getClass());
protected JMenu getMenu(JMenuBar menuBar, String label) {
// Translated text
String text = Msg.getMsg(Env.getCtx(), label);
int pos = text.indexOf('&');
if (pos != -1) {
text = text.substring(0, pos) + text.substring(pos+1);
}
for (int i=0; i < menuBar.getMenuCount(); i++) {
JMenu menu = menuBar.getMenu(i);
if (text.equals(menu.getText())) {
return menu;
}
}
// menu not found.
log.warning("Menu " + label + " not found.");
return null;
}
}

View File

@ -1,9 +0,0 @@
package org.adempiere.osgi;
import javax.swing.JMenuBar;
public interface IMenuAction {
public void addAction(JMenuBar menuBar);
}

View File

@ -11,7 +11,7 @@
* with this program; if not, write to the Free Software Foundation, Inc., * * with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
*****************************************************************************/ *****************************************************************************/
package org.adempiere.osgi; package org.adempiere.ui.swing.factory;
import org.compiere.grid.ed.ADempiereAutoCompleteDecorator; import org.compiere.grid.ed.ADempiereAutoCompleteDecorator;
import org.compiere.grid.ed.VAccount; import org.compiere.grid.ed.VAccount;

View File

@ -11,7 +11,7 @@
* with this program; if not, write to the Free Software Foundation, Inc., * * with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
*****************************************************************************/ *****************************************************************************/
package org.adempiere.osgi; package org.adempiere.ui.swing.factory;
import java.awt.Frame; import java.awt.Frame;
import java.util.logging.Level; import java.util.logging.Level;

View File

@ -11,7 +11,7 @@
* with this program; if not, write to the Free Software Foundation, Inc., * * with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
*****************************************************************************/ *****************************************************************************/
package org.adempiere.osgi; package org.adempiere.ui.swing.factory;
import org.compiere.grid.ed.VEditor; import org.compiere.grid.ed.VEditor;
import org.compiere.model.GridField; import org.compiere.model.GridField;

View File

@ -11,7 +11,7 @@
* with this program; if not, write to the Free Software Foundation, Inc., * * with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
*****************************************************************************/ *****************************************************************************/
package org.adempiere.osgi; package org.adempiere.ui.swing.factory;
import java.awt.Frame; import java.awt.Frame;

View File

@ -33,7 +33,6 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Properties; import java.util.Properties;
import java.util.TreeMap; import java.util.TreeMap;
@ -60,8 +59,6 @@ import javax.swing.SwingUtilities;
import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener; import javax.swing.event.ChangeListener;
import org.adempiere.base.Service;
import org.adempiere.osgi.IMenuAction;
import org.compiere.apps.form.FormFrame; import org.compiere.apps.form.FormFrame;
import org.compiere.apps.search.Find; import org.compiere.apps.search.Find;
import org.compiere.grid.APanelTab; import org.compiere.grid.APanelTab;
@ -528,12 +525,6 @@ public final class APanel extends CPanel
toolBar.add(aEnd.getButton()); toolBar.add(aEnd.getButton());
} }
// Create OSGi menu actions..
List<IMenuAction> osgiActions = Service.list(IMenuAction.class);
for (IMenuAction action:osgiActions) {
action.addAction(menuBar);
}
// //
if (CLogMgt.isLevelAll()) if (CLogMgt.isLevelAll())
Util.printActionInputMap(this); Util.printActionInputMap(this);

View File

@ -33,7 +33,6 @@ import javax.swing.JMenu;
import javax.swing.JMenuBar; import javax.swing.JMenuBar;
import javax.swing.KeyStroke; import javax.swing.KeyStroke;
import org.adempiere.base.Core;
import org.adempiere.client.Client; import org.adempiere.client.Client;
import org.compiere.apps.AEnv; import org.compiere.apps.AEnv;
import org.compiere.apps.AGlassPane; import org.compiere.apps.AGlassPane;
@ -316,10 +315,10 @@ public class FormFrame extends CFrame
try try
{ {
// Create instance w/o parameters // Create instance w/o parameters
if (Core.isExtension(className)) // Try equinox extension then java classpath
m_panel = Client.getFormPanel(className); m_panel = Client.getFormPanel(className);
else if (m_panel == null)
m_panel = (FormPanel)Class.forName(className).newInstance(); m_panel = (FormPanel)Class.forName(className).newInstance();
} }
catch (Exception e) catch (Exception e)

View File

@ -40,7 +40,7 @@ import javax.swing.SwingUtilities;
import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener; import javax.swing.event.ListSelectionListener;
import org.adempiere.osgi.InfoManager; import org.adempiere.client.InfoManager;
import org.compiere.apps.ADialog; import org.compiere.apps.ADialog;
import org.compiere.apps.AEnv; import org.compiere.apps.AEnv;
import org.compiere.apps.AWindow; import org.compiere.apps.AWindow;

View File

@ -19,7 +19,7 @@ package org.compiere.grid.ed;
import java.util.List; import java.util.List;
import org.adempiere.base.Service; import org.adempiere.base.Service;
import org.adempiere.osgi.IEditorFactory; import org.adempiere.ui.swing.factory.IEditorFactory;
import org.compiere.model.GridField; import org.compiere.model.GridField;
import org.compiere.model.GridTab; import org.compiere.model.GridTab;
import org.compiere.swing.CLabel; import org.compiere.swing.CLabel;

View File

@ -46,7 +46,7 @@ import javax.swing.KeyStroke;
import javax.swing.LookAndFeel; import javax.swing.LookAndFeel;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import org.adempiere.osgi.InfoManager; import org.adempiere.client.InfoManager;
import org.compiere.apps.ADialog; import org.compiere.apps.ADialog;
import org.compiere.apps.AEnv; import org.compiere.apps.AEnv;
import org.compiere.apps.AWindow; import org.compiere.apps.AWindow;

View File

@ -1,18 +1,45 @@
/******************************************************************************
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org *
* *
* Copyright (C) Jorg Viola *
* Copyright (C) Contributors *
* *
* This program is free software; you can redistribute it and/or modify it *
* under the terms version 2 of the GNU General Public License as published *
* by the Free Software Foundation. This program is distributed in the hope *
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
* See the GNU General Public License for more details. *
* You should have received a copy of the GNU General Public License along *
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
* - Heng Sin Low *
*****************************************************************************/
package org.adempiere.webui; package org.adempiere.webui;
import org.adempiere.base.Core;
import org.adempiere.base.Service; import org.adempiere.base.Service;
import org.adempiere.base.ServiceQuery; import org.adempiere.base.ServiceQuery;
import org.adempiere.webui.panel.IFormController;
/**
*
* @author viola
* @author hengsin
*
*/
public class Extensions { public class Extensions {
public static Object getForm(String id) { /**
if (Core.isExtension(id)) { *
id = id.substring(Core.OSGI_PREFIX.length()); * @param extensionId
} * @return IFormController instance or null if extensionId not found
*/
public static IFormController getForm(String extensionId) {
ServiceQuery query = new ServiceQuery(); ServiceQuery query = new ServiceQuery();
query.put(ServiceQuery.EXTENSION_ID, id); query.put(ServiceQuery.EXTENSION_ID, extensionId);
return Service.locate(Object.class, "org.adempiere.webui.Form", query); return Service.locate(IFormController.class, "org.adempiere.webui.Form", query);
} }
} }

View File

@ -19,7 +19,6 @@ package org.adempiere.webui.panel;
import java.util.logging.Level; import java.util.logging.Level;
import org.adempiere.base.Core;
import org.adempiere.webui.Extensions; import org.adempiere.webui.Extensions;
import org.adempiere.webui.component.Window; import org.adempiere.webui.component.Window;
import org.adempiere.webui.exception.ApplicationException; import org.adempiere.webui.exception.ApplicationException;
@ -303,11 +302,7 @@ public abstract class ADForm extends Window implements EventListener
{ {
logger.info("AD_Form_ID=" + adFormID + " - Class=" + richClassName); logger.info("AD_Form_ID=" + adFormID + " - Class=" + richClassName);
if (Core.isExtension(richClassName)) obj = Extensions.getForm(richClassName);
{
obj = Extensions.getForm(richClassName);
}
if (obj == null) if (obj == null)
{ {
//static lookup //static lookup
@ -348,18 +343,10 @@ public abstract class ADForm extends Window implements EventListener
else if (obj instanceof IFormController) else if (obj instanceof IFormController)
{ {
IFormController customForm = (IFormController)obj; IFormController customForm = (IFormController)obj;
Object o = customForm.getForm(); form = customForm.getForm();
if(o instanceof ADForm) form.setICustomForm(customForm);
{ form.init(adFormID, name);
form = (ADForm)o; return form;
form.setICustomForm(customForm);
form.init(adFormID, name);
return form;
}
else
throw new ApplicationException("The web user interface custom form '" +
webClassName +
"' cannot be displayed in the web user interface.");
} }
else else
{ {

View File

@ -6,7 +6,7 @@
<meta.schema plugin="org.adempiere.webui" id="org.adempiere.webui.Form" name="Web Form"/> <meta.schema plugin="org.adempiere.webui" id="org.adempiere.webui.Form" name="Web Form"/>
</appinfo> </appinfo>
<documentation> <documentation>
Extension point to provide form controller implementation. Use the osgi:{extension id} in AD_Form.ClassName to reference the extension that will provide the form controller instance ( replace osgi:{extension id} with your actual extension id ). Note that if you intend to support both swing and zk client, you should use the same extension id for the swing and zk form extension ( of course, class name should be different ). Extension point to provide form controller implementation. Use the {extension id} in AD_Form.ClassName to reference the extension that will provide the form controller instance ( replace {extension id} with your actual extension id ). Note that if you intend to support both swing and zk client, you should use the same extension id for the swing and zk form extension ( of course, class name should be different ).
</documentation> </documentation>
</annotation> </annotation>
@ -76,14 +76,18 @@
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension &lt;pre&gt;
id=&quot;org.adempiere.webui.extend.myForm&quot; &lt;extension
id=&quot;org.adempiere.extend.myForm&quot;
name=&quot;My Form&quot; name=&quot;My Form&quot;
point=&quot;org.adempiere.webui.Form&quot;&gt; point=&quot;org.adempiere.webui.Form&quot;&gt;
&lt;process &lt;process
class=&quot;org.adempiere.webui.extend.MyForm&quot;&gt; class=&quot;org.adempiere.ui.zk.extend.MyForm&quot;&gt;
&lt;/process&gt; &lt;/process&gt;
&lt;/extension&gt; &lt;/extension&gt;
AD_Form.ClassName=&quot;org.adempiere.extend.myForm&quot;
&lt;/pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -96,39 +100,27 @@
</documentation> </documentation>
</annotation> </annotation>
<annotation>
<appinfo>
<meta.section type="implementation"/>
</appinfo>
<documentation>
[Enter information about supplied implementation of this extension point.]
</documentation>
</annotation>
<annotation> <annotation>
<appinfo> <appinfo>
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Heng Sin Low.
* * Copyright (C) Contributors.
* Copyright (C) Heng Sin Low *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>

View File

@ -83,7 +83,8 @@
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension &lt;pre&gt;
&lt;extension
id=&quot;org.adempiere.webui.factory.DefaultEditorFactory&quot; id=&quot;org.adempiere.webui.factory.DefaultEditorFactory&quot;
name=&quot;Default field editor factory&quot; name=&quot;Default field editor factory&quot;
point=&quot;org.adempiere.webui.factory.IEditorFactory&quot;&gt; point=&quot;org.adempiere.webui.factory.IEditorFactory&quot;&gt;
@ -92,6 +93,7 @@
priority=&quot;0&quot;&gt; priority=&quot;0&quot;&gt;
&lt;/factory&gt; &lt;/factory&gt;
&lt;/extension&gt; &lt;/extension&gt;
&lt;/pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -118,25 +120,21 @@
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Heng Sin Low.
* * Copyright (C) Contributors.
* Copyright (C) Heng Sin Low *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>

View File

@ -83,7 +83,8 @@
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension &lt;pre&gt;
&lt;extension
id=&quot;org.adempiere.webui.factory.DefaultInfoFactory&quot; id=&quot;org.adempiere.webui.factory.DefaultInfoFactory&quot;
name=&quot;Default Info Factory&quot; name=&quot;Default Info Factory&quot;
point=&quot;org.adempiere.webui.factory.IInfoFactory&quot;&gt; point=&quot;org.adempiere.webui.factory.IInfoFactory&quot;&gt;
@ -92,6 +93,7 @@
priority=&quot;0&quot;&gt; priority=&quot;0&quot;&gt;
&lt;/factory&gt; &lt;/factory&gt;
&lt;/extension&gt; &lt;/extension&gt;
&lt;/pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -118,25 +120,21 @@
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Heng Sin Low.
* * Copyright (C) Contributors.
* Copyright (C) Heng Sin Low *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>

View File

@ -52,7 +52,7 @@
<attribute name="class" type="string" use="required"> <attribute name="class" type="string" use="required">
<annotation> <annotation>
<documentation> <documentation>
Implementation class name of the org.compiere.print.ReportViewerProvider interface
</documentation> </documentation>
<appinfo> <appinfo>
<meta.attribute kind="java" basedOn=":org.compiere.print.ReportViewerProvider"/> <meta.attribute kind="java" basedOn=":org.compiere.print.ReportViewerProvider"/>
@ -76,12 +76,14 @@
<meta.section type="examples"/> <meta.section type="examples"/>
</appinfo> </appinfo>
<documentation> <documentation>
&lt;extension &lt;pre&gt;
&lt;extension
point=&quot;org.compiere.print.ReportViewerProvider&quot;&gt; point=&quot;org.compiere.print.ReportViewerProvider&quot;&gt;
&lt;provider &lt;provider
class=&quot;org.adempiere.webui.window.ZkReportViewerProvider&quot;&gt; class=&quot;org.adempiere.webui.window.ZkReportViewerProvider&quot;&gt;
&lt;/provider&gt; &lt;/provider&gt;
&lt;/extension&gt; &lt;/extension&gt;
&lt;/pre&gt;
</documentation> </documentation>
</annotation> </annotation>
@ -108,25 +110,21 @@
<meta.section type="copyright"/> <meta.section type="copyright"/>
</appinfo> </appinfo>
<documentation> <documentation>
/****************************************************************************** This file is part of Adempiere ERP Bazaar http://www.adempiere.org.
* This file is part of Adempiere ERP Bazaar *
* http://www.adempiere.org * Copyright (C) Heng Sin Low.
* * Copyright (C) Contributors.
* Copyright (C) Heng Sin Low *
* Copyright (C) Contributors * This program is free software; you can redistribute it and/or modify it
* * under the terms version 2 of the GNU General Public License as published
* This program is free software; you can redistribute it and/or modify it * by the Free Software Foundation. This program is distributed in the hope
* under the terms version 2 of the GNU General Public License as published * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* by the Free Software Foundation. This program is distributed in the hope * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * See the GNU General Public License for more details.
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * You should have received a copy of the GNU General Public License along
* See the GNU General Public License for more details. * with this program; if not, write to the Free Software Foundation, Inc.,
* You should have received a copy of the GNU General Public License along * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
* with this program; if not, write to the Free Software Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
* *
* Contributors: *
*****************************************************************************/
</documentation> </documentation>
</annotation> </annotation>