From c20c66c5f3d22797a5beddc3d990bb8ecb28aeaa Mon Sep 17 00:00:00 2001 From: Arseni Bulatski Date: Wed, 22 Aug 2018 11:25:27 +0300 Subject: [PATCH] CAY-2462 Clipboard holds old content after application was reloaded --- RELEASE-NOTES.txt | 1 + .../java/org/apache/cayenne/modeler/Main.java | 2 +- .../modeler/action/OpenProjectAction.java | 43 +++++++++++++------ 3 files changed, 33 insertions(+), 13 deletions(-) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index d2e5421d99..5504b1d67e 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -20,6 +20,7 @@ Bug Fixes: CAY-2444 Change URI from http:// to https:// in xsi:schemaLocation CAY-2445 Oracle: Problem with ExpressionFactory.notInExp() +CAY-2462 Clipboard holds old content after application was reloaded ---------------------------------- Release: 4.1.M2 diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Main.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Main.java index 5b2e5d2db3..e0e3c043be 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Main.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Main.java @@ -32,7 +32,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.swing.*; +import javax.swing.SwingUtilities; import java.io.File; import java.util.ArrayList; import java.util.Collection; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/OpenProjectAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/OpenProjectAction.java index c8465d6333..4f9271d4db 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/OpenProjectAction.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/OpenProjectAction.java @@ -19,18 +19,6 @@ package org.apache.cayenne.modeler.action; -import java.awt.Toolkit; -import java.awt.event.ActionEvent; -import java.awt.event.KeyEvent; -import java.io.File; -import java.net.URL; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; - -import javax.swing.JOptionPane; -import javax.swing.KeyStroke; - import org.apache.cayenne.modeler.Application; import org.apache.cayenne.modeler.CayenneModelerController; import org.apache.cayenne.modeler.dialog.ErrorDebugDialog; @@ -44,6 +32,20 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import javax.swing.JOptionPane; +import javax.swing.KeyStroke; +import java.awt.Toolkit; +import java.awt.datatransfer.DataFlavor; +import java.awt.datatransfer.Transferable; +import java.awt.datatransfer.UnsupportedFlavorException; +import java.awt.event.ActionEvent; +import java.awt.event.KeyEvent; +import java.io.File; +import java.net.URL; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + public class OpenProjectAction extends ProjectAction { private static Logger logObj = LoggerFactory.getLogger(OpenProjectAction.class); @@ -70,6 +72,7 @@ public static String getActionName() { public OpenProjectAction(Application application) { super(getActionName(), application); this.fileChooser = new ProjectOpener(); + resetClipboard(); } @Override @@ -191,4 +194,20 @@ private boolean processUpgrades() { JOptionPane.YES_NO_OPTION); return returnCode != JOptionPane.NO_OPTION; } + + private void resetClipboard() { + Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new Transferable() { + public DataFlavor[] getTransferDataFlavors() { + return new DataFlavor[0]; + } + + public boolean isDataFlavorSupported(DataFlavor flavor) { + return false; + } + + public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException { + throw new UnsupportedFlavorException(flavor); + } + }, null); + } }