/Tests/Manual/TableTest/GroupRowTest/AppController.j

http://github.com/cacaodev/cappuccino · Unknown · 126 lines · 89 code · 37 blank · 0 comment · 0 complexity · fbc983794870c1206a732d689670407c MD5 · raw file

  1. /*
  2. * AppController.j
  3. * GroupRowTest
  4. *
  5. * Created by You on August 27, 2010.
  6. * Copyright 2010, Your Company All rights reserved.
  7. */
  8. @import <Foundation/CPObject.j>
  9. @implementation AppController : CPObject
  10. {
  11. CPImage iconImage;
  12. }
  13. - (void)applicationDidFinishLaunching:(CPNotification)aNotification
  14. {
  15. var theWindow = [[CPWindow alloc] initWithContentRect:CGRectMakeZero() styleMask:CPBorderlessBridgeWindowMask],
  16. contentView = [theWindow contentView],
  17. tableView = [[CPTableView alloc] initWithFrame:CGRectMake(0.0, 0.0, 400.0, 400.0)];
  18. [tableView setAllowsMultipleSelection:YES];
  19. [tableView setAllowsColumnSelection:YES];
  20. [tableView setUsesAlternatingRowBackgroundColors:YES];
  21. [tableView setColumnAutoresizingStyle:CPTableViewLastColumnOnlyAutoresizingStyle];
  22. [tableView setDelegate:self];
  23. [tableView setDataSource:self];
  24. var iconView = [[CPImageView alloc] initWithFrame:CGRectMake(16, 16, 0, 0)];
  25. [iconView setImageScaling:CPImageScaleNone];
  26. var iconColumn = [[CPTableColumn alloc] initWithIdentifier:"icons"];
  27. [iconColumn setWidth:32.0];
  28. [iconColumn setMinWidth:32.0];
  29. [iconColumn setDataView:iconView];
  30. [tableView addTableColumn:iconColumn];
  31. iconImage = [[CPImage alloc] initWithContentsOfFile:"http://www.cappuccino-project.org/img/favicon.ico" size:CGSizeMake(16, 16)];
  32. for (var i = 1; i <= 5; i++)
  33. {
  34. var column = [[CPTableColumn alloc] initWithIdentifier:String(i)];
  35. [[column headerView] setStringValue:"Number " + i];
  36. [column setMaxWidth:500.0];
  37. [column setWidth:200.0];
  38. [tableView addTableColumn:column];
  39. }
  40. var scrollView = [[CPScrollView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth([contentView bounds]), CGRectGetHeight([contentView bounds]) / 2)];
  41. [scrollView setDocumentView:tableView];
  42. [scrollView setAutoresizingMask:CPViewWidthSizable | CPViewHeightSizable];
  43. [contentView addSubview:scrollView];
  44. tableView = [[CPTableView alloc] initWithFrame:CGRectMake(0.0, 0.0, 400.0, 400.0)];
  45. [tableView setAllowsMultipleSelection:YES];
  46. [tableView setAllowsColumnSelection:YES];
  47. [tableView setColumnAutoresizingStyle:CPTableViewLastColumnOnlyAutoresizingStyle];
  48. [tableView setSelectionHighlightStyle:CPTableViewSelectionHighlightStyleSourceList];
  49. [tableView setDelegate:self];
  50. [tableView setDataSource:self];
  51. var iconView = [[CPImageView alloc] initWithFrame:CGRectMake(16, 16, 0, 0)];
  52. [iconView setImageScaling:CPImageScaleNone];
  53. var iconColumn = [[CPTableColumn alloc] initWithIdentifier:"icons"];
  54. [iconColumn setWidth:32.0];
  55. [iconColumn setMinWidth:32.0];
  56. [iconColumn setDataView:iconView];
  57. [tableView addTableColumn:iconColumn];
  58. for (var i = 1; i <= 5; i++)
  59. {
  60. var column = [[CPTableColumn alloc] initWithIdentifier:String(i)];
  61. [[column headerView] setStringValue:"Number " + i];
  62. [column setMaxWidth:500.0];
  63. [column setWidth:200.0];
  64. [tableView addTableColumn:column];
  65. }
  66. var scrollView = [[CPScrollView alloc] initWithFrame:CGRectMake(0, CGRectGetHeight([contentView bounds]) / 2, CGRectGetWidth([contentView bounds]), CGRectGetHeight([contentView bounds]) / 2)];
  67. [scrollView setDocumentView:tableView];
  68. [scrollView setAutoresizingMask:CPViewWidthSizable | CPViewHeightSizable];
  69. [contentView addSubview:scrollView];
  70. [theWindow orderFront:self];
  71. }
  72. - (int)numberOfRowsInTableView:(CPTableView)atableView
  73. {
  74. return 500;
  75. }
  76. - (id)tableView:(CPTableView)aTableView objectValueForTableColumn:(CPTableColumn)aColumn row:(CPInteger)aRow
  77. {
  78. if ([aColumn identifier] === "icons")
  79. return iconImage;
  80. return aRow;
  81. }
  82. - (BOOL)tableView:(CPTableView)aTableView isGroupRow:(CPInteger)aRow
  83. {
  84. var groups = [];
  85. for (var i = 0; i < 100; i += 5)
  86. groups.push(i);
  87. return [groups containsObject:aRow];
  88. }
  89. @end