]> O.S.I.I.S - jp/crow.git/commitdiff
update and test Popper and Expandable templates with dynamic binding
authorjpbruyere <jp.bruyere@hotmail.com>
Mon, 14 Sep 2015 14:48:48 +0000 (16:48 +0200)
committerjpbruyere <jp.bruyere@hotmail.com>
Mon, 14 Sep 2015 14:48:48 +0000 (16:48 +0200)
instead of onLoadTemplate hook

Templates/Expandable.goml
Templates/Popper.goml
Tests/GOLIBTests.cs
Tests/Interfaces/testExpandable.goml
Tests/Interfaces/testPopper.goml [new file with mode: 0755]
Tests/Tests.csproj
src/GraphicObjects/Expandable.cs
src/GraphicObjects/Popper.cs

index f2c2d098c9398d5ab83b78b65f9add401a537c3f..877fcdff83548284f6377f04a0b1c715019c862b 100755 (executable)
@@ -1,9 +1,9 @@
 <?xml version="1.0"?>\r
 <Border BorderWidth="1" BorderColor="LightGray"  Height="-1" Width="0" MouseClick="onMouseClick">\r
-       <VerticalStack MouseClick="onMouseClick" Height="-1" Width="0" Name="vsTemplateExpander">\r
-               <HorizontalStack Name="hsTemplateExpander" Spacing="1" Focusable="false" Height="-1" Width="0">\r
-                       <Image Name="Image" Margin="3" Width="16" Height="16" Path="#go.Images.Icons.expandable.svg"/>\r
-                       <Label Name="Caption"/>\r
+       <VerticalStack Height="-1" Width="0" Name="vsTemplateExpander">\r
+               <HorizontalStack Spacing="1" Focusable="false" Height="-1" Width="0">\r
+                       <Image Margin="2" Width="12" Height="12" Path="{Image}" SvgSub="{SvgSub}"/>\r
+                       <Label Text="{Title}" Width="0"/>\r
                </HorizontalStack>\r
                <Container Name="Content" Visible="false"/>\r
        </VerticalStack>\r
index 638c73c335abe0dcb5feff4effb5d98e312ff5c0..27dd8c8d39a1d48b5b8293fde56d78263dbb71a1 100755 (executable)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>\r
 <Border BorderWidth="1" BorderColor="LightGray" Height="-1" MouseClick="onMouseClick">\r
-       <HorizontalStack Name="hsTemplateExpander" Spacing="1" Focusable="false" Height="-1" Width="0">\r
-               <Image Name="Image" Margin="3" Width="16" Height="16" Path="#go.Images.Icons.expandable.svg"/>\r
-               <Label Name="Caption"/>\r
+       <HorizontalStack Spacing="1" Focusable="false" Height="-1" Width="0">\r
+               <Image Margin="2" Width="12" Height="12" Path="{Image}" SvgSub="{SvgSub}"/>\r
+               <Label Text="{Title}" Width="0"/>\r
        </HorizontalStack>\r
 </Border>
\ No newline at end of file
index d11ab959e2c60566ac613ae330a5de9dbd2e28da..6dd1909b0b546806ba04f40110464baac355f1ea 100644 (file)
@@ -31,6 +31,8 @@ namespace test
                int frameCpt = 0;\r
                int idx = 0;\r
                string[] testFiles = {\r
+                       "testPopper.goml",\r
+                       "testExpandable.goml",\r
                        "test6.goml",\r
                        "testHStack.goml",\r
                        "testMsgBox.goml",\r
@@ -45,7 +47,6 @@ namespace test
                        "test_stack.goml",\r
                        "testScrollbar.goml",\r
                        "testSpinner.goml",\r
-                       "testExpandable.goml",\r
                        "testWindow.goml",\r
                        "fps.goml",\r
                        "testMeter.goml",\r
index 0caf0a32ce6b28a4cae8b090ea4aee07d9532269..712a485f7fe8feb37d476b6e150ce91beacd5317 100755 (executable)
@@ -1,13 +1,9 @@
 <?xml version="1.0"?>\r
-<Container Name="TopContainer" Width="400" Height="400"\r
-       Margin="20" Focusable="True" Background="Gray">\r
-\r
-       <Expandable Width="150" Height="-1" Margin="2" VerticalAlignment="Top">\r
-                       <VerticalStack Width="100" Height="-1">\r
-                               <Checkbox Name="chk1"/>\r
-                               <Checkbox Name="chk2" IsChecked="true"/>\r
-                               <Checkbox Name="chk3"/>\r
-                               <Checkbox Name="chk4"/>\r
-                       </VerticalStack>                \r
-       </Expandable>\r
-</Container>
\ No newline at end of file
+<Expandable Title="Test expandable" Width="150" Background="DimGray">\r
+               <VerticalStack Width="100" Height="-1">\r
+                       <Checkbox Name="chk1"/>\r
+                       <Checkbox Name="chk2" IsChecked="true"/>\r
+                       <Checkbox Name="chk3"/>\r
+                       <Checkbox Name="chk4"/>\r
+               </VerticalStack>                \r
+</Expandable>\r
diff --git a/Tests/Interfaces/testPopper.goml b/Tests/Interfaces/testPopper.goml
new file mode 100755 (executable)
index 0000000..8f66d75
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>\r
+<Popper Title="TestPopper" Width="100" Background="DimGray">\r
+       <Border Fit="True" Background="ArmyGreen">\r
+               <Image Fit="true" Path="#go.Images.Icons.tetra.png" Margin="10"/>\r
+       </Border>\r
+</Popper>\r
index c72a81351f1919eb4108b4c78e386628199f5a58..b8a6acc719597361293e6a1ec6b01519b107d33d 100644 (file)
     <None Include="Interfaces\test6.goml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
+    <None Include="Interfaces\testPopper.goml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
   </ItemGroup>
   <ItemGroup>
     <Folder Include="Interfaces\" />
index 770548974fc809f5bd3b910b7ff2578cdefd1f18..c8490cbac7c38d78a476b0cc86968deaeae753ec 100644 (file)
@@ -22,8 +22,8 @@ namespace go
     public class Expandable : TemplatedContainer\r
     {          \r
                bool _isExpanded;\r
-               Label _caption;\r
-               Image _image;\r
+               string title;\r
+               string image;\r
                Container _contentContainer;\r
 \r
                public event EventHandler Expand;\r
@@ -47,33 +47,44 @@ namespace go
                        base.loadTemplate (template);\r
 \r
                        _contentContainer = this.child.FindByName ("Content") as Container;\r
-                       _caption = this.child.FindByName ("Caption") as Label;\r
-                       _image = this.child.FindByName ("Image") as Image;\r
-\r
-                       if (_image == null)\r
-                               return;\r
-                       _image.SvgSub = "collapsed";\r
-\r
-//                     this.Expand += (object sender, EventArgs e) => {};\r
-//                     this.Collapse += (object sender, EventArgs e) => {};\r
-\r
                }\r
+\r
                [XmlAttributeAttribute()][DefaultValue(true)]//overiden to get default to true\r
                public override bool Focusable\r
                {\r
                        get { return base.Focusable; }\r
                        set { base.Focusable = value; }\r
                }\r
+               [XmlAttributeAttribute()][DefaultValue(-1)]\r
+               public override int Height {\r
+                       get { return base.Height; }\r
+                       set { base.Height = value; }\r
+               }\r
 \r
                [XmlAttributeAttribute()][DefaultValue("Expandable")]\r
                public string Title {\r
-                       get { return _caption.Text; } \r
+                       get { return title; } \r
                        set {\r
-                               if (_caption == null)\r
+                               if (title == value)\r
                                        return;\r
-                               _caption.Text = value; \r
+                               title = value; \r
+                               NotifyValueChanged ("Title", title);\r
                        }\r
                }        \r
+               [XmlAttributeAttribute()][DefaultValue("#go.Images.Icons.expandable.svg")]\r
+               public string Image {\r
+                       get { return image; } \r
+                       set {\r
+                               if (image == value)\r
+                                       return;\r
+                               image = value; \r
+                               NotifyValueChanged ("Image", image);\r
+                       }\r
+               } \r
+               [XmlAttributeAttribute()][DefaultValue("collapsed")]\r
+               public string SvgSub {\r
+                       get { return IsExpanded ? "expanded" : "collapsed"; } \r
+               }      \r
       \r
                [XmlAttributeAttribute()][DefaultValue(false)]\r
         public bool IsExpanded\r
@@ -85,6 +96,7 @@ namespace go
                     return;\r
 \r
                                _isExpanded = value;\r
+                               NotifyValueChanged ("SvgSub", SvgSub);\r
 \r
                                if (_isExpanded)\r
                                        onExpand (this, null);\r
@@ -98,13 +110,11 @@ namespace go
                public virtual void onExpand(object sender, EventArgs e)\r
                {\r
                        _contentContainer.Visible = true;\r
-                       _image.SvgSub = "expanded";\r
                        Expand.Raise (this, e);\r
                }\r
                public virtual void onCollapse(object sender, EventArgs e)\r
                {\r
                        _contentContainer.Visible = false;\r
-                       _image.SvgSub = "collapsed";\r
                        Collapse.Raise (this, e);\r
                }\r
                        \r
index f03a166aacdfa3b1abb3cbb3c66e0b8c73b52672..419902471dca2d45b3181fd95db54dfe19526fea 100644 (file)
@@ -22,8 +22,8 @@ namespace go
     public class Popper : TemplatedContainer\r
     {          \r
                bool _isPopped;\r
-               Label _caption;\r
-               Image _image;\r
+               string title;\r
+               string image;\r
                GraphicObject _content;\r
 \r
                public event EventHandler Pop;\r
@@ -36,39 +36,44 @@ namespace go
                public Popper() : base()\r
                {\r
                }       \r
-\r
-               protected override void loadTemplate(GraphicObject template = null)\r
-               {\r
-                       base.loadTemplate (template);\r
-\r
-                       _caption = this.child.FindByName ("Caption") as Label;\r
-                       _image = this.child.FindByName ("Image") as Image;\r
-\r
-                       if (_image == null)\r
-                               return;\r
-                       _image.SvgSub = "collapsed";\r
-\r
-                       this.Pop += (object sender, EventArgs e) => {_image.SvgSub = "expanded";};\r
-                       this.Unpop += (object sender, EventArgs e) => {_image.SvgSub = "collapsed";};\r
-\r
-               }\r
+                       \r
                [XmlAttributeAttribute()][DefaultValue(true)]//overiden to get default to true\r
                public override bool Focusable\r
                {\r
                        get { return base.Focusable; }\r
                        set { base.Focusable = value; }\r
                }\r
+               [XmlAttributeAttribute()][DefaultValue(-1)]\r
+               public override int Height {\r
+                       get { return base.Height; }\r
+                       set { base.Height = value; }\r
+               }\r
 \r
                [XmlAttributeAttribute()][DefaultValue("Popper")]\r
                public string Title {\r
-                       get { return _caption.Text; } \r
+                       get { return title; } \r
                        set {\r
-                               if (_caption == null)\r
+                               if (title == value)\r
                                        return;\r
-                               _caption.Text = value; \r
+                               title = value; \r
+                               NotifyValueChanged ("Title", title);\r
                        }\r
                }        \r
-      \r
+               [XmlAttributeAttribute()][DefaultValue("#go.Images.Icons.expandable.svg")]\r
+               public string Image {\r
+                       get { return image; } \r
+                       set {\r
+                               if (image == value)\r
+                                       return;\r
+                               image = value; \r
+                               NotifyValueChanged ("Image", image);\r
+                       }\r
+               } \r
+               [XmlAttributeAttribute()][DefaultValue("collapsed")]\r
+               public string SvgSub {\r
+                       get { return IsPopped ? "expanded" : "collapsed"; } \r
+               } \r
+\r
                [XmlAttributeAttribute()][DefaultValue(false)]\r
         public bool IsPopped\r
         {\r
@@ -79,16 +84,17 @@ namespace go
                     return;\r
 \r
                                _isPopped = value;\r
+                               NotifyValueChanged ("SvgSub", SvgSub);\r
 \r
                                if (_isPopped)\r
                                        onPop (this, null);\r
                                else\r
                                        onUnpop (this, null);\r
 \r
-                registerForGraphicUpdate();\r
+                //registerForGraphicUpdate();\r
             }\r
         }\r
-\r
+                       \r
                public virtual void onPop(object sender, EventArgs e)\r
                {\r
                        if (Content != null) {\r