### Eclipse Workspace Patch 1.0 #P org.eclipse.jst.pagedesigner Index: src/org/eclipse/jst/pagedesigner/dnd/internal/DesignerSourceMouseTrackAdapter.java =================================================================== RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/dnd/internal/DesignerSourceMouseTrackAdapter.java,v retrieving revision 1.6 diff -u -r1.6 DesignerSourceMouseTrackAdapter.java --- src/org/eclipse/jst/pagedesigner/dnd/internal/DesignerSourceMouseTrackAdapter.java 18 Nov 2008 22:22:54 -0000 1.6 +++ src/org/eclipse/jst/pagedesigner/dnd/internal/DesignerSourceMouseTrackAdapter.java 1 May 2009 22:36:23 -0000 @@ -17,11 +17,9 @@ import org.eclipse.jst.pagedesigner.commands.SourceViewerCommand; import org.eclipse.jst.pagedesigner.editors.pagedesigner.PageDesignerResources; import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry; -import org.eclipse.swt.custom.StyledText; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.events.MouseListener; import org.eclipse.swt.events.MouseMoveListener; -import org.eclipse.swt.graphics.Point; import org.eclipse.wst.sse.ui.StructuredTextEditor; import org.eclipse.wst.sse.ui.internal.ExtendedEditorDropTargetAdapter; @@ -54,26 +52,28 @@ * @see org.eclipse.swt.events.MouseMoveListener#mouseMove(org.eclipse.swt.events.MouseEvent) */ public void mouseMove(MouseEvent event) { - Object object = getPaletteObject(); - StyledText text = null; - if (_textEditor.getTextViewer() != null) { - text = _textEditor.getTextViewer().getTextWidget(); - } else { - return; - } - if (object == null) { - // set to default cusror - text.setCursor(null); - return; - } - Point p = new Point(event.x, event.y); - p = _textEditor.getTextViewer().getTextWidget().toDisplay(p); - SourceViewerDragDropHelper.getInstance().updateCaret(_textEditor, p); - _location = text.getCaretOffset(); - _location = SourceViewerDragDropHelper.getInstance().getValidLocation( - _textEditor, _location); - _location = SourceViewerDragDropHelper.getInstance().showCaret( - _textEditor, _location); + //Feedback is handled by DesignerSourceDropTargetListener - commenting out below + +// Object object = getPaletteObject(); +// StyledText text = null; +// if (_textEditor.getTextViewer() != null) { +// text = _textEditor.getTextViewer().getTextWidget(); +// } else { +// return; +// } +// if (object == null) { +// // set to default cusror +// text.setCursor(null); +// return; +// } +// Point p = new Point(event.x, event.y); +// p = _textEditor.getTextViewer().getTextWidget().toDisplay(p); +// SourceViewerDragDropHelper.getInstance().updateCaret(_textEditor, p); +// _location = text.getCaretOffset(); +// _location = SourceViewerDragDropHelper.getInstance().getValidLocation( +// _textEditor, _location); +// _location = SourceViewerDragDropHelper.getInstance().showCaret( +// _textEditor, _location); } /* Index: src/org/eclipse/jst/pagedesigner/editors/DesignerStructuredTextEditorJSP.java =================================================================== RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/DesignerStructuredTextEditorJSP.java,v retrieving revision 1.2 diff -u -r1.2 DesignerStructuredTextEditorJSP.java --- src/org/eclipse/jst/pagedesigner/editors/DesignerStructuredTextEditorJSP.java 22 Nov 2006 19:30:53 -0000 1.2 +++ src/org/eclipse/jst/pagedesigner/editors/DesignerStructuredTextEditorJSP.java 1 May 2009 22:36:23 -0000 @@ -14,32 +14,67 @@ import org.eclipse.jface.action.IAction; import org.eclipse.jface.text.ITextViewer; import org.eclipse.jst.pagedesigner.dnd.internal.DesignerSourceDropTargetListener; +import org.eclipse.swt.dnd.DND; +import org.eclipse.swt.dnd.DropTarget; import org.eclipse.ui.texteditor.ITextEditorDropTargetListener; import org.eclipse.wst.sse.ui.StructuredTextEditor; /** * @author mengbo */ -public class DesignerStructuredTextEditorJSP extends StructuredTextEditor { - protected void initializeDrop(ITextViewer textViewer) { - // It seems if we don't skip this method, our drag drop listener will - // can't be enabled. - } +public class DesignerStructuredTextEditorJSP extends StructuredTextEditor +{ + private ITextEditorDropTargetListener _dropTargetListener; + private DropTarget _dropTarget; - public IAction getAction(String actionID) { - try { - return super.getAction(actionID); - } catch (Exception e) { - return null; - } - } + @Override + protected void initializeDrop(final ITextViewer viewer) + { + int operations = DND.DROP_COPY | DND.DROP_MOVE; + _dropTarget = new DropTarget(viewer.getTextWidget(), operations); + _dropTargetListener = + new DesignerSourceDropTargetListener(this); + _dropTarget.setTransfer(_dropTargetListener.getTransfers()); + _dropTarget.addDropListener(_dropTargetListener); + } - public Object getAdapter(Class required) { - if (ITextEditorDropTargetListener.class.equals(required)) { - DesignerSourceDropTargetListener listener = new DesignerSourceDropTargetListener( - this); - return listener; - } + @Override + public IAction getAction(final String actionID) + { + try + { + return super.getAction(actionID); + } catch (final Exception e) + { + return null; + } + } + + @Override + public Object getAdapter(final Class required) + { + if (ITextEditorDropTargetListener.class.equals(required)) + { + final DesignerSourceDropTargetListener listener = new DesignerSourceDropTargetListener( + this); + return listener; + } return super.getAdapter(required); - } + } + + @Override + public void dispose() + { + if (_dropTargetListener != null) + { + _dropTargetListener = null; + } + if (_dropTarget != null) + { + _dropTarget.dispose(); + _dropTarget = null; + } + + super.dispose(); + } }