Skip to content

Commit

Permalink
Merge pull request ControlSystemStudio#3103 from ControlSystemStudio/…
Browse files Browse the repository at this point in the history
…CSSTUDIO-2081-appendOnly

CSSTUDIO-2081 Add context menu item "Copy: Append PV to Clipboard".
  • Loading branch information
shroffk authored Aug 3, 2024
2 parents 105f8af + 6d865aa commit 1acf2c1
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ public class Messages
{
// Keep in alphabetical order and aligned with messages.properties
/** Localized message */
public static String NavigateBack_TT,
public static String AppendPVNameToClipboard,
NavigateBack_TT,
NavigateForward_TT,
OpenDataBrowser,
OpenInEditor,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package org.csstudio.display.builder.runtime.app;

import javafx.scene.image.Image;
import javafx.scene.input.Clipboard;
import javafx.scene.input.ClipboardContent;
import org.phoebus.core.types.ProcessVariable;
import org.phoebus.framework.selection.Selection;
import org.phoebus.ui.javafx.ImageCache;
import org.phoebus.ui.spi.ContextMenuEntry;

import java.util.List;
import java.util.stream.Collectors;

public class ContextMenuAppendPvToClipboard implements ContextMenuEntry {
@Override
public String getName() {
return org.csstudio.display.builder.runtime.Messages.AppendPVNameToClipboard;
}

private Image icon = ImageCache.getImage(ImageCache.class, "/icons/copy.png");
@Override
public Image getIcon() {
return icon;
}

@Override
public Class<?> getSupportedType() {
return ProcessVariable.class;
}

@Override
public void call(final Selection selection)
{
List<ProcessVariable> pvs = selection.getSelections();
String pvNamesToAppendToClipboard = pvs.stream().map(ProcessVariable::getName).collect(Collectors.joining(System.lineSeparator()));

Clipboard clipboard = Clipboard.getSystemClipboard();
String newContentInClipboard;
{
String existingContentInClipboard;
if (clipboard.hasString()) {
existingContentInClipboard = clipboard.getString() + System.lineSeparator();
} else {
existingContentInClipboard = "";
}
newContentInClipboard = existingContentInClipboard + pvNamesToAppendToClipboard;
}
ClipboardContent newContent = new ClipboardContent();
newContent.putString(newContentInClipboard);
clipboard.setContent(newContent);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,10 @@ public class DisplayRuntimeInstance implements AppInstance
/** Toolbar button for navigation */
private ButtonBase navigate_backward, navigate_forward;

public String getDisplayName() {
return active_model.getDisplayName();
}

/** Obtain the DisplayRuntimeInstance of a display
* @param model {@link DisplayModel}
* @return {@link DisplayRuntimeInstance}
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
org.csstudio.display.builder.runtime.app.ProbeDisplayContextMenuEntry
org.csstudio.display.builder.runtime.app.ProbeDisplayContextMenuEntry
org.csstudio.display.builder.runtime.app.ContextMenuAppendPvToClipboard
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
AppendPVNameToClipboard=Copy: Append PV to Clipboard
NavigateBack_TT=Open previous display
NavigateForward_TT=Open next display
OpenDataBrowser=Open Data Browser
Expand Down

0 comments on commit 1acf2c1

Please sign in to comment.