Search in sources :

Example 1 with AttachmentAdvisor

use of org.incode.module.document.dom.impl.applicability.AttachmentAdvisor in project estatio by estatio.

the class DocumentTemplate method newAttachmentAdvisor.

@Programmatic
public AttachmentAdvisor newAttachmentAdvisor(final Object domainObject) {
    final Class<?> domainObjectClass = domainObject.getClass();
    final com.google.common.base.Optional<Applicability> applicabilityIfAny = FluentIterable.from(getAppliesTo()).filter(applicability -> applies(applicability, domainObjectClass)).first();
    if (!applicabilityIfAny.isPresent()) {
        return null;
    }
    final AttachmentAdvisor attachmentAdvisor = (AttachmentAdvisor) classService.instantiate(applicabilityIfAny.get().getAttachmentAdvisorClassName());
    serviceRegistry2.injectServicesInto(attachmentAdvisor);
    return attachmentAdvisor;
}
Also used : DocumentType(org.incode.module.document.dom.impl.types.DocumentType) EventHandler(org.axonframework.eventhandling.annotation.EventHandler) SortedSet(java.util.SortedSet) FqcnType(org.incode.module.document.dom.types.FqcnType) URL(java.net.URL) RendererFromCharsToCharsWithPreviewToUrl(org.incode.module.document.dom.impl.renderers.RendererFromCharsToCharsWithPreviewToUrl) Unique(javax.jdo.annotations.Unique) StringUtils(org.apache.commons.lang3.StringUtils) JDOHelper(javax.jdo.JDOHelper) Collection(org.apache.isis.applib.annotation.Collection) DomainObjectLayout(org.apache.isis.applib.annotation.DomainObjectLayout) ActionLayout(org.apache.isis.applib.annotation.ActionLayout) TitleService(org.apache.isis.applib.services.title.TitleService) FluentIterable(com.google.common.collect.FluentIterable) ApplicationException(org.apache.isis.applib.ApplicationException) IdentityType(javax.jdo.annotations.IdentityType) FactoryService(org.apache.isis.applib.services.factory.FactoryService) ClassNameViewModel(org.incode.module.document.dom.services.ClassNameViewModel) Blob(org.apache.isis.applib.value.Blob) RendererModelFactory(org.incode.module.document.dom.impl.applicability.RendererModelFactory) TranslatableString(org.apache.isis.applib.services.i18n.TranslatableString) ServiceRegistry2(org.apache.isis.applib.services.registry.ServiceRegistry2) Applicability(org.incode.module.document.dom.impl.applicability.Applicability) RendererFromCharsToBytes(org.incode.module.document.dom.impl.renderers.RendererFromCharsToBytes) MemberOrder(org.apache.isis.applib.annotation.MemberOrder) ApplicabilityRepository(org.incode.module.document.dom.impl.applicability.ApplicabilityRepository) List(java.util.List) DomainObject(org.apache.isis.applib.annotation.DomainObject) RendererFromCharsToChars(org.incode.module.document.dom.impl.renderers.RendererFromCharsToChars) TransactionService(org.apache.isis.applib.services.xactn.TransactionService) DocumentModule(org.incode.module.document.DocumentModule) AttachmentAdvisorAttachToNone(org.incode.module.document.dom.impl.applicability.AttachmentAdvisorAttachToNone) Clob(org.apache.isis.applib.value.Clob) Setter(lombok.Setter) PersistenceCapable(javax.jdo.annotations.PersistenceCapable) Renderer(org.incode.module.document.dom.impl.renderers.Renderer) AtPathType(org.incode.module.document.dom.types.AtPathType) Getter(lombok.Getter) Column(javax.jdo.annotations.Column) DomainService(org.apache.isis.applib.annotation.DomainService) TreeSet(java.util.TreeSet) Programmatic(org.apache.isis.applib.annotation.Programmatic) AttachmentAdvisor(org.incode.module.document.dom.impl.applicability.AttachmentAdvisor) AttachmentAdvisorClassNameService(org.incode.module.document.dom.spi.AttachmentAdvisorClassNameService) Inject(javax.inject.Inject) Indices(javax.jdo.annotations.Indices) Uniques(javax.jdo.annotations.Uniques) Inheritance(javax.jdo.annotations.Inheritance) Subscribe(com.google.common.eventbus.Subscribe) Parameter(org.apache.isis.applib.annotation.Parameter) RenderingStrategy(org.incode.module.document.dom.impl.rendering.RenderingStrategy) Queries(javax.jdo.annotations.Queries) Action(org.apache.isis.applib.annotation.Action) NatureOfService(org.apache.isis.applib.annotation.NatureOfService) Property(org.apache.isis.applib.annotation.Property) RendererFromBytesToBytes(org.incode.module.document.dom.impl.renderers.RendererFromBytesToBytes) RendererFromBytesToBytesWithPreviewToUrl(org.incode.module.document.dom.impl.renderers.RendererFromBytesToBytesWithPreviewToUrl) RendererFromCharsToBytesWithPreviewToUrl(org.incode.module.document.dom.impl.renderers.RendererFromCharsToBytesWithPreviewToUrl) IOException(java.io.IOException) Where(org.apache.isis.applib.annotation.Where) InheritanceStrategy(javax.jdo.annotations.InheritanceStrategy) AbstractSubscriber(org.apache.isis.applib.AbstractSubscriber) BookmarkPolicy(org.apache.isis.applib.annotation.BookmarkPolicy) LocalDate(org.joda.time.LocalDate) Mixin(org.apache.isis.applib.annotation.Mixin) SemanticsOf(org.apache.isis.applib.annotation.SemanticsOf) Editing(org.apache.isis.applib.annotation.Editing) RendererFromBytesToChars(org.incode.module.document.dom.impl.renderers.RendererFromBytesToChars) RendererFromBytesToCharsWithPreviewToUrl(org.incode.module.document.dom.impl.renderers.RendererFromBytesToCharsWithPreviewToUrl) ParameterLayout(org.apache.isis.applib.annotation.ParameterLayout) RendererModelFactoryClassNameService(org.incode.module.document.dom.spi.RendererModelFactoryClassNameService) Index(javax.jdo.annotations.Index) Contributed(org.apache.isis.applib.annotation.Contributed) BackgroundService2(org.apache.isis.applib.services.background.BackgroundService2) ClassService(org.incode.module.document.dom.services.ClassService) AttachmentAdvisor(org.incode.module.document.dom.impl.applicability.AttachmentAdvisor) Applicability(org.incode.module.document.dom.impl.applicability.Applicability) Programmatic(org.apache.isis.applib.annotation.Programmatic)

Example 2 with AttachmentAdvisor

use of org.incode.module.document.dom.impl.applicability.AttachmentAdvisor in project estatio by estatio.

the class DocumentTemplate method newAttachmentAdvice.

@Programmatic
public List<AttachmentAdvisor.PaperclipSpec> newAttachmentAdvice(final Document document, final Object domainObject) {
    final AttachmentAdvisor attachmentAdvisor = newAttachmentAdvisor(domainObject);
    if (attachmentAdvisor == null) {
        throw new IllegalStateException(String.format("For domain template %s, could not locate Applicability for domain object: %s", getName(), domainObject.getClass().getName()));
    }
    final List<AttachmentAdvisor.PaperclipSpec> paperclipSpecs = attachmentAdvisor.advise(this, domainObject, document);
    return paperclipSpecs;
}
Also used : AttachmentAdvisor(org.incode.module.document.dom.impl.applicability.AttachmentAdvisor) Programmatic(org.apache.isis.applib.annotation.Programmatic)

Example 3 with AttachmentAdvisor

use of org.incode.module.document.dom.impl.applicability.AttachmentAdvisor in project estatio by estatio.

the class DocumentTemplateForAtPathService method documentTemplatesForCreateAndAttach.

@Programmatic
public List<DocumentTemplate> documentTemplatesForCreateAndAttach(final Object domainObject) {
    final List<DocumentTemplate> templates = Lists.newArrayList();
    final String atPath = atPathFor(domainObject);
    if (atPath == null) {
        return templates;
    }
    final List<DocumentTemplate> templatesForPath = documentTemplateRepository.findByApplicableToAtPath(atPath);
    return Lists.newArrayList(templatesForPath.stream().filter(template -> {
        final AttachmentAdvisor advisor = template.newAttachmentAdvisor(domainObject);
        if (advisor == null) {
            return false;
        }
        // at this stage we are asking the advisor if it would be able to attach a document
        // if created.  We don't yet have that document, so it is null.
        final Document document = null;
        final List<AttachmentAdvisor.PaperclipSpec> paperclipSpecs = advisor.advise(template, domainObject, document);
        return canCreate(template, paperclipSpecs);
    }).collect(Collectors.toList()));
}
Also used : AttachmentAdvisor(org.incode.module.document.dom.impl.applicability.AttachmentAdvisor) DocumentTemplate(org.incode.module.document.dom.impl.docs.DocumentTemplate) Document(org.incode.module.document.dom.impl.docs.Document) Programmatic(org.apache.isis.applib.annotation.Programmatic)

Aggregations

Programmatic (org.apache.isis.applib.annotation.Programmatic)3 AttachmentAdvisor (org.incode.module.document.dom.impl.applicability.AttachmentAdvisor)3 FluentIterable (com.google.common.collect.FluentIterable)1 Subscribe (com.google.common.eventbus.Subscribe)1 IOException (java.io.IOException)1 URL (java.net.URL)1 List (java.util.List)1 SortedSet (java.util.SortedSet)1 TreeSet (java.util.TreeSet)1 Inject (javax.inject.Inject)1 JDOHelper (javax.jdo.JDOHelper)1 Column (javax.jdo.annotations.Column)1 IdentityType (javax.jdo.annotations.IdentityType)1 Index (javax.jdo.annotations.Index)1 Indices (javax.jdo.annotations.Indices)1 Inheritance (javax.jdo.annotations.Inheritance)1 InheritanceStrategy (javax.jdo.annotations.InheritanceStrategy)1 PersistenceCapable (javax.jdo.annotations.PersistenceCapable)1 Queries (javax.jdo.annotations.Queries)1 Unique (javax.jdo.annotations.Unique)1