package org.orienteer.core.component.command; import java.util.List; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.event.Broadcast; import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.model.IModel; import org.apache.wicket.model.PropertyModel; import org.apache.wicket.model.ResourceModel; import org.orienteer.core.component.BootstrapType; import org.orienteer.core.component.FAIconType; import org.orienteer.core.component.table.CheckBoxColumn; import org.orienteer.core.component.table.DataTableCommandsToolbar; import org.orienteer.core.component.table.OrienteerDataTable; import com.orientechnologies.orient.core.db.document.ODatabaseDocument; import com.orientechnologies.orient.core.metadata.schema.OClass; import com.orientechnologies.orient.core.metadata.schema.OProperty; import com.orientechnologies.orient.core.record.impl.ODocument; import ru.ydn.wicket.wicketorientdb.model.OClassModel; import ru.ydn.wicket.wicketorientdb.security.ISecuredComponent; import ru.ydn.wicket.wicketorientdb.security.OSecurityHelper; import ru.ydn.wicket.wicketorientdb.security.OrientPermission; import ru.ydn.wicket.wicketorientdb.security.RequiredOrientResource; /** * {@link Command} to delete an {@link ODocument} */ public class DeleteODocumentCommand extends AbstractDeleteCommand<ODocument> implements ISecuredComponent { private static final long serialVersionUID = 1L; private IModel<OClass> classModel; public DeleteODocumentCommand(OrienteerDataTable<ODocument, ?> table, OClass oClasss) { this(table, new OClassModel(oClasss)); } public DeleteODocumentCommand(OrienteerDataTable<ODocument, ?> table, IModel<OClass> classModel) { super(table); this.classModel = classModel; } @Override protected void performMultiAction(AjaxRequestTarget target, List<ODocument> objects) { super.performMultiAction(target, objects); ODatabaseDocument db = getDatabase(); db.commit(true); db.begin(); db.getMetadata().reload(); } @Override protected void perfromSingleAction(AjaxRequestTarget target, ODocument object) { object.delete(); } @Override public RequiredOrientResource[] getRequiredResources() { return OSecurityHelper.requireOClass(classModel.getObject(), OrientPermission.DELETE); } }