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/25 13:29:07 UTC

svn commit: r1161512 - in /karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main: java/org/apache/karaf/webconsole/karaf/internal/repository/ resources/org/apache/karaf/webconsole/karaf/internal/repository/

Author: ldywicki
Date: Thu Aug 25 11:29:06 2011
New Revision: 1161512

URL: http://svn.apache.org/viewvc?rev=1161512&view=rev
Log:
Repository add operation for karaf

Added:
    karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/repository/AddRepositoryForm.java
    karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/repository/AddRepositoryPage.java
    karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/repository/RepositoriesActionPanel.java
    karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/resources/org/apache/karaf/webconsole/karaf/internal/repository/AddRepositoryPage.html
Modified:
    karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/repository/RepositoriesPage.java

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/repository/AddRepositoryForm.java
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/repository/AddRepositoryForm.java?rev=1161512&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/repository/AddRepositoryForm.java (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/repository/AddRepositoryForm.java Thu Aug 25 11:29:06 2011
@@ -0,0 +1,58 @@
+package org.apache.karaf.webconsole.karaf.internal.repository;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import org.apache.karaf.features.FeaturesService;
+import org.apache.karaf.features.Repository;
+import org.apache.karaf.webconsole.core.form.LabelBorder;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.SubmitLink;
+import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.model.Model;
+import org.ops4j.pax.wicket.api.PaxWicketBean;
+
+public class AddRepositoryForm extends Form<Repository> {
+
+    @PaxWicketBean(name = "featuresService")
+    private FeaturesService featuresService;
+
+    private TextField<String> uri;
+
+    public AddRepositoryForm(String id) {
+        super(id);
+
+        uri = new TextField<String>("uri", Model.of("mvn:")) {
+            @Override
+            public boolean isRequired() {
+                return true;
+            }
+        };
+
+        LabelBorder border = new LabelBorder("border");
+        border.add(new Label("label", "Repository URI"));
+        border.add(uri);
+
+        add(border);
+
+        add(new SubmitLink("submit"));
+    }
+
+    @Override
+    protected void onSubmit() {
+        String add = uri.getModelObject();
+        try {
+            URI uri = new URI(add);
+            featuresService.addRepository(uri);
+
+            getSession().info("New repository with uri " + uri + " added");
+            getRequestCycle().setResponsePage(RepositoriesPage.class);
+        } catch (URISyntaxException e) {
+            error("Cannot parse give uri " + e.getMessage());
+        } catch (Exception e) {
+            error("FeaturesService reported an error " + e.getMessage());
+        }
+    }
+
+}

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/repository/AddRepositoryPage.java
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/repository/AddRepositoryPage.java?rev=1161512&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/repository/AddRepositoryPage.java (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/repository/AddRepositoryPage.java Thu Aug 25 11:29:06 2011
@@ -0,0 +1,15 @@
+package org.apache.karaf.webconsole.karaf.internal.repository;
+
+import org.apache.karaf.webconsole.core.SidebarPage;
+import org.ops4j.pax.wicket.api.PaxWicketMountPoint;
+
+@PaxWicketMountPoint(mountPoint = "/karaf/repositories/add")
+public class AddRepositoryPage extends SidebarPage {
+
+    public AddRepositoryPage() {
+
+        add(new AddRepositoryForm("add"));
+
+    }
+
+}

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/repository/RepositoriesActionPanel.java
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/repository/RepositoriesActionPanel.java?rev=1161512&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/repository/RepositoriesActionPanel.java (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/repository/RepositoriesActionPanel.java Thu Aug 25 11:29:06 2011
@@ -0,0 +1,43 @@
+package org.apache.karaf.webconsole.karaf.internal.repository;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.karaf.features.FeaturesService;
+import org.apache.karaf.features.Repository;
+import org.apache.karaf.webconsole.core.table.ActionsPanel;
+import org.apache.wicket.Session;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.link.Link;
+import org.apache.wicket.model.IModel;
+import org.ops4j.pax.wicket.api.PaxWicketBean;
+
+public class RepositoriesActionPanel extends ActionsPanel<Repository> {
+
+    @PaxWicketBean(name = "featuresService")
+    private FeaturesService featuresService;
+
+    public RepositoriesActionPanel(String componentId, IModel<Repository> model) {
+        super(componentId, model);
+    }
+
+    @Override
+    protected List<Link> getLinks(final Repository object, String id) {
+        List<Link> links = new ArrayList<Link>();
+
+        Link remove = new Link(id) {
+            @Override
+            public void onClick() {
+                featuresService.removeRepository(object.getURI());
+
+                Session.get().info("Repository " + object.getURI() + " was removed");
+            }
+        };
+        remove.add(new Label("label", "Remove"));
+
+        links.add(remove);
+
+        return links;
+    }
+
+}

Modified: karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/repository/RepositoriesPage.java
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/repository/RepositoriesPage.java?rev=1161512&r1=1161511&r2=1161512&view=diff
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/repository/RepositoriesPage.java (original)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/java/org/apache/karaf/webconsole/karaf/internal/repository/RepositoriesPage.java Thu Aug 25 11:29:06 2011
@@ -1,31 +1,52 @@
 package org.apache.karaf.webconsole.karaf.internal.repository;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.karaf.features.FeaturesService;
 import org.apache.karaf.features.Repository;
-import org.apache.karaf.webconsole.core.BasePage;
+import org.apache.karaf.webconsole.core.SidebarPage;
+import org.apache.karaf.webconsole.core.table.OrdinalColumn;
 import org.apache.karaf.webconsole.karaf.internal.RepositoriesProvider;
+import org.apache.wicket.Page;
+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.markup.repeater.Item;
+import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.ops4j.pax.wicket.api.PaxWicketBean;
 import org.ops4j.pax.wicket.api.PaxWicketMountPoint;
 
 @PaxWicketMountPoint(mountPoint = "/karaf/repositories")
-public class RepositoriesPage extends BasePage {
+public class RepositoriesPage extends SidebarPage {
 
     @PaxWicketBean(name = "featuresService")
     private FeaturesService featuresService;
 
     public RepositoriesPage() {
         IColumn[] columns = new IColumn[] {
+            new OrdinalColumn<Repository>(),
             new PropertyColumn<Repository>(Model.of("name"), "name", "name"),
             new PropertyColumn<Repository>(Model.of("URI"), "URI", "URI"),
-            new PropertyColumn<Repository>(Model.of("valid"), "valid", "valid")
+            new PropertyColumn<Repository>(Model.of("valid"), "valid", "valid"),
+            new AbstractColumn<Repository>(Model.of("Operations")) {
+                public void populateItem(Item<ICellPopulator<Repository>> cellItem, String componentId, IModel<Repository> rowModel) {
+                    cellItem.add(new RepositoriesActionPanel(componentId, rowModel));
+                }
+            }
         };
 
         add(new DefaultDataTable<Repository>("repositories", columns, new RepositoriesProvider(featuresService), 20));
     }
 
+    @Override
+    protected List<Class<? extends Page>> getSubPages() {
+        List<Class<? extends Page>> list = new ArrayList<Class<? extends Page>>();
+        list.add(AddRepositoryPage.class);
+        return list;
+    }
 
 }

Added: karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/resources/org/apache/karaf/webconsole/karaf/internal/repository/AddRepositoryPage.html
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/resources/org/apache/karaf/webconsole/karaf/internal/repository/AddRepositoryPage.html?rev=1161512&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/resources/org/apache/karaf/webconsole/karaf/internal/repository/AddRepositoryPage.html (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/karaf/src/main/resources/org/apache/karaf/webconsole/karaf/internal/repository/AddRepositoryPage.html Thu Aug 25 11:29:06 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" >
+    <wicket:head>
+        <title>Karaf Wicket console - Features page</title>
+    </wicket:head>
+
+    <body>
+        <wicket:extend>
+            <h1>Add feature repository</h1>
+
+            <form wicket:id="add">
+                <span wicket:id="border">
+                    <input type="text" wicket:id="uri" value="mvn:foo/bar/1.0.0/xml/features" />
+                </span>
+
+                <input type="submit" wicket:id="submit" value="Confirm" />
+            </form>
+
+        </wicket:extend>
+    </body>
+
+</html>