[mono-android] Renaming EventHandlers and Properties in JavaBindling projects (Rules and recommendations)

Miljenko Cvjetko mcvjetko at holisticware.net
Wed Jun 6 09:52:00 UTC 2012


Hi

I'm learning about JavaBinding project and started with binding 
AChartLibrary.
So ran into:
Error    1
'Pan': member names cannot be the same as their enclosing type
HolisticWare_AChartEngine\HolisticWare.AChartEngine.JavaBindingLibrary\obj\Debug\generated\src\Android.AChartEngine.Tools.Pan.cs 

134    29
HolisticWare.AChartEngine.JavaBindingLibrary

EventHandler name is the same as class name.

How would Xamarin team resolve that? Any rules for such cases?

I can rename class simply with:

   <attr
	   path="/api/package[@name='org.achartengine.tools']/class[@name='Pan']"
	   name="managedName"
	   >PanWrapper</attr>

This would solve my problems, but I want to learn and digg deeper

Is this better or renaming EventHandler and/or Property rather than classes?

And how do I rename EventHandler?

in api.xml i Have found:

<class  abstract="false"  deprecated="not deprecated"  extends="org.achartengine.tools.AbstractTool"  extends-generic-aware="org.achartengine.tools.AbstractTool"  final="false"  name="Pan"  static="false"  visibility="public">
<constructor  deprecated="not deprecated"  final="false"  name="Pan"  static="false"  type="org.achartengine.tools.Pan"  visibility="public">
<parameter  name="p0"  type="org.achartengine.chart.AbstractChart">
</parameter>
</constructor>
<method  abstract="false"  deprecated="not deprecated"  final="false"  name="addPanListener"  native="false"  return="void"  static="false"  synchronized="true"  visibility="public">
<parameter  name="p0"  type="org.achartengine.tools.PanListener">
</parameter>
</method>
<method  abstract="false"  deprecated="not deprecated"  final="false"  name="apply"  native="false"  return="void"  static="false"  synchronized="false"  visibility="public">
<parameter  name="p0"  type="float">
</parameter>
<parameter  name="p1"  type="float">
</parameter>
<parameter  name="p2"  type="float">
</parameter>
<parameter  name="p3"  type="float">
</parameter>
</method>
<method  abstract="false"  deprecated="not deprecated"  final="false"  name="removePanListener"  native="false"  return="void"  static="false"  synchronized="true"  visibility="public">
<parameter  name="p0"  type="org.achartengine.tools.PanListener">
</parameter>
</method>
</class>

I assume this is generated code for PanListener:

#region  "Event implementation for Android.AChartEngine.Tools.IPanListener"
		public  event  EventHandler  Pan {
			add  {
				global::Java.Interop.AndroidEventHelper.AddEventHandler<global::Android.AChartEngine.Tools.IPanListener,global::Android.AChartEngine.Tools.IPanListenerImplementor>(
						ref  weak_implementor_AddPanListener,
						__CreateIPanListenerImplementor,
						AddPanListener,
						__h =>  __h.Handler +=value);
			}
			remove  {
				global::Java.Interop.AndroidEventHelper.RemoveEventHandler<global::Android.AChartEngine.Tools.IPanListener,global::Android.AChartEngine.Tools.IPanListenerImplementor>(
						ref  weak_implementor_AddPanListener,
						global::Android.AChartEngine.Tools.IPanListenerImplementor.__IsEmpty,
						AddPanListener,
						__h =>  __h.Handler -=value);
			}
		}

		WeakReference  weak_implementor_AddPanListener;

		global::Android.AChartEngine.Tools.IPanListenerImplementor  __CreateIPanListenerImplementor ()
		{
			return  new  global::Android.AChartEngine.Tools.IPanListenerImplementor  (this);
		}
#endregion



Error detected in documentation:
in http://docs.xamarin.com/android/tutorials/API_Metadata_Reference
link to http://www.mono-project.com/ GAPI#Metadata 
<http://docs.xamarin.com/http%3a%2f%2fwww.mono-project.com/_GAPI#Metadata>.ends 
at http://docs.xamarin.com/#Metadata


-- 
Miljenko Cvjetko dipl.ing. ET
	Direktor/CEO
	Projektant rjes(enja/Solution Architect	
	Razvojni programer/Senior developer
	Voditelj projekta/Project Manager

IX juz(na obala 13
Kajzerica Zagreb
T: 385 1 7775555
M: 385 91 557 447 3
F: 385 1 7779556
e: mcvjetko at holisticware.net
w: http://www.holisticware.net

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/monodroid/attachments/20120606/fa6feda7/attachment-0001.html>


More information about the Monodroid mailing list