blob: 1b47409f65740222ef68a25a749b7601c4cc7380 [file] [log] [blame]
package org.eclipse.capra.ui.plantuml
import java.util.Collection
import java.util.List
import org.eclipse.capra.core.adapters.Connection
import org.eclipse.capra.core.helpers.ExtensionPointHelper
import org.eclipse.emf.ecore.EObject
class VisualizationHelper {
def static String createMatrix(EObject traceModel, Collection<EObject> firstElements, Collection<EObject> secondElements, Boolean internalLinks){
val traceAdapter = ExtensionPointHelper.getTraceMetamodelAdapter().get()
'''
@startuml
salt
{#
«IF firstElements != null»
.«FOR e : secondElements»|«Connections.getArtifactLabel(e)»«ENDFOR»
«FOR first : firstElements»«Connections.getArtifactLabel(first)»«FOR second : secondElements» |«IF internalLinks»«IF traceAdapter.isThereATraceBetween(first, second, traceModel) || traceAdapter.isThereAnInternalTraceBetween(first, second)»X«ELSE ».«ENDIF»«ELSE»«IF traceAdapter.isThereATraceBetween(first, second, traceModel)»X«ELSE ».«ENDIF»«ENDIF»«ENDFOR»
«ENDFOR»
«ELSE»
Choose two containers to show a traceability matrix of their contents.
«ENDIF»
}
@enduml
'''
}
def static String createNeighboursView(List<Connection> connections, List<EObject> selectedObjects){
var helper = new Connections(connections, selectedObjects);
'''
@startuml
object "«helper.originLabel()»" as «helper.originId()» #pink
«FOR id:helper.objectIdsWithoutOrigin()»
object "«helper.label(id)»" as «id»
«ENDFOR»
«FOR a:helper.arrows()»
«a»
«ENDFOR»
@enduml
'''
}
}