Add copy/cut/paste menus to Editor, move Language selector to Run menu, move clear button
This commit is contained in:
parent
b733d695f5
commit
15b70aa227
@ -108,15 +108,55 @@
|
||||
<Property name="text" type="java.lang.String" value="Edit"/>
|
||||
</Properties>
|
||||
<SubComponents>
|
||||
<MenuItem class="javax.swing.JMenuItem" name="clrOutputMenu">
|
||||
<MenuItem class="javax.swing.JMenuItem" name="copyBtn">
|
||||
<Properties>
|
||||
<Property name="accelerator" type="javax.swing.KeyStroke" editor="org.netbeans.modules.form.editors.KeyStrokeEditor">
|
||||
<KeyStroke key="Ctrl+W"/>
|
||||
<KeyStroke key="Ctrl+C"/>
|
||||
</Property>
|
||||
<Property name="text" type="java.lang.String" value="Clear output"/>
|
||||
<Property name="text" type="java.lang.String" value="Copy"/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="clrOutputMenuActionPerformed"/>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="copyBtnActionPerformed"/>
|
||||
</Events>
|
||||
</MenuItem>
|
||||
<MenuItem class="javax.swing.JMenuItem" name="cutBtn">
|
||||
<Properties>
|
||||
<Property name="accelerator" type="javax.swing.KeyStroke" editor="org.netbeans.modules.form.editors.KeyStrokeEditor">
|
||||
<KeyStroke key="Ctrl+X"/>
|
||||
</Property>
|
||||
<Property name="text" type="java.lang.String" value="Cut"/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="cutBtnActionPerformed"/>
|
||||
</Events>
|
||||
</MenuItem>
|
||||
<MenuItem class="javax.swing.JMenuItem" name="pasteBtn">
|
||||
<Properties>
|
||||
<Property name="accelerator" type="javax.swing.KeyStroke" editor="org.netbeans.modules.form.editors.KeyStrokeEditor">
|
||||
<KeyStroke key="Ctrl+V"/>
|
||||
</Property>
|
||||
<Property name="text" type="java.lang.String" value="Paste"/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="pasteBtnActionPerformed"/>
|
||||
</Events>
|
||||
</MenuItem>
|
||||
</SubComponents>
|
||||
</Menu>
|
||||
<Menu class="javax.swing.JMenu" name="runMenu">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" value="Run"/>
|
||||
</Properties>
|
||||
<SubComponents>
|
||||
<MenuItem class="javax.swing.JMenuItem" name="runCodeBtn">
|
||||
<Properties>
|
||||
<Property name="accelerator" type="javax.swing.KeyStroke" editor="org.netbeans.modules.form.editors.KeyStrokeEditor">
|
||||
<KeyStroke key="F5"/>
|
||||
</Property>
|
||||
<Property name="text" type="java.lang.String" value="Run code"/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="runCodeBtnActionPerformed"/>
|
||||
</Events>
|
||||
</MenuItem>
|
||||
<Menu class="javax.swing.JMenu" name="codeLangMenu">
|
||||
@ -151,24 +191,6 @@
|
||||
</Menu>
|
||||
</SubComponents>
|
||||
</Menu>
|
||||
<Menu class="javax.swing.JMenu" name="runMenu">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" value="Run"/>
|
||||
</Properties>
|
||||
<SubComponents>
|
||||
<MenuItem class="javax.swing.JMenuItem" name="runCodeBtn">
|
||||
<Properties>
|
||||
<Property name="accelerator" type="javax.swing.KeyStroke" editor="org.netbeans.modules.form.editors.KeyStrokeEditor">
|
||||
<KeyStroke key="F5"/>
|
||||
</Property>
|
||||
<Property name="text" type="java.lang.String" value="Run code"/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="runCodeBtnActionPerformed"/>
|
||||
</Events>
|
||||
</MenuItem>
|
||||
</SubComponents>
|
||||
</Menu>
|
||||
</SubComponents>
|
||||
</Menu>
|
||||
</NonVisualComponents>
|
||||
@ -256,7 +278,8 @@
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" attributes="0">
|
||||
<Component id="jLabel1" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
|
||||
<EmptySpace max="32767" attributes="0"/>
|
||||
<Component id="clearBtn" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<Component id="jScrollPane1" pref="532" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
@ -264,9 +287,12 @@
|
||||
<DimensionLayout dim="1">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Component id="jLabel1" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="jScrollPane1" pref="98" max="32767" attributes="0"/>
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Component id="jLabel1" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="clearBtn" min="-2" pref="18" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace min="0" pref="0" max="-2" attributes="0"/>
|
||||
<Component id="jScrollPane1" pref="100" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
@ -298,6 +324,15 @@
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Container>
|
||||
<Component class="javax.swing.JButton" name="clearBtn">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" value="Clear"/>
|
||||
<Property name="toolTipText" type="java.lang.String" value=""/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="clearBtnActionPerformed"/>
|
||||
</Events>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Container>
|
||||
<Container class="javax.swing.JPanel" name="editPanel">
|
||||
|
@ -149,6 +149,7 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
jLabel1 = new javax.swing.JLabel();
|
||||
jScrollPane1 = new javax.swing.JScrollPane();
|
||||
outputBox = new javax.swing.JTextArea();
|
||||
clearBtn = new javax.swing.JButton();
|
||||
editPanel = new javax.swing.JPanel();
|
||||
jMenuBar1 = new javax.swing.JMenuBar();
|
||||
fileMenu = new javax.swing.JMenu();
|
||||
@ -160,12 +161,14 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
saveAsMenu = new javax.swing.JMenuItem();
|
||||
exportMenu = new javax.swing.JMenuItem();
|
||||
editMenu = new javax.swing.JMenu();
|
||||
clrOutputMenu = new javax.swing.JMenuItem();
|
||||
copyBtn = new javax.swing.JMenuItem();
|
||||
cutBtn = new javax.swing.JMenuItem();
|
||||
pasteBtn = new javax.swing.JMenuItem();
|
||||
runMenu = new javax.swing.JMenu();
|
||||
runCodeBtn = new javax.swing.JMenuItem();
|
||||
codeLangMenu = new javax.swing.JMenu();
|
||||
javascriptOption = new javax.swing.JRadioButtonMenuItem();
|
||||
pythonOption = new javax.swing.JRadioButtonMenuItem();
|
||||
runMenu = new javax.swing.JMenu();
|
||||
runCodeBtn = new javax.swing.JMenuItem();
|
||||
|
||||
jMenuItem4.setText("jMenuItem4");
|
||||
|
||||
@ -207,21 +210,32 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
});
|
||||
jScrollPane1.setViewportView(outputBox);
|
||||
|
||||
clearBtn.setText("Clear");
|
||||
clearBtn.setToolTipText("");
|
||||
clearBtn.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
clearBtnActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
javax.swing.GroupLayout outputPanelLayout = new javax.swing.GroupLayout(outputPanel);
|
||||
outputPanel.setLayout(outputPanelLayout);
|
||||
outputPanelLayout.setHorizontalGroup(
|
||||
outputPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(outputPanelLayout.createSequentialGroup()
|
||||
.addComponent(jLabel1)
|
||||
.addGap(0, 0, Short.MAX_VALUE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(clearBtn))
|
||||
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 532, Short.MAX_VALUE)
|
||||
);
|
||||
outputPanelLayout.setVerticalGroup(
|
||||
outputPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(outputPanelLayout.createSequentialGroup()
|
||||
.addComponent(jLabel1)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 98, Short.MAX_VALUE))
|
||||
.addGroup(outputPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(jLabel1)
|
||||
.addComponent(clearBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addGap(0, 0, 0)
|
||||
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE))
|
||||
);
|
||||
|
||||
jSplitPane1.setRightComponent(outputPanel);
|
||||
@ -302,14 +316,45 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
|
||||
editMenu.setText("Edit");
|
||||
|
||||
clrOutputMenu.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_W, java.awt.event.InputEvent.CTRL_MASK));
|
||||
clrOutputMenu.setText("Clear output");
|
||||
clrOutputMenu.addActionListener(new java.awt.event.ActionListener() {
|
||||
copyBtn.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.CTRL_MASK));
|
||||
copyBtn.setText("Copy");
|
||||
copyBtn.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
clrOutputMenuActionPerformed(evt);
|
||||
copyBtnActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
editMenu.add(clrOutputMenu);
|
||||
editMenu.add(copyBtn);
|
||||
|
||||
cutBtn.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.CTRL_MASK));
|
||||
cutBtn.setText("Cut");
|
||||
cutBtn.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
cutBtnActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
editMenu.add(cutBtn);
|
||||
|
||||
pasteBtn.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_V, java.awt.event.InputEvent.CTRL_MASK));
|
||||
pasteBtn.setText("Paste");
|
||||
pasteBtn.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
pasteBtnActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
editMenu.add(pasteBtn);
|
||||
|
||||
jMenuBar1.add(editMenu);
|
||||
|
||||
runMenu.setText("Run");
|
||||
|
||||
runCodeBtn.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F5, 0));
|
||||
runCodeBtn.setText("Run code");
|
||||
runCodeBtn.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
runCodeBtnActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
runMenu.add(runCodeBtn);
|
||||
|
||||
codeLangMenu.setText("Language");
|
||||
|
||||
@ -332,20 +377,7 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
});
|
||||
codeLangMenu.add(pythonOption);
|
||||
|
||||
editMenu.add(codeLangMenu);
|
||||
|
||||
jMenuBar1.add(editMenu);
|
||||
|
||||
runMenu.setText("Run");
|
||||
|
||||
runCodeBtn.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F5, 0));
|
||||
runCodeBtn.setText("Run code");
|
||||
runCodeBtn.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
runCodeBtnActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
runMenu.add(runCodeBtn);
|
||||
runMenu.add(codeLangMenu);
|
||||
|
||||
jMenuBar1.add(runMenu);
|
||||
|
||||
@ -515,17 +547,12 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
|
||||
}
|
||||
}
|
||||
private void clrOutputMenuActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clrOutputMenuActionPerformed
|
||||
outputBox.setText("");
|
||||
}//GEN-LAST:event_clrOutputMenuActionPerformed
|
||||
|
||||
private void exportMenuActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exportMenuActionPerformed
|
||||
String lang = "js";
|
||||
if (pythonOption.isSelected()) {
|
||||
lang = "python";
|
||||
}
|
||||
CodeExport ce = new CodeExport(codeBox.getText(), lang);
|
||||
MainGUI.loadFrame(ce);
|
||||
MainGUI.loadFrame(new CodeExport(codeBox.getText(), lang));
|
||||
}//GEN-LAST:event_exportMenuActionPerformed
|
||||
|
||||
private void javascriptOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_javascriptOptionActionPerformed
|
||||
@ -552,6 +579,22 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
openSample("graph");
|
||||
}//GEN-LAST:event_sampleGraphActionPerformed
|
||||
|
||||
private void pasteBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pasteBtnActionPerformed
|
||||
codeBox.paste();
|
||||
}//GEN-LAST:event_pasteBtnActionPerformed
|
||||
|
||||
private void copyBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_copyBtnActionPerformed
|
||||
codeBox.copy();
|
||||
}//GEN-LAST:event_copyBtnActionPerformed
|
||||
|
||||
private void cutBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cutBtnActionPerformed
|
||||
codeBox.cut();
|
||||
}//GEN-LAST:event_cutBtnActionPerformed
|
||||
|
||||
private void clearBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clearBtnActionPerformed
|
||||
outputBox.setText("");
|
||||
}//GEN-LAST:event_clearBtnActionPerformed
|
||||
|
||||
/**
|
||||
* Open a sample code file with the given name.<p>
|
||||
* Uses the current language.
|
||||
@ -619,8 +662,10 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
}
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JMenuItem clrOutputMenu;
|
||||
private javax.swing.JButton clearBtn;
|
||||
private javax.swing.JMenu codeLangMenu;
|
||||
private javax.swing.JMenuItem copyBtn;
|
||||
private javax.swing.JMenuItem cutBtn;
|
||||
private javax.swing.JMenu editMenu;
|
||||
private javax.swing.JPanel editPanel;
|
||||
private javax.swing.JMenuItem exportMenu;
|
||||
@ -640,6 +685,7 @@ public class CodeEditor extends javax.swing.JInternalFrame {
|
||||
private javax.swing.JMenu openSampleBtn;
|
||||
private javax.swing.JTextArea outputBox;
|
||||
private javax.swing.JPanel outputPanel;
|
||||
private javax.swing.JMenuItem pasteBtn;
|
||||
private javax.swing.JRadioButtonMenuItem pythonOption;
|
||||
private javax.swing.JMenuItem runCodeBtn;
|
||||
private javax.swing.JMenu runMenu;
|
||||
|
Loading…
x
Reference in New Issue
Block a user