public FeaturesPage()

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));

    }