Skip to content

Commit 4147a60

Browse files
committed
- enable copy to clipboard for selected description text
1 parent 8154766 commit 4147a60

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

src/main/java/mediathek/gui/filmInformation/FilmInfoDialog.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package mediathek.gui.filmInformation;
66

77
import com.formdev.flatlaf.util.ScaledImageIcon;
8+
import mediathek.config.Konstanten;
89
import mediathek.daten.Country;
910
import mediathek.daten.DatenFilm;
1011
import mediathek.gui.actions.UrlHyperlinkAction;
@@ -42,11 +43,14 @@ public class FilmInfoDialog extends JDialog {
4243
private static final Dimension DEFAULT_SENDER_DIMENSION = new Dimension(64, 64);
4344
private static final Logger logger = LogManager.getLogger();
4445
private Optional<DatenFilm> currentFilmOptional = Optional.empty();
46+
private final JPopupMenu popupMenu = new JPopupMenu();
4547

4648
public FilmInfoDialog(Window owner) {
4749
super(owner);
4850
initComponents();
4951

52+
setupDescriptionPopupMenu();
53+
5054
setupHyperlink();
5155

5256
updateTextFields();
@@ -56,6 +60,23 @@ public FilmInfoDialog(Window owner) {
5660
setupListeners();
5761
}
5862

63+
private void setupDescriptionPopupMenu() {
64+
var item = new JMenuItem("Auswahl kopieren");
65+
item.addActionListener(l -> {
66+
final var selected = (lblDescription.getSelectionEnd() - lblDescription.getSelectionStart()) > 0;
67+
if (!selected) {
68+
JOptionPane.showMessageDialog(this, "Kein Text markiert!", Konstanten.PROGRAMMNAME, JOptionPane.ERROR_MESSAGE);
69+
}
70+
else {
71+
var text = lblDescription.getSelectedText();
72+
System.out.println("TEXT: " + text);
73+
GuiFunktionen.copyToClipboard(text);
74+
}
75+
});
76+
popupMenu.add(item);
77+
lblDescription.setComponentPopupMenu(popupMenu);
78+
}
79+
5980
private void setupListeners() {
6081
addWindowListener(new WindowAdapter() {
6182
@Override

src/main/java/mediathek/gui/tabs/tab_film/FilmDescriptionPanel.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package mediathek.gui.tabs.tab_film;
22

33
import com.formdev.flatlaf.util.ScaledImageIcon;
4+
import mediathek.config.Konstanten;
45
import mediathek.daten.DatenFilm;
56
import mediathek.gui.actions.UrlHyperlinkAction;
67
import mediathek.gui.dialog.DialogFilmBeschreibung;
@@ -41,6 +42,7 @@ public FilmDescriptionPanel(@NotNull AGuiTabPanel currentTab) {
4142

4243
initComponents();
4344

45+
4446
hyperlink.addActionListener(l -> {
4547
if (!hyperlink.getToolTipText().isEmpty()) {
4648
var toolTipText = hyperlink.getToolTipText();
@@ -94,6 +96,19 @@ private void createPopupMenu() {
9496
});
9597
popupMenu.add(item);
9698

99+
popupMenu.addSeparator();
100+
item = new JMenuItem("Auswahl kopieren");
101+
item.addActionListener(l -> {
102+
final var selected = (textArea.getSelectionEnd() - textArea.getSelectionStart()) > 0;
103+
if (!selected) {
104+
JOptionPane.showMessageDialog(this, "Kein Text markiert!", Konstanten.PROGRAMMNAME, JOptionPane.ERROR_MESSAGE);
105+
} else {
106+
var text = textArea.getSelectedText();
107+
GuiFunktionen.copyToClipboard(text);
108+
}
109+
});
110+
popupMenu.add(item);
111+
97112
setComponentPopupMenu(popupMenu);
98113
textArea.setComponentPopupMenu(popupMenu);
99114
}

0 commit comments

Comments
 (0)