Re: ERAttachment... to-many and thumbs
Re: ERAttachment... to-many and thumbs
- Subject: Re: ERAttachment... to-many and thumbs
- From: Denis Frolov <email@hidden>
- Date: Wed, 24 Nov 2010 13:57:43 +0300
The problem is that you have a relationship to the abstract
ERAttachment entity. I see two possible solutions:
1. Make a relationship to specific sub-entity of ERAttachment (e.g.
ERFileAttachment). I haven't done this personally, but this should
solve your problem.
2. Add support for getting "destinationEntityName" from rules before
trying the relationship entity in this method of
ERMODEditRelationshipPage:
public WOComponent newObjectAction() {
EOEditingContext newEc =
ERXEC.newEditingContext(masterObject().editingContext());
EOClassDescription relatedObjectClassDescription =
masterObject().classDescriptionForDestinationKey(relationshipKey());
EOEnterpriseObject relatedObject =
(EOEnterpriseObject)EOUtilities.createAndInsertInstance(newEc,
relatedObjectClassDescription.entityName());
The problem is that ERMODEditRelationshipPage doesn't know anything
about attachments and cannot figure our which concrete sub-entity of
ERAttachment to use.
Denis
On Tue, Nov 23, 2010 at 6:51 PM, Francesco Romano
<email@hidden> wrote:
>
> Francesco
> On 23/nov/2010, at 14.43, Denis Frolov wrote:
>
> On Tue, Nov 23, 2010 at 3:06 PM, Francesco Romano
> <email@hidden> wrote:
>
> On 23/nov/2010, at 12.30, Denis Frolov wrote:
>
> I think ERAttachmentViewer doesn't resize the image itself - it just passes
>
> the width/height to WOImage. So, this approach is indeed "heavy". You can
>
> create thumbnails upon upload and add them to "childrenAttachments"
>
> relationship. After that you can show the thumbnail by accessing it via
>
> "childrenAttachments" relationship on your list pages (you can add a cover
>
> method for thumbnail to Product.java).
>
> So I have to create the thumb...
>
> How can I manage the upload?
>
> Not sure, what you mean here, but the idea is to create a thumbnail
> and then save it as child ERAttachment of this attachment.
>
> Now I override willUpdate and willInsert in ProductERAttachment entity.
>
> @Override
>
> public void willInsert() {
>
> this.updateThumbnail();
>
> super.willInsert();
>
> }
>
> @Override
>
> public void willUpdate() {
>
> this.updateThumbnail();
>
> super.willUpdate();
>
> }
>
> private void updateThumbnail() {
>
> ERImageProcessor.imageProcessor().thumbnail(40, 40, inputFile, outputFile);
>
> }
>
> But... what about inputFile? How can I retrieve it from the ERAttachment
>
> object?
>
> new File(((ERFileAttachment) attachment()).filesystemPath())
>
> I have not tried yet my code, because of the exception, but i wrote this:
> File inputFile = new
> File(((ERFileAttachment)erAttachment()).filesystemPath());
>
> File outputFile = null;
> try {
> outputFile = File.createTempFile("erattachment-thumb",
> inputFile.getName().substring(inputFile.getName().lastIndexOf('.')));
> ERImageProcessor.imageProcessor().thumbnail(40, 40, inputFile, outputFile);
>
> ERAttachment attachment =
> ERAttachmentProcessor.processorForType(erAttachment().storageType()).process(erAttachment().editingContext(),
> outputFile);
> NSArray<ERAttachment> children = erAttachment().childrenAttachments();
> if (children.count() > 0)
> erAttachment().deleteAllChildrenAttachmentsRelationships();
> attachment.setThumbnail("40x40");
> erAttachment().addToChildrenAttachmentsRelationship(attachment);
>
> } catch (IOException e1) {
> // TODO Auto-generated catch block
> e1.printStackTrace();
> }
>
>
>
> To fix the exception try adding the rule like this:
>
> entity.name = 'Product' and task = 'edit' and propertyKey = 'photos'
>
> => destinationEntityName = 'ERFileAttachment'
>
> It doesn't fix the problem...This is strange... in a previous test (some
>
> days ago) I did not have this error... just the form encryption exception...
>
> What's the full stack trace?
>
> Nov 23 16:34:14 PNStoreAdmin[5100] WARN NSLog -
> <er.ajax.AjaxRequestHandler>: Exception occurred while handling request:
> com.webobjects.foundation.NSForwardException
> [java.lang.InstantiationException] null:<er.attachment.model.ERAttachment>
> is an abstract class. It can not be instantiated !
> [2010-11-23 16:34:14 CET] <WorkerThread10>
> com.webobjects.foundation.NSForwardException
> [java.lang.InstantiationException] null:<er.attachment.model.ERAttachment>
> is an abstract class. It can not be instantiated !
> at
> com.webobjects.foundation._NSUtilities._explainInstantiationException(_NSUtilities.java:616)
> at
> com.webobjects.foundation._NSUtilities.instantiateObjectWithConstructor(_NSUtilities.java:665)
> at
> com.webobjects.eoaccess.EOEntityClassDescription.createInstanceWithEditingContext(EOEntityClassDescription.java:242)
> at
> er.extensions.eof.ERXEntityClassDescription.createInstanceWithEditingContext(ERXEntityClassDescription.java:739)
> at
> com.webobjects.eoaccess.EOUtilities.createAndInsertInstance(EOUtilities.java:861)
> at
> er.modern.look.pages.ERMODEditRelationshipPage.newObjectAction(ERMODEditRelationshipPage.java:102)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> com.webobjects.foundation.NSKeyValueCoding$ValueAccessor$1.methodValue(NSKeyValueCoding.java:636)
> at
> com.webobjects.foundation.NSKeyValueCoding$_MethodBinding.valueInObject(NSKeyValueCoding.java:1134)
> at
> com.webobjects.foundation.NSKeyValueCoding$DefaultImplementation.valueForKey(NSKeyValueCoding.java:1324)
> at com.webobjects.appserver.WOComponent.valueForKey(WOComponent.java:1736)
> at
> com.webobjects.foundation.NSKeyValueCoding$Utility.valueForKey(NSKeyValueCoding.java:447)
> at
> com.webobjects.foundation.NSKeyValueCodingAdditions$DefaultImplementation.valueForKeyPath(NSKeyValueCodingAdditions.java:212)
> at
> com.webobjects.appserver.WOComponent.valueForKeyPath(WOComponent.java:1804)
> at
> com.webobjects.appserver._private.WOKeyValueAssociation.valueInComponent(WOKeyValueAssociation.java:50)
> at
> com.webobjects.appserver.WOComponent.valueForBinding(WOComponent.java:731)
> at
> com.webobjects.appserver._private.WOBindingNameAssociation.valueInComponent(WOBindingNameAssociation.java:44)
> at er.ajax.AjaxUtils.valueForBinding(AjaxUtils.java:310)
> at er.ajax.AjaxDynamicElement.valueForBinding(AjaxDynamicElement.java:45)
> at er.ajax.AjaxUpdateLink.handleRequest(AjaxUpdateLink.java:383)
> at er.ajax.AjaxDynamicElement.invokeAction(AjaxDynamicElement.java:87)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at
> com.webobjects.appserver._private.WOConditional.invokeAction(WOConditional.java:86)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at
> com.webobjects.appserver._private.WOConditional.invokeAction(WOConditional.java:86)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
> at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:102)
> at
> er.extensions.components.ERXNonSynchronizingComponent.invokeAction(ERXNonSynchronizingComponent.java:60)
> at
> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at
> com.webobjects.appserver._private.WOConditional.invokeAction(WOConditional.java:86)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WOGenericContainer.invokeAction(WOGenericContainer.java:29)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at
> com.webobjects.appserver._private.WOConditional.invokeAction(WOConditional.java:86)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WOGenericContainer.invokeAction(WOGenericContainer.java:29)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at
> com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComponentContent.java:38)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at
> com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComponentContent.java:38)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at
> com.webobjects.appserver._private.WOConditional.invokeAction(WOConditional.java:86)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
> at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:102)
> at
> er.extensions.components.ERXNonSynchronizingComponent.invokeAction(ERXNonSynchronizingComponent.java:60)
> at
> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at er.ajax.AjaxDynamicElement.invokeAction(AjaxDynamicElement.java:98)
> at er.ajax.AjaxUpdateContainer.invokeAction(AjaxUpdateContainer.java:80)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
> at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:102)
> at
> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at
> com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComponentContent.java:38)
> at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
> at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:102)
> at
> er.extensions.components.ERXNonSynchronizingComponent.invokeAction(ERXNonSynchronizingComponent.java:60)
> at
> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
> at
> er.extensions.components._private.ERXSwitchComponent.invokeAction(ERXSwitchComponent.java:117)
> at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
> at er.directtoweb.pages.ERD2WPage.invokeAction(ERD2WPage.java:625)
> at
> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
> at
> er.extensions.components._private.ERXSwitchComponent.invokeAction(ERXSwitchComponent.java:117)
> at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
> at
> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
> at
> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at er.ajax.AjaxDynamicElement.invokeAction(AjaxDynamicElement.java:98)
> at er.ajax.AjaxUpdateContainer.invokeAction(AjaxUpdateContainer.java:80)
> at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
> at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:102)
> at
> er.extensions.components.ERXNonSynchronizingComponent.invokeAction(ERXNonSynchronizingComponent.java:60)
> at
> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
> at
> er.extensions.components._private.ERXSwitchComponent.invokeAction(ERXSwitchComponent.java:117)
> at
> com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComponentContent.java:38)
> at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
> at
> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WOGenericContainer.invokeAction(WOGenericContainer.java:29)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WOGenericContainer.invokeAction(WOGenericContainer.java:29)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at
> er.extensions.components._private.ERXWORepetition.invokeAction(ERXWORepetition.java:496)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WOGenericContainer.invokeAction(WOGenericContainer.java:29)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at
> er.extensions.components._private.ERXWORepetition.invokeAction(ERXWORepetition.java:496)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WOGenericContainer.invokeAction(WOGenericContainer.java:29)
> at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
> at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:102)
> at
> er.extensions.components.ERXNonSynchronizingComponent.invokeAction(ERXNonSynchronizingComponent.java:60)
> at
> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
> at
> er.extensions.components._private.ERXSwitchComponent.invokeAction(ERXSwitchComponent.java:117)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WOGenericContainer.invokeAction(WOGenericContainer.java:29)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at
> com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComponentContent.java:38)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at
> com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComponentContent.java:38)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at
> er.extensions.components._private.ERXWOForm.invokeAction(ERXWOForm.java:219)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> er.extensions.components.conditionals.ERXWOConditional.invokeChildrenAction(ERXWOConditional.java:113)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at
> er.extensions.components.conditionals.ERXWOConditional.invokeAction(ERXWOConditional.java:104)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at
> com.webobjects.appserver._private.WOConditional.invokeAction(WOConditional.java:86)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
> at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:102)
> at
> er.extensions.components.ERXNonSynchronizingComponent.invokeAction(ERXNonSynchronizingComponent.java:60)
> at
> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at er.ajax.AjaxDynamicElement.invokeAction(AjaxDynamicElement.java:98)
> at er.ajax.AjaxUpdateContainer.invokeAction(AjaxUpdateContainer.java:80)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
> at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:102)
> at
> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at
> com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComponentContent.java:38)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at
> com.webobjects.appserver._private.WOHTMLURLValuedElement.invokeAction(WOHTMLURLValuedElement.java:149)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WODynamicGroup.java:105)
> at
> com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicGroup.java:115)
> at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
> at er.extensions.components.ERXComponent.invokeAction(ERXComponent.java:102)
> at
> com.webobjects.appserver._private.WOComponentReference.invokeAction(WOComponentReference.java:127)
> at
> er.extensions.components._private.ERXSwitchComponent.invokeAction(ERXSwitchComponent.java:117)
> at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:1079)
> at er.directtoweb.pages.ERD2WPage.invokeAction(ERD2WPage.java:625)
> at com.webobjects.appserver.WOSession.invokeAction(WOSession.java:1357)
> at
> com.webobjects.appserver.WOApplication.invokeAction(WOApplication.java:1745)
> at
> er.extensions.appserver.ajax.ERXAjaxApplication.invokeAction(ERXAjaxApplication.java:93)
> at
> er.extensions.appserver.ERXApplication.invokeAction(ERXApplication.java:1863)
> at
> com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedPage(WOComponentRequestHandler.java:206)
> at
> com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedSession(WOComponentRequestHandler.java:298)
> at
> com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedApplication(WOComponentRequestHandler.java:332)
> at
> com.webobjects.appserver._private.WOComponentRequestHandler._handleRequest(WOComponentRequestHandler.java:369)
> at
> com.webobjects.appserver._private.WOComponentRequestHandler.handleRequest(WOComponentRequestHandler.java:442)
> at er.ajax.AjaxRequestHandler.handleRequest(AjaxRequestHandler.java:17)
> at
> com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1687)
> at
> er.extensions.appserver.ERXApplication.dispatchRequestImmediately(ERXApplication.java:1978)
> at
> er.extensions.appserver.ERXApplication.dispatchRequest(ERXApplication.java:1943)
> at
> com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java:144)
> at
> com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:226)
> at java.lang.Thread.run(Thread.java:680)
> Caused by: java.lang.InstantiationException
> at
> sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:30)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> at
> com.webobjects.foundation._NSUtilities.instantiateObjectWithConstructor(_NSUtilities.java:659)
> ... 180 more
> Nov 23 16:34:14 PNStoreAdmin[5100] ERROR
> er.extensions.appserver.ERXApplication - Exception caught:
> <er.attachment.model.ERAttachment> is an abstract class. It can not be
> instantiated !
> Extra info: {
> "D2W-SubTask" = "null";
> "D2W-PageConfiguration" = "EditRelationshipEmbeddedERAttachment";
> "CurrentComponent" = "er.coolcomponents.CCSmartAjaxButton";
> "PreviousPageList" = (
> "ListProduct",
> "CreateProduct"
> );
> "D2W-PropertyKey" = "null";
> "D2W-DisplayPropertyKeys" = (
> "available",
> "configurationName",
> "creationDate",
> "height",
> "mimeType",
> "originalFileName",
> "ownerID",
> "proxied",
> "size",
> "storageType",
> "thumbnail",
> "webPath",
> "width"
> );
> "CurrentPage" = "er.modern.look.pages.ERMODWizardCreationPage";
> "URL" =
> "/cgi-bin/WebObjects/PNStoreAdmin.woa/ajax/L7OIB7bIogbcaIMUrHMdYw/5.0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.5.1.3.1.0.1.0.0.0.1.2.3.1.0.3.3.5.1.5.1.2.1.1?_u=MUC_EditRelationshipEmbeddedERAttachment&1290526454890";
> "CurrentComponentHierarchy" = (
> "er.modern.look.pages.ERMODWizardCreationPage",
> "er.modern.directtoweb.components.repetitions.ERMDInspectPageRepetition",
> "er.modern.directtoweb.components.embedded.ERMDEditRelationship",
> "er.modern.directtoweb.components.embedded.ERMD2WEditRelationship",
> "er.directtoweb.components.ERD2WSwitchComponent",
> "er.modern.look.pages.ERMODEditRelationshipPage",
> "er.coolcomponents.CCSmartAjaxButton"
> );
> "D2W-EntityName" = "ERAttachment";
> "D2W-ComponentName" = "ERD2WDisplayString";
> "Session" = "<com.portonapoleone.store.admin.Session
> sessionID=L7OIB7bIogbcaIMUrHMdYw timeOut(sec)=3600.0 terminating=false
> _wasTimedOut=false contextArray=((\"0\"), (\"3\"), (\"2\"), (\"5\"))
> contextPageInfos={0 = <com.webobjects.appserver._private.WOTransactionRecord
> responsePage=<er.modern.look.pages.ERMODQueryEntitiesPage name:
> er.modern.look.pages.ERMODQueryEntitiesPage subcomponents:
> {0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.8.3.1.7 =
> <er.coolcomponents.CCSubmitLinkButton name:
> er.coolcomponents.CCSubmitLinkButton subcomponents:
> {0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.8.3.1.7.0 = <er.coolcomponents.CCSubmitLink
> name: er.coolcomponents.CCSubmitLink subcomponents: null >; } >;
> 0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.5.3.1.5 =
> <er.coolcomponents.CCSubmitLinkButton name:
> er.coolcomponents.CCSubmitLinkButton subcomponents:
> {0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.5.3.1.5.0 = <er.coolcomponents.CCSubmitLink
> name: er.coolcomponents.CCSubmitLink subcomponents: null >; } >;
> 0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.7.3.1.5 =
> <er.coolcomponents.CCSubmitLinkButton name:
> er.coolcomponents.CCSubmitLinkButton subcomponents:
> {0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.7.3.1.5.0 = <er.coolcomponents.CCSubmitLink
> name: er.coolcomponents.CCSubmitLink subcomponents: null >; } >;
> 0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.8.3.1.5 =
> <er.coolcomponents.CCSubmitLinkButton name:
> er.coolcomponents.CCSubmitLinkButton subcomponents:
> {0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.8.3.1.5.0 = <er.coolcomponents.CCSubmitLink
> name: er.coolcomponents.CCSubmitLink subcomponents: null >; } >;
> 0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.2.3.1.5 =
> <er.coolcomponents.CCSubmitLinkButton name:
> er.coolcomponents.CCSubmitLinkButton subcomponents:
> {0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.2.3.1.5.0 = <er.coolcomponents.CCSubmitLink
> name: er.coolcomponents.CCSubmitLink subcomponents: null >; } >;
> 0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.6.3.1.5 =
> <er.coolcomponents.CCSubmitLinkButton name:
> er.coolcomponents.CCSubmitLinkButton subcomponents:
> {0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.6.3.1.5.0 = <er.coolcomponents.CCSubmitLink
> name: er.coolcomponents.CCSubmitLink subcomponents: null >; } >; 0 =
> <com.portonapoleone.store.admin.ui.components.PageWrapper name:
> com.portonapoleone.store.admin.ui.components.PageWrapper subcomponents:
> {0.3.3 = <com.portonapoleone.store.admin.ui.components.MenuHeader name:
> com.portonapoleone.store.admin.ui.components.MenuHeader subcomponents: null
>>; 0.1 = <er.directtoweb.components.ERD2WHead name:
> er.directtoweb.components.ERD2WHead subcomponents: null >; } >;
> 0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.1.3.1.7 =
> <er.coolcomponents.CCSubmitLinkButton name:
> er.coolcomponents.CCSubmitLinkButton subcomponents:
> {0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.1.3.1.7.0 = <er.coolcomponents.CCSubmitLink
> name: er.coolcomponents.CCSubmitLink subcomponents: null >; } >;
> 0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.4.3.1.5 =
> <er.coolcomponents.CCSubmitLinkButton name:
> er.coolcomponents.CCSubmitLinkButton subcomponents:
> {0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.4.3.1.5.0 = <er.coolcomponents.CCSubmitLink
> name: er.coolcomponents.CCSubmitLink subcomponents: null >; } >;
> 0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.0.3.1.5 =
> <er.coolcomponents.CCSubmitLinkButton name:
> er.coolcomponents.CCSubmitLinkButton subcomponents:
> {0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.0.3.1.5.0 = <er.coolcomponents.CCSubmitLink
> name: er.coolcomponents.CCSubmitLink subcomponents: null >; } >;
> 0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.1.3.1.5 =
> <er.coolcomponents.CCSubmitLinkButton name:
> er.coolcomponents.CCSubmitLinkButton subcomponents:
> {0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.1.3.1.5.0 = <er.coolcomponents.CCSubmitLink
> name: er.coolcomponents.CCSubmitLink subcomponents: null >; } >;
> 0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.0.3.1.7 =
> <er.coolcomponents.CCSubmitLinkButton name:
> er.coolcomponents.CCSubmitLinkButton subcomponents:
> {0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.0.3.1.7.0 = <er.coolcomponents.CCSubmitLink
> name: er.coolcomponents.CCSubmitLink subcomponents: null >; } >;
> 0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.3.3.1.5 =
> <er.coolcomponents.CCSubmitLinkButton name:
> er.coolcomponents.CCSubmitLinkButton subcomponents:
> {0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.3.3.1.5.0 = <er.coolcomponents.CCSubmitLink
> name: er.coolcomponents.CCSubmitLink subcomponents: null >; } >;
> 0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.2.3.1.7 =
> <er.coolcomponents.CCSubmitLinkButton name:
> er.coolcomponents.CCSubmitLinkButton subcomponents:
> {0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.2.3.1.7.0 = <er.coolcomponents.CCSubmitLink
> name: er.coolcomponents.CCSubmitLink subcomponents: null >; } >;
> 0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.3.3.1.7 =
> <er.coolcomponents.CCSubmitLinkButton name:
> er.coolcomponents.CCSubmitLinkButton subcomponents:
> {0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.3.3.1.7.0 = <er.coolcomponents.CCSubmitLink
> name: er.coolcomponents.CCSubmitLink subcomponents: null >; } >;
> 0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.4.3.1.7 =
> <er.coolcomponents.CCSubmitLinkButton name:
> er.coolcomponents.CCSubmitLinkButton subcomponents:
> {0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.4.3.1.7.0 = <er.coolcomponents.CCSubmitLink
> name: er.coolcomponents.CCSubmitLink subcomponents: null >; } >;
> 0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.5.3.1.7 =
> <er.coolcomponents.CCSubmitLinkButton name:
> er.coolcomponents.CCSubmitLinkButton subcomponents:
> {0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.5.3.1.7.0 = <er.coolcomponents.CCSubmitLink
> name: er.coolcomponents.CCSubmitLink subcomponents: null >; } >;
> 0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.6.3.1.7 =
> <er.coolcomponents.CCSubmitLinkButton name:
> er.coolcomponents.CCSubmitLinkButton subcomponents:
> {0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.6.3.1.7.0 = <er.coolcomponents.CCSubmitLink
> name: er.coolcomponents.CCSubmitLink subcomponents: null >; } >;
> 0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.7.3.1.7 =
> <er.coolcomponents.CCSubmitLinkButton name:
> er.coolcomponents.CCSubmitLinkButton subcomponents:
> {0.3.5.1.2.3.1.0.3.1.1.0.1.0.1.7.3.1.7.0 = <er.coolcomponents.CCSubmitLink
> name: er.coolcomponents.CCSubmitLink subcomponents: null >; } >;
> 0.3.5.1.2.3.1.0.3.1.1.0.1 = <er.modern.look.components.ERMODSection name:
> er.modern.look.components.ERMODSection subcomponents: null >; 0.3.5.1 =
> <er.modern.look.components.ERMODRequiredWrapper name:
> er.modern.look.components.ERMODRequiredWrapper subcomponents:
> {0.3.5.1.2.3.1.0.1.1.1.0 =
> <er.modern.directtoweb.components.header.ERMD2WSimpleHeader name:
> er.modern.directtoweb.components.header.ERMD2WSimpleHeader subcomponents:
> null >; 0.3.5.1.0 = <er.directtoweb.components.ERDDebuggingHelp name:
> er.directtoweb.components.ERDDebuggingHelp subcomponents: null >; } >; } >
> requestSignature=null.null>; 2 =
> <com.webobjects.appserver._private.WOTransactionRecord
> responsePage=<er.modern.look.pages.ERMODListPage name:
> er.modern.look.pages.ERMODListPage subcomponents: {0 =
> <com.portonapoleone.store.admin.ui.components.PageWrapper name:
> com.portonapoleone.store.admin.ui.components.PageWrapper subcomponents:
> {0.3.3 = <com.portonapoleone.store.admin.ui.components.MenuHeader name:
> com.portonapoleone.store.admin.ui.components.MenuHeader subcomponents: null
>>; 0.1 = <er.directtoweb.components.ERD2WHead name:
> er.directtoweb.components.ERD2WHead subcomponents: null >; } >;
> 0.3.5.1.2.3.0.1.0.0.3.5.1.3 =
> <er.modern.look.components.ERMODSecondaryActionButtons name:
> er.modern.look.components.ERMODSecondaryActionButtons subcomponents: null >;
> 0.3.5.1.2.3.0.1.0.0.3.5.1.1.1 = <er.coolcomponents.CCSmartAjaxButton name:
> er.coolcomponents.CCSmartAjaxButton subcomponents:
> {0.3.5.1.2.3.0.1.0.0.3.5.1.1.1.0.0 = <er.coolcomponents.CCSubmitLinkButton
> name: er.coolcomponents.CCSubmitLinkButton subcomponents:
> {0.3.5.1.2.3.0.1.0.0.3.5.1.1.1.0.0.0 = <er.coolcomponents.CCSubmitLink name:
> er.coolcomponents.CCSubmitLink subcomponents: null >; } >; } >; 0.3.5.1 =
> <er.modern.look.components.ERMODRequiredWrapper name:
> er.modern.look.components.ERMODRequiredWrapper subcomponents: {0.3.5.1.0 =
> <er.directtoweb.components.ERDDebuggingHelp name:
> er.directtoweb.components.ERDDebuggingHelp subcomponents: null >;
> 0.3.5.1.2.3.0.1.0.0.1.1.1.0 =
> <er.modern.directtoweb.components.header.ERMD2WSimpleHeader name:
> er.modern.directtoweb.components.header.ERMD2WSimpleHeader subcomponents:
> null >; } >; } > requestSignature=0.0.3.3.5.2.1.0.2.0.1.1.0.0>; 3 =
> <com.webobjects.appserver._private.WOTransactionRecord
> responsePage=<com.webobjects.woextensions.WOExceptionPage name:
> com.webobjects.woextensions.WOExceptionPage subcomponents: {5 =
> <com.webobjects.woextensions.WOCollapsibleComponentContent name:
> com.webobjects.woextensions.WOCollapsibleComponentContent subcomponents:
> null >; } > requestSignature=null.null>; 5 =
> <com.webobjects.appserver._private.WOTransactionRecord
> responsePage=<er.modern.look.pages.ERMODWizardCreationPage name:
> er.modern.look.pages.ERMODWizardCreationPage subcomponents: {0 =
> <com.portonapoleone.store.admin.ui.components.PageWrapper name:
> com.portonapoleone.store.admin.ui.components.PageWrapper subcomponents:
> {0.3.3 = <com.portonapoleone.store.admin.ui.components.MenuHeader name:
> com.portonapoleone.store.admin.ui.components.MenuHeader subcomponents: null
>>; 0.1 = <er.directtoweb.components.ERD2WHead name:
> er.directtoweb.components.ERD2WHead subcomponents: null >; } >;
> 0.3.5.1.2.3.0.1.0.0.3.3.1.1 = <er.coolcomponents.CCSmartAjaxButton name:
> er.coolcomponents.CCSmartAjaxButton subcomponents:
> {0.3.5.1.2.3.0.1.0.0.3.3.1.1.0.0 = <er.coolcomponents.CCSubmitLinkButton
> name: er.coolcomponents.CCSubmitLinkButton subcomponents:
> {0.3.5.1.2.3.0.1.0.0.3.3.1.1.0.0.0 = <er.coolcomponents.CCSubmitLink name:
> er.coolcomponents.CCSubmitLink subcomponents: null >; } >; } >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0 =
> <er.modern.directtoweb.components.repetitions.ERMDInspectPageRepetition
> name: er.modern.directtoweb.components.repetitions.ERMDInspectPageRepetition
> subcomponents: {0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.4.1.3.1 =
> <com.webobjects.directtoweb.D2WEmptyWrapper name:
> com.webobjects.directtoweb.D2WEmptyWrapper subcomponents: null >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.5.1.3.1 =
> <com.webobjects.directtoweb.D2WEmptyWrapper name:
> com.webobjects.directtoweb.D2WEmptyWrapper subcomponents: null >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.6.1.3.1 =
> <com.webobjects.directtoweb.D2WEmptyWrapper name:
> com.webobjects.directtoweb.D2WEmptyWrapper subcomponents: null >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.5.1.3.1.0 =
> <er.modern.directtoweb.components.embedded.ERMDEditRelationship name:
> er.modern.directtoweb.components.embedded.ERMDEditRelationship
> subcomponents: {0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.5.1.3.1.0.1 =
> <er.modern.directtoweb.components.embedded.ERMD2WEditRelationship name:
> er.modern.directtoweb.components.embedded.ERMD2WEditRelationship
> subcomponents: {0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.5.1.3.1.0.1.0 =
> <er.directtoweb.components.ERD2WSwitchComponent name:
> er.directtoweb.components.ERD2WSwitchComponent subcomponents:
> {0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.5.1.3.1.0.1.0.0 =
> <er.modern.look.pages.ERMODEditRelationshipPage name:
> er.modern.look.pages.ERMODEditRelationshipPage subcomponents:
> {0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.5.1.3.1.0.1.0.0.0.1.2.3.1.0.3.3.5.1.5.1
> = <er.coolcomponents.CCSmartAjaxButton name:
> er.coolcomponents.CCSmartAjaxButton subcomponents: null >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.5.1.3.1.0.1.0.0.0.1.2.3.1.0.3.11 =
> <er.directtoweb.components.ERD2WExtraDisplayPropertyKeysComponent name:
> er.directtoweb.components.ERD2WExtraDisplayPropertyKeysComponent
> subcomponents: null >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.5.1.3.1.0.1.0.0.0.1.2.3.1.0.3.1 =
> <er.directtoweb.components.ERD2WExtraDisplayPropertyKeysComponent name:
> er.directtoweb.components.ERD2WExtraDisplayPropertyKeysComponent
> subcomponents: null >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.5.1.3.1.0.1.0.0.0.1.2.3.1.0.3.3.5.1.3 =
> <er.coolcomponents.CCSmartAjaxButton name:
> er.coolcomponents.CCSmartAjaxButton subcomponents: null >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.5.1.3.1.0.1.0.0.0.1 =
> <er.modern.look.components.ERMODRequiredWrapper name:
> er.modern.look.components.ERMODRequiredWrapper subcomponents:
> {0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.5.1.3.1.0.1.0.0.0.1.0 =
> <er.directtoweb.components.ERDDebuggingHelp name:
> er.directtoweb.components.ERDDebuggingHelp subcomponents: null >; } >; } >;
> } >; } >; } >; 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.7.1.3.1 =
> <com.webobjects.directtoweb.D2WEmptyWrapper name:
> com.webobjects.directtoweb.D2WEmptyWrapper subcomponents: null >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.3.1.3.1 =
> <com.webobjects.directtoweb.D2WEmptyWrapper name:
> com.webobjects.directtoweb.D2WEmptyWrapper subcomponents: null >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.0.1.3.1.0 =
> <er.modern.directtoweb.components.embedded.ERMDEditRelationship name:
> er.modern.directtoweb.components.embedded.ERMDEditRelationship
> subcomponents: {0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.0.1.3.1.0.1 =
> <er.modern.directtoweb.components.embedded.ERMD2WEditRelationship name:
> er.modern.directtoweb.components.embedded.ERMD2WEditRelationship
> subcomponents: {0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.0.1.3.1.0.1.0 =
> <er.directtoweb.components.ERD2WSwitchComponent name:
> er.directtoweb.components.ERD2WSwitchComponent subcomponents:
> {0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.0.1.3.1.0.1.0.0 =
> <er.modern.look.pages.ERMODEditRelationshipPage name:
> er.modern.look.pages.ERMODEditRelationshipPage subcomponents:
> {0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.0.1.3.1.0.1.0.0.0.1.2.3.1.0.3.1 =
> <er.directtoweb.components.ERD2WExtraDisplayPropertyKeysComponent name:
> er.directtoweb.components.ERD2WExtraDisplayPropertyKeysComponent
> subcomponents: null >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.0.1.3.1.0.1.0.0.0.1.2.3.1.0.3.3.5.1.3 =
> <er.coolcomponents.CCSmartAjaxButton name:
> er.coolcomponents.CCSmartAjaxButton subcomponents: null >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.0.1.3.1.0.1.0.0.0.1 =
> <er.modern.look.components.ERMODRequiredWrapper name:
> er.modern.look.components.ERMODRequiredWrapper subcomponents:
> {0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.0.1.3.1.0.1.0.0.0.1.0 =
> <er.directtoweb.components.ERDDebuggingHelp name:
> er.directtoweb.components.ERDDebuggingHelp subcomponents: null >; } >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.0.1.3.1.0.1.0.0.0.1.2.3.1.0.3.3.5.1.5.1
> = <er.coolcomponents.CCSmartAjaxButton name:
> er.coolcomponents.CCSmartAjaxButton subcomponents: null >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.0.1.3.1.0.1.0.0.0.1.2.3.1.0.3.11 =
> <er.directtoweb.components.ERD2WExtraDisplayPropertyKeysComponent name:
> er.directtoweb.components.ERD2WExtraDisplayPropertyKeysComponent
> subcomponents: null >; } >; } >; } >; } >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.0.1.3.1 =
> <com.webobjects.directtoweb.D2WEmptyWrapper name:
> com.webobjects.directtoweb.D2WEmptyWrapper subcomponents: null >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.1.1.3.1 =
> <com.webobjects.directtoweb.D2WEmptyWrapper name:
> com.webobjects.directtoweb.D2WEmptyWrapper subcomponents: null >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.2.1.3.1 =
> <com.webobjects.directtoweb.D2WEmptyWrapper name:
> com.webobjects.directtoweb.D2WEmptyWrapper subcomponents: null >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.1.1.3.1.0 =
> <er.modern.directtoweb.components.embedded.ERMDEditRelationship name:
> er.modern.directtoweb.components.embedded.ERMDEditRelationship
> subcomponents: {0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.1.1.3.1.0.1 =
> <er.modern.directtoweb.components.embedded.ERMD2WEditRelationship name:
> er.modern.directtoweb.components.embedded.ERMD2WEditRelationship
> subcomponents: {0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.1.1.3.1.0.1.0 =
> <er.directtoweb.components.ERD2WSwitchComponent name:
> er.directtoweb.components.ERD2WSwitchComponent subcomponents:
> {0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.1.1.3.1.0.1.0.0 =
> <er.modern.look.pages.ERMODEditRelationshipPage name:
> er.modern.look.pages.ERMODEditRelationshipPage subcomponents:
> {0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.1.1.3.1.0.1.0.0.0.1.2.3.1.0.3.11 =
> <er.directtoweb.components.ERD2WExtraDisplayPropertyKeysComponent name:
> er.directtoweb.components.ERD2WExtraDisplayPropertyKeysComponent
> subcomponents: null >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.1.1.3.1.0.1.0.0.0.1.2.3.1.0.3.1 =
> <er.directtoweb.components.ERD2WExtraDisplayPropertyKeysComponent name:
> er.directtoweb.components.ERD2WExtraDisplayPropertyKeysComponent
> subcomponents: null >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.1.1.3.1.0.1.0.0.0.1.2.3.1.0.3.3.5.1.3 =
> <er.coolcomponents.CCSmartAjaxButton name:
> er.coolcomponents.CCSmartAjaxButton subcomponents: null >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.1.1.3.1.0.1.0.0.0.1 =
> <er.modern.look.components.ERMODRequiredWrapper name:
> er.modern.look.components.ERMODRequiredWrapper subcomponents:
> {0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.1.1.3.1.0.1.0.0.0.1.0 =
> <er.directtoweb.components.ERDDebuggingHelp name:
> er.directtoweb.components.ERDDebuggingHelp subcomponents: null >; } >;
> 0.3.5.1.2.3.0.1.0.0.3.1.5.0.1.0.1.3.1.1.3.1.0.1.0.0.0.1.2.3.1.0.3.3.5.1.5.1
> = <er.coolcomponents.CCSmartAjaxButton name:
> er.coolcomponents.CCSmartAjaxButton subcomponents: null >; } >; } >; } >; }
>>; } >; 0.3.5.1.2.3.0.1.0.0.3.3.7.1 = <er.coolcomponents.CCSmartAjaxButton
> name: er.coolcomponents.CCSmartAjaxButton subcomponents:
> {0.3.5.1.2.3.0.1.0.0.3.3.7.1.0.0 = <er.coolcomponents.CCSubmitLinkButton
> name: er.coolcomponents.CCSubmitLinkButton subcomponents:
> {0.3.5.1.2.3.0.1.0.0.3.3.7.1.0.0.0 = <er.coolcomponents.CCSubmitLink name:
> er.coolcomponents.CCSubmitLink subcomponents: null >; } >; } >;
> 0.3.5.1.2.3.0.1.0.0.3.1.3 = <er.modern.look.components.ERMODErrorBlock name:
> er.modern.look.components.ERMODErrorBlock subcomponents: null >; 0.3.5.1 =
> <er.modern.look.components.ERMODRequiredWrapper name:
> er.modern.look.components.ERMODRequiredWrapper subcomponents: {0.3.5.1.0 =
> <er.directtoweb.components.ERDDebuggingHelp name:
> er.directtoweb.components.ERDDebuggingHelp subcomponents: null >;
> 0.3.5.1.2.3.0.1.0.0.1.1.1.0 =
> <er.modern.directtoweb.components.header.ERMD2WSimpleHeader name:
> er.modern.directtoweb.components.header.ERMD2WSimpleHeader subcomponents:
> null >; } >; } > requestSignature=2.0.3.3.5.2.3.0.0.1.0.1.1.0.0>; }
> languages=(\"English_US\", \"English\", \"Nonlocalized\")
> componentState={NavigationState = \"Products.CreateProduct\"; }
> currentContextID=6 distributionEnabled=false cookieRendezVousEnabled=false
> URLRendezVousEnabled=tru localizer=<er.extensions.localization.ERXLocalizer
> English> messageEncoding=<er.extensions.appserver.ERXMessageEncoding
> encoding: UTF-8> browser=<er.extensions.appserver.ERXBasicBrowser
> browserName: Safari, version: 533.19.4, mozillaVersion: 5.0, platform:
> MacOS>>";
> "Bundles" = {
> "Ajax" = "5.0";
> "JavaWebObjects" = "5.4.3";
> "ERDirectToWeb" = "5.0";
> "ERJars" = "5.0";
> "JavaJDBCAdaptor" = "5.4.3";
> "ERCoolComponents" = "5.0";
> "JavaEOProject" = "5.4";
> "JavaWOExtensions" = "5.0";
> "JavaEOControl" = "5.4.2";
> "ERModernDefaultSkin" = "5.0";
> "WOOgnl" = "5.0";
> "PNStoreAdmin" = "";
> "JavaFoundation" = "5.4.3";
> "ERExtensions" = "5.0";
> "ERModernDirectToWeb" = "5.0";
> "PostgresqlPlugIn" = "5.0";
> "ERModernLook" = "5.0";
> "ERPrototypes" = "5.0";
> "JavaXML" = "5.4.2";
> "ERAttachment" = "5.0";
> "JavaDirectToWeb" = "5.4.3";
> "WOLips" = "5.0";
> "JavaEOAccess" = "5.4.3";
> "JavaDTWGeneration" = "5.4";
> };
> "Headers" = {
> "cache-control" = "max-age=0";
> "user-agent" = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; en-us)
> AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4";
> "x-prototype-version" = "1.6.1";
> "accept-language" = "en-us";
> "accept-encoding" = "gzip, deflate";
> "original_context_id" = "5";
> "x-requested-with" = "XMLHttpRequest";
> "accept" = "text/javascript, text/html, application/xml, text/xml, */*";
> "connection" = "keep-alive";
> "referer" =
> "http://192.168.1.87:5100/cgi-bin/WebObjects/PNStoreAdmin.woa/wo/L7OIB7bIogbcaIMUrHMdYw/2.0.3.3.5.2.3.0.0.1.0.1.1.0.0";
> "host" = "192.168.1.87:5100";
> };
> }
> InstantiationException
> at
> sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:30)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> at
> com.webobjects.foundation._NSUtilities.instantiateObjectWithConstructor(_NSUtilities.java:659)
> at
> com.webobjects.eoaccess.EOEntityClassDescription.createInstanceWithEditingContext(EOEntityClassDescription.java:242)
> at
> er.extensions.eof.ERXEntityClassDescription.createInstanceWithEditingContext(ERXEntityClassDescription.java:739)
> at
> com.webobjects.eoaccess.EOUtilities.createAndInsertInstance(EOUtilities.java:861)
> at
> er.modern.look.pages.ERMODEditRelationshipPage.newObjectAction(ERMODEditRelationshipPage.java:102)
> ... skipped 16 stack elements
> at er.ajax.AjaxUpdateLink.handleRequest(AjaxUpdateLink.java:383)
> ... skipped 152 stack elements
> at er.ajax.AjaxRequestHandler.handleRequest(AjaxRequestHandler.java:17)
> ... skipped 6 stack elements
>
>
> ps: You can also prevent the error by making a relationship to
> ERFileAttachment instead of ERAttachment.
>
>
>
>
> IllegalArgumentException: This form is missing a
> 'enctype=multipart/form-data' attribute. It is required for WOFileUpload to
> work.
> at
> er.extensions.components._private.ERXWOFileUpload.checkEnctype(ERXWOFileUpload.java:44)
> ... skipped 102 stack elements
> If I enable this rule:
> (task = 'edit' and entity.name = 'Product' and propertyKey = 'photos')
> => componentName = "ERMD2WEditAttachment"
> this is what happens:
> ClassCastException: com.webobjects.eocontrol._EOCheapCopyMutableArray cannot
> be cast to er.attachment.model.ERAttachment
> at
> er.attachment.components.ERAttachmentFlexibleEditor.viewerAttachment(ERAttachmentFlexibleEditor.java:275)
> at
> er.attachment.components.ERAttachmentFlexibleEditor.showUpload(ERAttachmentFlexibleEditor.java:202)
> Which i expect, because photos should be a NSArray<ERAttachment>..
>
> Denis
>
> Francesco
>
> Denis
>
> On Tue, Nov 23, 2010 at 1:51 PM, Francesco Romano <email@hidden>
>
> wrote:
>
> Some updates after some hours of work
>
> Let's start with thumbnails.
>
> First of all... if in the ERAttachmentViewer I bind either the width or
>
> height, it resize correctly the picture.. now.. the question is can this
>
> become "heavy"? I think I'll use the thumbs only in list pages..or is better
>
> to create the thumb on insertion and simply display it later?
>
> About D2W rule... if i use as a component ERDList, I don't have the new
>
> button to add the image.
>
> This is the entity I create:
>
> <Screen shot 2010-11-23 at 11.45.07.png>
>
> If I don't create any rule, this is what I see in the CreateProduct page:
>
> <Screen shot 2010-11-23 at 11.47.16.png>
>
> Then, if I press New:
>
> Nov 23 11:47:47 PNStoreAdmin[5100] WARN NSLog -
>
> <er.ajax.AjaxRequestHandler>: Exception occurred while handling request:
>
> com.webobjects.foundation.NSForwardException
>
> [java.lang.InstantiationException] null:<er.attachment.model.ERAttachment>
>
> is an abstract class. It can not be instantiated !
>
> [2010-11-23 11:47:47 CET] <WorkerThread3>
>
> com.webobjects.foundation.NSForwardException
>
> [java.lang.InstantiationException] null:<er.attachment.model.ERAttachment>
>
> is an abstract class. It can not be instantiated !
>
> at
>
> com.webobjects.foundation._NSUtilities._explainInstantiationException(_NSUtilities.java:616)
>
> at
>
> com.webobjects.foundation._NSUtilities.instantiateObjectWithConstructor(_NSUtilities.java:665)
>
>
> Francesco
>
> On 23/nov/2010, at 08.48, Francesco Romano wrote:
>
> Are you actually going to display multiple photos for a Product?
>
> Or are you displaying ...
>
> one thumbnail
>
> or
>
> one big photo
>
> or
>
> one medium photo
>
> David
>
> What I want is the possibility to have many photos for a product. And i
>
> need one thumbnail (but I think I'll thumbnail every photos, otherwise it'l
>
> become a bit complex to manage everything..).. So in the list page I display
>
> the thumb, in the Inspect page I display all the photos (I don't know if
>
> every photo in the same moment, or just a sort of embedded gallery in the
>
> page with next and previous button..)
>
> I'll try this morning creating a new project and a new db connection, to
>
> not destroy my old one, until I find the right migration
>
> On 23/nov/2010, at 06.41, Denis Frolov wrote:
>
> On Mon, Nov 22, 2010 at 11:27 PM, Francesco Romano
>
> <email@hidden> wrote:
>
> Ok.. I'll try this for the thumbnail..
>
> About D2W...
>
> I have something like
>
> Product <-->> ERAttachment for a photos property.
>
> But.. i watched the tutorial of David and he created a many-to-many, so
>
> Product <-->> ProductPhotos <<--> ERAttachment
>
> Product has a "photos" property (so a NSArray of ERAttachment).
>
> But.. I don't know how to manage this with the rules, both on Inspect and
>
> on Edit/Create configuration.
>
> BTW: how can I select the first object of an array with a rule?
>
> You could try "photos.@objectAtIndex.0" but I think a better way would
>
> be to add a cover method "thumbnail" to your Product.java returning
>
> the attachment you need and use it in rule.
>
> What I want to do is:
>
> In ListProduct configuration I want to display the thumbnail
>
> Cover method above would help you with this.
>
> I'll go for the cover method
>
>
> In Edit/Create Product configuration I want to display all the photos in
>
> "maximum" size (i don't know yet the size.. I'll decide later)
>
> We use our own custom component for this, but I think you could use
>
> ERDList or ERMDEditRelationship to display/edit the list of photos,
>
> e.g.:
>
> entity.name = 'Product' and task = 'edit' and propertyKey = 'photos'
>
> => componentName = 'ERDList'
>
>
> I think I already tried something like that and it didn't work.... I'll
>
> try again..
>
> Francesco
>
> Denis
>
>
> Thanks again for your answers
>
> Francesco
>
> On 22/nov/2010, at 21.05, Denis Frolov wrote:
>
> Hi,
>
> In fact, the support for thumbnails is already there in the model of
>
> ERAttachment. Note the "parentAttachment"/"childrenAttachments"
>
> relationships and "thumbnail" attribute. Just create a new
>
> ERAttachment for thumbnail and add it to "childrenAttachments" of
>
> original attachment. You can use "thumbnail" attribute to specify the
>
> size of the thumbnail in case you need multiple thumbnails of
>
> different sizes. We use strings like "200x150" for "thumbnail"
>
> attribute.
>
> As for the D2W, could you be more specific on what the problem is?
>
> Denis
>
> On Mon, Nov 22, 2010 at 7:49 PM, Francesco Romano
>
> <email@hidden> wrote:
>
> Hi.
>
> I have two questions about ERAttachment.
>
> 1) Thumbnails are not available, yet, but.. what do I have to do to add
>
> support to them? I don't understand how to implement them "inside"
>
> erattachment
>
> 2) I'd like to have a many-to-many relationship between my entity and
>
> erattachment. I don't have problems in modeling, but.. how can I manage them
>
> using D2W and rules? (I'm creating two apps: an admin app using D2W Modern
>
> look, and a "front-end" app without D2W. I have problem in the D2W side...)
>
> Thank for any help
>
> Francesco Romano
>
> _______________________________________________
>
> Do not post admin requests to the list. They will be ignored.
>
> Webobjects-dev mailing list (email@hidden)
>
> Help/Unsubscribe/Update your Subscription:
>
>
> This email sent to email@hidden
>
>
> _______________________________________________
>
> Do not post admin requests to the list. They will be ignored.
>
> Webobjects-dev mailing list (email@hidden)
>
> Help/Unsubscribe/Update your Subscription:
>
>
> This email sent to email@hidden
>
>
>
>
> _______________________________________________
>
> Do not post admin requests to the list. They will be ignored.
>
> Webobjects-dev mailing list (email@hidden)
>
> Help/Unsubscribe/Update your Subscription:
>
>
> This email sent to email@hidden
>
>
>
> _______________________________________________
>
> Do not post admin requests to the list. They will be ignored.
>
> Webobjects-dev mailing list (email@hidden)
>
> Help/Unsubscribe/Update your Subscription:
>
>
> This email sent to email@hidden
>
>
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden