Advertisement
Guest User

Untitled

a guest
Jun 15th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.39 KB | None | 0 0
  1. (ns grid-test.core
  2. (:require [reagent.core :as reagent :refer [atom]]
  3. [react-data-grid :as ReactDataGrid]
  4. [ag-grid-react :refer [AgGridReact]]))
  5.  
  6. ;; define your app data so that it doesn't get over-written on reload
  7.  
  8. (defonce app-state (atom {:text "Olรก Mundo!!"}))
  9.  
  10. (defn hello-world []
  11. [:div
  12. [:h1 (:text @app-state)]
  13. [:h3 "Edit this and watch it not change!"]])
  14.  
  15. (defn some-grid []
  16. (let [columns [{:key "id" :name "ID"}
  17. {:key "title" :name "Title" :editable true}]
  18. rows [{:id 0 :title "Zerimo"}
  19. {:id 1 :title "Primeiro"}
  20. {:id 2 :title "Segundo"}]]
  21. [:div.container
  22. [:div.row
  23. [:div.col-md-12
  24. [:> ReactDataGrid {:columns columns
  25. :rowGetter #(get (clj->js rows) %)
  26. :rowsCount 3
  27. :enableCellSelect true}]]]]
  28. )
  29. )
  30.  
  31. (defn on-cell-clicked [& args]
  32. (js/console.log args))
  33.  
  34. (defn row-style [selected-id params]
  35. (when (= selected-id (-> (js->clj params) (get "data") (get "id")))
  36. (clj->js {:background-color "#b7e4ff"})))
  37.  
  38. (defn other-grid [selected-id]
  39. (let [columns [{:field "id" :headerName "ID"}
  40. {:field "title" :headerName "Title" :editable true}]
  41. rows [{:id 0 :title "Zerimo"}
  42. {:id 1 :title "Primeiro"}
  43. {:id 2 :title "Segundo"}]]
  44. [:div.container
  45. [:div.row
  46. [:div.col-md-12
  47. [:div.ag-theme-balham {:style {:height "500px" :width "100%"}}
  48. [:> AgGridReact {:gridOptions {:columnDefs columns
  49. :rowData rows
  50. :rowSelection "single"
  51. :onCellClicked on-cell-clicked
  52. ;; :onRowClicked on-cell-clicked
  53. :getRowStyle (partial row-style selected-id)}}]]]]]
  54. )
  55. )
  56.  
  57. (defn start []
  58. (reagent/render-component [other-grid 1]
  59. (. js/document (getElementById "app"))))
  60.  
  61. (defn ^:export init []
  62. ;; init is called ONCE when the page loads
  63. ;; this is called in the index.html and must be exported
  64. ;; so it is available even in :advanced release builds
  65. (start))
  66.  
  67. (defn stop []
  68. ;; stop is called before any code is reloaded
  69. ;; this is controlled by :before-load in the config
  70. (js/console.log "stop"))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement