PageRenderTime 69ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

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

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