You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by ld...@apache.org on 2011/08/18 21:40:49 UTC

svn commit: r1159373 - in /karaf/sandbox/pieber/karaf-webconsole/trunk: ./ core/src/main/java/org/apache/karaf/webconsole/core/ core/src/main/java/org/apache/karaf/webconsole/core/brand/ core/src/main/java/org/apache/karaf/webconsole/core/table/ core/s...

Author: ldywicki
Date: Thu Aug 18 19:40:46 2011
New Revision: 1159373

URL: http://svn.apache.org/viewvc?rev=1159373&view=rev
Log:
Merge with trunk.

Added:
    karaf/sandbox/pieber/karaf-webconsole/trunk/.DS_Store
    karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/brand/
    karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/brand/BrandProvider.java
    karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/brand/DefaultBrandProvider.java
    karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/table/
    karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/table/ActionsPanel.java
    karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/resources/org/apache/karaf/webconsole/core/table/
    karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/resources/org/apache/karaf/webconsole/core/table/ActionsPanel.html
    karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/resources/org/apache/karaf/webconsole/core/table/actions.css
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/.DS_Store
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/.DS_Store
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/pom.xml
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/main/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/main/java/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/main/java/org/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/main/java/org/apache/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/main/java/org/apache/karaf/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/main/java/org/apache/karaf/webconsole/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/main/java/org/apache/karaf/webconsole/examples/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/main/java/org/apache/karaf/webconsole/examples/branding/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/main/java/org/apache/karaf/webconsole/examples/branding/ExampleBrandProvider.class
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/main/resources/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/main/resources/OSGI-INF/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/main/resources/OSGI-INF/blueprint/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/main/resources/OSGI-INF/blueprint/branding.xml
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/pom.xml
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/.DS_Store
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/.DS_Store
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/java/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/java/org/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/java/org/apache/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/java/org/apache/karaf/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/java/org/apache/karaf/webconsole/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/java/org/apache/karaf/webconsole/examples/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/java/org/apache/karaf/webconsole/examples/branding/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/java/org/apache/karaf/webconsole/examples/branding/ExampleBrandProvider.java
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/.DS_Store
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/OSGI-INF/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/OSGI-INF/blueprint/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/OSGI-INF/blueprint/branding.xml
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/.DS_Store
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/.DS_Store
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/.DS_Store
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/.DS_Store
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/examples/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/examples/.DS_Store
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/examples/branding/
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/examples/branding/logo.png
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/examples/branding/override.css
    karaf/sandbox/pieber/karaf-webconsole/trunk/examples/pom.xml
    karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/resources/org/apache/karaf/webconsole/karaf/internal/feature/features.css
    karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/configuration/ConfigurationEditPage.java
    karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/configuration/ConfigurationsActionPanel.java
    karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/configuration/DictionaryDataProvider.java
    karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/resources/org/apache/karaf/webconsole/osgi/internal/configuration/ConfigurationEditPage.html
    karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/resources/org/apache/karaf/webconsole/osgi/internal/configuration/configurations.css
Removed:
    karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/ActionsPanel.java
    karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/ComponentType.java
    karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/resources/org/apache/karaf/webconsole/karaf/internal/feature/FeaturesActionsPanel.html
Modified:
    karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java
    karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/resources/OSGI-INF/blueprint/core.xml
    karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/resources/org/apache/karaf/webconsole/core/BasePage.html
    karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/feature/FeaturesActionsPanel.java
    karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/feature/FeaturesPage.java
    karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/pom.xml
    karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/configuration/ConfigurationsPage.java
    karaf/sandbox/pieber/karaf-webconsole/trunk/pom.xml

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/.DS_Store
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/.DS_Store?rev=1159373&view=auto
==============================================================================
Files karaf/sandbox/pieber/karaf-webconsole/trunk/.DS_Store (added) and karaf/sandbox/pieber/karaf-webconsole/trunk/.DS_Store Thu Aug 18 19:40:46 2011 differ

Modified: karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java?rev=1159373&r1=1159372&r2=1159373&view=diff
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java (original)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java Thu Aug 18 19:40:46 2011
@@ -4,10 +4,12 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Locale;
 
+import org.apache.karaf.webconsole.core.brand.BrandProvider;
 import org.apache.karaf.webconsole.core.internal.LanguagePanel;
 import org.apache.karaf.webconsole.core.navigation.ConsoleTab;
 import org.apache.karaf.webconsole.core.navigation.markup.NavigationPanel;
 import org.apache.wicket.ResourceReference;
+import org.apache.wicket.behavior.IBehavior;
 import org.apache.wicket.markup.html.CSSPackageResource;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.basic.Label;
@@ -21,6 +23,9 @@ public class BasePage extends WebPage {
     @PaxWicketBean(name = "tabs")
     private List<ConsoleTab> tabs;
 
+    @PaxWicketBean(name = "brandProvider")
+    private BrandProvider brandProvider;
+
     // list of supported Locales - should be replaced by resolver/detector or something similar
     private IModel<List<Locale>> supportedLocales = new ListModel<Locale>(Arrays.asList(Locale.FRENCH, Locale.ENGLISH));
 
@@ -28,13 +33,17 @@ public class BasePage extends WebPage {
         add(CSSPackageResource.getHeaderContribution(BasePage.class, "style.css"));
         add(CSSPackageResource.getHeaderContribution(BasePage.class, "grid.css"));
 
-        add(new Label("footer", "Apache Karaf Console"));
+        add(brandProvider.getHeaderImage("logo"));
 
-        add(new Image("karafLogo", new ResourceReference(BasePage.class, "images/karaf-logo.png")));
+        add(new Label("footer", "Apache Karaf Console"));
 
         add(new LanguagePanel("languagePanel", supportedLocales));
 
         add(new NavigationPanel("navigationPanel", new ListModel<ConsoleTab>(tabs)));
+
+        for (IBehavior behavior : brandProvider.getBehaviors()) {
+            add(behavior);
+        }
     }
 
 }

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/brand/BrandProvider.java
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/brand/BrandProvider.java?rev=1159373&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/brand/BrandProvider.java (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/brand/BrandProvider.java Thu Aug 18 19:40:46 2011
@@ -0,0 +1,14 @@
+package org.apache.karaf.webconsole.core.brand;
+
+import java.util.List;
+
+import org.apache.wicket.behavior.IBehavior;
+import org.apache.wicket.markup.html.image.Image;
+
+public interface BrandProvider {
+
+    Image getHeaderImage(String imageId);
+
+    List<IBehavior> getBehaviors();
+
+}

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/brand/DefaultBrandProvider.java
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/brand/DefaultBrandProvider.java?rev=1159373&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/brand/DefaultBrandProvider.java (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/brand/DefaultBrandProvider.java Thu Aug 18 19:40:46 2011
@@ -0,0 +1,27 @@
+package org.apache.karaf.webconsole.core.brand;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.karaf.webconsole.core.BasePage;
+import org.apache.wicket.ResourceReference;
+import org.apache.wicket.behavior.IBehavior;
+import org.apache.wicket.behavior.SimpleAttributeModifier;
+import org.apache.wicket.markup.html.image.Image;
+
+public class DefaultBrandProvider implements BrandProvider {
+
+    public Image getHeaderImage(String imageId) {
+        Image image = new Image(imageId, new ResourceReference(BasePage.class, "images/karaf-logo.png"));
+        image.add(new SimpleAttributeModifier("width", "150"));
+        image.add(new SimpleAttributeModifier("height", "70"));
+        image.add(new SimpleAttributeModifier("alt", "Karaf logo"));
+        image.add(new SimpleAttributeModifier("title", "Karaf logo"));
+        return image;
+    }
+
+    public List<IBehavior> getBehaviors() {
+        return Collections.emptyList();
+    }
+
+}

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/table/ActionsPanel.java
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/table/ActionsPanel.java?rev=1159373&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/table/ActionsPanel.java (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/table/ActionsPanel.java Thu Aug 18 19:40:46 2011
@@ -0,0 +1,46 @@
+package org.apache.karaf.webconsole.core.table;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.wicket.behavior.SimpleAttributeModifier;
+import org.apache.wicket.markup.html.CSSPackageResource;
+import org.apache.wicket.markup.html.link.Link;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.util.ListModel;
+
+/**
+ * Actions panel used to render actions in data table.
+ */
+@SuppressWarnings("rawtypes")
+public class ActionsPanel<T> extends Panel {
+
+    public ActionsPanel(String componentId, IModel<T> model) {
+        super(componentId, model);
+
+        add(CSSPackageResource.getHeaderContribution(ActionsPanel.class, "actions.css"));
+
+        final List<Link> links = getLinks(model.getObject(), "action");
+        add(new ListView<Link>("actions", new ListModel<Link>(links)) {
+            @Override
+            protected void populateItem(ListItem<Link> item) {
+                item.addOrReplace(item.getModelObject());
+
+                if (item.getIndex() == 0) {
+                    item.add(new SimpleAttributeModifier("class", "first"));
+                } else if (item.getIndex() -1 == links.size()) {
+                    item.add(new SimpleAttributeModifier("class", "last"));
+                } else {
+                    item.add(new SimpleAttributeModifier("class", "node"));
+                }
+            }
+        });
+    }
+
+    protected List<Link> getLinks(T object, String id) {
+        return Collections.emptyList();
+    }
+}

Modified: karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/resources/OSGI-INF/blueprint/core.xml
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/resources/OSGI-INF/blueprint/core.xml?rev=1159373&r1=1159372&r2=1159373&view=diff
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/resources/OSGI-INF/blueprint/core.xml (original)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/resources/OSGI-INF/blueprint/core.xml Thu Aug 18 19:40:46 2011
@@ -18,4 +18,10 @@
         </bean>
     </service>
 
+    <service interface="org.apache.karaf.webconsole.core.brand.BrandProvider">
+        <bean class="org.apache.karaf.webconsole.core.brand.DefaultBrandProvider" />
+    </service>
+
+    <reference id="brandProvider" interface="org.apache.karaf.webconsole.core.brand.BrandProvider" />
+
 </blueprint>

Modified: karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/resources/org/apache/karaf/webconsole/core/BasePage.html
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/resources/org/apache/karaf/webconsole/core/BasePage.html?rev=1159373&r1=1159372&r2=1159373&view=diff
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/resources/org/apache/karaf/webconsole/core/BasePage.html (original)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/resources/org/apache/karaf/webconsole/core/BasePage.html Thu Aug 18 19:40:46 2011
@@ -9,7 +9,7 @@
 <body>
     <div class="container container_12">
         <div class="grid_3">
-            <img wicket:id="karafLogo" alt="karaf-logo" height="70" width="150" />
+            <img wicket:id="logo" />
         </div>
         <div class="grid_9">
             <h3>Administration console</h3>

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/resources/org/apache/karaf/webconsole/core/table/ActionsPanel.html
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/resources/org/apache/karaf/webconsole/core/table/ActionsPanel.html?rev=1159373&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/resources/org/apache/karaf/webconsole/core/table/ActionsPanel.html (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/resources/org/apache/karaf/webconsole/core/table/ActionsPanel.html Thu Aug 18 19:40:46 2011
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+    <title>Karaf wicket console</title>
+</head>
+<body>
+
+    <wicket:panel>
+        <div class="actions">
+            <ul>
+                <li wicket:id="actions">
+                    <a wicket:id="action">
+                        <span wicket:id="label">label</span>
+                    </a>
+                </li>
+            </ul>
+        </div>
+    </wicket:panel>
+
+</body>
+</html>
\ No newline at end of file

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/resources/org/apache/karaf/webconsole/core/table/actions.css
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/resources/org/apache/karaf/webconsole/core/table/actions.css?rev=1159373&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/resources/org/apache/karaf/webconsole/core/table/actions.css (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/resources/org/apache/karaf/webconsole/core/table/actions.css Thu Aug 18 19:40:46 2011
@@ -0,0 +1,13 @@
+div.actions ul {
+    margin: 0px;
+    padding: 0px;
+}
+
+div.actions ul li {
+    list-style-type: none;
+    display: inline;
+}
+
+div.actions ul li.node, div.actions ul li.last {
+    padding-left: 10px;
+}
\ No newline at end of file

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/examples/.DS_Store
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/examples/.DS_Store?rev=1159373&view=auto
==============================================================================
Files karaf/sandbox/pieber/karaf-webconsole/trunk/examples/.DS_Store (added) and karaf/sandbox/pieber/karaf-webconsole/trunk/examples/.DS_Store Thu Aug 18 19:40:46 2011 differ

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/.DS_Store
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/.DS_Store?rev=1159373&view=auto
==============================================================================
Files karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/.DS_Store (added) and karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/.DS_Store Thu Aug 18 19:40:46 2011 differ

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/pom.xml
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/pom.xml?rev=1159373&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/pom.xml (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/pom.xml Thu Aug 18 19:40:46 2011
@@ -0,0 +1,48 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.karaf.webconsole</groupId>
+        <artifactId>examples</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.karaf.webconsole.examples</groupId>
+    <artifactId>branding</artifactId>
+    <packaging>bundle</packaging>
+
+    <name>Apache Karaf :: Karaf Webconsole Prototype :: Examples :: Branding</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.karaf.webconsole</groupId>
+            <artifactId>org.apache.karaf.webconsole.core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <version>2.3.5</version>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
+                        <Import-Package>
+                            !org.apache.karaf.webconsole.examples.branding,
+                            *,
+<!--                             transient dependencies -->
+<!--                             org.ops4j.pax.wicket.api, -->
+<!--                             org.ops4j.pax.wicket.util, -->
+<!--                             org.ops4j.pax.wicket.util.proxy -->
+                        </Import-Package>
+                    </instructions>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/main/java/org/apache/karaf/webconsole/examples/branding/ExampleBrandProvider.class
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/main/java/org/apache/karaf/webconsole/examples/branding/ExampleBrandProvider.class?rev=1159373&view=auto
==============================================================================
Files karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/main/java/org/apache/karaf/webconsole/examples/branding/ExampleBrandProvider.class (added) and karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/main/java/org/apache/karaf/webconsole/examples/branding/ExampleBrandProvider.class Thu Aug 18 19:40:46 2011 differ

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/main/resources/OSGI-INF/blueprint/branding.xml
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/main/resources/OSGI-INF/blueprint/branding.xml?rev=1159373&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/main/resources/OSGI-INF/blueprint/branding.xml (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/bin/src/main/resources/OSGI-INF/blueprint/branding.xml Thu Aug 18 19:40:46 2011
@@ -0,0 +1,11 @@
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
+
+    <service ref="brandProvider" interface="org.apache.karaf.webconsole.core.brand.BrandProvider">
+        <service-properties>
+            <entry key="service.ranging" value="1" />
+        </service-properties>
+    </service>
+
+    <bean id="brandProvider" class="org.apache.karaf.webconsole.examples.branding.ExampleBrandProvider" />
+
+</blueprint>

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/pom.xml
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/pom.xml?rev=1159373&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/pom.xml (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/pom.xml Thu Aug 18 19:40:46 2011
@@ -0,0 +1,48 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.karaf.webconsole</groupId>
+        <artifactId>examples</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.karaf.webconsole.examples</groupId>
+    <artifactId>branding</artifactId>
+    <packaging>bundle</packaging>
+
+    <name>Apache Karaf :: Karaf Webconsole Prototype :: Examples :: Branding</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.karaf.webconsole</groupId>
+            <artifactId>org.apache.karaf.webconsole.core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <version>2.3.5</version>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
+                        <Import-Package>
+                            !org.apache.karaf.webconsole.examples.branding,
+                            *,
+<!--                             transient dependencies -->
+<!--                             org.ops4j.pax.wicket.api, -->
+<!--                             org.ops4j.pax.wicket.util, -->
+<!--                             org.ops4j.pax.wicket.util.proxy -->
+                        </Import-Package>
+                    </instructions>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/.DS_Store
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/.DS_Store?rev=1159373&view=auto
==============================================================================
Files karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/.DS_Store (added) and karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/.DS_Store Thu Aug 18 19:40:46 2011 differ

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/.DS_Store
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/.DS_Store?rev=1159373&view=auto
==============================================================================
Files karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/.DS_Store (added) and karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/.DS_Store Thu Aug 18 19:40:46 2011 differ

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/java/org/apache/karaf/webconsole/examples/branding/ExampleBrandProvider.java
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/java/org/apache/karaf/webconsole/examples/branding/ExampleBrandProvider.java?rev=1159373&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/java/org/apache/karaf/webconsole/examples/branding/ExampleBrandProvider.java (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/java/org/apache/karaf/webconsole/examples/branding/ExampleBrandProvider.java Thu Aug 18 19:40:46 2011
@@ -0,0 +1,24 @@
+package org.apache.karaf.webconsole.examples.branding;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import org.apache.karaf.webconsole.core.brand.BrandProvider;
+import org.apache.wicket.ResourceReference;
+import org.apache.wicket.behavior.IBehavior;
+import org.apache.wicket.markup.html.CSSPackageResource;
+import org.apache.wicket.markup.html.image.Image;
+
+public class ExampleBrandProvider implements BrandProvider {
+
+    public Image getHeaderImage(String imageId) {
+        return new Image(imageId, new ResourceReference(ExampleBrandProvider.class, "logo.png"));
+    }
+
+    public List<IBehavior> getBehaviors() {
+        List<IBehavior> behaviors = new LinkedList<IBehavior>();
+        behaviors.add(CSSPackageResource.getHeaderContribution(ExampleBrandProvider.class, "override.css"));
+        return behaviors;
+    }
+
+}
\ No newline at end of file

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/.DS_Store
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/.DS_Store?rev=1159373&view=auto
==============================================================================
Files karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/.DS_Store (added) and karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/.DS_Store Thu Aug 18 19:40:46 2011 differ

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/OSGI-INF/blueprint/branding.xml
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/OSGI-INF/blueprint/branding.xml?rev=1159373&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/OSGI-INF/blueprint/branding.xml (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/OSGI-INF/blueprint/branding.xml Thu Aug 18 19:40:46 2011
@@ -0,0 +1,11 @@
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
+
+    <service ref="brandProvider" interface="org.apache.karaf.webconsole.core.brand.BrandProvider">
+        <service-properties>
+            <entry key="service.ranging" value="1" />
+        </service-properties>
+    </service>
+
+    <bean id="brandProvider" class="org.apache.karaf.webconsole.examples.branding.ExampleBrandProvider" />
+
+</blueprint>

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/.DS_Store
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/.DS_Store?rev=1159373&view=auto
==============================================================================
Files karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/.DS_Store (added) and karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/.DS_Store Thu Aug 18 19:40:46 2011 differ

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/.DS_Store
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/.DS_Store?rev=1159373&view=auto
==============================================================================
Files karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/.DS_Store (added) and karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/.DS_Store Thu Aug 18 19:40:46 2011 differ

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/.DS_Store
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/.DS_Store?rev=1159373&view=auto
==============================================================================
Files karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/.DS_Store (added) and karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/.DS_Store Thu Aug 18 19:40:46 2011 differ

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/.DS_Store
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/.DS_Store?rev=1159373&view=auto
==============================================================================
Files karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/.DS_Store (added) and karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/.DS_Store Thu Aug 18 19:40:46 2011 differ

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/examples/.DS_Store
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/examples/.DS_Store?rev=1159373&view=auto
==============================================================================
Files karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/examples/.DS_Store (added) and karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/examples/.DS_Store Thu Aug 18 19:40:46 2011 differ

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/examples/branding/logo.png
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/examples/branding/logo.png?rev=1159373&view=auto
==============================================================================
Files karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/examples/branding/logo.png (added) and karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/examples/branding/logo.png Thu Aug 18 19:40:46 2011 differ

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/examples/branding/override.css
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/examples/branding/override.css?rev=1159373&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/examples/branding/override.css (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/examples/branding/src/main/resources/org/apache/karaf/webconsole/examples/branding/override.css Thu Aug 18 19:40:46 2011
@@ -0,0 +1,3 @@
+body {
+    background-color: #DFEFF0;
+}

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/examples/pom.xml
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/examples/pom.xml?rev=1159373&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/examples/pom.xml (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/examples/pom.xml Thu Aug 18 19:40:46 2011
@@ -0,0 +1,21 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.karaf</groupId>
+        <artifactId>webconsole</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.karaf.webconsole</groupId>
+    <artifactId>examples</artifactId>
+    <packaging>pom</packaging>
+
+    <name>Apache Karaf :: Karaf Webconsole Prototype :: Examples</name>
+
+    <modules>
+        <module>branding</module>
+    </modules>
+
+</project>

Modified: karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/feature/FeaturesActionsPanel.java
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/feature/FeaturesActionsPanel.java?rev=1159373&r1=1159372&r2=1159373&view=diff
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/feature/FeaturesActionsPanel.java (original)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/feature/FeaturesActionsPanel.java Thu Aug 18 19:40:46 2011
@@ -1,15 +1,19 @@
 package org.apache.karaf.webconsole.karaf.internal.feature;
 
+import java.util.Arrays;
+import java.util.List;
+
 import org.apache.karaf.features.FeaturesService;
+import org.apache.karaf.webconsole.core.table.ActionsPanel;
 import org.apache.wicket.ResourceReference;
-import org.apache.wicket.markup.html.image.Image;
+import org.apache.wicket.behavior.SimpleAttributeModifier;
+import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.Link;
-import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.IModel;
 import org.ops4j.pax.wicket.api.PaxWicketBean;
 
 
-public class FeaturesActionsPanel extends Panel {
+public class FeaturesActionsPanel extends ActionsPanel<ExtendedFeature> {
 
     @PaxWicketBean(name = "featuresService")
     private FeaturesService featuresService;
@@ -18,13 +22,13 @@ public class FeaturesActionsPanel extend
     private static ResourceReference INSTALL_IMG = new ResourceReference(FeaturesActionsPanel.class,"images/feature_install.png");
     private static ResourceReference UNINSTALL_IMG = new ResourceReference(FeaturesActionsPanel.class,"images/feature_uninstall.png");
 
-    public FeaturesActionsPanel(String componentId, IModel<?> model) {
-
-        super(componentId);
-
-        this.extendedFeature = (ExtendedFeature)model.getObject();
+    public FeaturesActionsPanel(String componentId, IModel<ExtendedFeature> model) {
+        super(componentId, model);
+    }
 
-        Link link = new Link("link") {
+    @Override
+    protected List<Link> getLinks(ExtendedFeature object, String id) {
+        Link link = new Link(id) {
 
             @Override
             public void onClick() {
@@ -44,15 +48,13 @@ public class FeaturesActionsPanel extend
             }
         };
 
-        add(link);
+        link.add(new SimpleAttributeModifier("class", object.getState().name().toLowerCase()));
+        link.add(new Label("label"));
 
         // add image to the link
-        link.add(new Image("actionButton", getImage(extendedFeature.getState())));
-
-
+        return Arrays.asList(link);
     }
 
-
     protected ResourceReference getImage(final ExtendedFeature.State action) {
         final ResourceReference image;
         switch (action) {

Modified: karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/feature/FeaturesPage.java
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/feature/FeaturesPage.java?rev=1159373&r1=1159372&r2=1159373&view=diff
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/feature/FeaturesPage.java (original)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/feature/FeaturesPage.java Thu Aug 18 19:40:46 2011
@@ -1,17 +1,22 @@
 package org.apache.karaf.webconsole.karaf.internal.feature;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.List;
+
 import org.apache.karaf.features.Feature;
 import org.apache.karaf.features.FeaturesService;
 import org.apache.karaf.features.Repository;
 import org.apache.karaf.webconsole.core.BasePage;
-import org.apache.karaf.webconsole.karaf.internal.ActionsPanel;
-import org.apache.karaf.webconsole.karaf.internal.ComponentType;
 import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
 import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
 import org.apache.wicket.extensions.markup.html.repeater.data.table.DefaultDataTable;
 import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
 import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
 import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
+import org.apache.wicket.markup.html.CSSPackageResource;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.model.IModel;
@@ -20,8 +25,6 @@ import org.apache.wicket.model.ResourceM
 import org.apache.wicket.model.StringResourceModel;
 import org.ops4j.pax.wicket.api.PaxWicketBean;
 
-import java.util.*;
-
 /**
  * Features
  */
@@ -31,6 +34,7 @@ public class FeaturesPage extends BasePa
     private FeaturesService featuresService;
 
     public FeaturesPage() throws Exception {
+        add(CSSPackageResource.getHeaderContribution(FeaturesPage.class, "features.css"));
 
         // Create a form for external Submit link
         Form<?> form = new Form("form");
@@ -66,7 +70,7 @@ public class FeaturesPage extends BasePa
         columns.add(new PropertyColumn<ExtendedFeature>(new StringResourceModel("table.state", this, state), "state", "state"));
         columns.add(new AbstractColumn<ExtendedFeature>(new ResourceModel("table.actions")) {
             public void populateItem(Item<ICellPopulator<ExtendedFeature>> cellItem, String componentId, IModel<ExtendedFeature> model) {
-               cellItem.add(new ActionsPanel(componentId, model, ComponentType.FEATURES));
+               cellItem.add(new FeaturesActionsPanel(componentId, model));
             }
         });
 

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/resources/org/apache/karaf/webconsole/karaf/internal/feature/features.css
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/resources/org/apache/karaf/webconsole/karaf/internal/feature/features.css?rev=1159373&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/resources/org/apache/karaf/webconsole/karaf/internal/feature/features.css (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/resources/org/apache/karaf/webconsole/karaf/internal/feature/features.css Thu Aug 18 19:40:46 2011
@@ -0,0 +1,13 @@
+div.actions ul li a {
+    width: 16px;
+    height: 16px;
+    display: block;
+}
+
+div.actions ul li a.installed {
+    background: url("images/feature_uninstall.png");
+}
+
+div.actions ul li a.uninstalled {
+    background: url("images/feature_install.png");
+}
\ No newline at end of file

Modified: karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/pom.xml
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/pom.xml?rev=1159373&r1=1159372&r2=1159373&view=diff
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/pom.xml (original)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/pom.xml Thu Aug 18 19:40:46 2011
@@ -37,37 +37,13 @@
                 <configuration>
                     <instructions>
                         <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
-                        <!-- The bundle activator is only required if we 
-                            do the things by hand. -->
                         <Import-Package>
+                            !org.apache.karaf.webconsole.osgi*,
                             *,<!-- let bnd import direct dependencies -->
-                            org.apache.wicket.settings,
-                            org.apache.wicket.session,
-                            org.apache.wicket.util.file,
-                            org.apache.wicket.request,
-                            org.apache.wicket.ajax,
-                            org.apache.wicket.markup,
-                            org.apache.wicket.markup.html.link,
-                            org.apache.wicket.session.pagemap,
-                            org.apache.wicket.protocol.http,
-                            org.apache.wicket.markup.html.internal,
-                            org.apache.wicket.util.convert,
-                            org.apache.wicket.markup.html,
-                            <!-- then wicket stuff -->
+                            <!-- transient dependencies -->
                             org.ops4j.pax.wicket.api,
                             org.ops4j.pax.wicket.util,
-                            org.ops4j.pax.wicket.util.proxy,
-                            <!-- osgi stuff -->
-                            org.osgi.framework,
-                            org.osgi.service.blueprint,
-                            org.osgi.service.startlevel,
-                            <!-- cglib -->
-                            net.sf.cglib.proxy;version="[2,3)",
-                            net.sf.cglib.core;version="[2,3)",
-                            net.sf.cglib.reflect;version="[2,3)",
-                            <!-- and servlet api -->
-                            javax.servlet,
-                            javax.servlet.http
+                            org.ops4j.pax.wicket.util.proxy
                         </Import-Package>
                     </instructions>
                 </configuration>

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/configuration/ConfigurationEditPage.java
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/configuration/ConfigurationEditPage.java?rev=1159373&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/configuration/ConfigurationEditPage.java (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/configuration/ConfigurationEditPage.java Thu Aug 18 19:40:46 2011
@@ -0,0 +1,75 @@
+package org.apache.karaf.webconsole.osgi.internal.configuration;
+
+import java.io.IOException;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Dictionary;
+import java.util.Enumeration;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.apache.karaf.webconsole.osgi.internal.OsgiPage;
+import org.apache.wicket.PageParameters;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.util.ListModel;
+import org.ops4j.pax.wicket.api.PaxWicketBean;
+import org.osgi.service.cm.Configuration;
+import org.osgi.service.cm.ConfigurationAdmin;
+
+public class ConfigurationEditPage extends OsgiPage {
+
+    @PaxWicketBean(name = "configurationAdmin")
+    private ConfigurationAdmin configurationAdmin;
+
+    public ConfigurationEditPage(PageParameters params) {
+        String pid = params.getString("pid");
+
+        add(new Label("pid", pid));
+
+        try {
+            add(form(configurationAdmin.getConfiguration(pid)));
+        } catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+    }
+
+    private Form form(Configuration configuration) {
+        Form<Configuration> form = new Form<Configuration>("edit");
+
+        form.add(new TextField<String>("pid", Model.of(configuration.getPid())) {
+            @Override
+            public boolean isEnabled() {
+                return false;
+            }
+        });
+
+        Dictionary<String, Serializable> properties = configuration.getProperties();
+
+        Map<String, Serializable> map = new LinkedHashMap<String, Serializable>();
+        Enumeration<String> keys = properties.keys();
+        while (keys.hasMoreElements()) {
+            String key = keys.nextElement();
+            map.put(key, properties.get(key));
+        }
+        List<Entry<String, Serializable>> list = new ArrayList<Entry<String, Serializable>>(map.entrySet());
+
+        form.add(new ListView<Entry<String, Serializable>>("properties", new ListModel<Entry<String, Serializable>>(list)) {
+            @Override
+            protected void populateItem(ListItem<Entry<String, Serializable>> item) {
+                item.add(new Label("key", item.getModelObject().getKey()));
+                item.add(new TextField<String>("value", new Model(item.getModelObject().getValue())));
+            }
+        });
+
+        return form;
+    }
+
+}

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/configuration/ConfigurationsActionPanel.java
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/configuration/ConfigurationsActionPanel.java?rev=1159373&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/configuration/ConfigurationsActionPanel.java (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/configuration/ConfigurationsActionPanel.java Thu Aug 18 19:40:46 2011
@@ -0,0 +1,40 @@
+package org.apache.karaf.webconsole.osgi.internal.configuration;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.karaf.webconsole.core.table.ActionsPanel;
+import org.apache.wicket.PageParameters;
+import org.apache.wicket.behavior.SimpleAttributeModifier;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.link.BookmarkablePageLink;
+import org.apache.wicket.markup.html.link.Link;
+import org.apache.wicket.model.IModel;
+import org.osgi.service.cm.Configuration;
+
+@SuppressWarnings("rawtypes")
+class ConfigurationsActionPanel extends ActionsPanel<Configuration> {
+
+    public ConfigurationsActionPanel(String componentId, IModel<Configuration> model) {
+        super(componentId, model);
+    }
+
+    @Override
+    protected List<Link> getLinks(Configuration object, String id) {
+        PageParameters params = new PageParameters();
+        params.put("pid", object.getPid());
+
+        Link removeLink = new Link(id) {
+            @Override
+            public void onClick() {
+            }
+        };
+        removeLink.add(new SimpleAttributeModifier("class", "remove"));
+        removeLink.add(new Label("label", "remove"));
+
+        Link editLink = new BookmarkablePageLink<ConfigurationEditPage>(id, ConfigurationEditPage.class, params);
+        editLink.add(new Label("label", "edit"));
+
+        return Arrays.asList(editLink, removeLink);
+    }
+}
\ No newline at end of file

Modified: karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/configuration/ConfigurationsPage.java
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/configuration/ConfigurationsPage.java?rev=1159373&r1=1159372&r2=1159373&view=diff
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/configuration/ConfigurationsPage.java (original)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/configuration/ConfigurationsPage.java Thu Aug 18 19:40:46 2011
@@ -10,6 +10,7 @@ import org.apache.wicket.extensions.mark
 import org.apache.wicket.extensions.markup.html.repeater.data.table.DefaultDataTable;
 import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
 import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
+import org.apache.wicket.markup.html.CSSPackageResource;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.model.IModel;
@@ -25,6 +26,7 @@ public class ConfigurationsPage extends 
     private ConfigurationAdmin configurationAdmin;
 
     public ConfigurationsPage() {
+        add(CSSPackageResource.getHeaderContribution(ConfigurationsPage.class, "configurations.css"));
 
         Configuration[] configurations = new Configuration[0];
         try {
@@ -41,7 +43,7 @@ public class ConfigurationsPage extends 
         columns.add(new PropertyColumn<Configuration>(pid, "pid"));
         columns.add(new AbstractColumn<Configuration>(Model.of("operations")) {
             public void populateItem(Item<ICellPopulator<Configuration>> cellItem, String componentId, IModel<Configuration> model) {
-                cellItem.add(new Label("info", "operation"));
+                cellItem.add(new ConfigurationsActionPanel(componentId, model));
             }
         });
 

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/configuration/DictionaryDataProvider.java
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/configuration/DictionaryDataProvider.java?rev=1159373&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/configuration/DictionaryDataProvider.java (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/java/org/apache/karaf/webconsole/osgi/internal/configuration/DictionaryDataProvider.java Thu Aug 18 19:40:46 2011
@@ -0,0 +1,67 @@
+package org.apache.karaf.webconsole.osgi.internal.configuration;
+
+import java.io.Serializable;
+import java.util.Dictionary;
+import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.apache.wicket.markup.repeater.data.IDataProvider;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+
+public class DictionaryDataProvider<K extends Serializable, V extends Serializable> implements IDataProvider<Entry<K, V>> {
+
+    private Map<K, V> map = new LinkedHashMap<K, V>();
+
+    public DictionaryDataProvider(Dictionary<K, V> properties) {
+        Enumeration<K> keys = properties.keys();
+
+        while (keys.hasMoreElements()) {
+            K key = keys.nextElement();
+            map.put(key, properties.get(key));
+        }
+    }
+
+    public void detach() {
+        
+    }
+
+    public Iterator<? extends Entry<K, V>> iterator(int first, int count) {
+        return map.entrySet().iterator();
+    }
+
+    public IModel<Entry<K, V>> model(Entry<K, V> object) {
+        return new Model(new SerializableEntry<K, V>(object));
+    }
+
+    public int size() {
+        return 0;
+    }
+
+    class SerializableEntry<K extends Serializable, V extends Serializable> implements Entry<K, V>, Serializable {
+
+        private Entry<K, V> entries;
+
+        public SerializableEntry(Entry<K, V> object) {
+            this.entries = object;
+        }
+
+        public K getKey() {
+            return entries.getKey();
+        }
+
+        public V getValue() {
+            return entries.getValue();
+        }
+
+        public V setValue(V value) {
+            return entries.setValue(value);
+        }
+
+        
+    }
+
+}

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/resources/org/apache/karaf/webconsole/osgi/internal/configuration/ConfigurationEditPage.html
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/resources/org/apache/karaf/webconsole/osgi/internal/configuration/ConfigurationEditPage.html?rev=1159373&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/resources/org/apache/karaf/webconsole/osgi/internal/configuration/ConfigurationEditPage.html (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/resources/org/apache/karaf/webconsole/osgi/internal/configuration/ConfigurationEditPage.html Thu Aug 18 19:40:46 2011
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd" >
+    <wicket:head>
+        <title>Karaf Wicket console</title>
+    </wicket:head>
+
+    <body>
+
+        <wicket:extend>
+            <h1>Edit <span wicket:id="pid">org.apache.felix.filemount</span></h1>
+
+            <form wicket:id="edit">
+                <input type="text" wicket:id="pid" style="width: 100%" />
+
+                <ul>
+                    <li wicket:id="properties">
+                        <div class="grid_9">
+                            <div class="grid_9">
+                                <span wicket:id="key" style="width: 100%">key</span>
+                            </div>
+                            <input type="text" wicket:id="value" style="width: 100%" />
+                        </div>
+                    </li>
+                </ul>
+            </form>
+        </wicket:extend>
+    </body>
+</html>

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/resources/org/apache/karaf/webconsole/osgi/internal/configuration/configurations.css
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/resources/org/apache/karaf/webconsole/osgi/internal/configuration/configurations.css?rev=1159373&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/resources/org/apache/karaf/webconsole/osgi/internal/configuration/configurations.css (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/osgi/src/main/resources/org/apache/karaf/webconsole/osgi/internal/configuration/configurations.css Thu Aug 18 19:40:46 2011
@@ -0,0 +1,3 @@
+a.remove {
+    color: red;
+}
\ No newline at end of file

Modified: karaf/sandbox/pieber/karaf-webconsole/trunk/pom.xml
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/pom.xml?rev=1159373&r1=1159372&r2=1159373&view=diff
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/pom.xml (original)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/pom.xml Thu Aug 18 19:40:46 2011
@@ -24,6 +24,8 @@
         <module>blueprint</module>
         <module>karaf</module>
         <module>features</module>
+
+        <module>examples</module>
     </modules>
 
     <build>