Class FragmentCreator

java.lang.Object
io.jmix.bpmflowui.view.modeler.impl.FragmentCreator

@Component public class FragmentCreator extends Object
  • Constructor Details

  • Method Details

    • create

      public StandardDetailView<?> create(View<?> owner, Object editedEntity, Class<? extends StandardDetailView<?>> fragmentClass)
      Creates details view as editor fragment, that can be attached to any ui component as ui component Supported BeforeShowEvent
      Parameters:
      owner - parent component view
      editedEntity - dataContainer entity holder
      fragmentClass - class of fragment, that will be created
      Returns:
      initialized fragment, before show event fired
    • createList

      public StandardView createList(Class<? extends StandardView> fragmentClass)
      Creates details view as list fragment Delegates creation to io.jmix.flowui.Views class
      Parameters:
      fragmentClass - fragmentClass class of fragment, that will be created
      Returns:
      ListView initialized class
    • fireReadyEvent

      public void fireReadyEvent(View<?> view)
      Fires View.ReadyEvent to apply Settings.
      Parameters:
      view - view to apply settings
    • createPropertiesComponent

      public <T extends AbstractElementPropertiesComponent<Object>> T createPropertiesComponent(View<?> owner, String jsonEntity, BpmnModeler modeler, @Nullable String elementType, Class<? extends AbstractElementPropertiesComponent> fragmentClass)
      Creates root fragments for one of bpmn schema elements such as ServiceTask, UserTask, StartEvent etc
      Type Parameters:
      T - model class, that fragment holds inside
      Parameters:
      owner - modeler view
      jsonEntity - raw (json) data of selected element in modeler
      modeler - modeler instance
      elementType - BPMN type of the selected element (e.g. bpmn:EndEvent), passed to fragments implementing ElementTypeAware
      fragmentClass - class of root fragment
      Returns:
      instanced AbstractElementPropertiesComponent Fragment, that root for one of bpmn schema elements
    • createPropertiesFragment

      public ElementPropertiesFragment<?> createPropertiesFragment(View<?> owner, String jsonEntity, BpmnModeler modeler, @Nullable String elementType, Class<? extends ElementPropertiesFragment> fragmentClass)
      Creates a root properties panel implemented as a Jmix fragment (see ElementPropertiesFragment) for the selected BPMN element.
      Parameters:
      owner - modeler view hosting the panel
      jsonEntity - raw (json) data of the selected element in the modeler
      modeler - modeler instance
      elementType - BPMN type of the selected element (e.g. bpmn:EndEvent), passed to fragments implementing ElementTypeAware
      fragmentClass - fragment class implementing ElementPropertiesFragment
      Returns:
      initialized fragment with the modeler and element model set
    • createFragment

      public Fragment<?> createFragment(View<?> owner, Class<? extends Fragment<?>> fragmentClass)
      Creates a plain Fragment to be attached inside a properties panel. A stable id is assigned (descriptor processing requires one for a programmatically created fragment).
      Parameters:
      owner - view hosting the fragment
      fragmentClass - fragment class to create
      Returns:
      the initialized fragment
    • initFragmentSettings

      protected void initFragmentSettings(Fragment<?> fragment)
      Applies and arranges saving of the UI settings of a properties-panel fragment.

      A fragment's settings facet is driven by the host view lifecycle (apply on ready, save on detach), which has already passed when a panel is created on element selection — so settings are applied here explicitly and saved when the panel is removed on the next selection change.

      Parameters:
      fragment - properties-panel fragment to process
    • createView

      public AbstractElementPropertiesComponent<?> createView(AbstractElementPropertiesComponent<?> owner, Object editedEntity, Class<? extends AbstractElementPropertiesComponent<?>> fragmentClass)
      Creates AbstractElementPropertiesComponent fragment (base view that contains one of bpm model)
      Parameters:
      owner - parent view of this fragment
      editedEntity - model instance that contains inside fragment view
      fragmentClass - fragment class to craete
      Returns:
      instanced AbstractElementPropertiesComponent, that already contains editedEntity