Class Style

  • All Implemented Interfaces:
    com.nomagic.magicdraw.core.project.options.PersistentStyle, PropertyVisitorAcceptor, java.beans.PropertyChangeListener, java.lang.Cloneable, java.util.EventListener

    @OpenApiAll
    public class Style
    extends java.lang.Object
    implements java.lang.Cloneable, PropertyVisitorAcceptor, java.beans.PropertyChangeListener, com.nomagic.magicdraw.core.project.options.PersistentStyle
    Style stores and manages a set of PropertyManagers.
    • Field Detail

      • CHANGE_STYLE_PROPERTY

        public static final java.lang.String CHANGE_STYLE_PROPERTY
        Name of property fired on some style change.
        See Also:
        Constant Field Values
      • CHANGE_STYLE_PROPERTY_VALUE

        public static final java.lang.String CHANGE_STYLE_PROPERTY_VALUE
        See Also:
        Constant Field Values
      • ADDED_STYLE_MANAGER

        @Deprecated
        public static final java.lang.String ADDED_STYLE_MANAGER
        Deprecated.
        See Also:
        Constant Field Values
    • Constructor Detail

      • Style

        public Style()
        Constructs new Style. Style will have name "default", but it will not be default.
    • Method Detail

      • addManager

        public void addManager​(@CheckForNull
                               PropertyManager manager)
        Adds given property manager.
        Parameters:
        manager - the manager to add.
      • removeManager

        public void removeManager​(PropertyManager manager)
        Removes given property manager.
        Parameters:
        manager - the manager to remove.
      • getManagerCount

        public int getManagerCount()
        Returns managers count.
        Returns:
        count of managers.
      • setManagers

        public void setManagers​(java.util.Collection<PropertyManager> managers)
        Sets the collection of all managers.
        Parameters:
        managers - a collection of new managers.
      • getName

        public java.lang.String getName()
        Returns the name of the style.
        Returns:
        name of the style.
      • setName

        public void setName​(java.lang.String name)
        Set the name of the style.
        Parameters:
        name - the new name of the style.
      • setAppliedPropertyManagerIDs

        public void setAppliedPropertyManagerIDs​(java.util.Map<PropertyManager,​PropertyManager> propertyManagers)
        Sets applied property manager id to managers which does not have it.
        Parameters:
        propertyManagers - property managers to analyze
      • toString

        public java.lang.String toString()
        Returns a string representation of the style. Used for debug.
        Overrides:
        toString in class java.lang.Object
        Returns:
        the string representation.
      • setDefault

        public void setDefault​(boolean def)
        Sets default flag value.
        Parameters:
        def - new flag value.
      • isDefault

        public boolean isDefault()
        Is this style a default one?
        Returns:
        default flag value.
      • clone

        public java.lang.Object clone()
        /** Creates and returns a copy of this style. Does deep clone.
        Overrides:
        clone in class java.lang.Object
        Returns:
        the clone of this style.
      • cloneManagers

        protected void cloneManagers​(Style newS)
      • getManagers

        public java.util.Collection<PropertyManager> getManagers()
        Returns a collection of all managers.
        Returns:
        all managers.
      • getOrderedManagers

        public java.util.List<PropertyManager> getOrderedManagers()
        Returns collection of managers sorted by name.
        Returns:
        collection of managers sorted by name.
      • getManager

        @CheckForNull
        public PropertyManager getManager​(java.lang.String name)
        Returns property manager with given name.
        Parameters:
        name - the name of manager.
        Returns:
        manager with given name or null.
      • accept

        public void accept​(PropertyVisitor visitor)
                    throws java.lang.Exception
        Accepts the given visitor.
        Specified by:
        accept in interface PropertyVisitorAcceptor
        Parameters:
        visitor - the PropertyVisitor.
        Throws:
        java.lang.Exception
      • append

        public void append​(Style s)
        Adds all managers from given style to this style. If some manager exists in given style, but does not exist in this style - clone this manager and add. If some manager exists in given style and exists in this style - append properties from given manager to this manager.
        Parameters:
        s - the given style.
      • apply

        public java.util.Map<PropertyManager,​PropertyManager> apply​(Style s)
        Applies all managers from given style to the existing managers here. If some manager exists in given style, but does not exist in this style - do nothing.
        Parameters:
        s - the given style.
      • appendExtendedManagers

        public void appendExtendedManagers​(Style s)
      • isDiagramStyle

        public boolean isDiagramStyle()
        Returns:
        if it is diagram style
      • propertyChange

        public void propertyChange​(java.beans.PropertyChangeEvent evt)
        On CHANGE_STYLE_PROPERTY property change takes the manager from property's new Value and replaces itself properties with properties from this manager.
        Specified by:
        propertyChange in interface java.beans.PropertyChangeListener
        Parameters:
        evt - PropertyChangeEvent.
      • findPropertyManagerWithSamePath

        @CheckForNull
        public static PropertyManager findPropertyManagerWithSamePath​(Style findIn,
                                                                      PropertyManager find)
        Finds same property manager(with same path) in given style.
        Parameters:
        findIn - style where find manager.
        find - manager to find.
        Returns:
        found manager, or null if not found.
      • generateID

        public void generateID()
      • getID

        public java.lang.String getID()
        Returns:
        Returns the iD. Can return null if ID was not generated. ID is generated only for styles used for not loaded diagrams.
      • setID

        public void setID​(java.lang.String id)
        Set Id
        Parameters:
        id - given ID.
      • addPropertyChangeListener

        public void addPropertyChangeListener​(java.beans.PropertyChangeListener listener)
        Registers the listener to the element. The given listener will get notifications about property changes in this element.
        Parameters:
        listener - the PropertyChangeListener to be added.
        See Also:
        PropertyChangeSupport
      • removePropertyChangeListener

        public void removePropertyChangeListener​(java.beans.PropertyChangeListener listener)
        Unregisters the given listener from the element. The given listener will not get any notifications about property changes in this element.
        Parameters:
        listener - the PropertyChangeListener to be removed.
        See Also:
        PropertyChangeSupport
      • generateDefaultDescriptionID

        public static void generateDefaultDescriptionID​(Style style)
        Generate default description id.
        Parameters:
        style - style
      • isSnapshotStyleForDiagramSymbols

        public boolean isSnapshotStyleForDiagramSymbols()
        Returns:
        true if style is clone used for diagram style preserving.
      • isEqual

        public boolean isEqual​(Style style)
        Checks if given style has same property managers with same values.
        Parameters:
        style - given style.
        Returns:
        true if given style has same values as this style.
      • updateDefinedIn

        public void updateDefinedIn​(Style src)
        Update all ExtendablePropertyManager in this style defined in.
        Parameters:
        src - source to get defined in values
      • hasStereotype

        public boolean hasStereotype​(java.lang.String id)
        Check if style has stereotype with given id. This method is faster than iterate through all property managers.
        Parameters:
        id - stereotype id
        Returns:
        true if stereotype with given id has property manager in this style.
      • propertyManagerNameChanged

        public void propertyManagerNameChanged​(PropertyManager manager)
        Called when property manager name is changed
        Parameters:
        manager - manager which name is changed