package com.quantum.view.bookmark; import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.ui.IViewPart; import org.eclipse.ui.actions.SelectionListenerAction; import com.quantum.ImageStore; import com.quantum.Messages; import com.quantum.model.Bookmark; import com.quantum.model.BookmarkCollection; final class PasteAction extends SelectionListenerAction { private BookmarkClipboard bookmarkClipboard; /** * @param BookmarkView */ public PasteAction(IViewPart view, BookmarkClipboard bookmarkClipboard, ISelectionProvider selectionProvider) { super(Messages.getString(PasteAction.class.getName() + ".text")); setImageDescriptor(ImageStore.getImageDescriptor(ImageStore.PASTE)); selectionProvider.addSelectionChangedListener(this); this.bookmarkClipboard = bookmarkClipboard; } public void run() { if (this.bookmarkClipboard.getBookmark() != null) { Bookmark bookmark = new Bookmark(this.bookmarkClipboard.getBookmark()); String copyName = BookmarkCollection.getInstance().getCopyName(bookmark.getName()); bookmark.setName(copyName); //$NON-NLS-1$ BookmarkCollection.getInstance().addBookmark(bookmark); } } /* (non-Javadoc) * @see org.eclipse.ui.actions.SelectionListenerAction#updateSelection(org.eclipse.jface.viewers.IStructuredSelection) */ protected boolean updateSelection(IStructuredSelection selection) { boolean enabled = super.updateSelection(selection); enabled &= this.bookmarkClipboard.getBookmark() != null; return enabled; } }