Class RetiredDOMElement

java.lang.Object
com.iizix.prop.GProp<GProp<?>[]>
com.iizix.prop.PropCnr
com.iizix.prop.ui.RetiredDOMElement
All Implemented Interfaces:
EventListener, IGProp<GProp<?>[]>, IPropCnr, Cloneable

public final class RetiredDOMElement extends PropCnr
The retired DOMElement element of saved panels: the class that loads it so that old files still open, and nothing else.

DOMElement was the saved copy of a component's DOM under its $uiPreview, Designer-only and private. The class com.iizix.prop.ui.DOMElement and every use of it were removed on 2026-09-24, and r20018 stripped the element from every panel in the tree. Panels saved before that - every project created from the old startup panels - still carry nested <DOMElement editorProp="true" name="dom" private="true"> blocks on customers' disks, and PropFactory.loadPropTree fails the WHOLE file, logging SEVERE, on an element name the catalogue does not know.

Ruling D1 (CM, 2026-09-24): the catalogue keeps knowing the NAME DOMElement so that old panels load; the element is dropped and disappears at the next save. This class is that ruling and exists for nothing else. It must never be used for anything new: never created in code, never mapped from another element, never given a JavaScript class.

What it does, and how:

  • Loads silently, whatever the element contains. shouldCreateProps(Element) answers false, so no child element is created - the name and class strings, the nested DOMElements, anything - and nothing is logged.
  • Is never written. The property is volatile from creation, so shouldSerializeToXML answers false and the save comparison skips it (isPropSaveRelevant): the element is gone from the file at the next save.
  • Is never sent to a client. Private at creation, as the old class was: a non-indexed parent leaves it out of the wire framing altogether, an indexed one sends a valueless private placeholder and never this class. It is also editor-only by class (isPropForEditorAtCreation()), so a SERVER or CLIENT factory drops it at load whether or not the block carries editorProp, as it dropped the old class. The catalogue's mandatory jsclient names PropCnr, the placeholder name the receiver's back-map ignores: naming PrivProp there hijacks the private placeholder of every indexed container (the receiver back-maps last-wins), measured by PrivateChildFramingTest.
The parent, typically a component's $uiPreview, is otherwise unchanged: in the Designer it holds an empty, inert dom child until the file is saved.
Author:
Christopher Mindus
  • Constructor Details

    • RetiredDOMElement

      public RetiredDOMElement()
      Creates the retired element without name with a null value.
    • RetiredDOMElement

      public RetiredDOMElement(Atom propertyAtom)
      Creates the retired element with the specified name with a null value.
      Parameters:
      propertyAtom - the property atom.
  • Method Details

    • isPropPrivateAtCreation

      protected boolean isPropPrivateAtCreation()
      Private at creation, as the retired class was: never distributed to the remote party.
      Overrides:
      isPropPrivateAtCreation in class GProp<GProp<?>[]>
      Returns:
      true, always.
    • isPropForEditorAtCreation

      protected boolean isPropForEditorAtCreation()
      Editor-only by class, as the retired class was: the flag is set at creation, the editorProp attribute is not read for it and the flag cannot be cleared, so a block without the attribute is dropped by a SERVER or CLIENT load exactly as an attributed one is.
      Overrides:
      isPropForEditorAtCreation in class GProp<GProp<?>[]>
      Returns:
      true, always.
    • shouldCreateProps

      protected boolean shouldCreateProps(Element element)
      No child element is created: the content of a saved DOMElement - its strings and its nested elements - is skipped without being parsed into properties.
      Overrides:
      shouldCreateProps in class PropCnr
      Parameters:
      element - The child element in question.
      Returns:
      false, always.