Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import javafx.application.Platform;
import javafx.scene.input.Clipboard;
import javafx.scene.input.ClipboardContent;
import org.csstudio.display.builder.model.ChildrenProperty;
import org.csstudio.display.builder.model.DisplayModel;
import org.csstudio.display.builder.model.Widget;
Expand Down Expand Up @@ -533,4 +536,24 @@ public static void openWeb(final Widget widget, final String url) throws Excepti

done.get();
}

/**
* Puts a {@link String} on the system clipboard.
* <p>
* If called from a Jython script, non-matching content types will trigger an exception in the interpreter.
* An {@link IllegalArgumentException} is thrown if provided content string is <code>null</code>. That way
* the script may detect the mistake.
* </p>
*
* @param content By contract: must be a non-null String
*/
@SuppressWarnings("unused")
public static void putOnClipboard(String content){
if(content == null){
throw new IllegalArgumentException("content is null");
}
ClipboardContent clipboardContent = new ClipboardContent();
clipboardContent.putString(content);
Platform.runLater(() -> Clipboard.getSystemClipboard().setContent(clipboardContent));
}
}
Loading