Class DynamicModelBuilderFragment
java.lang.Object
com.vaadin.flow.component.Component
com.vaadin.flow.component.Composite<com.vaadin.flow.component.orderedlayout.VerticalLayout>
io.jmix.flowui.fragment.Fragment<com.vaadin.flow.component.orderedlayout.VerticalLayout>
io.jmix.dynmodelaiflowui.view.builder.DynamicModelBuilderFragment
- All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier,com.vaadin.flow.component.DetachNotifier,com.vaadin.flow.component.HasElement,com.vaadin.flow.component.HasStyle,FacetOwner,FragmentOwner,Serializable
@CssImport("./dmagent/builder-workspace.css")
public class DynamicModelBuilderFragment
extends Fragment<com.vaadin.flow.component.orderedlayout.VerticalLayout>
Chat and plan confirmation inside the shared Dynamic Model editor.
Successful AI changes update the host's unsaved model; only the host publishes it.
Clearing a conversation retains editor changes unless the user explicitly discards them.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class io.jmix.flowui.fragment.Fragment
Fragment.ReadyEvent -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected AccessManagerprotected com.vaadin.flow.component.orderedlayout.VerticalLayoutprotected static final intprotected DynamicModelAgentServiceprotected com.vaadin.flow.component.orderedlayout.VerticalLayoutprotected JmixButtonprotected JmixButtonprotected JmixButtonprotected com.vaadin.flow.component.orderedlayout.VerticalLayoutprotected JmixDetailsprotected AiChat<SimpleAiChatMessage> protected com.vaadin.flow.component.orderedlayout.VerticalLayoutprotected JmixButtonprotected PlanApprovalModeprotected com.vaadin.flow.component.orderedlayout.HorizontalLayoutprotected CurrentAuthenticationprotected com.vaadin.flow.component.orderedlayout.VerticalLayoutprotected com.vaadin.flow.component.html.Spanprotected com.vaadin.flow.component.html.H4protected Dialogsprotected com.vaadin.flow.component.orderedlayout.VerticalLayoutprotected com.vaadin.flow.component.orderedlayout.VerticalLayoutprotected com.vaadin.flow.component.html.H4protected @Nullable DynamicModelEditorContextprotected com.vaadin.flow.component.orderedlayout.FlexLayoutprotected com.vaadin.flow.component.orderedlayout.VerticalLayoutprotected JmixDetailsprotected Fragmentsprotected Iconsprotected static final intWhile a draft waits, the poll doubles as the heartbeat that keeps the server session alive.protected MessageBundleprotected ModelPanelFragmentprotected JmixDetailsprotected Notificationsprotected com.vaadin.flow.component.html.Divprotected JmixButtonprotected JmixButtonprotected com.vaadin.flow.component.orderedlayout.VerticalLayoutprotected JmixDetailsprotected SystemAuthenticatorprotected ViewRegistryprotected com.vaadin.flow.component.orderedlayout.VerticalLayoutprotected com.vaadin.flow.component.orderedlayout.HorizontalLayoutprotected com.vaadin.flow.component.orderedlayout.HorizontalLayoutprotected JmixButtonFields inherited from class io.jmix.flowui.fragment.Fragment
fragmentActions, fragmentData, fragmentFacets, parentController, uiComponents -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidchangesApplied(@Nullable UUID baselineId, UUID publishedId) protected voidvoidprotected voidfocusWorkspaceComponent(com.vaadin.flow.component.Component component) booleanUnsaved model content belongs to the host; this reports only separate AI work that closing would lose: a running Run or a result that can still be transferred.protected voidonAttach(com.vaadin.flow.component.AttachEvent event) protected voidonDetach(com.vaadin.flow.component.DetachEvent event) voidonReady(Fragment.ReadyEvent event) voidonStartOverButtonClick(com.vaadin.flow.component.ClickEvent<com.vaadin.flow.component.button.Button> event) Clears the conversation, with an explicit option to discard unpublished editor changes.voidvoidsetNativeApplyButton(JmixButton button, boolean permitted) voidsetReviewEditorAction(Runnable action) protected voidsetWorkspaceCollapsed(boolean collapsed) Methods inherited from class io.jmix.flowui.fragment.Fragment
addReadyListener, findInnerComponent, getFragmentActions, getFragmentData, getFragmentFacets, getInnerComponent, getParentController, initContent, setFragmentActions, setFragmentData, setFragmentFacets, setParentController, setUiComponentsMethods inherited from class com.vaadin.flow.component.Composite
getChildren, getContent, getElementMethods inherited from class com.vaadin.flow.component.Component
addListener, bindVisible, findAncestor, fireEvent, from, get, getEventBus, getId, getListeners, getLocale, getParent, getTestId, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getUI, hasListener, isAttached, isTemplateMapped, isVisible, onEnabledStateChanged, removeFromParent, scrollIntoView, scrollIntoView, set, setElement, setId, setTestId, setVisible, whenAttachedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.vaadin.flow.component.AttachNotifier
addAttachListenerMethods inherited from interface com.vaadin.flow.component.DetachNotifier
addDetachListenerMethods inherited from interface io.jmix.flowui.facet.FacetOwner
getIdMethods inherited from interface com.vaadin.flow.component.HasStyle
addClassName, addClassNames, bindClassName, bindClassNames, getClassName, getClassNames, getStyle, hasClassName, removeClassName, removeClassNames, setClassName, setClassName
-
Field Details
-
ACTIVE_RUN_POLL_INTERVAL_MS
protected static final int ACTIVE_RUN_POLL_INTERVAL_MS- See Also:
-
IDLE_POLL_INTERVAL_MS
protected static final int IDLE_POLL_INTERVAL_MSWhile a draft waits, the poll doubles as the heartbeat that keeps the server session alive.- See Also:
-
configuredApprovalMode
@Value("${jmix.dynmodel.ai.plan-approval-mode:MANUAL}") protected PlanApprovalMode configuredApprovalMode -
editorContext
-
chat
-
chatPane
-
emptyExamples
-
modelPanel
-
draftTitle
@ViewComponent("workspaceLayout.modelWorkspace.workspaceContent.modelPanel.draftTitle") protected com.vaadin.flow.component.html.H4 draftTitle -
draftBody
@ViewComponent("workspaceLayout.modelWorkspace.workspaceContent.modelPanel.draftBody") protected com.vaadin.flow.component.orderedlayout.VerticalLayout draftBody -
draftPanel
@ViewComponent("workspaceLayout.modelWorkspace.workspaceContent.modelPanel.draftPanel") protected com.vaadin.flow.component.orderedlayout.VerticalLayout draftPanel -
noteBox
@ViewComponent("workspaceLayout.modelWorkspace.workspaceContent.modelPanel.noteBox") protected JmixDetails noteBox -
appliedLinks
@ViewComponent("workspaceLayout.modelWorkspace.workspaceContent.modelPanel.appliedLinks") protected com.vaadin.flow.component.orderedlayout.VerticalLayout appliedLinks -
changesBox
@ViewComponent("workspaceLayout.modelWorkspace.workspaceContent.modelPanel.changesBox") protected JmixDetails changesBox -
changeItems
@ViewComponent("workspaceLayout.modelWorkspace.workspaceContent.modelPanel.changeItems") protected com.vaadin.flow.component.orderedlayout.VerticalLayout changeItems -
findingsBox
@ViewComponent("workspaceLayout.modelWorkspace.workspaceContent.modelPanel.findingsBox") protected JmixDetails findingsBox -
findingItems
@ViewComponent("workspaceLayout.modelWorkspace.workspaceContent.modelPanel.findingItems") protected com.vaadin.flow.component.orderedlayout.VerticalLayout findingItems -
stepsDetails
@ViewComponent("workspaceLayout.modelWorkspace.workspaceContent.modelPanel.stepsDetails") protected JmixDetails stepsDetails -
stepItems
@ViewComponent("workspaceLayout.modelWorkspace.workspaceContent.modelPanel.stepItems") protected com.vaadin.flow.component.orderedlayout.VerticalLayout stepItems -
approvePlanButton
@ViewComponent("workspaceLayout.modelWorkspace.workspaceContent.modelPanel.approvePlanButton") protected JmixButton approvePlanButton -
cancelPlanButton
@ViewComponent("workspaceLayout.modelWorkspace.workspaceContent.modelPanel.cancelPlanButton") protected JmixButton cancelPlanButton -
closePanelButton
@ViewComponent("workspaceLayout.modelWorkspace.workspaceContent.modelPanel.closePanelButton") protected JmixButton closePanelButton -
actionsBox
@ViewComponent("workspaceLayout.modelWorkspace.workspaceContent.modelPanel.actionsBox") protected com.vaadin.flow.component.orderedlayout.VerticalLayout actionsBox -
startOverButton
-
progressBox
-
workspaceLayout
-
workspaceHeader
-
workspaceContent
-
currentStepBox
-
currentStepTitle
-
currentStepSummary
-
currentActions
-
reviewEditorButton
-
cancelRunButton
-
workspaceToggle
-
messageBundle
-
agentService
-
notifications
-
dialogs
-
fragments
-
currentAuthentication
-
systemAuthenticator
-
icons
-
viewRegistry
-
accessManager
-
-
Constructor Details
-
DynamicModelBuilderFragment
public DynamicModelBuilderFragment()
-
-
Method Details
-
onReady
-
setEditorContext
-
hasUnsavedChanges
public boolean hasUnsavedChanges()Unsaved model content belongs to the host; this reports only separate AI work that closing would lose: a running Run or a result that can still be transferred. An open question is conversation, not work. -
editorChanged
public void editorChanged() -
onStartOverButtonClick
@Subscribe("startOverButton") public void onStartOverButtonClick(com.vaadin.flow.component.ClickEvent<com.vaadin.flow.component.button.Button> event) Clears the conversation, with an explicit option to discard unpublished editor changes. -
confirmCancelPlan
protected void confirmCancelPlan() -
setWorkspaceCollapsed
protected void setWorkspaceCollapsed(boolean collapsed) -
focusWorkspaceComponent
protected void focusWorkspaceComponent(com.vaadin.flow.component.Component component) -
setReviewEditorAction
-
setNativeApplyButton
-
onAttach
protected void onAttach(com.vaadin.flow.component.AttachEvent event) -
onDetach
protected void onDetach(com.vaadin.flow.component.DetachEvent event) -
changesApplied
-