Skip to content

Commit

Permalink
- enable copy to clipboard for selected description text
Browse files Browse the repository at this point in the history
  • Loading branch information
derreisende77 committed Aug 30, 2024
1 parent 8154766 commit 4147a60
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 0 deletions.
21 changes: 21 additions & 0 deletions src/main/java/mediathek/gui/filmInformation/FilmInfoDialog.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
package mediathek.gui.filmInformation;

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

public FilmInfoDialog(Window owner) {
super(owner);
initComponents();

setupDescriptionPopupMenu();

setupHyperlink();

updateTextFields();
Expand All @@ -56,6 +60,23 @@ public FilmInfoDialog(Window owner) {
setupListeners();
}

private void setupDescriptionPopupMenu() {
var item = new JMenuItem("Auswahl kopieren");
item.addActionListener(l -> {
final var selected = (lblDescription.getSelectionEnd() - lblDescription.getSelectionStart()) > 0;
if (!selected) {
JOptionPane.showMessageDialog(this, "Kein Text markiert!", Konstanten.PROGRAMMNAME, JOptionPane.ERROR_MESSAGE);
}
else {
var text = lblDescription.getSelectedText();
System.out.println("TEXT: " + text);
GuiFunktionen.copyToClipboard(text);
}
});
popupMenu.add(item);
lblDescription.setComponentPopupMenu(popupMenu);
}

private void setupListeners() {
addWindowListener(new WindowAdapter() {
@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package mediathek.gui.tabs.tab_film;

import com.formdev.flatlaf.util.ScaledImageIcon;
import mediathek.config.Konstanten;
import mediathek.daten.DatenFilm;
import mediathek.gui.actions.UrlHyperlinkAction;
import mediathek.gui.dialog.DialogFilmBeschreibung;
Expand Down Expand Up @@ -41,6 +42,7 @@ public FilmDescriptionPanel(@NotNull AGuiTabPanel currentTab) {

initComponents();


hyperlink.addActionListener(l -> {
if (!hyperlink.getToolTipText().isEmpty()) {
var toolTipText = hyperlink.getToolTipText();
Expand Down Expand Up @@ -94,6 +96,19 @@ private void createPopupMenu() {
});
popupMenu.add(item);

popupMenu.addSeparator();
item = new JMenuItem("Auswahl kopieren");
item.addActionListener(l -> {
final var selected = (textArea.getSelectionEnd() - textArea.getSelectionStart()) > 0;
if (!selected) {
JOptionPane.showMessageDialog(this, "Kein Text markiert!", Konstanten.PROGRAMMNAME, JOptionPane.ERROR_MESSAGE);
} else {
var text = textArea.getSelectedText();
GuiFunktionen.copyToClipboard(text);
}
});
popupMenu.add(item);

setComponentPopupMenu(popupMenu);
textArea.setComponentPopupMenu(popupMenu);
}
Expand Down

0 comments on commit 4147a60

Please sign in to comment.