View | Details | Raw Unified | Return to bug 267961 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/jst/pagedesigner/editors/DesignerStructuredTextEditorJSP.java (-19 / +54 lines)
Lines 14-45 Link Here
14
import org.eclipse.jface.action.IAction;
14
import org.eclipse.jface.action.IAction;
15
import org.eclipse.jface.text.ITextViewer;
15
import org.eclipse.jface.text.ITextViewer;
16
import org.eclipse.jst.pagedesigner.dnd.internal.DesignerSourceDropTargetListener;
16
import org.eclipse.jst.pagedesigner.dnd.internal.DesignerSourceDropTargetListener;
17
import org.eclipse.swt.dnd.DND;
18
import org.eclipse.swt.dnd.DropTarget;
17
import org.eclipse.ui.texteditor.ITextEditorDropTargetListener;
19
import org.eclipse.ui.texteditor.ITextEditorDropTargetListener;
18
import org.eclipse.wst.sse.ui.StructuredTextEditor;
20
import org.eclipse.wst.sse.ui.StructuredTextEditor;
19
21
20
/**
22
/**
21
 * @author mengbo
23
 * @author mengbo
22
 */
24
 */
23
public class DesignerStructuredTextEditorJSP extends StructuredTextEditor {
25
public class DesignerStructuredTextEditorJSP extends StructuredTextEditor
24
	protected void initializeDrop(ITextViewer textViewer) {
26
{
25
		// It seems if we don't skip this method, our drag drop listener will
27
    private ITextEditorDropTargetListener _dropTargetListener;
26
		// can't be enabled.
28
    private DropTarget _dropTarget;
27
	}
28
29
29
	public IAction getAction(String actionID) {
30
    @Override
30
		try {
31
    protected void initializeDrop(final ITextViewer viewer)
31
			return super.getAction(actionID);
32
    {
32
		} catch (Exception e) {
33
        int operations = DND.DROP_COPY | DND.DROP_MOVE;
33
			return null;
34
        _dropTarget = new DropTarget(viewer.getTextWidget(), operations);
34
		}
35
        _dropTargetListener = 
35
	}
36
            new DesignerSourceDropTargetListener(this);
37
        _dropTarget.setTransfer(_dropTargetListener.getTransfers());
38
        _dropTarget.addDropListener(_dropTargetListener);
39
    }
36
40
37
	public Object getAdapter(Class required) {
41
    @Override
38
		if (ITextEditorDropTargetListener.class.equals(required)) {
42
    public IAction getAction(final String actionID)
39
			DesignerSourceDropTargetListener listener = new DesignerSourceDropTargetListener(
43
    {
40
					this);
44
        try
41
			return listener;
45
        {
42
		}
46
            return super.getAction(actionID);
47
        } catch (final Exception e)
48
        {
49
            return null;
50
        }
51
    }
52
53
    @Override
54
    public Object getAdapter(final Class required)
55
    {
56
        if (ITextEditorDropTargetListener.class.equals(required))
57
        {
58
            final DesignerSourceDropTargetListener listener = new DesignerSourceDropTargetListener(
59
                    this);
60
            return listener;
61
        }
43
        return super.getAdapter(required);
62
        return super.getAdapter(required);
44
	}
63
    }
64
65
    @Override
66
    public void dispose()
67
    {
68
        if (_dropTargetListener != null)
69
        {
70
            _dropTargetListener = null;
71
        }
72
        if (_dropTarget != null)
73
        {
74
            _dropTarget.dispose();
75
            _dropTarget = null;
76
        }
77
        
78
        super.dispose();
79
    }
45
}
80
}

Return to bug 267961