/*****************************************************************************
* Copyright (c) 2011 CEA LIST.
*
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
*
*****************************************************************************/
package org.eclipse.papyrus.infra.table.common.hyperlink;
import java.util.List;
import org.eclipse.emf.ecore.EAnnotation;
import org.eclipse.emf.ecore.EModelElement;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.papyrus.infra.emf.commands.CreateEAnnotationCommand;
import org.eclipse.papyrus.infra.hyperlink.helper.AbstractHyperLinkEditorHelper;
import org.eclipse.papyrus.infra.hyperlink.object.HyperLinkEditor;
import org.eclipse.papyrus.infra.hyperlink.object.HyperLinkObject;
import org.eclipse.papyrus.infra.hyperlink.util.HyperLinkConstants;
import org.eclipse.papyrus.infra.table.instance.papyrustableinstance.PapyrusTableInstance;
public class HyperLinkTableEditorHelper extends AbstractHyperLinkEditorHelper {
@Override
public HyperLinkEditor getHyperLinkObjectFor(Object object) {
if(object instanceof PapyrusTableInstance) {
return new HyperLinkTableEditor();
}
return null;
}
@Override
public CreateEAnnotationCommand getAddHyperLinkCommand(TransactionalEditingDomain domain, EModelElement object, HyperLinkObject hyperlinkObject) {
if(hyperlinkObject instanceof HyperLinkTableEditor) {
HyperLinkTableEditor hyperLinkDiagram = (HyperLinkTableEditor)hyperlinkObject;
return new CreateHyperLinkTableCommand(domain, object, hyperLinkDiagram.getTooltipText(), ((PapyrusTableInstance)hyperLinkDiagram.getObject()).getName(), (EModelElement)hyperLinkDiagram.getObject(), hyperLinkDiagram.getIsDefault());
} else {
return null;
}
}
@Override
public HyperLinkEditor getHyperLinkObjectForEAnnotation(EAnnotation eAnnotation) {
if(eAnnotation.getSource().equals(HyperLinkTableConstants.HYPERLINK_TABLE)) {
HyperLinkTableEditor hyperLinkDiagram = new HyperLinkTableEditor();
List<EObject> list = eAnnotation.getReferences();
if(list.size() > 0) {
if(eAnnotation.getReferences().get(0).eResource() != null) {
hyperLinkDiagram.setObject(eAnnotation.getReferences().get(0));
hyperLinkDiagram.setTooltipText(eAnnotation.getDetails().get(HyperLinkConstants.HYPERLINK_TOOLTYPE_TEXT));
return hyperLinkDiagram;
}
}
}
return null;
}
}