import org.simantics.db.common.request.WriteRequest;
import org.simantics.db.common.utils.NameUtils;
import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.adapter.ActionFactory;
import org.simantics.layer0.Layer0;
import org.simantics.plant3d.Activator;
import org.simantics.plant3d.utils.P3DUtil;
-public class NewPlantHandler extends AbstractHandler {
+public class NewPlantHandler extends AbstractHandler implements ActionFactory {
+ // Action factory method
+ @Override
+ public Runnable create(final Object target) {
+ if (!(target instanceof Resource))
+ return null;
+
+ return new Runnable() {
+ @Override
+ public void run() {
+ createNewPlantJob((Resource) target);
+ }
+ };
+ }
+
+ // Handler method
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
final Resource library = Simantics.getProject().get();
+ createNewPlantJob(library);
+ return null;
+ }
+
+ /**
+ * Create a new plant as a user-triggered job.
+ *
+ * @param library Parent resource for the new plant.
+ */
+ public static void createNewPlantJob(final Resource library) {
Job job = new Job("Create Plant ") {
@Override
protected IStatus run(IProgressMonitor monitor) {
};
job.setUser(true);
job.schedule();
- return null;
}
}