protected override void OnCreate (Bundle bundle)
		{
			base.OnCreate (bundle);
			SetContentView (Resource.Layout.DragDropMainLayout);
			Drawable _icon = Resources.GetDrawable (Resource.Drawable.Icon);

			#region List of controls
			Admin.Add(new Active_Controls("Settings", "ic_settings"));
			Admin.Add(new Active_Controls("Map","ic_map"));
			Admin.Add(new Active_Controls("Calender","ic_calender"));
			#endregion

			#region Admin side list (Right)
			Admin_List= FindViewById<ListView> (Resource.Id.Admin_List);
			adap_Admin=new Controls_Adapter(this, Admin);
			Admin_List.Adapter = adap_Admin;

			Admin_List.ItemClick += (s, args) =>{
				AlertDialog.Builder builder = new AlertDialog.Builder(this,AlertDialog.ThemeHoloLight);
				AlertDialog alertDialog = builder.Create();
				alertDialog.SetTitle ("Alert");
				alertDialog.SetIcon(Resources.GetDrawable(Resource.Drawable.Icon));
				alertDialog.SetMessage("This is ADMIN side.");
				alertDialog.SetButton("OK", (sender, e) => { });
				alertDialog.Show();
			};

			//Drag element is triggered
			Admin_List.ItemLongClick += (s, args) => {
				
				//To check whether the object is moved or not
				ClipData data = ClipData.NewPlainText ("Admin", args.Position.ToString ());

				//Initializing Shadow Builder to get the shadow view of the selected Item.
				MyDragShadowBuilder my_shadown_screen = new MyDragShadowBuilder(args.View);

				//Start to drag
				args.View.StartDrag (data, my_shadown_screen, null, 0);
			};

			// Drag event in listview
			Admin_List.Drag += (s, args) => 
			{
				switch (args.Event.Action) {

				//Object started dragging
				case DragAction.Started:
					args .Handled = true;
					break;

					//Object dragged in the view
				case DragAction.Entered:
					args.Handled = true;
					break;

					//Object dragged out the view
				case DragAction.Exited:
					args.Handled = true;
					break;

					//Object is released
				case DragAction.Drop:
					args.Handled = true;

					//Verifying the dragged is whether from the another view
					if(args.Event.ClipDescription.Label.Equals("User"))
					{
						//Recover the index
						int position=int.Parse(args.Event.ClipData.GetItemAt(0).Text);

						//Adding the object where it is released
						adap_Admin.add(adap_User.AdminSearch(position));
						adap_User.remove (position);
					}
					break;

					//Triggred when drag operation is finished
				case DragAction.Ended:
					args.Handled = true;
					break;
				}
			};
			#endregion

			#region User side list (Left)
			User_List= FindViewById<ListView> (Resource.Id.User_List);
			adap_User=new Controls_Adapter(this, User);
			User_List.Adapter = adap_User;

			User_List.ItemClick += (s, args) =>{
				AlertDialog.Builder builder = new AlertDialog.Builder(this,AlertDialog.ThemeHoloLight);
				AlertDialog alertDialog = builder.Create();
				alertDialog.SetTitle ("Alert");
				alertDialog.SetIcon(Resources.GetDrawable(Resource.Drawable.Icon));
				alertDialog.SetMessage("USER");
				alertDialog.SetButton("OK", (sender, e) => { });
				alertDialog.Show();
			};

			//Drag element is triggered
			User_List.ItemLongClick += (s, args) =>
			{
				//To check whether the object is moved or not
				ClipData data = ClipData.NewPlainText ("User",args.Position.ToString());

				//Initializing Shadow Builder to get the shadow view of the selected Item.
				MyDragShadowBuilder my_shadown_screen = new MyDragShadowBuilder (args.View);

				//Start to drag
				args.View.StartDrag (data, my_shadown_screen, null, 0);
			};

			// Drag event in listview
			User_List.Drag += (s, args) => 
			{

				switch (args.Event.Action) {

				//Object started dragging
				case DragAction.Started:
					args .Handled = true;
					break;

					//Object dragged in the view
				case DragAction.Entered:
					args.Handled = true;
					break;

					//Object dragged out the view
				case DragAction.Exited:
					args.Handled = true;
					break;

					//Object is released
				case DragAction.Drop:
					args.Handled = true;

					//Verifying the dragged is whether from the another view
					if(args.Event.ClipDescription.Label.Equals("Admin"))
					{
						//Recover the index
						int position=int.Parse(args.Event.ClipData.GetItemAt(0).Text);

						//Adding the object where it is released
						adap_User.add (adap_Admin.AdminSearch(position));
						adap_Admin.remove (position);
					}
					break;

					//Triggred when drag operation is finished
				case DragAction.Ended:
					args.Handled = true;
					break;
				}
			};
			#endregion
		}
예제 #2
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            //Definimos nuestra lista de Permisos
            Permisos.Add(new Permisos_Activos("GRAFICAR", "ic_2"));
            Permisos.Add(new Permisos_Activos("MAPA", "ic_3"));
            Permisos.Add(new Permisos_Activos("CALENDARIO", "ic_4"));

            /*****************************LISTVIEW PERMISOS (DERECHO)********************************************/
            //Inicializamos nuestro listview de permisos(listview de lado derecho)
            lvPermisos = FindViewById <ListView> (Resource.Id.lvPermisos);
            //Incializamos el adaptador con nuestro listado de permisos
            adap_Permisos = new Adapter_Permisos(this, Permisos);
            //Le asignamos el adaptador a nuestro listview
            lvPermisos.Adapter = adap_Permisos;
            //Definimos el evento ItemLongClick, este nos servira para cuando se realice un click prolongrado
            //en uno de los items del listview se dispare nuestro arrastre del elemento
            lvPermisos.ItemLongClick += (s, args) => {
                //Inicializamos un objecto ClipData para saber en este caso la posicion del item que se esta arrastrando
                //y ademas a que listview pertece
                ClipData data = ClipData.NewPlainText("Permisos", args.Position.ToString());
                //Inicializamo nuestro ShadowBuilder para ver  el objecto que se esta arrastrando
                MyDragShadowBuilder my_shadown_screen = new MyDragShadowBuilder(args.View);
                //Asignamos los valores y arrancamos nuestro envento Drag
                args.View.StartDrag(data, my_shadown_screen, null, 0);
            };

            //Definimos el metodo que se dispara con el evento Drag de neustro listview.
            lvPermisos.Drag += (s, args) =>
            {
                switch (args.Event.Action)
                {
                //Se dispara cuando comienza el arrastrar algun elemento relazionado con la vista o esta misma
                case DragAction.Started:
                    args.Handled = true;
                    break;

                //Se dispara cuando una vista que esta siendo arrastranda entra en contacto en esta
                case DragAction.Entered:
                    args.Handled = true;
                    break;

                //Se dispara cuando una vista que esta siendo arrastranda sale en contacto en esta
                case DragAction.Exited:
                    args.Handled = true;
                    break;

                //Se dispara cuando una vista que esta siendo arrastrada es soltada dentro de esta
                case DragAction.Drop:
                    args.Handled = true;
                    //Verificamos que la vista que se solto viene de otro listview en este caso de Permisos_Usuario
                    //de lo contrario no lo agregamos, ya que esto significa que la vista que se esta arrastrando se dejo soltar
                    //dentro el elemento que la contiene(en este caso el listview al cual pertenece el elemento)
                    if (args.Event.ClipDescription.Label.Equals("Permisos_Usuario"))
                    {
                        //Recupermos el index del elemento que se envio
                        int posicion = int.Parse(args.Event.ClipData.GetItemAt(0).Text);
                        //Recuperamos el objecto permiso del adapter del listview de donde procede la vista arrastrada
                        //y lo agregamos al adapter del listview de donde se solto
                        adap_Permisos.add(adap_Permisos_Usuario.PermisoBuscado(posicion));

                        //Removemos el objecto permiso del adapter del listview de donde procede la vista arrastrada
                        adap_Permisos_Usuario.remove(posicion);
                    }

                    break;

                //Se dispara cuando la operacion de arrastre ha terminado
                case DragAction.Ended:
                    args.Handled = true;
                    break;
                }
            };

            /*****************************LISTVIEW PERMISOS USUARIO(IZQUIERDO)********************************************/
            //Inicializamos nuestro listview de permisos(listview de lado izquierdo)
            lvPermisos_Usuario = FindViewById <ListView> (Resource.Id.lvPermisos_Usuario);
            //Incializamos el adaptador con nuestro listado de permisos de usuario, recordemos que este por defecto no
            //tiene permisos asignados
            adap_Permisos_Usuario = new Adapter_Permisos(this, Permisos_Usuario);
            //Le asignamos el adaptador a nuestro listview
            lvPermisos_Usuario.Adapter = adap_Permisos_Usuario;

            //Definimos el evento ItemLongClick, este nos servira para cuando se realice un click prolongrado
            //en uno de los items del listview se dispare nuestro arrastre del elemento
            lvPermisos_Usuario.ItemLongClick += (s, args) =>
            {
                //Inicializamos un objecto ClipData para saber en este caso la posicion del item que se esta arrastrando
                //y ademas a que listview pertece
                ClipData data = ClipData.NewPlainText("Permisos_Usuario", args.Position.ToString());
                //Inicializamo nuestro ShadowBuilder para ver  el objecto que se esta arrastrando
                MyDragShadowBuilder my_shadown_screen = new MyDragShadowBuilder(args.View);
                //Asignamos los valores y arrancamos nuestro envento Drag
                args.View.StartDrag(data, my_shadown_screen, null, 0);
            };

            //Definimos el metodo que se dispara con el evento Drag de nuestro listview.
            lvPermisos_Usuario.Drag += (s, args) =>
            {
                switch (args.Event.Action)
                {
                //Se dispara cuando comienza el arrastrar algun elemento relazionado con la vista o esta misma
                case DragAction.Started:
                    args.Handled = true;
                    break;

                //Se dispara cuando una vista que esta siendo arrastranda entra en contacto en esta
                case DragAction.Entered:
                    args.Handled = true;
                    break;

                //Se dispara cuando una vista que esta siendo arrastranda sale en contacto en esta
                case DragAction.Exited:
                    args.Handled = true;
                    break;

                //Se dispara cuando una vista que esta siendo arrastrada es soltada dentro de esta
                case DragAction.Drop:
                    args.Handled = true;
                    //Verificamos que la vista que se solto viene de otro listview en este caso de Permisos
                    //de lo contrario no lo agregamos, ya que esto significa que la vista que se esta arrastrando se dejo soltar
                    //dentro el elemento que la contiene(en este caso el listview al cual pertenece el elemento)
                    if (args.Event.ClipDescription.Label.Equals("Permisos"))
                    {
                        //Recupermos el index del elemento que se envio
                        int posicion = int.Parse(args.Event.ClipData.GetItemAt(0).Text);
                        //Recuperamos el objecto permiso del adapter del listview de donde procede la vista arrastrada
                        //y lo agregamos al adapter del listview de donde se solto
                        adap_Permisos_Usuario.add(adap_Permisos.PermisoBuscado(posicion));
                        //Removemos el objecto permiso del adapter del listview de donde procede la vista arrastrada
                        adap_Permisos.remove(posicion);
                    }
                    break;

                //Se dispara cuando la operacion de arrastre ha terminado
                case DragAction.Ended:
                    args.Handled = true;
                    break;
                }
            };
        }
예제 #3
0
		protected override void OnCreate (Bundle bundle)
		{
			base.OnCreate (bundle);

			// Set our view from the "main" layout resource
			SetContentView (Resource.Layout.Main);

			//Definimos nuestra lista de Permisos
			Permisos.Add(new Permisos_Activos("GRAFICAR", "ic_2"));
			Permisos.Add(new Permisos_Activos("MAPA","ic_3"));
			Permisos.Add(new Permisos_Activos("CALENDARIO","ic_4"));

			/*****************************LISTVIEW PERMISOS (DERECHO)********************************************/
			//Inicializamos nuestro listview de permisos(listview de lado derecho)
			lvPermisos= FindViewById<ListView> (Resource.Id.lvPermisos);
			//Incializamos el adaptador con nuestro listado de permisos
			adap_Permisos=new Adapter_Permisos(this, Permisos);
			//Le asignamos el adaptador a nuestro listview
			lvPermisos.Adapter = adap_Permisos;
			//Definimos el evento ItemLongClick, este nos servira para cuando se realice un click prolongrado 
			//en uno de los items del listview se dispare nuestro arrastre del elemento
			lvPermisos.ItemLongClick += (s, args) => {
			
				//Inicializamos un objecto ClipData para saber en este caso la posicion del item que se esta arrastrando
				//y ademas a que listview pertece
				ClipData data = ClipData.NewPlainText ("Permisos", args.Position.ToString ());
				//Inicializamo nuestro ShadowBuilder para ver  el objecto que se esta arrastrando
				MyDragShadowBuilder my_shadown_screen = new MyDragShadowBuilder(args.View);
				//Asignamos los valores y arrancamos nuestro envento Drag
				args.View.StartDrag (data, my_shadown_screen, null, 0);
			
			};

			//Definimos el metodo que se dispara con el evento Drag de neustro listview.
			lvPermisos.Drag += (s, args) => 
			{

				switch (args.Event.Action) {
					//Se dispara cuando comienza el arrastrar algun elemento relazionado con la vista o esta misma
					case DragAction.Started:
					args .Handled = true;
					break;

					//Se dispara cuando una vista que esta siendo arrastranda entra en contacto en esta
					case DragAction.Entered:
					args.Handled = true;
					break;

					//Se dispara cuando una vista que esta siendo arrastranda sale en contacto en esta
					case DragAction.Exited:
					args.Handled = true;
					break;

					//Se dispara cuando una vista que esta siendo arrastrada es soltada dentro de esta
					case DragAction.Drop:
					args.Handled = true;
						//Verificamos que la vista que se solto viene de otro listview en este caso de Permisos_Usuario
						//de lo contrario no lo agregamos, ya que esto significa que la vista que se esta arrastrando se dejo soltar
						//dentro el elemento que la contiene(en este caso el listview al cual pertenece el elemento)
						if(args.Event.ClipDescription.Label.Equals("Permisos_Usuario"))
						{
							//Recupermos el index del elemento que se envio
							int posicion=int.Parse(args.Event.ClipData.GetItemAt(0).Text);
							//Recuperamos el objecto permiso del adapter del listview de donde procede la vista arrastrada
							//y lo agregamos al adapter del listview de donde se solto
							adap_Permisos.add(adap_Permisos_Usuario.PermisoBuscado(posicion));

							//Removemos el objecto permiso del adapter del listview de donde procede la vista arrastrada
							adap_Permisos_Usuario.remove (posicion);
						}

					break;

					//Se dispara cuando la operacion de arrastre ha terminado
					case DragAction.Ended:
					args.Handled = true;
					break;
				}


			};

			/*****************************LISTVIEW PERMISOS USUARIO(IZQUIERDO)********************************************/
			//Inicializamos nuestro listview de permisos(listview de lado izquierdo)
			lvPermisos_Usuario= FindViewById<ListView> (Resource.Id.lvPermisos_Usuario);
			//Incializamos el adaptador con nuestro listado de permisos de usuario, recordemos que este por defecto no 
			//tiene permisos asignados
			adap_Permisos_Usuario=new Adapter_Permisos(this, Permisos_Usuario);
			//Le asignamos el adaptador a nuestro listview
			lvPermisos_Usuario.Adapter = adap_Permisos_Usuario;

			//Definimos el evento ItemLongClick, este nos servira para cuando se realice un click prolongrado 
			//en uno de los items del listview se dispare nuestro arrastre del elemento
			lvPermisos_Usuario.ItemLongClick += (s, args) =>
			{
				//Inicializamos un objecto ClipData para saber en este caso la posicion del item que se esta arrastrando
				//y ademas a que listview pertece
				ClipData data = ClipData.NewPlainText ("Permisos_Usuario",args.Position.ToString());
				//Inicializamo nuestro ShadowBuilder para ver  el objecto que se esta arrastrando
				MyDragShadowBuilder my_shadown_screen = new MyDragShadowBuilder (args.View);
				//Asignamos los valores y arrancamos nuestro envento Drag
				args.View.StartDrag (data, my_shadown_screen, null, 0);

			};

			//Definimos el metodo que se dispara con el evento Drag de nuestro listview.
			lvPermisos_Usuario.Drag += (s, args) => 
			{

				switch (args.Event.Action) {
					//Se dispara cuando comienza el arrastrar algun elemento relazionado con la vista o esta misma
					case DragAction.Started:
					args .Handled = true;
					break;

					//Se dispara cuando una vista que esta siendo arrastranda entra en contacto en esta
					case DragAction.Entered:
					args.Handled = true;
					break;

					//Se dispara cuando una vista que esta siendo arrastranda sale en contacto en esta
					case DragAction.Exited:
					args.Handled = true;
					break;

					//Se dispara cuando una vista que esta siendo arrastrada es soltada dentro de esta
					case DragAction.Drop:
					args.Handled = true;
						//Verificamos que la vista que se solto viene de otro listview en este caso de Permisos
						//de lo contrario no lo agregamos, ya que esto significa que la vista que se esta arrastrando se dejo soltar
						//dentro el elemento que la contiene(en este caso el listview al cual pertenece el elemento)
						if(args.Event.ClipDescription.Label.Equals("Permisos"))
						{
							//Recupermos el index del elemento que se envio
							int posicion=int.Parse(args.Event.ClipData.GetItemAt(0).Text);
							//Recuperamos el objecto permiso del adapter del listview de donde procede la vista arrastrada
							//y lo agregamos al adapter del listview de donde se solto
							adap_Permisos_Usuario.add (adap_Permisos.PermisoBuscado(posicion));
							//Removemos el objecto permiso del adapter del listview de donde procede la vista arrastrada
							adap_Permisos.remove (posicion);
						}
					break;

					//Se dispara cuando la operacion de arrastre ha terminado
					case DragAction.Ended:
					args.Handled = true;
					break;
				}


			};


		}