You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2007/06/27 14:53:06 UTC
svn commit: r551148 - in
/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler:
CayenneModelerController.java action/OpenProjectAction.java
Author: aadamchik
Date: Wed Jun 27 05:53:05 2007
New Revision: 551148
URL: http://svn.apache.org/viewvc?view=rev&rev=551148
Log:
CAY-812 Add ability to drag cayenne.xml to the Modeler from the filesystem
Modified:
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerController.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/OpenProjectAction.java
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerController.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerController.java?view=diff&rev=551148&r1=551147&r2=551148
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerController.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerController.java Wed Jun 27 05:53:05 2007
@@ -20,14 +20,22 @@
package org.apache.cayenne.modeler;
import java.awt.Component;
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.Transferable;
+import java.awt.dnd.DropTarget;
+import java.awt.dnd.DropTargetAdapter;
+import java.awt.dnd.DropTargetDropEvent;
+import java.awt.event.ActionEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.util.Iterator;
+import java.util.List;
import java.util.Vector;
import javax.swing.WindowConstants;
+import org.apache.cayenne.conf.Configuration;
import org.apache.cayenne.modeler.action.ExitAction;
import org.apache.cayenne.modeler.action.OpenProjectAction;
import org.apache.cayenne.modeler.dialog.validator.ValidatorDialog;
@@ -92,10 +100,48 @@
}
});
+ new DropTarget(frame, new DropTargetAdapter() {
+
+ public void drop(DropTargetDropEvent dtde) {
+ dtde.acceptDrop(dtde.getDropAction());
+ Transferable transferable = dtde.getTransferable();
+ dtde.dropComplete(processDropAction(transferable));
+ }
+ });
+
Domain prefDomain = application.getPreferenceDomain().getSubdomain(
frame.getClass());
ComponentGeometry geometry = ComponentGeometry.getPreference(prefDomain);
geometry.bind(frame, 650, 550, 30);
+ }
+
+ private boolean processDropAction(Transferable transferable) {
+ List fileList;
+ try {
+ fileList = (List) transferable.getTransferData(DataFlavor.javaFileListFlavor);
+ }
+ catch (Exception e) {
+ return false;
+ }
+
+ File transferFile = (File) fileList.get(0);
+
+ if (transferFile.isFile()) {
+
+ if (Configuration.DEFAULT_DOMAIN_FILE.equals(transferFile.getName())) {
+ ActionEvent e = new ActionEvent(
+ transferFile,
+ ActionEvent.ACTION_PERFORMED,
+ "OpenProject");
+ Application
+ .getInstance()
+ .getAction(OpenProjectAction.getActionName())
+ .actionPerformed(e);
+ return true;
+ }
+ }
+
+ return false;
}
public void startupAction() {
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/OpenProjectAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/OpenProjectAction.java?view=diff&rev=551148&r1=551147&r2=551148
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/OpenProjectAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/OpenProjectAction.java Wed Jun 27 05:53:05 2007
@@ -80,6 +80,9 @@
FileMenuItem menu = (FileMenuItem) e.getSource();
f = menu.getFile();
}
+ else if(e.getSource() instanceof File) {
+ f = (File) e.getSource();
+ }
if (f == null) {
try {