コード例 #1
0
 public void WatermarkControl(BitmapImage image, string watermark, string file_name,User owner)
 {
     Watermark uc = new Watermark(image, watermark, file_name,owner);
     //myScatterView.Items.Add(uc);
 }
コード例 #2
0
        public void requestTransfer(long tag, Watermark watermark)
        {
            //t2 Imitere at tlf er lagt på bordet:(kommer fra TAGVisualizer object)
                    OutMsg outMsg = new OutMsg();
                    User dest_user = null;
                    for (int i = 0; i < users.Count; i++)
                    {
                        if (users.ElementAt(i).tag_value == tag)
                        {
                            dest_user = users.ElementAt(i);
                        }
                    }
                    bool userHasImage = false;
                    for (int i = 0; i < watermark.owners.Count; i++)
                    {
                        if (watermark.owners.ElementAt(i).ip == dest_user.ip)
                        {
                            userHasImage = true;
                        }
                    }
                    if (userHasImage) { Console.WriteLine("The phone already ownes this picture!"); }
                        if (dest_user != null && !userHasImage)
                        {
                            outMsg.dest_ip = dest_user.ip;//Telefonen der er collission med's ips
                            outMsg.file_name = watermark.name;
                            outMsg.method = "transfer";
                            string src_ip = watermark.owners.First().ip;

                            if (src_ip != null)
                            {

                                if (src_ip != dest_user.ip)
                                {
                                    Thread t2 = new Thread(() => client(15123, src_ip, JsonConvert.SerializeObject(outMsg)));
                                    //Console.WriteLine(src_ip + ": " + JsonConvert.SerializeObject(outMsg));
                                    t2.Start();
                                }
                                else Console.WriteLine("The phone already ownes this picture!");
                            }
                        }
        }
コード例 #3
0
        public void scatterViewControle(ImageCollection weps)
        {
            // MyDelegateWatermark del = new MyDelegateWatermark(this.WatermarkControl);
            ////OPTIMIZE!!!! n3!!!
            User tmp_user = null;
            for (int i = 0; i < users.Count; i++)
            {

                if (users.ElementAt(i).ip == weps.src_ip)
                {
                    tmp_user = users.ElementAt(i);
                    break;
                }
            }
            if (tmp_user != null)
            {
                for (int i = 0; i < weps.images.Count; i++)
                {/*
                    User user=null;
                    for (int j = 0; j < users.Count; j++)
                    {
                        Trace.WriteLine("name: " + users.ElementAt(i).ip + "name: " + weps.src_ip);
                        if (users.ElementAt(i).ip == weps.src_ip)
                        {
                            user = users.ElementAt(i);
                            Trace.WriteLine("User found!");
                            break;
                        }
                    }
                    Trace.WriteLine(user==null);*/
                    Watermark tmp = new Watermark(Util.LoadImage(weps.images.ElementAt(i).image.bytes), tmp_user.icon, weps.images.ElementAt(i).image.name, tmp_user);

                    tmp.Tag = weps.images.ElementAt(i).image.name;

                    bool copy = true;
                    for (int k = 0; k < scatterViewItems.Count; k++)
                    {
                        if (scatterViewItems.ElementAt(k).GetType() == tmp.GetType())
                        {
                            Watermark w = (Watermark)scatterViewItems.ElementAt(k);
                            if (w.name == tmp.name) { copy = false; }//it already exist!
                            //Trace.WriteLine("name: " + w.name + "name: " + tmp.name);
                        }
                    }
                    if (copy == true) scatterViewItems.Add(tmp);
                }
                //this.Dispatcher.Invoke(del, new object[] { image, watermark });
            }
            else Console.WriteLine("unregistred user, please contact admin.");
        }
コード例 #4
0
        public void dragDrop(object sender, InputEventArgs e)
        {
            Point phoneUpperLeft = new Point();
            Point phoneUpperRight = new Point();
            Point phoneLowerRight = new Point();
            Point imageDragged = new Point();

            double phoneHeight = 0;
            double phoneWidth = 0;
            ScatterViewItem phone = null;
            FrameworkElement findSource = e.OriginalSource as FrameworkElement;
            ScatterViewItem draggedElement = null;
            while (draggedElement == null && findSource != null)
            {
                if ((draggedElement = findSource as ScatterViewItem) == null)
                {
                    findSource = VisualTreeHelper.GetParent(findSource) as FrameworkElement;
                }
            }
            Watermark water = new Watermark();
            if (draggedElement.DataContext as Watermark != null)
            {
                water = draggedElement.DataContext as Watermark;
            }
            List<ScatterViewItem> phones = new List<ScatterViewItem>();

            if (water != null && draggedElement.DataContext as Watermark != null)
            {
                imageDragged = water.TranslatePoint(new Point(0, 0), this);

                for (int i = 0; i < scatterViewItems.Count; i++)
                {

                    if (scatterViewItems.ElementAt(i).GetType() == new ScatterViewItem().GetType())
                    {
                        phone = (ScatterViewItem)scatterViewItems.ElementAt(i);
                        phones.Add(phone);

                    }
                }

                if (phones.Count() != 0)
                {
                    bool hasCollision = false;
                    //long collisionPhone = 0;
                    ScatterViewItem tmpPhone = null;
                    for (int i = 0; i < phones.Count(); i++)
                    {
                        phoneHeight = phones.ElementAt(i).ActualHeight;
                        phoneWidth = phones.ElementAt(i).ActualWidth;
                        phoneUpperLeft = phones.ElementAt(i).TranslatePoint(new Point(0, 0), this);
                        phoneUpperRight = phones.ElementAt(i).TranslatePoint(new Point(phoneWidth, 0), this);
                        phoneLowerRight = phones.ElementAt(i).TranslatePoint(new Point(phoneWidth, phoneHeight), this);
                        //Console.WriteLine("TAG: "+phone.Tag);
                        hasCollision= collision(imageDragged, phoneUpperLeft, phoneUpperRight, phoneLowerRight);
                        if (hasCollision)
                        {
                            tmpPhone = phones.ElementAt(i);
                            break;
                        }
                        //collisionPhone = (long)phones.ElementAt(i).Tag;
                    }
                    if (tmpPhone != null)
                    {
                        Console.WriteLine("TAG: " + tmpPhone.Tag);
                        if (hasCollision == true)
                        {
                            Console.WriteLine("COLLISION!!");
                            requestTransfer((long)tmpPhone.Tag, water);
                        }
                        else Console.WriteLine("NO COLLISION!");
                    }
                }
            }
        }