Sidebar.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /**
  2. * @author mrdoob / http://mrdoob.com/
  3. */
  4. var Sidebar = function ( editor ) {
  5. var container = new UI.Panel();
  6. container.setId( 'sidebar' );
  7. //
  8. var sceneTab = new UI.Text( 'SCENE' ).onClick( onClick );
  9. var projectTab = new UI.Text( 'PROJECT' ).onClick( onClick );
  10. var settingsTab = new UI.Text( 'SETTINGS' ).onClick( onClick );
  11. var tabs = new UI.Div();
  12. tabs.setId( 'tabs' );
  13. tabs.add( sceneTab, projectTab, settingsTab );
  14. container.add( tabs );
  15. function onClick( event ) {
  16. select( event.target.textContent );
  17. }
  18. //
  19. var scene = new UI.Span().add(
  20. new Sidebar.Scene( editor ),
  21. new Sidebar.Properties( editor ),
  22. new Sidebar.Animation( editor ),
  23. new Sidebar.Script( editor )
  24. );
  25. container.add( scene );
  26. var project = new UI.Span().add(
  27. new Sidebar.Project( editor )
  28. );
  29. container.add( project );
  30. var settings = new UI.Span().add(
  31. new Sidebar.Settings( editor ),
  32. new Sidebar.History( editor )
  33. );
  34. container.add( settings );
  35. //
  36. function select( section ) {
  37. sceneTab.setClass( '' );
  38. projectTab.setClass( '' );
  39. settingsTab.setClass( '' );
  40. scene.setDisplay( 'none' );
  41. project.setDisplay( 'none' );
  42. settings.setDisplay( 'none' );
  43. switch ( section ) {
  44. case 'SCENE':
  45. sceneTab.setClass( 'selected' );
  46. scene.setDisplay( '' );
  47. break;
  48. case 'PROJECT':
  49. projectTab.setClass( 'selected' );
  50. project.setDisplay( '' );
  51. break;
  52. case 'SETTINGS':
  53. settingsTab.setClass( 'selected' );
  54. settings.setDisplay( '' );
  55. break;
  56. }
  57. }
  58. select( 'SCENE' );
  59. return container;
  60. };