package ro.nextreports.server.web.action.schedule; import org.apache.wicket.AttributeModifier; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.spring.injection.annot.SpringBean; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ro.nextreports.engine.util.ObjectCloner; import ro.nextreports.server.domain.Entity; import ro.nextreports.server.domain.SchedulerJob; import ro.nextreports.server.service.StorageService; import ro.nextreports.server.web.core.EntityBrowserPanel; import ro.nextreports.server.web.core.action.ActionAjaxLink; import ro.nextreports.server.web.core.action.ActionContext; import ro.nextreports.server.web.schedule.ScheduleWizard; public class CloneActionLink extends ActionAjaxLink { private static final long serialVersionUID = 1L; private static final Logger LOG = LoggerFactory.getLogger(CloneActionLink.class); @SpringBean private StorageService storageService; public CloneActionLink(ActionContext actionContext) { super(actionContext); } public void executeAction(AjaxRequestTarget target) { Entity entity = getActionContext().getEntity(); try { Entity clonedEntity = ObjectCloner.silenceDeepCopy(entity); String cloneName = clonedEntity.getName() + "_clone"; clonedEntity.setName(cloneName); String id = storageService.addEntity(clonedEntity); SchedulerJob job = (SchedulerJob)storageService.getEntityById(id); EntityBrowserPanel panel = findParent(EntityBrowserPanel.class); ScheduleWizard wizard = new ScheduleWizard("work", job); wizard.add(AttributeModifier.append("class", "wizardScheduler")); panel.forwardWorkspace(wizard , target); //setResponsePage(new ScheduleWizardPage(job)); } catch (Exception e) { e.printStackTrace(); } } }