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