Changeset 738
- Timestamp:
- 01/22/14 15:05:26 (10 years ago)
- Location:
- trunk/src/org/expeditee
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/expeditee/gui/Browser.java
r732 r738 10 10 import java.awt.RenderingHints; 11 11 import java.awt.Toolkit; 12 import java.awt.datatransfer.Clipboard; 13 import java.awt.datatransfer.Transferable; 12 14 import java.awt.event.ComponentEvent; 13 15 import java.awt.event.ComponentListener; … … 21 23 import java.util.Collection; 22 24 import java.util.LinkedList; 25 import java.util.List; 23 26 24 27 import javax.swing.JFrame; … … 31 34 import org.expeditee.agents.mail.MailSession; 32 35 import org.expeditee.importer.FrameDNDTransferHandler; 36 import org.expeditee.io.ExpClipReader; 33 37 import org.expeditee.io.ItemSelection; 34 38 import org.expeditee.io.ProxyAuth; 39 import org.expeditee.io.ItemSelection.ExpDataHandler; 35 40 import org.expeditee.items.Item; 41 import org.expeditee.items.ItemUtils; 36 42 import org.expeditee.items.widgets.WidgetCacheManager; 37 43 import org.expeditee.network.FrameShare; … … 431 437 432 438 public void windowActivated(WindowEvent e) { 433 // System.out.println("Activated");434 439 } 435 440 436 441 public void windowDeactivated(WindowEvent e) { 437 ItemSelection.cut(FreeItems.getInstance());438 442 } 439 443 -
trunk/src/org/expeditee/gui/FrameMouseActions.java
r734 r738 1 1 package org.expeditee.gui; 2 2 3 import java.awt.Image; 3 4 import java.awt.Point; 4 5 import java.awt.Rectangle; 6 import java.awt.Toolkit; 7 import java.awt.datatransfer.Clipboard; 8 import java.awt.datatransfer.DataFlavor; 9 import java.awt.datatransfer.StringSelection; 10 import java.awt.datatransfer.Transferable; 5 11 import java.awt.event.ActionEvent; 6 12 import java.awt.event.ActionListener; … … 28 34 import org.expeditee.actions.Misc; 29 35 import org.expeditee.actions.Navigation; 36 import org.expeditee.io.ExpClipReader; 37 import org.expeditee.io.ItemSelection; 38 import org.expeditee.io.ItemSelection.ExpDataHandler; 30 39 import org.expeditee.items.Circle; 31 40 import org.expeditee.items.Constraint; … … 1657 1666 } 1658 1667 1668 private static boolean inWindow = false; 1669 /** 1670 * event called when mouse exits window 1671 * (can't use MouseListener callback since that callback doesn't 1672 * correctly receive all mouse exit events) 1673 */ 1674 public static void mouseExitedWindow(MouseEvent e) { 1675 inWindow = false; 1676 // System.out.println("Left window"); 1677 if(FreeItems.itemsAttachedToCursor()) 1678 ItemSelection.cut(FreeItems.getInstance()); 1679 } 1680 1659 1681 public void mouseEntered(MouseEvent e) { 1682 // check if we are entering the window from outside of the window, or if we were just over a widget 1683 if(!inWindow) { 1684 inWindow = true; 1685 // if there is expeditee data on the clipboard that has not yet been autoPasted, autoPaste it 1686 Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard(); 1687 Transferable content = c.getContents(null); 1688 try { 1689 if(content.isDataFlavorSupported(ItemSelection.expDataFlavor)) { // Expeditee data 1690 ExpDataHandler expData = (ExpDataHandler)content.getTransferData(ItemSelection.expDataFlavor); 1691 if(expData.autoPaste) { 1692 List<Item> items = new ExpClipReader(FrameMouseActions.getX(), FrameMouseActions.getY()).read(expData.items); 1693 // generate new IDs and pickup 1694 FrameMouseActions.pickup(ItemUtils.CopyItems(items)); 1695 // update the clipboard contents so they won't be autoPasted again 1696 expData.autoPaste = false; 1697 String stringData = ""; 1698 Image imageData = null; 1699 if(content.isDataFlavorSupported(DataFlavor.stringFlavor)) { 1700 stringData = (String) content.getTransferData(DataFlavor.stringFlavor); 1701 } 1702 if(content.isDataFlavorSupported(DataFlavor.imageFlavor)) { 1703 imageData = (Image) content.getTransferData(DataFlavor.imageFlavor); 1704 } 1705 c.setContents(new ItemSelection(stringData, imageData, expData), null); 1706 } 1707 } 1708 } catch(Exception ex) { 1709 ex.printStackTrace(); 1710 } 1711 } 1660 1712 } 1661 1713 -
trunk/src/org/expeditee/gui/MouseEventRouter.java
r682 r738 4 4 import java.awt.Component; 5 5 import java.awt.Container; 6 import java.awt.Image; 6 7 import java.awt.Point; 7 8 import java.awt.Toolkit; 9 import java.awt.datatransfer.Clipboard; 10 import java.awt.datatransfer.DataFlavor; 11 import java.awt.datatransfer.Transferable; 8 12 import java.awt.event.AWTEventListener; 9 13 import java.awt.event.MouseEvent; … … 20 24 import javax.swing.SwingUtilities; 21 25 26 import org.expeditee.io.ExpClipReader; 27 import org.expeditee.io.ItemSelection; 28 import org.expeditee.io.ItemSelection.ExpDataHandler; 22 29 import org.expeditee.items.Item; 30 import org.expeditee.items.ItemUtils; 23 31 24 32 /** … … 141 149 */ 142 150 private void routeMouseEvent(MouseEvent e) { 143 144 151 _currentMouseEvent = e; 145 152 … … 147 154 Point containerPoint = SwingUtilities.convertPoint(e.getComponent(), e 148 155 .getPoint(), _contentPane); 156 157 // TODO: Find a reliable way of detecting when the mouse moved onto a window that isn't a child of ours 158 if(e.getID() == MouseEvent.MOUSE_EXITED) { 159 // System.out.println(e.getComponent()); 160 if(e.getSource() instanceof Browser || e.getComponent() instanceof Browser || 161 e.getX() <= 0 || e.getX() >= _contentPane.getWidth() || 162 e.getY() <= 0 || e.getY() >= _contentPane.getHeight()) { 163 FrameMouseActions.mouseExitedWindow(e); 164 } 165 } 149 166 150 167 if (containerPoint.y < 0) { // not in the content pane … … 272 289 break; 273 290 case MouseEvent.MOUSE_ENTERED: 291 withExtensions = duplicateMouseEvent(expediteeEvent, e 292 .getModifiers() 293 | e.getModifiersEx()); 274 294 for (MouseListener listener : _mouseListeners) { 275 295 listener.mouseEntered(withExtensions); -
trunk/src/org/expeditee/io/ItemSelection.java
r652 r738 9 9 import java.awt.datatransfer.UnsupportedFlavorException; 10 10 import java.awt.image.BufferedImage; 11 import java.awt.image.DataBuffer;12 import java.io.ByteArrayOutputStream;13 11 import java.io.File; 14 12 import java.io.IOException; 15 import java.io.ObjectOutputStream;16 13 import java.io.Serializable; 17 14 import java.util.Arrays; … … 46 43 47 44 private static final long serialVersionUID = 1L; 45 46 // whether this should be automatically picked up 47 public boolean autoPaste = true; 48 48 49 49 // exp save data
Note:
See TracChangeset
for help on using the changeset viewer.