in src/org/jetbrains/plugins/ipnb/editor/panels/IpnbEditablePanel.java [164:198]
private JTextArea createEditablePanel() {
final JTextArea textArea = new JTextArea(getRawCellText());
textArea.setLineWrap(true);
textArea.setEditable(true);
textArea.setBorder(BorderFactory.createLineBorder(JBColor.lightGray));
textArea.setBackground(IpnbEditorUtil.getEditablePanelBackground());
textArea.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 1) {
setEditing(true);
final Container parent = getParent();
if (parent instanceof IpnbFilePanel) {
((IpnbFilePanel)parent).setSelectedCellPanel(IpnbEditablePanel.this);
IdeFocusManager.getGlobalInstance().doWhenFocusSettlesDown(() -> {
IdeFocusManager.getGlobalInstance().requestFocus(textArea, true);
});
}
}
}
});
textArea.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
setEditing(false);
final Container parent = getParent();
if (parent instanceof IpnbFilePanel) {
IdeFocusManager.getGlobalInstance().requestFocus(parent, true);
}
}
}
});
return textArea;
}