Ad Template Maker: For Clipper I designed and implemented an application that queries the main SQL server via ODBC and ODBCKit (a third party framework) and gives artists all available information about an advertiser and their current ad. Applescript then directs InDesign to pre-fill an ad template with the data. This application uses multiple Objective-C classes, Applescript/Applescript Objective-C, third party ODBC classes, direct SQL queries in code, and command-line statements.

This application had to be designed to meet the needs of over 400 artists who use this every minute of the day to build ads. The layout has a large number of data points to display, and the order had to match their thinking and previous expectations of how to enter data quickly, so the layout and tab order was important. A custom table is drawn in the center to show only the data items supplied by the sales reps, and  the lower table had to show important book/issue information but not be so large or obtrusive to require window resizing. Certain elements needed to be able to be copied by the user to paste into documents. Invisible tabs change the layout based on 1 of 3 types of ads Clipper produces, so the user doesn't have to switch manually, it is all calculated for them.

UI of Ad Template Maker

 

Programming highlights:

  • Custom framework included to communicate with MS-SQL server (ODBCKit here)
  • Using stored SQL procedures and raw queries
  • Parsing data from ODBC query to multiple objects/classes
  • Custom table view cells before it was available by default in Cocoa
  • Manual/custom drawing for a large scroll view (Ad Color and Feel/Images box)
  • Scanning file system and sorting files to display in tab views and popup menus
  • Data transfer with Applescript Objective-C classes to drive InDesign to build customized documents

 

A compound row drawn using a custom class implementation.

Compound Row

 

Custom (fully manual drawing code) table, and custom menu items.

Custom table drawing   Menus customized for exactly wha the users need

Who can't resist a fancy about box?

Fancy about box