PageRenderTime 26ms CodeModel.GetById 0ms RepoModel.GetById 0ms app.codeStats 0ms

/jEdit/tags/jedit-4-1-pre5/bsh/commands/workspaceEditor.bsh

#
Unknown | 111 lines | 96 code | 15 blank | 0 comment | 0 complexity | 1a9fdd145dd1bfb76f8ca1de1a3db861 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 in the GUI.
  3. @method workspaceEditor( bsh.Interpreter parent, String name )
  4. */
  5. import java.awt.Insets;
  6. import bsh.Interpreter;
  7. workspaceEditor(Interpreter parent, String name ) {
  8. if ( bsh.system.desktop == void ) {
  9. print("This only works with the bsh desktop...");
  10. return;
  11. }
  12. textarea = new JTextArea(15,40);
  13. textarea.setLineWrap(true);
  14. textarea.setWrapStyleWord(true);
  15. textarea.setTabSize(4);
  16. textarea.setMargin( new Insets(5,5,5,5) );
  17. // probably should overload desktop makeInternalFrame
  18. frame = new JInternalFrame("Editor for: "+name, true, true, true, true );
  19. frame.getContentPane().add( new JScrollPane(textarea), "Center");
  20. frame.setVisible( true );
  21. open() {
  22. chooser = new JFileChooser();
  23. chooser.setCurrentDirectory( pathToFile(bsh.cwd) );
  24. returnVal = chooser.showOpenDialog( bsh.system.desktop.pane );
  25. if(returnVal == JFileChooser.APPROVE_OPTION) {
  26. file = chooser.getSelectedFile();
  27. reader=new FileReader( file );
  28. ca=new char [file.length()];
  29. reader.read(ca);
  30. textarea.setText( new String(ca) );
  31. }
  32. }
  33. save() {
  34. chooser = new JFileChooser();
  35. chooser.setCurrentDirectory( pathToFile(bsh.cwd) );
  36. returnVal = chooser.showSaveDialog( bsh.system.desktop.pane );
  37. if(returnVal == JFileChooser.APPROVE_OPTION) {
  38. file = chooser.getSelectedFile();
  39. writer=new FileWriter( file );
  40. writer.write( textarea.getText().toCharArray() );
  41. writer.close();
  42. }
  43. }
  44. run() {
  45. interpreter = makeWorkspace( "Run Output: " +name);
  46. // should make this new namespace... look at run() command
  47. interpreter.eval( textarea.getText() );
  48. print("done run...");
  49. }
  50. actionPerformed(e) {
  51. com = e.getActionCommand();
  52. if ( com.equals("Close") )
  53. frame.dispose();
  54. else if ( com.equals("New") )
  55. textarea.setText("");
  56. else if ( com.equals("Open") )
  57. open();
  58. else if ( com.equals("Save") )
  59. save();
  60. else if ( com.equals("Eval in Workspace") )
  61. // eval in parent global namespace
  62. parent.eval( textarea.getText() );
  63. else if ( com.equals("Run in new Workspace") )
  64. run();
  65. }
  66. menubar = new JMenuBar();
  67. menu = new JMenu("File");
  68. mi = new JMenuItem("New");
  69. mi.addActionListener(this);
  70. menu.add(mi);
  71. mi = new JMenuItem("Open");
  72. mi.addActionListener(this);
  73. menu.add(mi);
  74. mi = new JMenuItem("Save");
  75. mi.addActionListener(this);
  76. menu.add(mi);
  77. mi = new JMenuItem("Close");
  78. mi.addActionListener(this);
  79. menu.add(mi);
  80. menubar.add(menu);
  81. menu = new JMenu("Evaluate");
  82. mi = new JMenuItem("Eval in Workspace");
  83. mi.addActionListener(this);
  84. menu.add(mi);
  85. mi = new JMenuItem("Run in new Workspace");
  86. mi.addActionListener(this);
  87. menu.add(mi);
  88. menubar.add(menu);
  89. menu = bsh.system.desktop.makeFontMenu( textarea );
  90. menubar.add(menu);
  91. frame.setMenuBar( menubar );
  92. frame.pack();
  93. bsh.system.desktop.pane.add( frame );
  94. frame.toFront();
  95. return frame;
  96. }