// ============================================================================ // // Copyright (C) 2006-2016 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package com.amalto.workbench.actions; import java.util.Iterator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.eclipse.jface.action.Action; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.xsd.XSDElementDeclaration; import org.eclipse.xsd.XSDParticle; import com.amalto.workbench.editors.DataModelMainPage; import com.amalto.workbench.i18n.Messages; import com.amalto.workbench.image.EImage; import com.amalto.workbench.image.ImageCache; import com.amalto.workbench.utils.WorkbenchClipboard; public class XSDCopyConceptAction extends Action { private static Log log = LogFactory.getLog(XSDCopyConceptAction.class); private DataModelMainPage page; private String displayName = Messages.XSDCopyConceptAction_DisplayName; public XSDCopyConceptAction(DataModelMainPage page, String title) { super(); // if(multi) displayName = title; this.page = page; setImageDescriptor(ImageCache.getImage(EImage.COPY.getPath())); setText(displayName); setToolTipText(displayName); } // public IStatus doAction() { public void run() { try { WorkbenchClipboard.getWorkbenchClipboard().conceptsReset(); WorkbenchClipboard.getWorkbenchClipboard().particlesReset(); IStructuredSelection selection = (IStructuredSelection) page.getTreeViewer().getSelection(); if (selection.getFirstElement() instanceof XSDElementDeclaration) { for (Iterator<XSDElementDeclaration> iter = selection.iterator(); iter.hasNext();) { XSDElementDeclaration concept = iter.next(); if (concept instanceof XSDElementDeclaration) WorkbenchClipboard.getWorkbenchClipboard().add(concept); } } else if (selection.getFirstElement() instanceof XSDParticle) { for (Iterator<XSDParticle> iter = selection.iterator(); iter.hasNext();) { XSDParticle particle = iter.next(); if (particle instanceof XSDParticle) WorkbenchClipboard.getWorkbenchClipboard().add(particle); } } } catch (Exception e) { log.error(e.getMessage(), e); MessageDialog.openError(page.getSite().getShell(), Messages._Error, Messages.bind(Messages.XSDCopyConceptAction_ErrorMsg, e.getLocalizedMessage())); } // return true; } }