PageRenderTime 40ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/jEdit/tags/jedit-4-2-pre4/bsh/commands/workspaceEditor.bsh

#
Unknown | 123 lines | 108 code | 15 blank | 0 comment | 0 complexity | 0cf4dd259824c85d623ef6e97f3d551d MD5 | raw file
Possible License(s): BSD-3-Clause, AGPL-1.0, Apache-2.0, LGPL-2.0, LGPL-3.0, GPL-2.0, CC-BY-SA-3.0, LGPL-2.1, GPL-3.0, MPL-2.0-no-copyleft-exception, IPL-1.0
  1. /**
  2. * Make a new workspaceEditor associated with a workspace and place it on the
  3. * desktop.
  4. *
  5. * @method workspaceEditor( bsh.Interpreter parent, String name )
  6. *
  7. * @author Pat Niemeyer
  8. * @author Daniel Leuck
  9. */
  10. import java.awt.Insets;
  11. import bsh.Interpreter;
  12. workspaceEditor(Interpreter parent, String name )
  13. {
  14. if ( bsh.system.desktop == void ) {
  15. print("This only works with the bsh desktop...");
  16. return;
  17. }
  18. this.textarea = new JTextArea(15,40);
  19. textarea.setLineWrap(true);
  20. textarea.setWrapStyleWord(true);
  21. textarea.setTabSize(4);
  22. textarea.setMargin( new Insets(5,5,5,5) );
  23. // probably should overload desktop makeInternalFrame
  24. this.frame =
  25. new JInternalFrame("Editor for: "+name, true, true, true, true );
  26. frame.frameIcon=bsh.system.icons.script;
  27. frame.getContentPane().add( new JScrollPane(textarea), "Center");
  28. frame.setVisible( true );
  29. open()
  30. {
  31. this.chooser = new JFileChooser();
  32. chooser.setCurrentDirectory( pathToFile(bsh.cwd) );
  33. this.returnVal = chooser.showOpenDialog( bsh.system.desktop.pane );
  34. if (returnVal == JFileChooser.APPROVE_OPTION) {
  35. this.file = chooser.getSelectedFile();
  36. this.reader=new FileReader( file );
  37. this.ca=new char [file.length()];
  38. reader.read(ca);
  39. textarea.setText( new String(ca) );
  40. }
  41. }
  42. save()
  43. {
  44. this.chooser = new JFileChooser();
  45. chooser.setCurrentDirectory( pathToFile(bsh.cwd) );
  46. this.returnVal = chooser.showSaveDialog( bsh.system.desktop.pane );
  47. if (returnVal == JFileChooser.APPROVE_OPTION) {
  48. this.file = chooser.getSelectedFile();
  49. this.writer=new FileWriter( file );
  50. writer.write( textarea.getText().toCharArray() );
  51. writer.close();
  52. }
  53. }
  54. run()
  55. {
  56. this.interpreter = makeWorkspace( "Run Output: " +name);
  57. // should make this new namespace... look at run() command
  58. interpreter.eval( textarea.getText() );
  59. print("done run...");
  60. }
  61. actionPerformed(e)
  62. {
  63. this.com = e.getActionCommand();
  64. if ( com.equals("Close") )
  65. frame.dispose();
  66. else if ( com.equals("New") )
  67. textarea.setText("");
  68. else if ( com.equals("Open") )
  69. open();
  70. else if ( com.equals("Save") )
  71. save();
  72. else if ( com.equals("Eval in Workspace") )
  73. // eval in parent global namespace
  74. parent.eval( textarea.getText() );
  75. else if ( com.equals("Run in new Workspace") )
  76. run();
  77. }
  78. this.menubar = new JMenuBar();
  79. this.menu = new JMenu("File");
  80. this.mi = new JMenuItem("New");
  81. mi.addActionListener(this);
  82. menu.add(mi);
  83. mi = new JMenuItem("Open");
  84. mi.addActionListener(this);
  85. menu.add(mi);
  86. mi = new JMenuItem("Save");
  87. mi.addActionListener(this);
  88. menu.add(mi);
  89. mi = new JMenuItem("Close");
  90. mi.addActionListener(this);
  91. menu.add(mi);
  92. menubar.add(menu);
  93. menu = new JMenu("Evaluate");
  94. mi = new JMenuItem("Eval in Workspace");
  95. mi.addActionListener(this);
  96. menu.add(mi);
  97. mi = new JMenuItem("Run in new Workspace");
  98. mi.addActionListener(this);
  99. menu.add(mi);
  100. menubar.add(menu);
  101. menu = fontMenu( textarea );
  102. menubar.add(menu);
  103. frame.setMenuBar( menubar );
  104. frame.pack();
  105. bsh.system.desktop.addInternalFrame( frame );
  106. frame.selected=true;
  107. return frame;
  108. }