Feature Request to Reduce Clutter in Navigator

For me, in large applications the navigator can become very cluttered. Especially if you are using a page panel or tab panel with many items on it. I typically name controls so they are meaningful and use a prefix to identify the control type; a button starts with btn, label starts with lbl, text field is fld etc. This makes things a little easier to find (I think I found this tip on one of Bob’s videos).

However, as with most applications there may be many non-meaningful items such as labels, that may just identify an entry field, separators, rectangles and other decor items that are just noise. In these cases I just leave the name as the Xojo default when created. It would be nice to have a way to hide these. I thought I might be able to create a folder and just put all this stuff I am not working on or don’t want to see in the folder, but this does not look possible. I also thought of prefixing all the meaningless stuff with a “Z” just to through it to the bottom of the list, but this seems like a kludgy solution. I would still have to wade down through all that to get to my methods and events.

Another option would be able to have a way to filter by control type (Buttons, ListBox, etc.). Or even “Show me all the items that have code attached to them” filter.

I realize you can search for items in the navigator but this is at the app level and the return results seem awful long; Window1.Controls.btnUpdateCustomer and you loose your spot of where you were. It does not appear you can confine the scope of the search to a specific window. If I am on a window and search, it gives me results for the whole project. Is this correct?

In the options menu, do you use the “Double click opens item in new tab” option?

What do you do to help organize and use the navigator in an efficient manner? I’d like some tips.

Thanks!

Disclaimer - I’m not trying to start a “I hate the navigator thread.” I’m only suggesting features for user input and soliciting what others do help manage their projects in the navigator more efficient.

liberal use of container controls to encapsulate all those items so then the page panel has maybe one “control” per page

My organizational tips:

  • If you are using a PagePanel or TabPanel you may want to try containerizing to help organize.
  • You should also name items you’ve listed as “meaningless,” the next person on your project (or you down the road) may find them to be less meaningless than you think.
  • Learn to utilize tabs. I search and use Go To Location… in a new tab
  • You can confine the scope of search to just the object or even method, it’s what these buttons do:
  • Yes, to “double click opens new tab” I love tabs.
  • Utilize folders!

FWIW I have less issues with the navigator than most because I’m borderline OCD when it comes to organization.

They’re working on an IDE overhaul, which they announced at XDC
http://www.bkeeneybriefs.com/2016/10/xdc-news-ide-redesign-coming/

Get your feature requests in using Feedback.app

One solution that I’ve started to use for static labels (like the entry field identifiers that you mentioned) is to name them all StaticLabel and turn them into a control set.

That way you can at least collapse those labels into one line in the navigator.

This is not true for all tabs. At least in 2016.r4.1 where I’m still at. If I double-click a folder, it opens in a new tab where the Navigator has both the filter and a working jump bar. But if I double-click a window, I get no filter and the jump bar is unavailable.

I’d agree that it seems you should be able to filter on a single window. But you can use search at the bottom of the IDE and search by project / object or method, I think.

As for labels and such, I find it better if you group them into a control set where possible (like all labels which seem to propagate the fastest)

Besides the naming convention we tend to make labels into a control set but only if they’re not referenced in code. As soon as they are referenced in code they get a real name. This reduces a LOT of clutter in the Navigator with busy UI’s as labels tend to be the largest number of controls.

Another technique is to put page panel controls in a separate container. This encapsulates your code and I tend to believe makes it easier to debug in a less code in any one object sort of way.

I always use the Open in New Tab option. It’s the only way to stay sane (though my family will insist that this is no indicator).

Xojo has publicly stated (XDC and the MBS Berlin conference) that they are working on redefining the Navigator. First step is to convert from a custom canvas to a standard listbox. Then each tab will have a Navigator-ish interface for the object you’re in. Sort of a hybrid between Real Studio and Xojo. So some of the issues may get better - but until we get it in our hands it’s all speculation.

Project organization is an art form, I think.