Package com.nomagic.magicdraw.properties
Class Style
- java.lang.Object
 - 
- com.nomagic.magicdraw.properties.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 ofPropertyManagers. 
- 
- 
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classStyle.CollectionWithModificationTracking<T> 
- 
Field Summary
Fields Modifier and Type Field Description static java.lang.StringADDED_STYLE_MANAGERDeprecated.private java.util.Map<java.lang.String,java.lang.Object>byNamestatic java.lang.StringCHANGE_STYLE_PROPERTYName of property fired on some style change.static java.lang.StringCHANGE_STYLE_PROPERTY_VALUEprivate java.lang.StringidID of style, used to restore references from not loaded diagrams.private booleanisDefaultStyle is default one?private java.util.Set<java.lang.String>knownStereotypesprivate com.nomagic.utils.AList<java.beans.PropertyChangeListener>listenersThe element can registry a property change listeners and fire property change events on some property value change.private static java.util.Comparator<PropertyManager>MANAGER_BY_NAME_COMPARATORThe comparator for comparing twoPropertyManagersby name.private Style.CollectionWithModificationTracking<PropertyManager>managersCollection of property managers registered by name.static java.lang.StringMERGEDstatic java.lang.StringMERGED_PRE1704private java.lang.StringnameThe name of the style.static java.lang.StringSHARED 
- 
Constructor Summary
Constructors Constructor Description Style()Constructs new Style. 
- 
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(PropertyVisitor visitor)Accepts the given visitor.voidaddManager(PropertyManager manager)Adds given property manager.voidaddPropertyChangeListener(java.beans.PropertyChangeListener listener)Registers the listener to the element.voidappend(Style s)Adds all managers from given style to this style.voidappendExtendedManagers(Style s)private voidappendManagerByNameCache(PropertyManager manager)java.util.Map<PropertyManager,PropertyManager>apply(Style s)Applies all managers from given style to the existing managers here.private voidchangeProperty(Property p)Replaces existing property in all managers with the given one.java.lang.Objectclone()/** Creates and returns a copy of this style.protected voidcloneManagers(Style newS)private voidcreateManagersList()private voidfillStereotypes()static PropertyManagerfindPropertyManagerWithPath(Style findIn, java.util.Collection<PropertyManager> path)static PropertyManagerfindPropertyManagerWithSamePath(Style findIn, PropertyManager find)Finds same property manager(with same path) in given style.private voidfirePropertyChange(java.lang.String propertyName, java.lang.Object oldValue, java.lang.Object newValue)DelegatesfirePropertyChangeto thePropertyChangeSupport, the member of this class, which reports a bound property update to any registered listeners.static voidgenerateDefaultDescriptionID(Style style)Generate default description id.voidgenerateID()java.lang.StringgetClassType()Returns property class type.private static java.lang.StringgetCompareKey(PropertyManager propertyManager)java.lang.StringgetID()PropertyManagergetManager(java.lang.String name)Returns property manager with given name.intgetManagerCount()Returns managers count.java.util.Collection<PropertyManager>getManagers()Returns a collection of all managers.java.util.Collection<PropertyManager>getManagers(java.lang.String name)Returns property managers with given name.java.util.List<PropertyManager>getManagersFromParent(PropertyManager root)private java.util.HashMap<java.lang.String,PropertyManager>getManagersMap()java.lang.StringgetName()Returns the name of the style.java.util.List<PropertyManager>getOrderedManagers()Returns collection of managers sorted by name.booleanhasStereotype(java.lang.String id)Check if style has stereotype with given id.booleanisDefault()Is this style a default one?booleanisDiagramStyle()booleanisEqual(Style style)Checks if given style has same property managers with same values.private static booleanisIDEqual(PropertyManager manager1, PropertyManager manager2)booleanisSnapshotStyleForDiagramSymbols()private java.util.Map<PropertyManager,PropertyManager>proceedLevel(Style s, PropertyManager parent1, PropertyManager parent2, boolean apply)voidpropertyChange(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.voidpropertyManagerNameChanged(PropertyManager manager)Called when property manager name is changedprivate voidrebuildByName()voidremoveManager(PropertyManager manager)Removes given property manager.private voidremoveManagerByNameCache(PropertyManager manager)voidremovePropertyChangeListener(java.beans.PropertyChangeListener listener)Unregisters the given listener from the element.private voidresetKnownStereotypes()voidsetAppliedPropertyManagerIDs(java.util.Map<PropertyManager,PropertyManager> propertyManagers)Sets applied property manager id to managers which does not have it.voidsetDefault(boolean def)Sets default flag value.voidsetID(java.lang.String id)Set IdvoidsetManagers(java.util.Collection<PropertyManager> managers)Sets the collection of all managers.voidsetName(java.lang.String name)Set the name of the style.java.lang.StringtoString()Returns a string representation of the style.voidupdateDefinedIn(Style src)Update allExtendablePropertyManagerin this style defined in. 
 - 
 
- 
- 
Field Detail
- 
SHARED
public static final java.lang.String SHARED
- See Also:
 - Constant Field Values
 
 
- 
MERGED
public static final java.lang.String MERGED
- See Also:
 - Constant Field Values
 
 
- 
MERGED_PRE1704
public static final java.lang.String MERGED_PRE1704
- See Also:
 - Constant Field Values
 
 
- 
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
 
 
- 
managers
private Style.CollectionWithModificationTracking<PropertyManager> managers
Collection of property managers registered by name. Order of managers is not important. 
- 
byName
@CheckForNull private java.util.Map<java.lang.String,java.lang.Object> byName
 
- 
name
private java.lang.String name
The name of the style. 
- 
isDefault
private boolean isDefault
Style is default one? 
- 
listeners
@CheckForNull private com.nomagic.utils.AList<java.beans.PropertyChangeListener> listeners
The element can registry a property change listeners and fire property change events on some property value change. This member keeps a reference to thePropertyChangeSupport. 
- 
id
private java.lang.String id
ID of style, used to restore references from not loaded diagrams. 
- 
MANAGER_BY_NAME_COMPARATOR
private static final java.util.Comparator<PropertyManager> MANAGER_BY_NAME_COMPARATOR
The comparator for comparing twoPropertyManagersby name. 
- 
knownStereotypes
@CheckForNull private java.util.Set<java.lang.String> knownStereotypes
 
 - 
 
- 
Method Detail
- 
getCompareKey
private static java.lang.String getCompareKey(PropertyManager propertyManager)
 
- 
createManagersList
private void createManagersList()
 
- 
addManager
public void addManager(@CheckForNull PropertyManager manager)Adds given property manager.- Parameters:
 manager- the manager to add.
 
- 
resetKnownStereotypes
private void resetKnownStereotypes()
 
- 
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:
 toStringin classjava.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:
 clonein classjava.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.
 
 
- 
getManagers
@CheckForNull public java.util.Collection<PropertyManager> getManagers(java.lang.String name)
Returns property managers with given name.- Parameters:
 name- the name of manager.- Returns:
 - managers with given name or null.
 
 
- 
rebuildByName
private void rebuildByName()
 
- 
appendManagerByNameCache
private void appendManagerByNameCache(PropertyManager manager)
 
- 
removeManagerByNameCache
private void removeManagerByNameCache(PropertyManager manager)
 
- 
accept
public void accept(PropertyVisitor visitor) throws java.lang.Exception
Accepts the given visitor.- Specified by:
 acceptin interfacePropertyVisitorAcceptor- Parameters:
 visitor- the PropertyVisitor.- Throws:
 java.lang.Exception
 
- 
getClassType
public java.lang.String getClassType()
Returns property class type.- Specified by:
 getClassTypein interfacePropertyVisitorAcceptor- Returns:
 - PropertyID.SIMPLE_STYLE
 - See Also:
 PropertyID.SIMPLE_STYLE
 
- 
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)
 
- 
proceedLevel
private java.util.Map<PropertyManager,PropertyManager> proceedLevel(Style s, @CheckForNull PropertyManager parent1, @CheckForNull PropertyManager parent2, boolean apply)
 
- 
isDiagramStyle
public boolean isDiagramStyle()
- Returns:
 - if it is diagram style
 
 
- 
changeProperty
private void changeProperty(Property p)
Replaces existing property in all managers with the given one.- Parameters:
 p- the given property.
 
- 
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:
 propertyChangein interfacejava.beans.PropertyChangeListener- Parameters:
 evt- PropertyChangeEvent.
 
- 
getManagersFromParent
public java.util.List<PropertyManager> getManagersFromParent(@CheckForNull PropertyManager root)
 
- 
isIDEqual
private static boolean isIDEqual(@CheckForNull PropertyManager manager1, @CheckForNull PropertyManager manager2) 
- 
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, java.util.Collection<PropertyManager> path)
 
- 
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- thePropertyChangeListenerto 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
 
- 
firePropertyChange
private void firePropertyChange(java.lang.String propertyName, @CheckForNull java.lang.Object oldValue, java.lang.Object newValue)DelegatesfirePropertyChangeto thePropertyChangeSupport, the member of this class, which reports a bound property update to any registered listeners. No event is fired if old and new values are equal or null.- Parameters:
 propertyName- the programmatic name of the property that was changed.oldValue- the old value of the propertynewValue- the new value of the property- 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 allExtendablePropertyManagerin this style defined in.- Parameters:
 src- source to get defined in values
 
- 
getManagersMap
private java.util.HashMap<java.lang.String,PropertyManager> getManagersMap()
 
- 
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.
 
 
- 
fillStereotypes
private void fillStereotypes()
 
- 
propertyManagerNameChanged
public void propertyManagerNameChanged(PropertyManager manager)
Called when property manager name is changed- Parameters:
 manager- manager which name is changed
 
 - 
 
 -