~vcs-imports/monouml/trunk

« back to all changes in this revision

Viewing changes to src/Widgets/Tabs/UMLProperties/OwnedAttributesViewer.cs

  • Committer: rodolfocampero
  • Date: 2007-07-25 15:20:48 UTC
  • Revision ID: vcs-imports@canonical.com-20070725152048-03z7yvqy4o5o9ata
Refactored UMLPropertiesTab in order to simplify adding new widgets. Now adding new widgets is less error prone.

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
 
27
27
namespace MonoUML.Widgets.Tabs.UMLProperties
28
28
{
29
 
        public class OwnedAttributesViewer : MultipleObjectViewer
 
29
        public class OwnedAttributesViewer : MultipleObjectViewer, IPropertyViewer
30
30
        {
31
 
                public OwnedAttributesViewer (IBroadcaster hub)
32
 
                        : this (hub, GettextCatalog.GetString ("Owned attributes:"))
 
31
                public enum Mode
33
32
                {
 
33
                        Classifier,
 
34
                        Association
34
35
                }
35
36
 
36
 
                public OwnedAttributesViewer (IBroadcaster hub, string label)
37
 
                        : base (hub, label, Gdk.Screen.Default.Height / 5)
 
37
                public OwnedAttributesViewer (IBroadcaster hub, Mode mode)
 
38
                        : base (hub, 
 
39
                                mode==Mode.Classifier 
 
40
                                        ? GettextCatalog.GetString ("Owned attributes:")
 
41
                                        : GettextCatalog.GetString ("Owned ends:"),
 
42
                                Gdk.Screen.Default.Height / 5)
38
43
                {
 
44
                        _mode = mode;
39
45
                }
40
46
 
41
47
                protected override void Add()
85
91
                        base.Hide();
86
92
                }
87
93
                
88
 
                public void ShowOwnedAttributesFor(UML.Classifier element)
 
94
                public void ShowPropertyFor(UML.Element element)
89
95
                {
90
 
                        _owner = element;
 
96
                        _owner = element as UML.Classifier;
 
97
                        bool isAssoc = element is UML.Association;
 
98
                        bool visible = _owner != null && 
 
99
                                (  (_mode == Mode.Association && isAssoc)
 
100
                                || (_mode == Mode.Classifier && !isAssoc) );
 
101
                        Visible = visible;
 
102
                        if(!visible)
 
103
                        {
 
104
                                _owner = null;
 
105
                                return;
 
106
                        }
91
107
                        // sets a global reference to the collection
92
108
                        UML.Association ownerAssociation;
93
109
                        UML.Class ownerClass;
112
128
                        base.ShowList(propertyList);
113
129
                }
114
130
                
 
131
                private Mode _mode;
115
132
                private IList _ownedAttributes;
116
133
                private UML.Classifier _owner;
117
134
        }