Java tutorial
// Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See License.txt in the repository root. package com.microsoft.tfs.client.common.ui.vcexplorer.findinsce.actions; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.eclipse.jface.action.Action; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.SelectionChangedEvent; import com.microsoft.tfs.client.common.ui.TFSCommonUIClientPlugin; import com.microsoft.tfs.client.common.ui.TFSCommonUIImages; import com.microsoft.tfs.client.common.ui.framework.helper.UIHelpers; import com.microsoft.tfs.client.common.ui.framework.image.ImageHelper; import com.microsoft.tfs.client.common.ui.vc.serveritem.TypedServerItem; import com.microsoft.tfs.client.common.ui.vcexplorer.Messages; import com.microsoft.tfs.client.common.ui.vcexplorer.versioncontrol.FindInSourceControlEditor; import com.microsoft.tfs.util.NewlineUtils; public class CopyToClipboardAction extends Action { private final static Log log = LogFactory.getLog(CopyToClipboardAction.class); private final ImageHelper imageHelper = new ImageHelper(TFSCommonUIClientPlugin.PLUGIN_ID); private FindInSourceControlEditor editor; public CopyToClipboardAction() { setImageDescriptor(TFSCommonUIImages.getImageDescriptor(TFSCommonUIImages.IMG_COPY)); setToolTipText(Messages.getString("CopyToClipboardAction.ToolTipText")); //$NON-NLS-1$ } public CopyToClipboardAction(final FindInSourceControlEditor editor) { this(); setActiveEditor(editor); } public void setActiveEditor(final FindInSourceControlEditor editor) { this.editor = editor; setEnabled(isEnabled()); this.editor.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent event) { setEnabled(isEnabled()); editor.getEditorSite().getActionBars().getToolBarManager().update(true); } }); } @Override public boolean isEnabled() { return (editor != null && editor.getEditorInput() != null && editor.getSelectedItemsCount() > 0); } @Override public void run() { if (editor == null || editor.getEditorInput() == null) { return; } UIHelpers.copyToClipboard(getSelectedList()); } private String getSelectedList() { final StringBuffer sb = new StringBuffer(); for (final TypedServerItem selectedItem : editor.getSelectedServerItems()) { if (sb.length() > 0) { sb.append(NewlineUtils.PLATFORM_NEWLINE); } sb.append(selectedItem.getServerPath()); } return sb.toString(); } }