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); }
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!"); } } }
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."); }
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!"); } } } }