Transitional Tab Groups for Massive Data Sets

I really like the idea of tab groups, but have never got it implemented properly on Dopus because as far as I can see, you have to pre-prepare the groups in relation to a particular project. Though, I may have missed some aspects of this and there probably is a way to do this already.

I was looking through the help today as I wanted to implement transitional tab groups. The premise is similar to the virtual desktop workflow and the main features are the following:

  1. You have 1-4 empty tab groups set up.

  2. As you browse to a folder, you can press a hotkey to add/remove a specific folder to any one of the groups .

This way you can dynamically build up tab groups for whatever you are working on at the moment. This is very helpful if you are working on a large project with many data sets, where you may be working with certain groups of folders over the period of a few days, but are then unlikely to use those groups again as the work for that particular section is completed.

This is particularly useful if your data is in folders in a variety of locations on both local & remote machines.

This on-the-fly creation is more organic and eliminates pre-planning of efficiency, thus saving time. By this I mean, you can create groups as small or large as you like, without bothering to consider if 2 folders are worthy of a group, or 20 folders are a waste of tab screen real estate. Mistakes can also be corrected on-the-fly. There is no bother about considering a name or anything else for the group as they are transitory by nature and are designed to be reused in totally different contexts if need be.

  1. When you are finished with a group, you can press a hotkey that clears all the folders and empties out the group.

I had a look at the Go command which seems to have all the tabgroup commands, but I could not find any entries for:
a) Create/Delete Tabgroup
b) Add/Delete Folder from Tabgroup
c) Delete all Folders from Tabgroup.

If it is possible to do this in this way or any other way, could you please let me know? :slight_smile:

Many thanks.

anyone? :slight_smile:

Well, as you've seen for yourself - there are no commands built in to Opus that let you do what you want. So, it's probably a feature request you're looking for. Maybe some kind of additional arguments like TABGROUPADD and TABGROUPDELETE.

As for other ways of doing it... I suppose you could hack something together using some VBscript stuff to write directly out to the OTG files used for each tab group. I don't think Opus should puke on doing that sort of thing under the covers. If you want help with that sort of thing, give a shout. Provide some example names for the groups you'd want to use and it shouldn't be too difficult to get working.

I think the vbscript is unfortunately not one of my skills, so dunno how far I will get on my own, so thanks v much for the help! :slight_smile:

The names of the group don't have to be fancy. Something like:

grp1
grp2
grp3
grp4

should do the trick.

I take it we have to directly write out a OTG file in the correct (xml?) format to a temp.otg group, then get dopus to switch to the contents of the temp.otg group into the tab group visible to the user?

Nice idea. Something that I could make use of...

I've been thinking about this but I think I'm either barking up the wrong tree or close to cracking point 2.

The code below is not complete but could something like this work?

Clipboard COPYNAMES=path Go TABGROUPLOAD=Grp1 Go TABSELECT=last Go NEWTAB=nofocus,findexisting {clip} Go TABSELECT=first Go TABGROUPSAVE=Grp1
Clearing a tab group should be as simple as...

Go NEWTAB Go TABCLOSEALL Go TABGROUPSAVE=Grp1
...and deleting a tab from a tab group should be easy if the top code can be adapted to work.

Apologies if this is a load of garbage (I'm still learning).

I'm not sure I know exactly what you mean by suggesting we might need to "get dopus to switch to the contents of the temp.otg group into the tab group visible to the user". I think we can just model whatever changes you want to make to these tab groups in memory, then blast it straight over the top of grp1|2|3|4 OTG files - overwriting the current versions of the file(s). Some things Opus doesn't seem to care about us manhandling under the covers... OTG files seems to be one. At least - I don't believe Opus caches any of that stuff, and expect it to go read the OTG file each time you either try to load the group - or - manually edit it in Prefs. So I don't expect any need to use temp files or anything like that - followed by having to do anything to get "Opus" to be directly involved in switching anything in or out.

I'll think on it some more - then throw a couple of scenarios at you before writing anything - to see how you'd expect such a thing to work.

I was thinking the temp file might be required to prevent memory issues. Don't think I thought it through very well. :slight_smile: If we don't need to do this, then that is a plus as it will be faster!

Thanks to both of you. Seems like this discussion is getting pretty interesting.

:slight_smile:... yeah, but even a very large number of tabs in a tab group won't result in THAT big a file. We're not in the 80's anymore :slight_smile: and we can clean up after ourselves...

So I imagine a few buttons that would each run a different series of actions (Opus commands and/or scripts). Something like:

Save current tabs to Tab Group:

  • prompt with a normal Opus {dlgchoose} dialog to give you your list of tab groups (grp1 - grp4) to create a new tab group from
  • use normal Opus TABGROUPSAVE command to overwrite the existing tab group (if it even exists or not)

Add current tab to Tab Group:

  • prompt with the same normal Opus {dlgchoose} dialog to give you your list of tab groups (grp1 - grp4) to update an existing tab group
  • a script would then execute to just read in the current OTG file for the tab group selected from the {dlgchoose} prompt, then add the current {sourcepath} to the OTG file

Add current tabs to Tab Group:

  • prompt with the same normal Opus {dlgchoose} dialog to give you your list of tab groups (grp1 - grp4) to update an existing tab group
  • I'd probably use the existing TABGROUPSAVE command to save the current set of tabs to a "temp" tab group. Yeah yeah... I know I said boo-hoo to temp files... but this use would just be a means to an end - in order to avoid the need to cycle through all the (potentially multiple) current tabs open in order to get their paths added to an existing tab group.
  • a script would then execute to basically MERGE the paths from the existing tab group (grp1 - grp4) and the new "temp" tab group I just created
  • delete the "temp" tab group now that I'm done

Clear tab group

  • I don't see why this really necessary... but should be easy enough to do. Either run an Opus command to delete the OTG file based on your selection from the {dlgchoose} prompt || or || overwrite the OTG file with some empty OTG file stuff (what you would see in an OTG file if you removed all folder tabs from a tab group in Prefs)

You might very well be able to do some or all of this with some creative use of existing Opus commands like blueroly suggested... but the tradeoff would be that you'd have alot of visual activity with loading the existing tab group folders before opening a previously active tab path to add to the loaded group. I've been drinking a fair bit of whiskey tonight, so I haven't really thought through an entirely native command driven way of doing this like he has so... maybe that's a good enough way to go :slight_smile:. Hash it out and shout... I won't work on this til the weekend anyway :slight_smile:.