in karaf/feature/src/main/java/org/apache/karaf/webconsole/karaf/feature/feature/FeaturesPage.java [53:91]
public FeaturesPage() throws Exception {
add(new CssBehavior(FeaturesPage.class, "features.css"));
for (Repository repository : featuresService.listRepositories()) {
for (Feature feature : repository.getFeatures()) {
feature2repo.put(feature.getId(), repository.getName());
}
}
IModel state = Model.of("state");
IModel version = Model.of("version");
IModel name = Model.of("name");
IModel repository = Model.of("repository");
IModel description = Model.of("description");
List<IColumn<Feature, String>> columns = new ArrayList<IColumn<Feature, String>>();
columns.add(new PropertyColumn<Feature, String>(new StringResourceModel("table.version", this, version), "version", "version"));
columns.add(new PropertyColumn<Feature, String>(new StringResourceModel("table.name", this, name), "name", "name"));
columns.add(new AbstractColumn<Feature, String>(new StringResourceModel("table.repository", this, repository), "repository") {
public void populateItem(Item<ICellPopulator<Feature>> cellItem, String componentId, IModel<Feature> rowModel) {
cellItem.add(new Label(componentId, feature2repo.get(rowModel.getObject().getId())));
}
});
columns.add(new PropertyColumn<Feature, String>(new StringResourceModel("table.description", this, description), "description", "description"));
columns.add(new AbstractColumn<Feature, String>(new StringResourceModel("table.state", this, state), "state") {
public void populateItem(Item<ICellPopulator<Feature>> cellItem, String componentId, IModel<Feature> rowModel) {
cellItem.add(new Label(componentId, featuresService.isInstalled(rowModel.getObject()) ? "Installed" : "Uninstalled"));
}
});
columns.add(new AbstractColumn<Feature, String>(new ResourceModel("table.actions")) {
public void populateItem(Item<ICellPopulator<Feature>> cellItem, String componentId, IModel<Feature> model) {
cellItem.add(new FeaturesActionsPanel(componentId, model));
}
});
add(new BaseDataTable<Feature>("features", columns, new FeaturesProvider(featuresService), 20));
}