package org.orienteer.core.component.widget.schema;
import com.orientechnologies.orient.core.index.OIndex;
import com.orientechnologies.orient.core.record.impl.ODocument;
import org.apache.wicket.model.IModel;
import org.orienteer.core.component.widget.AbstractIndexesWidget;
import org.orienteer.core.widget.Widget;
import ru.ydn.wicket.wicketorientdb.OrientDbWebSession;
import ru.ydn.wicket.wicketorientdb.model.AbstractListModel;
import ru.ydn.wicket.wicketorientdb.model.OIndexesDataProvider;
import java.util.Collection;
/**
* Widget to show and modify all schema {@link OIndex}es
*/
@Widget(id="schema-indexes", domain="schema", tab="indexes", order=30, autoEnable=true)
public class SchemaIndexesWidget extends AbstractIndexesWidget<Void> {
public SchemaIndexesWidget(String id, IModel<Void> model,
IModel<ODocument> widgetDocumentModel) {
super(id, model, widgetDocumentModel);
}
@Override
protected String getCaptionResourceKey() {
return "schema.all.indexes";
}
@Override
protected OIndexesDataProvider getIndexDataProvider() {
AbstractListModel<OIndex<?>> allIndexesModel = new AbstractListModel<OIndex<?>>() {
@Override
protected Collection<OIndex<?>> getData() {
return (Collection<OIndex<?>>) OrientDbWebSession.get().getDatabase().getMetadata().getIndexManager().getIndexes();
}
};
return new OIndexesDataProvider(allIndexesModel);
}
}