From e7e804cae3689fb996772ecc713b2eee0b30fc39 Mon Sep 17 00:00:00 2001 From: tlrobinson Date: Sun, 7 Jun 2009 14:58:24 -0700 Subject: [PATCH] TableTest --- TableTest/AppController.j | 109 ++++++++++++++++++++++++++++++++ TableTest/Info.plist | 12 ++++ TableTest/Rakefile | 25 ++++++++ TableTest/Resources/spinner.gif | Bin 0 -> 1849 bytes TableTest/index-debug.html | 69 ++++++++++++++++++++ TableTest/index.html | 69 ++++++++++++++++++++ TableTest/main.j | 18 ++++++ 7 files changed, 302 insertions(+) create mode 100644 TableTest/AppController.j create mode 100644 TableTest/Info.plist create mode 100644 TableTest/Rakefile create mode 100644 TableTest/Resources/spinner.gif create mode 100644 TableTest/index-debug.html create mode 100644 TableTest/index.html create mode 100755 TableTest/main.j diff --git a/TableTest/AppController.j b/TableTest/AppController.j new file mode 100644 index 000000000..97e6e1ba4 --- /dev/null +++ b/TableTest/AppController.j @@ -0,0 +1,109 @@ + +import +import + +CPLogRegister(CPLogConsole); + +@implementation AppController : CPObject +{ + CPTableView _tableView; + CPArray _data; + CPImage _iconImage; +} + +- (void)applicationDidFinishLaunching:(CPNotification)aNotification +{ + var view = [[CPView alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 100.0)]; + + [view setBackgroundColor:[CPColor whiteColor]]; + [view enterFullScreenMode:nil withOptions:nil]; + + _data = [1, 2]; + + _tableView = [[CPTableView alloc] initWithFrame:[view bounds]]; + //[_tableView setBackgroundColor:[CPColor blueColor]]; + + var iconView = [[CPImageView alloc] initWithFrame:CGRectMake(16,16,0,0)]; + [iconView setImageScaling:CPScaleNone]; + + var iconColumn = [[CPTableColumn alloc] initWithIdentifier:"icons"]; + [iconColumn setWidth:32]; + [iconColumn setDataView:iconView]; + + [_tableView addTableColumn:iconColumn]; + + for (var i = 1; i <= 10; i++) + { + var column = [[CPTableColumn alloc] initWithIdentifier:String(i)]; + + [[column headerView] setStringValue:"Number"]; + [[column headerView] sizeToFit]; + [column setWidth:[[column headerView] frame].size.width]; + + [_tableView addTableColumn:column]; + } + + var scrollView = [[CPScrollView alloc] initWithFrame:[view bounds]]; + + [scrollView setDocumentView:_tableView]; + [scrollView setAutoresizingMask:CPViewWidthSizable | CPViewHeightSizable]; + + [view addSubview:scrollView]; + + [_tableView setDelegate:self]; + [_tableView setDataSource:self]; + + _iconImage = [[CPImage alloc] initWithContentsOfFile:"http://cappuccino.org/images/favicon.png" size:CGSizeMake(16,16)]; +} + +- (int)numberOfRowsInTableView:(CPTableView)tableView +{ + return 7000000; +} + +- (id)tableView:(CPTableView)tableView objectValueForTableColumn:(CPTableColumn)tableColumn row:(int)row +{ + if ([tableColumn identifier] == "icons") + return _iconImage + else + return String((row + 1) * [[tableColumn identifier] intValue]); +} +/* +- (id)tableView:(CPTableView)tableView heightOfRow:(int)row +{ + //CPLog.info("heightOfRow:"+row); + return 20.0 + ROUND(row * 0.5); +} +*/ +//- (void)tableViewSelectionIsChanging:(CPNotification)aNotification +//{ +// CPLog.debug(@"changing! %@", [aNotification description]); +//} +// +//- (void)tableViewSelectionDidChange:(CPNotification)aNotification +//{ +// CPLog.debug(@"did change! %@", [aNotification description]); +//} + +- (BOOL)tableView:(CPTableView)aTableView shouldSelectRow:(int)rowIndex +{ + //CPLog.debug(@"shouldSelectRow %d", rowIndex); + for (var i = 2, sqrt = SQRT(rowIndex+1); i <= sqrt; i++) + if ((rowIndex+1) % i === 0) + return false + return true; +} + +- (BOOL)selectionShouldChangeInTableView:(CPTableView)aTableView +{ + //CPLog.debug(@"selectionShouldChangeInTableView"); + return YES; +} + +//- (CPIndexSet)tableView:(CPTableView)tableView selectionIndexesForProposedSelection:(CPIndexSet)proposedSelectionIndexes +//{ +// CPLog.debug(@"selectionIndexesForProposedSelection %@", [proposedSelectionIndexes description]); +// return proposedSelectionIndexes; +//} + +@end diff --git a/TableTest/Info.plist b/TableTest/Info.plist new file mode 100644 index 000000000..78ac6aab8 --- /dev/null +++ b/TableTest/Info.plist @@ -0,0 +1,12 @@ + + + + + CPApplicationDelegateClass + AppController + CPBundleName + TableTest + CPPrincipalClass + CPApplication + + diff --git a/TableTest/Rakefile b/TableTest/Rakefile new file mode 100644 index 000000000..26682d25f --- /dev/null +++ b/TableTest/Rakefile @@ -0,0 +1,25 @@ + +require 'objective-j' +require 'objective-j/bundletask' + +if !ENV['CONFIG'] + ENV['CONFIG'] = 'Debug' +end + +ObjectiveJ::BundleTask.new(:TableTest) do |t| + t.name = 'TableTest' + t.identifier = 'com.yourcompany.TableTest' + t.version = '1.0' + t.author = 'Your Company' + t.email = 'feedback @nospam@ yourcompany.com' + t.summary = 'TableTest' + t.sources = FileList['*.j'] + t.resources = FileList['Resources/*'] + t.index_file = 'index.html' + t.info_plist = 'Info.plist' + t.build_path = File.join('Build', ENV['CONFIG'], 'TableTest') + t.flag = '-DDEBUG' if ENV['CONFIG'] == 'Debug' + t.flag = '-O' if ENV['CONFIG'] == 'Release' +end + +task :default => [:TableTest] diff --git a/TableTest/Resources/spinner.gif b/TableTest/Resources/spinner.gif new file mode 100644 index 0000000000000000000000000000000000000000..06dbc2bc21dddcf0e09b566d5b211aee89570f52 GIT binary patch literal 1849 zcma*odr(tX9tZHtz31lM+(&Y`A`Ou`NeG&R#DrIfV%?hng21vs6v>ooRQQFbk7E_K!V( z{?5!fpZWgIZ%*d6t%i*j24bL}AZUJm9)h6R*;%L4IWse3G#VWaN1#$zSSXcBhlYlH zJ|D}n{r&w2f+Qp)SS*&n?*G4}{}!h?td_mjU6Kad-rW*QwWYCUk7d^e+sjpZAn6kT z5rM;`{~_}-wm+L@%+E;JphLm}C3WzQAQD0wBoY|rOTQX{(@pp-WAA8Iw0HKl|15j) zhGh(SFWu#5zUCw^T!}C~eC}~?{xG-r7ugQC>taC+|L^xr&a%{#cgUOZXIM&v?)k^2 z1i5%0!U00wq)r4vlAwXBA_m5J5WNeuBm-XJQ5pG4GD%vc|K){+TJ{AkHqN@SJKczX zU}QRd9n*_bf^h94)6Ctv{CUfz_;qs#RDuQ$DR%y1&5G-a6rhf*4Y zl+UOD1*GE{GQ7vv;c-tTIMkz0ovO>9j%b5hpa@a*CBJ#W!0@ndSwF|%hMkdFtXiU) z`BEp+yhkt8ZY>tg&uyH@%^%K4jDrbA;et&vnnzZ3z22@e6<27z2Vk13kb7OtISyxv z(XoO-LNQCZe3lfzc%*pNqU<9T+p~teThOEB+~e&U0mC|zS{Q)dJZ)!^1f7L(zg*L> z*vSW%?dR~@@0(}x6-V^A`~ImD;)NaBUnP8;RH=bS2@pk`wp>>8r&jGjmGPy%1BW}v zoPo}ca$~bze@efc3kapuEVW1!%teOZT3j2Tw5=hjiAf02d}7dL0oFC%@=RXp5Ow#% z@a>+AM|YWt$n&e`>sB-32gBcuTi>R>*|8@lp`y6thc7ydyqDsuUn~YzZf|{-R@-3y zL#wx{Ii}xxL_csiW*LBn0-A$>zp4WOmkf6=ilrjlW?-l9+bCd7|i?*b5NTmy<<6NZ0T8$SN@mwdC2f z6jqK=N@bS@!=YSj%>h0}*4p+%0HbTIrE$w7UMT6+AZZ&DAo*qZAAi(OtNbIfl#Dw^ zJWeiCp~zi#&t6x}m9)O^eR4HiLV3QA<<0>HZ8%$^lrSE94Wb}=+MM^!b>n#5&-JQR zkr-CEu9C;_F*7DqDisulV6Pmg$nFL0TPn%~*m^-`Z3^BgU(sNpnx%nW(!eV9A&FvI zHL3X3lw8Wji^6=8KbQDE-e%b?svdFxxdh$8r97@7$ojeI`6AL8Ob6QC$qh&>ZWVDX1F{0vJnT%%mE;GveKWR%C} zM&4d;Jf3s9|HAA)yVUPo`Aq;0do#)uHSXi5*QF*)x@MVVHr+cN)uMZ__F|&Ta#p8d z53TOKtce!PJUuie8UWol-S(`c2nH?UGqJP{!4RR4u$LCfn)q-hj0^f=h(VYy)T6eN zhRO!ja-aDBTcgeyP(8Ua4IdiOog^*CQa?R(cP#9AgL9`j>EX-6Yf1lzX(!~``M1XC zNmM<4<6d~wWZ$Xrk0K}UteTrq@LBBk#MsjkK;pbuVhe)NI7(7Pf(l?lxC7=1Z7Pzl zMbS;nV4NI5_N{1$P)&XC)huOGQ+h^zpYUZfb*1n6>!`#*b3y52LGmi+<4sY5jyD#- zw&$d}DTguLAfnRtjrM*JfqtHqUu6rQoU=g%1E9xk%;)TDm^2<8n-0IhTsQFaek)MY}>PK4;nBk=ow4pF>vzkO& gna%Org-kgQCf=+BeMi^RbuY;YE~rTjend;_cdi8t>i_@% literal 0 HcmV?d00001 diff --git a/TableTest/index-debug.html b/TableTest/index-debug.html new file mode 100644 index 000000000..9bb71cc81 --- /dev/null +++ b/TableTest/index-debug.html @@ -0,0 +1,69 @@ + + + + + + + + TableTest + + + + + + + + + + + + +
+ + + +
+ + + diff --git a/TableTest/index.html b/TableTest/index.html new file mode 100644 index 000000000..9965f27f7 --- /dev/null +++ b/TableTest/index.html @@ -0,0 +1,69 @@ + + + + + + + + TableTest + + + + + + + + + + + + +
+ + + +
+ + + + diff --git a/TableTest/main.j b/TableTest/main.j new file mode 100755 index 000000000..ee431dc77 --- /dev/null +++ b/TableTest/main.j @@ -0,0 +1,18 @@ +/* + * AppController.j + * TableTest + * + * Created by You on June 7, 2009. + * Copyright 2009, Your Company All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPApplicationMain(args, namedArgs); +}