Author: yradtsevich
Date: 2009-03-19 14:54:39 -0400 (Thu, 19 Mar 2009)
New Revision: 14270
Modified:
branches/jbosstools-3.0.x/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/editors/dnd/DropData.java
branches/jbosstools-3.0.x/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/editors/dnd/DropUtils.java
branches/jbosstools-3.0.x/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/editors/dnd/context/DropContext.java
branches/jbosstools-3.0.x/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java
Log:
RESOLVED - issue JBIDE-3985: java.lang.NullPointerException when DND external image file
into Visual Pane
https://jira.jboss.org/jira/browse/JBIDE-3985
Modified:
branches/jbosstools-3.0.x/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/editors/dnd/DropData.java
===================================================================
---
branches/jbosstools-3.0.x/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/editors/dnd/DropData.java 2009-03-19
17:27:15 UTC (rev 14269)
+++
branches/jbosstools-3.0.x/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/editors/dnd/DropData.java 2009-03-19
18:54:39 UTC (rev 14270)
@@ -27,7 +27,7 @@
private ISourceViewer fViewer;
private ISelectionProvider fProvider;
private String fMimeType;
- private String fData;
+ private String fMimeData;
private IDropCommand fDropCommand = null;
private Node container = null;
private String attributeName = null;
@@ -56,7 +56,7 @@
/**
*
* @param mimeType
- * @param data
+ * @param mimeData
* @param pageContext
* @param input
* @param viewer
@@ -64,13 +64,13 @@
*/
public DropData(
String mimeType,
- String data,
+ String mimeData,
IEditorInput input,
ISourceViewer viewer,
ISelectionProvider provider
) {
fMimeType = mimeType;
- fData = data;
+ fMimeData = mimeData;
fInput = input;
fViewer = viewer;
fProvider = provider;
@@ -89,14 +89,14 @@
*
*/
public String getMimeData() {
- return fData;
+ return fMimeData;
}
/**
*
*/
- public void setMimeData(String data) {
- fData = data;
+ public void setMimeData(String mimeData) {
+ fMimeData = mimeData;
}
/**
Modified:
branches/jbosstools-3.0.x/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/editors/dnd/DropUtils.java
===================================================================
---
branches/jbosstools-3.0.x/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/editors/dnd/DropUtils.java 2009-03-19
17:27:15 UTC (rev 14269)
+++
branches/jbosstools-3.0.x/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/editors/dnd/DropUtils.java 2009-03-19
18:54:39 UTC (rev 14270)
@@ -10,6 +10,7 @@
******************************************************************************/
package org.jboss.tools.common.model.ui.editors.dnd;
+import java.io.File;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -204,4 +205,17 @@
}
return container;
}
+
+ /**
+ * If it is possible, then converts given {@code path} into URL,
+ * otherwise returns {@code path} unchanged
+ * @return
+ */
+ public static String convertPathToUrl(String path) {
+ try {
+ return new File(path).toURL().toString();
+ } catch (MalformedURLException e) {
+ return path;
+ }
+ }
}
\ No newline at end of file
Modified:
branches/jbosstools-3.0.x/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/editors/dnd/context/DropContext.java
===================================================================
---
branches/jbosstools-3.0.x/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/editors/dnd/context/DropContext.java 2009-03-19
17:27:15 UTC (rev 14269)
+++
branches/jbosstools-3.0.x/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/editors/dnd/context/DropContext.java 2009-03-19
18:54:39 UTC (rev 14270)
@@ -34,6 +34,7 @@
import org.jboss.tools.common.model.ui.dnd.ModelTransfer;
import org.jboss.tools.common.model.ui.dnd.VpeDnDEvent;
import org.jboss.tools.common.model.ui.dnd.VpeTextDropAction;
+import org.jboss.tools.common.model.ui.editors.dnd.DropUtils;
import org.jboss.tools.common.model.ui.editors.dnd.FileTagProposalLoader;
import org.jboss.tools.common.model.util.EclipseResourceUtil;
import org.jboss.tools.jst.web.tld.TLDUtil;
@@ -119,12 +120,10 @@
private String getURL(TypedEvent event) {
String[] s = (String[])event.data;
- if(s == null || s.length == 0) return null;
- File f = new File(s[0]);
- try {
- return f.toURL().toString();
- } catch (MalformedURLException e) {
- return s[0];
+ if(s == null || s.length == 0) {
+ return null;
+ } else {
+ return DropUtils.convertPathToUrl(s[0]);
}
}
private File getFile(TypedEvent event) {
Modified:
branches/jbosstools-3.0.x/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java
===================================================================
---
branches/jbosstools-3.0.x/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2009-03-19
17:27:15 UTC (rev 14269)
+++
branches/jbosstools-3.0.x/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2009-03-19
18:54:39 UTC (rev 14270)
@@ -10,6 +10,8 @@
******************************************************************************/
package org.jboss.tools.vpe.editor;
+import java.io.File;
+import java.net.MalformedURLException;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
@@ -83,6 +85,7 @@
import org.jboss.tools.common.model.ui.editor.IModelObjectEditorInput;
import org.jboss.tools.common.model.ui.editors.dnd.DropCommandFactory;
import org.jboss.tools.common.model.ui.editors.dnd.DropData;
+import org.jboss.tools.common.model.ui.editors.dnd.DropUtils;
import org.jboss.tools.common.model.ui.editors.dnd.IDropCommand;
import org.jboss.tools.common.model.ui.editors.dnd.JSPTagProposalFactory;
import org.jboss.tools.common.model.ui.editors.dnd.context.DropContext;
@@ -2193,7 +2196,10 @@
dropCommand.getDefaultModel().setPromptForTagAttributesRequired(
promptAttributes);
- dropCommand.execute(new DropData(flavor, data, sourceEditor
+ // because it is external, convert path to URL
+ final String mimeData = DropUtils.convertPathToUrl(data);
+
+ dropCommand.execute(new DropData(flavor, mimeData, sourceEditor
.getEditorInput(), (ISourceViewer) sourceEditor
.getAdapter(ISourceViewer.class), new VpeSelectionProvider(
range.x, range.y), container));