129 Transferable transferable = getDragSourceContext().getTransferable();
130 SortedMap<Long,DataFlavor> formatMap = DataTransferer.getInstance().
131 getFormatsForTransferable(transferable, DataTransferer.adaptFlavorMap
132 (getTrigger().getDragSource().getFlavorMap()));
133 long[] formats = DataTransferer.keysToLongArray(formatMap);
134 startDrag(transferable, formats, formatMap);
135
136 /*
137 * Fix for 4613903.
138 * Filter out all mouse events that are currently on the event queue.
139 */
140 discardingMouseEvents = true;
141 EventQueue.invokeLater(new Runnable() {
142 public void run() {
143 discardingMouseEvents = false;
144 }
145 });
146 }
147
148 protected abstract void startDrag(Transferable trans,
149 long[] formats, Map formatMap);
150
151 /**
152 * set cursor
153 */
154
155 public void setCursor(Cursor c) throws InvalidDnDOperationException {
156 synchronized (this) {
157 if (cursor == null || !cursor.equals(c)) {
158 cursor = c;
159 // NOTE: native context can be null at this point.
160 // setNativeCursor() should handle it properly.
161 setNativeCursor(getNativeContext(), c,
162 c != null ? c.getType() : 0);
163 }
164 }
165 }
166
167 /**
168 * return cursor
169 */
|
129 Transferable transferable = getDragSourceContext().getTransferable();
130 SortedMap<Long,DataFlavor> formatMap = DataTransferer.getInstance().
131 getFormatsForTransferable(transferable, DataTransferer.adaptFlavorMap
132 (getTrigger().getDragSource().getFlavorMap()));
133 long[] formats = DataTransferer.keysToLongArray(formatMap);
134 startDrag(transferable, formats, formatMap);
135
136 /*
137 * Fix for 4613903.
138 * Filter out all mouse events that are currently on the event queue.
139 */
140 discardingMouseEvents = true;
141 EventQueue.invokeLater(new Runnable() {
142 public void run() {
143 discardingMouseEvents = false;
144 }
145 });
146 }
147
148 protected abstract void startDrag(Transferable trans,
149 long[] formats, Map<Long, DataFlavor> formatMap);
150
151 /**
152 * set cursor
153 */
154
155 public void setCursor(Cursor c) throws InvalidDnDOperationException {
156 synchronized (this) {
157 if (cursor == null || !cursor.equals(c)) {
158 cursor = c;
159 // NOTE: native context can be null at this point.
160 // setNativeCursor() should handle it properly.
161 setNativeCursor(getNativeContext(), c,
162 c != null ? c.getType() : 0);
163 }
164 }
165 }
166
167 /**
168 * return cursor
169 */
|