You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ca...@apache.org on 2018/08/27 18:32:22 UTC

[royale-asjs] branch develop updated: fix combo box popup when opening more than one time

This is an automated email from the ASF dual-hosted git repository.

carlosrovira pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/develop by this push:
     new 8ee1af6  fix combo box popup when opening more than one time
     new 60f5a97  Merge branch 'develop' of https://github.com/apache/royale-asjs into develop
8ee1af6 is described below

commit 8ee1af631508a0ad4bf0d399b554a78bdd52a63a
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Mon Aug 27 20:31:53 2018 +0200

    fix combo box popup when opening more than one time
---
 .../projects/Jewel/src/main/resources/defaults.css |  5 +++++
 .../royale/jewel/beads/views/ComboBoxView.as       | 24 ++++++----------------
 .../Jewel/src/main/sass/components/_combobox.sass  |  8 ++++++--
 3 files changed, 17 insertions(+), 20 deletions(-)

diff --git a/frameworks/projects/Jewel/src/main/resources/defaults.css b/frameworks/projects/Jewel/src/main/resources/defaults.css
index b171d22..cb328c3 100644
--- a/frameworks/projects/Jewel/src/main/resources/defaults.css
+++ b/frameworks/projects/Jewel/src/main/resources/defaults.css
@@ -253,6 +253,9 @@ j|ControlBar {
 .jewel.combobox {
   display: inline-flex;
 }
+.jewel.combobox .jewel.textinput {
+  width: 190px;
+}
 .jewel.combobox .jewel.button::before {
   margin: 0;
   padding: 0;
@@ -276,6 +279,8 @@ j|ComboBox {
 
 .jewel.list.combobox {
   position: absolute;
+  width: 190px;
+  height: 200px;
 }
 
 j|ComboBoxList {
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ComboBoxView.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ComboBoxView.as
index d3d36f5..14e8c8c 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ComboBoxView.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ComboBoxView.as
@@ -120,16 +120,9 @@ package org.apache.royale.jewel.beads.views
 			_button = new Button();
 			_button.text = '\u25BC';
 			
-			// if (isNaN(host.width)) input.width = 100;
-			
 			host.addElement(_textinput);
 			host.addElement(_button);
 			
-			var popUpClass:Class = ValuesManager.valuesImpl.getValue(_strand, "iPopUp") as Class;
-			_list = new popUpClass() as List;
-			_list.visible = false;
-            // list.addClass("hidden");
-			
 			var model:IComboBoxModel = _strand.getBeadByType(IComboBoxModel) as IComboBoxModel;
 			model.addEventListener("selectedIndexChanged", handleItemChange);
 			model.addEventListener("selectedItemChanged", handleItemChange);
@@ -162,13 +155,12 @@ package org.apache.royale.jewel.beads.views
 		 */
 		public function set popUpVisible(value:Boolean):void
 		{
-			if (value && !_list.visible) {
+			if (value) {
+				var popUpClass:Class = ValuesManager.valuesImpl.getValue(_strand, "iPopUp") as Class;
+				_list = new popUpClass() as List;
+
 				var model:IComboBoxModel = _strand.getBeadByType(IComboBoxModel) as IComboBoxModel;
 				_list.model = model;
-				// list.width = input.width;
-				// list.height = 200;
-                _list.visible = true;
-                // list.removeClass("hidden");
 				
 				var origin:Point = new Point(0, button.y+button.height);
 				var relocated:Point = PointUtils.localToGlobal(origin,_strand);
@@ -178,10 +170,9 @@ package org.apache.royale.jewel.beads.views
 				var popupHost:IPopUpHost = UIUtils.findPopUpHost(_strand as IUIBase);
 				popupHost.popUpParent.addElement(_list);
 			}
-			else if (_list.visible) {
+			else {
 				UIUtils.removePopUp(_list);
-                _list.visible = false;
-                // list.addClass("hidden");
+				_list = null;
 			}
 		}
 		
@@ -209,9 +200,6 @@ package org.apache.royale.jewel.beads.views
 		{
 			var model:IComboBoxModel = _strand.getBeadByType(IComboBoxModel) as IComboBoxModel;
 			_textinput.text = getLabelFromData(model, model.selectedItem);
-
-			// var host:StyledUIBase = StyledUIBase(_strand);
-			// host.dispatchEvent(new Event("change"));
 		}
 		
 		/**
diff --git a/frameworks/projects/Jewel/src/main/sass/components/_combobox.sass b/frameworks/projects/Jewel/src/main/sass/components/_combobox.sass
index b8919bf..77cafcd 100644
--- a/frameworks/projects/Jewel/src/main/sass/components/_combobox.sass
+++ b/frameworks/projects/Jewel/src/main/sass/components/_combobox.sass
@@ -21,14 +21,15 @@
 
 // ComboBox variables
 $combobox-button-size: 22px
+$combobox-input-width: 190px
 $combobox-button-xoffset: calc(50% - #{$combobox-button-size/2})
 $combobox-button-yoffset: calc(50% - #{$combobox-button-size/2})
 
 .jewel.combobox
     display: inline-flex
 
-    // .jewel.textinput
-    //     input
+    .jewel.textinput
+        width: $combobox-input-width
             
     .jewel.button
         
@@ -57,6 +58,9 @@ j|ComboBox
 
 .jewel.list.combobox
     position: absolute
+    width: $combobox-input-width
+    height: 200px
+    
 
 j|ComboBoxList
     IBeadModel: ClassReference("org.apache.royale.html.beads.models.ArrayListSelectionModel")