Widgets Toolbox jTable cell value issue

Hi, I have 2 tables created using widgets toolbox table function. When I click on a cell value on first table and move to the second table cell, the value on the first table cell automatically changes to the value of the cell from the 2nd table. Following code section demonstrates the issue. Wondering if anyone has run into this issue and if there is a fix for this. The table function works fine as long as there is only a single table.
f1 = figure(...
'Toolbar','none',...
'MenuBar','none',...
'NumberTitle','off',...
'Units','pixels',...
'Position',[100 100 880 200]);
movegui(f1,[100 -100])
f2 = figure(...
'Toolbar','none',...
'MenuBar','none',...
'NumberTitle','off',...
'Units','pixels',...
'Position',[100 100 880 200]);
movegui(f2,[100 -500])
w1 = uiw.widget.Table(...
'Parent',f1,...
'CellEditCallback',@(h,e)disp(e),...
'CellSelectionCallback',@(h,e)disp(e),...
'ColumnName',{'A','B','C'},...
'Label','Table1:', ...
'LabelLocation','top',...
'LabelHeight',18,...
'Units','normalized', ...
'Position',[0 0 1 1]);
w1.Data = magic(3);
w2 = uiw.widget.Table(...
'Parent',f2,...
'CellEditCallback',@(h,e)disp(e),...
'CellSelectionCallback',@(h,e)disp(e),...
'ColumnName',{'A','B','C'},...
'Label','Table2:', ...
'LabelLocation','top',...
'LabelHeight',18,...
'Units','normalized', ...
'Position',[0 0 1 1]);
w2.Data = magic(3);

4 Comments

It is likely due to an optimization where table columns of the same type are reusing the same Java editor. Can you try commenting out a few lines of uiw.enum.TableColumnFormat - lines 294 and 311-313:
Thanks Robyn. The changes seem to address the issue
With more testing, I am running into an issue if any of the columns in the table is of Popup Editor type. The change no longer allows to drop down the Popup list.
Here is the code section with first column being a Popup. When those 3 lines are commented out, dropdown option stops working
f1 = figure(...
'Toolbar','none',...
'MenuBar','none',...
'NumberTitle','off',...
'Units','pixels',...
'Position',[100 100 880 200]);
movegui(f1,[100 -100])
w1 = uiw.widget.Table(...
'Parent',f1,...
'CellEditCallback',@(a,b)disp(b),...
'CellSelectionCallback',@(a,b)disp(b),...
'ColumnName',{'A','B','C'},...
'ColumnFormat',{'popup','numeric','numeric'},...
'Label','Table1:', ...
'LabelLocation','top',...
'LabelHeight',18,...
'Units','normalized', ...
'Position',[0 0 1 1]);
w1.Data = magic(3);
w2 = uiw.widget.Table(...
'Parent',f2,...
'CellEditCallback',@(h,e)disp(e),...
'CellSelectionCallback',@(h,e)disp(e),...
'ColumnName',{'A','B','C'},...
'ColumnFormat',{'popup','numeric','numeric'},...
'Label','Table2:', ...
'LabelLocation','top',...
'LabelHeight',18,...
'Units','normalized', ...
'Position',[0 0 1 1]);
f2 = figure(...
'Toolbar','none',...
'MenuBar','none',...
'NumberTitle','off',...
'Units','pixels',...
'Position',[100 100 880 200]);
movegui(f2,[100 -500])
w2.Data = magic(3);

Sign in to comment.

Answers (0)

Categories

Find more on Verification, Validation, and Test in Help Center and File Exchange

Products

Release

R2017a

Asked:

on 27 Apr 2020

Commented:

on 29 Apr 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!