From: <ms...@us...> - 2008-10-11 12:55:44
|
Revision: 8439 http://wonder.svn.sourceforge.net/wonder/?rev=8439&view=rev Author: mschrag Date: 2008-10-11 12:55:13 +0000 (Sat, 11 Oct 2008) Log Message: ----------- download binding on ERAttachmentLink Modified Paths: -------------- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentLink.api trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/components/ERAttachmentLink.java Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentLink.api =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentLink.api 2008-10-11 02:54:36 UTC (rev 8438) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentLink.api 2008-10-11 12:55:13 UTC (rev 8439) @@ -1,14 +1,15 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<?xml version="1.0" encoding="UTF-8"?> <wodefinitions> - <wo wocomponentcontent="true" class="ERAttachmentLink"> + <wo class="ERAttachmentLink" wocomponentcontent="true"> <binding name="attachment"/> <binding name="configurationName"/> <binding name="id"/> <binding name="class"/> <binding name="style"/> - <validation message="'attachment' is a required binding."> + <validation message="'attachment' is a required binding."> <unbound name="attachment"/> </validation> - </wo> -</wodefinitions> \ No newline at end of file + <binding defaults="Boolean" name="download"/> + </wo> +</wodefinitions> Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/components/ERAttachmentLink.java =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/components/ERAttachmentLink.java 2008-10-11 02:54:36 UTC (rev 8438) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/components/ERAttachmentLink.java 2008-10-11 12:55:13 UTC (rev 8439) @@ -1,5 +1,7 @@ package er.attachment.components; +import java.net.MalformedURLException; + import com.webobjects.appserver.WOAssociation; import com.webobjects.appserver.WOComponent; import com.webobjects.appserver.WOContext; @@ -13,6 +15,7 @@ import er.attachment.model.ERAttachment; import er.attachment.processors.ERAttachmentProcessor; import er.extensions.components.ERXComponentUtilities; +import er.extensions.foundation.ERXMutableURL; /** * ERAttachmentLink is like a WOHyperlink that points to an attachment's contents. @@ -23,16 +26,19 @@ * @binding class (optional) the css class * @binding id (optional) the html element id * @binding style (optional) the css inline style + * @binding download if true, the attachment will be downloaded instead of inlined */ public class ERAttachmentLink extends WODynamicGroup { private WOAssociation _attachment; private WOAssociation _configurationName; private NSMutableDictionary<String, WOAssociation> _associations; + private WOAssociation _download; public ERAttachmentLink(String name, NSDictionary<String, WOAssociation> associations, WOElement template) { super(name, associations, template); _associations = associations.mutableClone(); _attachment = _associations.removeObjectForKey("attachment"); + _download = _associations.removeObjectForKey("download"); if (_attachment == null) { throw new WODynamicElementCreationException("<ERAttachmentLink> The 'attachment' binding is required."); } @@ -55,6 +61,16 @@ } else { response.appendContentString("<a href = \""); + if (_download != null && _download.booleanValueInComponent(component)) { + try { + ERXMutableURL attachmentMutableUrl = new ERXMutableURL(attachmentUrl); + attachmentMutableUrl.addQueryParameter("attachment", "true"); + attachmentUrl = attachmentMutableUrl.toExternalForm(); + } + catch (MalformedURLException e) { + throw new RuntimeException("Failed to create attachment URL.", e); + } + } response.appendContentString(attachmentUrl); response.appendContentString("\""); ERXComponentUtilities.appendHtmlAttributes(_associations, response, component); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ms...@us...> - 2009-02-08 17:31:05
|
Revision: 8913 http://wonder.svn.sourceforge.net/wonder/?rev=8913&view=rev Author: mschrag Date: 2009-02-08 17:31:00 +0000 (Sun, 08 Feb 2009) Log Message: ----------- moved some of our thumbnailing code into ERAttachment Modified Paths: -------------- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/.classpath Added Paths: ----------- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessor.xcodeproj/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessor.xcodeproj/default.pbxuser trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessor.xcodeproj/project.pbxproj trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessorjnilib.m trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/er_attachment_thumbnail_ImageIOImageProcessor.h trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Resources/sRGB.icc trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/thumbnail/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/thumbnail/BlendComposite.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/thumbnail/ERImageProcessor.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/thumbnail/IERImageProcessor.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/thumbnail/ImageIOImageProcessor.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/thumbnail/ImageMagickImageProcessor.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/thumbnail/Java2DImageProcessor.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Tests/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Tests/a.png trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Tests/er/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Tests/er/attachment/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Tests/er/attachment/thumbnail/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Tests/er/attachment/thumbnail/ERImageProcessorTest.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Tests/w.jpg Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/.classpath =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/.classpath 2009-02-08 16:52:28 UTC (rev 8912) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/.classpath 2009-02-08 17:31:00 UTC (rev 8913) @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="Sources"/> + <classpathentry kind="src" path="Tests"/> <classpathentry exported="true" kind="con" path="WOFramework/ERExtensions"/> <classpathentry exported="true" kind="con" path="WOFramework/ERJars"/> <classpathentry exported="true" kind="con" path="WOFramework/ERPrototypes"/> Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessor.xcodeproj/default.pbxuser =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessor.xcodeproj/default.pbxuser (rev 0) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessor.xcodeproj/default.pbxuser 2009-02-08 17:31:00 UTC (rev 8913) @@ -0,0 +1,67 @@ +// !$*UTF8*$! +{ + 00E6828EFEC88D1A11DB9C8B = { + activeBuildStyle = 130F8B95001BDF0A11CA292A; + activeExecutable = 6A9FA6570246BA6C0CC91562; + activeTarget = 6A9FA557024694440CC91562; + addToTargets = ( + ); + executables = ( + 6A9FA6570246BA6C0CC91562, + ); + perUserDictionary = { + }; + projectwideBuildSettings = { + }; + wantsIndex = 1; + wantsSCM = -1; + }; + 6A70F297022B313E0CC91562 = { + activeExec = 0; + }; + 6A8A60570219F8CC0CC91562 = { + activeExec = 0; + }; + 6A9FA557024694440CC91562 = { + activeExec = 0; + }; + 6A9FA55B024695C00CC91562 = { + activeExec = 0; + }; + 6A9FA570024696E90CC91562 = { + activeExec = 0; + }; + 6A9FA58C0246973A0CC91562 = { + activeExec = 0; + }; + 6A9FA6030246AD840CC91562 = { + activeExec = 0; + }; + 6A9FA6570246BA6C0CC91562 = { + activeArgIndex = 0; + activeArgIndices = ( + YES, + ); + argumentStrings = ( + "-cp JNIWrapper.jar JNIWrapper", + ); + debuggerPlugin = GDBDebugging; + dylibVariantSuffix = ""; + enableDebugStr = 1; + environmentEntries = ( + ); + isa = PBXExecutable; + launchableReference = 6A9FA6590246BA770CC91562; + name = JNIWrapper; + shlibInfoDictList = ( + ); + sourceDirectories = ( + ); + }; + 6A9FA6590246BA770CC91562 = { + isa = PBXExecutableFileReference; + name = java; + path = /usr/bin/java; + refType = 0; + }; +} Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessor.xcodeproj/project.pbxproj =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessor.xcodeproj/project.pbxproj (rev 0) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessor.xcodeproj/project.pbxproj 2009-02-08 17:31:00 UTC (rev 8913) @@ -0,0 +1,871 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 42; + objects = { + +/* Begin PBXAggregateTarget section */ + 550AA27F0986C5F3005BB922 /* ImageIOImageProcessor (Copied) */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 550AA2840986C5F3005BB922 /* Build configuration list for PBXAggregateTarget "ImageIOImageProcessor (Copied)" */; + buildPhases = ( + ); + dependencies = ( + 550AA2A60986C5F3005BB922 /* PBXTargetDependency */, + 550AA2A80986C5F3005BB922 /* PBXTargetDependency */, + ); + name = "ImageIOImageProcessor (Copied)"; + productName = JNIApplication; + }; + 6A9FA557024694440CC91562 /* ImageIOImageProcessor */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 5539DBD2085DDAE1008FA0F7 /* Build configuration list for PBXAggregateTarget "ImageIOImageProcessor" */; + buildPhases = ( + ); + dependencies = ( + 6A9FA6060246ADAE0CC91562 /* PBXTargetDependency */, + 55D4F7DD08087E07004AAAA1 /* PBXTargetDependency */, + ); + name = ImageIOImageProcessor; + productName = JNIApplication; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 550AA28A0986C5F3005BB922 /* er_attachment_thumbnail_ImageIOImageProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 558E303C07BDC56B0077DB70 /* er_attachment_thumbnail_ImageIOImageProcessor.h */; }; + 550AA28C0986C5F3005BB922 /* ImageIOImageProcessorjnilib.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A52677B022AFE3B0CC91562 /* ImageIOImageProcessorjnilib.m */; }; + 550AA28E0986C5F3005BB922 /* JavaVM.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6AE2200B0208CA9C0CC91562 /* JavaVM.framework */; }; + 550AA28F0986C5F3005BB922 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5539DBE5085DDB19008FA0F7 /* AppKit.framework */; }; + 550AA2900986C5F3005BB922 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5539DBEA085DDB26008FA0F7 /* Foundation.framework */; }; + 550AA2910986C5F3005BB922 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55F36B2C090C2A4400ABA2AE /* QuartzCore.framework */; }; + 550AA29B0986C5F3005BB922 /* er_attachment_thumbnail_ImageIOImageProcessor.h in JavaArchive */ = {isa = PBXBuildFile; fileRef = 558E303C07BDC56B0077DB70 /* er_attachment_thumbnail_ImageIOImageProcessor.h */; settings = {JAVA_ARCHIVE_SUBDIR = ""; }; }; + 550AA29D0986C5F3005BB922 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5539DBE5085DDB19008FA0F7 /* AppKit.framework */; }; + 550AA29E0986C5F3005BB922 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5539DBEA085DDB26008FA0F7 /* Foundation.framework */; }; + 550AA29F0986C5F3005BB922 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55F36B2C090C2A4400ABA2AE /* QuartzCore.framework */; }; + 5539DBE6085DDB19008FA0F7 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5539DBE5085DDB19008FA0F7 /* AppKit.framework */; }; + 5539DBE7085DDB19008FA0F7 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5539DBE5085DDB19008FA0F7 /* AppKit.framework */; }; + 5539DBEB085DDB26008FA0F7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5539DBEA085DDB26008FA0F7 /* Foundation.framework */; }; + 5539DBEC085DDB26008FA0F7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5539DBEA085DDB26008FA0F7 /* Foundation.framework */; }; + 558E303D07BDC56B0077DB70 /* er_attachment_thumbnail_ImageIOImageProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 558E303C07BDC56B0077DB70 /* er_attachment_thumbnail_ImageIOImageProcessor.h */; }; + 558E303E07BDC56B0077DB70 /* er_attachment_thumbnail_ImageIOImageProcessor.h in JavaArchive */ = {isa = PBXBuildFile; fileRef = 558E303C07BDC56B0077DB70 /* er_attachment_thumbnail_ImageIOImageProcessor.h */; settings = {JAVA_ARCHIVE_SUBDIR = ""; }; }; + 55F36B2D090C2A4400ABA2AE /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55F36B2C090C2A4400ABA2AE /* QuartzCore.framework */; }; + 55F36B2E090C2A4400ABA2AE /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55F36B2C090C2A4400ABA2AE /* QuartzCore.framework */; }; + 6A9FA572024696FD0CC91562 /* ImageIOImageProcessorjnilib.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A52677B022AFE3B0CC91562 /* ImageIOImageProcessorjnilib.m */; }; + 6A9FA587024697120CC91562 /* JavaVM.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6AE2200B0208CA9C0CC91562 /* JavaVM.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 36ABB26A061E0EED00C43093 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 00E6828EFEC88D1A11DB9C8B /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6A9FA6030246AD840CC91562; + remoteInfo = Headers; + }; + 550AA2A50986C5F3005BB922 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 00E6828EFEC88D1A11DB9C8B /* Project object */; + proxyType = 1; + remoteGlobalIDString = 550AA2980986C5F3005BB922; + remoteInfo = "Headers (Upgraded)"; + }; + 550AA2A70986C5F3005BB922 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 00E6828EFEC88D1A11DB9C8B /* Project object */; + proxyType = 1; + remoteGlobalIDString = 550AA2880986C5F3005BB922; + remoteInfo = "JNILib (Upgraded)"; + }; + 55D4F7DC08087E07004AAAA1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 00E6828EFEC88D1A11DB9C8B /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6A9FA570024696E90CC91562; + remoteInfo = JNILib; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 550AA2970986C5F3005BB922 /* libImageIOImageProcessor.jnilib.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; name = libImageIOImageProcessor.jnilib.dylib; path = /Users/mschrag/Documents/workspace/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessor/build/Deployment/libImageIOImageProcessor.jnilib.dylib; sourceTree = "<absolute>"; }; + 5526B6CB0D4806B40051F353 /* libHeaders/JNIWrapper.h.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libHeaders/JNIWrapper.h.a; path = /Users/mschrag/Documents/workspace/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessor/build/Deployment/libHeaders/JNIWrapper.h.a; sourceTree = "<absolute>"; }; + 5526B6CC0D4806B40051F353 /* Headers/JNIWrapper.h */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; name = Headers/JNIWrapper.h; path = /Users/mschrag/Documents/workspace/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessor/build/Deployment/Headers/JNIWrapper.h; sourceTree = "<absolute>"; }; + 5526B6CD0D4806B40051F353 /* libImageIOImageProcessor.jnilib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libImageIOImageProcessor.jnilib; sourceTree = BUILT_PRODUCTS_DIR; }; + 5539DBE5085DDB19008FA0F7 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; }; + 5539DBEA085DDB26008FA0F7 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; }; + 558E303C07BDC56B0077DB70 /* er_attachment_thumbnail_ImageIOImageProcessor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = er_attachment_thumbnail_ImageIOImageProcessor.h; sourceTree = "<group>"; }; + 55F36B2C090C2A4400ABA2AE /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = /System/Library/Frameworks/QuartzCore.framework; sourceTree = "<absolute>"; }; + 6A52677B022AFE3B0CC91562 /* ImageIOImageProcessorjnilib.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ImageIOImageProcessorjnilib.m; sourceTree = "<group>"; }; + 6AE2200B0208CA9C0CC91562 /* JavaVM.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaVM.framework; path = /System/Library/Frameworks/JavaVM.framework; sourceTree = "<absolute>"; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 550AA28D0986C5F3005BB922 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 550AA28E0986C5F3005BB922 /* JavaVM.framework in Frameworks */, + 550AA28F0986C5F3005BB922 /* AppKit.framework in Frameworks */, + 550AA2900986C5F3005BB922 /* Foundation.framework in Frameworks */, + 550AA2910986C5F3005BB922 /* QuartzCore.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 550AA29C0986C5F3005BB922 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 550AA29D0986C5F3005BB922 /* AppKit.framework in Frameworks */, + 550AA29E0986C5F3005BB922 /* Foundation.framework in Frameworks */, + 550AA29F0986C5F3005BB922 /* QuartzCore.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6A9FA56E024696E90CC91562 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 6A9FA587024697120CC91562 /* JavaVM.framework in Frameworks */, + 5539DBE6085DDB19008FA0F7 /* AppKit.framework in Frameworks */, + 5539DBEB085DDB26008FA0F7 /* Foundation.framework in Frameworks */, + 55F36B2D090C2A4400ABA2AE /* QuartzCore.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6A9FA6020246AD840CC91562 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 5539DBE7085DDB19008FA0F7 /* AppKit.framework in Frameworks */, + 5539DBEC085DDB26008FA0F7 /* Foundation.framework in Frameworks */, + 55F36B2E090C2A4400ABA2AE /* QuartzCore.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 00E6828FFEC88D1A11DB9C8B = { + isa = PBXGroup; + children = ( + 558E303C07BDC56B0077DB70 /* er_attachment_thumbnail_ImageIOImageProcessor.h */, + 6A52677B022AFE3B0CC91562 /* ImageIOImageProcessorjnilib.m */, + 0120612AFEC8923411DB9C8B /* Products */, + 55409B700D3E615D00A53442 /* Frameworks */, + ); + sourceTree = "<group>"; + }; + 0120612AFEC8923411DB9C8B /* Products */ = { + isa = PBXGroup; + children = ( + 5526B6CD0D4806B40051F353 /* libImageIOImageProcessor.jnilib */, + ); + name = Products; + sourceTree = "<group>"; + }; + 55409B700D3E615D00A53442 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 6AE2200B0208CA9C0CC91562 /* JavaVM.framework */, + 55F36B2C090C2A4400ABA2AE /* QuartzCore.framework */, + 5539DBEA085DDB26008FA0F7 /* Foundation.framework */, + 5539DBE5085DDB19008FA0F7 /* AppKit.framework */, + ); + name = Frameworks; + sourceTree = "<group>"; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 550AA2890986C5F3005BB922 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 550AA28A0986C5F3005BB922 /* er_attachment_thumbnail_ImageIOImageProcessor.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6A9FA56C024696E90CC91562 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 558E303D07BDC56B0077DB70 /* er_attachment_thumbnail_ImageIOImageProcessor.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXJavaArchiveBuildPhase section */ + 550AA29A0986C5F3005BB922 /* JavaArchive */ = { + isa = PBXJavaArchiveBuildPhase; + buildActionMask = 2147483647; + files = ( + 550AA29B0986C5F3005BB922 /* er_attachment_thumbnail_ImageIOImageProcessor.h in JavaArchive */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6A9FA6010246AD840CC91562 /* JavaArchive */ = { + isa = PBXJavaArchiveBuildPhase; + buildActionMask = 2147483647; + files = ( + 558E303E07BDC56B0077DB70 /* er_attachment_thumbnail_ImageIOImageProcessor.h in JavaArchive */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXJavaArchiveBuildPhase section */ + +/* Begin PBXLibraryTarget section */ + 6A9FA570024696E90CC91562 /* JNILib */ = { + isa = PBXLibraryTarget; + buildConfigurationList = 5539DBCE085DDAE1008FA0F7 /* Build configuration list for PBXLibraryTarget "JNILib" */; + buildPhases = ( + 6A9FA56C024696E90CC91562 /* Headers */, + 6A9FA56D024696E90CC91562 /* Sources */, + 6A9FA56E024696E90CC91562 /* Frameworks */, + 6A9FA56F024696E90CC91562 /* Rez */, + ); + dependencies = ( + ); + name = JNILib; + productName = ExampleJNILib; + productReference = 5526B6CD0D4806B40051F353 /* libImageIOImageProcessor.jnilib */; + }; + 6A9FA6030246AD840CC91562 /* Headers */ = { + isa = PBXLibraryTarget; + buildConfigurationList = 5539DBCA085DDAE1008FA0F7 /* Build configuration list for PBXLibraryTarget "Headers" */; + buildPhases = ( + 6A9FA6000246AD840CC91562 /* Sources */, + 6A9FA6010246AD840CC91562 /* JavaArchive */, + 6A9FA6020246AD840CC91562 /* Frameworks */, + ); + dependencies = ( + ); + name = Headers; + productInstallPath = /usr/local/lib; + productName = CreateHeaders; + productReference = 5526B6CC0D4806B40051F353 /* Headers/JNIWrapper.h */; + }; +/* End PBXLibraryTarget section */ + +/* Begin PBXNativeTarget section */ + 550AA2880986C5F3005BB922 /* JNILib (Upgraded) */ = { + isa = PBXNativeTarget; + buildConfigurationList = 550AA2930986C5F3005BB922 /* Build configuration list for PBXNativeTarget "JNILib (Upgraded)" */; + buildPhases = ( + 550AA2890986C5F3005BB922 /* Headers */, + 550AA28B0986C5F3005BB922 /* Sources */, + 550AA28D0986C5F3005BB922 /* Frameworks */, + 550AA2920986C5F3005BB922 /* Rez */, + 55F6FEE40D45164E007CDEB4 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "JNILib (Upgraded)"; + productName = ExampleJNILib; + productReference = 550AA2970986C5F3005BB922 /* libImageIOImageProcessor.jnilib.dylib */; + productType = "com.apple.product-type.library.dynamic"; + }; + 550AA2980986C5F3005BB922 /* Headers (Upgraded) */ = { + isa = PBXNativeTarget; + buildConfigurationList = 550AA2A00986C5F3005BB922 /* Build configuration list for PBXNativeTarget "Headers (Upgraded)" */; + buildPhases = ( + 550AA2990986C5F3005BB922 /* Sources */, + 550AA29A0986C5F3005BB922 /* JavaArchive */, + 550AA29C0986C5F3005BB922 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Headers (Upgraded)"; + productInstallPath = /usr/local/lib; + productName = CreateHeaders; + productReference = 5526B6CB0D4806B40051F353 /* libHeaders/JNIWrapper.h.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 00E6828EFEC88D1A11DB9C8B /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 5539DBD6085DDAE1008FA0F7 /* Build configuration list for PBXProject "ImageIOImageProcessor" */; + compatibilityVersion = "Xcode 2.4"; + hasScannedForEncodings = 1; + mainGroup = 00E6828FFEC88D1A11DB9C8B; + productRefGroup = 0120612AFEC8923411DB9C8B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 550AA27F0986C5F3005BB922 /* ImageIOImageProcessor (Copied) */, + 550AA2880986C5F3005BB922 /* JNILib (Upgraded) */, + 550AA2980986C5F3005BB922 /* Headers (Upgraded) */, + 6A9FA557024694440CC91562 /* ImageIOImageProcessor */, + 6A9FA570024696E90CC91562 /* JNILib */, + 6A9FA6030246AD840CC91562 /* Headers */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXRezBuildPhase section */ + 550AA2920986C5F3005BB922 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6A9FA56F024696E90CC91562 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXRezBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 55F6FEE40D45164E007CDEB4 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "mv ${BUILD_DIR}/${BUILD_STYLE}/libImageIOImageProcessor.jnilib.dylib ${BUILD_DIR}/${BUILD_STYLE}/libImageIOImageProcessor.jnilib"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 550AA28B0986C5F3005BB922 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 550AA28C0986C5F3005BB922 /* ImageIOImageProcessorjnilib.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 550AA2990986C5F3005BB922 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6A9FA56D024696E90CC91562 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6A9FA572024696FD0CC91562 /* ImageIOImageProcessorjnilib.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6A9FA6000246AD840CC91562 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 550AA2A60986C5F3005BB922 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 550AA2980986C5F3005BB922 /* Headers (Upgraded) */; + targetProxy = 550AA2A50986C5F3005BB922 /* PBXContainerItemProxy */; + }; + 550AA2A80986C5F3005BB922 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 550AA2880986C5F3005BB922 /* JNILib (Upgraded) */; + targetProxy = 550AA2A70986C5F3005BB922 /* PBXContainerItemProxy */; + }; + 55D4F7DD08087E07004AAAA1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 6A9FA570024696E90CC91562 /* JNILib */; + targetProxy = 55D4F7DC08087E07004AAAA1 /* PBXContainerItemProxy */; + }; + 6A9FA6060246ADAE0CC91562 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 6A9FA6030246AD840CC91562 /* Headers */; + targetProxy = 36ABB26A061E0EED00C43093 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 550AA2850986C5F3005BB922 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + HEADER_SEARCH_PATHS = /System/Library/Frameworks/JavaVM.framework/Headers; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = ImageIOImageProcessor; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + ZERO_LINK = YES; + }; + name = Development; + }; + 550AA2860986C5F3005BB922 /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + HEADER_SEARCH_PATHS = /System/Library/Frameworks/JavaVM.framework/Headers; + LIBRARY_STYLE = DYNAMIC; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = ImageIOImageProcessor; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + ZERO_LINK = NO; + }; + name = Deployment; + }; + 550AA2870986C5F3005BB922 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = ImageIOImageProcessor; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + }; + name = Default; + }; + 550AA2940986C5F3005BB922 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + HEADER_SEARCH_PATHS = /System/Library/Frameworks/JavaVM.framework/Headers; + LIBRARY_STYLE = DYNAMIC; + MACH_O_TYPE = mh_dylib; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOL_FLAGS = ""; + OTHER_REZFLAGS = ""; + PREBINDING = NO; + PRODUCT_NAME = libImageIOImageProcessor.jnilib; + REZ_EXECUTABLE = YES; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + ZERO_LINK = YES; + }; + name = Development; + }; + 550AA2950986C5F3005BB922 /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + HEADER_SEARCH_PATHS = /System/Library/Frameworks/JavaVM.framework/Headers; + LIBRARY_STYLE = DYNAMIC; + MACH_O_TYPE = mh_dylib; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOL_FLAGS = ""; + OTHER_REZFLAGS = ""; + PREBINDING = NO; + PRODUCT_NAME = libImageIOImageProcessor.jnilib; + REZ_EXECUTABLE = YES; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + ZERO_LINK = NO; + }; + name = Deployment; + }; + 550AA2960986C5F3005BB922 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + HEADER_SEARCH_PATHS = ( + "${OBJROOT}/Headers", + "$(SYSTEM_LIBRARY_DIR)/Frameworks/JavaVM.framework/Headers", + ); + LIBRARY_STYLE = DYNAMIC; + MACH_O_TYPE = mh_dylib; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOL_FLAGS = ""; + OTHER_REZFLAGS = ""; + PREBINDING = NO; + PRODUCT_NAME = libImageIOImageProcessor.jnilib; + REZ_EXECUTABLE = YES; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + }; + name = Default; + }; + 550AA2A10986C5F3005BB922 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + HEADER_SEARCH_PATHS = /System/Library/Frameworks/JavaVM.framework/Headers; + PRODUCT_NAME = Headers/JNIWrapper.h; + REZ_EXECUTABLE = YES; + ZERO_LINK = YES; + }; + name = Development; + }; + 550AA2A20986C5F3005BB922 /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + HEADER_SEARCH_PATHS = /System/Library/Frameworks/JavaVM.framework/Headers; + LIBRARY_STYLE = DYNAMIC; + PRODUCT_NAME = Headers/JNIWrapper.h; + REZ_EXECUTABLE = YES; + ZERO_LINK = NO; + }; + name = Deployment; + }; + 550AA2A30986C5F3005BB922 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = Headers/JNIWrapper.h; + REZ_EXECUTABLE = YES; + }; + name = Default; + }; + 5539DBCB085DDAE1008FA0F7 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + HEADER_SEARCH_PATHS = /System/Library/Frameworks/JavaVM.framework/Headers; + PRODUCT_NAME = Headers/JNIWrapper.h; + REZ_EXECUTABLE = YES; + ZERO_LINK = YES; + }; + name = Development; + }; + 5539DBCC085DDAE1008FA0F7 /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + HEADER_SEARCH_PATHS = /System/Library/Frameworks/JavaVM.framework/Headers; + LIBRARY_STYLE = DYNAMIC; + PRODUCT_NAME = Headers/JNIWrapper.h; + REZ_EXECUTABLE = YES; + ZERO_LINK = NO; + }; + name = Deployment; + }; + 5539DBCD085DDAE1008FA0F7 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = Headers/JNIWrapper.h; + REZ_EXECUTABLE = YES; + }; + name = Default; + }; + 5539DBCF085DDAE1008FA0F7 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + HEADER_SEARCH_PATHS = /System/Library/Frameworks/JavaVM.framework/Headers; + LIBRARY_STYLE = DYNAMIC; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOL_FLAGS = ""; + OTHER_REZFLAGS = ""; + PREBINDING = NO; + PRODUCT_NAME = libImageIOImageProcessor.jnilib; + REZ_EXECUTABLE = YES; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + ZERO_LINK = YES; + }; + name = Development; + }; + 5539DBD0085DDAE1008FA0F7 /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + HEADER_SEARCH_PATHS = /System/Library/Frameworks/JavaVM.framework/Headers; + LIBRARY_STYLE = DYNAMIC; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOL_FLAGS = ""; + OTHER_REZFLAGS = ""; + PREBINDING = NO; + PRODUCT_NAME = libImageIOImageProcessor.jnilib; + REZ_EXECUTABLE = YES; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + ZERO_LINK = NO; + }; + name = Deployment; + }; + 5539DBD1085DDAE1008FA0F7 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + HEADER_SEARCH_PATHS = ( + "${OBJROOT}/Headers", + "$(SYSTEM_LIBRARY_DIR)/Frameworks/JavaVM.framework/Headers", + ); + LIBRARY_STYLE = DYNAMIC; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOL_FLAGS = ""; + OTHER_REZFLAGS = ""; + PREBINDING = NO; + PRODUCT_NAME = libImageIOImageProcessor.jnilib; + REZ_EXECUTABLE = YES; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + }; + name = Default; + }; + 5539DBD3085DDAE1008FA0F7 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + HEADER_SEARCH_PATHS = /System/Library/Frameworks/JavaVM.framework/Headers; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = ImageIOImageProcessor; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + ZERO_LINK = YES; + }; + name = Development; + }; + 5539DBD4085DDAE1008FA0F7 /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + HEADER_SEARCH_PATHS = /System/Library/Frameworks/JavaVM.framework/Headers; + LIBRARY_STYLE = DYNAMIC; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = ImageIOImageProcessor; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + ZERO_LINK = NO; + }; + name = Deployment; + }; + 5539DBD5085DDAE1008FA0F7 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = ImageIOImageProcessor; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + }; + name = Default; + }; + 5539DBD7085DDAE1008FA0F7 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc, + i386, + ); + MACOSX_DEPLOYMENT_TARGET = 10.4; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + }; + name = Development; + }; + 5539DBD8085DDAE1008FA0F7 /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc, + i386, + ); + MACOSX_DEPLOYMENT_TARGET = 10.4; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + }; + name = Deployment; + }; + 5539DBD9085DDAE1008FA0F7 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc, + i386, + ); + MACOSX_DEPLOYMENT_TARGET = 10.4; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + }; + name = Default; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 550AA2840986C5F3005BB922 /* Build configuration list for PBXAggregateTarget "ImageIOImageProcessor (Copied)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 550AA2850986C5F3005BB922 /* Development */, + 550AA2860986C5F3005BB922 /* Deployment */, + 550AA2870986C5F3005BB922 /* Default */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; + 550AA2930986C5F3005BB922 /* Build configuration list for PBXNativeTarget "JNILib (Upgraded)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 550AA2940986C5F3005BB922 /* Development */, + 550AA2950986C5F3005BB922 /* Deployment */, + 550AA2960986C5F3005BB922 /* Default */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; + 550AA2A00986C5F3005BB922 /* Build configuration list for PBXNativeTarget "Headers (Upgraded)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 550AA2A10986C5F3005BB922 /* Development */, + 550AA2A20986C5F3005BB922 /* Deployment */, + 550AA2A30986C5F3005BB922 /* Default */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; + 5539DBCA085DDAE1008FA0F7 /* Build configuration list for PBXLibraryTarget "Headers" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5539DBCB085DDAE1008FA0F7 /* Development */, + 5539DBCC085DDAE1008FA0F7 /* Deployment */, + 5539DBCD085DDAE1008FA0F7 /* Default */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; + 5539DBCE085DDAE1008FA0F7 /* Build configuration list for PBXLibraryTarget "JNILib" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5539DBCF085DDAE1008FA0F7 /* Development */, + 5539DBD0085DDAE1008FA0F7 /* Deployment */, + 5539DBD1085DDAE1008FA0F7 /* Default */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; + 5539DBD2085DDAE1008FA0F7 /* Build configuration list for PBXAggregateTarget "ImageIOImageProcessor" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5539DBD3085DDAE1008FA0F7 /* Development */, + 5539DBD4085DDAE1008FA0F7 /* Deployment */, + 5539DBD5085DDAE1008FA0F7 /* Default */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; + 5539DBD6085DDAE1008FA0F7 /* Build configuration list for PBXProject "ImageIOImageProcessor" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5539DBD7085DDAE1008FA0F7 /* Development */, + 5539DBD8085DDAE1008FA0F7 /* Deployment */, + 5539DBD9085DDAE1008FA0F7 /* Default */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; +/* End XCConfigurationList section */ + }; + rootObject = 00E6828EFEC88D1A11DB9C8B /* Project object */; +} Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessorjnilib.m =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessorjnilib.m (rev 0) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessorjnilib.m 2009-02-08 17:31:00 UTC (rev 8913) @@ -0,0 +1,361 @@ +#import <Foundation/Foundation.h> +#import <AppKit/AppKit.h> +#import <ApplicationServices/ApplicationServices.h> +#import <QuartzCore/QuartzCore.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> +#include <unistd.h> +#include "er_attachment_thumbnail_ImageIOImageProcessor.h" + +CGColorSpaceRef createICCColorSpaceFromPathToProfile(const char *_iccProfilePath) { + CMProfileLocation loc; + // Specify that the location of the profile will be a POSIX path to the profile. + loc.locType = cmPathBasedProfile; + + // Make sure the path is not larger then the buffer + if(strlen(_iccProfilePath) > sizeof(loc.u.pathLoc.path)) { + return NULL; + } + + // Copy the path the profile into the CMProfileLocation structure + strcpy(loc.u.pathLoc.path, _iccProfilePath); + + // Open the profile + CMProfileRef iccProfile = (CMProfileRef) 0; + if (CMOpenProfile(&iccProfile, &loc) != noErr) { + iccProfile = (CMProfileRef) 0; + return NULL; + } + + // Create the ColorSpace with the open profile. + CGColorSpaceRef iccColorSpace = CGColorSpaceCreateWithPlatformColorSpace(iccProfile); + + // Close the profile now that we have what we need from it. + CMCloseProfile(iccProfile); + + return iccColorSpace; +} + +JNIEXPORT jboolean JNICALL Java_er_attachment_thumbnail_ImageIOImageProcessor_processImage(JNIEnv *_env, jobject _obj, jint _resizeWidth, jint _resizeHeight, jint _dpi, jfloat _sharpenRadius, jfloat _sharpenIntensity, jfloat _gamma, jint _cropX, jint _cropY, jint _cropWidth, jint _cropHeight, jfloat _quality, jstring _profilePath, jstring _inputFilePath, jstring _outputFilePath, jstring _outputType) { + return Java_er_attachment_thumbnail_ImageIOImageProcessor_processImage2(_env, _obj, _resizeWidth, _resizeHeight, _dpi, _sharpenRadius, _sharpenIntensity, _gamma, _cropX, _cropY, _cropWidth, _cropHeight, NULL, 0, _quality, _profilePath, _inputFilePath, _outputFilePath, _outputType); +} + +JNIEXPORT jboolean JNICALL Java_er_attachment_thumbnail_ImageIOImageProcessor_processImage2(JNIEnv *_env, jobject _obj, jint _resizeWidth, jint _resizeHeight, jint _dpi, jfloat _sharpenRadius, jfloat _sharpenIntensity, jfloat _gamma, jint _cropX, jint _cropY, jint _cropWidth, jint _cropHeight, jstring _watermarkPath, jboolean _tileWatermark, jfloat _quality, jstring _profilePath, jstring _inputFilePath, jstring _outputFilePath, jstring _outputType) { + jboolean thumbnailCreated = 1; + NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; + + CGColorSpaceRef colorSpaceRef = NULL; + if (_profilePath != NULL) { + const char *profilePathStr = (*_env)->GetStringUTFChars(_env, _profilePath, JNI_FALSE); + colorSpaceRef = createICCColorSpaceFromPathToProfile(profilePathStr); + (*_env)->ReleaseStringUTFChars(_env, _profilePath, profilePathStr); + } + + const char *inputFilePathStr = (*_env)->GetStringUTFChars(_env, _inputFilePath, JNI_FALSE); + NSString *path = [NSString stringWithUTF8String:inputFilePathStr]; + (*_env)->ReleaseStringUTFChars(_env, _inputFilePath, inputFilePathStr); + + // NTS: This is really lame, but we have to convert a PS to a PDF to properly thumbnail it. I was never able to find + // the proper API's to do this, but every Mac OS X box comes with pstopdf installed, so we just use that. + NSString *tempPath = nil; + NSString *extension = [[path pathExtension] lowercaseString]; + if (extension != nil && ([extension isEqualToString:@"ps"] || [extension isEqualToString:@"eps"])) { + const char *buffer = [[NSString stringWithFormat:@"%@/%@", NSTemporaryDirectory(), @"AssetVaultPS2DF-XXXXXX.pdf"] cStringUsingEncoding:[NSString defaultCStringEncoding]]; + char *mutableBuffer = (char *)malloc(strlen(buffer) + 1); + strcpy(mutableBuffer, buffer); + int tempFileFD = mkstemps(mutableBuffer, 4); + if (tempFileFD == -1) { + NSLog(@"Failed to create temp file %s\n", buffer); + thumbnailCreated = 0; + } + else { + close(tempFileFD); + tempPath = [NSString stringWithFormat:@"%s", mutableBuffer]; + free(mutableBuffer); + + NSTask *task = [[NSTask alloc] init]; + [task setLaunchPath:@"/usr/bin/pstopdf"]; + [task setArguments:[NSArray arrayWithObjects:path, @"-o", tempPath, nil]]; + [task launch]; + [task waitUntilExit]; + int status = [task terminationStatus]; + if (status != 0) { + NSLog(@"Failed to convert EPS to PDF.\n"); + thumbnailCreated = 0; + } + [task release]; + path = tempPath; + } + } + + if (thumbnailCreated) { + NSURL *imageURL = [NSURL fileURLWithPath:path]; + CGImageSourceRef source = CGImageSourceCreateWithURL((CFURLRef)imageURL, NULL); + if (source != nil) { + int maxPixelSize; + if (_resizeWidth == -1 && _resizeHeight == -1) { + maxPixelSize = -1; + } + else if (_resizeWidth > _resizeHeight) { + maxPixelSize = _resizeWidth; + } + else { + maxPixelSize = _resizeHeight; + } + + CGImageRef originalImage; + NSMutableDictionary *thumbnailOpts = [NSMutableDictionary dictionary]; + [thumbnailOpts setObject:(id)kCFBooleanTrue forKey:(id)kCGImageSourceCreateThumbnailWithTransform]; + [thumbnailOpts setObject:(id)kCFBooleanTrue forKey:(id)kCGImageSourceCreateThumbnailFromImageAlways]; + if (_dpi != -1) { + NSNumber *dpiNumber = [NSNumber numberWithInt:_dpi]; + [thumbnailOpts setObject:dpiNumber forKey:(id)kCGImagePropertyDPIWidth]; + [thumbnailOpts setObject:dpiNumber forKey:(id)kCGImagePropertyDPIHeight]; + } + + if (maxPixelSize != -1) { + [thumbnailOpts setObject:[NSNumber numberWithInt:maxPixelSize] forKey:(id)kCGImageSourceThumbnailMaxPixelSize]; + originalImage = CGImageSourceCreateThumbnailAtIndex(source, 0, (CFDictionaryRef)thumbnailOpts); + } + else { + originalImage = CGImageSourceCreateImageAtIndex(source, 0, (CFDictionaryRef)thumbnailOpts); + // This can happen if you have a PDF, for instance, which doesn't have an inherent width/height. So we + // have to just pick a width/height and go with it. + if (originalImage == NULL) { + [thumbnailOpts setObject:[NSNumber numberWithInt:1024] forKey:(id)kCGImageSourceThumbnailMaxPixelSize]; + originalImage = CGImageSourceCreateThumbnailAtIndex(source, 0, (CFDictionaryRef)thumbnailOpts); + } + } + + CFDictionaryRef metadata = CGImageSourceCopyPropertiesAtIndex(source, 0, NULL); + CFRelease(source); + source = NULL; + + if (originalImage == nil) { + NSLog(@"Failed to load original image.\n"); + thumbnailCreated = 0; + } + else { + const char *outputFilePathStr = (*_env)->GetStringUTFChars(_env, _outputFilePath, JNI_FALSE); + NSURL *thumbnailURL = [NSURL fileURLWithPath:[NSString stringWithUTF8String:outputFilePathStr]]; + (*_env)->ReleaseStringUTFChars(_env, _outputFilePath, outputFilePathStr); + const char *outputTypeStr = (*_env)->GetStringUTFChars(_env, _outputType, JNI_FALSE); + NSString *destUTI = [NSString stringWithUTF8String:outputTypeStr]; + (*_env)->ReleaseStringUTFChars(_env, _outputType, outputTypeStr); + + CGImageRef processedImage = NULL; + BOOL sharpen = (_sharpenRadius > 0.0 || _sharpenIntensity > 0.0); + BOOL crop = (_cropWidth > 0 && _cropHeight > 0); + BOOL gamma = (_gamma != 0.0); + BOOL watermark = (_watermarkPath != NULL); + BOOL processImage = sharpen || crop || gamma || watermark; + BOOL processImageOrColorSpace = colorSpaceRef != nil || processImage; + BOOL justProcessColorSpace = colorSpaceRef != nil && !processImage; + if (!processImageOrColorSpace) { + processedImage = originalImage; + } + else { + if (justProcessColorSpace) { + processedImage = CGImageCreateCopyWithColorSpace(originalImage, colorSpaceRef); + if (processedImage != NULL) { + CGImageRelease(originalImage); + originalImage = NULL; + } + } + + if (processedImage == NULL) { + //NSLog(@"Default colorspace conversion failed for %@. Doing it the hard way ...\n", imageURL); + size_t width; + if (crop) { + width = _cropWidth; + } + else { + width = CGImageGetWidth(originalImage); + } + size_t height; + if (crop) { + height = _cropHeight; + } + else { + height = CGImageGetHeight(originalImage); + } + size_t bitsPerComponent = CGImageGetBitsPerComponent(originalImage); + size_t bytesPerRow = CGImageGetBytesPerRow(originalImage); + size_t minimumBytesPerRow = 4 * width; + if (bytesPerRow < minimumBytesPerRow) { + NSLog(@"%@ reports a bytesPerRow of %d which is less than the minimum of %d. Using the minimum instead.\n", imageURL, bytesPerRow, minimumBytesPerRow); + bytesPerRow = minimumBytesPerRow; + } + + if (colorSpaceRef == NULL) { + colorSpaceRef = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB); + } + + void *data = calloc(bytesPerRow, height); + CGContextRef cgContext = CGBitmapContextCreate(data, width, height, bitsPerComponent, bytesPerRow, colorSpaceRef, kCGImageAlphaPremultipliedFirst); + if (cgContext == nil) { + NSLog(@"Failed to create bitmap context (width = %d, height = %d, bitsPerComponent = %d, bytesPerRow = %d).\n", width, height, bitsPerComponent, bytesPerRow); + thumbnailCreated = 0; + } + else { + // ... but sometimes it fails if the image has bogus info in it, which is really lame + NSDictionary *ciContextOptions = [NSDictionary dictionaryWithObjectsAndKeys: + [NSNumber numberWithBool: NO], kCIContextUseSoftwareRenderer, + nil]; + CIContext *ciContext = [CIContext contextWithCGContext:cgContext options:ciContextOptions]; + if (ciContext == nil) { + thumbnailCreated = 0; + NSLog(@"Failed to create a CIContext!\n"); + } + else { + CIImage *inputImage = [CIImage imageWithCGImage:originalImage]; + CIImage *outputImage = inputImage; + if (crop) { + CIFilter *cropFilter = [CIFilter filterWithName:@"CICrop"]; + [cropFilter setValue:outputImage forKey:@"inputImage"]; + int flippedCropY = (CGImageGetHeight(originalImage) - _cropY - _cropHeight); + [cropFilter setValue:[CIVector vectorWithX:_cropX Y:flippedCropY Z:_cropWidth W:_cropHeight] forKey:@"inputRectangle"]; + outputImage = [cropFilter valueForKey:@"outputImage"]; + + CIFilter *cropTransformFilter = [CIFilter filterWithName:@"CIAffineTransform"]; + NSAffineTransform *transform = [NSAffineTransform transform]; + [transform translateXBy:-_cropX yBy:-flippedCropY]; + [cropTransformFilter setValue:outputImage forKey:@"inputImage"]; + [cropTransformFilter setValue:transform forKey:@"inputTransform"]; + outputImage = [cropTransformFilter valueForKey:@"outputImage"]; + } + + if (sharpen) { + // If we need to sharpen, then use CoreImage .. + CIFilter *unsharkMask = [CIFilter filterWithName:@"CIUnsharpMask"]; + [unsharkMask setValue:outputImage forKey:@"inputImage"]; + [unsharkMask setValue:[NSNumber numberWithDouble:_sharpenIntensity] forKey:@"inputIntensity"]; + [unsharkMask setValue:[NSNumber numberWithDouble:_sharpenRadius] forKey:@"inputRadius"]; + outputImage = [unsharkMask valueForKey:@"outputImage"]; + } + + if (gamma) { + CIFilter *gammaFilter = [CIFilter filterWithName:@"CIGammaAdjust"]; + [gammaFilter setValue:outputImage forKey:@"inputImage"]; + [gammaFilter setValue:[NSNumber numberWithDouble:_gamma] forKey:@"inputPower"]; + outputImage = [gammaFilter valueForKey:@"outputImage"]; + } + + if (watermark) { + const char *watermarkPathStr = (*_env)->GetStringUTFChars(_env, _watermarkPath, JNI_FALSE); + NSString *watermarkPath = [NSString stringWithUTF8String:watermarkPathStr]; + (*_env)->ReleaseStringUTFChars(_env, _watermarkPath, watermarkPathStr); + CIImage *watermarkImage = [CIImage imageWithContentsOfURL:[NSURL fileURLWithPath:watermarkPath]]; + + if (watermarkImage != nil) { + if (_tileWatermark) { + CIFilter *tileFilter = [CIFilter filterWithName:@"CIAffineTile"]; + [tileFilter setValue:watermarkImage forKey:@"inputImage"]; + NSAffineTransform *tileTransform = [NSAffineTransform transform]; + [tileTransform scaleXBy: 1.0 yBy: 1.0]; + [tileFilter setValue:tileTransform forKey:@"inputTransform"]; + watermarkImage = [tileFilter valueForKey:@"outputImage"]; + } + else { + CIFilter *centerFilter = [CIFilter filterWithName:@"CIAffineTransform"]; + [centerFilter setValue:watermarkImage forKey:@"inputImage"]; + NSAffineTransform *centerTransform = [NSAffineTransform transform]; + [centerTransform translateXBy: ([outputImage extent].size.width - [watermarkImage extent].size.width) / 2.0 yBy: ([outputImage extent].size.height - [watermarkImage extent].size.height) / 2.0]; + [centerFilter setValue:centerTransform forKey:@"inputTransform"]; + watermarkImage = [centerFilter valueForKey:@"outputImage"]; + } + + //CIFilter *dissolveFilter = [CIFilter filterWithName:@"CIMultiplyBlendMode"]; + CIFilter *dissolveFilter = [CIFilter filterWithName:@"CIScreenBlendMode"]; + [dissolveFilter setValue:outputImage forKey:@"inputImage"]; + [dissolveFilter setValue:watermarkImage forKey:@"inputBackgroundImage"]; + // [dissolveFilter setValue:[NSNumber numberWithDouble:0.50] forKey:@"inputTime"]; + outputImage = [dissolveFilter valueForKey:@"outputImage"]; + } + else { + NSLog(@"Missing watermark image: %@", watermarkPath); + } + } + + CGRect imageRect = CGRectMake(0, 0, width, height); + processedImage = [ciContext createCGImage:outputImage fromRect:imageRect]; + CGImageRelease(originalImage); + originalImage = NULL; + } + CGContextRelease(cgContext); + cgContext = NULL; + } + free(data); + data = NULL; + } + } + + if (processedImage != NULL) { + CGImageDestinationRef dest = CGImageDestinationCreateWithURL((CFURLRef)thumbnailURL, (CFStringRef)destUTI, 1, NULL); + if (dest == nil) { + NSLog(@"Failed to create destination image."); + thumbnailCreated = 0; + } + else { + NSMutableDictionary *metadataOpts = [NSMutableDictionary dictionary]; + if (_dpi != -1) { + NSNumber *dpiNumber = [NSNumber numberWithInt:_dpi]; + [metadataOpts setObject:dpiNumber forKey:(id)kCGImagePropertyDPIWidth]; + [metadataOpts setObject:dpiNumber forKey:(id)kCGImagePropertyDPIHeight]; + } + if (_quality >= 0.0) { + [metadataOpts setObject:[NSNumber numberWithFloat:_quality] forKey:(id)kCGImageDestinationLossyCompressionQuality]; + } + if (metadata != NULL) { + [metadataOpts addEntriesFromDictionary:(NSDictionary *)metadata]; + CFRelease(metadata); + metadata = NULL; + } + //CFMutableDictionaryRef metadataOpts = CFDictionaryCreateMutable(nil, 0, + // &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); + CGImageDestinationAddImage(dest, processedImage, (CFDictionaryRef)metadataOpts); + + BOOL status = (BOOL) CGImageDestinationFinalize(dest); + if (!status) { + thumbnailCreated = 0; + } + CFRelease(dest); + dest = NULL; + } + + if (processedImage != NULL && processedImage != originalImage) { + CGImageRelease(processedImage); + processedImage = NULL; + } + } + } + + if (metadata != NULL) { + CFRelease(metadata); + metadata = NULL; + } + + if (originalImage != NULL) { + CGImageRelease(originalImage); + originalImage = NULL; + } + } + } + + if (colorSpaceRef != NULL) { + CGColorSpaceRelease(colorSpaceRef); + colorSpaceRef = NULL; + } + + if (tempPath != nil) { + BOOL tempFileRemoved = [[NSFileManager defaultManager] removeFileAtPath:tempPath handler:nil]; + if (!tempFileRemoved) { + NSLog(@"Failed to remove temp file %@.\n", tempPath); + } + } + + [pool release]; + return thumbnailCreated; +} \ No newline at end of file Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/er_attachment_thumbnail_ImageIOImageProcessor.h =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/er_attachment_thumbnail_ImageIOImageProcessor.h (rev 0) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/er_attachment_thumbnail_ImageIOImageProcessor.h 2009-02-08 17:31:00 UTC (rev 8913) @@ -0,0 +1,16 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> +/* Header for class er_attachment_thumbnail_ImageIOImageProcessor */ + +#ifndef _Included_er_attachment_thumbnail_ImageIOImageProcessor +#define _Included_er_attachment_thumbnail_ImageIOImageProcessor +#ifdef __cplusplus +extern "C" { +#endif +JNIEXPORT jboolean JNICALL Java_er_attachment_thumbnail_ImageIOImageProcessor_processImage(JNIEnv *, jobject, jint, jint, jint, jfloat, jfloat, jfloat, jint, jint, jint, jint, jfloat, jstring, jstring, jstring, jstring); +JNIEXPORT jboolean JNICALL Java_er_attachment_thumbnail_ImageIOImageProcessor_processImage2(JNIEnv *, jobject, jint, jint, jint, jfloat, jfloat, jfloat, jint, jint, jint, jint, jstring, jboolean, jfloat, jstring, jstring, jstring, jstring); + +#ifdef __cplusplus +} +#endif +#endif Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Resources/sRGB.icc =================================================================== (Binary files differ) Property changes on: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Resources/sRGB.icc ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/thumbnail/BlendComposite.java =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/thumbnail/BlendComposite.java (rev 0) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/thumbnail/BlendComposite.java 2009-02-08 17:31:00 UTC (rev 8913) @@ -0,0 +1,777 @@ +/* + * Copyright (c) 2006 Romain Guy <rom...@ma...> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package er.attachment.thumbnail; + +import java.awt.Composite; +import java.awt.CompositeContext; +import java.awt.RenderingHints; +import java.awt.image.ColorModel; +import java.awt.image.DataBuffer; +import java.awt.image.Raster; +import java.awt.image.WritableRaster; + +public final class BlendComposite implements Composite { + public enum BlendingMode { + NORMAL, + AVERAGE, + MULTIPLY, + SCREEN, + DARKEN, + LIGHTEN, + OVERLAY, + HARD_LIGHT, + SOFT_LIGHT, + DIFFERENCE, + NEGATION, + EXCLUSION, + COLOR_DODGE, + INVERSE_COLOR_DODGE, + SOFT_DODGE, + COLOR_BURN, + INVERSE_COLOR_BURN, + SOFT_BURN, + REFLECT, + GLOW, + FREEZE, + HEAT, + ... [truncated message content] |
From: <ms...@us...> - 2009-03-25 15:40:41
|
Revision: 9110 http://wonder.svn.sourceforge.net/wonder/?rev=9110&view=rev Author: mschrag Date: 2009-03-25 15:40:28 +0000 (Wed, 25 Mar 2009) Log Message: ----------- imported our metadata parser as ERMetadataParser Modified Paths: -------------- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/thumbnail/IERImageProcessor.java Added Paths: ----------- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOMetadataParser/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOMetadataParser/ImageIOMetadataParser.xcodeproj/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOMetadataParser/ImageIOMetadataParser.xcodeproj/default.pbxuser trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOMetadataParser/ImageIOMetadataParser.xcodeproj/project.pbxproj trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOMetadataParser/ImageIOMetadataParserjnilib.m trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOMetadataParser/er_attachment_metadata_ImageIOMetadataParser.h trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/imaging/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/imaging/jpeg/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/imaging/jpeg/JpegMetadataReader.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/imaging/jpeg/JpegProcessingException.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/imaging/jpeg/JpegSegmentReader.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/lang/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/lang/CompoundException.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/lang/NullOutputStream.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/lang/Rational.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/DefaultTagDescriptor.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/Directory.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/Metadata.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/MetadataException.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/MetadataReader.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/SampleUsage.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/Tag.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/TagDescriptor.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/CanonMakernoteDescriptor.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/CanonMakernoteDirectory.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/CasioMakernoteDescriptor.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/CasioMakernoteDirectory.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/DataFormat.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/ExifDescriptor.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/ExifDirectory.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/ExifInteropDescriptor.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/ExifInteropDirectory.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/ExifProcessingException.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/ExifReader.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/FujiFilmMakernoteDirectory.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/FujifilmMakernoteDescriptor.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/GpsDescriptor.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/GpsDirectory.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/NikonType1MakernoteDescriptor.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/NikonType1MakernoteDirectory.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/NikonType2MakernoteDescriptor.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/NikonType2MakernoteDirectory.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/NikonType3MakernoteDescriptor.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/NikonType3MakernoteDirectory.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/OlympusMakernoteDescriptor.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/exif/OlympusMakernoteDirectory.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/iptc/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/iptc/IptcDescriptor.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/iptc/IptcDirectory.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/iptc/IptcProcessingException.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/iptc/IptcReader.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/jpeg/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/jpeg/JpegCommentDescriptor.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/jpeg/JpegCommentDirectory.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/jpeg/JpegCommentReader.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/jpeg/JpegComponent.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/jpeg/JpegDescriptor.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/jpeg/JpegDirectory.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/com/drew/metadata/jpeg/JpegReader.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/metadata/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/metadata/DrewMetadataDirectoryParser.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/metadata/DrewMetadataParser.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/metadata/ERFakeMetadataParser.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/metadata/ERMetadataDirectorySet.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/metadata/ERMetadataEntry.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/metadata/ERMetadataParser.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/metadata/ERMetadataParserException.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/metadata/ERMetadataUtils.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/metadata/ERParsedMetadataDirectory.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/metadata/ERUnparsedMetadataDirectory.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/metadata/IERMetadataDirectory.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/metadata/IERMetadataDirectoryParser.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/metadata/IERMetadataParser.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/metadata/ImageIOMetadataParser.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/metadata/ImageMagickCommandlineMetadataParser.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/metadata/JAIMetadataParser.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/thumbnail/ERThumbnailer.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/thumbnail/IERThumbnailer.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Tests/er/attachment/metadata/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Tests/er/attachment/metadata/ERMetadataParserTest.java Removed Paths: ------------- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessor.xcodeproj/mschrag.pbxuser trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessor.xcodeproj/mschrag.perspectivev3 Deleted: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessor.xcodeproj/mschrag.pbxuser =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessor.xcodeproj/mschrag.pbxuser 2009-03-25 15:38:18 UTC (rev 9109) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessor.xcodeproj/mschrag.pbxuser 2009-03-25 15:40:28 UTC (rev 9110) @@ -1,116 +0,0 @@ -// !$*UTF8*$! -{ - 00E6828EFEC88D1A11DB9C8B /* Project object */ = { - activeBuildConfigurationName = Deployment; - activeExecutable = 6A9FA6570246BA6C0CC91562 /* JNIWrapper */; - activeTarget = 6A9FA557024694440CC91562 /* ImageIOImageProcessor */; - addToTargets = ( - ); - codeSenseManager = 559D18010F3F4EE600B0F7AC /* Code sense */; - executables = ( - 6A9FA6570246BA6C0CC91562 /* JNIWrapper */, - ); - perUserDictionary = { - PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; - PBXFileTableDataSourceColumnWidthsKey = ( - 20, - 669, - 20, - 48, - 43, - 43, - 20, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXFileDataSource_FiletypeID, - PBXFileDataSource_Filename_ColumnID, - PBXFileDataSource_Built_ColumnID, - PBXFileDataSource_ObjectSize_ColumnID, - PBXFileDataSource_Errors_ColumnID, - PBXFileDataSource_Warnings_ColumnID, - PBXFileDataSource_Target_ColumnID, - ); - }; - PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; - PBXFileTableDataSourceColumnWidthsKey = ( - 20, - 629, - 60, - 20, - 48.16259765625, - 43, - 43, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXFileDataSource_FiletypeID, - PBXFileDataSource_Filename_ColumnID, - PBXTargetDataSource_PrimaryAttribute, - PBXFileDataSource_Built_ColumnID, - PBXFileDataSource_ObjectSize_ColumnID, - PBXFileDataSource_Errors_ColumnID, - PBXFileDataSource_Warnings_ColumnID, - ); - }; - PBXPerProjectTemplateStateSaveDate = 255807316; - PBXWorkspaceStateSaveDate = 255807316; - }; - sourceControlManager = 559D18000F3F4EE600B0F7AC /* Source Control */; - userBuildSettings = { - }; - }; - 559D18000F3F4EE600B0F7AC /* Source Control */ = { - isa = PBXSourceControlManager; - fallbackIsa = XCSourceControlManager; - isSCMEnabled = 0; - scmConfiguration = { - }; - }; - 559D18010F3F4EE600B0F7AC /* Code sense */ = { - isa = PBXCodeSenseManager; - indexTemplatePath = ""; - }; - 6A9FA557024694440CC91562 /* ImageIOImageProcessor */ = { - activeExec = 0; - }; - 6A9FA570024696E90CC91562 /* JNILib */ = { - activeExec = 0; - }; - 6A9FA6570246BA6C0CC91562 /* JNIWrapper */ = { - isa = PBXExecutable; - activeArgIndices = ( - YES, - ); - argumentStrings = ( - "-cp JNIWrapper.jar JNIWrapper", - ); - autoAttachOnCrash = 1; - breakpointsEnabled = 1; - configStateDict = { - }; - customDataFormattersEnabled = 1; - debuggerPlugin = GDBDebugging; - disassemblyDisplayState = 0; - dylibVariantSuffix = ""; - enableDebugStr = 1; - environmentEntries = ( - ); - executableSystemSymbolLevel = 0; - executableUserSymbolLevel = 0; - launchableReference = 6A9FA6590246BA770CC91562 /* java */; - libgmallocEnabled = 0; - name = JNIWrapper; - sourceDirectories = ( - ); - }; - 6A9FA6590246BA770CC91562 /* java */ = { - isa = PBXFileReference; - lastKnownFileType = "compiled.mach-o.executable"; - name = java; - path = /usr/bin/java; - sourceTree = "<absolute>"; - }; -} Deleted: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessor.xcodeproj/mschrag.perspectivev3 =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessor.xcodeproj/mschrag.perspectivev3 2009-03-25 15:38:18 UTC (rev 9109) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessor.xcodeproj/mschrag.perspectivev3 2009-03-25 15:40:28 UTC (rev 9110) @@ -1,1462 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>ActivePerspectiveName</key> - <string>Project</string> - <key>AllowedModules</key> - <array> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXSmartGroupTreeModule</string> - <key>Name</key> - <string>Groups and Files Outline View</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Name</key> - <string>Editor</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>XCTaskListModule</string> - <key>Name</key> - <string>Task List</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>XCDetailModule</string> - <key>Name</key> - <string>File and Smart Group Detail Viewer</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>1</string> - <key>Module</key> - <string>PBXBuildResultsModule</string> - <key>Name</key> - <string>Detailed Build Results Viewer</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>1</string> - <key>Module</key> - <string>PBXProjectFindModule</string> - <key>Name</key> - <string>Project Batch Find Tool</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>XCProjectFormatConflictsModule</string> - <key>Name</key> - <string>Project Format Conflicts List</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXBookmarksModule</string> - <key>Name</key> - <string>Bookmarks Tool</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXClassBrowserModule</string> - <key>Name</key> - <string>Class Browser</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXCVSModule</string> - <key>Name</key> - <string>Source Code Control Tool</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXDebugBreakpointsModule</string> - <key>Name</key> - <string>Debug Breakpoints Tool</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>XCDockableInspector</string> - <key>Name</key> - <string>Inspector</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>PBXOpenQuicklyModule</string> - <key>Name</key> - <string>Open Quickly Tool</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>1</string> - <key>Module</key> - <string>PBXDebugSessionModule</string> - <key>Name</key> - <string>Debugger</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>1</string> - <key>Module</key> - <string>PBXDebugCLIModule</string> - <key>Name</key> - <string>Debug Console</string> - </dict> - <dict> - <key>BundleLoadPath</key> - <string></string> - <key>MaxInstances</key> - <string>n</string> - <key>Module</key> - <string>XCSnapshotModule</string> - <key>Name</key> - <string>Snapshots Tool</string> - </dict> - </array> - <key>BundlePath</key> - <string>/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources</string> - <key>Description</key> - <string>AIODescriptionKey</string> - <key>DockingSystemVisible</key> - <false/> - <key>Extension</key> - <string>perspectivev3</string> - <key>FavBarConfig</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>559D17FF0F3F4EE600B0F7AC</string> - <key>XCBarModuleItemNames</key> - <dict/> - <key>XCBarModuleItems</key> - <array/> - </dict> - <key>FirstTimeWindowDisplayed</key> - <false/> - <key>Identifier</key> - <string>com.apple.perspectives.project.defaultV3</string> - <key>MajorVersion</key> - <integer>34</integer> - <key>MinorVersion</key> - <integer>0</integer> - <key>Name</key> - <string>All-In-One</string> - <key>Notifications</key> - <array/> - <key>OpenEditors</key> - <array/> - <key>PerspectiveWidths</key> - <array> - <integer>-1</integer> - <integer>-1</integer> - </array> - <key>Perspectives</key> - <array> - <dict> - <key>ChosenToolbarItems</key> - <array> - <string>XCToolbarPerspectiveControl</string> - <string>NSToolbarSeparatorItem</string> - <string>active-combo-popup</string> - <string>action</string> - <string>NSToolbarFlexibleSpaceItem</string> - <string>buildOrClean</string> - <string>build-and-goOrGo</string> - <string>com.apple.ide.PBXToolbarStopButton</string> - <string>get-info</string> - <string>toggle-editor</string> - <string>NSToolbarFlexibleSpaceItem</string> - <string>com.apple.pbx.toolbar.searchfield</string> - </array> - <key>ControllerClassBaseName</key> - <string></string> - <key>IconName</key> - <string>WindowOfProject</string> - <key>Identifier</key> - <string>perspective.project</string> - <key>IsVertical</key> - <false/> - <key>Layout</key> - <array> - <dict> - <key>BecomeActive</key> - <true/> - <key>ContentConfiguration</key> - <dict> - <key>PBXBottomSmartGroupGIDs</key> - <array> - <string>1C37FBAC04509CD000000102</string> - <string>1C37FAAC04509CD000000102</string> - <string>1C08E77C0454961000C914BD</string> - <string>1C37FABC05509CD000000102</string> - <string>1C37FABC05539CD112110102</string> - <string>E2644B35053B69B200211256</string> - <string>1C37FABC04509CD000100104</string> - <string>1CC0EA4004350EF90044410B</string> - <string>1CC0EA4004350EF90041110B</string> - <string>1C77FABC04509CD000000102</string> - </array> - <key>PBXProjectModuleGUID</key> - <string>1CA23ED40692098700951B8B</string> - <key>PBXProjectModuleLabel</key> - <string>Files</string> - <key>PBXProjectStructureProvided</key> - <string>yes</string> - <key>PBXSmartGroupTreeModuleColumnData</key> - <dict> - <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> - <array> - <real>338</real> - </array> - <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> - <array> - <string>MainColumn</string> - </array> - </dict> - <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> - <dict> - <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> - <array> - <string>00E6828FFEC88D1A11DB9C8B</string> - <string>0120612AFEC8923411DB9C8B</string> - <string>55409B700D3E615D00A53442</string> - <string>1C37FBAC04509CD000000102</string> - </array> - <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> - <array> - <array> - <integer>10</integer> - </array> - </array> - <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> - <string>{{0, 0}, {338, 471}}</string> - </dict> - <key>PBXTopSmartGroupGIDs</key> - <array/> - <key>XCIncludePerspectivesSwitch</key> - <false/> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {355, 489}}</string> - <key>GroupTreeTableConfiguration</key> - <array> - <string>MainColumn</string> - <real>338</real> - </array> - <key>RubberWindowFrame</key> - <string>555 490 1268 530 0 0 1920 1178 </string> - </dict> - <key>Module</key> - <string>PBXSmartGroupTreeModule</string> - <key>Proportion</key> - <string>355pt</string> - </dict> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>559D17F40F3F4EE600B0F7AC</string> - <key>PBXProjectModuleLabel</key> - <string></string> - <key>PBXSplitModuleInNavigatorKey</key> - <dict> - <key>Split0</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>559D17F50F3F4EE600B0F7AC</string> - <key>PBXProjectModuleLabel</key> - <string></string> - </dict> - <key>SplitCount</key> - <string>1</string> - </dict> - <key>StatusBarVisibility</key> - <true/> - <key>XCSharingToken</key> - <string>com.apple.Xcode.CommonNavigatorGroupSharingToken</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {908, 0}}</string> - <key>RubberWindowFrame</key> - <string>555 490 1268 530 0 0 1920 1178 </string> - </dict> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Proportion</key> - <string>0pt</string> - </dict> - <dict> - <key>Proportion</key> - <string>484pt</string> - <key>Tabs</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CA23EDF0692099D00951B8B</string> - <key>PBXProjectModuleLabel</key> - <string>Detail</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{10, 27}, {908, 457}}</string> - <key>RubberWindowFrame</key> - <string>555 490 1268 530 0 0 1920 1178 </string> - </dict> - <key>Module</key> - <string>XCDetailModule</string> - </dict> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CA23EE00692099D00951B8B</string> - <key>PBXProjectModuleLabel</key> - <string>Project Find</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{10, 31}, {603, 297}}</string> - </dict> - <key>Module</key> - <string>PBXProjectFindModule</string> - </dict> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXCVSModuleFilterTypeKey</key> - <integer>1032</integer> - <key>PBXProjectModuleGUID</key> - <string>1CA23EE10692099D00951B8B</string> - <key>PBXProjectModuleLabel</key> - <string>SCM Results</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{10, 31}, {603, 297}}</string> - </dict> - <key>Module</key> - <string>PBXCVSModule</string> - </dict> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>XCMainBuildResultsModuleGUID</string> - <key>PBXProjectModuleLabel</key> - <string>Build</string> - <key>XCBuildResultsTrigger_Collapse</key> - <integer>1021</integer> - <key>XCBuildResultsTrigger_Open</key> - <integer>1011</integer> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{10, 27}, {908, 457}}</string> - </dict> - <key>Module</key> - <string>PBXBuildResultsModule</string> - </dict> - </array> - </dict> - </array> - <key>Proportion</key> - <string>908pt</string> - </dict> - </array> - <key>Name</key> - <string>Project</string> - <key>ServiceClasses</key> - <array> - <string>XCModuleDock</string> - <string>PBXSmartGroupTreeModule</string> - <string>XCModuleDock</string> - <string>PBXNavigatorGroup</string> - <string>XCDockableTabModule</string> - <string>XCDetailModule</string> - <string>PBXProjectFindModule</string> - <string>PBXCVSModule</string> - <string>PBXBuildResultsModule</string> - </array> - <key>TableOfContents</key> - <array> - <string>552A66690F3F4F79004A427C</string> - <string>1CA23ED40692098700951B8B</string> - <string>552A666A0F3F4F79004A427C</string> - <string>559D17F40F3F4EE600B0F7AC</string> - <string>552A666B0F3F4F79004A427C</string> - <string>1CA23EDF0692099D00951B8B</string> - <string>1CA23EE00692099D00951B8B</string> - <string>1CA23EE10692099D00951B8B</string> - <string>XCMainBuildResultsModuleGUID</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.defaultV3</string> - </dict> - <dict> - <key>ChosenToolbarItems</key> - <array> - <string>XCToolbarPerspectiveControl</string> - <string>NSToolbarSeparatorItem</string> - <string>build-and-go</string> - <string>go</string> - <string>NSToolbarFlexibleSpaceItem</string> - <string>debugger-fix-and-continue</string> - <string>debugger-restart-executable</string> - <string>debugger-pause</string> - <string>debugger-step-over</string> - <string>debugger-step-into</string> - <string>debugger-step-out</string> - <string>debugger-step-instruction</string> - <string>NSToolbarFlexibleSpaceItem</string> - </array> - <key>ControllerClassBaseName</key> - <string>PBXDebugSessionModule</string> - <key>IconName</key> - <string>DebugTabIcon</string> - <key>Identifier</key> - <string>perspective.debug</string> - <key>IsVertical</key> - <true/> - <key>Layout</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CCC7628064C1048000F2A68</string> - <key>PBXProjectModuleLabel</key> - <string>Debugger Console</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {810, 0}}</string> - </dict> - <key>Module</key> - <string>PBXDebugCLIModule</string> - <key>Proportion</key> - <string>0pt</string> - </dict> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>Debugger</key> - <dict> - <key>HorizontalSplitView</key> - <dict> - <key>_collapsingFrameDimension</key> - <real>0.0</real> - <key>_indexOfCollapsedView</key> - <integer>0</integer> - <key>_percentageOfCollapsedView</key> - <real>0.0</real> - <key>isCollapsed</key> - <string>yes</string> - <key>sizes</key> - <array> - <string>{{0, 0}, {395, 213}}</string> - <string>{{395, 0}, {415, 213}}</string> - </array> - </dict> - <key>VerticalSplitView</key> - <dict> - <key>_collapsingFrameDimension</key> - <real>0.0</real> - <key>_indexOfCollapsedView</key> - <integer>0</integer> - <key>_percentageOfCollapsedView</key> - <real>0.0</real> - <key>isCollapsed</key> - <string>yes</string> - <key>sizes</key> - <array> - <string>{{0, 0}, {810, 213}}</string> - <string>{{0, 213}, {810, 225}}</string> - </array> - </dict> - </dict> - <key>LauncherConfigVersion</key> - <string>8</string> - <key>PBXProjectModuleGUID</key> - <string>1CCC7629064C1048000F2A68</string> - <key>PBXProjectModuleLabel</key> - <string>Debug</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>DebugConsoleVisible</key> - <string>None</string> - <key>DebugConsoleWindowFrame</key> - <string>{{200, 200}, {500, 300}}</string> - <key>DebugSTDIOWindowFrame</key> - <string>{{200, 200}, {500, 300}}</string> - <key>Frame</key> - <string>{{0, 7}, {810, 438}}</string> - <key>PBXDebugSessionStackFrameViewKey</key> - <dict> - <key>DebugVariablesTableConfiguration</key> - <array> - <string>Name</string> - <real>120</real> - <string>Value</string> - <real>85</real> - <string>Summary</string> - <real>185</real> - </array> - <key>Frame</key> - <string>{{395, 0}, {415, 213}}</string> - </dict> - </dict> - <key>Module</key> - <string>PBXDebugSessionModule</string> - <key>Proportion</key> - <string>438pt</string> - </dict> - </array> - <key>Name</key> - <string>Debug</string> - <key>ServiceClasses</key> - <array> - <string>XCModuleDock</string> - <string>PBXDebugCLIModule</string> - <string>PBXDebugSessionModule</string> - <string>PBXDebugProcessAndThreadModule</string> - <string>PBXDebugProcessViewModule</string> - <string>PBXDebugThreadViewModule</string> - <string>PBXDebugStackFrameViewModule</string> - <string>PBXNavigatorGroup</string> - </array> - <key>TableOfContents</key> - <array> - <string>552A65A70F3F4F54004A427C</string> - <string>1CCC7628064C1048000F2A68</string> - <string>1CCC7629064C1048000F2A68</string> - <string>552A65A80F3F4F54004A427C</string> - <string>552A65A90F3F4F54004A427C</string> - <string>552A65AA0F3F4F54004A427C</string> - <string>552A65AB0F3F4F54004A427C</string> - <string>552A65AC0F3F4F54004A427C</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.debugV3</string> - </dict> - </array> - <key>PerspectivesBarVisible</key> - <true/> - <key>ShelfIsVisible</key> - <false/> - <key>SourceDescription</key> - <string>file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecification.xcperspec'</string> - <key>StatusbarIsVisible</key> - <true/> - <key>TimeStamp</key> - <real>0.0</real> - <key>ToolbarDisplayMode</key> - <integer>1</integer> - <key>ToolbarIsVisible</key> - <true/> - <key>ToolbarSizeMode</key> - <integer>1</integer> - <key>Type</key> - <string>Perspectives</string> - <key>UpdateMessage</key> - <string></string> - <key>WindowJustification</key> - <integer>5</integer> - <key>WindowOrderList</key> - <array> - <string>/Users/mschrag/Documents/workspace/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOImageProcessor/ImageIOImageProcessor.xcodeproj</string> - </array> - <key>WindowString</key> - <string>555 490 1268 530 0 0 1920 1178 </string> - <key>WindowToolsV3</key> - <array> - <dict> - <key>Identifier</key> - <string>windowTool.debugger</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>Debugger</key> - <dict> - <key>HorizontalSplitView</key> - <dict> - <key>_collapsingFrameDimension</key> - <real>0.0</real> - <key>_indexOfCollapsedView</key> - <integer>0</integer> - <key>_percentageOfCollapsedView</key> - <real>0.0</real> - <key>isCollapsed</key> - <string>yes</string> - <key>sizes</key> - <array> - <string>{{0, 0}, {317, 164}}</string> - <string>{{317, 0}, {377, 164}}</string> - </array> - </dict> - <key>VerticalSplitView</key> - <dict> - <key>_collapsingFrameDimension</key> - <real>0.0</real> - <key>_indexOfCollapsedView</key> - <integer>0</integer> - <key>_percentageOfCollapsedView</key> - <real>0.0</real> - <key>isCollapsed</key> - <string>yes</string> - <key>sizes</key> - <array> - <string>{{0, 0}, {694, 164}}</string> - <string>{{0, 164}, {694, 216}}</string> - </array> - </dict> - </dict> - <key>LauncherConfigVersion</key> - <string>8</string> - <key>PBXProjectModuleGUID</key> - <string>1C162984064C10D400B95A72</string> - <key>PBXProjectModuleLabel</key> - <string>Debug - GLUTExamples (Underwater)</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>DebugConsoleDrawerSize</key> - <string>{100, 120}</string> - <key>DebugConsoleVisible</key> - <string>None</string> - <key>DebugConsoleWindowFrame</key> - <string>{{200, 200}, {500, 300}}</string> - <key>DebugSTDIOWindowFrame</key> - <string>{{200, 200}, {500, 300}}</string> - <key>Frame</key> - <string>{{0, 0}, {694, 380}}</string> - <key>RubberWindowFrame</key> - <string>321 238 694 422 0 0 1440 878 </string> - </dict> - <key>Module</key> - <string>PBXDebugSessionModule</string> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Name</key> - <string>Debugger</string> - <key>ServiceClasses</key> - <array> - <string>PBXDebugSessionModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>1</integer> - <key>TableOfContents</key> - <array> - <string>1CD10A99069EF8BA00B06720</string> - <string>1C0AD2AB069F1E9B00FABCE6</string> - <string>1C162984064C10D400B95A72</string> - <string>1C0AD2AC069F1E9B00FABCE6</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.debugV3</string> - <key>WindowString</key> - <string>321 238 694 422 0 0 1440 878 </string> - <key>WindowToolGUID</key> - <string>1CD10A99069EF8BA00B06720</string> - <key>WindowToolIsVisible</key> - <integer>0</integer> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.build</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CD0528F0623707200166675</string> - <key>PBXProjectModuleLabel</key> - <string><No Editor></string> - <key>PBXSplitModuleInNavigatorKey</key> - <dict> - <key>Split0</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CD052900623707200166675</string> - </dict> - <key>SplitCount</key> - <string>1</string> - </dict> - <key>StatusBarVisibility</key> - <integer>1</integer> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {500, 215}}</string> - <key>RubberWindowFrame</key> - <string>192 257 500 500 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Proportion</key> - <string>218pt</string> - </dict> - <dict> - <key>BecomeActive</key> - <integer>1</integer> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>XCMainBuildResultsModuleGUID</string> - <key>PBXProjectModuleLabel</key> - <string>Build</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 222}, {500, 236}}</string> - <key>RubberWindowFrame</key> - <string>192 257 500 500 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXBuildResultsModule</string> - <key>Proportion</key> - <string>236pt</string> - </dict> - </array> - <key>Proportion</key> - <string>458pt</string> - </dict> - </array> - <key>Name</key> - <string>Build Results</string> - <key>ServiceClasses</key> - <array> - <string>PBXBuildResultsModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>1</integer> - <key>TableOfContents</key> - <array> - <string>1C78EAA5065D492600B07095</string> - <string>1C78EAA6065D492600B07095</string> - <string>1CD0528F0623707200166675</string> - <string>XCMainBuildResultsModuleGUID</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.buildV3</string> - <key>WindowString</key> - <string>192 257 500 500 0 0 1280 1002 </string> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.find</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CDD528C0622207200134675</string> - <key>PBXProjectModuleLabel</key> - <string><No Editor></string> - <key>PBXSplitModuleInNavigatorKey</key> - <dict> - <key>Split0</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CD0528D0623707200166675</string> - </dict> - <key>SplitCount</key> - <string>1</string> - </dict> - <key>StatusBarVisibility</key> - <integer>1</integer> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {781, 167}}</string> - <key>RubberWindowFrame</key> - <string>62 385 781 470 0 0 1440 878 </string> - </dict> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Proportion</key> - <string>781pt</string> - </dict> - </array> - <key>Proportion</key> - <string>50%</string> - </dict> - <dict> - <key>BecomeActive</key> - <integer>1</integer> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CD0528E0623707200166675</string> - <key>PBXProjectModuleLabel</key> - <string>Project Find</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{8, 0}, {773, 254}}</string> - <key>RubberWindowFrame</key> - <string>62 385 781 470 0 0 1440 878 </string> - </dict> - <key>Module</key> - <string>PBXProjectFindModule</string> - <key>Proportion</key> - <string>50%</string> - </dict> - </array> - <key>Proportion</key> - <string>428pt</string> - </dict> - </array> - <key>Name</key> - <string>Project Find</string> - <key>ServiceClasses</key> - <array> - <string>PBXProjectFindModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>1</integer> - <key>TableOfContents</key> - <array> - <string>1C530D57069F1CE1000CFCEE</string> - <string>1C530D58069F1CE1000CFCEE</string> - <string>1C530D59069F1CE1000CFCEE</string> - <string>1CDD528C0622207200134675</string> - <string>1C530D5A069F1CE1000CFCEE</string> - <string>1CE0B1FE06471DED0097A5F4</string> - <string>1CD0528E0623707200166675</string> - </array> - <key>WindowString</key> - <string>62 385 781 470 0 0 1440 878 </string> - <key>WindowToolGUID</key> - <string>1C530D57069F1CE1000CFCEE</string> - <key>WindowToolIsVisible</key> - <integer>0</integer> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.snapshots</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>Module</key> - <string>XCSnapshotModule</string> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Name</key> - <string>Snapshots</string> - <key>ServiceClasses</key> - <array> - <string>XCSnapshotModule</string> - </array> - <key>StatusbarIsVisible</key> - <string>Yes</string> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.snapshots</string> - <key>WindowString</key> - <string>315 824 300 550 0 0 1440 878 </string> - <key>WindowToolIsVisible</key> - <string>Yes</string> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.debuggerConsole</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>BecomeActive</key> - <integer>1</integer> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1C78EAAC065D492600B07095</string> - <key>PBXProjectModuleLabel</key> - <string>Debugger Console</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {700, 358}}</string> - <key>RubberWindowFrame</key> - <string>149 87 700 400 0 0 1440 878 </string> - </dict> - <key>Module</key> - <string>PBXDebugCLIModule</string> - <key>Proportion</key> - <string>358pt</string> - </dict> - </array> - <key>Proportion</key> - <string>358pt</string> - </dict> - </array> - <key>Name</key> - <string>Debugger Console</string> - <key>ServiceClasses</key> - <array> - <string>PBXDebugCLIModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>1</integer> - <key>TableOfContents</key> - <array> - <string>1C530D5B069F1CE1000CFCEE</string> - <string>1C530D5C069F1CE1000CFCEE</string> - <string>1C78EAAC065D492600B07095</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.consoleV3</string> - <key>WindowString</key> - <string>149 87 440 400 0 0 1440 878 </string> - <key>WindowToolGUID</key> - <string>1C530D5B069F1CE1000CFCEE</string> - <key>WindowToolIsVisible</key> - <integer>0</integer> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.scm</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1C78EAB2065D492600B07095</string> - <key>PBXProjectModuleLabel</key> - <string><No Editor></string> - <key>PBXSplitModuleInNavigatorKey</key> - <dict> - <key>Split0</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1C78EAB3065D492600B07095</string> - </dict> - <key>SplitCount</key> - <string>1</string> - </dict> - <key>StatusBarVisibility</key> - <integer>1</integer> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {452, 0}}</string> - <key>RubberWindowFrame</key> - <string>743 379 452 308 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Proportion</key> - <string>0pt</string> - </dict> - <dict> - <key>BecomeActive</key> - <integer>1</integer> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CD052920623707200166675</string> - <key>PBXProjectModuleLabel</key> - <string>SCM</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>ConsoleFrame</key> - <string>{{0, 259}, {452, 0}}</string> - <key>Frame</key> - <string>{{0, 7}, {452, 259}}</string> - <key>RubberWindowFrame</key> - <string>743 379 452 308 0 0 1280 1002 </string> - <key>TableConfiguration</key> - <array> - <string>Status</string> - <real>30</real> - <string>FileName</string> - <real>199</real> - <string>Path</string> - <real>197.09500122070312</real> - </array> - <key>TableFrame</key> - <string>{{0, 0}, {452, 250}}</string> - </dict> - <key>Module</key> - <string>PBXCVSModule</string> - <key>Proportion</key> - <string>262pt</string> - </dict> - </array> - <key>Proportion</key> - <string>266pt</string> - </dict> - </array> - <key>Name</key> - <string>SCM</string> - <key>ServiceClasses</key> - <array> - <string>PBXCVSModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>1</integer> - <key>TableOfContents</key> - <array> - <string>1C78EAB4065D492600B07095</string> - <string>1C78EAB5065D492600B07095</string> - <string>1C78EAB2065D492600B07095</string> - <string>1CD052920623707200166675</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.scmV3</string> - <key>WindowString</key> - <string>743 379 452 308 0 0 1280 1002 </string> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.breakpoints</string> - <key>IsVertical</key> - <integer>0</integer> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>BecomeActive</key> - <integer>1</integer> - <key>ContentConfiguration</key> - <dict> - <key>PBXBottomSmartGroupGIDs</key> - <array> - <string>1C77FABC04509CD000000102</string> - </array> - <key>PBXProjectModuleGUID</key> - <string>1CE0B1FE06471DED0097A5F4</string> - <key>PBXProjectModuleLabel</key> - <string>Files</string> - <key>PBXProjectStructureProvided</key> - <string>no</string> - <key>PBXSmartGroupTreeModuleColumnData</key> - <dict> - <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> - <array> - <real>168</real> - </array> - <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> - <array> - <string>MainColumn</string> - </array> - </dict> - <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> - <dict> - <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> - <array> - <string>1C77FABC04509CD000000102</string> - </array> - <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> - <array> - <array> - <integer>0</integer> - </array> - </array> - <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> - <string>{{0, 0}, {168, 350}}</string> - </dict> - <key>PBXTopSmartGroupGIDs</key> - <array/> - <key>XCIncludePerspectivesSwitch</key> - <integer>0</integer> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{0, 0}, {185, 368}}</string> - <key>GroupTreeTableConfiguration</key> - <array> - <string>MainColumn</string> - <real>168</real> - </array> - <key>RubberWindowFrame</key> - <string>315 424 744 409 0 0 1440 878 </string> - </dict> - <key>Module</key> - <string>PBXSmartGroupTreeModule</string> - <key>Proportion</key> - <string>185pt</string> - </dict> - <dict> - <key>ContentConfiguration</key> - <dict> - <key>PBXProjectModuleGUID</key> - <string>1CA1AED706398EBD00589147</string> - <key>PBXProjectModuleLabel</key> - <string>Detail</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{{190, 0}, {554, 368}}</string> - <key>RubberWindowFrame</key> - <string>315 424 744 409 0 0 1440 878 </string> - </dict> - <key>Module</key> - <string>XCDetailModule</string> - <key>Proportion</key> - <string>554pt</string> - </dict> - </array> - <key>Proportion</key> - <string>368pt</string> - </dict> - </array> - <key>MajorVersion</key> - <integer>3</integer> - <key>MinorVersion</key> - <integer>0</integer> - <key>Name</key> - <string>Breakpoints</string> - <key>ServiceClasses</key> - <array> - <string>PBXSmartGroupTreeModule</string> - <string>XCDetailModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>1</integer> - <key>TableOfContents</key> - <array> - <string>1CDDB66807F98D9800BB5817</string> - <string>1CDDB66907F98D9800BB5817</string> - <string>1CE0B1FE06471DED0097A5F4</string> - <string>1CA1AED706398EBD00589147</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.breakpointsV3</string> - <key>WindowString</key> - <string>315 424 744 409 0 0 1440 878 </string> - <key>WindowToolGUID</key> - <string>1CDDB66807F98D9800BB5817</string> - <key>WindowToolIsVisible</key> - <integer>1</integer> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.debugAnimator</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>Module</key> - <string>PBXNavigatorGroup</string> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Name</key> - <string>Debug Visualizer</string> - <key>ServiceClasses</key> - <array> - <string>PBXNavigatorGroup</string> - </array> - <key>StatusbarIsVisible</key> - <integer>1</integer> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.debugAnimatorV3</string> - <key>WindowString</key> - <string>100 100 700 500 0 0 1280 1002 </string> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.bookmarks</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>Module</key> - <string>PBXBookmarksModule</string> - <key>Proportion</key> - <string>166pt</string> - </dict> - </array> - <key>Proportion</key> - <string>166pt</string> - </dict> - </array> - <key>Name</key> - <string>Bookmarks</string> - <key>ServiceClasses</key> - <array> - <string>PBXBookmarksModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>0</integer> - <key>WindowString</key> - <string>538 42 401 187 0 0 1280 1002 </string> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.projectFormatConflicts</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>Module</key> - <string>XCProjectFormatConflictsModule</string> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Name</key> - <string>Project Format Conflicts</string> - <key>ServiceClasses</key> - <array> - <string>XCProjectFormatConflictsModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>0</integer> - <key>WindowContentMinSize</key> - <string>450 300</string> - <key>WindowString</key> - <string>50 850 472 307 0 0 1440 877</string> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.classBrowser</string> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>BecomeActive</key> - <integer>1</integer> - <key>ContentConfiguration</key> - <dict> - <key>OptionsSetName</key> - <string>Hierarchy, all classes</string> - <key>PBXProjectModuleGUID</key> - <string>1CA6456E063B45B4001379D8</string> - <key>PBXProjectModuleLabel</key> - <string>Class Browser - NSObject</string> - </dict> - <key>GeometryConfiguration</key> - <dict> - <key>ClassesFrame</key> - <string>{{0, 0}, {369, 96}}</string> - <key>ClassesTreeTableConfiguration</key> - <array> - <string>PBXClassNameColumnIdentifier</string> - <real>208</real> - <string>PBXClassBookColumnIdentifier</string> - <real>22</real> - </array> - <key>Frame</key> - <string>{{0, 0}, {616, 353}}</string> - <key>MembersFrame</key> - <string>{{0, 105}, {369, 395}}</string> - <key>MembersTreeTableConfiguration</key> - <array> - <string>PBXMemberTypeIconColumnIdentifier</string> - <real>22</real> - <string>PBXMemberNameColumnIdentifier</string> - <real>216</real> - <string>PBXMemberTypeColumnIdentifier</string> - <real>94</real> - <string>PBXMemberBookColumnIdentifier</string> - <real>22</real> - </array> - <key>PBXModuleWindowStatusBarHidden2</key> - <integer>1</integer> - <key>RubberWindowFrame</key> - <string>597 125 616 374 0 0 1280 1002 </string> - </dict> - <key>Module</key> - <string>PBXClassBrowserModule</string> - <key>Proportion</key> - <string>354pt</string> - </dict> - </array> - <key>Proportion</key> - <string>354pt</string> - </dict> - </array> - <key>Name</key> - <string>Class Browser</string> - <key>ServiceClasses</key> - <array> - <string>PBXClassBrowserModule</string> - </array> - <key>StatusbarIsVisible</key> - <integer>0</integer> - <key>TableOfContents</key> - <array> - <string>1C78EABA065D492600B07095</string> - <string>1C78EABB065D492600B07095</string> - <string>1CA6456E063B45B4001379D8</string> - </array> - <key>ToolbarConfiguration</key> - <string>xcode.toolbar.config.classbrowser</string> - <key>WindowString</key> - <string>597 125 616 374 0 0 1280 1002 </string> - </dict> - <dict> - <key>Identifier</key> - <string>windowTool.refactoring</string> - <key>IncludeInToolsMenu</key> - <integer>0</integer> - <key>Layout</key> - <array> - <dict> - <key>Dock</key> - <array> - <dict> - <key>BecomeActive</key> - <integer>1</integer> - <key>GeometryConfiguration</key> - <dict> - <key>Frame</key> - <string>{0, 0}, {500, 335}</string> - <key>RubberWindowFrame</key> - <string>{0, 0}, {500, 335}</string> - </dict> - <key>Module</key> - <string>XCRefactoringModule</string> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Proportion</key> - <string>100%</string> - </dict> - </array> - <key>Name</key> - <string>Refactoring</string> - <key>ServiceClasses</key> - <array> - <string>XCRefactoringModule</string> - </array> - <key>WindowString</key> - <string>200 200 500 356 0 0 1920 1200 </string> - </dict> - </array> -</dict> -</plist> Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOMetadataParser/ImageIOMetadataParser.xcodeproj/default.pbxuser =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOMetadataParser/ImageIOMetadataParser.xcodeproj/default.pbxuser (rev 0) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOMetadataParser/ImageIOMetadataParser.xcodeproj/default.pbxuser 2009-03-25 15:40:28 UTC (rev 9110) @@ -0,0 +1,67 @@ +// !$*UTF8*$! +{ + 00E6828EFEC88D1A11DB9C8B = { + activeBuildStyle = 130F8B95001BDF0A11CA292A; + activeExecutable = 6A9FA6570246BA6C0CC91562; + activeTarget = 6A9FA557024694440CC91562; + addToTargets = ( + ); + executables = ( + 6A9FA6570246BA6C0CC91562, + ); + perUserDictionary = { + }; + projectwideBuildSettings = { + }; + wantsIndex = 1; + wantsSCM = -1; + }; + 6A70F297022B313E0CC91562 = { + activeExec = 0; + }; + 6A8A60570219F8CC0CC91562 = { + activeExec = 0; + }; + 6A9FA557024694440CC91562 = { + activeExec = 0; + }; + 6A9FA55B024695C00CC91562 = { + activeExec = 0; + }; + 6A9FA570024696E90CC91562 = { + activeExec = 0; + }; + 6A9FA58C0246973A0CC91562 = { + activeExec = 0; + }; + 6A9FA6030246AD840CC91562 = { + activeExec = 0; + }; + 6A9FA6570246BA6C0CC91562 = { + activeArgIndex = 0; + activeArgIndices = ( + YES, + ); + argumentStrings = ( + "-cp JNIWrapper.jar JNIWrapper", + ); + debuggerPlugin = GDBDebugging; + dylibVariantSuffix = ""; + enableDebugStr = 1; + environmentEntries = ( + ); + isa = PBXExecutable; + launchableReference = 6A9FA6590246BA770CC91562; + name = JNIWrapper; + shlibInfoDictList = ( + ); + sourceDirectories = ( + ); + }; + 6A9FA6590246BA770CC91562 = { + isa = PBXExecutableFileReference; + name = java; + path = /usr/bin/java; + refType = 0; + }; +} Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOMetadataParser/ImageIOMetadataParser.xcodeproj/project.pbxproj =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOMetadataParser/ImageIOMetadataParser.xcodeproj/project.pbxproj (rev 0) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Native/MacOSX/ImageIOMetadataParser/ImageIOMetadataParser.xcodeproj/project.pbxproj 2009-03-25 15:40:28 UTC (rev 9110) @@ -0,0 +1,411 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 42; + objects = { + +/* Begin PBXAggregateTarget section */ + 550AA2BE0986C6B0005BB922 /* ImageIOMetadataParser */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 550AA2C30986C6B0005BB922 /* Build configuration list for PBXAggregateTarget "ImageIOMetadataParser" */; + buildPhases = ( + ); + dependencies = ( + 550AA2E70986C6B0005BB922 /* PBXTargetDependency ... [truncated message content] |
From: <df...@us...> - 2009-07-27 14:56:22
|
Revision: 9641 http://wonder.svn.sourceforge.net/wonder/?rev=9641&view=rev Author: dfrolov Date: 2009-07-27 14:56:12 +0000 (Mon, 27 Jul 2009) Log Message: ----------- Guitar Pro mime type support and icons Modified Paths: -------------- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Resources/Properties Added Paths: ----------- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/16/application/guitar-pro3.png trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/16/application/guitar-pro4.png trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/16/application/guitar-pro5.png trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/32/application/guitar-pro3.png trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/32/application/guitar-pro4.png trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/32/application/guitar-pro5.png trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/64/application/guitar-pro3.png trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/64/application/guitar-pro4.png trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/64/application/guitar-pro5.png Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Resources/Properties =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Resources/Properties 2009-07-27 14:55:18 UTC (rev 9640) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Resources/Properties 2009-07-27 14:56:12 UTC (rev 9641) @@ -1,6 +1,6 @@ ERAttachment.MigrationClassPrefix=er.attachment.migrations.ERAttachment -er.attachment.mimeTypes=image/bmp,image/eps,image/gif,image/jp2,image/jpeg,application/pdf,image/pict,image/png,image/psd,image/raw,image/tiff,image/x-pict,text/css,text/plain,text/html,text/xml,text/x-diff,application/zip,application/x-tar,application/x-gzip,application/x-octet-stream,video/quicktime +er.attachment.mimeTypes=image/bmp,image/eps,image/gif,image/jp2,image/jpeg,application/pdf,image/pict,image/png,image/psd,image/raw,image/tiff,image/x-pict,text/css,text/plain,text/html,text/xml,text/x-diff,application/zip,application/x-tar,application/x-gzip,application/x-octet-stream,video/quicktime,application/guitar-pro3,application/guitar-pro4,application/guitar-pro5 er.attachment.mimeType.video/quicktime.viewer=er.attachment.components.viewers.ERAttachmentQuickTimeViewer er.attachment.mimeType.image/*.viewer=er.attachment.components.viewers.ERAttachmentImageViewer @@ -95,3 +95,12 @@ er.attachment.mimeType.video/quicktime.name=QuickTime Movie er.attachment.mimeType.video/quicktime.uti=com.apple.quicktime-movie er.attachment.mimeType.video/quicktime.extensions=mov,qt + +er.attachment.mimeType.application/guitar-pro3.name=Guitar Pro3 +er.attachment.mimeType.application/guitar-pro3.extensions=gp3 + +er.attachment.mimeType.application/guitar-pro4.name=Guitar Pro4 +er.attachment.mimeType.application/guitar-pro4.extensions=gp4 + +er.attachment.mimeType.application/guitar-pro5.name=Guitar Pro5 +er.attachment.mimeType.application/guitar-pro5.extensions=gp5 Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/16/application/guitar-pro3.png =================================================================== (Binary files differ) Property changes on: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/16/application/guitar-pro3.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/16/application/guitar-pro4.png =================================================================== (Binary files differ) Property changes on: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/16/application/guitar-pro4.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/16/application/guitar-pro5.png =================================================================== (Binary files differ) Property changes on: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/16/application/guitar-pro5.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/32/application/guitar-pro3.png =================================================================== (Binary files differ) Property changes on: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/32/application/guitar-pro3.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/32/application/guitar-pro4.png =================================================================== (Binary files differ) Property changes on: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/32/application/guitar-pro4.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/32/application/guitar-pro5.png =================================================================== (Binary files differ) Property changes on: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/32/application/guitar-pro5.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/64/application/guitar-pro3.png =================================================================== (Binary files differ) Property changes on: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/64/application/guitar-pro3.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/64/application/guitar-pro4.png =================================================================== (Binary files differ) Property changes on: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/64/application/guitar-pro4.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/64/application/guitar-pro5.png =================================================================== (Binary files differ) Property changes on: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/WebServerResources/icons/64/application/guitar-pro5.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ms...@us...> - 2009-09-24 11:54:10
|
Revision: 9953 http://wonder.svn.sourceforge.net/wonder/?rev=9953&view=rev Author: mschrag Date: 2009-09-24 11:54:00 +0000 (Thu, 24 Sep 2009) Log Message: ----------- Added SipsImageProcessor + support for explicitly choosing your image processor with a property (er.attachment.thumbnail.imageProcessor=sips|imageio|imagemagick|java) Modified Paths: -------------- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/thumbnail/ERImageProcessor.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Tests/er/attachment/thumbnail/ERImageProcessorTest.java Added Paths: ----------- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/thumbnail/SipsImageProcessor.java Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/thumbnail/ERImageProcessor.java =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/thumbnail/ERImageProcessor.java 2009-09-24 01:23:55 UTC (rev 9952) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/thumbnail/ERImageProcessor.java 2009-09-24 11:54:00 UTC (rev 9953) @@ -8,6 +8,7 @@ import er.attachment.utils.ERMimeType; import er.attachment.utils.ERMimeTypeManager; import er.extensions.foundation.ERXExceptionUtilities; +import er.extensions.foundation.ERXProperties; /** * ImageProcessor is a common superclass of all IImageProcessor @@ -30,30 +31,56 @@ if (imageProcessor == null) { synchronized (IERImageProcessor.class) { if (imageProcessor == null) { - // Try ImageIO ... - try { - imageProcessor = ImageIOImageProcessor.imageIOImageProcessor(); + String imageProcessorKey = ERXProperties.stringForKey("er.attachment.thumbnail.imageProcessor"); + if (imageProcessorKey != null) { + // ... add a registry of these at some point + if ("sips".equals(imageProcessorKey)) { + imageProcessor = new SipsImageProcessor(); + } + else if ("imageio".equals(imageProcessorKey)) { + imageProcessor = ImageIOImageProcessor.imageIOImageProcessor(); + } + else if ("imagemagick".equals(imageProcessorKey)) { + try { + imageProcessor = ImageMagickImageProcessor.imageMagickImageProcessor(); + } + catch (Throwable t) { + throw new RuntimeException("Failed to load ImageMagick image processor.", t); + } + } + else if ("java".equals(imageProcessorKey)) { + imageProcessor = new Java2DImageProcessor(); + } + else { + throw new IllegalArgumentException("Unknown image processor '" + imageProcessorKey + "'."); + } } - catch (Throwable t) { - // ... failure in the constructor means the lib doesn't exist - log.warn("Cannot use ImageIOProcessor: " + ERXExceptionUtilities.toParagraph(t)); - } - - // Try ImageMagick ... - if (imageProcessor == null) { + else { + // Try ImageIO ... try { - imageProcessor = ImageMagickImageProcessor.imageMagickImageProcessor(); + imageProcessor = ImageIOImageProcessor.imageIOImageProcessor(); } catch (Throwable t) { - log.warn("Cannot use ImageMagickImageProcessor: " + ERXExceptionUtilities.toParagraph(t)); + // ... failure in the constructor means the lib doesn't exist + log.warn("Cannot use ImageIOProcessor: " + ERXExceptionUtilities.toParagraph(t)); } + + // Try ImageMagick ... + if (imageProcessor == null) { + try { + imageProcessor = ImageMagickImageProcessor.imageMagickImageProcessor(); + } + catch (Throwable t) { + log.warn("Cannot use ImageMagickImageProcessor: " + ERXExceptionUtilities.toParagraph(t)); + } + } + + // ... and the fallback to Java2D + if (imageProcessor == null) { + imageProcessor = new Java2DImageProcessor(); + } } - // ... and the fallback to Java2D - if (imageProcessor == null) { - imageProcessor = new Java2DImageProcessor(); - } - _imageProcessor = imageProcessor; } } Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/thumbnail/SipsImageProcessor.java =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/thumbnail/SipsImageProcessor.java (rev 0) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/thumbnail/SipsImageProcessor.java 2009-09-24 11:54:00 UTC (rev 9953) @@ -0,0 +1,105 @@ +package er.attachment.thumbnail; + +import java.io.File; +import java.io.IOException; +import java.util.LinkedList; +import java.util.List; + +import er.attachment.utils.ERMimeType; +import er.extensions.foundation.ERXRuntimeUtilities; +import er.extensions.foundation.ERXRuntimeUtilities.Result; + +public class SipsImageProcessor extends ERImageProcessor { + + public void processImage(int resizeWidth, int resizeHeight, Quality resizeQuality, int dpi, float sharpenRadius, float sharpenIntensity, float gamma, int cropX, int cropY, int cropWidth, int cropHeight, File watermarkFile, boolean tileWatermark, float compressionQuality, File colorProfileFile, File inputFile, File outputFile, ERMimeType outputMimeType) throws IOException { + try { + if (!outputFile.getParentFile().exists() && !outputFile.getParentFile().mkdirs()) { + throw new IOException("Failed to create the folder '" + outputFile.getParentFile() + "'."); + } + + List<String> commands = new LinkedList<String>(); + commands.add("/usr/bin/sips"); + commands.add("--resampleHeightWidthMax"); + commands.add(String.valueOf(Math.max(resizeWidth, resizeHeight))); + + if (resizeQuality != null) { + if (resizeQuality == Quality.High) { + commands.add("--setProperty"); + commands.add("quality"); + commands.add("best"); + } + else if (resizeQuality == Quality.Medium) { + commands.add("--setProperty"); + commands.add("quality"); + commands.add("normal"); + } + else if (resizeQuality == Quality.Low) { + commands.add("--setProperty"); + commands.add("quality"); + commands.add("draft"); + } + } + + if (outputMimeType != null) { + commands.add("--setProperty"); + commands.add("typeIdentifier"); + commands.add(outputMimeType.uti()); + } + + if (compressionQuality != -1) { + commands.add("--setProperty"); + commands.add("formatOptions"); + commands.add(String.format("%.0f", compressionQuality * 100)); + } + + if (dpi > 0.0) { + commands.add("--setProperty"); + commands.add("dpiWidth"); + commands.add(String.valueOf(dpi)); + commands.add("--setProperty"); + commands.add("dpiHeight"); + commands.add(String.valueOf(dpi)); + } + + if (sharpenRadius > 0.0f || sharpenIntensity > 0.0f) { + log.info("SipsImageProcessor does not yet support sharpening."); + } + + if (gamma > 0.0f) { + log.info("SipsImageProcessor does not yet support changing the image gamma."); + } + + if (cropX > 0.0f || cropY > 0.0f) { + log.info("SipsImageProcessor does not yet support cropping offsets."); + } + + if (cropWidth > 0.0f && cropHeight > 0.0f) { + commands.add("--cropToHeightWidth"); + commands.add(String.valueOf(cropHeight)); + commands.add(String.valueOf(cropWidth)); + } + + if (watermarkFile != null) { + log.info("SipsImageProcessor does not yet support watermarking."); + } + + if (colorProfileFile != null) { + commands.add("-m"); + commands.add(colorProfileFile.getCanonicalPath()); + } + + commands.add(inputFile.getCanonicalPath()); + + commands.add("--out"); + commands.add(outputFile.getCanonicalPath()); + + Result result = ERXRuntimeUtilities.execute(commands.toArray(new String[commands.size()]), null, null, 30000); + if (result.getExitValue() != 0) { + throw new RuntimeException("Sips exited with the exit code #" + result.getExitValue()); + } + } + catch (Throwable t) { + throw new IOException("Failed to thumbnail image.", t); + } + } +} Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Tests/er/attachment/thumbnail/ERImageProcessorTest.java =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Tests/er/attachment/thumbnail/ERImageProcessorTest.java 2009-09-24 01:23:55 UTC (rev 9952) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Tests/er/attachment/thumbnail/ERImageProcessorTest.java 2009-09-24 11:54:00 UTC (rev 9953) @@ -21,16 +21,24 @@ //File watermarkFile = null; boolean tileWatermark = false; File colorProfileFile = new File("Resources/sRGB.icc"); - processor.processImage(150, 150, null, -1, 2.5f, 0.35f, 0.0f, -1, -1, -1, -1, watermarkFile, tileWatermark, 0.9f, colorProfileFile, inputFile, outputFile, new ERMimeType("jpeg", "image/jpg", "public.jpeg", new NSArray<String>(new String[] { "jpg" }))); - Runtime.getRuntime().exec(new String[] { "open", outputFile.getAbsolutePath() }); + //processor.processImage(150, 150, null, -1, 2.5f, 0.35f, 0.0f, -1, -1, -1, -1, watermarkFile, tileWatermark, 0.9f, colorProfileFile, inputFile, outputFile, new ERMimeType("jpeg", "image/jpg", "public.jpeg", new NSArray<String>(new String[] { "jpg" }))); + processor.processImage(150, 150, null, -1, 0.0f, 0.0f, 0.0f, -1, -1, -1, -1, null, false, 0.9f, colorProfileFile, inputFile, outputFile, new ERMimeType("jpeg", "image/jpg", "public.jpeg", new NSArray<String>(new String[] { "jpg" }))); + //Runtime.getRuntime().exec(new String[] { "open", outputFile.getAbsolutePath() }); } public static void main(String[] args) throws IOException { - IERImageProcessor processor = ERImageProcessor.imageProcessor(); - ERImageProcessorTest.test(processor, "a.png"); - ERImageProcessorTest.test(new Java2DImageProcessor(), "a.png"); - ERImageProcessorTest.test(processor, "a.jpg"); - ERImageProcessorTest.test(new Java2DImageProcessor(), "a.jpg"); + long a = System.currentTimeMillis(); + for (int i = 0; i < 300; i++) { + IERImageProcessor processor = new SipsImageProcessor(); + ERImageProcessorTest.test(processor, "a.png"); + if ( i % 100 == 0) { + System.out.println("ERImageProcessorTest.main: " + i); + } + } + System.out.println("ERImageProcessorTest.main: " + (System.currentTimeMillis() - a)); +// ERImageProcessorTest.test(new Java2DImageProcessor(), "a.png"); +// ERImageProcessorTest.test(processor, "a.jpg"); +// ERImageProcessorTest.test(new Java2DImageProcessor(), "a.jpg"); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rm...@us...> - 2009-11-26 23:33:34
|
Revision: 10346 http://wonder.svn.sourceforge.net/wonder/?rev=10346&view=rev Author: rmendis Date: 2009-11-26 23:33:27 +0000 (Thu, 26 Nov 2009) Log Message: ----------- WOSwitch hack to remove dependency on Ajax.framework Modified Paths: -------------- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/.classpath trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentUpload.wo/ERAttachmentUpload.wod Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/.classpath =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/.classpath 2009-11-26 23:15:34 UTC (rev 10345) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/.classpath 2009-11-26 23:33:27 UTC (rev 10346) @@ -5,7 +5,6 @@ <classpathentry exported="true" kind="con" path="WOFramework/ERExtensions"/> <classpathentry exported="true" kind="con" path="WOFramework/ERJars"/> <classpathentry exported="true" kind="con" path="WOFramework/ERPrototypes"/> - <classpathentry exported="true" kind="con" path="WOFramework/Ajax"/> <classpathentry exported="true" kind="con" path="WOFramework/JavaEOAccess"/> <classpathentry exported="true" kind="con" path="WOFramework/JavaEOControl"/> <classpathentry exported="true" kind="con" path="WOFramework/JavaFoundation"/> Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentUpload.wo/ERAttachmentUpload.wod =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentUpload.wo/ERAttachmentUpload.wod 2009-11-26 23:15:34 UTC (rev 10345) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentUpload.wo/ERAttachmentUpload.wod 2009-11-26 23:33:27 UTC (rev 10346) @@ -18,7 +18,8 @@ title = ^title; } -AjaxFileUpload : AjaxFileUpload { +AjaxFileUpload : WOSwitchComponent { + WOComponentName = "AjaxFileUpload"; filePath = filePath; finalFilePath = finalFilePath; keepTempFile = true; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dav...@us...> - 2010-05-07 14:41:27
|
Revision: 10839 http://wonder.svn.sourceforge.net/wonder/?rev=10839&view=rev Author: davidleber Date: 2010-05-07 14:41:21 +0000 (Fri, 07 May 2010) Log Message: ----------- ERAttachment aware wrapper around AjaxFlexibleFileUpload Added Paths: ----------- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.api trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.wo/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.wo/ERAttachmentFlexibleUpload.html trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.wo/ERAttachmentFlexibleUpload.wod trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.wo/ERAttachmentFlexibleUpload.woo trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/components/ERAttachmentFlexibleUpload.java Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.api =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.api (rev 0) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.api 2010-05-07 14:41:21 UTC (rev 10839) @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<wodefinitions> + <wo class="ERMAttachmentUploader" wocomponentcontent="false"> <binding name="attachment"/> + <validation message="'attachment' is a required binding."> + <unbound name="attachment"/> + </validation> + <binding name="editingContext"/> + <validation message="'editingContext' is a required binding."> + <unbound name="editingContext"/> + </validation> + <binding name="succeededAction"/> + <binding name="succeededFunction"/> + <binding name="finishedFunction"/> + <binding name="startedFunction"/> + <binding name="startedAction"/> + <binding name="storageType"/> + <binding name="mimeType"/> + <binding name="configurationName"/> + <binding name="ownerID"/> + <binding name="width"/> + <binding name="height"/> + <binding name="cleanup"/> + <binding name="allowCancel"/> + <binding name="cancelLabel"/> + <binding name="canceledAction"/> + <binding name="canceledFunction"/> + <binding name="cancelingText"/> + <binding name="failedAction"/> + <binding name="failedFunction"/> + <binding name="finishedAction"/> + <binding name="refreshTime"/> + <binding name="injectDefaultCSS"/> + <binding name="selectFileButtonClass"/> + <binding name="selectFileLabel"/> + <binding name="cancelButtonClass"/> + <binding name="clearButtonClass"/> + </wo> +</wodefinitions> Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.wo/ERAttachmentFlexibleUpload.html =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.wo/ERAttachmentFlexibleUpload.html (rev 0) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.wo/ERAttachmentFlexibleUpload.html 2010-05-07 14:41:21 UTC (rev 10839) @@ -0,0 +1 @@ +<webobject name = "AjaxFlexibleFileUpload"/> \ No newline at end of file Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.wo/ERAttachmentFlexibleUpload.wod =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.wo/ERAttachmentFlexibleUpload.wod (rev 0) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.wo/ERAttachmentFlexibleUpload.wod 2010-05-07 14:41:21 UTC (rev 10839) @@ -0,0 +1,25 @@ +AjaxFlexibleFileUpload : WOSwitchComponent { + WOComponentName = "AjaxFlexibleFileUpload"; + filePath = filePath; + finalFilePath = finalFilePath; + keepTempFile = true; + succeededAction = uploadSucceeded; + allowCancel = ^allowCancel; + cancelLabel = ^cancelLabel; + canceledAction = ^canceledAction; + canceledFunction = ^canceledFunction; + cancelingText = ^cancelingText; + failedAction = ^failedAction; + failedFunction = ^failedFunction; + finishedAction = ^finishedAction; + finishedFunction = ^finishedFunction; + refreshTime = ^refreshTime; + startedFunction = ^startedFunction; + succeededFunction = ^succeededFunction; + autoSubmit = ^autoSubmit; + injectDefaultCSS = ^injectDefaultCSS; + selectFileButtonClass = ^selectFileButtonClass; + selectFileLabel = ^selectFileLabel; + cancelButtonClass = ^cancelButtonClass; + clearButtonClass = ^clearButtonClass; +} \ No newline at end of file Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.wo/ERAttachmentFlexibleUpload.woo =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.wo/ERAttachmentFlexibleUpload.woo (rev 0) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.wo/ERAttachmentFlexibleUpload.woo 2010-05-07 14:41:21 UTC (rev 10839) @@ -0,0 +1,4 @@ +{ + "WebObjects Release" = "WebObjects 5.0"; + encoding = "UTF-8"; +} \ No newline at end of file Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/components/ERAttachmentFlexibleUpload.java =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/components/ERAttachmentFlexibleUpload.java (rev 0) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/components/ERAttachmentFlexibleUpload.java 2010-05-07 14:41:21 UTC (rev 10839) @@ -0,0 +1,79 @@ +package er.attachment.components; + +import com.webobjects.appserver.WOContext; + +import er.attachment.components.ERAttachmentUpload; + +/** + * <p> + * ERAttachmentFlexibleUpload provides a very simple wrapper around an AjaxFlexibleUpload + * unlike {@link ERAttachmentUpload}, this component always uses ajax behaviour. + * + * When the upload is successfully completed, this component will automatically + * process the attachment. See the notes in ERAttachmentUpload for details on how to + * process an attachment in your own components. + * + * <p> + * Note that for the attachment binding, you do not create the attachment instance and + * pass it in. The attachment processor inside of ERAttachmentFlexibleUpload creates an appropriate + * attachment instance for you (using the editing context you provide) and simply binds it + * back to you when the upload is complete. + * </p> + * + * @author mschrag + * @author dleber + * + * @binding attachment the binding to store the newly created attachment in + * @binding editingContext the editing context to create the attachment in + * @binding storageType the type of attachment to create, i.e. "s3", "db", or "file" -- defaults to "db" (or the value of er.attachment.storageType) + * @binding mimeType (optional) the mime type of the upload (will be guessed by extension if not set) + * @binding configurationName (optional) the configuration name for this attachment (see top level documentation) + * @binding ownerID (optional) a string ID of the "owner" of this attachment (Person.primaryKey for instance) + * @binding width (optional) the desired width of the attachment + * @binding height (optional) the desired height of the attachment + * @binding others all AjaxFileUpload bindings are proxied + * @binding cleanup (optional) if true, the old attachment binding value will be deleted + * + * @binding allowCancel - for the following see: {@link AjaxFlexibleFileUpload} + * @binding cancelLabel + * @binding canceledAction + * @binding canceledFunction + * @binding cancelingText + * @binding failedAction + * @binding failedFunction + * @binding finishedAction + * @binding finishedFunction + * @binding refreshTime + * @binding startedFunction + * @binding succeededFunction + * @binding autoSubmit + * @binding injectDefaultCSS + * @binding selectFileButtonClass + * @binding selectFileLabel + * @binding succeededAction + * @binding cancelButtonClass + * @binding clearButtonClass + * + * @property er.attachment.[configurationName].tempFolder (optional) the temp folder to use for WOFileUploads + * @property er.attachment.tempFolder (optional) the temp folder to use for WOFileUploads + * @property er.attachment.[configurationName].storageType + * @property er.attachment.storageType + * @property er.attachment.[configurationName].width + * @property er.attachment.width + * @property er.attachment.[configurationName].height + * @property er.attachment.height + */ +public class ERAttachmentFlexibleUpload extends ERAttachmentUpload { + + + public ERAttachmentFlexibleUpload(WOContext context) { + super(context); + } + + @Override + // heck, we always be ajax'n! + public boolean ajax() { + return true; + } + +} \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dav...@us...> - 2010-05-08 17:22:11
|
Revision: 10850 http://wonder.svn.sourceforge.net/wonder/?rev=10850&view=rev Author: davidleber Date: 2010-05-08 17:22:05 +0000 (Sat, 08 May 2010) Log Message: ----------- Rewrote upload succeeded action to improve new masterObject handling. Made update container synchronous. Modified Paths: -------------- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleEditor.wo/ERAttachmentFlexibleEditor.wod trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/components/ERAttachmentFlexibleEditor.java Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleEditor.wo/ERAttachmentFlexibleEditor.wod =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleEditor.wo/ERAttachmentFlexibleEditor.wod 2010-05-08 17:19:50 UTC (rev 10849) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleEditor.wo/ERAttachmentFlexibleEditor.wod 2010-05-08 17:22:05 UTC (rev 10850) @@ -31,6 +31,7 @@ MainUpdateContainer : AjaxUpdateContainer { id = updateContainerID; class = "ERAttachmentFlexibleEditor"; + asynchronous = true; } NotShowUpload : WOConditional { Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/components/ERAttachmentFlexibleEditor.java =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/components/ERAttachmentFlexibleEditor.java 2010-05-08 17:19:50 UTC (rev 10849) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/components/ERAttachmentFlexibleEditor.java 2010-05-08 17:22:05 UTC (rev 10850) @@ -5,6 +5,7 @@ import com.webobjects.appserver.WOActionResults; import com.webobjects.appserver.WOContext; import com.webobjects.appserver.WOResponse; +import com.webobjects.eoaccess.EOUtilities; import com.webobjects.eocontrol.EOEditingContext; import com.webobjects.eocontrol.EOEnterpriseObject; @@ -15,6 +16,7 @@ import er.extensions.components.ERXNonSynchronizingComponent; import er.extensions.eof.ERXEC; import er.extensions.eof.ERXEOControlUtilities; +import er.extensions.eof.ERXGenericRecord; /** * <p> @@ -103,9 +105,6 @@ public static final String uploadDialogHeaderText = "uploadDialogHeaderText"; }; - private EOEnterpriseObject _masterObject; - private String _relationshipKey; - private String _id; private EOEditingContext _workingEC; private EOEditingContext _attachmentEC; @@ -166,17 +165,24 @@ public WOActionResults uploadSucceededAction() { attachmentEC().saveChanges(); + + EOEnterpriseObject localObj = (EOEnterpriseObject)EOUtilities.localInstanceOfObject(workingEC(), masterObject()); + if (localObj instanceof ERXGenericRecord) { + ((ERXGenericRecord)localObj).setValidatedWhenNested(false); + } - ERAttachment existing = (ERAttachment)localParent().valueForKey(relationshipKey()); + ERAttachment existing = (ERAttachment)localObj.valueForKey(relationshipKey()); + if (existing != null) { - workingEC().deleteObject(existing); + workingEC().deleteObject(existing.localInstanceIn(workingEC())); } - // CHECKME ^^^^ Should I be doing this? - ERAttachment newLocalAttachment = newAttachment().localInstanceIn(workingEC()); - localParent().addObjectToBothSidesOfRelationshipWithKey(newLocalAttachment, relationshipKey()); - + EOEnterpriseObject localAttachment = (EOEnterpriseObject)EOUtilities.localInstanceOfObject(workingEC(), newAttachment()); + + localObj.addObjectToBothSidesOfRelationshipWithKey(localAttachment, relationshipKey()); + workingEC().saveChanges(); + _showUpload = false; return (WOActionResults)valueForBinding(Keys.uploadSucceededAction); } @@ -373,20 +379,9 @@ * @return the masterObject */ public EOEnterpriseObject masterObject() { - if (_masterObject == null) { - _masterObject = (EOEnterpriseObject)valueForBinding(Keys.masterObject); - } - return _masterObject; + return (EOEnterpriseObject)valueForBinding(Keys.masterObject); } - /** - * Setter for the masterObject - * - * @param new masterObject - */ - public void setMasterObject(EOEnterpriseObject obj) { - _masterObject = obj; - } /** * Getter for the relationhipKey @@ -394,20 +389,8 @@ * @return the relationshipKey */ public String relationshipKey() { - if (_relationshipKey == null) { - _relationshipKey = stringValueForBinding(Keys.relationshipKey); - } - return _relationshipKey; + return stringValueForBinding(Keys.relationshipKey); } - - /** - * Setter for the relationshipKey - * - * @param the new relationshipKey - */ - public void setRelationshipKey(String rk) { - _relationshipKey = rk; - } /** * Should the component inject the default css in the head of the page @@ -456,7 +439,7 @@ * @return String */ public String refreshContainerFunction() { - return updateContainerID() + "Update()"; + return updateContainerID() + "Update();"; } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dav...@us...> - 2010-05-08 17:50:07
|
Revision: 10852 http://wonder.svn.sourceforge.net/wonder/?rev=10852&view=rev Author: davidleber Date: 2010-05-08 17:50:00 +0000 (Sat, 08 May 2010) Log Message: ----------- Added clearUploadProgressOnSuccess binding Modified Paths: -------------- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.api trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.wo/ERAttachmentFlexibleUpload.wod trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/components/ERAttachmentFlexibleUpload.java Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.api =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.api 2010-05-08 17:49:07 UTC (rev 10851) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.api 2010-05-08 17:50:00 UTC (rev 10852) @@ -35,5 +35,6 @@ <binding name="cancelButtonClass"/> <binding name="clearButtonClass"/> <binding name="id"/> + <binding defaults="Boolean" name="clearUploadProgressOnSuccess"/> </wo> </wodefinitions> Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.wo/ERAttachmentFlexibleUpload.wod =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.wo/ERAttachmentFlexibleUpload.wod 2010-05-08 17:49:07 UTC (rev 10851) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.wo/ERAttachmentFlexibleUpload.wod 2010-05-08 17:50:00 UTC (rev 10852) @@ -23,4 +23,5 @@ cancelButtonClass = ^cancelButtonClass; clearButtonClass = ^clearButtonClass; id = ^id; + clearUploadProgressOnSuccess = ^clearUploadProgressOnSuccess; } \ No newline at end of file Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/components/ERAttachmentFlexibleUpload.java =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/components/ERAttachmentFlexibleUpload.java 2010-05-08 17:49:07 UTC (rev 10851) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/components/ERAttachmentFlexibleUpload.java 2010-05-08 17:50:00 UTC (rev 10852) @@ -53,6 +53,7 @@ * @binding succeededAction * @binding cancelButtonClass * @binding clearButtonClass + * @binding clearUploadProgressOnSuccess * * @property er.attachment.[configurationName].tempFolder (optional) the temp folder to use for WOFileUploads * @property er.attachment.tempFolder (optional) the temp folder to use for WOFileUploads This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kel...@us...> - 2010-10-22 15:33:39
|
Revision: 11617 http://wonder.svn.sourceforge.net/wonder/?rev=11617&view=rev Author: kelleherk Date: 2010-10-22 15:33:32 +0000 (Fri, 22 Oct 2010) Log Message: ----------- Freeze the eogen templates so that they don't change from what is in repository everytime I rebuild the workspace since the current WonderEntity templates bundled with WOLips are slightly different to the templates the generation gap files were originally generated with. Modified Paths: -------------- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Resources/ERAttachment.eogen trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/model/_ERAttachment.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/model/_ERAttachmentData.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/model/_ERDatabaseAttachment.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/model/_ERFileAttachment.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/model/_ERS3Attachment.java Added Paths: ----------- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/EOTemplates/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/EOTemplates/WonderEntity.java trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/EOTemplates/_WonderEntity.java Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/EOTemplates/WonderEntity.java =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/EOTemplates/WonderEntity.java (rev 0) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/EOTemplates/WonderEntity.java 2010-10-22 15:33:32 UTC (rev 11617) @@ -0,0 +1,10 @@ +#if ($entity.packageName) +package $entity.packageName; + +#end +import org.apache.log4j.Logger; + +public#if (${entity.abstractEntity}) abstract#end class ${entity.classNameWithoutPackage} extends ${entity.prefixClassNameWithOptionalPackage} { + @SuppressWarnings("unused") + private static Logger log = Logger.getLogger(${entity.classNameWithoutPackage}.class); +} Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/EOTemplates/_WonderEntity.java =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/EOTemplates/_WonderEntity.java (rev 0) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/EOTemplates/_WonderEntity.java 2010-10-22 15:33:32 UTC (rev 11617) @@ -0,0 +1,346 @@ +// DO NOT EDIT. Make changes to ${entity.classNameWithOptionalPackage}.java instead. +#if ($entity.superclassPackageName) +package $entity.superclassPackageName; + +#end +import com.webobjects.eoaccess.*; +import com.webobjects.eocontrol.*; +import com.webobjects.foundation.*; +import java.math.*; +import java.util.*; +import org.apache.log4j.Logger; + +import er.extensions.eof.*; +import er.extensions.foundation.*; + +@SuppressWarnings("all") +public abstract class ${entity.prefixClassNameWithoutPackage} extends #if ($entity.parentClassNameSet)${entity.parentClassName}#elseif ($entity.partialEntitySet)er.extensions.partials.ERXPartial<${entity.partialEntity.className}>#elseif ($entity.parentSet)${entity.parent.classNameWithDefault}#elseif ($EOGenericRecord)${EOGenericRecord}#else ERXGenericRecord#end { +#if ($entity.partialEntitySet) + public static final String ENTITY_NAME = "$entity.partialEntity.name"; +#else + public static final String ENTITY_NAME = "$entity.name"; +#end + + // Attribute Keys +#foreach ($attribute in $entity.sortedClassAttributes) + public static final ERXKey<$attribute.javaClassName> ${attribute.uppercaseUnderscoreName} = new ERXKey<$attribute.javaClassName>("$attribute.name"); +#end + // Relationship Keys +#foreach ($relationship in $entity.sortedClassRelationships) + public static final ERXKey<$relationship.actualDestination.classNameWithDefault> ${relationship.uppercaseUnderscoreName} = new ERXKey<$relationship.actualDestination.classNameWithDefault>("$relationship.name"); +#end + + // Attributes +#foreach ($attribute in $entity.sortedClassAttributes) + public static final String ${attribute.uppercaseUnderscoreName}_KEY = ${attribute.uppercaseUnderscoreName}.key(); +#end + // Relationships +#foreach ($relationship in $entity.sortedClassRelationships) + public static final String ${relationship.uppercaseUnderscoreName}_KEY = ${relationship.uppercaseUnderscoreName}.key(); +#end + + private static Logger LOG = Logger.getLogger(${entity.prefixClassNameWithoutPackage}.class); + +#if (!$entity.partialEntitySet) + public $entity.classNameWithOptionalPackage localInstanceIn(EOEditingContext editingContext) { + $entity.classNameWithOptionalPackage localInstance = ($entity.classNameWithOptionalPackage)EOUtilities.localInstanceOfObject(editingContext, this); + if (localInstance == null) { + throw new IllegalStateException("You attempted to localInstance " + this + ", which has not yet committed."); + } + return localInstance; + } + +#end +#foreach ($attribute in $entity.sortedClassAttributes) +#if (!$attribute.inherited) +#if ($attribute.userInfo.ERXConstantClassName) + public $attribute.userInfo.ERXConstantClassName ${attribute.name}() { + Number value = (Number)storedValueForKey(${entity.prefixClassNameWithoutPackage}.${attribute.uppercaseUnderscoreName}_KEY); + return ($attribute.userInfo.ERXConstantClassName)value; + } + + public void set${attribute.capitalizedName}($attribute.userInfo.ERXConstantClassName value) { + takeStoredValueForKey(value, ${entity.prefixClassNameWithoutPackage}.${attribute.uppercaseUnderscoreName}_KEY); + } +#else + public $attribute.javaClassName ${attribute.name}() { + return ($attribute.javaClassName) storedValueForKey(${entity.prefixClassNameWithoutPackage}.${attribute.uppercaseUnderscoreName}_KEY); + } + + public void set${attribute.capitalizedName}($attribute.javaClassName value) { + if (${entity.prefixClassNameWithoutPackage}.LOG.isDebugEnabled()) { + ${entity.prefixClassNameWithoutPackage}.LOG.debug( "updating $attribute.name from " + ${attribute.name}() + " to " + value); + } + takeStoredValueForKey(value, ${entity.prefixClassNameWithoutPackage}.${attribute.uppercaseUnderscoreName}_KEY); + } +#end + +#end +#end +#foreach ($relationship in $entity.sortedClassToOneRelationships) +#if (!$relationship.inherited) + public $relationship.actualDestination.classNameWithDefault ${relationship.name}() { + return ($relationship.actualDestination.classNameWithDefault)storedValueForKey(${entity.prefixClassNameWithoutPackage}.${relationship.uppercaseUnderscoreName}_KEY); + } + + public void set${relationship.capitalizedName}($relationship.actualDestination.classNameWithDefault value) { + takeStoredValueForKey(value, ${entity.prefixClassNameWithoutPackage}.${relationship.uppercaseUnderscoreName}_KEY); + } + + public void set${relationship.capitalizedName}Relationship($relationship.actualDestination.classNameWithDefault value) { + if (${entity.prefixClassNameWithoutPackage}.LOG.isDebugEnabled()) { + ${entity.prefixClassNameWithoutPackage}.LOG.debug("updating $relationship.name from " + ${relationship.name}() + " to " + value); + } + if (er.extensions.eof.ERXGenericRecord.InverseRelationshipUpdater.updateInverseRelationships()) { + set${relationship.capitalizedName}(value); + } + else if (value == null) { + $relationship.actualDestination.classNameWithDefault oldValue = ${relationship.name}(); + if (oldValue != null) { + removeObjectFromBothSidesOfRelationshipWithKey(oldValue, ${entity.prefixClassNameWithoutPackage}.${relationship.uppercaseUnderscoreName}_KEY); + } + } else { + addObjectToBothSidesOfRelationshipWithKey(value, ${entity.prefixClassNameWithoutPackage}.${relationship.uppercaseUnderscoreName}_KEY); + } + } + +#end +#end +#foreach ($relationship in $entity.sortedClassToManyRelationships) +#if (!$relationship.inherited) + public NSArray<${relationship.actualDestination.classNameWithDefault}> ${relationship.name}() { + return (NSArray<${relationship.actualDestination.classNameWithDefault}>)storedValueForKey(${entity.prefixClassNameWithoutPackage}.${relationship.uppercaseUnderscoreName}_KEY); + } + +#if (!$relationship.inverseRelationship || $relationship.flattened || !$relationship.inverseRelationship.classProperty) + public NSArray<${relationship.actualDestination.classNameWithDefault}> ${relationship.name}(EOQualifier qualifier) { + return ${relationship.name}(qualifier, null); + } +#else + public NSArray<${relationship.actualDestination.classNameWithDefault}> ${relationship.name}(EOQualifier qualifier) { + return ${relationship.name}(qualifier, null, false); + } + + public NSArray<${relationship.actualDestination.classNameWithDefault}> ${relationship.name}(EOQualifier qualifier, boolean fetch) { + return ${relationship.name}(qualifier, null, fetch); + } +#end + + public NSArray<${relationship.actualDestination.classNameWithDefault}> ${relationship.name}(EOQualifier qualifier, NSArray<EOSortOrdering> sortOrderings#if ($relationship.inverseRelationship && !$relationship.flattened && $relationship.inverseRelationship.classProperty), boolean fetch#end) { + NSArray<${relationship.actualDestination.classNameWithDefault}> results; +#if ($relationship.inverseRelationship && !$relationship.flattened && $relationship.inverseRelationship.classProperty) + if (fetch) { + EOQualifier fullQualifier; +#if (${relationship.actualDestination.genericRecord}) + EOQualifier inverseQualifier = new EOKeyValueQualifier("${relationship.inverseRelationship.name}", EOQualifier.QualifierOperatorEqual, this); +#else + EOQualifier inverseQualifier = new EOKeyValueQualifier(${relationship.actualDestination.classNameWithDefault}.${relationship.inverseRelationship.uppercaseUnderscoreName}_KEY, EOQualifier.QualifierOperatorEqual, this); +#end + + if (qualifier == null) { + fullQualifier = inverseQualifier; + } + else { + NSMutableArray<EOQualifier> qualifiers = new NSMutableArray<EOQualifier>(); + qualifiers.addObject(qualifier); + qualifiers.addObject(inverseQualifier); + fullQualifier = new EOAndQualifier(qualifiers); + } + +#if (${relationship.actualDestination.genericRecord}) + EOFetchSpecification fetchSpec = new EOFetchSpecification("${relationship.actualDestination.name}", qualifier, sortOrderings); + fetchSpec.setIsDeep(true); + results = (NSArray<${relationship.actualDestination.classNameWithDefault}>)editingContext().objectsWithFetchSpecification(fetchSpec); +#else + results = ${relationship.actualDestination.classNameWithDefault}.fetch${relationship.actualDestination.pluralName}(editingContext(), fullQualifier, sortOrderings); +#end + } + else { +#end + results = ${relationship.name}(); + if (qualifier != null) { + results = (NSArray<${relationship.actualDestination.classNameWithDefault}>)EOQualifier.filteredArrayWithQualifier(results, qualifier); + } + if (sortOrderings != null) { + results = (NSArray<${relationship.actualDestination.classNameWithDefault}>)EOSortOrdering.sortedArrayUsingKeyOrderArray(results, sortOrderings); + } +#if ($relationship.inverseRelationship && !$relationship.flattened && $relationship.inverseRelationship.classProperty) + } +#end + return results; + } + + public void addTo${relationship.capitalizedName}($relationship.actualDestination.classNameWithDefault object) { + includeObjectIntoPropertyWithKey(object, ${entity.prefixClassNameWithoutPackage}.${relationship.uppercaseUnderscoreName}_KEY); + } + + public void removeFrom${relationship.capitalizedName}($relationship.actualDestination.classNameWithDefault object) { + excludeObjectFromPropertyWithKey(object, ${entity.prefixClassNameWithoutPackage}.${relationship.uppercaseUnderscoreName}_KEY); + } + + public void addTo${relationship.capitalizedName}Relationship($relationship.actualDestination.classNameWithDefault object) { + if (${entity.prefixClassNameWithoutPackage}.LOG.isDebugEnabled()) { + ${entity.prefixClassNameWithoutPackage}.LOG.debug("adding " + object + " to ${relationship.name} relationship"); + } + if (er.extensions.eof.ERXGenericRecord.InverseRelationshipUpdater.updateInverseRelationships()) { + addTo${relationship.capitalizedName}(object); + } + else { + addObjectToBothSidesOfRelationshipWithKey(object, ${entity.prefixClassNameWithoutPackage}.${relationship.uppercaseUnderscoreName}_KEY); + } + } + + public void removeFrom${relationship.capitalizedName}Relationship($relationship.actualDestination.classNameWithDefault object) { + if (${entity.prefixClassNameWithoutPackage}.LOG.isDebugEnabled()) { + ${entity.prefixClassNameWithoutPackage}.LOG.debug("removing " + object + " from ${relationship.name} relationship"); + } + if (er.extensions.eof.ERXGenericRecord.InverseRelationshipUpdater.updateInverseRelationships()) { + removeFrom${relationship.capitalizedName}(object); + } + else { + removeObjectFromBothSidesOfRelationshipWithKey(object, ${entity.prefixClassNameWithoutPackage}.${relationship.uppercaseUnderscoreName}_KEY); + } + } + + public $relationship.actualDestination.classNameWithDefault create${relationship.capitalizedName}Relationship() { + EOClassDescription eoClassDesc = EOClassDescription.classDescriptionForEntityName(#if(${relationship.actualDestination.genericRecord})"${relationship.actualDestination.name}"#else ${relationship.actualDestination.classNameWithDefault}.ENTITY_NAME #end); + EOEnterpriseObject eo = eoClassDesc.createInstanceWithEditingContext(editingContext(), null); + editingContext().insertObject(eo); + addObjectToBothSidesOfRelationshipWithKey(eo, ${entity.prefixClassNameWithoutPackage}.${relationship.uppercaseUnderscoreName}_KEY); + return ($relationship.actualDestination.classNameWithDefault) eo; + } + + public void delete${relationship.capitalizedName}Relationship($relationship.actualDestination.classNameWithDefault object) { + removeObjectFromBothSidesOfRelationshipWithKey(object, ${entity.prefixClassNameWithoutPackage}.${relationship.uppercaseUnderscoreName}_KEY); +#if (!$relationship.ownsDestination) + editingContext().deleteObject(object); +#end + } + + public void deleteAll${relationship.capitalizedName}Relationships() { + Enumeration<$relationship.actualDestination.classNameWithDefault> objects = ${relationship.name}().immutableClone().objectEnumerator(); + while (objects.hasMoreElements()) { + delete${relationship.capitalizedName}Relationship(objects.nextElement()); + } + } + +#end +#end + + public #if (!$entity.partialEntitySet)static #end${entity.classNameWithOptionalPackage}#if (!$entity.partialEntitySet) create#else init#end${entity.name}(EOEditingContext editingContext#foreach ($attribute in $entity.sortedClassAttributes) +#if (!$attribute.allowsNull) +#set ($restrictingQualifierKey = 'false') +#foreach ($qualifierKey in $entity.restrictingQualifierKeys)#if ($attribute.name == $qualifierKey)#set ($restrictingQualifierKey = 'true')#end#end +#if ($restrictingQualifierKey == 'false') +#if ($attribute.userInfo.ERXConstantClassName), ${attribute.userInfo.ERXConstantClassName}#else, ${attribute.javaClassName}#end ${attribute.name} +#end +#end +#end +#foreach ($relationship in $entity.sortedClassToOneRelationships) +#if ($relationship.mandatory && !($relationship.ownsDestination && $relationship.propagatesPrimaryKey)), ${relationship.actualDestination.classNameWithDefault} ${relationship.name}#end +#end +) { + ${entity.classNameWithOptionalPackage} eo = (${entity.classNameWithOptionalPackage})#if ($entity.partialEntitySet)this;#else EOUtilities.createAndInsertInstance(editingContext, ${entity.prefixClassNameWithoutPackage}.ENTITY_NAME);#end + +#foreach ($attribute in $entity.sortedClassAttributes) +#if (!$attribute.allowsNull) +#set ($restrictingQualifierKey = 'false') +#foreach ($qualifierKey in $entity.restrictingQualifierKeys) +#if ($attribute.name == $qualifierKey) +#set ($restrictingQualifierKey = 'true') +#end +#end +#if ($restrictingQualifierKey == 'false') + eo.set${attribute.capitalizedName}(${attribute.name}); +#end +#end +#end +#foreach ($relationship in $entity.sortedClassToOneRelationships) +#if ($relationship.mandatory && !($relationship.ownsDestination && $relationship.propagatesPrimaryKey)) + eo.set${relationship.capitalizedName}Relationship(${relationship.name}); +#end +#end + return eo; + } +#if (!$entity.partialEntitySet) + + public static NSArray<${entity.classNameWithOptionalPackage}> fetchAll${entity.pluralName}(EOEditingContext editingContext) { + return ${entity.prefixClassNameWithoutPackage}.fetchAll${entity.pluralName}(editingContext, null); + } + + public static NSArray<${entity.classNameWithOptionalPackage}> fetchAll${entity.pluralName}(EOEditingContext editingContext, NSArray<EOSortOrdering> sortOrderings) { + return ${entity.prefixClassNameWithoutPackage}.fetch${entity.pluralName}(editingContext, null, sortOrderings); + } + + public static NSArray<${entity.classNameWithOptionalPackage}> fetch${entity.pluralName}(EOEditingContext editingContext, EOQualifier qualifier, NSArray<EOSortOrdering> sortOrderings) { + ERXFetchSpecification<${entity.classNameWithOptionalPackage}> fetchSpec = new ERXFetchSpecification<${entity.classNameWithOptionalPackage}>(${entity.prefixClassNameWithoutPackage}.ENTITY_NAME, qualifier, sortOrderings); + fetchSpec.setIsDeep(true); + NSArray<${entity.classNameWithOptionalPackage}> eoObjects = fetchSpec.fetchObjects(editingContext); + return eoObjects; + } + + public static ${entity.classNameWithOptionalPackage} fetch${entity.name}(EOEditingContext editingContext, String keyName, Object value) { + return ${entity.prefixClassNameWithoutPackage}.fetch${entity.name}(editingContext, new EOKeyValueQualifier(keyName, EOQualifier.QualifierOperatorEqual, value)); + } + + public static ${entity.classNameWithOptionalPackage} fetch${entity.name}(EOEditingContext editingContext, EOQualifier qualifier) { + NSArray<${entity.classNameWithOptionalPackage}> eoObjects = ${entity.prefixClassNameWithoutPackage}.fetch${entity.pluralName}(editingContext, qualifier, null); + ${entity.classNameWithOptionalPackage} eoObject; + int count = eoObjects.count(); + if (count == 0) { + eoObject = null; + } + else if (count == 1) { + eoObject = eoObjects.objectAtIndex(0); + } + else { + throw new IllegalStateException("There was more than one ${entity.name} that matched the qualifier '" + qualifier + "'."); + } + return eoObject; + } + + public static ${entity.classNameWithOptionalPackage} fetchRequired${entity.name}(EOEditingContext editingContext, String keyName, Object value) { + return ${entity.prefixClassNameWithoutPackage}.fetchRequired${entity.name}(editingContext, new EOKeyValueQualifier(keyName, EOQualifier.QualifierOperatorEqual, value)); + } + + public static ${entity.classNameWithOptionalPackage} fetchRequired${entity.name}(EOEditingContext editingContext, EOQualifier qualifier) { + ${entity.classNameWithOptionalPackage} eoObject = ${entity.prefixClassNameWithoutPackage}.fetch${entity.name}(editingContext, qualifier); + if (eoObject == null) { + throw new NoSuchElementException("There was no ${entity.name} that matched the qualifier '" + qualifier + "'."); + } + return eoObject; + } + + public static ${entity.classNameWithOptionalPackage} localInstanceIn(EOEditingContext editingContext, ${entity.classNameWithOptionalPackage} eo) { + ${entity.classNameWithOptionalPackage} localInstance = (eo == null) ? null : ERXEOControlUtilities.localInstanceOfObject(editingContext, eo); + if (localInstance == null && eo != null) { + throw new IllegalStateException("You attempted to localInstance " + eo + ", which has not yet committed."); + } + return localInstance; + } +#end +#foreach ($fetchSpecification in $entity.sortedFetchSpecs) +#if (true || $fetchSpecification.distinctBindings.size() > 0) + public static NSArray#if ($fetchSpecification.fetchEnterpriseObjects)<${entity.className}>#else<NSDictionary>#end fetch${fetchSpecification.capitalizedName}(EOEditingContext editingContext, NSDictionary<String, Object> bindings) { + EOFetchSpecification fetchSpec = EOFetchSpecification.fetchSpecificationNamed("${fetchSpecification.name}", ${entity.prefixClassNameWithoutPackage}.ENTITY_NAME); + fetchSpec = fetchSpec.fetchSpecificationWithQualifierBindings(bindings); + return (NSArray#if ($fetchSpecification.fetchEnterpriseObjects)<${entity.className}>#else<NSDictionary>#end)editingContext.objectsWithFetchSpecification(fetchSpec); + } + +#end + public static NSArray#if ($fetchSpecification.fetchEnterpriseObjects)<${entity.className}>#else<NSDictionary>#end fetch${fetchSpecification.capitalizedName}(EOEditingContext editingContext#foreach ($binding in $fetchSpecification.distinctBindings), + ${binding.attributePath.childClassName} ${binding.name}Binding#end) + { + EOFetchSpecification fetchSpec = EOFetchSpecification.fetchSpecificationNamed("${fetchSpecification.name}", ${entity.prefixClassNameWithoutPackage}.ENTITY_NAME); +#if ($fetchSpecification.distinctBindings.size() > 0) + NSMutableDictionary<String, Object> bindings = new NSMutableDictionary<String, Object>(); +#foreach ($binding in $fetchSpecification.distinctBindings) + bindings.takeValueForKey(${binding.name}Binding, "${binding.name}"); +#end + fetchSpec = fetchSpec.fetchSpecificationWithQualifierBindings(bindings); +#end + return (NSArray#if ($fetchSpecification.fetchEnterpriseObjects)<${entity.className}>#else<NSDictionary>#end)editingContext.objectsWithFetchSpecification(fetchSpec); + } + +#end +} Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Resources/ERAttachment.eogen =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Resources/ERAttachment.eogen 2010-10-22 15:33:05 UTC (rev 11616) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Resources/ERAttachment.eogen 2010-10-22 15:33:32 UTC (rev 11617) @@ -1 +1 @@ - -destination Sources -java -javaTemplate _WonderEntity.java -model Resources/ERAttachment.eomodeld -packagedirs -subclassDestination Sources -subclassJavaTemplate WonderEntity.java -verbose -loadModelGroup -define-EOGenericRecord er.extensions.eof.ERXGenericRecord \ No newline at end of file + -destination Sources -extension java -java -javaTemplate _WonderEntity.java -model Resources/ERAttachment.eomodeld -packagedirs -subclassDestination Sources -subclassJavaTemplate WonderEntity.java -templatedir EOTemplates -verbose -loadModelGroup -define-EOGenericRecord er.extensions.eof.ERXGenericRecord \ No newline at end of file Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/model/_ERAttachment.java =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/model/_ERAttachment.java 2010-10-22 15:33:05 UTC (rev 11616) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/model/_ERAttachment.java 2010-10-22 15:33:32 UTC (rev 11617) @@ -1,4 +1,4 @@ -// $LastChangedRevision: 4733 $ DO NOT EDIT. Make changes to ERAttachment.java instead. +// DO NOT EDIT. Make changes to ERAttachment.java instead. package er.attachment.model; import com.webobjects.eoaccess.*; @@ -62,154 +62,154 @@ } public Boolean available() { - return (Boolean) storedValueForKey("available"); + return (Boolean) storedValueForKey(_ERAttachment.AVAILABLE_KEY); } public void setAvailable(Boolean value) { if (_ERAttachment.LOG.isDebugEnabled()) { _ERAttachment.LOG.debug( "updating available from " + available() + " to " + value); } - takeStoredValueForKey(value, "available"); + takeStoredValueForKey(value, _ERAttachment.AVAILABLE_KEY); } public String configurationName() { - return (String) storedValueForKey("configurationName"); + return (String) storedValueForKey(_ERAttachment.CONFIGURATION_NAME_KEY); } public void setConfigurationName(String value) { if (_ERAttachment.LOG.isDebugEnabled()) { _ERAttachment.LOG.debug( "updating configurationName from " + configurationName() + " to " + value); } - takeStoredValueForKey(value, "configurationName"); + takeStoredValueForKey(value, _ERAttachment.CONFIGURATION_NAME_KEY); } public NSTimestamp creationDate() { - return (NSTimestamp) storedValueForKey("creationDate"); + return (NSTimestamp) storedValueForKey(_ERAttachment.CREATION_DATE_KEY); } public void setCreationDate(NSTimestamp value) { if (_ERAttachment.LOG.isDebugEnabled()) { _ERAttachment.LOG.debug( "updating creationDate from " + creationDate() + " to " + value); } - takeStoredValueForKey(value, "creationDate"); + takeStoredValueForKey(value, _ERAttachment.CREATION_DATE_KEY); } public Integer height() { - return (Integer) storedValueForKey("height"); + return (Integer) storedValueForKey(_ERAttachment.HEIGHT_KEY); } public void setHeight(Integer value) { if (_ERAttachment.LOG.isDebugEnabled()) { _ERAttachment.LOG.debug( "updating height from " + height() + " to " + value); } - takeStoredValueForKey(value, "height"); + takeStoredValueForKey(value, _ERAttachment.HEIGHT_KEY); } public String mimeType() { - return (String) storedValueForKey("mimeType"); + return (String) storedValueForKey(_ERAttachment.MIME_TYPE_KEY); } public void setMimeType(String value) { if (_ERAttachment.LOG.isDebugEnabled()) { _ERAttachment.LOG.debug( "updating mimeType from " + mimeType() + " to " + value); } - takeStoredValueForKey(value, "mimeType"); + takeStoredValueForKey(value, _ERAttachment.MIME_TYPE_KEY); } public String originalFileName() { - return (String) storedValueForKey("originalFileName"); + return (String) storedValueForKey(_ERAttachment.ORIGINAL_FILE_NAME_KEY); } public void setOriginalFileName(String value) { if (_ERAttachment.LOG.isDebugEnabled()) { _ERAttachment.LOG.debug( "updating originalFileName from " + originalFileName() + " to " + value); } - takeStoredValueForKey(value, "originalFileName"); + takeStoredValueForKey(value, _ERAttachment.ORIGINAL_FILE_NAME_KEY); } public String ownerID() { - return (String) storedValueForKey("ownerID"); + return (String) storedValueForKey(_ERAttachment.OWNER_ID_KEY); } public void setOwnerID(String value) { if (_ERAttachment.LOG.isDebugEnabled()) { _ERAttachment.LOG.debug( "updating ownerID from " + ownerID() + " to " + value); } - takeStoredValueForKey(value, "ownerID"); + takeStoredValueForKey(value, _ERAttachment.OWNER_ID_KEY); } public Boolean proxied() { - return (Boolean) storedValueForKey("proxied"); + return (Boolean) storedValueForKey(_ERAttachment.PROXIED_KEY); } public void setProxied(Boolean value) { if (_ERAttachment.LOG.isDebugEnabled()) { _ERAttachment.LOG.debug( "updating proxied from " + proxied() + " to " + value); } - takeStoredValueForKey(value, "proxied"); + takeStoredValueForKey(value, _ERAttachment.PROXIED_KEY); } public Integer size() { - return (Integer) storedValueForKey("size"); + return (Integer) storedValueForKey(_ERAttachment.SIZE_KEY); } public void setSize(Integer value) { if (_ERAttachment.LOG.isDebugEnabled()) { _ERAttachment.LOG.debug( "updating size from " + size() + " to " + value); } - takeStoredValueForKey(value, "size"); + takeStoredValueForKey(value, _ERAttachment.SIZE_KEY); } public String storageType() { - return (String) storedValueForKey("storageType"); + return (String) storedValueForKey(_ERAttachment.STORAGE_TYPE_KEY); } public void setStorageType(String value) { if (_ERAttachment.LOG.isDebugEnabled()) { _ERAttachment.LOG.debug( "updating storageType from " + storageType() + " to " + value); } - takeStoredValueForKey(value, "storageType"); + takeStoredValueForKey(value, _ERAttachment.STORAGE_TYPE_KEY); } public String thumbnail() { - return (String) storedValueForKey("thumbnail"); + return (String) storedValueForKey(_ERAttachment.THUMBNAIL_KEY); } public void setThumbnail(String value) { if (_ERAttachment.LOG.isDebugEnabled()) { _ERAttachment.LOG.debug( "updating thumbnail from " + thumbnail() + " to " + value); } - takeStoredValueForKey(value, "thumbnail"); + takeStoredValueForKey(value, _ERAttachment.THUMBNAIL_KEY); } public String webPath() { - return (String) storedValueForKey("webPath"); + return (String) storedValueForKey(_ERAttachment.WEB_PATH_KEY); } public void setWebPath(String value) { if (_ERAttachment.LOG.isDebugEnabled()) { _ERAttachment.LOG.debug( "updating webPath from " + webPath() + " to " + value); } - takeStoredValueForKey(value, "webPath"); + takeStoredValueForKey(value, _ERAttachment.WEB_PATH_KEY); } public Integer width() { - return (Integer) storedValueForKey("width"); + return (Integer) storedValueForKey(_ERAttachment.WIDTH_KEY); } public void setWidth(Integer value) { if (_ERAttachment.LOG.isDebugEnabled()) { _ERAttachment.LOG.debug( "updating width from " + width() + " to " + value); } - takeStoredValueForKey(value, "width"); + takeStoredValueForKey(value, _ERAttachment.WIDTH_KEY); } public er.attachment.model.ERAttachment parentAttachment() { - return (er.attachment.model.ERAttachment)storedValueForKey("parentAttachment"); + return (er.attachment.model.ERAttachment)storedValueForKey(_ERAttachment.PARENT_ATTACHMENT_KEY); } public void setParentAttachment(er.attachment.model.ERAttachment value) { - takeStoredValueForKey(value, "parentAttachment"); + takeStoredValueForKey(value, _ERAttachment.PARENT_ATTACHMENT_KEY); } public void setParentAttachmentRelationship(er.attachment.model.ERAttachment value) { @@ -222,15 +222,15 @@ else if (value == null) { er.attachment.model.ERAttachment oldValue = parentAttachment(); if (oldValue != null) { - removeObjectFromBothSidesOfRelationshipWithKey(oldValue, "parentAttachment"); + removeObjectFromBothSidesOfRelationshipWithKey(oldValue, _ERAttachment.PARENT_ATTACHMENT_KEY); } } else { - addObjectToBothSidesOfRelationshipWithKey(value, "parentAttachment"); + addObjectToBothSidesOfRelationshipWithKey(value, _ERAttachment.PARENT_ATTACHMENT_KEY); } } public NSArray<er.attachment.model.ERAttachment> childrenAttachments() { - return (NSArray<er.attachment.model.ERAttachment>)storedValueForKey("childrenAttachments"); + return (NSArray<er.attachment.model.ERAttachment>)storedValueForKey(_ERAttachment.CHILDREN_ATTACHMENTS_KEY); } public NSArray<er.attachment.model.ERAttachment> childrenAttachments(EOQualifier qualifier) { @@ -251,7 +251,7 @@ fullQualifier = inverseQualifier; } else { - NSMutableArray qualifiers = new NSMutableArray(); + NSMutableArray<EOQualifier> qualifiers = new NSMutableArray<EOQualifier>(); qualifiers.addObject(qualifier); qualifiers.addObject(inverseQualifier); fullQualifier = new EOAndQualifier(qualifiers); @@ -272,11 +272,11 @@ } public void addToChildrenAttachments(er.attachment.model.ERAttachment object) { - includeObjectIntoPropertyWithKey(object, "childrenAttachments"); + includeObjectIntoPropertyWithKey(object, _ERAttachment.CHILDREN_ATTACHMENTS_KEY); } public void removeFromChildrenAttachments(er.attachment.model.ERAttachment object) { - excludeObjectFromPropertyWithKey(object, "childrenAttachments"); + excludeObjectFromPropertyWithKey(object, _ERAttachment.CHILDREN_ATTACHMENTS_KEY); } public void addToChildrenAttachmentsRelationship(er.attachment.model.ERAttachment object) { @@ -287,7 +287,7 @@ addToChildrenAttachments(object); } else { - addObjectToBothSidesOfRelationshipWithKey(object, "childrenAttachments"); + addObjectToBothSidesOfRelationshipWithKey(object, _ERAttachment.CHILDREN_ATTACHMENTS_KEY); } } @@ -299,27 +299,27 @@ removeFromChildrenAttachments(object); } else { - removeObjectFromBothSidesOfRelationshipWithKey(object, "childrenAttachments"); + removeObjectFromBothSidesOfRelationshipWithKey(object, _ERAttachment.CHILDREN_ATTACHMENTS_KEY); } } public er.attachment.model.ERAttachment createChildrenAttachmentsRelationship() { - EOClassDescription eoClassDesc = EOClassDescription.classDescriptionForEntityName("ERAttachment"); + EOClassDescription eoClassDesc = EOClassDescription.classDescriptionForEntityName( er.attachment.model.ERAttachment.ENTITY_NAME ); EOEnterpriseObject eo = eoClassDesc.createInstanceWithEditingContext(editingContext(), null); editingContext().insertObject(eo); - addObjectToBothSidesOfRelationshipWithKey(eo, "childrenAttachments"); + addObjectToBothSidesOfRelationshipWithKey(eo, _ERAttachment.CHILDREN_ATTACHMENTS_KEY); return (er.attachment.model.ERAttachment) eo; } public void deleteChildrenAttachmentsRelationship(er.attachment.model.ERAttachment object) { - removeObjectFromBothSidesOfRelationshipWithKey(object, "childrenAttachments"); + removeObjectFromBothSidesOfRelationshipWithKey(object, _ERAttachment.CHILDREN_ATTACHMENTS_KEY); editingContext().deleteObject(object); } public void deleteAllChildrenAttachmentsRelationships() { - Enumeration objects = childrenAttachments().immutableClone().objectEnumerator(); + Enumeration<er.attachment.model.ERAttachment> objects = childrenAttachments().immutableClone().objectEnumerator(); while (objects.hasMoreElements()) { - deleteChildrenAttachmentsRelationship((er.attachment.model.ERAttachment)objects.nextElement()); + deleteChildrenAttachmentsRelationship(objects.nextElement()); } } @@ -352,9 +352,9 @@ } public static NSArray<ERAttachment> fetchERAttachments(EOEditingContext editingContext, EOQualifier qualifier, NSArray<EOSortOrdering> sortOrderings) { - EOFetchSpecification fetchSpec = new EOFetchSpecification(_ERAttachment.ENTITY_NAME, qualifier, sortOrderings); + ERXFetchSpecification<ERAttachment> fetchSpec = new ERXFetchSpecification<ERAttachment>(_ERAttachment.ENTITY_NAME, qualifier, sortOrderings); fetchSpec.setIsDeep(true); - NSArray<ERAttachment> eoObjects = (NSArray<ERAttachment>)editingContext.objectsWithFetchSpecification(fetchSpec); + NSArray<ERAttachment> eoObjects = fetchSpec.fetchObjects(editingContext); return eoObjects; } @@ -370,7 +370,7 @@ eoObject = null; } else if (count == 1) { - eoObject = (ERAttachment)eoObjects.objectAtIndex(0); + eoObject = eoObjects.objectAtIndex(0); } else { throw new IllegalStateException("There was more than one ERAttachment that matched the qualifier '" + qualifier + "'."); @@ -391,7 +391,7 @@ } public static ERAttachment localInstanceIn(EOEditingContext editingContext, ERAttachment eo) { - ERAttachment localInstance = (eo == null) ? null : (ERAttachment)EOUtilities.localInstanceOfObject(editingContext, eo); + ERAttachment localInstance = (eo == null) ? null : ERXEOControlUtilities.localInstanceOfObject(editingContext, eo); if (localInstance == null && eo != null) { throw new IllegalStateException("You attempted to localInstance " + eo + ", which has not yet committed."); } Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/model/_ERAttachmentData.java =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/model/_ERAttachmentData.java 2010-10-22 15:33:05 UTC (rev 11616) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/model/_ERAttachmentData.java 2010-10-22 15:33:32 UTC (rev 11617) @@ -1,4 +1,4 @@ -// $LastChangedRevision: 4733 $ DO NOT EDIT. Make changes to ERAttachmentData.java instead. +// DO NOT EDIT. Make changes to ERAttachmentData.java instead. package er.attachment.model; import com.webobjects.eoaccess.*; @@ -34,14 +34,14 @@ } public NSData data() { - return (NSData) storedValueForKey("data"); + return (NSData) storedValueForKey(_ERAttachmentData.DATA_KEY); } public void setData(NSData value) { if (_ERAttachmentData.LOG.isDebugEnabled()) { _ERAttachmentData.LOG.debug( "updating data from " + data() + " to " + value); } - takeStoredValueForKey(value, "data"); + takeStoredValueForKey(value, _ERAttachmentData.DATA_KEY); } @@ -59,9 +59,9 @@ } public static NSArray<ERAttachmentData> fetchERAttachmentDatas(EOEditingContext editingContext, EOQualifier qualifier, NSArray<EOSortOrdering> sortOrderings) { - EOFetchSpecification fetchSpec = new EOFetchSpecification(_ERAttachmentData.ENTITY_NAME, qualifier, sortOrderings); + ERXFetchSpecification<ERAttachmentData> fetchSpec = new ERXFetchSpecification<ERAttachmentData>(_ERAttachmentData.ENTITY_NAME, qualifier, sortOrderings); fetchSpec.setIsDeep(true); - NSArray<ERAttachmentData> eoObjects = (NSArray<ERAttachmentData>)editingContext.objectsWithFetchSpecification(fetchSpec); + NSArray<ERAttachmentData> eoObjects = fetchSpec.fetchObjects(editingContext); return eoObjects; } @@ -77,7 +77,7 @@ eoObject = null; } else if (count == 1) { - eoObject = (ERAttachmentData)eoObjects.objectAtIndex(0); + eoObject = eoObjects.objectAtIndex(0); } else { throw new IllegalStateException("There was more than one ERAttachmentData that matched the qualifier '" + qualifier + "'."); @@ -98,7 +98,7 @@ } public static ERAttachmentData localInstanceIn(EOEditingContext editingContext, ERAttachmentData eo) { - ERAttachmentData localInstance = (eo == null) ? null : (ERAttachmentData)EOUtilities.localInstanceOfObject(editingContext, eo); + ERAttachmentData localInstance = (eo == null) ? null : ERXEOControlUtilities.localInstanceOfObject(editingContext, eo); if (localInstance == null && eo != null) { throw new IllegalStateException("You attempted to localInstance " + eo + ", which has not yet committed."); } Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/model/_ERDatabaseAttachment.java =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/model/_ERDatabaseAttachment.java 2010-10-22 15:33:05 UTC (rev 11616) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/model/_ERDatabaseAttachment.java 2010-10-22 15:33:32 UTC (rev 11617) @@ -1,4 +1,4 @@ -// $LastChangedRevision: 4733 $ DO NOT EDIT. Make changes to ERDatabaseAttachment.java instead. +// DO NOT EDIT. Make changes to ERDatabaseAttachment.java instead. package er.attachment.model; import com.webobjects.eoaccess.*; @@ -66,22 +66,22 @@ } public NSData smallData() { - return (NSData) storedValueForKey("smallData"); + return (NSData) storedValueForKey(_ERDatabaseAttachment.SMALL_DATA_KEY); } public void setSmallData(NSData value) { if (_ERDatabaseAttachment.LOG.isDebugEnabled()) { _ERDatabaseAttachment.LOG.debug( "updating smallData from " + smallData() + " to " + value); } - takeStoredValueForKey(value, "smallData"); + takeStoredValueForKey(value, _ERDatabaseAttachment.SMALL_DATA_KEY); } public er.attachment.model.ERAttachmentData attachmentData() { - return (er.attachment.model.ERAttachmentData)storedValueForKey("attachmentData"); + return (er.attachment.model.ERAttachmentData)storedValueForKey(_ERDatabaseAttachment.ATTACHMENT_DATA_KEY); } public void setAttachmentData(er.attachment.model.ERAttachmentData value) { - takeStoredValueForKey(value, "attachmentData"); + takeStoredValueForKey(value, _ERDatabaseAttachment.ATTACHMENT_DATA_KEY); } public void setAttachmentDataRelationship(er.attachment.model.ERAttachmentData value) { @@ -94,10 +94,10 @@ else if (value == null) { er.attachment.model.ERAttachmentData oldValue = attachmentData(); if (oldValue != null) { - removeObjectFromBothSidesOfRelationshipWithKey(oldValue, "attachmentData"); + removeObjectFromBothSidesOfRelationshipWithKey(oldValue, _ERDatabaseAttachment.ATTACHMENT_DATA_KEY); } } else { - addObjectToBothSidesOfRelationshipWithKey(value, "attachmentData"); + addObjectToBothSidesOfRelationshipWithKey(value, _ERDatabaseAttachment.ATTACHMENT_DATA_KEY); } } @@ -130,9 +130,9 @@ } public static NSArray<ERDatabaseAttachment> fetchERDatabaseAttachments(EOEditingContext editingContext, EOQualifier qualifier, NSArray<EOSortOrdering> sortOrderings) { - EOFetchSpecification fetchSpec = new EOFetchSpecification(_ERDatabaseAttachment.ENTITY_NAME, qualifier, sortOrderings); + ERXFetchSpecification<ERDatabaseAttachment> fetchSpec = new ERXFetchSpecification<ERDatabaseAttachment>(_ERDatabaseAttachment.ENTITY_NAME, qualifier, sortOrderings); fetchSpec.setIsDeep(true); - NSArray<ERDatabaseAttachment> eoObjects = (NSArray<ERDatabaseAttachment>)editingContext.objectsWithFetchSpecification(fetchSpec); + NSArray<ERDatabaseAttachment> eoObjects = fetchSpec.fetchObjects(editingContext); return eoObjects; } @@ -148,7 +148,7 @@ eoObject = null; } else if (count == 1) { - eoObject = (ERDatabaseAttachment)eoObjects.objectAtIndex(0); + eoObject = eoObjects.objectAtIndex(0); } else { throw new IllegalStateException("There was more than one ERDatabaseAttachment that matched the qualifier '" + qualifier + "'."); @@ -169,7 +169,7 @@ } public static ERDatabaseAttachment localInstanceIn(EOEditingContext editingContext, ERDatabaseAttachment eo) { - ERDatabaseAttachment localInstance = (eo == null) ? null : (ERDatabaseAttachment)EOUtilities.localInstanceOfObject(editingContext, eo); + ERDatabaseAttachment localInstance = (eo == null) ? null : ERXEOControlUtilities.localInstanceOfObject(editingContext, eo); if (localInstance == null && eo != null) { throw new IllegalStateException("You attempted to localInstance " + eo + ", which has not yet committed."); } Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/model/_ERFileAttachment.java =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/model/_ERFileAttachment.java 2010-10-22 15:33:05 UTC (rev 11616) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/model/_ERFileAttachment.java 2010-10-22 15:33:32 UTC (rev 11617) @@ -1,4 +1,4 @@ -// $LastChangedRevision: 4733 $ DO NOT EDIT. Make changes to ERFileAttachment.java instead. +// DO NOT EDIT. Make changes to ERFileAttachment.java instead. package er.attachment.model; import com.webobjects.eoaccess.*; @@ -64,14 +64,14 @@ } public String filesystemPath() { - return (String) storedValueForKey("filesystemPath"); + return (String) storedValueForKey(_ERFileAttachment.FILESYSTEM_PATH_KEY); } public void setFilesystemPath(String value) { if (_ERFileAttachment.LOG.isDebugEnabled()) { _ERFileAttachment.LOG.debug( "updating filesystemPath from " + filesystemPath() + " to " + value); } - takeStoredValueForKey(value, "filesystemPath"); + takeStoredValueForKey(value, _ERFileAttachment.FILESYSTEM_PATH_KEY); } @@ -103,9 +103,9 @@ } public static NSArray<ERFileAttachment> fetchERFileAttachments(EOEditingContext editingContext, EOQualifier qualifier, NSArray<EOSortOrdering> sortOrderings) { - EOFetchSpecification fetchSpec = new EOFetchSpecification(_ERFileAttachment.ENTITY_NAME, qualifier, sortOrderings); + ERXFetchSpecification<ERFileAttachment> fetchSpec = new ERXFetchSpecification<ERFileAttachment>(_ERFileAttachment.ENTITY_NAME, qualifier, sortOrderings); fetchSpec.setIsDeep(true); - NSArray<ERFileAttachment> eoObjects = (NSArray<ERFileAttachment>)editingContext.objectsWithFetchSpecification(fetchSpec); + NSArray<ERFileAttachment> eoObjects = fetchSpec.fetchObjects(editingContext); return eoObjects; } @@ -121,7 +121,7 @@ eoObject = null; } else if (count == 1) { - eoObject = (ERFileAttachment)eoObjects.objectAtIndex(0); + eoObject = eoObjects.objectAtIndex(0); } else { throw new IllegalStateException("There was more than one ERFileAttachment that matched the qualifier '" + qualifier + "'."); @@ -142,7 +142,7 @@ } public static ERFileAttachment localInstanceIn(EOEditingContext editingContext, ERFileAttachment eo) { - ERFileAttachment localInstance = (eo == null) ? null : (ERFileAttachment)EOUtilities.localInstanceOfObject(editingContext, eo); + ERFileAttachment localInstance = (eo == null) ? null : ERXEOControlUtilities.localInstanceOfObject(editingContext, eo); if (localInstance == null && eo != null) { throw new IllegalStateException("You attempted to localInstance " + eo + ", which has not yet committed."); } Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/model/_ERS3Attachment.java =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/model/_ERS3Attachment.java 2010-10-22 15:33:05 UTC (rev 11616) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/model/_ERS3Attachment.java 2010-10-22 15:33:32 UTC (rev 11617) @@ -1,4 +1,4 @@ -// $LastChangedRevision: 4733 $ DO NOT EDIT. Make changes to ERS3Attachment.java instead. +// DO NOT EDIT. Make changes to ERS3Attachment.java instead. package er.attachment.model; import com.webobjects.eoaccess.*; @@ -64,14 +64,14 @@ } public String s3Path() { - return (String) storedValueForKey("s3Path"); + return (String) storedValueForKey(_ERS3Attachment.S3_PATH_KEY); } public void setS3Path(String value) { if (_ERS3Attachment.LOG.isDebugEnabled()) { _ERS3Attachment.LOG.debug( "updating s3Path from " + s3Path() + " to " + value); } - takeStoredValueForKey(value, "s3Path"); + takeStoredValueForKey(value, _ERS3Attachment.S3_PATH_KEY); } @@ -103,9 +103,9 @@ } public static NSArray<ERS3Attachment> fetchERS3Attachments(EOEditingContext editingContext, EOQualifier qualifier, NSArray<EOSortOrdering> sortOrderings) { - EOFetchSpecification fetchSpec = new EOFetchSpecification(_ERS3Attachment.ENTITY_NAME, qualifier, sortOrderings); + ERXFetchSpecification<ERS3Attachment> fetchSpec = new ERXFetchSpecification<ERS3Attachment>(_ERS3Attachment.ENTITY_NAME, qualifier, sortOrderings); fetchSpec.setIsDeep(true); - NSArray<ERS3Attachment> eoObjects = (NSArray<ERS3Attachment>)editingContext.objectsWithFetchSpecification(fetchSpec); + NSArray<ERS3Attachment> eoObjects = fetchSpec.fetchObjects(editingContext); return eoObjects; } @@ -121,7 +121,7 @@ eoObject = null; } else if (count == 1) { - eoObject = (ERS3Attachment)eoObjects.objectAtIndex(0); + eoObject = eoObjects.objectAtIndex(0); } else { throw new IllegalStateException("There was more than one ERS3Attachment that matched the qualifier '" + qualifier + "'."); @@ -142,7 +142,7 @@ } public static ERS3Attachment localInstanceIn(EOEditingContext editingContext, ERS3Attachment eo) { - ERS3Attachment localInstance = (eo == null) ? null : (ERS3Attachment)EOUtilities.localInstanceOfObject(editingContext, eo); + ERS3Attachment localInstance = (eo == null) ? null : ERXEOControlUtilities.localInstanceOfObject(editingContext, eo); if (localInstance == null && eo != null) { throw new IllegalStateException("You attempted to localInstance " + eo + ", which has not yet committed."); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dav...@us...> - 2010-05-07 19:28:48
|
Revision: 10841 http://wonder.svn.sourceforge.net/wonder/?rev=10841&view=rev Author: davidleber Date: 2010-05-07 19:28:42 +0000 (Fri, 07 May 2010) Log Message: ----------- Added ERAttachmentFlexibleEditor - combined edit/view component with ajax behaviour. Modified Paths: -------------- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/.classpath trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.api trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.wo/ERAttachmentFlexibleUpload.wod trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/components/ERAttachmentFlexibleUpload.java Added Paths: ----------- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleEditor.api trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleEditor.wo/ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleEditor.wo/ERAttachmentFlexibleEditor.html trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleEditor.wo/ERAttachmentFlexibleEditor.wod trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleEditor.wo/ERAttachmentFlexibleEditor.woo Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/.classpath =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/.classpath 2010-05-07 19:24:51 UTC (rev 10840) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/.classpath 2010-05-07 19:28:42 UTC (rev 10841) @@ -12,5 +12,6 @@ <classpathentry exported="true" kind="con" path="WOFramework/JavaWebObjects"/> <classpathentry exported="true" kind="con" path="WOFramework/JavaXML"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> + <classpathentry kind="con" path="WOFramework/Ajax"/> <classpathentry kind="output" path="bin"/> </classpath> Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleEditor.api =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleEditor.api (rev 0) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleEditor.api 2010-05-07 19:28:42 UTC (rev 10841) @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<wodefinitions> + <wo class="ERAttachmentFlexibleEditor" wocomponentcontent="false"> <binding name="masterObject"/> + <binding name="relationshipKey"/> + <validation message="'masterObject' is a required binding."> + <unbound name="masterObject"/> + </validation> + <validation message="'relationshipKey' is a required binding."> + <unbound name="relationshipKey"/> + </validation> + <binding name="injectDefaultCSS"/> + <binding name="id"/> + <binding name="editorEditLabel"/> + <binding name="editorEditButtonClass"/> + <binding name="editorCancelLabel"/> + <binding name="editorCancelButtonClass"/> + <binding name="configurationName"/> + <binding name="storageType"/> + <binding name="viewShowFileName"/> + <binding name="viewShowAttachmentLink"/> + <binding name="uploadDialogHeaderText"/> + <binding name="viewHeight"/> + <binding name="viewWidth"/> + <binding name="viewAllowDownload"/> + <binding name="uploadAllowCancel"/> + <binding name="uploadFinishedFunction"/> + <binding name="uploadCancelButtonClass"/> + <binding name="uploadCancelLabel"/> + <binding name="uploadCanceledAction"/> + <binding name="uploadCanceledFunction"/> + <binding name="uploadCancelingText"/> + <binding name="uploadClearClass"/> + <binding name="uploadFailedAction"/> + <binding name="uploadFailedFunction"/> + <binding name="uploadHeight"/> + <binding name="uploadWidth"/> + <binding name="uploadMimeType"/> + <binding name="uploadOwnerID"/> + <binding name="uploadRefreshTime"/> + <binding name="uploadSelectFileButtonClass"/> + <binding name="uploadSelectFileLabel"/> + <binding name="uploadStartedFunction"/> + </wo> +</wodefinitions> Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleEditor.wo/ERAttachmentFlexibleEditor.html =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleEditor.wo/ERAttachmentFlexibleEditor.html (rev 0) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleEditor.wo/ERAttachmentFlexibleEditor.html 2010-05-07 19:28:42 UTC (rev 10841) @@ -0,0 +1,31 @@ +<webobject name = "MainUpdateContainer"> + <webobject name = "NotShowUpload"> + <div class = "AEView"> + <webobject name = "ERAttachmentViewer" /> + <webobject name = "ShowFileName"> + <div class = "AEFileName"> + <webobject name = "ShowLink"> + <webobject name = "ERAttachmentLink"><webobject name = "OriginalFileName" /></webobject> + </webobject> + <webobject name = "NotShowLink"> <webobject name = "OriginalFileName" /> </webobject> + </div> + </webobject> + <div class = "AEEditButton"> + <webobject name = "EditButton"> + <span><webobject name = "EditorEditButtonLabel"/></span> + </webobject> + </div> + </div> + </webobject> + <webobject name = "ShowUpload"> + <div class = "AEEdit"> + <h4 class = "AEEditHeader"><webobject name = "EditHeader"/></h4> + <webobject name = "ERAttachmentFlexibleUpload" /> + <webobject name = "CancelButtonDiv"> + <webobject name = "CancelButton"> + <span><webobject name = "EditorCancelButtonLabel"/></span> + </webobject> + </webobject> + </div> + </webobject> +</webobject> \ No newline at end of file Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleEditor.wo/ERAttachmentFlexibleEditor.wod =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleEditor.wo/ERAttachmentFlexibleEditor.wod (rev 0) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleEditor.wo/ERAttachmentFlexibleEditor.wod 2010-05-07 19:28:42 UTC (rev 10841) @@ -0,0 +1,105 @@ +ERAttachmentFlexibleUpload : ERAttachmentFlexibleUpload { + attachment = newAttachment; + editingContext = attachmentEC; + finishedFunction = uploadFinishedFunction; + succeededAction = uploadSucceededAction; + finishedAction = finishedAction; + startedFunction = startedFunction; + allowCancel = allowCancel; + configurationName = ^configurationName; + cancelButtonClass = ^uploadCancelButtonClass; + cancelLabel = uploadCancelLabel; + canceledAction = ^uploadCanceledAction; + canceledFunction = ^uploadCanceledFunction; + cancelingText = ^uploadCancelingText; + cleanup = ^cleanup; + clearButtonClass = ^uploadClearClass; + failedAction = ^uploadFailedAction; + failedFunction = ^uploadFailedFunction; + height = ^uploadHeight; + width = ^uploadWidth; + injectDefaultCSS = injectDefaultCSS; + mimeType = ^uploadMimeType; + ownerID = ^uploadOwnerID; + refreshTime = ^uploadRefreshTime; + selectFileButtonClass = ^uploadSelectFileButtonClass; + selectFileLabel = ^uploadSelectFileLabel; + storageType = ^storageType; + id = id; +} + +MainUpdateContainer : AjaxUpdateContainer { + id = updateContainerID; + class = "ERAttachmentFlexibleEditor"; +} + +NotShowUpload : WOConditional { + condition = showUpload; + negate = true; +} + +ERAttachmentViewer : ERAttachmentViewer { + attachment = viewerAttachment; + height = ^viewHeight; + width = ^viewWidth; + configurationName = ^configurationName; +} + +ShowFileName : WOConditional { + condition = showFileName; +} + +ShowLink : WOConditional { + condition = showLink; +} + +ERAttachmentLink : ERAttachmentLink { + attachment = viewerAttachment; + download = allowDownload; + configurationName = ^configurationName; +} + +OriginalFileName : WOString { + value = viewerAttachment.originalFileName; +} + +NotShowLink : WOConditional { + condition = showLink; + negate = true; +} + +EditButton : AjaxUpdateLink { + updateContainerID = updateContainerID; + action = editAttachment; + class = editorEditButtonClass; +} + +ShowUpload : WOConditional { + condition = showUpload; +} + +CancelButtonDiv : WOGenericContainer { + elementName = "div"; + class = "AECancelButton"; + id = cancelButtonWrapperID; +} + +CancelButton : AjaxUpdateLink { + updateContainerID = updateContainerID; + action = cancelEdit; + class = editorCancelButtonClass; +} + + + +EditHeader : ERXLocalizedString { + value = uploadDialogHeaderText; +} + +EditorEditButtonLabel : ERXLocalizedString { + value = editorEditLabel; +} + +EditorCancelButtonLabel : ERXLocalizedString { + value = editorCancelLabel; +} Added: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleEditor.wo/ERAttachmentFlexibleEditor.woo =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleEditor.wo/ERAttachmentFlexibleEditor.woo (rev 0) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleEditor.wo/ERAttachmentFlexibleEditor.woo 2010-05-07 19:28:42 UTC (rev 10841) @@ -0,0 +1,4 @@ +{ + "WebObjects Release" = "WebObjects 5.0"; + encoding = "UTF-8"; +} \ No newline at end of file Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.api =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.api 2010-05-07 19:24:51 UTC (rev 10840) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.api 2010-05-07 19:28:42 UTC (rev 10841) @@ -34,5 +34,6 @@ <binding name="selectFileLabel"/> <binding name="cancelButtonClass"/> <binding name="clearButtonClass"/> + <binding name="id"/> </wo> </wodefinitions> Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.wo/ERAttachmentFlexibleUpload.wod =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.wo/ERAttachmentFlexibleUpload.wod 2010-05-07 19:24:51 UTC (rev 10840) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Components/ERAttachmentFlexibleUpload.wo/ERAttachmentFlexibleUpload.wod 2010-05-07 19:28:42 UTC (rev 10841) @@ -22,4 +22,5 @@ selectFileLabel = ^selectFileLabel; cancelButtonClass = ^cancelButtonClass; clearButtonClass = ^clearButtonClass; + id = ^id; } \ No newline at end of file Modified: trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/components/ERAttachmentFlexibleUpload.java =================================================================== --- trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/components/ERAttachmentFlexibleUpload.java 2010-05-07 19:24:51 UTC (rev 10840) +++ trunk/Wonder/Frameworks/BusinessLogic/ERAttachment/Sources/er/attachment/components/ERAttachmentFlexibleUpload.java 2010-05-07 19:28:42 UTC (rev 10841) @@ -10,7 +10,7 @@ * unlike {@link ERAttachmentUpload}, this component always uses ajax behaviour. * * When the upload is successfully completed, this component will automatically - * process the attachment. See the notes in ERAttachmentUpload for details on how to + * process the attachment. See the notes in {@link ERAttachmentUpload} for details on how to * process an attachment in your own components. * * <p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |