blob: 1b5ad39540261ff783c153f958695311dda8b227 [file] [log] [blame]
package org.apache.karaf.webconsole.karaf.internal.feature;
import org.apache.karaf.features.FeaturesService;
import org.apache.wicket.ResourceReference;
import org.apache.wicket.markup.html.image.Image;
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 {
@PaxWicketBean(name = "featuresService")
private FeaturesService featuresService;
private ExtendedFeature extendedFeature;
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();
Link link = new Link("link") {
@Override
public void onClick() {
try {
switch (extendedFeature.getState()) {
case INSTALLED:
featuresService.uninstallFeature(extendedFeature.getName());
break;
case UNINSTALLED:
featuresService.installFeature(extendedFeature.getName());
break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
add(link);
// add image to the link
link.add(new Image("actionButton", getImage(extendedFeature.getState())));
}
protected ResourceReference getImage(final ExtendedFeature.State action) {
final ResourceReference image;
switch (action) {
case INSTALLED :
image = UNINSTALL_IMG;
break;
case UNINSTALLED :
image = INSTALL_IMG;
break;
default:
image = INSTALL_IMG;
break;
}
return image;
}
/*
SubmitLink removeLink = new SubmitLink("install", form) {
@Override
public void onSubmit()
{
ExtendedFeature extendedFeature = (ExtendedFeature)ActionPanel.this.getDefaultModelObject();
info("Install feature" + extendedFeature);
// call features service
}
};
removeLink.setDefaultFormProcessing(false);
add(removeLink);*/
}