Class Style

java.lang.Object
com.nomagic.magicdraw.properties.Style
All Implemented Interfaces:
com.nomagic.magicdraw.core.project.options.PersistentStyle, PropertyVisitorAcceptor, PropertyChangeListener, Cloneable, EventListener

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

  • Constructor Details

    • Style

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

    • 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(Collection<PropertyManager> managers)
      Sets the collection of all managers.
      Parameters:
      managers - a collection of new managers.
    • getName

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

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

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

      public String toString()
      Returns a string representation of the style. Used for debug.
      Overrides:
      toString in class 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 Object clone()
      /** Creates and returns a copy of this style. Does deep clone.
      Overrides:
      clone in class Object
      Returns:
      the clone of this style.
    • cloneManagers

      protected void cloneManagers(Style newS)
    • getManagers

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

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

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

      @CheckForNull public Collection<PropertyManager> getManagers(String name)
      Returns property managers with given name.
      Parameters:
      name - the name of manager.
      Returns:
      managers with given name or null.
    • accept

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

      public String getClassType()
      Returns property class type.
      Specified by:
      getClassType in interface PropertyVisitorAcceptor
      Returns:
      PropertyID.SIMPLE_STYLE
      See Also:
    • 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

      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(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 PropertyChangeListener
      Parameters:
      evt - PropertyChangeEvent.
    • getManagersFromParent

      public List<PropertyManager> getManagersFromParent(@CheckForNull PropertyManager root)
    • 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.
    • findPropertyManagerWithPath

      @CheckForNull public static PropertyManager findPropertyManagerWithPath(Style findIn, Collection<PropertyManager> path)
    • generateID

      public void generateID()
    • getID

      public 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(String id)
      Set Id
      Parameters:
      id - given ID.
    • addPropertyChangeListener

      public void addPropertyChangeListener(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:
    • removePropertyChangeListener

      public void removePropertyChangeListener(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:
    • 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(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