/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.gui.log.internal; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import de.rcenvironment.core.gui.utils.common.ClipboardHelper; import de.rcenvironment.core.log.SerializableLogEntry; /** * Class responsible for copying log entries to the clipboard. * * @author Doreen Seider */ public class CopyToClipboardListener implements SelectionListener { private TableViewer myTableViewer; public CopyToClipboardListener(TableViewer tableViewer) { myTableViewer = tableViewer; } @Override public void widgetDefaultSelected(SelectionEvent e) { widgetSelected(e); } @Override public void widgetSelected(SelectionEvent e) { ISelection selection = myTableViewer.getSelection(); List<SerializableLogEntry> logEntries = new ArrayList<SerializableLogEntry>(); if (selection != null && selection instanceof IStructuredSelection) { IStructuredSelection sel = (IStructuredSelection) selection; for (@SuppressWarnings("unchecked") Iterator<SerializableLogEntry> iterator = sel.iterator(); iterator.hasNext();) { SerializableLogEntry logEntry = iterator.next(); logEntries.add(logEntry); } } StringBuilder sb = new StringBuilder(); for (SerializableLogEntry logEntry : logEntries) { sb.append(logEntry.toString() + System.getProperty("line.separator")); //$NON-NLS-1$ } ClipboardHelper.setContent(sb.toString()); } }