| /** |
| * |
| * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) |
| * |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License 2.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Contributors: |
| * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation |
| * |
| */ |
| package org.eclipse.osbp.xtext.perspective.linking; |
| |
| import org.eclipse.emf.ecore.EObject; |
| import org.eclipse.emf.ecore.EStructuralFeature; |
| import org.eclipse.osbp.xtext.oxtype.linking.JvmTypeAwareLinkingHelper; |
| import org.eclipse.osbp.xtext.perspective.PerspectiveDslPackage; |
| import org.eclipse.xtext.xbase.lib.StringExtensions; |
| |
| public class PerspectiveJvmLinkingHelper extends JvmTypeAwareLinkingHelper { |
| |
| public PerspectiveJvmLinkingHelper() { |
| register( |
| PerspectiveDslPackage.Literals.PERSPECTIVE_SELECTION__REF, |
| PerspectiveDslPackage.Literals.PERSPECTIVE_SELECTION__REF_TYPE_JVM, |
| new IJvmLinkCrossRefStringEnhancer() { |
| @Override |
| public String enhance(EObject context, |
| EStructuralFeature feature, String crossRefString) { |
| return crossRefString + "Select"; |
| } |
| }, null); |
| register(PerspectiveDslPackage.Literals.PERSPECTIVE_TABLE__REF, |
| PerspectiveDslPackage.Literals.PERSPECTIVE_TABLE__REF_TYPE_JVM, |
| new IJvmLinkCrossRefStringEnhancer() { |
| @Override |
| public String enhance(EObject context, |
| EStructuralFeature feature, String crossRefString) { |
| return crossRefString + "Table"; |
| } |
| }, null); |
| register(PerspectiveDslPackage.Literals.PERSPECTIVE_GRID__REF, |
| PerspectiveDslPackage.Literals.PERSPECTIVE_GRID__REF_TYPE_JVM, |
| new IJvmLinkCrossRefStringEnhancer() { |
| @Override |
| public String enhance(EObject context, |
| EStructuralFeature feature, String crossRefString) { |
| return crossRefString + "Grid"; |
| } |
| }, null); |
| register(PerspectiveDslPackage.Literals.PERSPECTIVE_CHART__REF, |
| PerspectiveDslPackage.Literals.PERSPECTIVE_CHART__REF_TYPE_JVM, |
| new IJvmLinkCrossRefStringEnhancer() { |
| @Override |
| public String enhance(EObject context, |
| EStructuralFeature feature, String crossRefString) { |
| return crossRefString + "Chart"; |
| } |
| }, null); |
| register( |
| PerspectiveDslPackage.Literals.PERSPECTIVE_REPORT__REF, |
| PerspectiveDslPackage.Literals.PERSPECTIVE_REPORT__REF_TYPE_JVM, |
| new IJvmLinkCrossRefStringEnhancer() { |
| @Override |
| public String enhance(EObject context, |
| EStructuralFeature feature, String crossRefString) { |
| return crossRefString + "Report"; |
| } |
| }, null); |
| register( |
| PerspectiveDslPackage.Literals.PERSPECTIVE_TOPOLOGY__REF, |
| PerspectiveDslPackage.Literals.PERSPECTIVE_TOPOLOGY__REF_TYPE_JVM, |
| new IJvmLinkCrossRefStringEnhancer() { |
| @Override |
| public String enhance(EObject context, |
| EStructuralFeature feature, String crossRefString) { |
| return crossRefString + "Topology"; |
| } |
| }, null); |
| register( |
| PerspectiveDslPackage.Literals.PERSPECTIVE_DIALOG__REF, |
| PerspectiveDslPackage.Literals.PERSPECTIVE_DIALOG__REF_TYPE_JVM, |
| new IJvmLinkCrossRefStringEnhancer() { |
| @Override |
| public String enhance(EObject context, |
| EStructuralFeature feature, String crossRefString) { |
| return crossRefString + "Dialog"; |
| } |
| }, null); |
| register(PerspectiveDslPackage.Literals.PERSPECTIVE__TOOLBAR, |
| PerspectiveDslPackage.Literals.PERSPECTIVE__TOOLBAR_TYPE_JVM, |
| new IJvmLinkCrossRefStringEnhancer() { |
| @Override |
| public String enhance(EObject context, |
| EStructuralFeature feature, String crossRefString) { |
| return crossRefString + "Toolbar"; |
| } |
| }, null); |
| register( |
| PerspectiveDslPackage.Literals.PERSPECTIVE_DATA_INTERCHANGE__REF, |
| PerspectiveDslPackage.Literals.PERSPECTIVE_DATA_INTERCHANGE__REF_TYPE_JVM, |
| new IJvmLinkCrossRefStringEnhancer() { |
| @Override |
| public String enhance(EObject context, |
| EStructuralFeature feature, String crossRefString) { |
| // as the class is created by the package, we supply extra segment so the package calculation can discard the last segment |
| return crossRefString + "." + StringExtensions.toFirstUpper(crossRefString) + "TriggerView"; |
| } |
| }, null); |
| } |
| } |