Skip to content

Commit d8ce567

Browse files
authored
Merge pull request #64 from tferr/console-fixes2
Console: Do not used hardwired font sizes
2 parents d562b1a + 691b503 commit d8ce567

File tree

4 files changed

+22
-13
lines changed

4 files changed

+22
-13
lines changed

src/main/java/org/scijava/ui/swing/AbstractSwingUI.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@
3131

3232
import java.awt.BorderLayout;
3333
import java.awt.Component;
34-
import java.awt.event.ActionEvent;
35-
import java.awt.event.ActionListener;
3634
import java.awt.event.WindowAdapter;
3735
import java.awt.event.WindowEvent;
3836
import java.io.File;
@@ -323,13 +321,7 @@ protected JMenuBar createConsoleMenu() {
323321
final JMenu edit = new JMenu("Edit");
324322
menuBar.add(edit);
325323
final JMenuItem editClear = new JMenuItem("Clear");
326-
editClear.addActionListener(new ActionListener() {
327-
328-
@Override
329-
public void actionPerformed(ActionEvent e) {
330-
getConsolePane().clear();
331-
}
332-
});
324+
editClear.addActionListener(e -> getConsolePane().clear());
333325
edit.add(editClear);
334326
return menuBar;
335327
}

src/main/java/org/scijava/ui/swing/console/ConsolePanel.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,13 @@
3535
import java.awt.Font;
3636
import java.awt.FontMetrics;
3737

38+
import javax.swing.JMenuItem;
3839
import javax.swing.JPanel;
40+
import javax.swing.JPopupMenu;
3941
import javax.swing.JScrollPane;
4042
import javax.swing.JTextArea;
4143
import javax.swing.JTextPane;
44+
import javax.swing.KeyStroke;
4245
import javax.swing.text.BadLocationException;
4346
import javax.swing.text.Style;
4447
import javax.swing.text.StyleConstants;
@@ -109,7 +112,7 @@ private synchronized void initGui() {
109112
setLayout(new MigLayout("inset 0", "[grow,fill]", "[grow,fill,align top]"));
110113

111114
textPane = new JTextPane();
112-
textPane.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 12));
115+
textPane.setFont(new Font(Font.MONOSPACED, Font.PLAIN, textPane.getFont().getSize()));
113116
textPane.setEditable(false);
114117

115118
doc = textPane.getStyledDocument();
@@ -137,9 +140,23 @@ private synchronized void initGui() {
137140
final int lineHeight = fm.getHeight();
138141
scrollPane.getHorizontalScrollBar().setUnitIncrement(charWidth);
139142
scrollPane.getVerticalScrollBar().setUnitIncrement(2 * lineHeight);
140-
143+
textPane.setComponentPopupMenu(initMenu());
141144
add(scrollPane);
142145
}
146+
147+
private JPopupMenu initMenu() {
148+
final JPopupMenu menu = new JPopupMenu();
149+
JMenuItem item = new JMenuItem("Copy");
150+
item.setAccelerator(KeyStroke.getKeyStroke("control C"));
151+
item.addActionListener( e-> textPane.copy());
152+
menu.add(item);
153+
item = new JMenuItem("Clear");
154+
item.setAccelerator(KeyStroke.getKeyStroke("alt C"));
155+
item.addActionListener(e -> clear());
156+
menu.add(item);
157+
return menu;
158+
}
159+
143160
// -- Helper methods --
144161

145162
private Style createStyle(final String name, final Style parent,

src/main/java/org/scijava/ui/swing/console/ItemTextPane.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ class ItemTextPane {
8585
ItemTextPane(final Context context) {
8686
context.inject(this);
8787
textPane.setEditable(false);
88-
textPane.setFont(new Font("monospaced", Font.PLAIN, 12));
88+
textPane.setFont(new Font(Font.MONOSPACED, Font.PLAIN, textPane.getFont().getSize()));
8989
}
9090

9191
// -- ItemTextPane methods --

src/main/java/org/scijava/ui/swing/viewer/text/SwingTextDisplayPanel.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public SwingTextDisplayPanel(final TextDisplay display,
7979
textArea = new JEditorPane();
8080
textArea.setPreferredSize(new Dimension(600, 500));
8181
textArea.setEditable(false);
82-
final Font font = new Font(Font.MONOSPACED, Font.PLAIN, 12);
82+
final Font font = new Font(Font.MONOSPACED, Font.PLAIN, textArea.getFont().getSize());
8383
textArea.setFont(font);
8484
textArea.addHyperlinkListener(this);
8585
setViewportView(textArea);

0 commit comments

Comments
 (0)