📄 workspaceeditor.bsh
字号:
/** Make a new workspaceEditor in the GUI. @method workspaceEditor( bsh.Interpreter parent, String name )*/import java.awt.Insets;import bsh.Interpreter;workspaceEditor(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;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -