# Is there a way to recall a tag browser via the SDK?

**URL:** <https://forum.inductiveautomation.com/t/is-there-a-way-to-recall-a-tag-browser-via-the-sdk/104675>\
**Category:** Module Development\
**Created:** [April 3, 2025, 8:06pm UTC](https://forum.inductiveautomation.com/t/is-there-a-way-to-recall-a-tag-browser-via-the-sdk/104675 "2025-04-03T20:06:16Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![kgamble](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kgamble/32/8019_2.png) [@kgamble](https://forum.inductiveautomation.com/u/kgamble)\
**Post date:** [April 3, 2025, 8:06pm UTC](https://forum.inductiveautomation.com/t/is-there-a-way-to-recall-a-tag-browser-via-the-sdk/104675/1 "2025-04-03T20:06:16Z")

</div>

I have been digging around, and not found an easy way so far without me just building it from scratch via a tag configuration manager.

Is there a relatively easy way to get the Swing tree UI for the Tag browser parametrized by the provider?

Ideally, I would be able to render one, and then somehow track the users selection on it.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [April 3, 2025, 8:22pm UTC](https://forum.inductiveautomation.com/t/is-there-a-way-to-recall-a-tag-browser-via-the-sdk/104675/2 "2025-04-03T20:22:38Z")

</div>

Perhaps:

[TagBrowserPanel.addOnTagSelectedListener()](https://files.inductiveautomation.com/sdk/javadoc/ignition81/8.1.47/com/inductiveautomation/ignition/designer/tags/tree/TagBrowserPanel.html#addOnTagSelectedListener(com.inductiveautomation.ignition.designer.sqltags.dialog.OnTagSelectedListener)) ?

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [April 3, 2025, 8:50pm UTC](https://forum.inductiveautomation.com/t/is-there-a-way-to-recall-a-tag-browser-via-the-sdk/104675/3 "2025-04-03T20:50:16Z")

</div>

This feels like a classic Keith XY problem 😃

Are you asking "is there a way to readily obtain a tag tree UI element I can render somewhere", or "is there a way to listen for selection changes in the main tag browser dockable frame", or something else entirely?

---

<div class="post-metadata">

**Author:** ![kgamble](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kgamble/32/8019_2.png) [@kgamble](https://forum.inductiveautomation.com/u/kgamble)\
**Post date:** [April 3, 2025, 9:05pm UTC](https://forum.inductiveautomation.com/t/is-there-a-way-to-recall-a-tag-browser-via-the-sdk/104675/4 "2025-04-03T21:05:02Z")

</div>

> [@paul-griffith](#):
>
> Are you asking "is there a way to readily obtain a tag tree UI element I can render somewhere", or "is there a way to listen for selection changes in the main tag browser dockable frame", or something else entirely?

This is a "I am trying to build something user friendly in the designer without re-creating the wheel 🙂

Long story short, I am overhauling some of the configuration elements of my [Tag CICD Module](https://github.com/design-group/ignition-tag-cicd-module) to:

1. Be more 8.3 friendly and support the planned structure for tags
2. Make the auto-import/export of specific structures into specific folders more user friendly as well.

This has landed with a UI to manage these auto import/export rules and where things land

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/4/3/43da6c9afb95b91b9e589498aaad5b032559f839.png)

Along the way, when adding/editing one of these configs, the User needs to determine _where_ in the tag tree they want to export from, and I am trying to just figure out if there is a way I can add a Tag tree into my dialog that tracks the users selection. I dont like my `Base Tag Path: ` field, and I want to just make it a tree instead to keep life easy for the user who might not know their paths. Would also make it easier instead of them having to type `_types_` to reference the UDT Definitions.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/e/4/e471718bd99850ac540b3a1d058ba32734cbbfc6.png)

> Note: To anyone looking at this, all of this is still WIP and I have plenty of things to clean up so cut me some slack

> Note: I also know I am doing this right before 8.3 and lots is going to change and I am aware, I am attempting to make this as 8.3 forward compatible as possible

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [April 3, 2025, 9:10pm UTC](https://forum.inductiveautomation.com/t/is-there-a-way-to-recall-a-tag-browser-via-the-sdk/104675/5 "2025-04-03T21:10:02Z")

</div>

Perhaps you can tie your module configuration to a menu in the tag browser--there's a method to add your own actions.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [April 3, 2025, 9:11pm UTC](https://forum.inductiveautomation.com/t/is-there-a-way-to-recall-a-tag-browser-via-the-sdk/104675/6 "2025-04-03T21:11:32Z")

</div>

`com.inductiveautomation.ignition.designer.tags.tree.TagBrowserTree#getBuilder`

Set some options, get a standard `JTree`, add a standard `TreeSelectionListener` to it.

The tree selection should be a tree path; `treePath.getLastPathComponent()` will be an instance of `BrowseTreeNode` which you can examine for a `TagPath`.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [April 3, 2025, 10:24pm UTC](https://forum.inductiveautomation.com/t/is-there-a-way-to-recall-a-tag-browser-via-the-sdk/104675/7 "2025-04-03T22:24:33Z")

</div>

Actually, even easier might be one of the static methods on `com.inductiveautomation.ignition.designer.tags.tree.selection.TagSelectionTreePanel`

Or  
`com.inductiveautomation.ignition.designer.tags.tree.selection.TagReferenceAction#TagReferenceAction(com.inductiveautomation.ignition.designer.util.TextlikeComponent)`

Or even  
`com.inductiveautomation.ignition.designer.sqltags.dialog.InsertTagAction#InsertTagAction(com.inductiveautomation.ignition.designer.model.DesignerContext, com.inductiveautomation.ignition.designer.util.TextlikeComponent)`

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [April 4, 2025, 12:03am UTC](https://forum.inductiveautomation.com/t/is-there-a-way-to-recall-a-tag-browser-via-the-sdk/104675/8 "2025-04-04T00:03:08Z")

</div>

Keith sniped you, huh?

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [April 4, 2025, 12:06am UTC](https://forum.inductiveautomation.com/t/is-there-a-way-to-recall-a-tag-browser-via-the-sdk/104675/9 "2025-04-04T00:06:07Z")

</div>

Well, the first one was right before I had to go pick up my kids from school, and is "lower level". The second was after I had a few more minutes to look at how we wrap it up in a nice selector with a popup - obviously, in quite a few different ways, but the general trend is pretty clear.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [April 4, 2025, 12:35am UTC](https://forum.inductiveautomation.com/t/is-there-a-way-to-recall-a-tag-browser-via-the-sdk/104675/10 "2025-04-04T00:35:10Z")

</div>

> [@paul-griffith](#):
>
> a few more minutes to look

It's OK to just say "yeah, he got me". 🤣
