/*****************************************************************************
 * Copyright (c) 2015 CEA LIST.
 * 
 * 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:
 *  Benoit Maggi (CEA LIST) benoit.maggi@cea.fr
 *****************************************************************************/
/*
 * SHARED ELEMENTS
 */

Compartment{
	visible: false;
	showTitle: false;
}

Compartment[kind=structure]{
	showTitle: false;
}

Package > Compartment[kind="packagedelements"],
Model > Compartment[kind="packagedelements"]{
	visible: true;
	showTitle: false;
}

[deprecated=true] {
	lineColor: orange;
}

[appliedStereotypes~="ConstraintBlock"] > Compartment[kind=parameters],
[appliedStereotypes~="ConstraintBlock"] > Compartment[kind=constraints]{
	visible: true;
}

[appliedStereotypes~="FlowSpecification"]{
	elementIcon:false;
	displayIcon:false;
}

[appliedStereotypes~="FlowSpecification"] > Compartment[kind=flowproperties]{
	visible: true;
}

[appliedStereotypes~="ValueType"] > Compartment[kind=attributes],
[appliedStereotypes~="ValueType"] > Compartment[kind=operations]{
	visible: true;
}

/*
 * Comment
 */
Class[appliedStereotypes~="Comment"]{
	visible:true;
}

/*
 * Stereotype ElementGroup
 */
 
Class[appliedStereotypes~="ElementGroup"] {
    visible:true;
    showTitle:true;
}

Class[appliedStereotypes~="ElementGroup"] > Compartment[type=StereotypeCompartment] {
    visible:true;
    showTitle:false;
}

Class[appliedStereotypes~="ElementGroup"] > Compartment[type=StereotypeCompartment] > [property="name"]{
	visible:true;
}

Class[appliedStereotypes~="ElementGroup"] > Compartment[type=StereotypeCompartment] > [property="criterion"]{
	visible:true;
}

Class[appliedStereotypes~="ElementGroup"] > Compartment[type=StereotypeCompartment] > [property="size"]{
	visible:true;
}
Class[appliedStereotypes~="ElementGroup"] > Compartment[type=StereotypeCompartment] > [property="member"]{
	visible:true;
}

Class[appliedStereotypes~="ElementGroup"] > Compartment[type=StereotypeCompartment] > [property="orderedMember"]{
	visible:true;
}

/*
 * Problem
 */
Class[appliedStereotypes~="Problem"]{
	visible:true;
}

/*
 * Rationale
 */
Class[appliedStereotypes~="Rational"]{
	visible:true;
}

/*
 * Stakeholder
 */
Class[appliedStereotypes~="Stakeholder"] > Compartment[type=StereotypeCompartment] {
    visible:true;
    showTitle:false;
} 
 
[appliedStereotypes~="Stakeholder"] > Compartment[kind=attributes],
[appliedStereotypes~="Stakeholder"] > Compartment[kind=operations],
[appliedStereotypes~="Stakeholder"] > Compartment[kind=constraints]{
	visible: true;
}

Class[appliedStereotypes~="Stakeholder"] > Compartment[type=StereotypeCompartment] > [property="concernList"]{
	visible:true;
}
Class[appliedStereotypes~="Stakeholder"] > Compartment[type=StereotypeCompartment] > [property="concern"]{
	visible:true;
}

/*
 * Stereotype View
 */
Class[appliedStereotypes~="View"] > Compartment[kind=attributes],
Class[appliedStereotypes~="View"] > Compartment[kind=operations]{
    visible:true;
    showTitle:false;
} 

Class[appliedStereotypes~="View"] > Compartment[kind="nestedclassifiers"]{
    visible:false;
    showTitle:false;
} 
 
Class[appliedStereotypes~="View"] > Compartment[type=StereotypeCompartment] {
    visible:true;
    showTitle:true;
}

Class[appliedStereotypes~="View"] > Compartment[type=StereotypeCompartment] > [property="stakeholder"]{
	visible:true;
}

Class[appliedStereotypes~="View"] > Compartment[type=StereotypeCompartment] > [property="viewpoint"]{
	visible:true;
}

/*
 * Stereotype Viewpoint
 */
Class[appliedStereotypes~="Viewpoint"] > Compartment[type=StereotypeCompartment] {
    visible:true;
    showTitle:false;
} 
 
[appliedStereotypes~="Viewpoint"] > Compartment[kind=attributes],
[appliedStereotypes~="Viewpoint"] > Compartment[kind=operations]{
	visible:true;
}

[appliedStereotypes~="Viewpoint"] > Compartment[kind="internal structure"],
[appliedStereotypes~="Viewpoint"] > Compartment[kind="symbol"]
{
	visible:false;
}

Class[appliedStereotypes~="Viewpoint"] > Compartment[type=StereotypeCompartment] > [property="stakeholder"]{
	visible:true;
}

Class[appliedStereotypes~="Viewpoint"] > Compartment[type=StereotypeCompartment] > [property="purpose"]{
	visible:true;
}

Class[appliedStereotypes~="Viewpoint"] > Compartment[type=StereotypeCompartment] > [property="concernList"]{
	visible:true;
}

Class[appliedStereotypes~="Viewpoint"] > Compartment[type=StereotypeCompartment] > [property="language"]{
	visible:true;
}
Class[appliedStereotypes~="Viewpoint"] > Compartment[type=StereotypeCompartment] > [property="method"]{
	visible:true;
}

Class[appliedStereotypes~="Viewpoint"] > Compartment[type=StereotypeCompartment] > [property="presentation"]{
	visible:true;
}
Class[appliedStereotypes~="Viewpoint"] > Compartment[type=StereotypeCompartment] > [property="concern"]{
	visible:true;
}

/*
 * SPECIFIC ELEMENTS
 */

Attribute[appliedStereotypes~="Block"]  > Compartment {
	visible:false;
}

Port > Compartment[kind="symbol"]{
	visible: true;
}

ParametricDiagram Compartment{
	visible: false;
	showTitle: true;
}

Class[appliedStereotypes~="Block"] > Compartment[kind=internalstructure],
Class[appliedStereotypes~="ConstraintBlock"] > Compartment[kind=internalstructure]{
	visible: true;
}



CompositeStructureDiagram Property[isConstraint=true]
{
	radiusWidth:30;
	radiusHeight:30;
}

/*
 * No use to show multiplicities, stereotypeLabel <<BindingConnector>> and connector name for bindingConnectors in parametric diagram
 */
Connector > Label:targetMultiplicity {
        visible:false;
}
Connector > Label:sourceMultiplicity {
        visible:false;
}
Connector > Label:name {
        visible:false;
}
Connector > Label:stereotype {
        visible:false;
}
/*
 * In general, showing multiplicities is not useful for properties (they will be [1] anyway)
 */
Property {
	maskLabel: name type;
}

Port[appliedStereotypes~="FlowPort"][isAtomic=true][direction=in] {
	svgFile: "platform:/plugin/org.eclipse.papyrus.sysml16.diagram.common/resources/icons/FlowPort_IN/position.svg";
}

Port[appliedStereotypes~="FlowPort"][isAtomic=true][direction=out] {
	svgFile: "platform:/plugin/org.eclipse.papyrus.sysml16.diagram.common/resources/icons/FlowPort_OUT/position.svg";
}

Port[appliedStereotypes~="FlowPort"][isAtomic=true][direction=inout] {
	svgFile: "platform:/plugin/org.eclipse.papyrus.sysml16.diagram.common/resources/icons/FlowPort_INOUT/position.svg";
}

Port[appliedStereotypes~="FlowPort"][isAtomic=false] {
	svgFile: "platform:/plugin/org.eclipse.papyrus.sysml16.diagram.common/resources/icons/FlowPort_NA/position.svg";
}
 