Peruttu

Mac OS X Cocoa GUI (Objective-C)

i need develop native cocoa (Objective-C) frontend for some C command line tool.

This tool should be run from cocoa app and will wait input in stdin. It accepts two command: "exit" and "update"

Exit will terminate app and update will return some xml in stdout.

I need cocoa frontend to show xml data in presentation shown in uploaded picture.

Top part contains list of top level objects and selecting row in table view should change details view in right pane.

Bottom part contains tab view with few tabs for each kind of nested to top objects. It behaves like top part and selecting one of nested object should show details in right part of tab view page.

Also important moment there is one objects tree for whole application instance, i.e. "New Window" should open new same window showing same data.

I'll provide emulator project which behaves like real command line tool providing some fake data. It ships static data but real tool will update xml tree, so i need update info and add/remove objects corresponding with new xml. Following is data provided by emulator:

<someinfo>

<topdatablock id="1" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1">

<nestedonedatablock id="1" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" />

<nestedonedatablock id="2" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" />

<nestedonedatablock id="3" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" />

<nestedonedatablock id="4" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" />

<nestedtwodatablock id="1" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" topreference="2" />

<nestedtwodatablock id="2" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" topreference="1" />

<nestedtwodatablock id="3" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" topreference="3" />

<nestedtwodatablock id="4" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" topreference="4" />

<nestedthreedatablock id="1" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" nestedonereference="5" />

<nestedthreedatablock id="2" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" nestedonereference="7" />

<nestedthreedatablock id="3" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" nestedonereference="11" />

<nestedthreedatablock id="4" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" nestedonereference="2" />

</topdatablock>

<topdatablock id="2" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1">

<nestedonedatablock id="5" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" />

<nestedonedatablock id="6" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" />

<nestedonedatablock id="7" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" />

<nestedonedatablock id="8" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" />

<nestedtwodatablock id="1" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" topreference="2" />

<nestedtwodatablock id="2" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" topreference="1" />

<nestedtwodatablock id="3" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" topreference="3" />

<nestedtwodatablock id="4" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" topreference="4" />

<nestedthreedatablock id="1" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" nestedonereference="4" />

<nestedthreedatablock id="2" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" nestedonereference="1" />

<nestedthreedatablock id="3" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" nestedonereference="2" />

<nestedthreedatablock id="4" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" nestedonereference="15" />

</topdatablock>

<topdatablock id="3" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1">

<nestedonedatablock id="9" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" />

<nestedonedatablock id="10" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" />

<nestedonedatablock id="11" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" />

<nestedonedatablock id="12" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" />

<nestedtwodatablock id="1" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" topreference="2" />

<nestedtwodatablock id="2" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" topreference="1" />

<nestedtwodatablock id="3" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" topreference="3" />

<nestedtwodatablock id="4" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" topreference="4" />

<nestedthreedatablock id="1" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" nestedonereference="5" />

<nestedthreedatablock id="2" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" nestedonereference="16" />

<nestedthreedatablock id="3" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" nestedonereference="7" />

<nestedthreedatablock id="4" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" nestedonereference="6" />

</topdatablock>

<topdatablock id="4" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1">

<nestedonedatablock id="13" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" />

<nestedonedatablock id="14" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" />

<nestedonedatablock id="15" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" />

<nestedonedatablock id="16" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" />

<nestedtwodatablock id="1" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" topreference="2" />

<nestedtwodatablock id="2" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" topreference="1" />

<nestedtwodatablock id="3" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" topreference="3" />

<nestedtwodatablock id="4" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" topreference="4" />

<nestedthreedatablock id="1" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" nestedonereference="3" />

<nestedthreedatablock id="2" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" nestedonereference="8" />

<nestedthreedatablock id="3" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" nestedonereference="11" />

<nestedthreedatablock id="4" fieldone="fieldone 1" fieldtwo="fieldtwo 1" fieldthree="fieldthree 1" nestedonereference="12" />

</topdatablock>

</someinfo>

Draw attention to "topreference" attributes in "nestedtwodatablock" node and "nestedonereference" in "nestedthreedatablock". THis data contains references to particular xml nodes identifying by id. Clicking on data in these columns (as in detail view pane) should select referenced object in corresponding table view.

Also it should have menu item "New Window" which allows open new window and show same information (note: it should use single instance of command line tool and should show same data in all open windows). Also it should have "Save" and "Print" (as in menu as in toolbar). Both these commands should generate some HTML (any which you like - i will change it myself later)

Taidot: C-ohjelmointi

Näytä lisää: xcode cocoa, tree update, tree node, single view application, print presentation, on line presentation, objective c to c, objective c project, objective c mac, node in tree, mac os cocoa, html 5 command, c to objective-c, cocoa application, c objective c, 9 to 5 mac, 8 x 8, cocoa gui, osx objective gui, window objective, objective gui, objective c windows, objective c on windows, mac os x 10.7, mac os x 10 6

About the Employer:
( 0 reviews ) Novosibirsk, Russian Federation

Projektin tunnus: #429191

1 freelanceria on tarjonnut keskimäärin 750 $ tähän työhön

outsource3dmlw

We are a European software company and have developed MacOS software.

750 $ USD 20 päivässä
(0 arvostelua)
0.0