Archived
deploy.
This commit is contained in:
@@ -87,8 +87,9 @@
|
||||
<article data-uid="Anatomy-ProgramBranch">
|
||||
<h1 id="program-branch">Program Branch</h1>
|
||||
|
||||
<p>Program is the lower of the two Control-Tree branches the Execution page hosts: route <code>/execution</code>,
|
||||
Control-Tree path <code>execution/program</code>, one node per NC source file the session read. It is a
|
||||
<p>Program is the lower of the two roots of the Execution page's Control Tree, Mission being the upper:
|
||||
route <code>/execution</code>, Control-Tree path <code>execution/program</code>, one node per NC source file the session
|
||||
read. It is a
|
||||
read-only view of a run — the file's text, the passes that went over it, the per-line marks the run
|
||||
left behind, and the writeback files the run wrote — assembled from session data rather than from
|
||||
anything typed into it. Its node ids are positional, so an id addresses a node without surviving the
|
||||
@@ -97,9 +98,12 @@ branch growing around it.</p>
|
||||
<p>Mission is what a run executes; Program is what the run read. That one difference sets the rest of
|
||||
the branch:</p>
|
||||
<ul>
|
||||
<li>Mission's nodes edit the project. Program's item types declare a panel and a child builder and
|
||||
nothing else — no enable checkbox (the tree hides the tick on every node that is not a Mission
|
||||
command or an enable-bearing Mission section), no control bar, no add, delete, move or duplicate.</li>
|
||||
<li>Mission's nodes edit the project. Program's item types declare a panel — and, on the root and the
|
||||
file node, a child builder — and nothing else: no enable checkbox (the tree hides the tick on
|
||||
every node that is not a Mission command or an enable-bearing Mission section), none of the row
|
||||
affordances a Mission row carries (no drag handle, no add, delete, move or duplicate button), and
|
||||
no counterpart to Mission's one panel-side structural edit, the multi-pick insert of the
|
||||
<a class="xref" href="mission/NcFileCommand-panel.html">Program File editor</a>.</li>
|
||||
<li>Mission's shape is authored. Program's shape is a consequence: a subprogram file appears on it
|
||||
only because a run followed a call into it.</li>
|
||||
<li>Mission belongs to the project. Program's contents belong to the session — the index behind it is
|
||||
@@ -115,10 +119,10 @@ merge uses, and they share one namespace, so a Program File path and an NC Code
|
||||
alike collapse into one node. A Program File command whose path is still unset is skipped and seeds
|
||||
nothing. A placeholder carries no invocations, so its panel shows the file's text with no marks and
|
||||
an empty, disabled pass selector.</p>
|
||||
<p>The transport bar is the one control the branch does carry, and it is not the branch's own: the
|
||||
primary editor pane pins the <a href="execution-tool-bar.html">Execution Tool Bar</a> above the panel of the
|
||||
Execution root and of every node beneath it, so a run can be started, stepped and reset while a
|
||||
program file is on screen.</p>
|
||||
<p>The branch carries no transport of its own either. The <a href="execution-tool-bar.html">Execution Tool Bar</a>
|
||||
sits in the Control Tree pane's run header — above the tree scroller, beside the execution-status
|
||||
badge, on the Execution page only — so a run can be started, stepped and reset while a program file
|
||||
is on screen, and the editor pane below the tree shows nothing but the selected node's panel.</p>
|
||||
<h2 id="the-nodes-the-branch-mints">The Nodes the Branch Mints</h2>
|
||||
<p>Three item types, each keyed by position rather than by identity.</p>
|
||||
<p><strong>The branch root</strong> (<code>execution/program</code>) carries the summary panel and the child builder that
|
||||
@@ -229,8 +233,8 @@ when it mounts — or through a watcher, when it was already the selected panel.
|
||||
before the first page of text resolves is parked again and re-applied once the line array is sized.</p>
|
||||
<h2 id="when-the-branch-is-rebuilt">When the Branch Is Rebuilt</h2>
|
||||
<ul>
|
||||
<li><strong>Page initialization.</strong> Building the Execution root builds the branch, and only when a project is
|
||||
loaded; without one it stays empty.</li>
|
||||
<li><strong>Page initialization.</strong> Building the Execution page's two roots builds the branch, and only when
|
||||
a project is loaded; without one the root stands with no children.</li>
|
||||
<li><strong>Any change in the broadcast execution status.</strong> The status the hub reports is one of
|
||||
<code>NoProject</code>, <code>Ready</code>, <code>Running</code>, <code>Paused</code> and <code>Finished</code>, and the host re-reads the branch
|
||||
whenever that value changes. It deliberately does not take the structural-change path used
|
||||
@@ -239,9 +243,10 @@ keep re-opening a branch the reader had closed. The panels pick up <strong>part<
|
||||
the replaced nodes: the path caption, the pass selector, the inline wording and the executed-line
|
||||
count are all derived from the node, but the file text is not — it is fetched once per page on
|
||||
mount and on scroll, with no watcher on the path, and the panel is not remounted because its key
|
||||
is built from the node id, which is positional and therefore unchanged. A rebuild that puts a
|
||||
different file at the same index leaves the previous file's text on screen under the new node's
|
||||
caption and marks.</li>
|
||||
— the node id, the node key and the mission stamp — reduces on a Program node to the id alone,
|
||||
the other two parts being empty, and the id is positional and therefore unchanged. A rebuild that
|
||||
puts a different file at the same index leaves the previous file's text on screen under the new
|
||||
node's caption and marks.</li>
|
||||
<li><strong>The refresh button on the root panel.</strong> This one does take the structural-change path: it
|
||||
re-reads the file tree from the current session and expands the branch.</li>
|
||||
</ul>
|
||||
@@ -315,16 +320,18 @@ selector, the Follow toggle, the paged line viewer, the execution marks, the ste
|
||||
converted-line badges, and the cursor and hover wiring.</li>
|
||||
<li><code>wwwroot-src/src/components/controlTree/ProgramConversionFilePanel.vue</code> — one written file: the
|
||||
paged line viewer and the source-line links back into the file panel.</li>
|
||||
<li><code>wwwroot-src/src/components/controlTree/useControlTreeHost.ts</code> — declares the branch root under
|
||||
the Execution root, re-reads it on every execution-status change without expanding it, and hides
|
||||
the tick on every node that is not a Mission command or an enable-bearing Mission section.</li>
|
||||
<li><code>wwwroot-src/src/components/controlTree/useControlTreeHost.ts</code> — declares the branch root as the
|
||||
Execution page's second root, below Mission, re-reads it on every execution-status change without
|
||||
expanding it, and hides the tick on every node that is not a Mission command or an enable-bearing
|
||||
Mission section.</li>
|
||||
<li><code>wwwroot-src/src/components/controlTree/itemTypes.ts</code> — the node shape carrying the program
|
||||
bookkeeping, the merged item-type registry, and the eager subtree builder.</li>
|
||||
<li><code>wwwroot-src/src/components/controlTree/ControlTreePanel.vue</code> — the tree pane that renders the
|
||||
branch's nodes and binds the tree's strict tick strategy.</li>
|
||||
<li><code>wwwroot-src/src/components/controlTree/PrimarySlavePanel.vue</code> — mounts the selected node's panel,
|
||||
forwards its selection request to the host, and pins the transport bar above every Execution-scope
|
||||
node.</li>
|
||||
branch's nodes, binds the tree's strict tick strategy, and pins the run header — the transport bar
|
||||
and the execution-status badge — above the tree on the Execution page.</li>
|
||||
<li><code>wwwroot-src/src/components/controlTree/PrimarySlavePanel.vue</code> — mounts the selected node's panel
|
||||
under a key built from the node id, the node key and the mission stamp — the last two empty on
|
||||
every Program node — and forwards its selection request to the host.</li>
|
||||
<li><code>wwwroot-src/src/api/ncProgram.ts</code> — the typed client for the file tree, the paged lines, the line
|
||||
marks, the syntax piece, the sentence-to-step mapping and both directions of conversion links.</li>
|
||||
<li><code>wwwroot-src/src/api/clStrip.ts</code> — the step-select and step-enter posts a line click and a line
|
||||
@@ -363,8 +370,11 @@ inline node and whose text is that node's only source.</li>
|
||||
</ul>
|
||||
<h2 id="see-also">See Also</h2>
|
||||
<ul>
|
||||
<li><a class="xref" href="mission/mission-root-panel.html">Mission Root Panel</a> — the editable twin: the command list this branch reports on, and
|
||||
the only place the NC file list is changed</li>
|
||||
<li><a class="xref" href="mission/mission-root-panel.html">Mission Root Panel</a> — the editable twin: the command list this branch reports on. Its
|
||||
Add Command, drag, move, duplicate and delete ops live on the Control Tree rows and act on
|
||||
commands of any kind; the root's own panel is informational — a no-project note when no project
|
||||
is loaded, otherwise the command count with an Add Command prompt while that count is zero, and
|
||||
the run-order hint in either case</li>
|
||||
<li><a class="xref" href="index.html">Execution Page</a> — the page that hosts both branches, and the transport, canvas and charts
|
||||
the branch's selections drive</li>
|
||||
</ul>
|
||||
|
||||
Reference in New Issue
Block a user