Class ModalRefinement

    • Field Detail

      • _mirrorDisable

        protected int _mirrorDisable
        Indicator that we are processing a newPort request from above (if 1) or below (if -1) in the hierarchy.
    • Constructor Detail

      • ModalRefinement

        public ModalRefinement​(CompositeEntity container,
                               java.lang.String name)
                        throws IllegalActionException,
                               NameDuplicationException
        Construct a modal controller with a name and a container. The container argument must not be null, or a NullPointerException will be thrown.
        Parameters:
        container - The container.
        name - The name of this actor.
        Throws:
        IllegalActionException - If the container is incompatible with this actor.
        NameDuplicationException - If the name coincides with an actor already in the container.
    • Method Detail

      • dropObject

        public void dropObject​(NamedObj target,
                               java.util.List dropObjects,
                               java.lang.String moml)
                        throws IllegalActionException
        React to a list of objects being dropped onto a target.
        Specified by:
        dropObject in interface DropTargetHandler
        Parameters:
        target - The target on which the objects are dropped.
        dropObjects - The list of objects dropped onto the target.
        moml - The moml string generated for the dropped objects.
        Throws:
        IllegalActionException - If the handling is unsuccessful.
      • getRefinedState

        public State getRefinedState()
                              throws IllegalActionException
        Get the state in any ModalRefinement within this ModalModel that has this ModalRefinement as its refinement, if any. Return null if no such state is found.
        Specified by:
        getRefinedState in interface RefinementActor
        Returns:
        The state with this ModalRefinement as its refinement, or null.
        Throws:
        IllegalActionException - If the specified refinement cannot be found in a state, or if a comma-separated list is malformed.
      • newPort

        public Port newPort​(java.lang.String name)
                     throws NameDuplicationException
        Create a new port with the specified name in the container of this controller, which in turn creates a port in this controller and all the refinements. This method is write-synchronized on the workspace.
        Overrides:
        newPort in class ModalModel
        Parameters:
        name - The name to assign to the newly created port.
        Returns:
        The new port.
        Throws:
        NameDuplicationException - If the entity already has a port with the specified name.
      • setMirrorDisable

        public void setMirrorDisable​(int disable)
        Control whether adding a port should be mirrored in the modal model and refinements. This is added to allow control by the UI.
        Specified by:
        setMirrorDisable in interface RefinementActor
        Parameters:
        disable - 0 if mirroring should occur, -1 if mirroring should not occur downwards in the hierarchy, 1 if mirroring should not occur upwards in the hierarchy.
      • _checkContainer

        protected void _checkContainer​(Entity container)
                                throws IllegalActionException
        Override the base class to ensure that the proposed container is a ModalModel or null.
        Parameters:
        container - The proposed container.
        Throws:
        IllegalActionException - If the proposed container is not a TypedActor, or if the base class throws it.
      • _getRefinementClasses

        protected java.util.TreeMap<java.lang.Class<? extends Entity>,​java.lang.String> _getRefinementClasses()
        Return a map from the classes of the entities to be dropped into a state and the class names of the refinements that can be used to contain those entities.
        Returns:
        The map.
      • addRefinement

        public void addRefinement​(State state,
                                  java.lang.String name,
                                  Entity template,
                                  java.lang.String className,
                                  InstanceOpener instanceOpener)
                           throws IllegalActionException
        Create a refinement for the given state.
        Specified by:
        addRefinement in interface RefinementActor
        Parameters:
        state - The state that will contain the new refinement.
        name - The name of the composite entity that stores the refinement.
        template - The template used to create the refinement, or null if template is not used.
        className - The class name for the refinement, which is used when template is null.
        instanceOpener - The instanceOpener, typically a Configuration, that is used to open the refinement (as a look-inside action) after it is created, or null if it is not needed to open the refinement.
        Throws:
        IllegalActionException - If error occurs while creating the refinement.
      • addRefinement

        public static void addRefinement​(State state,
                                         java.lang.String name,
                                         Entity template,
                                         java.lang.String className,
                                         InstanceOpener instanceOpener,
                                         CompositeEntity container)
                                  throws IllegalActionException
        Create a refinement for the given state.
        Parameters:
        state - The state that will contain the new refinement.
        name - The name of the composite entity that stores the refinement.
        template - The template used to create the refinement, or null if template is not used.
        className - The class name for the refinement, which is used when template is null.
        instanceOpener - The instanceOpener, typically a Configuration, that is used to open the refinement (as a look-inside action) after it is created, or null if it is not needed to open the refinement.
        container - The container.
        Throws:
        IllegalActionException - If error occurs while creating the refinement.