<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Create GUI using Application Builder in Discussions</title>
    <link>https://community.jmp.com/t5/Discussions/Create-GUI-using-Application-Builder/m-p/901168#M106057</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.jmp.com/t5/user/viewprofilepage/user-id/70385"&gt;@shuey&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Just to add to&amp;nbsp;&lt;a href="https://community.jmp.com/t5/user/viewprofilepage/user-id/14366"&gt;@jthi&lt;/a&gt;&amp;nbsp;'s comment (as there is no current way to do this) it may help to use the edit &amp;gt; get tree structure and possible the 'get properties' for the components you've built that you could place into an LLM.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I agree it is a nice feature to have, I would recommend adding it to the &lt;A href="https://community.jmp.com/t5/JMP-Wish-List/idb-p/jmp-wish-list" target="_self"&gt;JMP Wish List.&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Ben&lt;/P&gt;</description>
    <pubDate>Tue, 16 Sep 2025 15:53:18 GMT</pubDate>
    <dc:creator>Ben_BarrIngh</dc:creator>
    <dc:date>2025-09-16T15:53:18Z</dc:date>
    <item>
      <title>Create GUI using Application Builder</title>
      <link>https://community.jmp.com/t5/Discussions/Create-GUI-using-Application-Builder/m-p/900350#M106035</link>
      <description>&lt;P class="whitespace-normal break-words mb-3 last:mb-0"&gt;I'm looking for the most efficient workflow to create GUI windows in JSL. I know I can script them manually using &lt;CODE class="before:content-none after:content-none inline px-1.5 py-0.5 mx-0.5 text-sm font-mono bg-muted/70 text-foreground/90 border border-border/40 rounded dark:bg-muted/60 dark:text-foreground/95 dark:border-border/30 font-medium tracking-tight selection:bg-blue-500/30 selection:text-blue-900 dark:selection:bg-blue-500/40 dark:selection:text-blue-50 align-baseline break-words focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-2 max-w-full"&gt;New Window()&lt;/CODE&gt; with nested layout boxes (&lt;CODE class="before:content-none after:content-none inline px-1.5 py-0.5 mx-0.5 text-sm font-mono bg-muted/70 text-foreground/90 border border-border/40 rounded dark:bg-muted/60 dark:text-foreground/95 dark:border-border/30 font-medium tracking-tight selection:bg-blue-500/30 selection:text-blue-900 dark:selection:bg-blue-500/40 dark:selection:text-blue-50 align-baseline break-words focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-2 max-w-full"&gt;V List Box&lt;/CODE&gt;, &lt;CODE class="before:content-none after:content-none inline px-1.5 py-0.5 mx-0.5 text-sm font-mono bg-muted/70 text-foreground/90 border border-border/40 rounded dark:bg-muted/60 dark:text-foreground/95 dark:border-border/30 font-medium tracking-tight selection:bg-blue-500/30 selection:text-blue-900 dark:selection:bg-blue-500/40 dark:selection:text-blue-50 align-baseline break-words focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-2 max-w-full"&gt;H List Box&lt;/CODE&gt;, etc.), but this can be time-consuming and difficult to visualize for more complex dialogs.&lt;/P&gt;
&lt;P class="whitespace-normal break-words mb-3 last:mb-0"&gt;I've been exploring the Application Builder, as it allows me to drag and drop controls to visually design the layout, which is fantastic. However, when I save the application, it generates a complete application framework with namespaces.&lt;/P&gt;
&lt;P class="whitespace-normal break-words mb-3 last:mb-0"&gt;&lt;STRONG class="font-semibold"&gt;My specific question is:&lt;/STRONG&gt; Is it possible to use the Application Builder (or another tool) to create a window layout and then extract &lt;EM class="italic"&gt;only the JSL code for the &lt;CODE class="before:content-none after:content-none inline px-1.5 py-0.5 mx-0.5 text-sm font-mono bg-muted/70 text-foreground/90 border border-border/40 rounded dark:bg-muted/60 dark:text-foreground/95 dark:border-border/30 font-medium tracking-tight selection:bg-blue-500/30 selection:text-blue-900 dark:selection:bg-blue-500/40 dark:selection:text-blue-50 align-baseline break-words focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-2 max-w-full"&gt;New Window&lt;/CODE&gt; object itself&lt;/EM&gt;?&lt;/P&gt;
&lt;P class="whitespace-normal break-words mb-3 last:mb-0"&gt;I'm often just trying to create a single modal dialog or a settings window, and I don't need the entire application structure that comes with it.&lt;/P&gt;</description>
      <pubDate>Mon, 15 Sep 2025 11:03:02 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Create-GUI-using-Application-Builder/m-p/900350#M106035</guid>
      <dc:creator>shuey</dc:creator>
      <dc:date>2025-09-15T11:03:02Z</dc:date>
    </item>
    <item>
      <title>Re: Create GUI using Application Builder</title>
      <link>https://community.jmp.com/t5/Discussions/Create-GUI-using-Application-Builder/m-p/901073#M106049</link>
      <description>&lt;P&gt;I don't think there are any ready-made way of doing this and you would have to write your own "parser". This might also be something properly prompted LLM could do, at least for simple cases.&lt;/P&gt;</description>
      <pubDate>Tue, 16 Sep 2025 08:32:56 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Create-GUI-using-Application-Builder/m-p/901073#M106049</guid>
      <dc:creator>jthi</dc:creator>
      <dc:date>2025-09-16T08:32:56Z</dc:date>
    </item>
    <item>
      <title>Re: Create GUI using Application Builder</title>
      <link>https://community.jmp.com/t5/Discussions/Create-GUI-using-Application-Builder/m-p/901168#M106057</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.jmp.com/t5/user/viewprofilepage/user-id/70385"&gt;@shuey&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Just to add to&amp;nbsp;&lt;a href="https://community.jmp.com/t5/user/viewprofilepage/user-id/14366"&gt;@jthi&lt;/a&gt;&amp;nbsp;'s comment (as there is no current way to do this) it may help to use the edit &amp;gt; get tree structure and possible the 'get properties' for the components you've built that you could place into an LLM.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I agree it is a nice feature to have, I would recommend adding it to the &lt;A href="https://community.jmp.com/t5/JMP-Wish-List/idb-p/jmp-wish-list" target="_self"&gt;JMP Wish List.&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Ben&lt;/P&gt;</description>
      <pubDate>Tue, 16 Sep 2025 15:53:18 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Create-GUI-using-Application-Builder/m-p/901168#M106057</guid>
      <dc:creator>Ben_BarrIngh</dc:creator>
      <dc:date>2025-09-16T15:53:18Z</dc:date>
    </item>
    <item>
      <title>Re: Create GUI using Application Builder</title>
      <link>https://community.jmp.com/t5/Discussions/Create-GUI-using-Application-Builder/m-p/901181#M106058</link>
      <description>&lt;P&gt;If we consider fairly basic JMP-like platform launcher&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jthi_0-1758039322409.png" style="width: 400px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/82665iDC290496FF539431/image-size/medium?v=v2&amp;amp;px=400" role="button" title="jthi_0-1758039322409.png" alt="jthi_0-1758039322409.png" /&gt;&lt;/span&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It will generate following JMP App script&lt;/P&gt;
&lt;LI-SPOILER&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;
JMP App(
	Set Name("Application"),
	Set Description(
		"An empty workspace for creating custom applications with one or more windows and scripts"
	),
	Auto Launch(1),
	Snap To Grid(1),
	Show Grid(1),
	Show Properties(1),
	Show Sources(1),
	Group By Category(1),
	Dashboard Mode(0),
	Parameters,
	Tables(
		DataTable1 = GuiTable(
			Set Path(""),
			Set Label("Untitled 2"),
			Location("Current Data Table"),
			Invisible(0)
		)
	),
	Script(JSL Quote(// This script is executed when the application is run.
// Named objects have been created for the application modules
// (for example, "Module1") and the pre-defined object
// "thisApplication" refers to the application object itself.
// Variables and functions declared here are scoped to the
// Application namespace.

)	),
	Allocate(
		Module1 = Plan(
			PreAllocate,
			Script(JSL Quote(// This script is executed when a new module instance is
// created.  The pre-defined object "thisModuleInstance" refers
// to the instance object, but other objects such as boxes and
// scripts have not yet been created.  Variables declared here are
// scoped to the ModuleInstance namespace.

// This special function will receive parameters passed to CreateInstance()
OnModuleLoad({},
);

thisModuleInstance &amp;lt;&amp;lt; Create Objects;

// After this point your module instance objects have been created
// and can be referred to by name (for example, "Button1").

)			),
			Allocate(
				List1 = H List Box();
				Panel1 = Panel Box();
				FilterCol1 = Filter Col Selector(Data Table(DataTable1));
				Panel2 = Panel Box();
				Lineup2 = Lineup Box();
				Button3 = Button Box();
				ColList1 = Col List Box(Data Table(DataTable1));
				Text1 = Text Box();
				Combo1 = Combo Box();
				Text2 = Text Box();
				CheckBox1 = Check Box();
				Panel3 = Panel Box();
				Lineup1 = Lineup Box();
				Button1 = Button Box();
				Button2 = Button Box();
			),
			Organize(
				Reparent(Lineup1(Button2));
				Reparent(Lineup1(Button1));
				Reparent(Panel3(Lineup1));
				Reparent(List1(Panel3));
				Reparent(Lineup2(CheckBox1));
				Reparent(Lineup2(Text2));
				Reparent(Lineup2(Combo1));
				Reparent(Lineup2(Text1));
				Reparent(Lineup2(ColList1));
				Reparent(Lineup2(Button3));
				Reparent(Panel2(Lineup2));
				Reparent(List1(Panel2));
				Reparent(Panel1(FilterCol1));
				Reparent(List1(Panel1));
				Relocate(List1(200, 250));
			),
			Initialize(
				List1 &amp;lt;&amp;lt; Background Color("None");
				List1 &amp;lt;&amp;lt; Border({Left(0), Top(0), Right(0), Bottom(0)});
				List1 &amp;lt;&amp;lt; Enabled(1);
				List1 &amp;lt;&amp;lt; Horizontal Alignment("Default");
				List1 &amp;lt;&amp;lt; Margin({Left(0), Top(0), Right(0), Bottom(0)});
				List1 &amp;lt;&amp;lt; Padding({Left(0), Top(0), Right(0), Bottom(0)});
				List1 &amp;lt;&amp;lt; Text Color("None");
				List1 &amp;lt;&amp;lt; UI Only(0);
				List1 &amp;lt;&amp;lt; Vertical Alignment("Default");
				List1 &amp;lt;&amp;lt; Visibility("Visible");
				List1 &amp;lt;&amp;lt; Set Min Size(756, 403);
				List1 &amp;lt;&amp;lt; Set Max Size(756, 403);
				List1 &amp;lt;&amp;lt; Set Stretch({"Neutral", "Neutral"});
				List1 &amp;lt;&amp;lt; set horizontal(1);
				Panel1 &amp;lt;&amp;lt; Background Color("None");
				Panel1 &amp;lt;&amp;lt; Border({Left(0), Top(0), Right(0), Bottom(0)});
				Panel1 &amp;lt;&amp;lt; Enabled(1);
				Panel1 &amp;lt;&amp;lt; Horizontal Alignment("Default");
				Panel1 &amp;lt;&amp;lt; Margin({Left(0), Top(0), Right(0), Bottom(0)});
				Panel1 &amp;lt;&amp;lt; Padding({Left(0), Top(0), Right(0), Bottom(0)});
				Panel1 &amp;lt;&amp;lt; Text Color("None");
				Panel1 &amp;lt;&amp;lt; UI Only(0);
				Panel1 &amp;lt;&amp;lt; Vertical Alignment("Default");
				Panel1 &amp;lt;&amp;lt; Visibility("Visible");
				Panel1 &amp;lt;&amp;lt; Set Min Size(234, 110);
				Panel1 &amp;lt;&amp;lt; Set Max Size(234, 110);
				Panel1 &amp;lt;&amp;lt; Set Stretch({"Neutral", "Neutral"});
				Panel1 &amp;lt;&amp;lt; Set Title("Panel1");
				FilterCol1 &amp;lt;&amp;lt; Background Color("None");
				FilterCol1 &amp;lt;&amp;lt; Border({Left(0), Top(0), Right(0), Bottom(0)});
				FilterCol1 &amp;lt;&amp;lt; Enabled(1);
				FilterCol1 &amp;lt;&amp;lt; Horizontal Alignment("Default");
				FilterCol1 &amp;lt;&amp;lt; Margin({Left(0), Top(0), Right(0), Bottom(0)});
				FilterCol1 &amp;lt;&amp;lt; Padding({Left(0), Top(0), Right(0), Bottom(0)});
				FilterCol1 &amp;lt;&amp;lt; Text Color("None");
				FilterCol1 &amp;lt;&amp;lt; UI Only(0);
				FilterCol1 &amp;lt;&amp;lt; User Resizable({1, 1});
				FilterCol1 &amp;lt;&amp;lt; Vertical Alignment("Default");
				FilterCol1 &amp;lt;&amp;lt; Visibility("Visible");
				FilterCol1 &amp;lt;&amp;lt; Set Min Size(194, 52);
				FilterCol1 &amp;lt;&amp;lt; Set Max Size(194, 52);
				FilterCol1 &amp;lt;&amp;lt; Set Stretch({"Neutral", "Neutral"});
				FilterCol1 &amp;lt;&amp;lt; Set Base Font("Text");
				FilterCol1 &amp;lt;&amp;lt; Set Font Name("Segoe UI");
				FilterCol1 &amp;lt;&amp;lt; Set Font Style("Plain");
				FilterCol1 &amp;lt;&amp;lt; Set Font Size(10);
				FilterCol1 &amp;lt;&amp;lt; Set Font Scale(1);
				FilterCol1 &amp;lt;&amp;lt; Set Max Selected(-1);
				FilterCol1 &amp;lt;&amp;lt; Set Size(184, 23);
				FilterCol1 &amp;lt;&amp;lt; Set N Lines(1);
				Panel2 &amp;lt;&amp;lt; Background Color("None");
				Panel2 &amp;lt;&amp;lt; Border({Left(0), Top(0), Right(0), Bottom(0)});
				Panel2 &amp;lt;&amp;lt; Enabled(1);
				Panel2 &amp;lt;&amp;lt; Horizontal Alignment("Default");
				Panel2 &amp;lt;&amp;lt; Margin({Left(0), Top(0), Right(0), Bottom(0)});
				Panel2 &amp;lt;&amp;lt; Padding({Left(0), Top(0), Right(0), Bottom(0)});
				Panel2 &amp;lt;&amp;lt; Text Color("None");
				Panel2 &amp;lt;&amp;lt; UI Only(0);
				Panel2 &amp;lt;&amp;lt; Vertical Alignment("Default");
				Panel2 &amp;lt;&amp;lt; Visibility("Visible");
				Panel2 &amp;lt;&amp;lt; Set Min Size(334, 383);
				Panel2 &amp;lt;&amp;lt; Set Max Size(334, 383);
				Panel2 &amp;lt;&amp;lt; Set Stretch({"Neutral", "Neutral"});
				Panel2 &amp;lt;&amp;lt; Set Title("Panel2");
				Lineup2 &amp;lt;&amp;lt; N Col(2);
				Lineup2 &amp;lt;&amp;lt; Background Color("None");
				Lineup2 &amp;lt;&amp;lt; Border({Left(0), Top(0), Right(0), Bottom(0)});
				Lineup2 &amp;lt;&amp;lt; Enabled(1);
				Lineup2 &amp;lt;&amp;lt; Horizontal Alignment("Default");
				Lineup2 &amp;lt;&amp;lt; Margin({Left(0), Top(0), Right(0), Bottom(0)});
				Lineup2 &amp;lt;&amp;lt; Padding({Left(0), Top(0), Right(0), Bottom(0)});
				Lineup2 &amp;lt;&amp;lt; Text Color("None");
				Lineup2 &amp;lt;&amp;lt; UI Only(0);
				Lineup2 &amp;lt;&amp;lt; Vertical Alignment("Default");
				Lineup2 &amp;lt;&amp;lt; Visibility("Visible");
				Lineup2 &amp;lt;&amp;lt; Set Min Size(294, 325);
				Lineup2 &amp;lt;&amp;lt; Set Max Size(294, 325);
				Lineup2 &amp;lt;&amp;lt; Set Stretch({"Neutral", "Neutral"});
				Lineup2 &amp;lt;&amp;lt; Spacing(2);
				Button3 &amp;lt;&amp;lt; Background Color("None");
				Button3 &amp;lt;&amp;lt; Border({Left(0), Top(0), Right(0), Bottom(0)});
				Button3 &amp;lt;&amp;lt; Enabled(1);
				Button3 &amp;lt;&amp;lt; Horizontal Alignment("Default");
				Button3 &amp;lt;&amp;lt; Margin({Left(2), Top(2), Right(2), Bottom(2)});
				Button3 &amp;lt;&amp;lt; Padding({Left(0), Top(0), Right(0), Bottom(0)});
				Button3 &amp;lt;&amp;lt; Text Color("None");
				Button3 &amp;lt;&amp;lt; UI Only(0);
				Button3 &amp;lt;&amp;lt; Vertical Alignment("Default");
				Button3 &amp;lt;&amp;lt; Visibility("Visible");
				Button3 &amp;lt;&amp;lt; Set Min Size(60, 21);
				Button3 &amp;lt;&amp;lt; Set Max Size(60, 21);
				Button3 &amp;lt;&amp;lt; Set Stretch({"Neutral", "Neutral"});
				Button3 &amp;lt;&amp;lt; Set Button Name("Button3");
				Button3 &amp;lt;&amp;lt; Style("Normal");
				Button3 &amp;lt;&amp;lt; Set(0);
				Button3 &amp;lt;&amp;lt; Set Icon("");
				Button3 &amp;lt;&amp;lt; Set Icon Location("Right");
				ColList1 &amp;lt;&amp;lt; Background Color("None");
				ColList1 &amp;lt;&amp;lt; Border({Left(0), Top(0), Right(0), Bottom(0)});
				ColList1 &amp;lt;&amp;lt; Enabled(1);
				ColList1 &amp;lt;&amp;lt; Horizontal Alignment("Default");
				ColList1 &amp;lt;&amp;lt; Margin({Left(0), Top(0), Right(0), Bottom(0)});
				ColList1 &amp;lt;&amp;lt; Padding({Left(0), Top(0), Right(0), Bottom(0)});
				ColList1 &amp;lt;&amp;lt; Text Color("None");
				ColList1 &amp;lt;&amp;lt; UI Only(0);
				ColList1 &amp;lt;&amp;lt; User Resizable({1, 1});
				ColList1 &amp;lt;&amp;lt; Vertical Alignment("Default");
				ColList1 &amp;lt;&amp;lt; Visibility("Visible");
				ColList1 &amp;lt;&amp;lt; Set Min Size(184, 194);
				ColList1 &amp;lt;&amp;lt; Set Max Size(184, 194);
				ColList1 &amp;lt;&amp;lt; Set Stretch({"Neutral", "Neutral"});
				ColList1 &amp;lt;&amp;lt; Modeling Type({"Continuous", "Ordinal", "Nominal"});
				ColList1 &amp;lt;&amp;lt; Set Data Type("Any");
				ColList1 &amp;lt;&amp;lt; Set Min Items(0);
				ColList1 &amp;lt;&amp;lt; Set Max Items(-1);
				ColList1 &amp;lt;&amp;lt; Set Max Selected(-1);
				ColList1 &amp;lt;&amp;lt; Set Size(184, 194);
				ColList1 &amp;lt;&amp;lt; Set N Lines(10);
				ColList1 &amp;lt;&amp;lt; Set Base Font("Text");
				ColList1 &amp;lt;&amp;lt; Set Font Scale(1);
				Text1 &amp;lt;&amp;lt; Background Color("None");
				Text1 &amp;lt;&amp;lt; Border({Left(0), Top(0), Right(0), Bottom(0)});
				Text1 &amp;lt;&amp;lt; Enabled(1);
				Text1 &amp;lt;&amp;lt; Horizontal Alignment("Default");
				Text1 &amp;lt;&amp;lt; Margin({Left(0), Top(0), Right(0), Bottom(0)});
				Text1 &amp;lt;&amp;lt; Padding({Left(0), Top(0), Right(0), Bottom(0)});
				Text1 &amp;lt;&amp;lt; Text Color("None");
				Text1 &amp;lt;&amp;lt; UI Only(0);
				Text1 &amp;lt;&amp;lt; Vertical Alignment("Default");
				Text1 &amp;lt;&amp;lt; Visibility("Visible");
				Text1 &amp;lt;&amp;lt; Set Min Size(64, 19);
				Text1 &amp;lt;&amp;lt; Set Max Size(64, 19);
				Text1 &amp;lt;&amp;lt; Set Stretch({"Neutral", "Neutral"});
				Text1 &amp;lt;&amp;lt; Set Base Font("Text");
				Text1 &amp;lt;&amp;lt; Set Font Scale(1);
				Text1 &amp;lt;&amp;lt; Set Text("Text1");
				Text1 &amp;lt;&amp;lt; Bullet point(0);
				Text1 &amp;lt;&amp;lt; Justify Text("Left");
				Text1 &amp;lt;&amp;lt; Rotate Text("Horizontal");
				Text1 &amp;lt;&amp;lt; Set Width(-1);
				Text1 &amp;lt;&amp;lt; Set Wrap(360);
				Text1 &amp;lt;&amp;lt; Set Tip("");
				Combo1 &amp;lt;&amp;lt; Background Color("None");
				Combo1 &amp;lt;&amp;lt; Border({Left(0), Top(0), Right(0), Bottom(0)});
				Combo1 &amp;lt;&amp;lt; Enabled(1);
				Combo1 &amp;lt;&amp;lt; Horizontal Alignment("Default");
				Combo1 &amp;lt;&amp;lt; Margin({Left(2), Top(2), Right(2), Bottom(2)});
				Combo1 &amp;lt;&amp;lt; Padding({Left(0), Top(0), Right(0), Bottom(0)});
				Combo1 &amp;lt;&amp;lt; Text Color("None");
				Combo1 &amp;lt;&amp;lt; UI Only(0);
				Combo1 &amp;lt;&amp;lt; Vertical Alignment("Default");
				Combo1 &amp;lt;&amp;lt; Visibility("Visible");
				Combo1 &amp;lt;&amp;lt; Set Min Size(180, 23);
				Combo1 &amp;lt;&amp;lt; Set Max Size(180, 23);
				Combo1 &amp;lt;&amp;lt; Set Stretch({"Neutral", "Neutral"});
				Combo1 &amp;lt;&amp;lt; Set Items({"Item1", "Item2"});
				Combo1 &amp;lt;&amp;lt; Set(1);
				Text2 &amp;lt;&amp;lt; Background Color("None");
				Text2 &amp;lt;&amp;lt; Border({Left(0), Top(0), Right(0), Bottom(0)});
				Text2 &amp;lt;&amp;lt; Enabled(1);
				Text2 &amp;lt;&amp;lt; Horizontal Alignment("Default");
				Text2 &amp;lt;&amp;lt; Margin({Left(0), Top(0), Right(0), Bottom(0)});
				Text2 &amp;lt;&amp;lt; Padding({Left(0), Top(0), Right(0), Bottom(0)});
				Text2 &amp;lt;&amp;lt; Text Color("None");
				Text2 &amp;lt;&amp;lt; UI Only(0);
				Text2 &amp;lt;&amp;lt; Vertical Alignment("Default");
				Text2 &amp;lt;&amp;lt; Visibility("Visible");
				Text2 &amp;lt;&amp;lt; Set Min Size(64, 19);
				Text2 &amp;lt;&amp;lt; Set Max Size(64, 19);
				Text2 &amp;lt;&amp;lt; Set Stretch({"Neutral", "Neutral"});
				Text2 &amp;lt;&amp;lt; Set Base Font("Text");
				Text2 &amp;lt;&amp;lt; Set Font Scale(1);
				Text2 &amp;lt;&amp;lt; Set Text("Text2");
				Text2 &amp;lt;&amp;lt; Bullet point(0);
				Text2 &amp;lt;&amp;lt; Justify Text("Left");
				Text2 &amp;lt;&amp;lt; Rotate Text("Horizontal");
				Text2 &amp;lt;&amp;lt; Set Width(-1);
				Text2 &amp;lt;&amp;lt; Set Wrap(360);
				Text2 &amp;lt;&amp;lt; Set Tip("");
				CheckBox1 &amp;lt;&amp;lt; Background Color("None");
				CheckBox1 &amp;lt;&amp;lt; Border({Left(0), Top(0), Right(0), Bottom(0)});
				CheckBox1 &amp;lt;&amp;lt; Enabled(1);
				CheckBox1 &amp;lt;&amp;lt; Horizontal Alignment("Default");
				CheckBox1 &amp;lt;&amp;lt; Margin({Left(2), Top(2), Right(2), Bottom(2)});
				CheckBox1 &amp;lt;&amp;lt; Padding({Left(0), Top(0), Right(0), Bottom(0)});
				CheckBox1 &amp;lt;&amp;lt; Text Color("None");
				CheckBox1 &amp;lt;&amp;lt; UI Only(0);
				CheckBox1 &amp;lt;&amp;lt; Vertical Alignment("Default");
				CheckBox1 &amp;lt;&amp;lt; Visibility("Visible");
				CheckBox1 &amp;lt;&amp;lt; Set Min Size(180, 32);
				CheckBox1 &amp;lt;&amp;lt; Set Max Size(180, 32);
				CheckBox1 &amp;lt;&amp;lt; Set Stretch({"Neutral", "Neutral"});
				CheckBox1 &amp;lt;&amp;lt; Set Items({"Item1", "Item2"});
				Panel3 &amp;lt;&amp;lt; Background Color("None");
				Panel3 &amp;lt;&amp;lt; Border({Left(0), Top(0), Right(0), Bottom(0)});
				Panel3 &amp;lt;&amp;lt; Enabled(1);
				Panel3 &amp;lt;&amp;lt; Horizontal Alignment("Default");
				Panel3 &amp;lt;&amp;lt; Margin({Left(0), Top(0), Right(0), Bottom(0)});
				Panel3 &amp;lt;&amp;lt; Padding({Left(0), Top(0), Right(0), Bottom(0)});
				Panel3 &amp;lt;&amp;lt; Text Color("None");
				Panel3 &amp;lt;&amp;lt; UI Only(0);
				Panel3 &amp;lt;&amp;lt; Vertical Alignment("Default");
				Panel3 &amp;lt;&amp;lt; Visibility("Visible");
				Panel3 &amp;lt;&amp;lt; Set Min Size(128, 154);
				Panel3 &amp;lt;&amp;lt; Set Max Size(128, 154);
				Panel3 &amp;lt;&amp;lt; Set Stretch({"Neutral", "Neutral"});
				Panel3 &amp;lt;&amp;lt; Set Title("Panel3");
				Lineup1 &amp;lt;&amp;lt; N Col(1);
				Lineup1 &amp;lt;&amp;lt; Background Color("None");
				Lineup1 &amp;lt;&amp;lt; Border({Left(0), Top(0), Right(0), Bottom(0)});
				Lineup1 &amp;lt;&amp;lt; Enabled(1);
				Lineup1 &amp;lt;&amp;lt; Horizontal Alignment("Default");
				Lineup1 &amp;lt;&amp;lt; Margin({Left(0), Top(0), Right(0), Bottom(0)});
				Lineup1 &amp;lt;&amp;lt; Padding({Left(0), Top(0), Right(0), Bottom(0)});
				Lineup1 &amp;lt;&amp;lt; Text Color("None");
				Lineup1 &amp;lt;&amp;lt; UI Only(0);
				Lineup1 &amp;lt;&amp;lt; Vertical Alignment("Default");
				Lineup1 &amp;lt;&amp;lt; Visibility("Visible");
				Lineup1 &amp;lt;&amp;lt; Set Min Size(88, 96);
				Lineup1 &amp;lt;&amp;lt; Set Max Size(88, 96);
				Lineup1 &amp;lt;&amp;lt; Set Stretch({"Neutral", "Neutral"});
				Lineup1 &amp;lt;&amp;lt; Spacing(2);
				Button1 &amp;lt;&amp;lt; Background Color("None");
				Button1 &amp;lt;&amp;lt; Border({Left(0), Top(0), Right(0), Bottom(0)});
				Button1 &amp;lt;&amp;lt; Enabled(1);
				Button1 &amp;lt;&amp;lt; Horizontal Alignment("Default");
				Button1 &amp;lt;&amp;lt; Margin({Left(2), Top(2), Right(2), Bottom(2)});
				Button1 &amp;lt;&amp;lt; Padding({Left(0), Top(0), Right(0), Bottom(0)});
				Button1 &amp;lt;&amp;lt; Text Color("None");
				Button1 &amp;lt;&amp;lt; UI Only(0);
				Button1 &amp;lt;&amp;lt; Vertical Alignment("Default");
				Button1 &amp;lt;&amp;lt; Visibility("Visible");
				Button1 &amp;lt;&amp;lt; Set Min Size(60, 21);
				Button1 &amp;lt;&amp;lt; Set Max Size(60, 21);
				Button1 &amp;lt;&amp;lt; Set Stretch({"Neutral", "Neutral"});
				Button1 &amp;lt;&amp;lt; Set Button Name("OK");
				Button1 &amp;lt;&amp;lt; Style("Normal");
				Button1 &amp;lt;&amp;lt; Set(0);
				Button1 &amp;lt;&amp;lt; Set Icon("");
				Button1 &amp;lt;&amp;lt; Set Icon Location("Right");
				Button2 &amp;lt;&amp;lt; Background Color("None");
				Button2 &amp;lt;&amp;lt; Border({Left(0), Top(0), Right(0), Bottom(0)});
				Button2 &amp;lt;&amp;lt; Enabled(1);
				Button2 &amp;lt;&amp;lt; Horizontal Alignment("Default");
				Button2 &amp;lt;&amp;lt; Margin({Left(2), Top(2), Right(2), Bottom(2)});
				Button2 &amp;lt;&amp;lt; Padding({Left(0), Top(0), Right(0), Bottom(0)});
				Button2 &amp;lt;&amp;lt; Text Color("None");
				Button2 &amp;lt;&amp;lt; UI Only(0);
				Button2 &amp;lt;&amp;lt; Vertical Alignment("Default");
				Button2 &amp;lt;&amp;lt; Visibility("Visible");
				Button2 &amp;lt;&amp;lt; Set Min Size(60, 21);
				Button2 &amp;lt;&amp;lt; Set Max Size(60, 21);
				Button2 &amp;lt;&amp;lt; Set Stretch({"Neutral", "Neutral"});
				Button2 &amp;lt;&amp;lt; Set Button Name("Cancel");
				Button2 &amp;lt;&amp;lt; Style("Normal");
				Button2 &amp;lt;&amp;lt; Set(0);
				Button2 &amp;lt;&amp;lt; Set Icon("");
				Button2 &amp;lt;&amp;lt; Set Icon Location("Right");
			)
		)
	),
	Initialize(
		Module1 &amp;lt;&amp;lt; Auto Launch(1);
		Module1 &amp;lt;&amp;lt; Set Module Type("Report");
		Module1 &amp;lt;&amp;lt; Set Window Title("^TABLENAME - ^APPNAME");
	)
);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/LI-SPOILER&gt;
&lt;P&gt;If I give that script to ChatGPT (I'm not logged in so I think it is using GPT-4o) and ask it to create new window like script, it did provide me with something like below. It does get close enough for it to be useful in my opinion&lt;/P&gt;
&lt;LI-SPOILER&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;New Window("Application",
	H List Box(
		Panel Box("Panel1",
			Filter Col Selector(
				Data Table("DataTable1")
			)
		),
		Panel Box("Panel2",
			Lineup Box(
				N Col(2),
				Text Box("Text1"),
				Text Box("Text2"),
				Combo Box({"Item1", "Item2"}),
				Check Box({"Item1", "Item2"}),
				Col List Box(
					Data Table("DataTable1"),
					Modeling Type({"Continuous", "Ordinal", "Nominal"})
				),
				Button Box("Button3")
			)
		),
		Panel Box("Panel3",
			Lineup Box(
				N Col(1),
				Button Box("OK"),
				Button Box("Cancel")
			)
		)
	)
);
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/LI-SPOILER&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jthi_1-1758039556420.png" style="width: 400px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/82666iE2C5D8CE55F8C2C1/image-size/medium?v=v2&amp;amp;px=400" role="button" title="jthi_1-1758039556420.png" alt="jthi_1-1758039556420.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;But it would be useful to have this capability from application builder or maybe even have new "designer" platform which could be used for UI design (I'm already so used to writing new window scripts that I write them much faster than using application builder with my own style).&lt;/P&gt;</description>
      <pubDate>Tue, 16 Sep 2025 16:23:37 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Create-GUI-using-Application-Builder/m-p/901181#M106058</guid>
      <dc:creator>jthi</dc:creator>
      <dc:date>2025-09-16T16:23:37Z</dc:date>
    </item>
    <item>
      <title>Re: Create GUI using Application Builder</title>
      <link>https://community.jmp.com/t5/Discussions/Create-GUI-using-Application-Builder/m-p/901182#M106059</link>
      <description>&lt;P&gt;Also, if you are creating "lots" of similar type of UIs you might consider creating your own tooling for that.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have for example:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Tool takes in openapi.json from FastAPI to create JMP UI (&lt;A href="https://community.jmp.com/t5/Abstracts/Pythonless-Python-Integration-for-JMP-2023-EU-30MP-1265/ev-p/738728" target="_blank" rel="noopener"&gt; Pythonless Python Integration for JMP® (2023-EU-30MP-1265)&lt;/A&gt;)&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Tool utilizes specific type of Pydantic basemodels (&lt;A href="https://community.jmp.com/t5/Abstracts/JMPyFacade-Bridging-JMP-and-Python-for-Seamless-Engaging/ev-p/822866" target="_blank" rel="noopener"&gt; JMPyFacade: Bridging JMP and Python for Seamless Engaging Analysis&lt;/A&gt;&amp;nbsp;and &lt;LI-MESSAGE title="Scripters Club Recording: JMPyFacade: Bridging JMP and Python for Seamless Engaging Analysis" uid="881822" url="https://community.jmp.com/t5/JMP-Scripters-Club-Discussions/Scripters-Club-Recording-JMPyFacade-Bridging-JMP-and-Python-for/m-p/881822#U881822" discussion_style_icon_css="lia-mention-container-editor-message lia-img-icon-forum-thread lia-fa-icon lia-fa-forum lia-fa-thread lia-fa"&gt;&lt;/LI-MESSAGE&gt;&amp;nbsp;) to create dynamic UI&lt;/LI&gt;
&lt;LI&gt;One tool takes specific type of SQL template to create UI&lt;/LI&gt;
&lt;LI&gt;Simpler one for setting/configuration files&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Tue, 16 Sep 2025 16:37:03 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Create-GUI-using-Application-Builder/m-p/901182#M106059</guid>
      <dc:creator>jthi</dc:creator>
      <dc:date>2025-09-16T16:37:03Z</dc:date>
    </item>
  </channel>
</rss>

