[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[stp-commits] r3316 - in org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java: . dnd

Author: sdrapeau
Date: 2009-09-15 06:39:08 -0400 (Tue, 15 Sep 2009)
New Revision: 3316

Modified:
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/ScaBuilderDecoratorProvider.java
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/AbstractClassFileDD.java
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/AbstractJavaElementDD.java
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/AbstractJavaFileDD.java
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/ClassFileImplementationDD.java
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/ClassFileImplementationDDOnComposite.java
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/ClassFileInterfaceDD.java
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/JavaFileImplementationDD.java
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/JavaFileImplementationDDOnComposite.java
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/JavaFileInterfaceDD.java
   org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/Utils.java
Log:
Refactoring + Fix for DnD from jar file.

Modified: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/ScaBuilderDecoratorProvider.java
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/ScaBuilderDecoratorProvider.java	2009-09-15 10:38:07 UTC (rev 3315)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/ScaBuilderDecoratorProvider.java	2009-09-15 10:39:08 UTC (rev 3316)
@@ -519,7 +519,6 @@
 		 * @see org.eclipse.gmf.runtime.common.ui.resources.IFileObserver
 		 * #handleMarkerAdded(org.eclipse.core.resources.IMarker)
 		 */
-		@SuppressWarnings( "restriction" )
 		public void handleMarkerAdded( IMarker marker ) {
 			if( marker.getAttribute( ScaCommonConstants.SCA_SIGNATURE_ATTRIBUTE, null ) != null )
 				handleMarkerChanged( marker );

Modified: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/AbstractClassFileDD.java
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/AbstractClassFileDD.java	2009-09-15 10:38:07 UTC (rev 3315)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/AbstractClassFileDD.java	2009-09-15 10:39:08 UTC (rev 3316)
@@ -11,7 +11,6 @@
  */
 package org.eclipse.stp.sca.diagram.java.dnd;
 
-import org.eclipse.core.resources.IResource;
 import org.eclipse.stp.sca.common.java.utils.JDTUtils;
 
 /**
@@ -20,8 +19,8 @@
 public abstract class AbstractClassFileDD extends AbstractJavaElementDD {
 
 	@Override
-	protected String getClassName(IResource file) {
-		return JDTUtils.getClassName(file);
+	protected String getClassName(Object transfer) {
+		return JDTUtils.getClassName(transfer);
 	}
 
 }

Modified: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/AbstractJavaElementDD.java
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/AbstractJavaElementDD.java	2009-09-15 10:38:07 UTC (rev 3315)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/AbstractJavaElementDD.java	2009-09-15 10:39:08 UTC (rev 3316)
@@ -14,10 +14,8 @@
 import java.util.Collection;
 
 import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.gef.EditPart;
 import org.eclipse.gef.Request;
 import org.eclipse.gef.commands.CompoundCommand;
 import org.eclipse.gmf.runtime.common.core.command.CommandResult;
@@ -26,7 +24,6 @@
 import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
 import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramCommandStack;
 import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewAndElementRequest;
-import org.eclipse.gmf.runtime.diagram.ui.requests.DropObjectsRequest;
 import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewAndElementRequest.ViewAndElementDescriptor;
 import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
 import org.eclipse.gmf.runtime.emf.type.core.IElementType;
@@ -35,45 +32,34 @@
 import org.eclipse.gmf.runtime.notation.Node;
 import org.eclipse.gmf.runtime.notation.View;
 import org.eclipse.stp.sca.Component;
-import org.eclipse.stp.sca.diagram.dnd.DragDropFile;
-import org.eclipse.stp.sca.diagram.dnd.IDragDropHandler;
-import org.eclipse.swt.dnd.DropTargetEvent;
+import org.eclipse.stp.sca.diagram.dnd.AbstractFileDD;
 
 /**
  * @author Stephane Drapeau - Obeo
  */
-public abstract class AbstractJavaElementDD implements IDragDropHandler {
+public abstract class AbstractJavaElementDD extends AbstractFileDD {
 
 	public AbstractTransactionalCommand getAbstractTransactionalCommand(
 			IGraphicalEditPart host, GraphicalEditPart editPart, Request request) {
 		AbstractTransactionalCommand cmd = null;
 		if (editPartIsOk(editPart)) {
-			IResource file = getDnDedFile(request);
-			String className = getClassName(file);
+			Object transfer = getDnDedObject(request);
+			String className = null;
+			if (transfer != null) {
+				className = getClassName(transfer);
+			}
 			if (className != null) {
-				cmd = getCommand(host, editPart, request, file, className);
+				if (typeIsOk(className, transfer)) {
+					cmd = getCommand(host, editPart, request, className);
+				}
 			}
 		}
 		return cmd;
 	}
 
-	private IResource getDnDedFile(Request request) {
-		IResource file = null;
-		if (request != null
-				&& request instanceof DropObjectsRequest
-				&& ((DropObjectsRequest) request).getObjects() != null
-				&& !((DropObjectsRequest) request).getObjects().isEmpty()
-				&& ((DropObjectsRequest) request).getObjects().get(0) != null
-				&& ((DropObjectsRequest) request).getObjects().get(0) instanceof DragDropFile) {
-			file = ((DragDropFile) ((DropObjectsRequest) request).getObjects()
-					.get(0)).getResource();
-		}
-		return file;
-	}
-
 	private AbstractTransactionalCommand getCommand(IGraphicalEditPart host,
 			final GraphicalEditPart editPart, Request request,
-			final IResource file, final String className) {
+			final String className) {
 		AbstractTransactionalCommand cmd = new AbstractTransactionalCommand(
 				host.getEditingDomain(), "DnD Java element", //$NON-NLS-1$
 				null) {
@@ -82,9 +68,6 @@
 			protected CommandResult doExecuteWithResult(
 					IProgressMonitor monitor, IAdaptable info)
 					throws ExecutionException {
-				if (!typeIsOk(className, file)) {
-					return CommandResult.newCancelledCommandResult();
-				}
 				IElementType type = getType(editPart);
 				if (type == null) {
 					return CommandResult.newCancelledCommandResult();
@@ -129,16 +112,8 @@
 	protected abstract Component postTreatment(GraphicalEditPart editPart,
 			View view, String className);
 
-	protected abstract String getClassName(IResource file);
+	protected abstract String getClassName(Object transfer);
 
-	protected abstract boolean editPartIsOk(GraphicalEditPart editPart);
+	protected abstract boolean typeIsOk(String className, Object transfer);
 
-	protected abstract IElementType getType(GraphicalEditPart editPart);
-
-	protected abstract boolean typeIsOk(String className, IResource file);
-
-	public boolean isEnabled(DropTargetEvent event, EditPart part) {
-		return true;
-	}
-
 }

Modified: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/AbstractJavaFileDD.java
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/AbstractJavaFileDD.java	2009-09-15 10:38:07 UTC (rev 3315)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/AbstractJavaFileDD.java	2009-09-15 10:39:08 UTC (rev 3316)
@@ -26,8 +26,12 @@
 public abstract class AbstractJavaFileDD extends AbstractJavaElementDD {
 
 	@Override
-	protected String getClassName(IResource file) {
+	protected String getClassName(Object transfer) {
 		String result = null;
+		IResource file = null;
+		if(transfer instanceof IResource){
+			file = (IResource)transfer;
+		}
 		if (file == null || !file.getFileExtension().equals("java")) {//$NON-NLS-1$
 			return null;
 		} else {

Modified: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/ClassFileImplementationDD.java
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/ClassFileImplementationDD.java	2009-09-15 10:38:07 UTC (rev 3315)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/ClassFileImplementationDD.java	2009-09-15 10:39:08 UTC (rev 3316)
@@ -12,7 +12,6 @@
 package org.eclipse.stp.sca.diagram.java.dnd;
 
 import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
 import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
 import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
 import org.eclipse.gmf.runtime.emf.type.core.IElementType;
@@ -61,8 +60,13 @@
 	}
 
 	@Override
-	protected boolean typeIsOk(String className, IResource file) {
-		return Utils.getJavaType((IFile) file, className) == 0;
+	protected boolean typeIsOk(String className, Object transfer) {
+		if (transfer instanceof IFile) {
+			return Utils.getJavaType((IFile) transfer, className) == 0;
+		}else{
+			System.out.println(transfer.getClass().getName());
+		}
+		return false;
 	}
 
 	@Override

Modified: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/ClassFileImplementationDDOnComposite.java
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/ClassFileImplementationDDOnComposite.java	2009-09-15 10:38:07 UTC (rev 3315)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/ClassFileImplementationDDOnComposite.java	2009-09-15 10:39:08 UTC (rev 3316)
@@ -12,7 +12,6 @@
 package org.eclipse.stp.sca.diagram.java.dnd;
 
 import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
 import org.eclipse.emf.ecore.util.FeatureMap;
 import org.eclipse.emf.ecore.util.FeatureMapUtil;
 import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
@@ -78,8 +77,13 @@
 	}
 
 	@Override
-	protected boolean typeIsOk(String className, IResource file) {
-		return Utils.getJavaType((IFile) file, className) == 0;
+	protected boolean typeIsOk(String className, Object transfer) {
+		if (transfer instanceof IFile) {
+			return Utils.getJavaType((IFile) transfer, className) == 0;
+		}else{
+			//FIXME It can be a java class enclosed in a jar.
+			return true;
+		}
 	}
 
 	@Override

Modified: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/ClassFileInterfaceDD.java
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/ClassFileInterfaceDD.java	2009-09-15 10:38:07 UTC (rev 3315)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/ClassFileInterfaceDD.java	2009-09-15 10:39:08 UTC (rev 3316)
@@ -12,7 +12,6 @@
 package org.eclipse.stp.sca.diagram.java.dnd;
 
 import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
@@ -76,8 +75,11 @@
 	}
 
 	@Override
-	protected boolean typeIsOk(String className, IResource file) {
-		return Utils.getJavaType((IFile) file, className) == 1;
+	protected boolean typeIsOk(String className, Object transfer) {
+		if (transfer instanceof IFile) {
+			return Utils.getJavaType((IFile) transfer, className) == 1;
+		}
+		return false;
 	}
 
 	@Override

Modified: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/JavaFileImplementationDD.java
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/JavaFileImplementationDD.java	2009-09-15 10:38:07 UTC (rev 3315)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/JavaFileImplementationDD.java	2009-09-15 10:39:08 UTC (rev 3316)
@@ -13,7 +13,6 @@
 package org.eclipse.stp.sca.diagram.java.dnd;
 
 import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
 import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
 import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
 import org.eclipse.gmf.runtime.emf.type.core.IElementType;
@@ -54,8 +53,11 @@
 	}
 
 	@Override
-	protected boolean typeIsOk(String className, IResource file) {
-		return Utils.getJavaType((IFile) file, className) == 0;
+	protected boolean typeIsOk(String className, Object transfer) {
+		if (transfer instanceof IFile) {
+			return Utils.getJavaType((IFile) transfer, className) == 0;
+		}
+		return false;
 	}
 
 	@Override

Modified: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/JavaFileImplementationDDOnComposite.java
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/JavaFileImplementationDDOnComposite.java	2009-09-15 10:38:07 UTC (rev 3315)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/JavaFileImplementationDDOnComposite.java	2009-09-15 10:39:08 UTC (rev 3316)
@@ -13,7 +13,6 @@
 package org.eclipse.stp.sca.diagram.java.dnd;
 
 import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
 import org.eclipse.emf.ecore.util.FeatureMap;
 import org.eclipse.emf.ecore.util.FeatureMapUtil;
 import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
@@ -72,8 +71,11 @@
 	}
 
 	@Override
-	protected boolean typeIsOk(String className, IResource file) {
-		return Utils.getJavaType((IFile) file, className) == 0;
+	protected boolean typeIsOk(String className, Object transfer) {
+		if (transfer instanceof IFile) {
+			return Utils.getJavaType((IFile) transfer, className) == 0;
+		}
+		return false;
 	}
 
 	@Override

Modified: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/JavaFileInterfaceDD.java
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/JavaFileInterfaceDD.java	2009-09-15 10:38:07 UTC (rev 3315)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/JavaFileInterfaceDD.java	2009-09-15 10:39:08 UTC (rev 3316)
@@ -13,7 +13,6 @@
 package org.eclipse.stp.sca.diagram.java.dnd;
 
 import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
@@ -69,8 +68,11 @@
 	}
 
 	@Override
-	protected boolean typeIsOk(String className, IResource file) {
-		return Utils.getJavaType((IFile) file, className) == 1;
+	protected boolean typeIsOk(String className, Object transfer) {
+		if (transfer instanceof IFile) {
+			return Utils.getJavaType((IFile) transfer, className) == 1;
+		}
+		return false;
 	}
 
 	@Override

Modified: org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/Utils.java
===================================================================
--- org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/Utils.java	2009-09-15 10:38:07 UTC (rev 3315)
+++ org.eclipse.stp.sca/trunk/org.eclipse.stp.sca.diagram.java/src/org/eclipse/stp/sca/diagram/java/dnd/Utils.java	2009-09-15 10:39:08 UTC (rev 3316)
@@ -39,7 +39,7 @@
  * @author Stephane Drapeau - Obeo
  */
 public class Utils {
-
+	
 	static int getJavaType(IFile file, String className) {
 		try {
 			ScaClassLoader classLoader = getClassLoader(file);