Update of /var/cvs/src/org/mmbase/framework
In directory james.mmbase.org:/tmp/cvs-serv14350

Modified Files:
        Block.java Framework.java 
Log Message:
just like   MMB-1581, but on subTypes


See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/framework
See also: http://www.mmbase.org/jira/browse/MMB-1581


Index: Block.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/Block.java,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -b -r1.32 -r1.33
--- Block.java  22 Feb 2008 13:03:29 -0000      1.32
+++ Block.java  23 Feb 2008 16:46:19 -0000      1.33
@@ -21,7 +21,7 @@
  *
  * @author Johannes Verelst
  * @author Michiel Meeuwissen
- * @version $Id: Block.java,v 1.32 2008/02/22 13:03:29 michiel Exp $
+ * @version $Id: Block.java,v 1.33 2008/02/23 16:46:19 michiel Exp $
  * @since MMBase-1.9
  */
 public class Block {
@@ -168,7 +168,7 @@
     /**
      * Every block can be assigned a hierarchal 'Type', which can classify it.
      */
-    public static class Type {
+    public static class Type implements Comparable<Type> {
         public static final Type ROOT = new Type("ROOT");
         /**
          * All unclassified blocks are of this type
@@ -196,6 +196,7 @@
                     } else {
                         proposal = t.subs.get(i);
                     }
+                    Collections.sort(t.subs);
                     t = proposal;
                 }
                 r.add(t);
@@ -205,6 +206,7 @@
 
         private final String name;
         private final Type parent;
+        private int weight = 100;
         final List<Type>  subs   = new ArrayList<Type>();
         final List<Block> blocks = new ArrayList<Block>();
         private Type(String n) {
@@ -228,6 +230,16 @@
             return name;
         }
 
+        public void setWeight(int w) {
+            weight = w;
+            if (parent != null) {
+                Collections.sort(parent.subs);
+            }
+        }
+        public int getWeight() {
+            return weight;
+        }
+
         /**
          * @todo
          */
@@ -252,6 +264,11 @@
         public String toString() {
             return name + subs.toString();
         }
+
+        public int compareTo(Type t) {
+            int s = weight - t.weight;
+            return s == 0 ? name.compareTo(t.name) : s;
+        }
     }
 
 


Index: Framework.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/Framework.java,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -b -r1.45 -r1.46
--- Framework.java      22 Feb 2008 14:05:57 -0000      1.45
+++ Framework.java      23 Feb 2008 16:46:20 -0000      1.46
@@ -27,7 +27,7 @@
  *
  * @author Johannes Verelst
  * @author Pierre van Rooden
- * @version $Id: Framework.java,v 1.45 2008/02/22 14:05:57 michiel Exp $
+ * @version $Id: Framework.java,v 1.46 2008/02/23 16:46:20 michiel Exp $
  * @since MMBase-1.9
  */
 public abstract class Framework {
@@ -68,6 +68,15 @@
                                     framework = (Framework) 
Instantiator.getInstance(el);
                                 }
                             }
+                            org.w3c.dom.NodeList blockTypes = 
fwConfiguration.getDocumentElement().getElementsByTagName("blockType");
+                            for (int i = 0; i < blockTypes.getLength(); i++) {
+                                org.w3c.dom.Element element = 
(org.w3c.dom.Element) blockTypes.item(i);
+                                String classification = 
element.getAttribute("name");
+                                int weight = 
Integer.parseInt(element.getAttribute("weight"));
+                                for (Block.Type t : 
Block.Type.getClassification(classification, true)) {
+                                    t.setWeight(weight);
+                                }
+                            }
                         } catch (Exception e) {
                             log.error(e.getMessage(), e);
                             framework = new 
org.mmbase.framework.basic.BasicFramework();
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to