Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 39900 Details for
Bug 31841
[Clipboard] Provide support for "cut" from the clipboard
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Clipboard class supporting delete-on-paste
Clipboard_supporting_Delete_On_Paste.txt (text/plain), 4.95 KB, created by
Thomas Braun
on 2006-04-30 04:01:55 EDT
(
hide
)
Description:
Clipboard class supporting delete-on-paste
Filename:
MIME Type:
Creator:
Thomas Braun
Created:
2006-04-30 04:01:55 EDT
Size:
4.95 KB
patch
obsolete
>~~~~~~~~~~~~~~~~~~~ >~~ Clipboard.java >~~~~~~~~~~~~~~~~~~~ >~~ Shows only the modifications. >~~ Unchanged code segments are indicated by "..." > >package org.eclipse.swt.dnd; > >... > >public class Clipboard >{ > private int preferredDropEffect = COM.DROPEFFECT_COPY; > > ... > > private int GetData(int pFormatetc, int pmedium) > { > ... > if (transferData.type == CFSTR_PREFERREDDROPEFFECT) { > ... > OS.MoveMemory(stgmedium.unionField, > new int[]{ preferredDropEffect }, 4); > ... > } > } > > public void setContents(Object[] data, Transfer[] dataTypes) > { > setContents(DND.DROP_COPY, data, dataTypes, DND.CLIPBOARD); > } > > public void setContents(int preferredDropEffect, Object[] data, > Transfer[] dataTypes) > { > setContents(preferredDropEffect, data, dataTypes, DND.CLIPBOARD); > } > > public void setContents(Object[] data, Transfer[] dataTypes, > int clipboards) > { > setContents(DND.DROP_COPY, data, dataTypes, clipboards); > } > > public void setContents(int preferredDropEffect, Object[] data, > Transfer[] dataTypes, int clipboards) > { > if ((preferredDropEffect & DND.DROP_MOVE) != 0) > preferredDropEffect = COM.DROPEFFECT_MOVE; > else > preferredDropEffect = COM.DROPEFFECT_COPY; > this.preferredDropEffect = preferredDropEffect; > > ... the contents of the original method setContents(Object[], Transfer, int) > } > > /** > * Returns the preferred drop effect. If none is available DND.DROP_COPY > * is returned. > * > * @return the preferred drop effect > */ > public int getPreferredDropEffect() > { > PreferredDropEffectTransfer pdet = PreferredDropEffectTransfer > .getInstance(); > Integer effect = (Integer) getContents(pdet); > if (effect == null) > return DND.DROP_COPY; > else > return effect.intValue(); > } >} > >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >~~ PreferredDropEffectTransfer.java >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >package org.eclipse.swt.dnd; > > >import org.eclipse.swt.internal.ole.win32.COM; >import org.eclipse.swt.internal.ole.win32.FORMATETC; >import org.eclipse.swt.internal.ole.win32.IDataObject; >import org.eclipse.swt.internal.ole.win32.STGMEDIUM; >import org.eclipse.swt.internal.win32.OS; > > >/** > * Used to read the preferred drop effect from the clipboard. > * > * @author Thomas Braun > */ >class PreferredDropEffectTransfer extends ByteArrayTransfer >{ > private static PreferredDropEffectTransfer _instance = > new PreferredDropEffectTransfer(); > private static final String CFSTR_PREFERREDDROPEFFECT = > "Preferred DropEffect"; //$NON-NLS-1$ > private static final int CF_ID = > registerType(CFSTR_PREFERREDDROPEFFECT); > > private PreferredDropEffectTransfer() > {} > > /** > * Returns the singleton instance of the class. > * > * @return the singleton instance of the class > */ > public static PreferredDropEffectTransfer getInstance() > { > return _instance; > } > > /** > * Not needed. > */ > @Override > public void javaToNative(Object object, TransferData transferData) > { > } > > /** > * The method returns the preferred drop operation as integer object. > * The default result is DND.DROP_COPY. > * > * @see DND#DROP_COPY > * @see DND#DROP_LINK > * @see DND#DROP_MOVE > * @return an <code>Integer</code> containing the preferred drop operation > */ > @Override > public Object nativeToJava(TransferData transferData) > { > if (!isSupportedType(transferData) || transferData.pIDataObject == 0) > return DND.DROP_COPY; > > IDataObject dataObject = new IDataObject(transferData.pIDataObject); > dataObject.AddRef(); > FORMATETC formatetc = new FORMATETC(); > formatetc.cfFormat = CF_ID; > formatetc.ptd = 0; > formatetc.dwAspect = COM.DVASPECT_CONTENT; > formatetc.lindex = -1; > formatetc.tymed = COM.TYMED_HGLOBAL; > STGMEDIUM stgmedium = new STGMEDIUM(); > stgmedium.tymed = COM.TYMED_HGLOBAL; > transferData.result = dataObject.GetData(formatetc, stgmedium); > int[] i1 = new int[1]; > OS.MoveMemory(i1, stgmedium.unionField, 4); > int res = 0; > if (i1[0] < 100) { // i1 contains the preferred drop effect value > res = i1[0]; > } > else { // i1 contains the address of the preferred drop > // effect value > int[] i2 = new int[1]; > OS.MoveMemory(i2, i1[0], 4); > res = i2[0]; > } > dataObject.Release(); > > if (transferData.result != COM.S_OK) > return DND.DROP_COPY; > else > return osToOp(res); > } > > @Override > protected int[] getTypeIds() > { > return new int[]{ > CF_ID > }; > } > > private int osToOp(int osOperation) > { > int operation = 0; > if ((osOperation & COM.DROPEFFECT_COPY) != 0) { > operation |= DND.DROP_COPY; > } > if ((osOperation & COM.DROPEFFECT_LINK) != 0) { > operation |= DND.DROP_LINK; > } > if ((osOperation & COM.DROPEFFECT_MOVE) != 0) { > operation |= DND.DROP_MOVE; > } > return operation; > } > > @Override > protected String[] getTypeNames() > { > return new String[]{ > CFSTR_PREFERREDDROPEFFECT > }; > } > > @Override > protected boolean validate(Object object) > { > return object instanceof Integer; > } >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 31841
:
39258
| 39900