Need interface suggestions on how best to let the user reorder a list of objects.

5 views (last 30 days)
I have created an app in app desginer where i have a list of objects as following
They are created form a table that holds all the values and graphic, but also a Order number and ID
I have touble finding a good solution to how I let the user change the order (moving one line of objects above or below a another)
Any suggestions are welcome.
Best JC
  1 Comment
Johan C
Johan C on 11 Aug 2021
Here some of the things i have been looking at.
Pull and drop - not in matlab it seems
Two buttons beside each line, move one step up or down - many clicks to move a line far.
uicontextmenu - cant find what object line that evoke the called to create the menu when needed on right click and button that on left click opens the context menu cant place it next to it as I cant find the posstion of the button with scroll enable.

Sign in to comment.

Accepted Answer

Jasmine Poppick
Jasmine Poppick on 13 Aug 2021
Hi Johan, you mentioned looking into using a context menu to provide options to reorder the rows in your app. This could work using the CurrentObject property of the UI figure, which stores the most recently clicked object in the figure.
For example, you can add this code to the MenuSelectedFcn callback of the relevant menu item to store the component that was right-clicked to bring up the context menu, and then use that info to rearrange the order:
selected = app.UIFigure.CurrentObject;
  5 Comments
Johan C
Johan C on 16 Aug 2021
Hi again Jasmine.
It worked! :-) after updateing to version 2021a.
On the negativ side, updating to 2021a gave new problems as a function i called many times now gives an error "Undefined function 'insertText'".
Best Johan

Sign in to comment.

More Answers (0)

Categories

Find more on Interactive Control and Callbacks in Help Center and File Exchange

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!