// Generated by Haxe 4.3.3
package graph;

import haxe.root.*;
import graph.Positioner_addAboveLine_149__Fun;
import graph.Positioner_addLeftColumn_133__Fun;
import graph.Positioner_placeCommonNeighBours_98__Fun;
import graph.Positioner_placeNodes_54__Fun;
import graph.Positioner_orderNodes_45__Fun;
import graph.Positioner_orderNodes_43__Fun;
import graph.Positioner___hx_ctor_graph_Positioner_18__Fun;
import graph.Positioner;

@SuppressWarnings(value={"rawtypes", "unchecked"})
public class Positioner<T> extends haxe.lang.HxObject
{
	static
	{
		//line 14 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		Positioner.ARROUND = new haxe.root.Array<java.lang.Object>(new java.lang.Object[]{new haxe.lang.DynamicObject(new java.lang.String[]{}, new java.lang.Object[]{}, new java.lang.String[]{"c", "l"}, new double[]{((double) (((double) (1) )) ), ((double) (((double) (0) )) )}), new haxe.lang.DynamicObject(new java.lang.String[]{}, new java.lang.Object[]{}, new java.lang.String[]{"c", "l"}, new double[]{((double) (((double) (0) )) ), ((double) (((double) (1) )) )}), new haxe.lang.DynamicObject(new java.lang.String[]{}, new java.lang.Object[]{}, new java.lang.String[]{"c", "l"}, new double[]{((double) (((double) (0) )) ), ((double) (((double) (-1) )) )}), new haxe.lang.DynamicObject(new java.lang.String[]{}, new java.lang.Object[]{}, new java.lang.String[]{"c", "l"}, new double[]{((double) (((double) (-1) )) ), ((double) (((double) (0) )) )}), new haxe.lang.DynamicObject(new java.lang.String[]{}, new java.lang.Object[]{}, new java.lang.String[]{"c", "l"}, new double[]{((double) (((double) (1) )) ), ((double) (((double) (1) )) )}), new haxe.lang.DynamicObject(new java.lang.String[]{}, new java.lang.Object[]{}, new java.lang.String[]{"c", "l"}, new double[]{((double) (((double) (1) )) ), ((double) (((double) (-1) )) )}), new haxe.lang.DynamicObject(new java.lang.String[]{}, new java.lang.Object[]{}, new java.lang.String[]{"c", "l"}, new double[]{((double) (((double) (-1) )) ), ((double) (((double) (1) )) )}), new haxe.lang.DynamicObject(new java.lang.String[]{}, new java.lang.Object[]{}, new java.lang.String[]{"c", "l"}, new double[]{((double) (((double) (-1) )) ), ((double) (((double) (-1) )) )})});
	}
	
	public Positioner(haxe.lang.EmptyObject empty)
	{
	}
	
	
	public Positioner(haxe.root.Array<java.lang.Object> graph1)
	{
		//line 16 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		Positioner.__hx_ctor_graph_Positioner(((Positioner<T>) (this) ), ((haxe.root.Array<java.lang.Object>) (graph1) ));
		//line 16 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		java.lang.Object __temp_expr1 = ((java.lang.Object) (null) );
	}
	
	
	protected static <T_c> void __hx_ctor_graph_Positioner(Positioner<T_c> __hx_this, haxe.root.Array<java.lang.Object> graph1)
	{
		//line 17 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		__hx_this.graph = graph1;
		//line 18 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		haxe.root.Lambda.iter(((java.lang.Object) (graph1) ), ((haxe.lang.Function) (new Positioner___hx_ctor_graph_Positioner_18__Fun<T_c>()) ));
		//line 18 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		java.lang.Object __temp_expr1 = ((java.lang.Object) (null) );
	}
	
	
	public static haxe.root.Array<java.lang.Object> ARROUND;
	
	public haxe.root.Array<java.lang.Object> graph;
	
	public haxe.root.Array<haxe.root.Array<java.lang.Object>> grid;
	
	public haxe.root.Array<haxe.root.Array<T>> arrange()
	{
		//line 22 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		this.orderNodes();
		//line 23 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		this.placeNodes();
		//line 24 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		haxe.root.Array<haxe.root.Array<T>> canvas = new haxe.root.Array<haxe.root.Array<T>>();
		//line 25 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		{
			//line 25 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			int _g = 1;
			//line 25 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			int _g1 = ( this.grid.length - 1 );
			//line 25 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			while (( _g < _g1 ))
			{
				//line 25 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				int l = _g++;
				//line 26 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				haxe.root.Array<T> line = new haxe.root.Array<T>();
				//line 27 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				{
					//line 27 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					int _g2 = 1;
					//line 27 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					int _g3 = ( this.grid.__get(l).length - 1 );
					//line 27 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					while (( _g2 < _g3 ))
					{
						//line 27 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						int c = _g2++;
						//line 28 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (( this.grid.__get(l).__get(c) == null )) 
						{
							//line 29 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							line.push(null);
						}
						else
						{
							//line 33 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							line.push(((T) (haxe.lang.Runtime.getField(this.grid.__get(l).__get(c), "node", true)) ));
						}
						
					}
					
				}
				
				//line 36 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				canvas.push(line);
			}
			
		}
		
		//line 39 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		return canvas;
	}
	
	
	public void orderNodes()
	{
		//line 43 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		this.graph.sort(new Positioner_orderNodes_43__Fun<T>());
		//line 44 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		{
			//line 44 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			int _g = 0;
			//line 44 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			haxe.root.Array<java.lang.Object> _g1 = this.graph;
			//line 44 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			while (( _g < _g1.length ))
			{
				//line 44 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				java.lang.Object n = _g1.__get(_g);
				//line 44 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				 ++ _g;
				//line 45 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				((haxe.root.Array<java.lang.Object>) (haxe.lang.Runtime.getField(n, "links", true)) ).sort(new Positioner_orderNodes_45__Fun<T>());
			}
			
		}
		
	}
	
	
	public void placeNodes()
	{
		//line 50 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		this.grid = new haxe.root.Array<haxe.root.Array<java.lang.Object>>();
		//line 51 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		this.grid.push(new haxe.root.Array<java.lang.Object>());
		//line 52 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		this.grid.__get(0).push(null);
		//line 53 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		haxe.ds.List<java.lang.Object> queue = new haxe.ds.List<java.lang.Object>();
		//line 49 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		Positioner<T> _gthis = this;
		//line 54 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		haxe.root.Lambda.iter(((java.lang.Object) (this.graph) ), ((haxe.lang.Function) (new Positioner_placeNodes_54__Fun<T>(queue, _gthis)) ));
		//line 54 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		java.lang.Object __temp_expr1 = ((java.lang.Object) (null) );
	}
	
	
	public void placeNodeNeighbours(java.lang.Object n)
	{
		//line 71 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		int _g = 0;
		//line 71 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		haxe.root.Array<java.lang.Object> _g1 = ((haxe.root.Array<java.lang.Object>) (haxe.lang.Runtime.getField(n, "links", true)) );
		//line 71 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		while (( _g < _g1.length ))
		{
			//line 71 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			java.lang.Object l = _g1.__get(_g);
			//line 71 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			 ++ _g;
			//line 72 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			int i = 0;
			//line 73 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			boolean placed = ( ! (haxe.lang.Runtime.eq(haxe.lang.Runtime.getField(l, "l", true), -1)) );
			//line 74 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			while ((  ! (placed)  && ( i < Positioner.ARROUND.length ) ))
			{
				//line 75 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				java.lang.Object p = null;
				//line 75 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				{
					//line 75 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					int __temp_odecl1 = ((int) (haxe.lang.Runtime.toInt(haxe.lang.Runtime.plus(haxe.lang.Runtime.getField(n, "l", true), ((int) (haxe.lang.Runtime.getField_f(Positioner.ARROUND.__get(i), "l", true)) )))) );
					//line 75 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					int __temp_odecl2 = ((int) (haxe.lang.Runtime.toInt(haxe.lang.Runtime.plus(haxe.lang.Runtime.getField(n, "c", true), ((int) (haxe.lang.Runtime.getField_f(Positioner.ARROUND.__get(i), "c", true)) )))) );
					//line 75 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					p = new haxe.lang.DynamicObject(new java.lang.String[]{}, new java.lang.Object[]{}, new java.lang.String[]{"c", "l"}, new double[]{((double) (((double) (__temp_odecl2) )) ), ((double) (((double) (__temp_odecl1) )) )});
				}
				
				//line 76 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				if (( this.grid.__get(((int) (haxe.lang.Runtime.getField_f(p, "l", true)) )).__get(((int) (haxe.lang.Runtime.getField_f(p, "c", true)) )) == null )) 
				{
					//line 77 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					placed = true;
					//line 78 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					this.placeNode(l, p);
					//line 79 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					this.placeCommonNeighBours(n, l);
				}
				
				//line 81 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				 ++ i;
			}
			
			//line 83 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			if ( ! (placed) ) 
			{
				//line 84 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				this.placeNode(l, this.getUnlinkedNodePos());
			}
			
		}
		
	}
	
	
	public void placeCommonNeighBours(java.lang.Object n, java.lang.Object l)
	{
		//line 90 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		haxe.root.Array<java.lang.Object> surroundingPos = null;
		//line 91 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		if (haxe.lang.Runtime.eq(haxe.lang.Runtime.getField(n, "l", true), haxe.lang.Runtime.getField(l, "l", true))) 
		{
			//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			java.lang.Object __temp_stmt27 = null;
			//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			{
				//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				int __temp_odecl1 = ((int) (haxe.lang.Runtime.toInt(haxe.lang.Runtime.plus(haxe.lang.Runtime.getField(n, "l", true), 1))) );
				//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				java.lang.Object __temp_odecl2 = haxe.lang.Runtime.getField(l, "c", true);
				//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				__temp_stmt27 = new haxe.lang.DynamicObject(new java.lang.String[]{"c"}, new java.lang.Object[]{__temp_odecl2}, new java.lang.String[]{"l"}, new double[]{((double) (((double) (__temp_odecl1) )) )});
			}
			
			//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			java.lang.Object __temp_stmt28 = null;
			//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			{
				//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				int __temp_odecl3 = ( ((int) (haxe.lang.Runtime.toInt(haxe.lang.Runtime.getField(n, "l", true))) ) - ((int) (1) ) );
				//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				java.lang.Object __temp_odecl4 = haxe.lang.Runtime.getField(l, "c", true);
				//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				__temp_stmt28 = new haxe.lang.DynamicObject(new java.lang.String[]{"c"}, new java.lang.Object[]{__temp_odecl4}, new java.lang.String[]{"l"}, new double[]{((double) (((double) (__temp_odecl3) )) )});
			}
			
			//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			java.lang.Object __temp_stmt29 = null;
			//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			{
				//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				int __temp_odecl5 = ((int) (haxe.lang.Runtime.toInt(haxe.lang.Runtime.plus(haxe.lang.Runtime.getField(n, "l", true), 1))) );
				//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				java.lang.Object __temp_odecl6 = haxe.lang.Runtime.getField(n, "c", true);
				//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				__temp_stmt29 = new haxe.lang.DynamicObject(new java.lang.String[]{"c"}, new java.lang.Object[]{__temp_odecl6}, new java.lang.String[]{"l"}, new double[]{((double) (((double) (__temp_odecl5) )) )});
			}
			
			//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			java.lang.Object __temp_stmt30 = null;
			//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			{
				//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				int __temp_odecl7 = ( ((int) (haxe.lang.Runtime.toInt(haxe.lang.Runtime.getField(n, "l", true))) ) - ((int) (1) ) );
				//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				java.lang.Object __temp_odecl8 = haxe.lang.Runtime.getField(n, "c", true);
				//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				__temp_stmt30 = new haxe.lang.DynamicObject(new java.lang.String[]{"c"}, new java.lang.Object[]{__temp_odecl8}, new java.lang.String[]{"l"}, new double[]{((double) (((double) (__temp_odecl7) )) )});
			}
			
			//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			surroundingPos = new haxe.root.Array<java.lang.Object>(new java.lang.Object[]{__temp_stmt27, __temp_stmt28, __temp_stmt29, __temp_stmt30});
		}
		else
		{
			//line 93 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			if (haxe.lang.Runtime.eq(haxe.lang.Runtime.getField(n, "c", true), haxe.lang.Runtime.getField(l, "c", true))) 
			{
				//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				java.lang.Object __temp_stmt23 = null;
				//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				{
					//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					java.lang.Object __temp_odecl9 = haxe.lang.Runtime.getField(l, "l", true);
					//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					int __temp_odecl10 = ((int) (haxe.lang.Runtime.toInt(haxe.lang.Runtime.plus(haxe.lang.Runtime.getField(n, "c", true), 1))) );
					//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					__temp_stmt23 = new haxe.lang.DynamicObject(new java.lang.String[]{"l"}, new java.lang.Object[]{__temp_odecl9}, new java.lang.String[]{"c"}, new double[]{((double) (((double) (__temp_odecl10) )) )});
				}
				
				//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				java.lang.Object __temp_stmt24 = null;
				//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				{
					//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					java.lang.Object __temp_odecl11 = haxe.lang.Runtime.getField(l, "l", true);
					//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					int __temp_odecl12 = ( ((int) (haxe.lang.Runtime.toInt(haxe.lang.Runtime.getField(n, "c", true))) ) - ((int) (1) ) );
					//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					__temp_stmt24 = new haxe.lang.DynamicObject(new java.lang.String[]{"l"}, new java.lang.Object[]{__temp_odecl11}, new java.lang.String[]{"c"}, new double[]{((double) (((double) (__temp_odecl12) )) )});
				}
				
				//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				java.lang.Object __temp_stmt25 = null;
				//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				{
					//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					java.lang.Object __temp_odecl13 = haxe.lang.Runtime.getField(n, "l", true);
					//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					int __temp_odecl14 = ((int) (haxe.lang.Runtime.toInt(haxe.lang.Runtime.plus(haxe.lang.Runtime.getField(n, "c", true), 1))) );
					//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					__temp_stmt25 = new haxe.lang.DynamicObject(new java.lang.String[]{"l"}, new java.lang.Object[]{__temp_odecl13}, new java.lang.String[]{"c"}, new double[]{((double) (((double) (__temp_odecl14) )) )});
				}
				
				//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				java.lang.Object __temp_stmt26 = null;
				//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				{
					//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					java.lang.Object __temp_odecl15 = haxe.lang.Runtime.getField(n, "l", true);
					//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					int __temp_odecl16 = ( ((int) (haxe.lang.Runtime.toInt(haxe.lang.Runtime.getField(n, "c", true))) ) - ((int) (1) ) );
					//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					__temp_stmt26 = new haxe.lang.DynamicObject(new java.lang.String[]{"l"}, new java.lang.Object[]{__temp_odecl15}, new java.lang.String[]{"c"}, new double[]{((double) (((double) (__temp_odecl16) )) )});
				}
				
				//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				surroundingPos = new haxe.root.Array<java.lang.Object>(new java.lang.Object[]{__temp_stmt23, __temp_stmt24, __temp_stmt25, __temp_stmt26});
			}
			else
			{
				//line 96 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				java.lang.Object __temp_stmt21 = null;
				//line 96 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				{
					//line 96 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					java.lang.Object __temp_odecl17 = haxe.lang.Runtime.getField(n, "l", true);
					//line 96 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					java.lang.Object __temp_odecl18 = haxe.lang.Runtime.getField(l, "c", true);
					//line 96 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					__temp_stmt21 = new haxe.lang.DynamicObject(new java.lang.String[]{"c", "l"}, new java.lang.Object[]{__temp_odecl18, __temp_odecl17}, new java.lang.String[]{}, new double[]{});
				}
				
				//line 96 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				java.lang.Object __temp_stmt22 = null;
				//line 96 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				{
					//line 96 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					java.lang.Object __temp_odecl19 = haxe.lang.Runtime.getField(l, "l", true);
					//line 96 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					java.lang.Object __temp_odecl20 = haxe.lang.Runtime.getField(n, "c", true);
					//line 96 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					__temp_stmt22 = new haxe.lang.DynamicObject(new java.lang.String[]{"c", "l"}, new java.lang.Object[]{__temp_odecl20, __temp_odecl19}, new java.lang.String[]{}, new double[]{});
				}
				
				//line 96 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				surroundingPos = new haxe.root.Array<java.lang.Object>(new java.lang.Object[]{__temp_stmt21, __temp_stmt22});
			}
			
		}
		
		//line 98 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		{
			//line 98 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			int _g = 0;
			//line 98 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			haxe.root.Array<java.lang.Object> _g1 = ((haxe.root.Array<java.lang.Object>) (haxe.root.Lambda.filter(((haxe.root.Array<java.lang.Object>) (haxe.lang.Runtime.getField(n, "links", true)) ), ((haxe.lang.Function) (new Positioner_placeCommonNeighBours_98__Fun<T>(l)) ))) );
			//line 98 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			while (( _g < _g1.length ))
			{
				//line 98 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				java.lang.Object nl = _g1.__get(_g);
				//line 98 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				 ++ _g;
				//line 99 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				boolean placed = ( ! (haxe.lang.Runtime.eq(haxe.lang.Runtime.getField(nl, "l", true), -1)) );
				//line 100 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				int i = 0;
				//line 101 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				while ((  ! (placed)  && ( i < surroundingPos.length ) ))
				{
					//line 102 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					java.lang.Object p = surroundingPos.__get(i);
					//line 103 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					if (( this.grid.__get(((int) (haxe.lang.Runtime.getField_f(p, "l", true)) )).__get(((int) (haxe.lang.Runtime.getField_f(p, "c", true)) )) == null )) 
					{
						//line 104 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						placed = true;
						//line 105 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						this.placeNode(nl, p);
					}
					
					//line 107 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
					 ++ i;
				}
				
			}
			
		}
		
	}
	
	
	public void placeNode(java.lang.Object n, java.lang.Object p)
	{
		//line 113 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		this.grid.__get(((int) (haxe.lang.Runtime.getField_f(p, "l", true)) )).__set(((int) (haxe.lang.Runtime.getField_f(p, "c", true)) ), n);
		//line 114 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		java.lang.Object __temp_expr1 = ((java.lang.Object) (haxe.lang.Runtime.setField_f(n, "l", ((double) (((int) (haxe.lang.Runtime.getField_f(p, "l", true)) )) ))) );
		//line 115 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		java.lang.Object __temp_expr2 = ((java.lang.Object) (haxe.lang.Runtime.setField_f(n, "c", ((double) (((int) (haxe.lang.Runtime.getField_f(p, "c", true)) )) ))) );
		//line 116 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		if (( ((int) (haxe.lang.Runtime.getField_f(p, "l", true)) ) == ( this.grid.length - 1 ) )) 
		{
			//line 117 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			this.addBottomLine();
		}
		
		//line 119 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		if (( ((int) (haxe.lang.Runtime.getField_f(p, "l", true)) ) == 0 )) 
		{
			//line 120 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			this.addAboveLine();
		}
		
		//line 122 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		if (( ((int) (haxe.lang.Runtime.getField_f(p, "c", true)) ) == ( this.grid.__get(0).length - 1 ) )) 
		{
			//line 123 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			this.addRightColumn();
		}
		
		//line 125 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		if (( ((int) (haxe.lang.Runtime.getField_f(p, "c", true)) ) == 0 )) 
		{
			//line 126 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			this.addLeftColumn(null);
		}
		
	}
	
	
	public void addLeftColumn(java.lang.Object left)
	{
		//line 131 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		boolean left1 = ( (haxe.lang.Runtime.eq(left, null)) ? (false) : (haxe.lang.Runtime.toBool(((java.lang.Boolean) (left) ))) );
		//line 131 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		int _g = 0;
		//line 131 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		haxe.root.Array<haxe.root.Array<java.lang.Object>> _g1 = this.grid;
		//line 131 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		while (( _g < _g1.length ))
		{
			//line 131 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			haxe.root.Array<java.lang.Object> line = _g1.__get(_g);
			//line 131 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			 ++ _g;
			//line 132 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			line.insert(0, null);
			//line 133 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			haxe.root.Lambda.iter(((java.lang.Object) (line) ), ((haxe.lang.Function) (new Positioner_addLeftColumn_133__Fun<T>()) ));
			//line 133 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			java.lang.Object __temp_expr1 = ((java.lang.Object) (null) );
		}
		
	}
	
	
	public void addRightColumn()
	{
		//line 138 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		int _g = 0;
		//line 138 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		haxe.root.Array<haxe.root.Array<java.lang.Object>> _g1 = this.grid;
		//line 138 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		while (( _g < _g1.length ))
		{
			//line 138 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			haxe.root.Array<java.lang.Object> line = _g1.__get(_g);
			//line 138 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			 ++ _g;
			//line 139 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			line.push(null);
		}
		
	}
	
	
	public void addAboveLine()
	{
		//line 144 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		haxe.root.Array<java.lang.Object> line = new haxe.root.Array<java.lang.Object>();
		//line 145 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		{
			//line 145 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			int _g = 0;
			//line 145 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			int _g1 = this.grid.__get(0).length;
			//line 145 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			while (( _g < _g1 ))
			{
				//line 145 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				int i = _g++;
				//line 146 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				line.push(null);
			}
			
		}
		
		//line 148 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		{
			//line 148 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			int _g2 = 0;
			//line 148 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			haxe.root.Array<haxe.root.Array<java.lang.Object>> _g3 = this.grid;
			//line 148 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			while (( _g2 < _g3.length ))
			{
				//line 148 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				haxe.root.Array<java.lang.Object> line1 = _g3.__get(_g2);
				//line 148 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				 ++ _g2;
				//line 149 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				haxe.root.Lambda.iter(((java.lang.Object) (line1) ), ((haxe.lang.Function) (new Positioner_addAboveLine_149__Fun<T>()) ));
				//line 149 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				java.lang.Object __temp_expr1 = ((java.lang.Object) (null) );
			}
			
		}
		
		//line 151 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		this.grid.insert(0, line);
	}
	
	
	public void addBottomLine()
	{
		//line 155 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		haxe.root.Array<java.lang.Object> line = new haxe.root.Array<java.lang.Object>();
		//line 156 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		{
			//line 156 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			int _g = 0;
			//line 156 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			int _g1 = this.grid.__get(0).length;
			//line 156 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			while (( _g < _g1 ))
			{
				//line 156 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				int i = _g++;
				//line 157 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				line.push(null);
			}
			
		}
		
		//line 159 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		this.grid.push(line);
	}
	
	
	public java.lang.Object getUnlinkedNodePos()
	{
		//line 163 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		int l = ( this.grid.length - 1 );
		//line 164 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		int c = ( this.grid.__get(0).length - 1 );
		//line 165 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		if (( ! (( this.grid.__get(l).__get(c) == null )) )) 
		{
			//line 166 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			this.addRightColumn();
			//line 167 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			 ++ c;
		}
		
		//line 169 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		return new haxe.lang.DynamicObject(new java.lang.String[]{}, new java.lang.Object[]{}, new java.lang.String[]{"c", "l"}, new double[]{((double) (((double) (c) )) ), ((double) (((double) (l) )) )});
	}
	
	
	@Override public java.lang.Object __hx_setField(java.lang.String field, java.lang.Object value, boolean handleProperties)
	{
		//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		{
			//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			boolean __temp_executeDef1 = true;
			//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			if (( field != null )) 
			{
				//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				switch (field.hashCode())
				{
					case 3181382:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("grid")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							this.grid = ((haxe.root.Array<haxe.root.Array<java.lang.Object>>) (value) );
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							return value;
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case 98615630:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("graph")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							this.graph = ((haxe.root.Array<java.lang.Object>) (value) );
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							return value;
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
				}
				
			}
			
			//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			if (__temp_executeDef1) 
			{
				//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				return super.__hx_setField(field, value, handleProperties);
			}
			else
			{
				//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				throw null;
			}
			
		}
		
	}
	
	
	@Override public java.lang.Object __hx_getField(java.lang.String field, boolean throwErrors, boolean isCheck, boolean handleProperties)
	{
		//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		{
			//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			boolean __temp_executeDef1 = true;
			//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			if (( field != null )) 
			{
				//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				switch (field.hashCode())
				{
					case -750367638:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("getUnlinkedNodePos")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							return ((haxe.lang.Function) (new haxe.lang.Closure(this, "getUnlinkedNodePos")) );
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case 98615630:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("graph")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							return this.graph;
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case -1662750656:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("addBottomLine")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							return ((haxe.lang.Function) (new haxe.lang.Closure(this, "addBottomLine")) );
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case 3181382:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("grid")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							return this.grid;
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case -1463026288:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("addAboveLine")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							return ((haxe.lang.Function) (new haxe.lang.Closure(this, "addAboveLine")) );
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case -734452820:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("arrange")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							return ((haxe.lang.Function) (new haxe.lang.Closure(this, "arrange")) );
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case -252269263:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("addRightColumn")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							return ((haxe.lang.Function) (new haxe.lang.Closure(this, "addRightColumn")) );
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case 740555779:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("orderNodes")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							return ((haxe.lang.Function) (new haxe.lang.Closure(this, "orderNodes")) );
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case 1675345342:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("addLeftColumn")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							return ((haxe.lang.Function) (new haxe.lang.Closure(this, "addLeftColumn")) );
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case -281815574:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("placeNodes")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							return ((haxe.lang.Function) (new haxe.lang.Closure(this, "placeNodes")) );
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case 1792024489:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("placeNode")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							return ((haxe.lang.Function) (new haxe.lang.Closure(this, "placeNode")) );
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case -1411507073:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("placeNodeNeighbours")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							return ((haxe.lang.Function) (new haxe.lang.Closure(this, "placeNodeNeighbours")) );
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case -1884292280:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("placeCommonNeighBours")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							return ((haxe.lang.Function) (new haxe.lang.Closure(this, "placeCommonNeighBours")) );
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
				}
				
			}
			
			//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			if (__temp_executeDef1) 
			{
				//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				return super.__hx_getField(field, throwErrors, isCheck, handleProperties);
			}
			else
			{
				//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				throw null;
			}
			
		}
		
	}
	
	
	@Override public java.lang.Object __hx_invokeField(java.lang.String field, java.lang.Object[] dynargs)
	{
		//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		{
			//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			boolean __temp_executeDef1 = true;
			//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			if (( field != null )) 
			{
				//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				switch (field.hashCode())
				{
					case -750367638:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("getUnlinkedNodePos")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							return this.getUnlinkedNodePos();
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case -734452820:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("arrange")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							return this.arrange();
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case -1662750656:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("addBottomLine")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							this.addBottomLine();
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case 740555779:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("orderNodes")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							this.orderNodes();
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case -1463026288:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("addAboveLine")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							this.addAboveLine();
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case -281815574:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("placeNodes")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							this.placeNodes();
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case -252269263:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("addRightColumn")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							this.addRightColumn();
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case -1411507073:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("placeNodeNeighbours")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							this.placeNodeNeighbours(dynargs[0]);
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case 1675345342:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("addLeftColumn")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							this.addLeftColumn(( (( dynargs.length > 0 )) ? (dynargs[0]) : (null) ));
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case -1884292280:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("placeCommonNeighBours")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							this.placeCommonNeighBours(dynargs[0], dynargs[1]);
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
					case 1792024489:
					{
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						if (field.equals("placeNode")) 
						{
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							__temp_executeDef1 = false;
							//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
							this.placeNode(dynargs[0], dynargs[1]);
						}
						
						//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
						break;
					}
					
					
				}
				
			}
			
			//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
			if (__temp_executeDef1) 
			{
				//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
				return super.__hx_invokeField(field, dynargs);
			}
			
		}
		
		//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		return null;
	}
	
	
	@Override public void __hx_getFields(haxe.root.Array<java.lang.String> baseArr)
	{
		//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		baseArr.push("grid");
		//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		baseArr.push("graph");
		//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/graph/Positioner.hx"
		super.__hx_getFields(baseArr);
	}
	
	
}


