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>