Added support for overriding elements added in BasePage

Signed-off-by: Lukasz Dywicki <luke@code-house.org>

git-svn-id: https://svn.apache.org/repos/asf/karaf/webconsole/trunk@1225156 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java b/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java
index db7883a..077eb0f 100644
--- a/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java
+++ b/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java
@@ -64,4 +64,11 @@
             add(behavior);
         }
     }
+
+    @Override
+    protected void onBeforeRender() {
+        super.onBeforeRender();
+
+        brandProvider.modify(this);
+    }
 }
diff --git a/core/src/main/java/org/apache/karaf/webconsole/core/brand/BrandProvider.java b/core/src/main/java/org/apache/karaf/webconsole/core/brand/BrandProvider.java
index 0b8b7e9..530f060 100644
--- a/core/src/main/java/org/apache/karaf/webconsole/core/brand/BrandProvider.java
+++ b/core/src/main/java/org/apache/karaf/webconsole/core/brand/BrandProvider.java
@@ -18,6 +18,7 @@
 
 import java.util.List;
 
+import org.apache.wicket.Page;
 import org.apache.wicket.behavior.IBehavior;
 import org.apache.wicket.markup.html.image.Image;
 
@@ -27,4 +28,5 @@
 
     List<IBehavior> getBehaviors();
 
+    void modify(Page page);
 }
diff --git a/core/src/main/java/org/apache/karaf/webconsole/core/brand/DefaultBrandProvider.java b/core/src/main/java/org/apache/karaf/webconsole/core/brand/DefaultBrandProvider.java
index 3243e52..7735132 100644
--- a/core/src/main/java/org/apache/karaf/webconsole/core/brand/DefaultBrandProvider.java
+++ b/core/src/main/java/org/apache/karaf/webconsole/core/brand/DefaultBrandProvider.java
@@ -21,6 +21,7 @@
 import java.util.List;
 
 import org.apache.karaf.webconsole.core.BasePage;
+import org.apache.wicket.Page;
 import org.apache.wicket.ResourceReference;
 import org.apache.wicket.behavior.IBehavior;
 import org.apache.wicket.behavior.SimpleAttributeModifier;
@@ -41,4 +42,8 @@
         return Collections.emptyList();
     }
 
+    public void modify(Page page) {
+        // we don't modify page by default
+    }
+
 }
diff --git a/core/src/main/java/org/apache/karaf/webconsole/core/table/SortablePropertyColumnExt.java b/core/src/main/java/org/apache/karaf/webconsole/core/table/SortablePropertyColumnExt.java
new file mode 100644
index 0000000..19160bc
--- /dev/null
+++ b/core/src/main/java/org/apache/karaf/webconsole/core/table/SortablePropertyColumnExt.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.webconsole.core.table;
+
+import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
+import org.apache.wicket.model.Model;
+
+public class SortablePropertyColumnExt<T> extends PropertyColumn<T> {
+
+    public SortablePropertyColumnExt(String label, String property) {
+        super(Model.of(label), property, property);
+    }
+
+    public SortablePropertyColumnExt(String property) {
+        this(property, property);
+    }
+
+}
diff --git a/core/src/test/java/org/apache/karaf/webconsole/core/BasePageTest.java b/core/src/test/java/org/apache/karaf/webconsole/core/BasePageTest.java
index 4ce6a84..41273e7 100644
--- a/core/src/test/java/org/apache/karaf/webconsole/core/BasePageTest.java
+++ b/core/src/test/java/org/apache/karaf/webconsole/core/BasePageTest.java
@@ -29,6 +29,7 @@
 
 import org.apache.karaf.webconsole.core.brand.BrandProvider;
 import org.apache.karaf.webconsole.core.brand.DefaultBrandProvider;
+import org.apache.wicket.Page;
 import org.apache.wicket.behavior.IBehavior;
 import org.apache.wicket.markup.html.image.Image;
 import org.apache.wicket.util.tester.WicketTester;
@@ -55,6 +56,7 @@
             }
         });
         expect(brandProvider.getBehaviors()).andReturn(Collections.<IBehavior>emptyList());
+        brandProvider.modify(anyObject(Page.class));
 
         replay(brandProvider);