www.gusucode.com > mbcguitools 工具箱 matlab 源码程序 > mbcguitools/@mbcwidgets/@JList/JList.m

    function obj = JList(varargin)
%JLIST Construct a new JList object
%
%  OBJ = JLIST(PROP, VALUE, ...) 

%  Copyright 2011 The MathWorks, Inc. 


obj = mbcwidgets.JList;

% Java Peer Object
P = com.mathworks.toolbox.mbc.gui.peer.MBCJListPeer;

% Call superclass constructor
obj.javacomponent(P, varargin{:});


% Attach peer callbacks
L = [...
    handle.listener(obj.Peer, 'valueChanged', {@valueChanged, obj}); ...
    handle.listener(obj.Peer, 'keyTyped', {@keyTyped, obj}); ...
    handle.listener(obj.Peer, 'actionPerformed', {@actionPerformed, obj}) ...
    ];
set(L, 'RecursionLimit', 50);
obj.addListeners(L);


function actionPerformed(~,~,obj)

data.Selected = obj.SelectedIndex;

e = xregGui.xregEventData(obj, 'ActionPerformed', data);

if ~isempty(obj.ActionPerformedCallback)
   xregcallback(obj.ActionPerformedCallback,obj,e) 
end
send(obj, 'ActionPerformed',e);


function valueChanged(~, evt, obj)

data.SelectedIndex = evt.JavaEvent.getSelectedIndex+1;

e = xregGui.xregEventData(obj, 'ValueChanged', data);

if ~isempty(obj.ValueChangedCallback)
   xregcallback(obj.ValueChangedCallback,obj,e) 
end
send(obj, 'ValueChanged',e);

function keyTyped(src,evt,obj)

data = struct('Index', evt.JavaEvent.getSelectedRows+1, ...
    'Modifiers',evt.JavaEvent.getModifiers,...
    'KeyCode', evt.JavaEvent.getKeyCode);
e = xregGui.xregEventData(src, 'KeyTyped', data);
if ~isempty(obj.KeyTypedCallback)
    xregcallback(obj.KeyTypedCallback,obj,e)
end
send(obj, 'KeyTyped',e);