Improve UI handling of catalog item parameters.

Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/f16cbe0b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/f16cbe0b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/f16cbe0b

Branch: refs/heads/master
Commit: f16cbe0b779af13e7522fdfcb1b2a05b53aee0ca
Parents: 5a69cd6
Author: Svetoslav Neykov <[email protected]>
Authored: Wed Nov 4 13:48:47 2015 +0200
Committer: Svetoslav Neykov <[email protected]>
Committed: Thu Nov 5 15:23:39 2015 +0200

----------------------------------------------------------------------
 .../brooklyn/core/objs/BasicSpecParameter.java  |  6 ++---
 .../objs/BasicSpecParameterFromClassTest.java   | 27 ++++++++++++++++----
 .../assets/js/view/application-add-wizard.js    | 14 ++++++----
 .../app-add-wizard/required-config-entry.html   |  2 +-
 .../rest/transform/CatalogTransformer.java      |  7 ++---
 5 files changed, 39 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f16cbe0b/core/src/main/java/org/apache/brooklyn/core/objs/BasicSpecParameter.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/objs/BasicSpecParameter.java 
b/core/src/main/java/org/apache/brooklyn/core/objs/BasicSpecParameter.java
index 5707b8f..e882d79 100644
--- a/core/src/main/java/org/apache/brooklyn/core/objs/BasicSpecParameter.java
+++ b/core/src/main/java/org/apache/brooklyn/core/objs/BasicSpecParameter.java
@@ -264,14 +264,14 @@ public class BasicSpecParameter<T> implements 
SpecParameter<T>{
         private static final class WeightedParameterComparator implements 
Comparator<WeightedParameter> {
             @Override
             public int compare(WeightedParameter o1, WeightedParameter o2) {
-                if (o1.getWeight() == o2.getWeight()) {
-                    return 0;
+                if (o1.getWeight() == null && o2.getWeight() == null) {
+                    return 
o1.getInput().getLabel().compareTo(o2.getInput().getLabel());
                 } else if (o1.getWeight() == null) {
                     return 1;
                 } else if (o2.getWeight() == null) {
                     return -1;
                 } else {
-                    return Double.compare(o1.getWeight(),  o2.getWeight());
+                    return -Double.compare(o1.getWeight(),  o2.getWeight());
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f16cbe0b/core/src/test/java/org/apache/brooklyn/core/objs/BasicSpecParameterFromClassTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/brooklyn/core/objs/BasicSpecParameterFromClassTest.java
 
b/core/src/test/java/org/apache/brooklyn/core/objs/BasicSpecParameterFromClassTest.java
index b0f71a0..49cb2d6 100644
--- 
a/core/src/test/java/org/apache/brooklyn/core/objs/BasicSpecParameterFromClassTest.java
+++ 
b/core/src/test/java/org/apache/brooklyn/core/objs/BasicSpecParameterFromClassTest.java
@@ -56,7 +56,16 @@ public class BasicSpecParameterFromClassTest {
         @CatalogConfig(label="Predicate Key", priority=1)
         ConfigKey<Predicate<String>> PREDICATE_KEY = 
ConfigKeys.newConfigKey(new TypeToken<Predicate<String>>() {}, "predicate_key");
 
-        ConfigKey<String> UNPINNNED_KEY = 
ConfigKeys.newStringConfigKey("unpinned_key");
+        @SuppressWarnings("serial")
+        @CatalogConfig(label="Hidden 1 Key", priority=-1)
+        ConfigKey<Predicate<String>> HIDDEN1_KEY = ConfigKeys.newConfigKey(new 
TypeToken<Predicate<String>>() {}, "hidden1_key");
+
+        @SuppressWarnings("serial")
+        @CatalogConfig(label="Hidden 2 Key", priority=-2)
+        ConfigKey<Predicate<String>> HIDDEN2_KEY = ConfigKeys.newConfigKey(new 
TypeToken<Predicate<String>>() {}, "hidden2_key");
+
+        ConfigKey<String> UNPINNNED2_KEY = 
ConfigKeys.newStringConfigKey("unpinned2_key");
+        ConfigKey<String> UNPINNNED1_KEY = 
ConfigKeys.newStringConfigKey("unpinned1_key");
     }
 
     @ImplementedBy(ConfigInImplParameterTestEntityImpl.class)
@@ -68,11 +77,19 @@ public class BasicSpecParameterFromClassTest {
     @Test
     public void testFullDefinition() {
         List<SpecParameter<?>> inputs = BasicSpecParameter.fromClass(mgmt, 
SpecParameterTestEntity.class);
-        assertEquals(inputs.size(), 4);
-        assertInput(inputs.get(0), "Predicate Key", true, 
SpecParameterTestEntity.PREDICATE_KEY);
+        assertEquals(inputs.size(), 7);
+        assertInput(inputs.get(0), "String Key", true, 
SpecParameterTestEntity.STRING_KEY);
         assertInput(inputs.get(1), "Integer Key", true, 
SpecParameterTestEntity.INTEGER_KEY);
-        assertInput(inputs.get(2), "String Key", true, 
SpecParameterTestEntity.STRING_KEY);
-        assertInput(inputs.get(3), "unpinned_key", false, 
SpecParameterTestEntity.UNPINNNED_KEY);
+        assertInput(inputs.get(2), "Predicate Key", true, 
SpecParameterTestEntity.PREDICATE_KEY);
+        assertInput(inputs.get(3), "Hidden 1 Key", true, 
SpecParameterTestEntity.HIDDEN1_KEY);
+        assertInput(inputs.get(4), "Hidden 2 Key", true, 
SpecParameterTestEntity.HIDDEN2_KEY);
+        assertInput(inputs.get(5), "unpinned1_key", false, 
SpecParameterTestEntity.UNPINNNED1_KEY);
+        assertInput(inputs.get(6), "unpinned2_key", false, 
SpecParameterTestEntity.UNPINNNED2_KEY);
+    }
+    
+    @Test
+    public void testDebug() throws ClassNotFoundException {
+        System.out.println(BasicSpecParameter.fromClass(mgmt,  
Class.forName("org.apache.brooklyn.entity.stock.BasicApplication")));
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f16cbe0b/usage/jsgui/src/main/webapp/assets/js/view/application-add-wizard.js
----------------------------------------------------------------------
diff --git 
a/usage/jsgui/src/main/webapp/assets/js/view/application-add-wizard.js 
b/usage/jsgui/src/main/webapp/assets/js/view/application-add-wizard.js
index 850ccf0..77710c2 100644
--- a/usage/jsgui/src/main/webapp/assets/js/view/application-add-wizard.js
+++ b/usage/jsgui/src/main/webapp/assets/js/view/application-add-wizard.js
@@ -517,7 +517,10 @@ define([
         getConfigMap:function (root) {
             var map = {}
             $('.app-add-wizard-config-entry',root).each( function (index,elt) {
-                map[$('#key',elt).val()] = 
getConvertedConfigValue($('#value',elt).val())
+                var value = getConvertedConfigValue($('#value',elt).val());
+                if (value !== null) {
+                    map[$('#key',elt).val()] = value;
+                }
             })
             return map;
         },
@@ -776,7 +779,6 @@ define([
                         // (others might be included in future with an 
"expand" option, or priority option)
                     })
                 }
-                configs = configs.sort( function(a,b) { return b.priority - 
a.priority } )
                 for (var c in configs) {
                     that.$('.config-table').append(configs[c].html)
                 }
@@ -786,9 +788,11 @@ define([
         getConfigMap:function() {
             var map = {};
             $('.app-add-wizard-config-entry').each( function (index,elt) {
-                map[$('#key',elt).val()] = 
-                    $('#checkboxValue',elt).length ? 
$('#checkboxValue',elt).is(':checked') :
-                    getConvertedConfigValue($('#value',elt).val())
+                var value = $('#checkboxValue',elt).length ? 
$('#checkboxValue',elt).is(':checked') :
+                    getConvertedConfigValue($('#value',elt).val());
+                if (value !== null) {
+                    map[$('#key',elt).val()] = value;
+                }
             })
             return map;
         },

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f16cbe0b/usage/jsgui/src/main/webapp/assets/tpl/app-add-wizard/required-config-entry.html
----------------------------------------------------------------------
diff --git 
a/usage/jsgui/src/main/webapp/assets/tpl/app-add-wizard/required-config-entry.html
 
b/usage/jsgui/src/main/webapp/assets/tpl/app-add-wizard/required-config-entry.html
index b802624..45c8770 100644
--- 
a/usage/jsgui/src/main/webapp/assets/tpl/app-add-wizard/required-config-entry.html
+++ 
b/usage/jsgui/src/main/webapp/assets/tpl/app-add-wizard/required-config-entry.html
@@ -39,7 +39,7 @@ under the License.
       </select>
     <% } else { %>
      <input id="value" type="text" class="input-medium" name="value" value="<% 
-        if (typeof data.defaultValue !== "undefined") { %><%= 
data.defaultValue %><% } 
+        if (typeof data.defaultValue !== "undefined") { %><%- 
data.defaultValue %><% } 
         %>" style="width: 250px">
     <% } %>
     </td>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f16cbe0b/usage/rest-server/src/main/java/org/apache/brooklyn/rest/transform/CatalogTransformer.java
----------------------------------------------------------------------
diff --git 
a/usage/rest-server/src/main/java/org/apache/brooklyn/rest/transform/CatalogTransformer.java
 
b/usage/rest-server/src/main/java/org/apache/brooklyn/rest/transform/CatalogTransformer.java
index 4d72cf8..58bc473 100644
--- 
a/usage/rest-server/src/main/java/org/apache/brooklyn/rest/transform/CatalogTransformer.java
+++ 
b/usage/rest-server/src/main/java/org/apache/brooklyn/rest/transform/CatalogTransformer.java
@@ -59,18 +59,19 @@ public class CatalogTransformer {
     private static final org.slf4j.Logger log = 
LoggerFactory.getLogger(CatalogTransformer.class);
     
     public static <T extends Entity> CatalogEntitySummary 
catalogEntitySummary(BrooklynRestResourceUtils b, CatalogItem<T,EntitySpec<? 
extends T>> item) {
-        Set<EntityConfigSummary> config = 
Sets.newTreeSet(SummaryComparators.nameComparator());
+        Set<EntityConfigSummary> config = Sets.newLinkedHashSet();
         Set<SensorSummary> sensors = 
Sets.newTreeSet(SummaryComparators.nameComparator());
         Set<EffectorSummary> effectors = 
Sets.newTreeSet(SummaryComparators.nameComparator());
 
+        for (SpecParameter<?> input: item.getParameters())
+            config.add(EntityTransformer.entityConfigSummary(input));
+
         try {
             @SuppressWarnings({ "unchecked", "rawtypes" })
             EntitySpec<?> spec = (EntitySpec<?>) 
b.getCatalog().createSpec((CatalogItem) item);
             EntityDynamicType typeMap = 
BrooklynTypes.getDefinedEntityType(spec.getType());
             EntityType type = typeMap.getSnapshot();
 
-            for (SpecParameter<?> input: item.getParameters())
-                config.add(EntityTransformer.entityConfigSummary(input));
             for (Sensor<?> x: type.getSensors())
                 sensors.add(SensorTransformer.sensorSummaryForCatalog(x));
             for (Effector<?> x: type.getEffectors())

Reply via email to