diff --git a/.gitignore b/.gitignore index e97e666..80087a8 100755 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,5 @@ Podfile.lock Pods + +version.xcconfig diff --git a/.gitmodules b/.gitmodules index a8a877e..5eb61f7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,21 +1,3 @@ -[submodule "SBJson"] - path = SBJson - url = git://github.com/stig/json-framework.git -[submodule "JSONKit"] - path = JSONKit - url = git://github.com/johnezang/JSONKit.git -[submodule "gen_icon"] - path = gen_icon - url = git://gist.github.com/3800241.git -[submodule "ObjectXML"] - path = ObjectXML - url = git://github.com/youknowone/ObjectXML.git -[submodule "cdebug"] - path = cdebug - url = git://github.com/youknowone/cdebug.git -[submodule "FoundationExtension"] - path = FoundationExtension - url = git://github.com/youknowone/FoundationExtension.git [submodule "xcodepkgtool"] path = xcodepkgtool url = git://github.com/youknowone/xcodepkgtool.git diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..e930df0 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,9 @@ +language: objective-c +sudo: false +xcode_workspace: VisualJSON.xcworkspace +osx_image: xcode7 +xcode_sdk: + - macosx +xcode_scheme: + - VisualJSON + - VisualXML diff --git a/Podfile b/Podfile index 6abca91..0fb7c1d 100644 --- a/Podfile +++ b/Podfile @@ -1,4 +1,19 @@ -platform :osx -pod 'cdebug' -pod 'FoundationExtension' -pod 'ObjectXML' +platform :osx, "10.9" + +target "VisualJSON" do + pod 'cdebug' + pod 'FoundationExtension', '~> 1.2.4' + pod 'ObjectXML', '>= 0.2' + pod 'AFNetworking', '~> 0.10.1' + pod 'Fabric' + pod 'Crashlytics' +end + +target "VisualXML" do + pod 'cdebug' + pod 'FoundationExtension', '~> 1.2.4' + pod 'ObjectXML', '>= 0.2' + pod 'AFNetworking', '~> 0.10.1' + pod 'Fabric' + pod 'Crashlytics' +end diff --git a/README.md b/README.md index 48fb838..2b3e930 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +[![Build Status](https://travis-ci.org/youknowone/VisualJSON.svg?branch=master)](https://travis-ci.org/youknowone/VisualJSON) + Website: [http://youknowone.github.com/VisualJSON](http://youknowone.github.com/VisualJSON) VisualJSON is simple JSON pretty-viewer for Mac OS X. diff --git a/ScreenShots/xml.png b/ScreenShots/xml.png new file mode 100644 index 0000000..7207f90 Binary files /dev/null and b/ScreenShots/xml.png differ diff --git a/VisualJSON.xcodeproj/project.pbxproj b/VisualJSON.xcodeproj/project.pbxproj index c0ba13f..5a1f278 100644 --- a/VisualJSON.xcodeproj/project.pbxproj +++ b/VisualJSON.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 47; objects = { /* Begin PBXBuildFile section */ @@ -34,11 +34,21 @@ 3868F79E1629EDCF00C31163 /* VJJsonDocumentDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3868F79D1629EDCF00C31163 /* VJJsonDocumentDelegate.m */; }; 3868F7A11629F12200C31163 /* VJXMLDocumentDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3868F7A01629F12200C31163 /* VJXMLDocumentDelegate.m */; }; 3868F7A21629F23D00C31163 /* VJDocument.xib in Resources */ = {isa = PBXBuildFile; fileRef = 382554D3157BE3550099CC24 /* VJDocument.xib */; }; - 3868F7A31629F23D00C31163 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 382554D6157BE3550099CC24 /* MainMenu.xib */; }; 3868F7A4162B1AAC00C31163 /* VJXMLDocumentDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3868F7A01629F12200C31163 /* VJXMLDocumentDelegate.m */; }; + 387B1EBA16EBDEA80059722B /* VJJsonDocumentDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 3868F79D1629EDCF00C31163 /* VJJsonDocumentDelegate.m */; }; + 387B1EBB16EBDEB40059722B /* JsonElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 38255566157C94C50099CC24 /* JsonElement.m */; }; + 387B1EBC16EBDEC30059722B /* VJDocumentHistory.m in Sources */ = {isa = PBXBuildFile; fileRef = 388DE109165480EE00139B31 /* VJDocumentHistory.m */; }; + 387B1EC016EBE3EF0059722B /* Icon.iconset in Resources */ = {isa = PBXBuildFile; fileRef = 387B1EBF16EBE3EF0059722B /* Icon.iconset */; }; + 388720AD1745FD50006EFBAD /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 388720AB1745FD50006EFBAD /* MainMenu.xib */; }; + 388DE10A165480EE00139B31 /* VJDocumentHistory.m in Sources */ = {isa = PBXBuildFile; fileRef = 388DE109165480EE00139B31 /* VJDocumentHistory.m */; }; 38A1C035157DD7030034EDC4 /* VJRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 38A1C034157DD7030034EDC4 /* VJRequest.m */; }; 38A1C038157E15240034EDC4 /* VJDocument.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 38A1C036157E15240034EDC4 /* VJDocument.xcdatamodeld */; }; - 38B0C710164101F20044C73C /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 38B0C70F164101F20044C73C /* libPods.a */; }; + 38C5D64117A37E590005C2BD /* VJJSONPreferencesWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 38C5D64017A37E590005C2BD /* VJJSONPreferencesWindowController.m */; }; + 38F2F7361B0F248B00372447 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 38F2F7351B0F248B00372447 /* SystemConfiguration.framework */; }; + 38F2F7381B0F248F00372447 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 38F2F7371B0F248F00372447 /* libz.dylib */; }; + 38F2F73A1B0F249300372447 /* libc++.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 38F2F7391B0F249300372447 /* libc++.dylib */; }; + 3CD962861DD51BB73ADC6475 /* libPods-VisualJSON.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 338543E687681EA734AABFE8 /* libPods-VisualJSON.a */; }; + 9BEEA0246D3ED685232F81E4 /* libPods-VisualXML.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 81989170E5964B0055B0C283 /* libPods-VisualXML.a */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -65,6 +75,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 338543E687681EA734AABFE8 /* libPods-VisualJSON.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-VisualJSON.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 382554BA157BE3550099CC24 /* VisualJSON.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = VisualJSON.app; sourceTree = BUILT_PRODUCTS_DIR; }; 382554BE157BE3550099CC24 /* Cocoa.framework */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; 382554C1157BE3550099CC24 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; @@ -105,11 +116,26 @@ 3868F79D1629EDCF00C31163 /* VJJsonDocumentDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VJJsonDocumentDelegate.m; sourceTree = ""; }; 3868F79F1629F12200C31163 /* VJXMLDocumentDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VJXMLDocumentDelegate.h; sourceTree = ""; }; 3868F7A01629F12200C31163 /* VJXMLDocumentDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VJXMLDocumentDelegate.m; sourceTree = ""; }; + 387B1EBF16EBE3EF0059722B /* Icon.iconset */ = {isa = PBXFileReference; lastKnownFileType = folder.iconset; path = Icon.iconset; sourceTree = ""; }; + 388720AC1745FD50006EFBAD /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = ""; }; + 388DE108165480EE00139B31 /* VJDocumentHistory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VJDocumentHistory.h; sourceTree = ""; }; + 388DE109165480EE00139B31 /* VJDocumentHistory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VJDocumentHistory.m; sourceTree = ""; }; 38A1C033157DD7030034EDC4 /* VJRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VJRequest.h; sourceTree = ""; }; 38A1C034157DD7030034EDC4 /* VJRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VJRequest.m; sourceTree = ""; }; 38A1C037157E15240034EDC4 /* VJDocument.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = VJDocument.xcdatamodel; sourceTree = ""; }; - 38B0C70F164101F20044C73C /* libPods.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libPods.a; path = Pods/build/Debug/libPods.a; sourceTree = ""; }; - C53C08C4F80849EB8B688C6C /* Pods.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.xcconfig; path = Pods/Pods.xcconfig; sourceTree = SOURCE_ROOT; }; + 38B0C70F164101F20044C73C /* libPods.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libPods.a; path = Pods/build/Release/libPods.a; sourceTree = ""; }; + 38C5D63F17A37E590005C2BD /* VJJSONPreferencesWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VJJSONPreferencesWindowController.h; sourceTree = ""; }; + 38C5D64017A37E590005C2BD /* VJJSONPreferencesWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VJJSONPreferencesWindowController.m; sourceTree = ""; }; + 38CAB03A1664F46B00181B0D /* version.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = version.xcconfig; sourceTree = ""; }; + 38DB21241701FD96006E08D3 /* VisualXML.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = VisualXML.entitlements; sourceTree = ""; }; + 38F2F7351B0F248B00372447 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; + 38F2F7371B0F248F00372447 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; + 38F2F7391B0F249300372447 /* libc++.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libc++.dylib"; path = "usr/lib/libc++.dylib"; sourceTree = SDKROOT; }; + 38FEC6721CBAB0CA00EE3273 /* Pods-VisualJSON.debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Pods-VisualJSON.debug.xcconfig"; path = "Pods/Target Support Files/Pods-VisualJSON/Pods-VisualJSON.debug.xcconfig"; sourceTree = ""; }; + 38FEC6731CBAB0CA00EE3273 /* Pods-VisualJSON.release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Pods-VisualJSON.release.xcconfig"; path = "Pods/Target Support Files/Pods-VisualJSON/Pods-VisualJSON.release.xcconfig"; sourceTree = ""; }; + 38FEC6741CBAB0D300EE3273 /* Pods-VisualXML.debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Pods-VisualXML.debug.xcconfig"; path = "Pods/Target Support Files/Pods-VisualXML/Pods-VisualXML.debug.xcconfig"; sourceTree = ""; }; + 38FEC6751CBAB0D300EE3273 /* Pods-VisualXML.release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Pods-VisualXML.release.xcconfig"; path = "Pods/Target Support Files/Pods-VisualXML/Pods-VisualXML.release.xcconfig"; sourceTree = ""; }; + 81989170E5964B0055B0C283 /* libPods-VisualXML.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-VisualXML.a"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -117,8 +143,11 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 38F2F73A1B0F249300372447 /* libc++.dylib in Frameworks */, + 38F2F7381B0F248F00372447 /* libz.dylib in Frameworks */, + 38F2F7361B0F248B00372447 /* SystemConfiguration.framework in Frameworks */, 382554BF157BE3550099CC24 /* Cocoa.framework in Frameworks */, - 38B0C710164101F20044C73C /* libPods.a in Frameworks */, + 3CD962861DD51BB73ADC6475 /* libPods-VisualJSON.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -138,6 +167,7 @@ buildActionMask = 2147483647; files = ( 3868F73D1629E8E700C31163 /* Cocoa.framework in Frameworks */, + 9BEEA0246D3ED685232F81E4 /* libPods-VisualXML.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -153,7 +183,8 @@ 382554EC157BE3550099CC24 /* VisualJSONImporter */, 382554BD157BE3550099CC24 /* Frameworks */, 382554BB157BE3550099CC24 /* Products */, - C53C08C4F80849EB8B688C6C /* Pods.xcconfig */, + 38CAB03A1664F46B00181B0D /* version.xcconfig */, + B2DDA047631B1454C2AA9280 /* Pods */, ); sourceTree = ""; }; @@ -170,6 +201,9 @@ 382554BD157BE3550099CC24 /* Frameworks */ = { isa = PBXGroup; children = ( + 38F2F7391B0F249300372447 /* libc++.dylib */, + 38F2F7371B0F248F00372447 /* libz.dylib */, + 38F2F7351B0F248B00372447 /* SystemConfiguration.framework */, 382554BE157BE3550099CC24 /* Cocoa.framework */, 382554E4157BE3550099CC24 /* CoreServices.framework */, 382554E6157BE3550099CC24 /* CoreFoundation.framework */, @@ -178,6 +212,8 @@ 3868F75C1629E8E800C31163 /* SenTestingKit.framework */, 382554C0157BE3550099CC24 /* Other Frameworks */, 38B0C70F164101F20044C73C /* libPods.a */, + 338543E687681EA734AABFE8 /* libPods-VisualJSON.a */, + 81989170E5964B0055B0C283 /* libPods-VisualXML.a */, ); name = Frameworks; sourceTree = ""; @@ -195,7 +231,10 @@ 382554C4157BE3550099CC24 /* VisualJSON */ = { isa = PBXGroup; children = ( + 382554D6157BE3550099CC24 /* MainMenu.xib */, 38255565157C94C50099CC24 /* JsonElement.h */, + 38C5D63F17A37E590005C2BD /* VJJSONPreferencesWindowController.h */, + 38C5D64017A37E590005C2BD /* VJJSONPreferencesWindowController.m */, 38255566157C94C50099CC24 /* JsonElement.m */, 3868F79C1629EDCF00C31163 /* VJJsonDocumentDelegate.h */, 3868F79D1629EDCF00C31163 /* VJJsonDocumentDelegate.m */, @@ -250,9 +289,10 @@ 38255503157BE3730099CC24 /* Entitlements.entitlements */, 382554D0157BE3550099CC24 /* VJDocument.h */, 382554D1157BE3550099CC24 /* VJDocument.m */, + 388DE108165480EE00139B31 /* VJDocumentHistory.h */, + 388DE109165480EE00139B31 /* VJDocumentHistory.m */, 38A1C036157E15240034EDC4 /* VJDocument.xcdatamodeld */, 382554D3157BE3550099CC24 /* VJDocument.xib */, - 382554D6157BE3550099CC24 /* MainMenu.xib */, ); name = Commons; path = VisualJSON; @@ -261,13 +301,35 @@ 3868F7931629E9A700C31163 /* VisualXML */ = { isa = PBXGroup; children = ( + 388720AB1745FD50006EFBAD /* MainMenu.xib */, + 38DB21241701FD96006E08D3 /* VisualXML.entitlements */, 3868F7941629EA0400C31163 /* VisualXML-Info.plist */, 3868F79F1629F12200C31163 /* VJXMLDocumentDelegate.h */, 3868F7A01629F12200C31163 /* VJXMLDocumentDelegate.m */, + 387B1EC116EBE3F50059722B /* Supporting Files */, ); path = VisualXML; sourceTree = ""; }; + 387B1EC116EBE3F50059722B /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 387B1EBF16EBE3EF0059722B /* Icon.iconset */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + B2DDA047631B1454C2AA9280 /* Pods */ = { + isa = PBXGroup; + children = ( + 38FEC6721CBAB0CA00EE3273 /* Pods-VisualJSON.debug.xcconfig */, + 38FEC6731CBAB0CA00EE3273 /* Pods-VisualJSON.release.xcconfig */, + 38FEC6741CBAB0D300EE3273 /* Pods-VisualXML.debug.xcconfig */, + 38FEC6751CBAB0D300EE3273 /* Pods-VisualXML.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -275,11 +337,15 @@ isa = PBXNativeTarget; buildConfigurationList = 38255500157BE3550099CC24 /* Build configuration list for PBXNativeTarget "VisualJSON" */; buildPhases = ( + C5DF35C53535DC0C196DFC34 /* Check Pods Manifest.lock */, + 38CAB03C1664F48D00181B0D /* Generate Version xcconfig */, 382554B6157BE3550099CC24 /* Sources */, 382554B7157BE3550099CC24 /* Frameworks */, 382554B8157BE3550099CC24 /* Resources */, 388227E415924E57000AB63D /* Copy Frameworks */, 346F49323B434C84B4E1D346 /* Copy Pods Resources */, + F5C847DDDE34CBCCC996AC49 /* Embed Pods Frameworks */, + 38F2F72E1B0F235000372447 /* Fabric */, ); buildRules = ( ); @@ -311,10 +377,15 @@ isa = PBXNativeTarget; buildConfigurationList = 3868F7881629E8E800C31163 /* Build configuration list for PBXNativeTarget "VisualXML" */; buildPhases = ( + 0AF0832871F68648A9BA93AC /* Check Pods Manifest.lock */, + 38FEC66F1CBAAFC100EE3273 /* Generate version xcconfig */, 3868F7371629E8E700C31163 /* Sources */, 3868F7381629E8E700C31163 /* Frameworks */, 3868F7391629E8E700C31163 /* Resources */, 3868F79A1629EACF00C31163 /* Copy Frameworks */, + AD5FDDD27CE6756A35191F37 /* Copy Pods Resources */, + 720EAD7A2E83FFBBA3F4F7F2 /* Embed Pods Frameworks */, + 38FEC6711CBAB03E00EE3273 /* Fabric */, ); buildRules = ( ); @@ -332,11 +403,16 @@ isa = PBXProject; attributes = { CLASSPREFIX = VJ; - LastUpgradeCheck = 0450; + LastUpgradeCheck = 0720; ORGANIZATIONNAME = youknowone.org; + TargetAttributes = { + 382554B9157BE3550099CC24 = { + DevelopmentTeam = 9384JEL3M9; + }; + }; }; buildConfigurationList = 382554B4157BE3550099CC24 /* Build configuration list for PBXProject "VisualJSON" */; - compatibilityVersion = "Xcode 3.2"; + compatibilityVersion = "Xcode 6.3"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( @@ -380,13 +456,29 @@ buildActionMask = 2147483647; files = ( 3868F7A21629F23D00C31163 /* VJDocument.xib in Resources */, - 3868F7A31629F23D00C31163 /* MainMenu.xib in Resources */, + 387B1EC016EBE3EF0059722B /* Icon.iconset in Resources */, + 388720AD1745FD50006EFBAD /* MainMenu.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 0AF0832871F68648A9BA93AC /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; 346F49323B434C84B4E1D346 /* Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -399,7 +491,123 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Pods-resources.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-VisualJSON/Pods-VisualJSON-resources.sh\"\n"; + }; + 38CAB03C1664F48D00181B0D /* Generate Version xcconfig */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Generate Version xcconfig"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"APP_VERSION=`xcodepkgtool/version.sh`\" > version.xcconfig"; + }; + 38F2F72E1B0F235000372447 /* Fabric */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Fabric; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "./Pods/Fabric/run 1b5d8443c3eabba778b0d97bff234647af846181 34aaecdde99dce1f9408a963ba788143536760a1c73ce21b46a14f888c5d54c1"; + }; + 38FEC66F1CBAAFC100EE3273 /* Generate version xcconfig */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Generate version xcconfig"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"APP_VERSION=`xcodepkgtool/version.sh`\" > version.xcconfig"; + }; + 38FEC6711CBAB03E00EE3273 /* Fabric */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Fabric; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "./Pods/Fabric/run 1b5d8443c3eabba778b0d97bff234647af846181 34aaecdde99dce1f9408a963ba788143536760a1c73ce21b46a14f888c5d54c1"; + }; + 720EAD7A2E83FFBBA3F4F7F2 /* Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-VisualXML/Pods-VisualXML-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + AD5FDDD27CE6756A35191F37 /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-VisualXML/Pods-VisualXML-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + C5DF35C53535DC0C196DFC34 /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + F5C847DDDE34CBCCC996AC49 /* Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-VisualJSON/Pods-VisualJSON-frameworks.sh\"\n"; + showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -416,6 +624,8 @@ 385E84F71597839F001562F6 /* AppDelegate.m in Sources */, 3868F79E1629EDCF00C31163 /* VJJsonDocumentDelegate.m in Sources */, 3868F7A4162B1AAC00C31163 /* VJXMLDocumentDelegate.m in Sources */, + 388DE10A165480EE00139B31 /* VJDocumentHistory.m in Sources */, + 38C5D64117A37E590005C2BD /* VJJSONPreferencesWindowController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -439,6 +649,9 @@ 3868F78E1629E8F900C31163 /* AppDelegate.m in Sources */, 3868F7981629EAB200C31163 /* VJDocument.xcdatamodeld in Sources */, 3868F7A11629F12200C31163 /* VJXMLDocumentDelegate.m in Sources */, + 387B1EBA16EBDEA80059722B /* VJJsonDocumentDelegate.m in Sources */, + 387B1EBB16EBDEB40059722B /* JsonElement.m in Sources */, + 387B1EBC16EBDEC30059722B /* VJDocumentHistory.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -485,15 +698,25 @@ name = InfoPlist.strings; sourceTree = ""; }; + 388720AB1745FD50006EFBAD /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 388720AC1745FD50006EFBAD /* en */, + ); + name = MainMenu.xib; + sourceTree = ""; + }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ 382554FB157BE3550099CC24 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 38CAB03A1664F46B00181B0D /* version.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_OBJC_EXCEPTIONS = YES; @@ -508,7 +731,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = FoundationExtension; - MACOSX_DEPLOYMENT_TARGET = 10.7; + MACOSX_DEPLOYMENT_TARGET = 10.9; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; }; @@ -516,9 +739,10 @@ }; 382554FC157BE3550099CC24 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 38CAB03A1664F46B00181B0D /* version.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CODE_SIGN_IDENTITY = "Mac Developer"; COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_C_LANGUAGE_STANDARD = gnu99; @@ -528,7 +752,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = FoundationExtension; - MACOSX_DEPLOYMENT_TARGET = 10.7; + MACOSX_DEPLOYMENT_TARGET = 10.9; SDKROOT = macosx; }; name = Release; @@ -543,6 +767,7 @@ INFOPLIST_FILE = "VisualJSONImporter/VisualJSONImporter-Info.plist"; INSTALL_PATH = "@executable_path/../Contents/Library/Spotlight"; LIBRARY_STYLE = BUNDLE; + PRODUCT_BUNDLE_IDENTIFIER = "org.youknowone.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; WRAPPER_EXTENSION = mdimporter; @@ -559,6 +784,7 @@ INFOPLIST_FILE = "VisualJSONImporter/VisualJSONImporter-Info.plist"; INSTALL_PATH = "@executable_path/../Contents/Library/Spotlight"; LIBRARY_STYLE = BUNDLE; + PRODUCT_BUNDLE_IDENTIFIER = "org.youknowone.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; WRAPPER_EXTENSION = mdimporter; @@ -567,18 +793,22 @@ }; 38255501157BE3550099CC24 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C53C08C4F80849EB8B688C6C /* Pods.xcconfig */; + baseConfigurationReference = 38FEC6721CBAB0CA00EE3273 /* Pods-VisualJSON.debug.xcconfig */; buildSettings = { - CODE_SIGN_ENTITLEMENTS = VisualJSON/Entitlements.entitlements; COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "VisualJSON/VisualJSON-Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = JSON; INFOPLIST_FILE = "VisualJSON/VisualJSON-Info.plist"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", - "\"$(SRCROOT)/Pods/build/Debug\"", + "\"$(SRCROOT)/Pods/build/$(CONFIGURATION)\"", ); - MACOSX_DEPLOYMENT_TARGET = 10.7; + PRODUCT_BUNDLE_IDENTIFIER = "org.3rddev.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = app; }; @@ -586,59 +816,79 @@ }; 38255502157BE3550099CC24 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C53C08C4F80849EB8B688C6C /* Pods.xcconfig */; + baseConfigurationReference = 38FEC6731CBAB0CA00EE3273 /* Pods-VisualJSON.release.xcconfig */; buildSettings = { CODE_SIGN_ENTITLEMENTS = VisualJSON/Entitlements.entitlements; - CODE_SIGN_IDENTITY = "3rd Party Mac Developer Application"; COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "VisualJSON/VisualJSON-Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = JSON; INFOPLIST_FILE = "VisualJSON/VisualJSON-Info.plist"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", - "\"$(SRCROOT)/Pods/build/Debug\"", + "\"$(SRCROOT)/Pods/build/$(CONFIGURATION)\"", ); - MACOSX_DEPLOYMENT_TARGET = 10.7; + PRODUCT_BUNDLE_IDENTIFIER = "org.3rddev.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; WRAPPER_EXTENSION = app; }; name = Release; }; 3868F7891629E8E800C31163 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 38FEC6741CBAB0D300EE3273 /* Pods-VisualXML.debug.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "VisualJSON/VisualJSON-Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = XML; INFOPLIST_FILE = "VisualXML/VisualXML-Info.plist"; - MACOSX_DEPLOYMENT_TARGET = 10.8; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(PODS_ROOT)/build/$(CONFIGURATION)\"", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.3rddev.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; WRAPPER_EXTENSION = app; }; name = Debug; }; 3868F78A1629E8E800C31163 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 38FEC6751CBAB0D300EE3273 /* Pods-VisualXML.release.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_ENTITLEMENTS = VisualXML/VisualXML.entitlements; COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "VisualJSON/VisualJSON-Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = XML; INFOPLIST_FILE = "VisualXML/VisualXML-Info.plist"; - MACOSX_DEPLOYMENT_TARGET = 10.8; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(PODS_ROOT)/build/$(CONFIGURATION)\"", + ); + PRODUCT_BUNDLE_IDENTIFIER = "org.3rddev.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; WRAPPER_EXTENSION = app; }; name = Release; diff --git a/VisualJSON.xcodeproj/xcshareddata/xcschemes/VisualJSON.xcscheme b/VisualJSON.xcodeproj/xcshareddata/xcschemes/VisualJSON.xcscheme new file mode 100644 index 0000000..9a20fb1 --- /dev/null +++ b/VisualJSON.xcodeproj/xcshareddata/xcschemes/VisualJSON.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualJSON.xcodeproj/xcshareddata/xcschemes/VisualXML.xcscheme b/VisualJSON.xcodeproj/xcshareddata/xcschemes/VisualXML.xcscheme new file mode 100644 index 0000000..978d073 --- /dev/null +++ b/VisualJSON.xcodeproj/xcshareddata/xcschemes/VisualXML.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualJSON/AppDelegate.h b/VisualJSON/AppDelegate.h index 4e112e1..525351e 100644 --- a/VisualJSON/AppDelegate.h +++ b/VisualJSON/AppDelegate.h @@ -8,7 +8,11 @@ #import -@interface AppDelegate : NSObject +@interface AppDelegate : NSObject + +@property(nonatomic,retain) IBOutlet NSWindowController *preferenceWindowController; + +- (IBAction)showPreference:(id)sender; - (IBAction)openWebsite:(id)sender; - (IBAction)openIssue:(id)sender; diff --git a/VisualJSON/AppDelegate.m b/VisualJSON/AppDelegate.m index 8d7b908..5d82e08 100644 --- a/VisualJSON/AppDelegate.m +++ b/VisualJSON/AppDelegate.m @@ -6,10 +6,21 @@ // Copyright (c) 2012 youknowone.org All rights reserved. // +#import +#import + #import "AppDelegate.h" @implementation AppDelegate +- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { + [Fabric with:@[CrashlyticsKit]]; +} + +- (void)showPreference:(id)sender { + [self.preferenceWindowController showWindow:sender]; +} + - (void)openWebsite:(id)sender { NSURL *URL = @"http://youknowone.github.com/VisualJSON".URL; [[NSWorkspace sharedWorkspace] openURL:URL]; diff --git a/VisualJSON/Entitlements.entitlements b/VisualJSON/Entitlements.entitlements index a046386..637aa6f 100644 --- a/VisualJSON/Entitlements.entitlements +++ b/VisualJSON/Entitlements.entitlements @@ -8,5 +8,7 @@ com.apple.security.network.client + com.apple.security.print + diff --git a/VisualJSON/Icon.iconset/json.png b/VisualJSON/Icon.iconset/json.png new file mode 100644 index 0000000..2445316 Binary files /dev/null and b/VisualJSON/Icon.iconset/json.png differ diff --git a/VisualJSON/Icon.iconset/json2.png b/VisualJSON/Icon.iconset/json2.png new file mode 100644 index 0000000..cde4a5a Binary files /dev/null and b/VisualJSON/Icon.iconset/json2.png differ diff --git a/VisualJSON/JsonElement.m b/VisualJSON/JsonElement.m index 87915fc..61a8ba8 100644 --- a/VisualJSON/JsonElement.m +++ b/VisualJSON/JsonElement.m @@ -29,6 +29,24 @@ - (NSString *)outlineDictionaryItems; @end + +@interface NSNumber (JsonElement) + +- (NSString *)jsonRepresentation; + +@end + +@implementation NSNumber (JsonElement) + +- (NSString *)jsonRepresentation { + if ([self.className isEqualToString:@"__NSCFBoolean"]) { + return [self boolValue] ? @"true" : @"false"; + } + return [self typeFormedDescription]; +} + +@end + @implementation JsonElement @synthesize parent=_parent; @synthesize key=_key, keys=_keys, object=_object, children=_children; @@ -104,13 +122,36 @@ - (id)childAtIndex:(NSInteger)index { } - (NSString *)outlineDescription { - if (self.keys == nil) return [self.object description]; - if ([self.object isKindOfClass:[NSArray class]]) { - return [NSString stringWithFormat:@"Array(%lu): [%@]", [self.keys count], [self outlineArrayItems]]; - } else if ([self.object isKindOfClass:[NSDictionary class]]) { - return [NSString stringWithFormat:@"Dict(%lu): {%@}", [self.keys count], [self outlineDictionaryItems]]; + NSString *result = nil; + if (self.keys == nil) { + if ([self.object isKindOfClass:[NSNumber class]]) { + result = [self.object jsonRepresentation]; + } else if ([self.object isKindOfClass:[NSNull class]]) { + result = @"null"; + } + } else { + NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; + NSNumber *value = [userDefaults objectForKey:@"ShowBriefDescription"]; + BOOL breif = value.boolValue; + if ([self.object isKindOfClass:[NSArray class]]) { + if (breif) { + result = [NSString stringWithFormat:@"Array(%lu): [%@]", [self.keys count], [self outlineArrayItems]]; + } else { + result = [NSString stringWithFormat:@"Array(%lu)", [self.keys count]]; + } + } else if ([self.object isKindOfClass:[NSDictionary class]]) { + if (breif) { + result = [NSString stringWithFormat:@"Dict(%lu): {%@}", [self.keys count], [self outlineDictionaryItems]]; + } else { + result = [NSString stringWithFormat:@"Dict(%lu)", [self.keys count]]; + } + } + } + if (result == nil) { + result = [self.object description]; } - return [self.object description]; + result = [result stringByReplacingOccurrencesOfString:@"\n" withString:@"⏎ "]; + return result; } - (NSString *)description { @@ -130,7 +171,8 @@ - (NSString *)descriptionWithDepth:(NSInteger)depth { [desc appendString:@"[\n"]; for (NSInteger i = 0; i < self.keys.count; i++) { [desc appendString:indent2]; - [desc appendString:[[self childAtIndex:i] descriptionWithDepth:depth + 1]]; + NSString *append = [[self childAtIndex:i] descriptionWithDepth:depth + 1]; + [desc appendString:append ? append : @"null"]; [desc appendString:@",\n"]; } NSInteger deleteCount = 1 + (self.keys.count != 0); @@ -146,7 +188,8 @@ - (NSString *)descriptionWithDepth:(NSInteger)depth { [desc appendString:desc2]; [desc appendString:@",\n"]; } - [desc deleteCharactersInRange:NSMakeRange(desc.length-2, 2)]; + NSInteger deleteCount = 1 + (self.keys.count != 0); + [desc deleteCharactersInRange:NSMakeRange(desc.length - deleteCount, deleteCount)]; [desc appendString:@"\n"]; [desc appendString:indent]; [desc appendString:@"}"]; @@ -154,6 +197,10 @@ - (NSString *)descriptionWithDepth:(NSInteger)depth { [desc appendString:@"\""]; [desc appendString:[self.object stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""]]; [desc appendString:@"\""]; + } else if ([self.object isKindOfClass:[NSNumber class]]) { + [desc appendString:[self.object jsonRepresentation]]; + } else if ([self.object isKindOfClass:[NSNull class]]) { + [desc appendString:@"null"]; } else { [desc appendString:[self.object description]]; } @@ -171,6 +218,8 @@ - (NSString *)outlineItemDescription:(id)item { return [NSString stringWithFormat:@"Dict(%lu)", [[item allKeys] count]]; } else if ([item isKindOfClass:[NSString class]]) { return [NSString stringWithFormat:@"\"%@\"", [item stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""]]; + } else if ([item isKindOfClass:[NSNumber class]]) { + return [item jsonRepresentation]; } else { return [item description]; } diff --git a/VisualJSON/VJDocument.h b/VisualJSON/VJDocument.h index b83d741..ec53906 100644 --- a/VisualJSON/VJDocument.h +++ b/VisualJSON/VJDocument.h @@ -27,7 +27,8 @@ @end -@interface VJDocument : NSPersistentDocument { + +@interface VJDocument : NSPersistentDocument { id _delegate; NSString *_header; @@ -37,11 +38,11 @@ NSMutableArray *_headerItems; NSMutableArray *_querydataItems; - NSTextField *_addressTextField; + NSComboBox *_addressComboBox; NSMatrix *_methodMatrix; NSTextField *_methodTextField; NSTextField *_querydataTextField; - NSTextField *_contentTextField; + NSTextView *_contentTextView; NSOutlineView *_dataOutlineView; NSTextView *_dataTextView; @@ -74,11 +75,11 @@ @property(readonly) NSMutableArray *headerItems; @property(readonly) NSMutableArray *querydataItems; -@property(assign) IBOutlet NSTextField *addressTextField; +@property(assign) IBOutlet NSComboBox *addressComboBox; @property(assign) IBOutlet NSMatrix *methodMatrix; @property(assign) IBOutlet NSTextField *methodTextField; @property(assign) IBOutlet NSTextField *querydataTextField; -@property(assign) IBOutlet NSTextField *contentTextField; +@property(assign) IBOutlet NSTextView *contentTextView; @property(assign) IBOutlet NSTextField *headerTextField; @property(assign) IBOutlet NSOutlineView *dataOutlineView; @property(assign) IBOutlet NSTextView *dataTextView; @@ -95,11 +96,10 @@ - (IBAction)setDefaultHeader:(id)sender; -- (IBAction)addressTextFieldChanged:(id)sender; +- (IBAction)addressComboBoxChanged:(id)sender; - (IBAction)methodMatrixChanged:(id)sender; - (IBAction)methodTextFieldChanged:(id)sender; - (IBAction)querydataTextFieldChanged:(id)sender; -- (IBAction)contentTextFieldChanged:(id)sender; - (IBAction)headerTextFieldChanged:(id)sender; - (IBAction)refresh:(id)sender; diff --git a/VisualJSON/VJDocument.m b/VisualJSON/VJDocument.m index 94eb47e..c6bf298 100644 --- a/VisualJSON/VJDocument.m +++ b/VisualJSON/VJDocument.m @@ -12,17 +12,22 @@ #import "VJJsonDocumentDelegate.h" #import "VJXMLDocumentDelegate.h" +#import "VJDocumentHistory.h" + +#import + @interface VJDocument() - (BOOL)setMetadataForStoreAtURL:(NSURL *)URL; @end + @implementation VJDocument @synthesize delegate=_delegate; @synthesize headerItems=_headerItems, querydataItems=_querydataItems; -@synthesize addressTextField=_addressTextField, methodMatrix=_methodMatrix, methodTextField=_methodTextField, querydataTextField=_querydataTextField, contentTextField=_contentTextField; +@synthesize addressComboBox=_addressComboBox, methodMatrix=_methodMatrix, methodTextField=_methodTextField, querydataTextField=_querydataTextField, contentTextView=_contentTextView; @synthesize dataOutlineView=_dataOutlineView, dataTextView=_dataTextView; @synthesize drawer=_drawer; @synthesize querydataTableView=_querydataTableView, querydataTextView=_querydataTextView, headerTableView=_headerTableView, headerTextField=_headerTextField; @@ -30,7 +35,13 @@ @implementation VJDocument @synthesize data=_data; - (NSString *)defaultHeader { +#if defined(JSON) return @"Accept:application/json#!;#!;Content-Type:application/json"; +#elif defined(XML) + return @"Accept:text/xml#!;#!;Content-Type:text/xml"; +#else + #error define JSON or XML +#endif } - (void)awakeFromNib { @@ -42,12 +53,12 @@ - (void)awakeFromNib { } - (NSString *)address { - return self->_addressTextField.stringValue; + return self->_addressComboBox.stringValue; } - (void)setAddress:(NSString *)address { if (address == nil) address = @""; - self->_addressTextField.stringValue = address; + self->_addressComboBox.stringValue = address; if ([self.request.address isEqualToString:address]) return; self.request.address = address; @@ -139,12 +150,12 @@ - (void)setQuerydata:(NSString *)data { } - (NSString *)content { - return self->_contentTextField.stringValue; + return self->_contentTextView.string; } - (void)setContent:(NSString *)content { if (content == nil) content = @""; - self->_contentTextField.stringValue = content; + self->_contentTextView.string = content; if ([self.request.content isEqualToString:content]) return; self.request.content = content; @@ -165,7 +176,7 @@ - (void)dealloc { [super dealloc]; } -- (void)addressTextFieldChanged:(id)sender { +- (void)addressComboBoxChanged:(id)sender { self.address = [sender stringValue]; [self refresh:sender]; } @@ -186,11 +197,6 @@ - (void)querydataTextFieldChanged:(id)sender { [self refresh:sender]; } -- (void)contentTextFieldChanged:(id)sender { - self.content = [sender stringValue]; - [self visualize:sender]; -} - - (void)headerTextFieldChanged:(id)sender { self.header = [sender stringValue]; } @@ -353,7 +359,7 @@ - (void)refreshBackground { self->tempContent = nil; [x release]; } - + NSString *address = self.address; if (self.querydata.length && (self.method.length == 0 || [self.method isEqualToString:@"GET"])) { @@ -371,18 +377,49 @@ - (void)refreshBackground { if (self.method && ![self.method isEqualToString:@"GET"]) { [req setHTTPMethod:self.method]; + [req setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-type"]; [req setHTTPBody:self.querydata.dataUsingUTF8Encoding]; } - // set content field with data - NSError *error = nil; - NSData *data = [NSData dataWithContentsOfURLRequest:req error:&error]; - if (data != nil && error == nil) { - tempContent = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; - } else { - tempContent = [error retain]; - } - [self performSelectorOnMainThread:@selector(refreshFinished) withObject:nil waitUntilDone:NO]; + AFURLConnectionOperation *operation = [[AFURLConnectionOperation alloc] initWithRequest:req]; + + [operation setAuthenticationAgainstProtectionSpaceBlock:^BOOL(NSURLConnection *connection, NSURLProtectionSpace *protectionSpace) { + NSNumber *value = [[NSUserDefaults standardUserDefaults] objectForKey:@"ShouldAllowInvalidSSLCertificates"]; + BOOL allowInvalid = value.boolValue; + + return allowInvalid; + }]; + + [operation setAuthenticationChallengeBlock:^(NSURLConnection *connection, NSURLAuthenticationChallenge *challenge) { + NSNumber *value = [[NSUserDefaults standardUserDefaults] objectForKey:@"ShouldAllowInvalidSSLCertificates"]; + BOOL allowInvalid = value.boolValue; + + if (allowInvalid) { + [challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge]; + } else { + [challenge.sender cancelAuthenticationChallenge:challenge]; + } + }]; + + [operation setCompletionBlock:^{ + // set content field with data + NSError *error = operation.error; + NSData *data = operation.responseData; + + if (data != nil && error == nil) { + tempContent = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; + if (tempContent == nil) { + tempContent = [error retain]; + } + } else { + tempContent = [error retain]; + } + + [self performSelectorOnMainThread:@selector(refreshFinished) withObject:nil waitUntilDone:NO]; + }]; + + [operation start]; + } } @@ -398,6 +435,10 @@ - (void)refreshFinished { tempContent = nil; [x release]; [self.circularProgressIndicator stopAnimation:nil]; + + [[VJDocumentHistory defaultHistory] addHistory:self.address]; + [self.addressComboBox reloadData]; + [[VJDocumentHistory defaultHistory] performSelectorInBackground:@selector(synchronize) withObject:NULL]; } - (void)visualize:(id)sender { @@ -458,6 +499,23 @@ - (NSString *)title { return self.address; } +#pragma mark - combobox delegate + +- (NSInteger)numberOfItemsInComboBox:(NSComboBox *)aComboBox { + return [[VJDocumentHistory defaultHistory] count]; +} + +- (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)index { + return [[VJDocumentHistory defaultHistory] itemAtIndex:index].address; +} + +#pragma mark - text view changed + +- (void)textDidChange:(NSNotification *)notification { + self.content = self.contentTextView.string; + [self visualize:self.contentTextView]; +} + #pragma mark - outline delegate for 'tree' view - (NSInteger)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item { diff --git a/VisualJSON/VJDocumentHistory.h b/VisualJSON/VJDocumentHistory.h new file mode 100644 index 0000000..2da91d2 --- /dev/null +++ b/VisualJSON/VJDocumentHistory.h @@ -0,0 +1,40 @@ +// +// VJDocumentHistory.h +// VisualJSON +// +// Created by Jeong YunWon on 12. 11. 15.. +// Copyright (c) 2012 youknowone.org. All rights reserved. +// + +#import + + +@class VJDocumentHistoryItem; + +@interface VJDocumentHistory : NSObject { + NSMutableArray *_history; +} + +- (BOOL)synchronize; +- (NSUInteger)count; +- (VJDocumentHistoryItem *)itemAtIndex:(NSInteger)index; +- (void)addHistory:(NSString *)value; + ++ (VJDocumentHistory *)defaultHistory; + +@end + + +@interface VJDocumentHistoryItem: NSObject { + NSString *_address; + NSMutableArray *_dates; +} + +@property(retain) NSString *address; +@property(retain) NSMutableArray *dates; + +- (id)initWithDataDictionary:(NSDictionary *)dictionary; ++ (id)historyWithDataDictionary:(NSDictionary *)dictionary; +- (NSDictionary *)dataDictionary; + +@end diff --git a/VisualJSON/VJDocumentHistory.m b/VisualJSON/VJDocumentHistory.m new file mode 100644 index 0000000..1acdb66 --- /dev/null +++ b/VisualJSON/VJDocumentHistory.m @@ -0,0 +1,100 @@ +// +// VJDocumentHistory.m +// VisualJSON +// +// Created by Jeong YunWon on 12. 11. 15.. +// Copyright (c) 2012 youknowone.org. All rights reserved. +// + +#import "VJDocumentHistory.h" + +@implementation VJDocumentHistory + +VJDocumentHistory *VJDocumentHistoryDefaultHistory = nil; + ++ (void)initialize { + if (self == [VJDocumentHistory class]) { + VJDocumentHistoryDefaultHistory = [[VJDocumentHistory alloc] init]; + } +} + +- (id)init { + self = [super init]; + if (self != nil) { + self->_history = [[[NSUserDefaults standardUserDefaults] objectForKey:@"history"] mutableCopy]; + if (self->_history == nil) { + self->_history = [[NSMutableArray alloc] init]; + } + } + return self; +} + +- (void)dealloc { + [self->_history release]; + [super dealloc]; +} + +- (BOOL)synchronize { + [[NSUserDefaults standardUserDefaults] setObject:self->_history forKey:@"history"]; + return [[NSUserDefaults standardUserDefaults] synchronize]; +} + +- (NSUInteger)count { + return self->_history.count; +} + +- (VJDocumentHistoryItem *)itemAtIndex:(NSInteger)index { + return [VJDocumentHistoryItem historyWithDataDictionary:[self->_history objectAtIndex:index]]; +} + +- (void)addHistory:(NSString *)value { + NSUInteger count = self.count; + NSInteger index = NSNotFound; + for (NSInteger i = 0; i < count; i++) { + if ([[[self->_history objectAtIndex:i] objectForKey:@"address"] isEqualToString:value]) { + index = i; + break; + } + } + NSMutableDictionary *itemData; + if (index == NSNotFound) { + itemData = [NSMutableDictionary dictionary]; + [itemData setObject:value forKey:@"address"]; + [itemData setObject:[NSMutableArray arrayWithObject:[NSDate date]] forKey:@"dates"]; + [self->_history insertObject:itemData atIndex:0]; + } else { + itemData = [[self->_history objectAtIndex:index] retain]; + [self->_history removeObjectAtIndex:index]; + [self->_history insertObject:itemData atIndex:0]; + [itemData release]; + } +} + ++ (VJDocumentHistory *)defaultHistory { + return VJDocumentHistoryDefaultHistory; +} + +@end + + +@implementation VJDocumentHistoryItem +@synthesize address=_address, dates=_dates; + +- (id)initWithDataDictionary:(NSDictionary *)dictionary { + self = [super init]; + if (self != nil) { + self.address = [dictionary objectForKey:@"address"]; + self.dates = [dictionary objectForKey:@"dates"]; + } + return self; +} + ++ (id)historyWithDataDictionary:(NSDictionary *)dictionary { + return [[[self alloc] initWithDataDictionary:dictionary] autorelease]; +} + +- (NSDictionary *)dataDictionary { + return [NSMutableDictionary dictionaryWithObjectsAndKeys:self.address, @"address", self.dates, @"dates", nil]; +} + +@end diff --git a/VisualJSON/VJJSONPreferencesWindowController.h b/VisualJSON/VJJSONPreferencesWindowController.h new file mode 100644 index 0000000..6bb83b6 --- /dev/null +++ b/VisualJSON/VJJSONPreferencesWindowController.h @@ -0,0 +1,21 @@ +// +// VJJSONPreferencesWindowController.h +// VisualJSON +// +// Created by Jeong YunWon on 13. 7. 27.. +// Copyright (c) 2013 youknowone.org. All rights reserved. +// + +#import + +@interface VJJSONPreferencesWindowController : NSWindowController + +@property(nonatomic,strong) IBOutlet NSButton *showBriefCheckBox; + +@property(nonatomic,strong) IBOutlet NSButton *allowInvalidSSLCheckBox; + +- (IBAction)showBriefChanged:(id)sender; + +- (IBAction)setAllowsInvalidSSLCertificates:(id)sender; + +@end diff --git a/VisualJSON/VJJSONPreferencesWindowController.m b/VisualJSON/VJJSONPreferencesWindowController.m new file mode 100644 index 0000000..110613e --- /dev/null +++ b/VisualJSON/VJJSONPreferencesWindowController.m @@ -0,0 +1,50 @@ +// +// VJJSONPreferencesWindowController.m +// VisualJSON +// +// Created by Jeong YunWon on 13. 7. 27.. +// Copyright (c) 2013 youknowone.org. All rights reserved. +// + +#import "VJJSONPreferencesWindowController.h" + +@interface VJJSONPreferencesWindowController () + +@end + +@implementation VJJSONPreferencesWindowController + +- (id)initWithWindow:(NSWindow *)window +{ + self = [super initWithWindow:window]; + if (self) { + // Initialization code here. + } + + return self; +} + +- (void)awakeFromNib { + [super awakeFromNib]; + + NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; + NSNumber *value = [userDefaults objectForKey:@"ShowBriefDescription"]; + self.showBriefCheckBox.integerValue = value ? value.integerValue : 1; + value = [userDefaults objectForKey:@"ShouldAllowInvalidSSLCertificates"]; + self.allowInvalidSSLCheckBox.integerValue = value ? value.integerValue : 1; + // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file. +} + +- (void)showBriefChanged:(NSButton *)sender { + NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; + [userDefaults setObject:@(sender.integerValue) forKey:@"ShowBriefDescription"]; + [userDefaults synchronize]; +} + +- (void)setAllowsInvalidSSLCertificates:(NSButton *)sender { + NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; + [userDefaults setObject:@(sender.integerValue) forKey:@"ShouldAllowInvalidSSLCertificates"]; + [userDefaults synchronize]; +} + +@end diff --git a/VisualJSON/VJJsonDocumentDelegate.m b/VisualJSON/VJJsonDocumentDelegate.m index 80b895a..c3d39e7 100644 --- a/VisualJSON/VJJsonDocumentDelegate.m +++ b/VisualJSON/VJJsonDocumentDelegate.m @@ -33,7 +33,9 @@ - (BOOL)document:(VJDocument *)document dataIsValid:(NSString *)rawData { - (id)document:(VJDocument *)document structuredDataFromRawDataString:(NSString *)rawData { NSError *error = nil; id obj = [NSJSONSerialization JSONObjectWithData:[rawData dataUsingUTF8Encoding] options:NSJSONReadingAllowFragments error:&error]; - // TODO: do something with error + if (error != nil) { + obj = @{@"class": error.className, @"code": [NSNumber numberWithInteger:error.code], @"domain": error.domain, @"reason":error.localizedFailureReason}; + } return [JsonElement elementWithObject:obj]; } diff --git a/VisualJSON/VisualJSON-Info.plist b/VisualJSON/VisualJSON-Info.plist index bf125ca..47bd226 100644 --- a/VisualJSON/VisualJSON-Info.plist +++ b/VisualJSON/VisualJSON-Info.plist @@ -32,7 +32,7 @@ CFBundleIconFile Icon.icns CFBundleIdentifier - org.3rddev.${PRODUCT_NAME:rfc1034identifier} + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName @@ -40,17 +40,31 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.2.2 + ${APP_VERSION} CFBundleSignature ???? CFBundleVersion - 1.2.2 + ${APP_VERSION} + Fabric + + APIKey + 1b5d8443c3eabba778b0d97bff234647af846181 + Kits + + + KitInfo + + KitName + Crashlytics + + + LSApplicationCategoryType public.app-category.developer-tools LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} NSHumanReadableCopyright - Copyright © 2012 3rddev.org All rights reserved. + Copyright © 2012-2013 Jeong YunWon All rights reserved. NSMainNibFile MainMenu NSPrincipalClass diff --git a/VisualJSON/VisualJSON-Prefix.pch b/VisualJSON/VisualJSON-Prefix.pch index 0d33218..c4d57d8 100644 --- a/VisualJSON/VisualJSON-Prefix.pch +++ b/VisualJSON/VisualJSON-Prefix.pch @@ -2,10 +2,9 @@ // Prefix header for all source files of the 'VisualJSON' target in the 'VisualJSON' project // -#include "debug.h" +#include #ifdef __OBJC__ - #import #import - #import + #import #endif \ No newline at end of file diff --git a/VisualJSON/VisualJSON.pkg b/VisualJSON/VisualJSON.pkg deleted file mode 100644 index 3a7754e..0000000 Binary files a/VisualJSON/VisualJSON.pkg and /dev/null differ diff --git a/VisualJSON/en.lproj/Credits.rtf b/VisualJSON/en.lproj/Credits.rtf index 46576ef..1707582 100644 --- a/VisualJSON/en.lproj/Credits.rtf +++ b/VisualJSON/en.lproj/Credits.rtf @@ -1,29 +1,24 @@ -{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;} +{\rtf1\ansi\ansicpg949\cocoartf1187\cocoasubrtf390 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} -\paperw9840\paperh8400 -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural +\paperw11900\paperh16840\vieww9600\viewh8400\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\f0\b\fs24 \cf0 Engineering: -\b0 \ - Some people\ -\ +\f0\b\fs24 \cf0 Project Page:\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\b Human Interface Design: -\b0 \ - Some other people\ +\b0 \cf0 http://youknowone.github.com/VisualJSON/ +\b \ \ - -\b Testing: +Main Developer: \b0 \ - Hopefully not nobody\ + Jeong YunWon \ \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\b Documentation: -\b0 \ - Whoever\ -\ +\b \cf0 Other Authors:\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\b With special thanks to: -\b0 \ - Mom\ -} +\b0 \cf0 Hector Zarate \ + Tyler Casson \ +} \ No newline at end of file diff --git a/VisualJSON/en.lproj/MainMenu.xib b/VisualJSON/en.lproj/MainMenu.xib index e6a4c85..9ed44ec 100644 --- a/VisualJSON/en.lproj/MainMenu.xib +++ b/VisualJSON/en.lproj/MainMenu.xib @@ -2,18 +2,23 @@ 1070 - 12B19 - 2549 - 1187 - 624.00 + 14D136 + 7702 + 1347.57 + 758.70 com.apple.InterfaceBuilder.CocoaPlugin - 2549 + 7702 + IBNSLayoutConstraint + NSButton + NSButtonCell NSCustomObject NSMenu NSMenuItem + NSView + NSWindowTemplate com.apple.InterfaceBuilder.CocoaPlugin @@ -50,6 +55,7 @@ NSMenuMixedState submenuAction: + VisualJSON @@ -101,6 +107,7 @@ submenuAction: + Services @@ -178,6 +185,7 @@ submenuAction: + File @@ -208,6 +216,7 @@ submenuAction: + Open Recent @@ -312,6 +321,7 @@ submenuAction: + Edit @@ -418,6 +428,7 @@ submenuAction: + Find @@ -492,6 +503,7 @@ submenuAction: + Spelling and Grammar @@ -561,6 +573,7 @@ submenuAction: + Substitutions @@ -639,6 +652,7 @@ submenuAction: + Transformations @@ -678,6 +692,7 @@ submenuAction: + Speech @@ -713,6 +728,7 @@ submenuAction: + Format @@ -724,6 +740,7 @@ submenuAction: + Font @@ -813,6 +830,7 @@ submenuAction: + Kern @@ -859,6 +877,7 @@ submenuAction: + Ligature @@ -897,6 +916,7 @@ submenuAction: + Baseline @@ -1002,6 +1022,7 @@ submenuAction: + Text @@ -1058,6 +1079,7 @@ submenuAction: + Writing Direction @@ -1191,6 +1213,7 @@ submenuAction: + View @@ -1224,6 +1247,7 @@ submenuAction: + Window @@ -1277,6 +1301,7 @@ submenuAction: + Help @@ -1334,9 +1359,94 @@ AppDelegate + + VJJSONPreferencesWindowController + + + 15 + 2 + {{163, 199}, {373, 90}} + 1685586944 + Window + NSWindow + + + + + 256 + + + + 268 + {{18, 54}, {337, 18}} + + + _NS:9 + YES + + -2080374784 + 268435456 + Show brief of Array/Dictionary in tree view + + YES + 13 + 1044 + + _NS:9 + + 1211912448 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + NO + + + + 268 + {{18, 18}, {337, 18}} + + _NS:9 + YES + + 67108864 + 268435456 + Allow self-signed or invalid SSL certificates + + _NS:9 + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {373, 90} + + _NS:20 + + {{0, 0}, {1920, 1177}} + {10000000000000, 10000000000000} + NO + - + terminate: @@ -1345,6 +1455,14 @@ 448 + + + delegate + + + + 595 + orderFrontStandardAboutPanel: @@ -2041,6 +2159,62 @@ 569 + + + preferenceWindowController + + + + 580 + + + + showPreference: + + + + 581 + + + + window + + + + 579 + + + + showBriefCheckBox + + + + 582 + + + + showBriefChanged: + + + + 583 + + + + allowInvalidSSLCheckBox + + + + 593 + + + + setAllowsInvalidSSLCertificates: + + + + 594 + @@ -3057,6 +3231,193 @@ + + 570 + + + + + + + + 571 + + + + + + 4 + 0 + + 4 + 1 + 1 + + 20 + + 1000 + + 0 + 29 + 3 + NO + + + + 5 + 0 + + 5 + 1 + 1 + + 20 + + 1000 + + 0 + 29 + 3 + NO + + + + 6 + 0 + + 6 + 1 + 1 + + 20 + + 1000 + + 0 + 29 + 3 + NO + + + + 6 + 0 + + 6 + 1 + 1 + + 20 + + 1000 + + 0 + 29 + 3 + NO + + + + 5 + 0 + + 5 + 1 + 1 + + 20 + + 1000 + + 0 + 29 + 3 + NO + + + + 3 + 0 + + 3 + 1 + 1 + + 20 + + 1000 + + 0 + 29 + 3 + NO + + + + + + + 572 + + + + + + + + 573 + + + + + 574 + + + + + 575 + + + + + 576 + + + + + 578 + + + + + 584 + + + + + + SSL Check Box + + + 585 + + + + + 587 + + + + + 588 + + + + + 592 + + + @@ -3203,7 +3564,31 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3220,47 +3605,10 @@ - 569 + 595 - - AppDelegate - NSObject - - id - id - id - id - id - - - - openHelp: - id - - - openIRC: - id - - - openIssue: - id - - - openTip: - id - - - openWebsite: - id - - - - IBProjectSource - ./Classes/AppDelegate.h - - FirstResponder @@ -3279,186 +3627,21 @@ - - NSDocument - - id - id - id - id - id - id - - - - printDocument: - id - - - revertDocumentToSaved: - id - - - runPageLayout: - id - - - saveDocument: - id - - - saveDocumentAs: - id - - - saveDocumentTo: - id - - - - IBProjectSource - ./Classes/NSDocument.h - - - - VJDocument - NSPersistentDocument - - id - id - id - id - id - id - id - id - id - id - - - - addressTextFieldChanged: - id - - - contentTextFieldChanged: - id - - - headerTextFieldChanged: - id - - - methodMatrixChanged: - id - - - methodTextFieldChanged: - id - - - querydataTextFieldChanged: - id - - - refresh: - id - - - setDefaultHeader: - id - - - toggleDrawer: - id - - - visualize: - id - - - - NSTextField - NSTextField - NSDrawer - NSTableView - NSTextField - NSOutlineView - NSTextView - NSMatrix - NSTextField - NSTableView - NSTextField - NSTextView - - - - addressTextField - NSTextField - - - contentTextField - NSTextField - - - drawer - NSDrawer - - - headerTableView - NSTableView - - - headerTextField - NSTextField - - - jsonOutlineView - NSOutlineView - - - jsonTextView - NSTextView - - - methodMatrix - NSMatrix - - - methodTextField - NSTextField - - - querydataTableView - NSTableView - - - querydataTextField - NSTextField - - - querydataTextView - NSTextView - - - - IBProjectSource - ./Classes/VJDocument.h - - 0 IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - + NO + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + YES 3 - {11, 11} - {10, 3} + {12, 12} + {10, 2} + {15, 15} YES diff --git a/VisualJSON/en.lproj/VJDocument.xib b/VisualJSON/en.lproj/VJDocument.xib index 507b54f..04e1dcc 100644 --- a/VisualJSON/en.lproj/VJDocument.xib +++ b/VisualJSON/en.lproj/VJDocument.xib @@ -2,18 +2,20 @@ 1070 - 11G63 - 2840 - 1138.51 - 569.00 + 14D136 + 7702 + 1347.57 + 758.70 com.apple.InterfaceBuilder.CocoaPlugin - 2840 + 7702 NSBox NSButton NSButtonCell + NSComboBox + NSComboBoxCell NSCustomObject NSCustomView NSDrawer @@ -262,7 +264,7 @@ {32, 5} - {32, 32} + {32, 10000} YES YES -1 @@ -328,8 +330,7 @@ {{22, 133}, {60, 17}} - - 2 + _NS:3944 YES @@ -337,7 +338,7 @@ 272630784 Address: - LucidaGrande + YES 13 1044 @@ -362,25 +363,25 @@ + NO + 1 - + 266 - {{87, 130}, {394, 22}} + {{87, 127}, {397, 26}} - - 2 - _NS:903 + + _NS:9 YES - - -1804599231 + + 342884416 272630784 - - _NS:903 - + _NS:9 + YES 6 @@ -391,21 +392,100 @@ MQA - - 6 - System - textColor - + + 5 + YES + YES + YES + + + + + 274 + {13, 0} + + + _NS:24 + YES + NO + YES + tableViewAction: + + + + 10 + 10 + 1000 + + 75497472 + 0 + + + YES + 12 + 787 + + + 3 + MC4zMzMzMzI5ODU2AA + + + + + 338690112 + 268436480 + + + YES + + 6 + System + controlBackgroundColor + + + + + 3 + YES + + + + 3 + 2 + + + 6 + System + gridColor + + 3 + MC41AA + + + 19 + tableViewAction: + -765427712 + + + 1 + 15 + 0 + YES + 0 + 1 + NO + 1 + 265 + {{483, 119}, {39, 38}} - 2 _NS:687 YES @@ -423,6 +503,7 @@ 200 25 + NO @@ -431,7 +512,6 @@ - 2 _NS:3944 YES @@ -444,6 +524,8 @@ + NO + 1 @@ -452,9 +534,9 @@ - 2 _NS:9 YES + NO 1 4 @@ -555,10 +637,63 @@ AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB -AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS -AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA +AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAxIAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAMSExp +bm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAAAAAA +AAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAA +AhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAA +A0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAA +BDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3 +bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAA +AAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA +b6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAA +ABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYx +OTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2 +LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRl +c2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAA +AAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABM +CVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1 +cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3 +AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQET +ARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHp +AfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAML +AxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+ +BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZI +BlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghu +CIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3Arz +CwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3e +DfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExEx +EU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTw +FRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkg +GUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3D +HeweFh5AHmoelB6+HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLd +IwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhx +KKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6C +Lrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUT +NU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76Dwn +PGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPA +RANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkvi +TCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSP +VNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3J +XhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeT +Z+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHw +cktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzh +fUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhp +iM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSK +lPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFH +obaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6h +rxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8Ibyb +vRW9j74KvoS+/796v/XAcMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2 +y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 +2vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb +6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn ++3f8B/yY/Sn9uv5L/tz/bf//A @@ -584,7 +719,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - 2 _NS:3944 YES @@ -597,6 +731,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + NO + 1 @@ -605,7 +741,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - 2 _NS:903 YES @@ -618,8 +753,15 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA YES - + + 6 + System + textColor + + + NO + 1 @@ -627,8 +769,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA {{22, 55}, {60, 17}} - - 2 + _NS:3944 YES @@ -641,41 +782,368 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + NO + 1 - + 274 - {{87, 14}, {394, 60}} + + + + 2322 + + + + 2322 + + Apple HTML pasteboard type + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + Apple URL pasteboard type + CorePasteboardFlavorType 0x6D6F6F76 + NSColor pasteboard type + NSFilenamesPboardType + NSStringPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT RTFD pasteboard type + NeXT Rich Text Format v1.0 pasteboard type + NeXT TIFF v4.0 pasteboard type + NeXT font pasteboard type + NeXT ruler pasteboard type + WebURLsWithTitlesPboardType + public.url + + {392, 56} + + + + _NS:13 + + + + + + + + + + + + 166 + + + + 392 + 1 + + + 67121123 + 0 + + + + + 6 + System + selectedTextBackgroundColor + + + + 6 + System + selectedTextColor + + + + + + + 1 + MCAwIDEAA + + + {8, -8} + 13 + + + + + + 1 + + 70 + {463, 10000000} + + + + {{1, 1}, {392, 56}} + + + + _NS:11 + + + + {4, 5} + + 12582912 + + + + + + TU0AKgAAEAj///8A////qwAAAP8AAAD/AwMD/BYWFtIFBQVuAAAABv///wD///8E6+vrTGhoaLYtLS3p +BAQE/QAAAP8AAAD/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///+rAAAA/wAAAP8AAAD/AAAA/wAAAP8EBATSX19fK9HR0ZciIiLv +AAAA/wAAAP8AAAD/AAAA/wAAAP////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////CsPDw0CRkZG1FxcX9AAAAP8bGxvr +ICAg8AAAAP8ICAjlFRUVVQAAAA////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wrm5uab +FxcX9AAAAP8AAAD/AQEB3wAAAA////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///zaXl5fGAAAA/wAAAP8AAABR////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////CO7u7q8AAAD/AAAA/wAAAAz///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////qwAAAP8AAAD/////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///+rAAAA/wAAAP////8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///6sAAAD/AAAA/////wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////qwAAAP8AAAD/ +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///+r +AAAA/wAAAP////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///6sAAAD/AAAA/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////qwAAAP8AAAD/////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///+rAAAA/wAAAP////8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///6sAAAD/AAAA/////wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////qwAAAP8AAAD/////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////qwAAAP8AAAD/AAAA/wAAAP8AAAD/ +AAAA/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///+rAAAA/wAAAP8AAAD/ +AAAA/wAAAP8AAAD/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////qwAAAP8AAAD/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///+rAAAA/wAAAP////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///6sAAAD/AAAA/////wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////qwAAAP8AAAD/////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///+rAAAA/wAAAP////8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///6sAAAD/AAAA/////wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////qwAAAP8AAAD/ +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///+r +AAAA/wAAAP////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////CO7u7q8AAAD/AAAA/wAAAAz///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///80mpqaxQAAAP8AAAD/AAAATv///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////CuXl5ZYeHh7xAAAA/wAAAP8CAgLXAAAAD////wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////EKurq0mOjo63FxcX9AAAAP8bGxvrICAg8AAAAP8ICAjlHh4eXAAAABj///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////qwAAAP8AAAD/AAAA/wAAAP8AAAD/BAQE1V9fXyvS0tKZICAg8AAAAP8AAAD/ +AAAA/wAAAP8AAAD/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///+rAAAA/wAAAP8AAAD/FBQU1AUFBXEAAAAG////AP///wTr6+tO +ZWVluC4uLuoAAAD/AAAA/wAAAP////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8AABEBAAADAAAAAQAgAAABAQADAAAAAQAgAAABAgADAAAABAAA +EOoBAwADAAAAAQABAAABBgADAAAAAQACAAABEQAEAAAAAQAAAAgBEgADAAAAAQABAAABFQADAAAAAQAE +AAABFgADAAAAAQAgAAABFwAEAAAAAQAAEAABGgAFAAAAAQAAENoBGwAFAAAAAQAAEOIBHAADAAAAAQAB +AAABKAADAAAAAQACAAABUgADAAAAAQACAAABUwADAAAABAAAEPKHcwAHAAAMSAAAEPoAAAAAAAAAkAAA +AAEAAACQAAAAAQAIAAgACAAIAAEAAQABAAEAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAx +AABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAA +AGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAA +ABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAA +ABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAA +CAx0ZXh0AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAA +AAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAAB +FsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAA +GNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAA +AAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBz +cGFjZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFj +ZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcg +Q29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRp +dGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAU +Xy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAA +AAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAo +AC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8 +AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFu +AXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJn +AnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOu +A7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJ +BVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9 +B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmP +CaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxD +DFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9e +D3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLj +EwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbW +FvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7 +G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAV +IEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVo +JZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2 +K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGC +Mbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQ +OIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+i +P+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7 +R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/d +UCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjL +WRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJ +Ypxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xX +bK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4 +d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIw +gpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/ +jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/Jpo +mtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adu +p+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUT +tYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NY +w9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/ +0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM +4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/ +8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t//8 + + + + + + + + TU0AKgAABAj///9VQ0ND/wAAAP////8A////AP///6pDQ0P/AAAA/////wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///+qAAAA/////6oAAAD/////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///6oAAAD/////AP///wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///+qAAAA/////wD///8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////qgAAAP////8A////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///6oAAAD/////AP///wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///+qAAAA/////wD///8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////qgAAAP////8A +////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////qgAAAP8AAAD/ +AAAA/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///+q +AAAA/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////qgAAAP////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///6oAAAD/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///+qAAAA/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////qgAAAP////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///8A////qgAAAP////+qAAAA/////wD///8A////AP///wD///8A////AP///wD///8A +////AP///wD///9VQ0ND/wAAAP////8A////AP///6pDQ0P/AAAA/////wD///8A////AP///wD///8A +////AP///wD///8AAA4BAAADAAAAAQAQAAABAQADAAAAAQAQAAABAgADAAAABAAABLYBAwADAAAAAQAB +AAABBgADAAAAAQACAAABEQAEAAAAAQAAAAgBEgADAAAAAQABAAABFQADAAAAAQAEAAABFgADAAAAAQAQ +AAABFwAEAAAAAQAABAABHAADAAAAAQABAAABUgADAAAAAQACAAABUwADAAAABAAABL6HcwAHAAAHqAAA +BMYAAAAAAAgACAAIAAgAAQABAAEAAQAAB6hhcHBsAiAAAG1udHJSR0IgWFlaIAfZAAIAGQALABoAC2Fj +c3BBUFBMAAAAAGFwcGwAAAAAAAAAAAAAAAAAAAAAAAD21gABAAAAANMtYXBwbAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2Rlc2MAAAEIAAAAb2RzY20AAAF4AAAFbGNw +cnQAAAbkAAAAOHd0cHQAAAccAAAAFHJYWVoAAAcwAAAAFGdYWVoAAAdEAAAAFGJYWVoAAAdYAAAAFHJU +UkMAAAdsAAAADmNoYWQAAAd8AAAALGJUUkMAAAdsAAAADmdUUkMAAAdsAAAADmRlc2MAAAAAAAAAFEdl +bmVyaWMgUkdCIFByb2ZpbGUAAAAAAAAAAAAAABRHZW5lcmljIFJHQiBQcm9maWxlAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAB4AAAAMc2tTSwAA +ACgAAAF4aHJIUgAAACgAAAGgY2FFUwAAACQAAAHIcHRCUgAAACYAAAHsdWtVQQAAACoAAAISZnJGVQAA +ACgAAAI8emhUVwAAABYAAAJkaXRJVAAAACgAAAJ6bmJOTwAAACYAAAKia29LUgAAABYAAALIY3NDWgAA +ACIAAALeaGVJTAAAAB4AAAMAZGVERQAAACwAAAMeaHVIVQAAACgAAANKc3ZTRQAAACYAAAKiemhDTgAA +ABYAAANyamFKUAAAABoAAAOIcm9STwAAACQAAAOiZWxHUgAAACIAAAPGcHRQTwAAACYAAAPobmxOTAAA +ACgAAAQOZXNFUwAAACYAAAPodGhUSAAAACQAAAQ2dHJUUgAAACIAAARaZmlGSQAAACgAAAR8cGxQTAAA +ACwAAASkcnVSVQAAACIAAATQYXJFRwAAACYAAATyZW5VUwAAACYAAAUYZGFESwAAAC4AAAU+AFYBYQBl +AG8AYgBlAGMAbgD9ACAAUgBHAEIAIABwAHIAbwBmAGkAbABHAGUAbgBlAHIAaQENAGsAaQAgAFIARwBC +ACAAcAByAG8AZgBpAGwAUABlAHIAZgBpAGwAIABSAEcAQgAgAGcAZQBuAOgAcgBpAGMAUABlAHIAZgBp +AGwAIABSAEcAQgAgAEcAZQBuAOkAcgBpAGMAbwQXBDAEMwQwBDsETAQ9BDgEOQAgBD8EQAQ+BEQEMAQ5 +BDsAIABSAEcAQgBQAHIAbwBmAGkAbAAgAGcA6QBuAOkAcgBpAHEAdQBlACAAUgBWAEKQGnUoACAAUgBH +AEIAIIJyX2ljz4/wAFAAcgBvAGYAaQBsAG8AIABSAEcAQgAgAGcAZQBuAGUAcgBpAGMAbwBHAGUAbgBl +AHIAaQBzAGsAIABSAEcAQgAtAHAAcgBvAGYAaQBsx3y8GAAgAFIARwBCACDVBLhc0wzHfABPAGIAZQBj +AG4A/QAgAFIARwBCACAAcAByAG8AZgBpAGwF5AXoBdUF5AXZBdwAIABSAEcAQgAgBdsF3AXcBdkAQQBs +AGwAZwBlAG0AZQBpAG4AZQBzACAAUgBHAEIALQBQAHIAbwBmAGkAbADBAGwAdABhAGwA4QBuAG8AcwAg +AFIARwBCACAAcAByAG8AZgBpAGxmbpAaACAAUgBHAEIAIGPPj/Blh072TgCCLAAgAFIARwBCACAw1zDt +MNUwoTCkMOsAUAByAG8AZgBpAGwAIABSAEcAQgAgAGcAZQBuAGUAcgBpAGMDkwO1A70DuQO6A8wAIAPA +A8EDvwPGA68DuwAgAFIARwBCAFAAZQByAGYAaQBsACAAUgBHAEIAIABnAGUAbgDpAHIAaQBjAG8AQQBs +AGcAZQBtAGUAZQBuACAAUgBHAEIALQBwAHIAbwBmAGkAZQBsDkIOGw4jDkQOHw4lDkwAIABSAEcAQgAg +DhcOMQ5IDicORA4bAEcAZQBuAGUAbAAgAFIARwBCACAAUAByAG8AZgBpAGwAaQBZAGwAZQBpAG4AZQBu +ACAAUgBHAEIALQBwAHIAbwBmAGkAaQBsAGkAVQBuAGkAdwBlAHIAcwBhAGwAbgB5ACAAcAByAG8AZgBp +AGwAIABSAEcAQgQeBDEESQQ4BDkAIAQ/BEAEPgREBDgEOwRMACAAUgBHAEIGRQZEBkEAIAYqBjkGMQZK +BkEAIABSAEcAQgAgBicGRAY5BicGRQBHAGUAbgBlAHIAaQBjACAAUgBHAEIAIABQAHIAbwBmAGkAbABl +AEcAZQBuAGUAcgBlAGwAIABSAEcAQgAtAGIAZQBzAGsAcgBpAHYAZQBsAHMAZXRleHQAAAAAQ29weXJp +Z2h0IDIwMDcgQXBwbGUgSW5jLiwgYWxsIHJpZ2h0cyByZXNlcnZlZC4AWFlaIAAAAAAAAPNSAAEAAAAB +Fs9YWVogAAAAAAAAdE0AAD3uAAAD0FhZWiAAAAAAAABadQAArHMAABc0WFlaIAAAAAAAACgaAAAVnwAA +uDZjdXJ2AAAAAAAAAAEBzQAAc2YzMgAAAAAAAQxCAAAF3v//8yYAAAeSAAD9kf//+6L///2jAAAD3AAA +wGw + + + + + + + + 4 + YES + + + + 256 + {{377, 1}, {16, 56}} + + + + _NS:83 + NO + _doScroller: + + + _doScroller: + 1 + 0.85256409645080566 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + + + _NS:33 + NO + _doScroller: + + 1 + + _doScroller: + 1 + 0.94565218687057495 + + + {{87, 14}, {394, 58}} - - 2 - _NS:354 - {250, 750} - YES - - -1805647871 - 272629760 - - - LucidaGrande - 11 - 3100 - - _NS:354 - - YES - - - + + _NS:9 + 133138 + + + + 0.25 + 4 + 1 265 + {{483, 66}, {39, 38}} - 2 _NS:1574 YES @@ -683,7 +1151,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 134217728 - LucidaGrande + YES 10 2843 @@ -697,6 +1165,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 200 25 + NO @@ -704,8 +1173,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA {{489, 102}, {26, 22}} - - 2 + _NS:9 YES @@ -719,6 +1187,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + NO + 1 @@ -726,8 +1196,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA {{250, 28}, {32, 32}} - - 2 + _NS:945 28682 100 @@ -737,7 +1206,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - 2 _NS:21 @@ -745,18 +1213,24 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA YES - 2 _NS:18 {0, 0} 67108864 0 Resource - + + YES + 11 + 3100 + + - 3 - MCAwLjgwMDAwMDAxMTkAA + 6 + System + labelColor + @@ -771,6 +1245,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA _NS:1113 + YES NSView @@ -779,7 +1254,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - 18 + 274 + + public.item + {{13, 10}, {543, 298}} @@ -789,7 +1267,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 1 - 256 + 274 @@ -797,17 +1275,20 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - 2304 + 2322 256 + {487, 214} _NS:1703 YES + NO + YES 256 @@ -818,12 +1299,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA _NS:1705 - - + + -2147483392 {{224, 0}, {16, 17}} - - _NS:1709 @@ -854,12 +1333,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA Text Cell - - 6 - System - controlBackgroundColor - - + 3 @@ -896,16 +1370,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 3 2 - - - 6 - System - gridColor - - 3 - MC41AA - - + + 17 -767557632 @@ -926,6 +1392,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 4 + YES @@ -935,6 +1402,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA _NS:1726 + NO + _doScroller: + _doScroller: 37 @@ -946,8 +1416,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA {{1, 119}, {223, 15}} - _NS:1728 + NO + _doScroller: + 1 _doScroller: @@ -955,7 +1427,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - 2304 + 2338 @@ -967,8 +1439,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 4 + YES - {{17, 17}, {489, 232}} @@ -980,8 +1452,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - QSAAAEEgAABBmAAAQZgAAA + 0.25 + 4 + 1 {{10, 33}, {523, 252}} @@ -1039,36 +1513,20 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - 6 - System - selectedTextBackgroundColor - - - - 6 - System - selectedTextColor - - + + - + - - 1 - MCAwIDEAA - - - {8, -8} - 13 - + + 1 - 6 + 70 {494, 10000000} @@ -1101,6 +1559,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 4 + YES @@ -1109,6 +1568,9 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA _NS:1494 + NO + _doScroller: + _doScroller: 1 @@ -1121,6 +1583,9 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA _NS:1482 + NO + _doScroller: + 1 _doScroller: @@ -1136,6 +1601,9 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA + 0.25 + 4 + 1 {{10, 33}, {523, 252}} @@ -1162,6 +1630,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA _NS:1116 + YES NSView @@ -1178,7 +1647,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - {{0, 0}, {1920, 1058}} + {{0, 0}, {1920, 1177}} {600, 610} {10000000000000, 10000000000000} YES @@ -1217,6 +1686,8 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA + NO + 1 @@ -1239,6 +1710,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 200 25 + NO @@ -1258,6 +1730,8 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA + NO + 1 @@ -1277,6 +1751,8 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA + NO + 1 @@ -1307,6 +1783,8 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA _NS:13 YES + NO + YES 256 @@ -1382,7 +1860,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 3 2 - + 17 -700448768 @@ -1403,6 +1881,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 4 + YES @@ -1411,6 +1890,9 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA _NS:58 + NO + _doScroller: + _doScroller: 37 @@ -1423,6 +1905,9 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA _NS:60 + NO + _doScroller: + 1 _doScroller: @@ -1441,6 +1926,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 4 + YES {{14, 35}, {320, 144}} @@ -1453,6 +1939,9 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA QSAAAEEgAABBmAAAQZgAAA + 0.25 + 4 + 1 @@ -1480,6 +1969,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 400 75 + NO @@ -1507,6 +1997,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 400 75 + NO {{10, 7}, {348, 194}} @@ -1564,15 +2055,17 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 256 - {318, 160} + {318.5, 160} _NS:13 YES + NO + YES 256 - {318, 17} + {318.5, 17} _NS:16 @@ -1644,7 +2137,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 3 2 - + 17 -700448768 @@ -1665,6 +2158,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 4 + YES @@ -1673,6 +2167,9 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA _NS:58 + NO + _doScroller: + _doScroller: 37 @@ -1685,6 +2182,9 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA _NS:60 + NO + _doScroller: + 1 _doScroller: @@ -1703,6 +2203,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 4 + YES {{17, 39}, {320, 178}} @@ -1715,6 +2216,9 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA QSAAAEEgAABBmAAAQZgAAA + 0.25 + 4 + 1 @@ -1739,6 +2243,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 400 75 + NO @@ -1763,6 +2268,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 400 75 + NO {{10, 33}, {354, 220}} @@ -1822,7 +2328,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - + @@ -1832,7 +2338,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 1 - 6 + 70 {463, 10000000} @@ -1920,11 +2426,63 @@ AAAA/wAAAP////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A AAAA/wAAAP8AAAD/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A ////AP///wD///8A////AP///wD///+rAAAA/wAAAP8AAAD/FBQU1AUFBXEAAAAG////AP///wTr6+tO ZWVluC4uLuoAAAD/AAAA/wAAAP////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A -////AP///wD///8A////AP///wD///8AABABAAADAAAAAQAgAAABAQADAAAAAQAgAAABAgADAAAABAAA -EM4BAwADAAAAAQABAAABBgADAAAAAQACAAABEQAEAAAAAQAAAAgBEgADAAAAAQABAAABFQADAAAAAQAE -AAABFgADAAAAAQAgAAABFwAEAAAAAQAAEAABGgAFAAAAAQAAENYBGwAFAAAAAQAAEN4BHAADAAAAAQAB -AAABKAADAAAAAQACAAABUgADAAAAAQACAAABUwADAAAABAAAEOYAAAAAAAgACAAIAAgSAAAAACAAABIA -AAAAIAAAAAEAAQABAAE +////AP///wD///8A////AP///wD///8AABEBAAADAAAAAQAgAAABAQADAAAAAQAgAAABAgADAAAABAAA +EOoBAwADAAAAAQABAAABBgADAAAAAQACAAABEQAEAAAAAQAAAAgBEgADAAAAAQABAAABFQADAAAAAQAE +AAABFgADAAAAAQAgAAABFwAEAAAAAQAAEAABGgAFAAAAAQAAENoBGwAFAAAAAQAAEOIBHAADAAAAAQAB +AAABKAADAAAAAQACAAABUgADAAAAAQACAAABUwADAAAABAAAEPKHcwAHAAAMSAAAEPoAAAAAAAAAkAAA +AAEAAACQAAAAAQAIAAgACAAIAAEAAQABAAEAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAx +AABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAA +AGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAA +ABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAA +ABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAA +CAx0ZXh0AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAA +AAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAAB +FsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAA +GNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAA +AAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBz +cGFjZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFj +ZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcg +Q29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRp +dGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAU +Xy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAA +AAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAo +AC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8 +AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFu +AXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJn +AnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOu +A7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJ +BVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9 +B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmP +CaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxD +DFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9e +D3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLj +EwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbW +FvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7 +G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAV +IEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVo +JZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2 +K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGC +Mbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQ +OIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+i +P+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7 +R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/d +UCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjL +WRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJ +Ypxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xX +bK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4 +d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIw +gpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/ +jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/Jpo +mtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adu +p+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUT +tYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NY +w9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/ +0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM +4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/ +8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t//8 @@ -1994,6 +2552,7 @@ wGw 4 + YES @@ -2002,6 +2561,9 @@ wGw _NS:83 + NO + _doScroller: + _doScroller: 1 @@ -2014,6 +2576,9 @@ wGw _NS:33 + NO + _doScroller: + 1 _doScroller: @@ -2029,6 +2594,9 @@ wGw + 0.25 + 4 + 1 {{10, 33}, {354, 220}} @@ -2076,7 +2644,7 @@ wGw - + window @@ -2085,22 +2653,6 @@ wGw 18 - - - addressTextField - - - - 100313 - - - - contentTextField - - - - 100314 - refresh: @@ -2173,22 +2725,6 @@ wGw 100497 - - - addressTextFieldChanged: - - - - 100498 - - - - contentTextFieldChanged: - - - - 100499 - querydataTableView @@ -2285,6 +2821,30 @@ wGw 100547 + + + addressComboBox + + + + 100553 + + + + contentTextView + + + + 100567 + + + + addressComboBoxChanged: + + + + 100579 + delegate @@ -2323,49 +2883,9 @@ wGw - value: selection.address - - - - - - value: selection.address - value - selection.address - - NSNullPlaceholder - http:// or https:// for remote URL. Or local address. - - 2 - - - 100335 - - - - value: selection.content - - - - - - value: selection.content - value - selection.content - - NSNullPlaceholder - To test raw json string, paste here! - - 2 - - - 100340 - - - - managedObjectContext: managedObjectContext - - + managedObjectContext: managedObjectContext + + @@ -2537,6 +3057,70 @@ wGw 100534 + + + value: selection.address + + + + + + value: selection.address + value + selection.address + + NSNullPlaceholder + http:// or https:// for remote URL. Or local address. + + 2 + + + 100552 + + + + delegate + + + + 100557 + + + + dataSource + + + + 100576 + + + + delegate + + + + 100566 + + + + value: selection.content + + + + + + value: selection.content + value + selection.content + + NSNullPlaceholder + To test raw json string, clear address and paste it here! + + 2 + + + 100580 + @@ -2640,111 +3224,6 @@ wGw - - 100267 - - - - - - - - 100287 - - - - - - - - - - - - - - - - - - - 100294 - - - - - - - - 100293 - - - - - - - - 100292 - - - - - - - - 100291 - - - - - - - - 100290 - - - - - - - - 100288 - - - - - - - - 100301 - - - - - 100299 - - - - - 100298 - - - - - 100297 - - - - - 100296 - - - - - 100295 - - - 100269 @@ -2883,87 +3362,11 @@ wGw - - 100341 - - - - - - - - - - - - 100342 - - - - - 100343 - - - - - 100348 - - - - - 100349 - - - - - 100350 - - - - - 100351 - - - - - - - - 100352 - - - - - 100289 - - - - - - - - 100300 - - - 100355 - - 100358 - - - - - - - - 100359 - - - 100397 @@ -3320,23 +3723,10 @@ wGw - 100518 - + 100531 + - - - - - - 100519 - - - - - 100531 - - - + @@ -3355,11 +3745,217 @@ wGw + + 100267 + + + + + + + + 100287 + + + + + + + + + + + + + + + + + + + 100558 + + + + + + + + + + 100561 + + + + + 100560 + + + + + 100559 + + + + + 100548 + + + + + + + + 100549 + + + 100544 + + 100518 + + + + + + + + 100519 + + + + + 100288 + + + + + + + + 100301 + + + + + 100294 + + + + + + + + 100295 + + + + + 100293 + + + + + + + + 100296 + + + + + 100351 + + + + + + + + 100352 + + + + + 100358 + + + + + + + + 100359 + + + + + 100291 + + + + + + + + 100298 + + + + + 100289 + + + + + + + + 100300 + + + + + 100341 + + + + + + + + + + + + 100350 + + + + + 100349 + + + + + 100348 + + + + + 100343 + + + + + 100342 + + + @@ -3396,16 +3992,12 @@ wGw com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3480,6 +4072,13 @@ wGw com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {423, 268} com.apple.InterfaceBuilder.CocoaPlugin {{133, 170}, {507, 413}} @@ -3489,57 +4088,15 @@ wGw - 100547 + 100580 - - NSDocument - - id - id - id - id - id - id - - - - printDocument: - id - - - revertDocumentToSaved: - id - - - runPageLayout: - id - - - saveDocument: - id - - - saveDocumentAs: - id - - - saveDocumentTo: - id - - - - IBProjectSource - ./Classes/NSDocument.h - - VJDocument NSPersistentDocument - id - id + id id id id @@ -3551,12 +4108,8 @@ wGw id - - addressTextFieldChanged: - id - - - contentTextFieldChanged: + + addressComboBoxChanged: id @@ -3597,9 +4150,9 @@ wGw - NSTextField + NSComboBox NSProgressIndicator - NSTextField + NSTextView NSOutlineView NSTextView NSDrawer @@ -3612,17 +4165,17 @@ wGw NSTextView - - addressTextField - NSTextField + + addressComboBox + NSComboBox circularProgressIndicator NSProgressIndicator - - contentTextField - NSTextField + + contentTextView + NSTextView dataOutlineView @@ -3665,9 +4218,27 @@ wGw NSTextView + + IBProjectSource + VisualJSON/VJDocument.h + + + + VJDocument + + methodMatrixChanged: + id + + + methodMatrixChanged: + + methodMatrixChanged: + id + + IBProjectSource - ./Classes/VJDocument.h + VisualJSON/VJDocument.m @@ -3701,10 +4272,7 @@ wGw NSTableView - - IBProjectSource - ./Classes/VJHeaderTableViewController.h - + VJQuerydataTableViewController @@ -3742,25 +4310,367 @@ wGw NSTextView + + + + + + NSActionCell + NSCell - IBProjectSource - ./Classes/VJQuerydataTableViewController.h + IBFrameworkSource + AppKit.framework/Headers/NSActionCell.h + + + + NSApplication + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSApplication.h + + + + NSBox + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSBox.h + + + + NSButton + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSButton.h + + + + NSButtonCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSButtonCell.h + + + + NSCell + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSCell.h + + + + NSComboBox + NSTextField + + IBFrameworkSource + AppKit.framework/Headers/NSComboBox.h + + + + NSComboBoxCell + NSTextFieldCell + + IBFrameworkSource + AppKit.framework/Headers/NSComboBoxCell.h + + + + NSControl + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSControl.h + + + + NSController + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSController.h + + + + NSDocument + NSObject + + id + id + id + id + id + id + + + + printDocument: + id + + + revertDocumentToSaved: + id + + + runPageLayout: + id + + + saveDocument: + id + + + saveDocumentAs: + id + + + saveDocumentTo: + id + + + + IBFrameworkSource + AppKit.framework/Headers/NSDocument.h + + + + NSDrawer + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSDrawer.h + + + + NSFormatter + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFormatter.h + + + + NSManagedObjectContext + NSObject + + IBFrameworkSource + CoreData.framework/Headers/NSManagedObjectContext.h + + + + NSMatrix + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSMatrix.h + + + + NSMenu + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenu.h + + + + NSObjectController + NSController + + IBFrameworkSource + AppKit.framework/Headers/NSObjectController.h + + + + NSOutlineView + NSTableView + + IBFrameworkSource + AppKit.framework/Headers/NSOutlineView.h + + + + NSPersistentDocument + NSDocument + + IBFrameworkSource + AppKit.framework/Headers/NSPersistentDocument.h + + + + NSProgressIndicator + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSProgressIndicator.h + + + + NSResponder + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSResponder.h + + + + NSScrollView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSScrollView.h + + + + NSScroller + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSScroller.h + + + + NSSplitView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSSplitView.h + + + + NSTabView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSTabView.h + + + + NSTabViewItem + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTabViewItem.h + + + + NSTableColumn + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTableColumn.h + + + + NSTableHeaderView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSTableHeaderView.h + + + + NSTableView + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSTableView.h + + + + NSText + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSText.h + + + + NSTextField + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSTextField.h + + + + NSTextFieldCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSTextFieldCell.h + + + + NSTextView + NSText + + IBFrameworkSource + AppKit.framework/Headers/NSTextView.h + + + + NSToolbar + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbar.h + + + + NSToolbarItem + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbarItem.h + + + + NSUserDefaultsController + NSController + + IBFrameworkSource + AppKit.framework/Headers/NSUserDefaultsController.h + + + + NSView + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSView.h + + + + NSWindow + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSWindow.h 0 IBCocoaFramework + NO + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + YES 3 {512, 512} - {15, 15} - {8, 8} - {11, 11} - {10, 3} - {10, 12} - {8, 8} + {14, 14} + {11, 11} + {12, 12} + {10, 2} + {11, 15} + {11, 11} {32, 32} {32, 32} {32, 32} diff --git a/VisualJSONImporter/VisualJSONImporter-Info.plist b/VisualJSONImporter/VisualJSONImporter-Info.plist index 7bbc202..6d32949 100644 --- a/VisualJSONImporter/VisualJSONImporter-Info.plist +++ b/VisualJSONImporter/VisualJSONImporter-Info.plist @@ -20,7 +20,7 @@ CFBundleIconFile CFBundleIdentifier - org.youknowone.${PRODUCT_NAME:rfc1034identifier} + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/VisualXML/Icon.iconset/icon_128x128.png b/VisualXML/Icon.iconset/icon_128x128.png new file mode 100644 index 0000000..7a40607 Binary files /dev/null and b/VisualXML/Icon.iconset/icon_128x128.png differ diff --git a/VisualXML/Icon.iconset/icon_128x128@2x.png b/VisualXML/Icon.iconset/icon_128x128@2x.png new file mode 100644 index 0000000..ed39259 Binary files /dev/null and b/VisualXML/Icon.iconset/icon_128x128@2x.png differ diff --git a/VisualXML/Icon.iconset/icon_16x16.png b/VisualXML/Icon.iconset/icon_16x16.png new file mode 100644 index 0000000..77015f4 Binary files /dev/null and b/VisualXML/Icon.iconset/icon_16x16.png differ diff --git a/VisualXML/Icon.iconset/icon_16x16@2x.png b/VisualXML/Icon.iconset/icon_16x16@2x.png new file mode 100644 index 0000000..a4fa863 Binary files /dev/null and b/VisualXML/Icon.iconset/icon_16x16@2x.png differ diff --git a/VisualXML/Icon.iconset/icon_256x256.png b/VisualXML/Icon.iconset/icon_256x256.png new file mode 100644 index 0000000..ed39259 Binary files /dev/null and b/VisualXML/Icon.iconset/icon_256x256.png differ diff --git a/VisualXML/Icon.iconset/icon_256x256@2x.png b/VisualXML/Icon.iconset/icon_256x256@2x.png new file mode 100644 index 0000000..bd37c9a Binary files /dev/null and b/VisualXML/Icon.iconset/icon_256x256@2x.png differ diff --git a/VisualXML/Icon.iconset/icon_32x32.png b/VisualXML/Icon.iconset/icon_32x32.png new file mode 100644 index 0000000..a4fa863 Binary files /dev/null and b/VisualXML/Icon.iconset/icon_32x32.png differ diff --git a/VisualXML/Icon.iconset/icon_32x32@2x.png b/VisualXML/Icon.iconset/icon_32x32@2x.png new file mode 100644 index 0000000..1ffcc3b Binary files /dev/null and b/VisualXML/Icon.iconset/icon_32x32@2x.png differ diff --git a/VisualXML/Icon.iconset/icon_512x512.png b/VisualXML/Icon.iconset/icon_512x512.png new file mode 100644 index 0000000..bd37c9a Binary files /dev/null and b/VisualXML/Icon.iconset/icon_512x512.png differ diff --git a/VisualXML/Icon.iconset/icon_512x512@2x.png b/VisualXML/Icon.iconset/icon_512x512@2x.png new file mode 100644 index 0000000..b4d6114 Binary files /dev/null and b/VisualXML/Icon.iconset/icon_512x512@2x.png differ diff --git a/VisualXML/Icon.png b/VisualXML/Icon.png new file mode 100644 index 0000000..b4d6114 Binary files /dev/null and b/VisualXML/Icon.png differ diff --git a/VisualXML/VJXMLDocumentDelegate.m b/VisualXML/VJXMLDocumentDelegate.m index b4c0c63..812b55d 100644 --- a/VisualXML/VJXMLDocumentDelegate.m +++ b/VisualXML/VJXMLDocumentDelegate.m @@ -27,7 +27,8 @@ - (BOOL)document:(VJDocument *)document dataIsValid:(NSString *)rawData { } - (id)document:(VJDocument *)document structuredDataFromRawDataString:(NSString *)rawData { - return [OXNode nodeWithString:rawData]; + OXNode *node = [OXNode nodeWithString:rawData]; + return node; } - (NSString *)document:(VJDocument *)document prettyTextFromData:(id)data { diff --git a/VisualXML/VisualXML-Info.plist b/VisualXML/VisualXML-Info.plist index 71a2e43..8fae732 100644 --- a/VisualXML/VisualXML-Info.plist +++ b/VisualXML/VisualXML-Info.plist @@ -32,7 +32,7 @@ CFBundleIconFile Icon.icns CFBundleIdentifier - org.3rddev.${PRODUCT_NAME:rfc1034identifier} + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName @@ -40,17 +40,17 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.2.1 + ${APP_VERSION} CFBundleSignature ???? CFBundleVersion - 1.2.1 + ${APP_VERSION} LSApplicationCategoryType public.app-category.developer-tools LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} NSHumanReadableCopyright - Copyright © 2012 3rddev.org All rights reserved. + Copyright © 2012-2013 Jeong YunWon All rights reserved. NSMainNibFile MainMenu NSPrincipalClass diff --git a/VisualXML/VisualXML.entitlements b/VisualXML/VisualXML.entitlements new file mode 100644 index 0000000..637aa6f --- /dev/null +++ b/VisualXML/VisualXML.entitlements @@ -0,0 +1,14 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.files.user-selected.read-write + + com.apple.security.network.client + + com.apple.security.print + + + diff --git a/VisualXML/en.lproj/MainMenu.xib b/VisualXML/en.lproj/MainMenu.xib new file mode 100644 index 0000000..d34a204 --- /dev/null +++ b/VisualXML/en.lproj/MainMenu.xib @@ -0,0 +1,3177 @@ + + + + 1070 + 12E55 + 4471.1 + 1187.39 + 626.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 4471.1 + + + NSCustomObject + NSMenu + NSMenuItem + + + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + + NSApplication + + + FirstResponder + + + NSApplication + + + AMainMenu + + + + VisualXML + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + VisualXML + + + + About VisualXML + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Preferences… + , + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + Services + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide VisualXML + h + 1048576 + 2147483647 + + + + + + Hide Others + h + 1572864 + 2147483647 + + + + + + Show All + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit VisualXML + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + File + + 1048576 + 2147483647 + + + submenuAction: + + File + + + + New + n + 1048576 + 2147483647 + + + + + + Open… + o + 1048576 + 2147483647 + + + + + + Open Recent + + 1048576 + 2147483647 + + + submenuAction: + + Open Recent + + + + Clear Menu + + 1048576 + 2147483647 + + + + + _NSRecentDocumentsMenu + + + + + Refresh + r + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Close + w + 1048576 + 2147483647 + + + + + + Save… + s + 1048576 + 2147483647 + + + + + + Revert to Saved + + 2147483647 + + + + + + + + + Edit + + 1048576 + 2147483647 + + + submenuAction: + + Edit + + + + Undo + z + 1048576 + 2147483647 + + + + + + Redo + Z + 1179648 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Cut + x + 1048576 + 2147483647 + + + + + + Copy + c + 1048576 + 2147483647 + + + + + + Paste + v + 1048576 + 2147483647 + + + + + + Paste and Match Style + V + 1572864 + 2147483647 + + + + + + Delete + + 1048576 + 2147483647 + + + + + + Select All + a + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Find + + 1048576 + 2147483647 + + + submenuAction: + + Find + + + + Find… + f + 1048576 + 2147483647 + + + 1 + + + + Find and Replace… + f + 1572864 + 2147483647 + + + 12 + + + + Find Next + g + 1048576 + 2147483647 + + + 2 + + + + Find Previous + G + 1179648 + 2147483647 + + + 3 + + + + Use Selection for Find + e + 1048576 + 2147483647 + + + 7 + + + + Jump to Selection + j + 1048576 + 2147483647 + + + + + + + + + Spelling and Grammar + + 1048576 + 2147483647 + + + submenuAction: + + Spelling and Grammar + + + + Show Spelling and Grammar + : + 1048576 + 2147483647 + + + + + + Check Document Now + ; + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Check Spelling While Typing + + 1048576 + 2147483647 + + + + + + Check Grammar With Spelling + + 1048576 + 2147483647 + + + + + + Correct Spelling Automatically + + 2147483647 + + + + + + + + + Substitutions + + 1048576 + 2147483647 + + + submenuAction: + + Substitutions + + + + Show Substitutions + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Smart Copy/Paste + f + 1048576 + 2147483647 + + + 1 + + + + Smart Quotes + g + 1048576 + 2147483647 + + + 2 + + + + Smart Dashes + + 2147483647 + + + + + + Smart Links + G + 1179648 + 2147483647 + + + 3 + + + + Text Replacement + + 2147483647 + + + + + + + + + Transformations + + 2147483647 + + + submenuAction: + + Transformations + + + + Make Upper Case + + 2147483647 + + + + + + Make Lower Case + + 2147483647 + + + + + + Capitalize + + 2147483647 + + + + + + + + + Speech + + 1048576 + 2147483647 + + + submenuAction: + + Speech + + + + Start Speaking + + 1048576 + 2147483647 + + + + + + Stop Speaking + + 1048576 + 2147483647 + + + + + + + + + + + + Format + + 2147483647 + + + submenuAction: + + Format + + + + Font + + 2147483647 + + + submenuAction: + + Font + + + + Show Fonts + T + 1179648 + 2147483647 + + + + + + Bold + B + 1179648 + 2147483647 + + + 2 + + + + Italic + I + 1179648 + 2147483647 + + + 1 + + + + Underline + U + 1179648 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Bigger + + + 1048576 + 2147483647 + + + 3 + + + + Smaller + - + 1048576 + 2147483647 + + + 4 + + + + YES + YES + + + 2147483647 + + + + + + Kern + + 2147483647 + + + submenuAction: + + Kern + + + + Use Default + + 2147483647 + + + + + + Use None + + 2147483647 + + + + + + Tighten + + 2147483647 + + + + + + Loosen + + 2147483647 + + + + + + + + + Ligature + + 2147483647 + + + submenuAction: + + Ligature + + + + Use Default + + 2147483647 + + + + + + Use None + + 2147483647 + + + + + + Use All + + 2147483647 + + + + + + + + + Baseline + + 2147483647 + + + submenuAction: + + Baseline + + + + Use Default + + 2147483647 + + + + + + Superscript + + 2147483647 + + + + + + Subscript + + 2147483647 + + + + + + Raise + + 2147483647 + + + + + + Lower + + 2147483647 + + + + + + + + + YES + YES + + + 2147483647 + + + + + + Show Colors + C + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Copy Style + c + 1572864 + 2147483647 + + + + + + Paste Style + v + 1572864 + 2147483647 + + + + + _NSFontMenu + + + + + Text + + 2147483647 + + + submenuAction: + + Text + + + + Align Left + { + 1048576 + 2147483647 + + + + + + Center + | + 1048576 + 2147483647 + + + + + + Justify + + 2147483647 + + + + + + Align Right + } + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Writing Direction + + 2147483647 + + + submenuAction: + + Writing Direction + + + + YES + Paragraph + + 2147483647 + + + + + + CURlZmF1bHQ + + 2147483647 + + + + + + CUxlZnQgdG8gUmlnaHQ + + 2147483647 + + + + + + CVJpZ2h0IHRvIExlZnQ + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + YES + Selection + + 2147483647 + + + + + + CURlZmF1bHQ + + 2147483647 + + + + + + CUxlZnQgdG8gUmlnaHQ + + 2147483647 + + + + + + CVJpZ2h0IHRvIExlZnQ + + 2147483647 + + + + + + + + + YES + YES + + + 2147483647 + + + + + + Show Ruler + + 2147483647 + + + + + + Copy Ruler + c + 1310720 + 2147483647 + + + + + + Paste Ruler + v + 1310720 + 2147483647 + + + + + + + + + + + + View + + 1048576 + 2147483647 + + + submenuAction: + + View + + + + Show Toolbar + t + 1572864 + 2147483647 + + + + + + Customize Toolbar… + + 1048576 + 2147483647 + + + + + + + + + Window + + 1048576 + 2147483647 + + + submenuAction: + + Window + + + + Minimize + m + 1048576 + 2147483647 + + + + + + Zoom + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bring All to Front + + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + + Help + + 2147483647 + + + submenuAction: + + Help + + + + Website... + + 2147483647 + + + + + + Help... + ? + 1048576 + 2147483647 + + + + + + Report... + + 2147483647 + + + + + + IRC... (Requires IRC Client) + + 2147483647 + + + + + + Tip me! + + 2147483647 + + + + + _NSHelpMenu + + + + _NSMainMenu + + + NSFontManager + + + AppDelegate + + + + + + + terminate: + + + + 448 + + + + orderFrontStandardAboutPanel: + + + + 142 + + + + performMiniaturize: + + + + 37 + + + + arrangeInFront: + + + + 39 + + + + clearRecentDocuments: + + + + 127 + + + + performClose: + + + + 193 + + + + toggleContinuousSpellChecking: + + + + 222 + + + + undo: + + + + 223 + + + + copy: + + + + 224 + + + + checkSpelling: + + + + 225 + + + + paste: + + + + 226 + + + + stopSpeaking: + + + + 227 + + + + cut: + + + + 228 + + + + showGuessPanel: + + + + 230 + + + + redo: + + + + 231 + + + + selectAll: + + + + 232 + + + + startSpeaking: + + + + 233 + + + + delete: + + + + 235 + + + + performZoom: + + + + 240 + + + + performFindPanelAction: + + + + 241 + + + + centerSelectionInVisibleArea: + + + + 245 + + + + toggleGrammarChecking: + + + + 347 + + + + toggleSmartInsertDelete: + + + + 355 + + + + toggleAutomaticQuoteSubstitution: + + + + 356 + + + + toggleAutomaticLinkDetection: + + + + 357 + + + + saveDocument: + + + + 362 + + + + revertDocumentToSaved: + + + + 364 + + + + runToolbarCustomizationPalette: + + + + 365 + + + + toggleToolbarShown: + + + + 366 + + + + hide: + + + + 367 + + + + hideOtherApplications: + + + + 368 + + + + unhideAllApplications: + + + + 370 + + + + newDocument: + + + + 371 + + + + openDocument: + + + + 372 + + + + raiseBaseline: + + + + 425 + + + + lowerBaseline: + + + + 426 + + + + copyFont: + + + + 427 + + + + subscript: + + + + 428 + + + + superscript: + + + + 429 + + + + tightenKerning: + + + + 430 + + + + underline: + + + + 431 + + + + orderFrontColorPanel: + + + + 432 + + + + useAllLigatures: + + + + 433 + + + + loosenKerning: + + + + 434 + + + + pasteFont: + + + + 435 + + + + unscript: + + + + 436 + + + + useStandardKerning: + + + + 437 + + + + useStandardLigatures: + + + + 438 + + + + turnOffLigatures: + + + + 439 + + + + turnOffKerning: + + + + 440 + + + + capitalizeWord: + + + + 454 + + + + lowercaseWord: + + + + 455 + + + + uppercaseWord: + + + + 456 + + + + toggleAutomaticDashSubstitution: + + + + 460 + + + + orderFrontSubstitutionsPanel: + + + + 461 + + + + toggleAutomaticTextReplacement: + + + + 463 + + + + toggleAutomaticSpellingCorrection: + + + + 466 + + + + performFindPanelAction: + + + + 467 + + + + performFindPanelAction: + + + + 468 + + + + performFindPanelAction: + + + + 469 + + + + pasteAsPlainText: + + + + 471 + + + + alignCenter: + + + + 517 + + + + pasteRuler: + + + + 518 + + + + toggleRuler: + + + + 519 + + + + alignRight: + + + + 520 + + + + copyRuler: + + + + 521 + + + + alignJustified: + + + + 522 + + + + alignLeft: + + + + 523 + + + + makeBaseWritingDirectionNatural: + + + + 524 + + + + makeBaseWritingDirectionLeftToRight: + + + + 525 + + + + makeBaseWritingDirectionRightToLeft: + + + + 526 + + + + makeTextWritingDirectionNatural: + + + + 527 + + + + makeTextWritingDirectionLeftToRight: + + + + 528 + + + + makeTextWritingDirectionRightToLeft: + + + + 529 + + + + performFindPanelAction: + + + + 533 + + + + refresh: + + + + 553 + + + + addFontTrait: + + + + 420 + + + + addFontTrait: + + + + 421 + + + + modifyFont: + + + + 422 + + + + orderFrontFontPanel: + + + + 423 + + + + modifyFont: + + + + 424 + + + + openIssue: + + + + 559 + + + + openIRC: + + + + 563 + + + + openHelp: + + + + 565 + + + + openWebsite: + + + + 566 + + + + openTip: + + + + 569 + + + + + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 29 + + + + + + + + + + + + + + 19 + + + + + + + + 56 + + + + + + + + 217 + + + + + + + + 83 + + + + + + + + 81 + + + + + + + + + + + + + + + 75 + + + + + 72 + + + + + 82 + + + + + 124 + + + + + + + + 73 + + + + + 79 + + + + + 112 + + + + + 125 + + + + + + + + 126 + + + + + 205 + + + + + + + + + + + + + + + + + + + + + + 202 + + + + + 198 + + + + + 207 + + + + + 214 + + + + + 199 + + + + + 203 + + + + + 197 + + + + + 206 + + + + + 215 + + + + + 218 + + + + + + + + 216 + + + + + + + + 200 + + + + + + + + + + + + + 219 + + + + + 201 + + + + + 204 + + + + + 220 + + + + + + + + + + + + + 213 + + + + + 210 + + + + + 221 + + + + + 208 + + + + + 209 + + + + + 57 + + + + + + + + + + + + + + + + + + 58 + + + + + 134 + + + + + 150 + + + + + 136 + + + + + 144 + + + + + 129 + + + + + 143 + + + + + 236 + + + + + 131 + + + + + + + + 149 + + + + + 145 + + + + + 130 + + + + + 24 + + + + + + + + + + + 92 + + + + + 5 + + + + + 239 + + + + + 23 + + + + + 295 + + + + + + + + 296 + + + + + + + + + 297 + + + + + 298 + + + + + 211 + + + + + + + + 212 + + + + + + + + + 195 + + + + + 196 + + + + + 346 + + + + + 348 + + + + + + + + 349 + + + + + + + + + + + + + + 350 + + + + + 351 + + + + + 354 + + + + + 374 + + + + + + + + 375 + + + + + + + + + 376 + + + + + + + + 387 + + + + + + + + + + + + + + + + + + + + + + + 388 + + + + + 389 + + + + + 390 + + + + + 391 + + + + + 392 + + + + + 393 + + + + + 394 + + + + + 395 + + + + + 396 + + + + + + + + 397 + + + + + + + + 398 + + + + + + + + 399 + + + + + 400 + + + + + 401 + + + + + 402 + + + + + 403 + + + + + 404 + + + + + + + + + + + + 405 + + + + + 406 + + + + + 407 + + + + + 408 + + + + + 409 + + + + + 410 + + + + + + + + + + 411 + + + + + 412 + + + + + 413 + + + + + 414 + + + + + + + + + + + 415 + + + + + 416 + + + + + 417 + + + + + 418 + + + + + 419 + + + + + 449 + + + + + + + + 450 + + + + + + + + + + 451 + + + + + 452 + + + + + 453 + + + + + 457 + + + + + 458 + + + + + 459 + + + + + 462 + + + + + 464 + + + + + 465 + + + + + 470 + + + + + 491 + + + + + + + + 492 + + + + + + + + + + + + 493 + + + + + 495 + + + + + + + + 496 + + + + + + + + + + + + + + + + + 497 + + + + + 498 + + + + + 499 + + + + + 500 + + + + + 501 + + + + + 502 + + + + + + + + 503 + + + + + 504 + + + + + 505 + + + + + 506 + + + + + 507 + + + + + + + + + + + + + + + + 508 + + + + + 509 + + + + + 510 + + + + + 511 + + + + + 512 + + + + + 513 + + + + + 514 + + + + + 515 + + + + + 516 + + + + + 532 + + + + + 551 + + + + + 554 + + + + + 558 + + + + + 561 + + + + + 564 + + + + + 567 + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + 569 + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + 3 + + {11, 11} + {10, 3} + + YES + + diff --git a/gen_icon b/gen_icon deleted file mode 160000 index 459f586..0000000 --- a/gen_icon +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 459f58681f0cad726c78c67eb166b0ce64b583f5 diff --git a/xcodepkgtool b/xcodepkgtool index c165b99..f371180 160000 --- a/xcodepkgtool +++ b/xcodepkgtool @@ -1 +1 @@ -Subproject commit c165b996e473b36fe462e57b04d85d2ec24652eb +Subproject commit f371180b95f35ef96fcbd46fbb8f78e4d008c8a3 diff --git a/build_settings.sh b/xcodepkgtool_settings.sh similarity index 76% rename from build_settings.sh rename to xcodepkgtool_settings.sh index 9b58c83..8bc1fe5 100644 --- a/build_settings.sh +++ b/xcodepkgtool_settings.sh @@ -4,20 +4,21 @@ # If tag is 'v1.3.1', set this 'v' tagprefix='v' +workspace='VisualJSON.xcworkspace' + # Deploy configuration name configuration='Release' -# Target name +# Scheme name # If your project have applicaiton target name 'YourApp', set this 'YourApp' -target='VisualJSON' +scheme='VisualJSON' # Application name # If your app name is not same to target name, change this. # If you set this 'MyApp', output is 'MyApp.app' and 'MyApp.pkg' -appname="$target" +appname="$scheme" # Codesign # You need '3rd Party Mac Developer Installer: Company Name' codesign to deploy your app to appstore -#codesign="3rd Party Mac Developer Installer" -codesign='3rd Party Mac Developer Installer: 3rddev Inc.' +codesign="3rd Party Mac Developer Installer"