/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
- import java.awt.Insets;
- workspaceEditor( bsh.Interpreter parent, String name ) {
- if ( bsh.system.desktop == void ) {
- print("This only works with the bsh desktop...");
- return;
- }
- textarea = new JTextArea(15,40);
- textarea.setLineWrap(true);
- textarea.setWrapStyleWord(true);
- textarea.setTabSize(4);
- textarea.setMargin( new Insets(5,5,5,5) );
- // probably should overload desktop makeInternalFrame
- frame = new JInternalFrame("Editor for: "+name, true, true, true, true );
- frame.getContentPane().add( new JScrollPane(textarea), "Center");
- frame.setVisible( true );
- open() {
- chooser = new JFileChooser();
- chooser.setCurrentDirectory( pathToFile(bsh.cwd) );
- returnVal = chooser.showOpenDialog( bsh.system.desktop.pane );
- if(returnVal == JFileChooser.APPROVE_OPTION) {
- file = chooser.getSelectedFile();
- reader=new FileReader( file );
- ca=new char [file.length()];
- reader.read(ca);
- textarea.setText( new String(ca) );
- }
- }
- save() {
- chooser = new JFileChooser();
- chooser.setCurrentDirectory( pathToFile(bsh.cwd) );
- returnVal = chooser.showSaveDialog( bsh.system.desktop.pane );
- if(returnVal == JFileChooser.APPROVE_OPTION) {
- file = chooser.getSelectedFile();
- writer=new FileWriter( file );
- writer.write( textarea.getText().toCharArray() );
- writer.close();
- }
- }
- run() {
- interpreter = makeWorkspace( "Run Output: " +name);
- // should make this new namespace... look at run() command
- interpreter.eval( textarea.getText() );
- print("done run...");
- }
- actionPerformed(e) {
- com = e.getActionCommand();
- if ( com.equals("Close") )
- frame.dispose();
- else if ( com.equals("New") )
- textarea.setText("");
- else if ( com.equals("Open") )
- open();
- else if ( com.equals("Save") )
- save();
- else if ( com.equals("Eval in Workspace") )
- // eval in parent global namespace
- parent.eval( textarea.getText() );
- else if ( com.equals("Run in new Workspace") )
- run();
- }
- menubar = new JMenuBar();
- menu = new JMenu("File");
- mi = new JMenuItem("New");
- mi.addActionListener(this);
- menu.add(mi);
- mi = new JMenuItem("Open");
- mi.addActionListener(this);
- menu.add(mi);
- mi = new JMenuItem("Save");
- mi.addActionListener(this);
- menu.add(mi);
- mi = new JMenuItem("Close");
- mi.addActionListener(this);
- menu.add(mi);
- menubar.add(menu);
- menu = new JMenu("Evaluate");
- mi = new JMenuItem("Eval in Workspace");
- mi.addActionListener(this);
- menu.add(mi);
- mi = new JMenuItem("Run in new Workspace");
- mi.addActionListener(this);
- menu.add(mi);
- menubar.add(menu);
- menu = bsh.system.desktop.makeFontMenu( textarea );
- menubar.add(menu);
- frame.setMenuBar( menubar );
- frame.pack();
- bsh.system.desktop.pane.add( frame );
- frame.toFront();
- return frame;
- }