Draft: hide properties of other array types in Array class
Leave only the corresponding properties by examining the value of `ArrayType`.
This commit is contained in:
@@ -65,6 +65,8 @@ class Array(DraftLink):
|
||||
self.set_polar_properties(obj)
|
||||
self.set_circular_properties(obj)
|
||||
|
||||
# The ArrayType property (general) must be attached
|
||||
# after the other array properties so that onChanged works properly
|
||||
self.set_general_properties(obj)
|
||||
self.set_link_properties(obj)
|
||||
|
||||
@@ -293,7 +295,11 @@ class Array(DraftLink):
|
||||
def onChanged(self, obj, prop):
|
||||
"""Execute when a property is changed."""
|
||||
super(Array, self).onChanged(obj, prop)
|
||||
print(prop, ": ", getattr(obj, prop))
|
||||
# print(prop, ": ", getattr(obj, prop))
|
||||
self.show_and_hide(obj, prop)
|
||||
|
||||
def show_and_hide(self, obj, prop):
|
||||
"""Show and hide the properties depending on the touched property."""
|
||||
if prop == "AxisReference":
|
||||
if obj.AxisReference:
|
||||
obj.setEditorMode("Center", 1)
|
||||
@@ -302,6 +308,40 @@ class Array(DraftLink):
|
||||
obj.setEditorMode("Center", 0)
|
||||
obj.setEditorMode("Axis", 0)
|
||||
|
||||
if prop == "ArrayType":
|
||||
if obj.ArrayType == "ortho":
|
||||
for pr in ("NumberX", "NumberY", "NumberZ",
|
||||
"IntervalX", "IntervalY", "IntervalZ"):
|
||||
obj.setPropertyStatus(pr, "-Hidden")
|
||||
|
||||
for pr in ("Axis", "Center", "NumberPolar", "Angle",
|
||||
"IntervalAxis", "NumberCircles",
|
||||
"RadialDistance", "TangentialDistance",
|
||||
"Symmetry"):
|
||||
obj.setPropertyStatus(pr, "Hidden")
|
||||
|
||||
if obj.ArrayType == "polar":
|
||||
for pr in ("Axis", "Center", "NumberPolar",
|
||||
"Angle", "IntervalAxis"):
|
||||
obj.setPropertyStatus(pr, "-Hidden")
|
||||
|
||||
for pr in ("NumberX", "NumberY", "NumberZ",
|
||||
"IntervalX", "IntervalY", "IntervalZ",
|
||||
"NumberCircles", "RadialDistance",
|
||||
"TangentialDistance", "Symmetry"):
|
||||
obj.setPropertyStatus(pr, "Hidden")
|
||||
|
||||
if obj.ArrayType == "circular":
|
||||
for pr in ("Axis", "Center", "NumberCircles",
|
||||
"RadialDistance", "TangentialDistance",
|
||||
"Symmetry"):
|
||||
obj.setPropertyStatus(pr, "-Hidden")
|
||||
|
||||
for pr in ("NumberX", "NumberY", "NumberZ",
|
||||
"IntervalX", "IntervalY", "IntervalZ",
|
||||
"NumberPolar", "Angle", "IntervalAxis"):
|
||||
obj.setPropertyStatus(pr, "Hidden")
|
||||
|
||||
def execute(self, obj):
|
||||
"""Execture when the object is created or recomputed."""
|
||||
if obj.Base:
|
||||
|
||||
Reference in New Issue
Block a user