private List<TreeItem<DbTreeValue>> buildIndexes(DbTreeValue value) { MongoCollection<Document> collection = value.getMongoDatabase().getMongoDb().getCollection(value.getCollectionName()); return StreamSupport.stream(collection.listIndexes().spliterator(), false) .map( d -> { DbTreeValue val = new DbTreeValue( value.getMongoDatabase(), (String) d.get("name"), TreeValueType.INDEX); val.setCollectionName(value.getDisplayValue()); return new TreeItem<>(val, new FontAwesomeIconView(FontAwesomeIcon.ASTERISK)); }) .collect(Collectors.toList()); }
private void onDropIndex(ActionEvent ev) { DbTreeValue value = treeView.getSelectionModel().getSelectedItem().getValue(); String indexName = value.getDisplayValue(); Alert alert = new Alert(AlertType.CONFIRMATION); alert.setHeaderText("Drop index " + indexName); alert.setContentText("Are you sure?"); alert .showAndWait() .filter(r -> r == ButtonType.OK) .ifPresent( r -> { value.getMongoDatabase().dropIndex(value.getCollectionName(), indexName); reloadSelectedTreeItem(); }); }