/Frameworks/AppKit/rhino.platform/CPTableColumn.j

http://github.com/jfahrenkrug/MapKit-HelloWorld · Unknown · 219 lines · 219 code · 0 blank · 0 comment · 0 complexity · 85db6268df44b3e02dc8edc8ccb2eeab MD5 · raw file

  1. I;23;Foundation/Foundation.jc;7157;
  2. CPTableColumnNoResizing=0;
  3. CPTableColumnAutoresizingMask=1;
  4. CPTableColumnUserResizingMask=2;
  5. var _1=objj_allocateClassPair(CPObject,"CPTableColumn"),_2=_1.isa;
  6. class_addIvars(_1,[new objj_ivar("_identifier"),new objj_ivar("_headerView"),new objj_ivar("_tableView"),new objj_ivar("_width"),new objj_ivar("_minWidth"),new objj_ivar("_maxWidth"),new objj_ivar("_resizingMask"),new objj_ivar("_dataView"),new objj_ivar("_dataViewData"),new objj_ivar("_dataViewForView"),new objj_ivar("_purgableInfosForDataView")]);
  7. objj_registerClassPair(_1);
  8. objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path));
  9. class_addMethods(_1,[new objj_method(sel_getUid("initWithIdentifier:"),function(_3,_4,_5){
  10. with(_3){
  11. _3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init");
  12. if(_3){
  13. objj_msgSend(_3,"_init");
  14. _identifier=_5;
  15. _width=40;
  16. _minWidth=8;
  17. _maxWidth=1000;
  18. var _6=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMakeZero());
  19. objj_msgSend(_6,"setValue:forThemeAttribute:inState:",objj_msgSend(CPColor,"whiteColor"),"text-color",CPThemeStateHighlighted);
  20. objj_msgSend(_3,"setDataView:",_6);
  21. _headerView=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMakeZero());
  22. objj_msgSend(_headerView,"setBackgroundColor:",objj_msgSend(CPColor,"greenColor"));
  23. }
  24. return _3;
  25. }
  26. }),new objj_method(sel_getUid("_init"),function(_7,_8){
  27. with(_7){
  28. _dataViewData={};
  29. _dataViewForView={};
  30. _purgableInfosForDataView={};
  31. }
  32. }),new objj_method(sel_getUid("setIdentifier:"),function(_9,_a,_b){
  33. with(_9){
  34. _identifier=_b;
  35. }
  36. }),new objj_method(sel_getUid("identifier"),function(_c,_d){
  37. with(_c){
  38. return _identifier;
  39. }
  40. }),new objj_method(sel_getUid("setTableView:"),function(_e,_f,_10){
  41. with(_e){
  42. _tableView=_10;
  43. }
  44. }),new objj_method(sel_getUid("tableView"),function(_11,_12){
  45. with(_11){
  46. return _tableView;
  47. }
  48. }),new objj_method(sel_getUid("setWidth:"),function(_13,_14,_15){
  49. with(_13){
  50. _width=_15;
  51. }
  52. }),new objj_method(sel_getUid("width"),function(_16,_17){
  53. with(_16){
  54. return _width;
  55. }
  56. }),new objj_method(sel_getUid("setMinWidth:"),function(_18,_19,_1a){
  57. with(_18){
  58. if(_width<(_minWidth=_1a)){
  59. objj_msgSend(_18,"setWidth:",_minWidth);
  60. }
  61. }
  62. }),new objj_method(sel_getUid("minWidth"),function(_1b,_1c){
  63. with(_1b){
  64. return _minWidth;
  65. }
  66. }),new objj_method(sel_getUid("setMaxWidth:"),function(_1d,_1e,_1f){
  67. with(_1d){
  68. if(_width>(_maxmimumWidth=_1f)){
  69. objj_msgSend(_1d,"setWidth:",_maxWidth);
  70. }
  71. }
  72. }),new objj_method(sel_getUid("setResizingMask:"),function(_20,_21,_22){
  73. with(_20){
  74. _resizingMask=_22;
  75. }
  76. }),new objj_method(sel_getUid("resizingMask"),function(_23,_24){
  77. with(_23){
  78. return _resizingMask;
  79. }
  80. }),new objj_method(sel_getUid("sizeToFit"),function(_25,_26){
  81. with(_25){
  82. var _27=CPRectGetWidth(objj_msgSend(_headerView,"frame"));
  83. if(_27<_minWidth){
  84. objj_msgSend(_25,"setMinWidth:",_27);
  85. }else{
  86. if(_27>_maxWidth){
  87. objj_msgSend(_25,"setMaxWidth:",_27);
  88. }
  89. }
  90. if(_width!=_27){
  91. objj_msgSend(_25,"setWidth:",_27);
  92. }
  93. }
  94. }),new objj_method(sel_getUid("setEditable:"),function(_28,_29,_2a){
  95. with(_28){
  96. _isEditable=_2a;
  97. }
  98. }),new objj_method(sel_getUid("isEditable"),function(_2b,_2c){
  99. with(_2b){
  100. return _isEditable;
  101. }
  102. }),new objj_method(sel_getUid("setHeaderView:"),function(_2d,_2e,_2f){
  103. with(_2d){
  104. _headerView=_2f;
  105. }
  106. }),new objj_method(sel_getUid("headerView"),function(_30,_31){
  107. with(_30){
  108. return _headerView;
  109. }
  110. }),new objj_method(sel_getUid("setDataCell:"),function(_32,_33,_34){
  111. with(_32){
  112. objj_msgSend(_32,"setDataView:",_34);
  113. }
  114. }),new objj_method(sel_getUid("setDataView:"),function(_35,_36,_37){
  115. with(_35){
  116. if(_dataView){
  117. _dataViewData[objj_msgSend(_dataView,"hash")]=nil;
  118. }
  119. _dataView=_37;
  120. _dataViewData[objj_msgSend(_37,"hash")]=objj_msgSend(CPKeyedArchiver,"archivedDataWithRootObject:",_37);
  121. }
  122. }),new objj_method(sel_getUid("dataCell"),function(_38,_39){
  123. with(_38){
  124. return _dataView;
  125. }
  126. }),new objj_method(sel_getUid("dataView"),function(_3a,_3b){
  127. with(_3a){
  128. return objj_msgSend(_3a,"dataCell");
  129. }
  130. }),new objj_method(sel_getUid("dataCellForRow:"),function(_3c,_3d,_3e){
  131. with(_3c){
  132. return objj_msgSend(_3c,"dataView");
  133. }
  134. }),new objj_method(sel_getUid("dataViewForRow:"),function(_3f,_40,_41){
  135. with(_3f){
  136. return objj_msgSend(_3f,"dataCellForRow:",_41);
  137. }
  138. }),new objj_method(sel_getUid("_markView:inRow:asPurgable:"),function(_42,_43,_44,_45,_46){
  139. with(_42){
  140. var _47=objj_msgSend(_44,"hash"),_48=objj_msgSend(_dataViewForView[_47],"hash");
  141. if(!_purgableInfosForDataView[_48]){
  142. if(!_46){
  143. return;
  144. }
  145. _purgableInfosForDataView[_48]={};
  146. }
  147. if(!_46){
  148. if(_purgableInfosForDataView[_48][_47]){
  149. CPLog.warn("removing unpurgable "+_purgableInfosForDataView[_48][_47]);
  150. }
  151. delete _purgableInfosForDataView[_48][_47];
  152. }else{
  153. _purgableInfosForDataView[_48][_47]={view:(_44),row:(_45)};
  154. }
  155. }
  156. }),new objj_method(sel_getUid("_newDataViewForRow:avoidingRows:"),function(_49,_4a,_4b,_4c){
  157. with(_49){
  158. var _4d=objj_msgSend(_49,"dataViewForRow:",_4b),_4e=objj_msgSend(_4d,"hash"),_4f=_purgableInfosForDataView[_4e];
  159. if(_4f){
  160. for(var key in _4f){
  161. var _51=_4f[key];
  162. delete _4f[key];
  163. return ((_51).view);
  164. }
  165. }
  166. if(!_dataViewData[_4e]){
  167. _dataViewData[_4e]=objj_msgSend(CPKeyedArchiver,"archivedDataWithRootObject:",_4d);
  168. }
  169. var _52=objj_msgSend(CPKeyedUnarchiver,"unarchiveObjectWithData:",_dataViewData[_4e]);
  170. _dataViewForView[objj_msgSend(_52,"hash")]=_4d;
  171. CPLog.warn("creating cell: %s",_52);
  172. return _52;
  173. }
  174. }),new objj_method(sel_getUid("_purge"),function(_53,_54){
  175. with(_53){
  176. for(var _55 in _purgableInfosForDataView){
  177. var _56=_purgableInfosForDataView[_55];
  178. for(var key in _56){
  179. var _58=((_56[key]).view);
  180. if(!_58){
  181. CPLog.info("key="+key+" view="+_58+" purgableInfos[key]="+_56[key]);
  182. }else{
  183. if(_58._superview){
  184. objj_msgSend(_58,"setHidden:",YES);
  185. }
  186. }
  187. }
  188. }
  189. }
  190. })]);
  191. var _59="CPTableColumnIdentifierKey",_5a="CPTableColumnHeaderViewKey",_5b="CPTableColumnDataViewKey",_5c="CPTableColumnWidthKey",_5d="CPTableColumnMinWidthKey",_5e="CPTableColumnMaxWidthKey",_5f="CPTableColumnResizingMaskKey";
  192. var _1=objj_getClass("CPTableColumn");
  193. if(!_1){
  194. objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPTableColumn\""));
  195. }
  196. var _2=_1.isa;
  197. class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_60,_61,_62){
  198. with(_60){
  199. objj_msgSend(_60,"_init");
  200. _identifier=objj_msgSend(_62,"decodeObjectForKey:",_59);
  201. objj_msgSend(_60,"setHeaderView:",objj_msgSend(_62,"decodeObjectForKey:",_5a));
  202. objj_msgSend(_60,"setDataView:",objj_msgSend(_62,"decodeObjectForKey:",_5b));
  203. _width=objj_msgSend(_62,"decodeFloatForKey:",_5c);
  204. _minWidth=objj_msgSend(_62,"decodeFloatForKey:",_5d);
  205. _maxWidth=objj_msgSend(_62,"decodeFloatForKey:",_5e);
  206. _resizingMask=objj_msgSend(_62,"decodeBoolForKey:",_5f);
  207. return _60;
  208. }
  209. }),new objj_method(sel_getUid("encodeWithCoder:"),function(_63,_64,_65){
  210. with(_63){
  211. objj_msgSend(_65,"encodeObject:forKey:",_identifier,_59);
  212. objj_msgSend(_65,"encodeObject:forKey:",_headerView,_5a);
  213. objj_msgSend(_65,"encodeObject:forKey:",_dataView,_5b);
  214. objj_msgSend(_65,"encodeObject:forKey:",_width,_5c);
  215. objj_msgSend(_65,"encodeObject:forKey:",_minWidth,_5d);
  216. objj_msgSend(_65,"encodeObject:forKey:",_maxWidth,_5e);
  217. objj_msgSend(_65,"encodeObject:forKey:",_resizingMask,_5f);
  218. }
  219. })]);