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;
@ -55,15 +54,15 @@ import org.compiere.util.Trace;
* *
* @author Jorg Janke * @author Jorg Janke
* @version $Id: FormFrame.java,v 1.2 2006/07/30 00:51:28 jjanke Exp $ * @version $Id: FormFrame.java,v 1.2 2006/07/30 00:51:28 jjanke Exp $
* *
* Colin Rooney 2007/03/20 RFE#1670185 & BUG#1684142 * Colin Rooney 2007/03/20 RFE#1670185 & BUG#1684142
* Extend security to Info Queries * Extend security to Info Queries
*/ */
public class FormFrame extends CFrame public class FormFrame extends CFrame
implements ActionListener implements ActionListener
{ {
/** /**
* *
*/ */
private static final long serialVersionUID = 2559005548469735515L; private static final long serialVersionUID = 2559005548469735515L;
@ -76,7 +75,7 @@ public class FormFrame extends CFrame
{ {
this(null); this(null);
} // FormFrame } // FormFrame
/** /**
* Create Form. * Create Form.
* Need to call openForm * Need to call openForm
@ -85,14 +84,14 @@ public class FormFrame extends CFrame
public FormFrame (GraphicsConfiguration gc) public FormFrame (GraphicsConfiguration gc)
{ {
super(gc); super(gc);
addWindowListener(new java.awt.event.WindowAdapter() addWindowListener(new java.awt.event.WindowAdapter()
{ {
public void windowOpened(java.awt.event.WindowEvent evt) public void windowOpened(java.awt.event.WindowEvent evt)
{ {
formWindowOpened(evt); formWindowOpened(evt);
} }
}); });
m_WindowNo = AEnv.createWindowNo (this); m_WindowNo = AEnv.createWindowNo (this);
setGlassPane(m_glassPane); setGlassPane(m_glassPane);
try try
@ -107,7 +106,7 @@ public class FormFrame extends CFrame
} // FormFrame } // FormFrame
private ProcessInfo m_pi; private ProcessInfo m_pi;
/** WindowNo */ /** WindowNo */
private int m_WindowNo; private int m_WindowNo;
/** The GlassPane */ /** The GlassPane */
@ -124,7 +123,7 @@ public class FormFrame extends CFrame
public boolean m_maximize = false; public boolean m_maximize = false;
/** Logger */ /** Logger */
private static CLogger log = CLogger.getCLogger(FormFrame.class); private static CLogger log = CLogger.getCLogger(FormFrame.class);
/** Form ID */ /** Form ID */
private int p_AD_Form_ID = 0; private int p_AD_Form_ID = 0;
@ -160,7 +159,7 @@ public class FormFrame extends CFrame
if (MRole.getDefault().isAllow_Info_Product()) if (MRole.getDefault().isAllow_Info_Product())
{ {
AEnv.addMenuItem("InfoProduct", null, KeyStroke.getKeyStroke(KeyEvent.VK_I, Event.ALT_MASK), mView, this); AEnv.addMenuItem("InfoProduct", null, KeyStroke.getKeyStroke(KeyEvent.VK_I, Event.ALT_MASK), mView, this);
} }
if (MRole.getDefault().isAllow_Info_BPartner()) if (MRole.getDefault().isAllow_Info_BPartner())
{ {
@ -172,36 +171,36 @@ public class FormFrame extends CFrame
} }
if (MRole.getDefault().isAllow_Info_Schedule()) if (MRole.getDefault().isAllow_Info_Schedule())
{ {
AEnv.addMenuItem("InfoSchedule", null, null, mView, this); AEnv.addMenuItem("InfoSchedule", null, null, mView, this);
} }
mView.addSeparator(); mView.addSeparator();
if (MRole.getDefault().isAllow_Info_Order()) if (MRole.getDefault().isAllow_Info_Order())
{ {
AEnv.addMenuItem("InfoOrder", "Info", null, mView, this); AEnv.addMenuItem("InfoOrder", "Info", null, mView, this);
} }
if (MRole.getDefault().isAllow_Info_Invoice()) if (MRole.getDefault().isAllow_Info_Invoice())
{ {
AEnv.addMenuItem("InfoInvoice", "Info", null, mView, this); AEnv.addMenuItem("InfoInvoice", "Info", null, mView, this);
} }
if (MRole.getDefault().isAllow_Info_InOut()) if (MRole.getDefault().isAllow_Info_InOut())
{ {
AEnv.addMenuItem("InfoInOut", "Info", null, mView, this); AEnv.addMenuItem("InfoInOut", "Info", null, mView, this);
} }
if (MRole.getDefault().isAllow_Info_Payment()) if (MRole.getDefault().isAllow_Info_Payment())
{ {
AEnv.addMenuItem("InfoPayment", "Info", null, mView, this); AEnv.addMenuItem("InfoPayment", "Info", null, mView, this);
} }
if (MRole.getDefault().isAllow_Info_CashJournal()) if (MRole.getDefault().isAllow_Info_CashJournal())
{ {
AEnv.addMenuItem("InfoCashLine", "Info", null, mView, this); AEnv.addMenuItem("InfoCashLine", "Info", null, mView, this);
} }
if (MRole.getDefault().isAllow_Info_Resource()) if (MRole.getDefault().isAllow_Info_Resource())
{ {
AEnv.addMenuItem("InfoAssignment", "Info", null, mView, this); AEnv.addMenuItem("InfoAssignment", "Info", null, mView, this);
} }
if (MRole.getDefault().isAllow_Info_Asset()) if (MRole.getDefault().isAllow_Info_Asset())
{ {
AEnv.addMenuItem("InfoAsset", "Info", null, mView, this); AEnv.addMenuItem("InfoAsset", "Info", null, mView, this);
} }
// Tools // Tools
JMenu mTools = AEnv.getMenu("Tools"); JMenu mTools = AEnv.getMenu("Tools");
@ -217,7 +216,7 @@ public class FormFrame extends CFrame
mTools.addSeparator(); mTools.addSeparator();
AEnv.addMenuItem("Preference", null, null, mTools, this); AEnv.addMenuItem("Preference", null, null, mTools, this);
} }
// Window // Window
AMenu aMenu = (AMenu)AEnv.getWindow(0); AMenu aMenu = (AMenu)AEnv.getWindow(0);
JMenu mWindow = new WindowMenu(aMenu.getWindowManager(), this); JMenu mWindow = new WindowMenu(aMenu.getWindowManager(), this);
@ -299,7 +298,7 @@ public class FormFrame extends CFrame
// //
return openForm(AD_Form_ID, className, name); return openForm(AD_Form_ID, className, name);
} // openForm } // openForm
/** /**
* Open Form * Open Form
* @param AD_Form_ID Form * @param AD_Form_ID Form
@ -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)
@ -407,8 +406,8 @@ public class FormFrame extends CFrame
{ {
m_glassPane.setBusyTimer (time); m_glassPane.setBusyTimer (time);
} // setBusyTimer } // setBusyTimer
/** /**
* Set Maximize Window * Set Maximize Window
* @param max maximize * @param max maximize
@ -417,14 +416,14 @@ public class FormFrame extends CFrame
{ {
m_maximize = max; m_maximize = max;
} // setMaximize } // setMaximize
/** /**
* Form Window Opened. * Form Window Opened.
* Maximize window if required * Maximize window if required
* @param evt event * @param evt event
*/ */
private void formWindowOpened(java.awt.event.WindowEvent evt) private void formWindowOpened(java.awt.event.WindowEvent evt)
{ {
if (m_maximize == true) if (m_maximize == true)
{ {
@ -434,20 +433,20 @@ public class FormFrame extends CFrame
} // formWindowOpened } // formWindowOpened
// Add window and tab no called from // Add window and tab no called from
public void setProcessInfo(ProcessInfo pi) public void setProcessInfo(ProcessInfo pi)
{ {
m_pi = pi; m_pi = pi;
} }
public ProcessInfo getProcessInfo() public ProcessInfo getProcessInfo()
{ {
return m_pi; return m_pi;
} }
// End // End
/** /**
* Start Batch * Start Batch
* @param process * @param process

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;
@ -42,7 +41,7 @@ import org.zkoss.zk.ui.event.EventListener;
public abstract class ADForm extends Window implements EventListener public abstract class ADForm extends Window implements EventListener
{ {
/** /**
* *
*/ */
private static final long serialVersionUID = -5183711788893823434L; private static final long serialVersionUID = -5183711788893823434L;
/** The class' logging enabler */ /** The class' logging enabler */
@ -63,7 +62,7 @@ public abstract class ADForm extends Window implements EventListener
private ProcessInfo m_pi; private ProcessInfo m_pi;
private IFormController m_customForm; private IFormController m_customForm;
/** /**
@ -157,7 +156,7 @@ public abstract class ADForm extends Window implements EventListener
if (tail != null) if (tail != null)
{ {
zkName = zkPackage + tail; zkName = zkPackage + tail;
try { try {
Class<?> clazz = ADForm.class.getClassLoader().loadClass(zkName); Class<?> clazz = ADForm.class.getClassLoader().loadClass(zkName);
if (!isZkFormClass(clazz)) if (!isZkFormClass(clazz))
@ -167,7 +166,7 @@ public abstract class ADForm extends Window implements EventListener
} catch (ClassNotFoundException e) { } catch (ClassNotFoundException e) {
zkName = null; zkName = null;
} }
//try replace package and add W prefix to class name //try replace package and add W prefix to class name
if (zkName == null) if (zkName == null)
{ {
@ -184,7 +183,7 @@ public abstract class ADForm extends Window implements EventListener
{ {
className = tail; className = tail;
} }
//try convert V* to W* //try convert V* to W*
if (className.startsWith(swingPrefix)) if (className.startsWith(swingPrefix))
{ {
@ -199,7 +198,7 @@ public abstract class ADForm extends Window implements EventListener
zkName = null; zkName = null;
} }
} }
//try append W prefix to original class name //try append W prefix to original class name
if (zkName == null) if (zkName == null)
{ {
@ -216,9 +215,9 @@ public abstract class ADForm extends Window implements EventListener
} }
} }
} }
/* /*
* not found, try changing only the class name * not found, try changing only the class name
*/ */
if (zkName == null) if (zkName == null)
{ {
@ -240,10 +239,10 @@ public abstract class ADForm extends Window implements EventListener
zkName = null; zkName = null;
} }
} }
//try just append W to the original class name //try just append W to the original class name
if (zkName == null) if (zkName == null)
{ {
String zkClassName = zkPrefix + className; String zkClassName = zkPrefix + className;
zkName = packageName + "." + zkClassName; zkName = packageName + "." + zkClassName;
try { try {
@ -256,7 +255,7 @@ public abstract class ADForm extends Window implements EventListener
zkName = null; zkName = null;
} }
} }
if (zkName == null) if (zkName == null)
{ {
//finally try whether same name is used for zk //finally try whether same name is used for zk
@ -303,12 +302,8 @@ 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);
{ if (obj == null)
obj = Extensions.getForm(richClassName);
}
if (obj == null)
{ {
//static lookup //static lookup
webClassName = ADClassNameMap.get(richClassName); webClassName = ADClassNameMap.get(richClassName);
@ -317,13 +312,13 @@ public abstract class ADForm extends Window implements EventListener
{ {
webClassName = translateFormClassName(richClassName); webClassName = translateFormClassName(richClassName);
} }
if (webClassName == null) if (webClassName == null)
{ {
throw new ApplicationException("Web UI form not implemented for the swing form " + throw new ApplicationException("Web UI form not implemented for the swing form " +
richClassName); richClassName);
} }
try try
{ {
// Create instance w/o parameters // Create instance w/o parameters
@ -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
{ {
@ -400,12 +387,12 @@ public abstract class ADForm extends Window implements EventListener
{ {
return m_pi; return m_pi;
} }
public void setICustomForm(IFormController customForm) public void setICustomForm(IFormController customForm)
{ {
m_customForm = customForm; m_customForm = customForm;
} }
public IFormController getICustomForm() public IFormController getICustomForm()
{ {
return m_customForm; return m_customForm;

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>