Copy Paste ver. 1.0
This is a very simple cut/copy/paste context menu using java handles. This code uses findjobj by Yair Altman (http://www.mathworks.com/matlabcentral/fileexchange/14317-findjobj-find-java-handles-of-matlab-graphic-objects) to locate the java handles.
Usage:
copy_paste(hObject)
Example:
f1 = figure('Name','Copy-Paste','Position', [480 480 340 100],'NumberTitle','off');
h1 = uicontrol(f1, 'Style', 'edit',...
'String', 'Cut',...
'BackgroundColor', [1 1 1],...
'Position', [10 10 100 50]);
h2 = uicontrol(f1, 'Style', 'edit',...
'String', 'Copy',...
'BackgroundColor', [1 1 1],...
'Position', [120 10 100 50]);
h3 = uicontrol(f1, 'Style', 'edit',...
'String', 'Paste',...
'BackgroundColor', [1 1 1],...
'Position', [230 10 100 50]);
% For single edit box object
copy_paste(h2);
% For selected edit box object
copy_paste(h1,h3);
% For all the edit boxes in a figure
copy_paste(gcf) or copy_paste(f1)
Your comments and suggestions are most welcomed.
Amitabh Verma (2021). Copy Paste (https://www.mathworks.com/matlabcentral/fileexchange/27971-copy-paste), MATLAB Central File Exchange. Retrieved .
Inspired by: findjobj - find java handles of Matlab graphic objects
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Create scripts with code, output, and formatted text in a single executable document.
This is amazing! So simple, yet adds a critical missing function to edit boxes. Thank you!
I've made the following improvements and updates
1) handle multi-line edit text boxes by adding the following to javahandles.m (from the incredible Yair, http://undocumentedmatlab.com/articles/customizing-editboxes)
try %is it a multi-line text edit box?
jObject = handle(jEditbox.getViewport.getView, 'CallbackProperties');
catch
end
2) added an option to open URL--can't make html links in an edit box unless the box is made inactive and not editable (per Yair). So this is a compromise: select the link and chose Open URL from the contextual menu. Add this line to copy_paste.m after the 'Select All' line.
uimenu(copypastemenu, 'Text', 'Open URL', 'Accelerator', 'O', MenuSelectedFcn', 'web(jObject.SelectedText, ''-new'', ''-browser'')');
(Note here also there are newer option names for adding shortcut keys and callback and the other lines need to be changed to match)
3) Finally, I prefer to have javahandles.m use findjobj_fast from Yair Altman, instead of findjobj.