Interface DependencyEditor


@OpenApiAll public interface DependencyEditor
Interface for mechanism, which is used to edit dependency matrix.

Value editors may be registered inside MatrixFactory Value editors define which matrix cells are editable, and may add new add/remove dependency actions according to provided context

NOTE: if canCreate returns false, no menu items will be created using createAddActions. The same applies to canEdit and createEditActions methods

  • Method Details

    • init

      void init(PersistenceManager settings, @CheckForNull ProgressStatus status)
      Initializes value editor. This method is executed during matrix rebuild
      Parameters:
      settings - matrix settings
      status - progress status
    • createAddActions

      void createAddActions(PersistenceManager settings, ElementNode row, ElementNode column, AbstractMatrixCell cell, ActionsCategory mainCategory, ActionsCategory rowToColumn, ActionsCategory columnToRow)
      Used to edit specific cell action categories when user initiates add relationships actions. It may be either popup menu items or double click action
      Parameters:
      settings - matrix settings
      row - row element
      column - column element
      cell - cell value
      mainCategory - whole menu category
      rowToColumn - column to row dependency category
      columnToRow - row to column dependency category
    • createEditActions

      void createEditActions(PersistenceManager settings, ElementNode row, ElementNode column, AbstractMatrixCell cell, ActionsCategory main, ActionsCategory deleteActions)
      Analyze current cell, and create actions which can remove/edit specific dependencies from this cell
      Parameters:
      settings - matrix settings
      row - row element
      column - column element
      cell - current cell
      main - main action category
      deleteActions - add remove dependency actions to this category
    • canCreate

      boolean canCreate(PersistenceManager settings, ElementNode row, ElementNode column, @CheckForNull AbstractMatrixCell cell)
      Analyze specific cell and decides if there is any new dependencies which can be created for this pair of elements

      IMPORTANT: Make this method as fast as possible. Performance of this method highly influences overall performance of the Dependency matrix component

      Parameters:
      settings - matrix settings
      row - row element
      column - column element
      cell - matrix cell
      Returns:
      true if at least one relation can be created
    • canEdit

      boolean canEdit(PersistenceManager persistenceManager, ElementNode row, ElementNode column, AbstractMatrixCell cell)
      Analyze current cell, and decide if this there are at least one dependency, which can be deleted/edited.

      IMPORTANT: Make this method as fast as possible. Performance of this method highly influences overall performance of the Dependency matrix component

      Parameters:
      persistenceManager - matrix settings
      row - row element
      column - column element
      cell - matrix cell
      Returns:
      true if there is at least one dependency which can be deleted.
    • elementUpdated

      void elementUpdated(Collection<Element> element)
      This method is triggered when elements are updated but Build is not initiated. All caches should be cleared
      Parameters:
      element - updated element
    • clear

      void clear()
      Purpose of this method to clean up all unnecessary cache and objects