From 7113cbc23ef6ca555c0f54e1e19eb59a6124187b Mon Sep 17 00:00:00 2001 From: Alexis1663 <92861778+Alexis1663@users.noreply.github.com> Date: Thu, 9 Mar 2023 13:23:49 +0100 Subject: [PATCH 1/4] ajout menu option + redirection sur celle-ci + ajout spinner difficulty avec son adaptateur --- Tetris/app/src/main/AndroidManifest.xml | 12 ++++-- Tetris/app/src/main/java/activity/Menu.kt | 14 ++++++- Tetris/app/src/main/java/activity/Option.kt | 39 +++++++++++++++++++ .../src/main/res/layout/activity_option.xml | 32 +++++++++++++++ 4 files changed, 91 insertions(+), 6 deletions(-) create mode 100644 Tetris/app/src/main/java/activity/Option.kt create mode 100644 Tetris/app/src/main/res/layout/activity_option.xml diff --git a/Tetris/app/src/main/AndroidManifest.xml b/Tetris/app/src/main/AndroidManifest.xml index f35f69d..9519b36 100644 --- a/Tetris/app/src/main/AndroidManifest.xml +++ b/Tetris/app/src/main/AndroidManifest.xml @@ -11,15 +11,19 @@ android:supportsRtl="true" android:theme="@style/Theme.Tetris" tools:targetApi="31"> - + - + + + + + + + diff --git a/Tetris/app/src/main/java/activity/Menu.kt b/Tetris/app/src/main/java/activity/Menu.kt index 81f3763..a3606a6 100644 --- a/Tetris/app/src/main/java/activity/Menu.kt +++ b/Tetris/app/src/main/java/activity/Menu.kt @@ -15,11 +15,21 @@ class Menu : AppCompatActivity() { val appName:TextView = findViewById(R.id.appName) appName.setText(R.string.app_name) + } + + override fun onResume() { + super.onResume() val buttonStart:Button = findViewById(R.id.buttonStart) buttonStart.setOnClickListener { - val intent = Intent(this,Game::class.java) - startActivity(intent) + val intentStart = Intent(this,Game::class.java) + startActivity(intentStart) + } + + val buttonOption:Button = findViewById(R.id.buttonOption) + buttonOption.setOnClickListener { + val intentOption = Intent(this,Option::class.java) + startActivity(intentOption) } } } \ No newline at end of file diff --git a/Tetris/app/src/main/java/activity/Option.kt b/Tetris/app/src/main/java/activity/Option.kt new file mode 100644 index 0000000..485f166 --- /dev/null +++ b/Tetris/app/src/main/java/activity/Option.kt @@ -0,0 +1,39 @@ +package activity + +import android.os.Bundle +import android.view.View +import android.widget.AdapterView +import android.widget.ArrayAdapter +import android.widget.Spinner +import androidx.appcompat.app.AppCompatActivity +import but.androidstudio.tetris.R + +class Option : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_option) + } + + override fun onResume() { + super.onResume() + + val spinnerDifficulty:Spinner = findViewById(R.id.spinnerDifficulty) + val difficulty = arrayOf("Facile","Intermédiaire","Difficile") + + val adaptateurSpinnerDifficulty = ArrayAdapter(this,android.R.layout.simple_spinner_dropdown_item,difficulty) + spinnerDifficulty.adapter = adaptateurSpinnerDifficulty + + spinnerDifficulty.setOnItemSelectedListener(object : AdapterView.OnItemSelectedListener { + override fun onItemSelected(parent: AdapterView<*>, view: View?, position: Int, id: Long) { + val selectedItem = parent.getItemAtPosition(position).toString() + // Faites quelque chose avec l'élément sélectionné + } + + override fun onNothingSelected(parent: AdapterView<*>) { + // Ne rien faire si aucun élément n'est sélectionné + } + }) + + + } +} \ No newline at end of file diff --git a/Tetris/app/src/main/res/layout/activity_option.xml b/Tetris/app/src/main/res/layout/activity_option.xml new file mode 100644 index 0000000..2fd06b3 --- /dev/null +++ b/Tetris/app/src/main/res/layout/activity_option.xml @@ -0,0 +1,32 @@ + + + + + + + + + + \ No newline at end of file From 3406ba8c045ea00453147766823be92b0eb8ee63 Mon Sep 17 00:00:00 2001 From: Alexis1663 <92861778+Alexis1663@users.noreply.github.com> Date: Sat, 11 Mar 2023 19:17:01 +0100 Subject: [PATCH 2/4] ajout diagramme de classe --- Tetris.mdj | 4980 +++++++++++++++++++++++++++++++++++++++++++ Tetris/build.gradle | 4 +- 2 files changed, 4982 insertions(+), 2 deletions(-) create mode 100644 Tetris.mdj diff --git a/Tetris.mdj b/Tetris.mdj new file mode 100644 index 0000000..ff18409 --- /dev/null +++ b/Tetris.mdj @@ -0,0 +1,4980 @@ +{ + "_type": "Project", + "_id": "AAAAAAFF+h6SjaM2Hec=", + "name": "Untitled", + "ownedElements": [ + { + "_type": "UMLModel", + "_id": "AAAAAAFF+qBWK6M3Z8Y=", + "_parent": { + "$ref": "AAAAAAFF+h6SjaM2Hec=" + }, + "name": "Model", + "ownedElements": [ + { + "_type": "UMLClassDiagram", + "_id": "AAAAAAFF+qBtyKM79qY=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Main", + "defaultDiagram": true, + "ownedViews": [ + { + "_type": "UMLModelView", + "_id": "AAAAAAGGy9NvR2ktaPs=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGGy9NvRmkrx4w=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGGy9NvR2kumII=", + "_parent": { + "$ref": "AAAAAAGGy9NvR2ktaPs=" + }, + "model": { + "$ref": "AAAAAAGGy9NvRmkrx4w=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGGy9NvR2kvfHk=", + "_parent": { + "$ref": "AAAAAAGGy9NvR2kumII=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy9NvR2kwv4s=", + "_parent": { + "$ref": "AAAAAAGGy9NvR2kumII=" + }, + "font": "Arial;13;1", + "left": 157, + "top": 638, + "width": 855, + "height": 13, + "text": "modele" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy9NvR2kxwrA=", + "_parent": { + "$ref": "AAAAAAGGy9NvR2kumII=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 73.67724609375, + "height": 13, + "text": "(from Model)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy9NvR2ky6u4=", + "_parent": { + "$ref": "AAAAAAGGy9NvR2kumII=" + }, + "visible": false, + "font": "Arial;13;0", + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 152, + "top": 631, + "width": 865, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGGy9NvR2kvfHk=" + }, + "nameLabel": { + "$ref": "AAAAAAGGy9NvR2kwv4s=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGGy9NvR2kxwrA=" + }, + "propertyLabel": { + "$ref": "AAAAAAGGy9NvR2ky6u4=" + } + } + ], + "containedViews": [ + { + "$ref": "AAAAAAGGy8cOYWbLVn0=" + }, + { + "$ref": "AAAAAAGGy70Ww2Y2yiE=" + }, + { + "$ref": "AAAAAAGGy8uh+2ciucs=" + }, + { + "$ref": "AAAAAAGGy9T4XmlOeXo=" + }, + { + "$ref": "AAAAAAGGy9gyH2mJ5q8=" + }, + { + "$ref": "AAAAAAGGy97o93t7Jhk=" + }, + { + "$ref": "AAAAAAGGy97maXrnNpM=" + }, + { + "$ref": "AAAAAAGGy97kG3pT5Rc=" + }, + { + "$ref": "AAAAAAGGy97hBXm/JRI=" + }, + { + "$ref": "AAAAAAGGy97eTHkraHU=" + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 152, + "top": 616, + "width": 865, + "height": 705, + "nameCompartment": { + "$ref": "AAAAAAGGy9NvR2kumII=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGGy8cOYWbLVn0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGGy8cOYWbJNIA=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGGy8cOYmbMOtM=", + "_parent": { + "$ref": "AAAAAAGGy8cOYWbLVn0=" + }, + "model": { + "$ref": "AAAAAAGGy8cOYWbJNIA=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGGy8cOYmbNCWM=", + "_parent": { + "$ref": "AAAAAAGGy8cOYmbMOtM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 136, + "top": 1480, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy8cOYmbOPnw=", + "_parent": { + "$ref": "AAAAAAGGy8cOYmbMOtM=" + }, + "font": "Arial;13;1", + "left": 189, + "top": 991, + "width": 151, + "height": 13, + "text": "DashBoard" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy8cOYmbPz5g=", + "_parent": { + "$ref": "AAAAAAGGy8cOYmbMOtM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 136, + "top": 1480, + "width": 80.9072265625, + "height": 13, + "text": "(from modele)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy8cOYmbQP60=", + "_parent": { + "$ref": "AAAAAAGGy8cOYmbMOtM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 136, + "top": 1480, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 184, + "top": 984, + "width": 161, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGGy8cOYmbNCWM=" + }, + "nameLabel": { + "$ref": "AAAAAAGGy8cOYmbOPnw=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGGy8cOYmbPz5g=" + }, + "propertyLabel": { + "$ref": "AAAAAAGGy8cOYmbQP60=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGGy8cOYmbRrck=", + "_parent": { + "$ref": "AAAAAAGGy8cOYWbLVn0=" + }, + "model": { + "$ref": "AAAAAAGGy8cOYWbJNIA=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGGy8euImb5LVc=", + "_parent": { + "$ref": "AAAAAAGGy8cOYmbRrck=" + }, + "model": { + "$ref": "AAAAAAGGy8euF2b2+wE=" + }, + "font": "Arial;13;0", + "left": 189, + "top": 1014, + "width": 151, + "height": 13, + "text": "-grid: Array", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGGy8iJc2cAGGo=", + "_parent": { + "$ref": "AAAAAAGGy8cOYmbRrck=" + }, + "model": { + "$ref": "AAAAAAGGy8iJa2b9mbM=" + }, + "font": "Arial;13;0", + "left": 189, + "top": 1029, + "width": 151, + "height": 13, + "text": "-height: int", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGGy8iU22cGs3U=", + "_parent": { + "$ref": "AAAAAAGGy8cOYmbRrck=" + }, + "model": { + "$ref": "AAAAAAGGy8iU0GcDVY0=" + }, + "font": "Arial;13;0", + "left": 189, + "top": 1044, + "width": 151, + "height": 13, + "text": "-width: int", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 184, + "top": 1009, + "width": 161, + "height": 53 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGGy8cOYmbSf10=", + "_parent": { + "$ref": "AAAAAAGGy8cOYWbLVn0=" + }, + "model": { + "$ref": "AAAAAAGGy8cOYWbJNIA=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy8ksMWcR5Zo=", + "_parent": { + "$ref": "AAAAAAGGy8cOYmbSf10=" + }, + "model": { + "$ref": "AAAAAAGGy8ksI2cO5Jc=" + }, + "font": "Arial;13;0", + "left": 189, + "top": 1067, + "width": 151, + "height": 13, + "text": "+isOccuped(): bool", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy8k39mcXqcc=", + "_parent": { + "$ref": "AAAAAAGGy8cOYmbSf10=" + }, + "model": { + "$ref": "AAAAAAGGy8k362cUQFY=" + }, + "font": "Arial;13;0", + "left": 189, + "top": 1082, + "width": 151, + "height": 13, + "text": "+clearLine()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 184, + "top": 1062, + "width": 161, + "height": 38 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGGy8cOYmbTyps=", + "_parent": { + "$ref": "AAAAAAGGy8cOYWbLVn0=" + }, + "model": { + "$ref": "AAAAAAGGy8cOYWbJNIA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 96, + "top": 976, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGGy8cOYmbUrMs=", + "_parent": { + "$ref": "AAAAAAGGy8cOYWbLVn0=" + }, + "model": { + "$ref": "AAAAAAGGy8cOYWbJNIA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 96, + "top": 976, + "width": 10, + "height": 10 + } + ], + "containerView": { + "$ref": "AAAAAAGGy9NvR2ktaPs=" + }, + "font": "Arial;13;0", + "containerChangeable": true, + "left": 184, + "top": 984, + "width": 161, + "height": 116, + "nameCompartment": { + "$ref": "AAAAAAGGy8cOYmbMOtM=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGGy8cOYmbRrck=" + }, + "operationCompartment": { + "$ref": "AAAAAAGGy8cOYmbSf10=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGGy8cOYmbTyps=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGGy8cOYmbUrMs=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGGy70Ww2Y2yiE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGGy70Ww2Y3PA0=", + "_parent": { + "$ref": "AAAAAAGGy70Ww2Y2yiE=" + }, + "model": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGGy70Ww2Y4bgs=", + "_parent": { + "$ref": "AAAAAAGGy70Ww2Y3PA0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 128, + "top": 1656, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy70WxGY5Wo4=", + "_parent": { + "$ref": "AAAAAAGGy70Ww2Y3PA0=" + }, + "font": "Arial;13;1", + "left": 189, + "top": 655, + "width": 151, + "height": 13, + "text": "Game" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy70WxGY6dus=", + "_parent": { + "$ref": "AAAAAAGGy70Ww2Y3PA0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 128, + "top": 1656, + "width": 80.9072265625, + "height": 13, + "text": "(from modele)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy70WxGY7Ugk=", + "_parent": { + "$ref": "AAAAAAGGy70Ww2Y3PA0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 128, + "top": 1656, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 184, + "top": 648, + "width": 161, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGGy70Ww2Y4bgs=" + }, + "nameLabel": { + "$ref": "AAAAAAGGy70WxGY5Wo4=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGGy70WxGY6dus=" + }, + "propertyLabel": { + "$ref": "AAAAAAGGy70WxGY7Ugk=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGGy70WxGY8YGY=", + "_parent": { + "$ref": "AAAAAAGGy70Ww2Y2yiE=" + }, + "model": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGGy71G9GZhAUM=", + "_parent": { + "$ref": "AAAAAAGGy70WxGY8YGY=" + }, + "model": { + "$ref": "AAAAAAGGy71G62ZeKCU=" + }, + "font": "Arial;13;0", + "left": 189, + "top": 678, + "width": 151, + "height": 13, + "text": "-dashBoard: DashBoard", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGGy8BUf2ZpRXw=", + "_parent": { + "$ref": "AAAAAAGGy70WxGY8YGY=" + }, + "model": { + "$ref": "AAAAAAGGy8BUemZmP00=" + }, + "font": "Arial;13;0", + "left": 189, + "top": 693, + "width": 151, + "height": 13, + "text": "-currentPiece: Shape", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGGy8DmvmZwqUY=", + "_parent": { + "$ref": "AAAAAAGGy70WxGY8YGY=" + }, + "model": { + "$ref": "AAAAAAGGy8DmumZtgm8=" + }, + "font": "Arial;13;0", + "left": 189, + "top": 708, + "width": 151, + "height": 13, + "text": "-score: int", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 184, + "top": 673, + "width": 161, + "height": 53 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGGy70WxGY9lSk=", + "_parent": { + "$ref": "AAAAAAGGy70Ww2Y2yiE=" + }, + "model": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy8LQEmZ5NVw=", + "_parent": { + "$ref": "AAAAAAGGy70WxGY9lSk=" + }, + "model": { + "$ref": "AAAAAAGGy8LQDGZ26bU=" + }, + "font": "Arial;13;0", + "left": 189, + "top": 731, + "width": 151, + "height": 13, + "text": "+startGame(): void", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy8NK9GaDwAs=", + "_parent": { + "$ref": "AAAAAAGGy70WxGY9lSk=" + }, + "model": { + "$ref": "AAAAAAGGy8NK7maATSs=" + }, + "font": "Arial;13;0", + "left": 189, + "top": 746, + "width": 151, + "height": 13, + "text": "+pauseGame(): void", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy8ObmmaM3k4=", + "_parent": { + "$ref": "AAAAAAGGy70WxGY9lSk=" + }, + "model": { + "$ref": "AAAAAAGGy8OblWaJo9E=" + }, + "font": "Arial;13;0", + "left": 189, + "top": 761, + "width": 151, + "height": 13, + "text": "+stopGame(): void", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy8QXj2aVYEc=", + "_parent": { + "$ref": "AAAAAAGGy70WxGY9lSk=" + }, + "model": { + "$ref": "AAAAAAGGy8QXiGaSGUQ=" + }, + "font": "Arial;13;0", + "left": 189, + "top": 776, + "width": 151, + "height": 13, + "text": "+moveRight(): void", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy8RXgGabU7o=", + "_parent": { + "$ref": "AAAAAAGGy70WxGY9lSk=" + }, + "model": { + "$ref": "AAAAAAGGy8RXeWaYmI8=" + }, + "font": "Arial;13;0", + "left": 189, + "top": 791, + "width": 151, + "height": 13, + "text": "+moveLeft(): void", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy8RjTWahvos=", + "_parent": { + "$ref": "AAAAAAGGy70WxGY9lSk=" + }, + "model": { + "$ref": "AAAAAAGGy8RjRGae5HQ=" + }, + "font": "Arial;13;0", + "left": 189, + "top": 806, + "width": 151, + "height": 13, + "text": "+rotateRight(): void", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy8Rvc2angzE=", + "_parent": { + "$ref": "AAAAAAGGy70WxGY9lSk=" + }, + "model": { + "$ref": "AAAAAAGGy8RvaWakSzM=" + }, + "font": "Arial;13;0", + "left": 189, + "top": 821, + "width": 151, + "height": 13, + "text": "+rotateLeft(): void", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy8R75mat14s=", + "_parent": { + "$ref": "AAAAAAGGy70WxGY9lSk=" + }, + "model": { + "$ref": "AAAAAAGGy8R73maqR+o=" + }, + "font": "Arial;13;0", + "left": 189, + "top": 836, + "width": 151, + "height": 13, + "text": "+dropPiece(): void", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy8XQrmbDrNY=", + "_parent": { + "$ref": "AAAAAAGGy70WxGY9lSk=" + }, + "model": { + "$ref": "AAAAAAGGy8XQqWbAmkg=" + }, + "font": "Arial;13;0", + "left": 189, + "top": 851, + "width": 151, + "height": 13, + "text": "+updateScore(): void", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 184, + "top": 726, + "width": 161, + "height": 143 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGGy70WxGY+SoU=", + "_parent": { + "$ref": "AAAAAAGGy70Ww2Y2yiE=" + }, + "model": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 88, + "top": 1088, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGGy70WxGY/ma4=", + "_parent": { + "$ref": "AAAAAAGGy70Ww2Y2yiE=" + }, + "model": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 88, + "top": 1088, + "width": 10, + "height": 10 + } + ], + "containerView": { + "$ref": "AAAAAAGGy9NvR2ktaPs=" + }, + "font": "Arial;13;0", + "containerChangeable": true, + "left": 184, + "top": 648, + "width": 161, + "height": 280, + "nameCompartment": { + "$ref": "AAAAAAGGy70Ww2Y3PA0=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGGy70WxGY8YGY=" + }, + "operationCompartment": { + "$ref": "AAAAAAGGy70WxGY9lSk=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGGy70WxGY+SoU=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGGy70WxGY/ma4=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGGy8uh+2ciucs=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGGy8uh+2cjaDE=", + "_parent": { + "$ref": "AAAAAAGGy8uh+2ciucs=" + }, + "model": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGGy8uh+2ckstc=", + "_parent": { + "$ref": "AAAAAAGGy8uh+2cjaDE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": 1248, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy8uh+2clUT4=", + "_parent": { + "$ref": "AAAAAAGGy8uh+2cjaDE=" + }, + "font": "Arial;13;1", + "left": 477, + "top": 951, + "width": 142, + "height": 13, + "text": "Shape" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy8uh+2cmwD8=", + "_parent": { + "$ref": "AAAAAAGGy8uh+2cjaDE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": 1248, + "width": 80.9072265625, + "height": 13, + "text": "(from modele)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy8uh+2cn+1Y=", + "_parent": { + "$ref": "AAAAAAGGy8uh+2cjaDE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 741, + "top": 1750, + "width": 142, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 472, + "top": 944, + "width": 152, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGGy8uh+2ckstc=" + }, + "nameLabel": { + "$ref": "AAAAAAGGy8uh+2clUT4=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGGy8uh+2cmwD8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGGy8uh+2cn+1Y=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGGy8uh+2codtA=", + "_parent": { + "$ref": "AAAAAAGGy8uh+2ciucs=" + }, + "model": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGGy+HRO6J+m+U=", + "_parent": { + "$ref": "AAAAAAGGy8uh+2codtA=" + }, + "model": { + "$ref": "AAAAAAGGy+HRLqJ7Quw=" + }, + "font": "Arial;13;0", + "left": 477, + "top": 974, + "width": 142, + "height": 13, + "text": "-point: int", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 472, + "top": 969, + "width": 152, + "height": 23 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGGy8uh+2cpOTY=", + "_parent": { + "$ref": "AAAAAAGGy8uh+2ciucs=" + }, + "model": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy9oBDmwiMoo=", + "_parent": { + "$ref": "AAAAAAGGy8uh+2cpOTY=" + }, + "model": { + "$ref": "AAAAAAGGy9oBCGwfli0=" + }, + "font": "Arial;13;0", + "left": 477, + "top": 997, + "width": 142, + "height": 13, + "text": "+moveRight(): void", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy9oDO2xDnRk=", + "_parent": { + "$ref": "AAAAAAGGy8uh+2cpOTY=" + }, + "model": { + "$ref": "AAAAAAGGy9oDNGxAf3Y=" + }, + "font": "Arial;13;0", + "left": 477, + "top": 1012, + "width": 142, + "height": 13, + "text": "+moveLeft(): void", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy9oFSmxkVAM=", + "_parent": { + "$ref": "AAAAAAGGy8uh+2cpOTY=" + }, + "model": { + "$ref": "AAAAAAGGy9oFRGxhW54=" + }, + "font": "Arial;13;0", + "left": 477, + "top": 1027, + "width": 142, + "height": 13, + "text": "+rotateRight(): void", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy9oJxWyFv4Q=", + "_parent": { + "$ref": "AAAAAAGGy8uh+2cpOTY=" + }, + "model": { + "$ref": "AAAAAAGGy9oJvWyC7/k=" + }, + "font": "Arial;13;0", + "left": 477, + "top": 1042, + "width": 142, + "height": 13, + "text": "+rotateLeft(): void", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy9onyGymz1c=", + "_parent": { + "$ref": "AAAAAAGGy8uh+2cpOTY=" + }, + "model": { + "$ref": "AAAAAAGGy9onwGyjP2s=" + }, + "font": "Arial;13;0", + "left": 477, + "top": 1057, + "width": 142, + "height": 13, + "text": "+moveDown(): void", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy+cg3M5k2Jk=", + "_parent": { + "$ref": "AAAAAAGGy8uh+2cpOTY=" + }, + "model": { + "$ref": "AAAAAAGGy+cgzc5htYo=" + }, + "font": "Arial;13;0", + "left": 477, + "top": 1072, + "width": 142, + "height": 13, + "text": "+changePoint(): void", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 472, + "top": 992, + "width": 152, + "height": 98 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGGy8uh+2cqqfY=", + "_parent": { + "$ref": "AAAAAAGGy8uh+2ciucs=" + }, + "model": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 264, + "top": 784, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGGy8uh/Gcrp4w=", + "_parent": { + "$ref": "AAAAAAGGy8uh+2ciucs=" + }, + "model": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 264, + "top": 784, + "width": 10, + "height": 10 + } + ], + "containerView": { + "$ref": "AAAAAAGGy9NvR2ktaPs=" + }, + "font": "Arial;13;0", + "containerChangeable": true, + "left": 472, + "top": 944, + "width": 152, + "height": 146, + "nameCompartment": { + "$ref": "AAAAAAGGy8uh+2cjaDE=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGGy8uh+2codtA=" + }, + "operationCompartment": { + "$ref": "AAAAAAGGy8uh+2cpOTY=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGGy8uh+2cqqfY=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGGy8uh/Gcrp4w=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGGy9T4XmlOeXo=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGGy9T4XmlM3lY=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGGy9T4XmlPIcs=", + "_parent": { + "$ref": "AAAAAAGGy9T4XmlOeXo=" + }, + "model": { + "$ref": "AAAAAAGGy9T4XmlM3lY=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGGy9T4XmlQd20=", + "_parent": { + "$ref": "AAAAAAGGy9T4XmlPIcs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 528, + "top": -192, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy9T4XmlRvIY=", + "_parent": { + "$ref": "AAAAAAGGy9T4XmlPIcs=" + }, + "font": "Arial;13;1", + "left": 765, + "top": 935, + "width": 182, + "height": 13, + "text": "Position" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy9T4XmlSD60=", + "_parent": { + "$ref": "AAAAAAGGy9T4XmlPIcs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 528, + "top": -192, + "width": 80.9072265625, + "height": 13, + "text": "(from modele)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy9T4XmlT/mM=", + "_parent": { + "$ref": "AAAAAAGGy9T4XmlPIcs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 528, + "top": -192, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 760, + "top": 928, + "width": 192, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGGy9T4XmlQd20=" + }, + "nameLabel": { + "$ref": "AAAAAAGGy9T4XmlRvIY=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGGy9T4XmlSD60=" + }, + "propertyLabel": { + "$ref": "AAAAAAGGy9T4XmlT/mM=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGGy9T4XmlUpE4=", + "_parent": { + "$ref": "AAAAAAGGy9T4XmlOeXo=" + }, + "model": { + "$ref": "AAAAAAGGy9T4XmlM3lY=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGGy9UozWl53dQ=", + "_parent": { + "$ref": "AAAAAAGGy9T4XmlUpE4=" + }, + "model": { + "$ref": "AAAAAAGGy9UoxGl2GaQ=" + }, + "font": "Arial;13;0", + "left": 765, + "top": 958, + "width": 182, + "height": 13, + "text": "+x: int", + "horizontalAlignment": 0 + }, + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGGy9ciBml/Dks=", + "_parent": { + "$ref": "AAAAAAGGy9T4XmlUpE4=" + }, + "model": { + "$ref": "AAAAAAGGy9ch+2l84Bw=" + }, + "font": "Arial;13;0", + "left": 765, + "top": 973, + "width": 182, + "height": 13, + "text": "+y: int", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 760, + "top": 953, + "width": 192, + "height": 38 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGGy9T4XmlVjc4=", + "_parent": { + "$ref": "AAAAAAGGy9T4XmlOeXo=" + }, + "model": { + "$ref": "AAAAAAGGy9T4XmlM3lY=" + }, + "font": "Arial;13;0", + "left": 760, + "top": 991, + "width": 192, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGGy9T4X2lWlq0=", + "_parent": { + "$ref": "AAAAAAGGy9T4XmlOeXo=" + }, + "model": { + "$ref": "AAAAAAGGy9T4XmlM3lY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": -120, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGGy9T4X2lXADU=", + "_parent": { + "$ref": "AAAAAAGGy9T4XmlOeXo=" + }, + "model": { + "$ref": "AAAAAAGGy9T4XmlM3lY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 336, + "top": -120, + "width": 10, + "height": 10 + } + ], + "containerView": { + "$ref": "AAAAAAGGy9NvR2ktaPs=" + }, + "font": "Arial;13;0", + "containerChangeable": true, + "left": 760, + "top": 928, + "width": 192, + "height": 73, + "nameCompartment": { + "$ref": "AAAAAAGGy9T4XmlPIcs=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGGy9T4XmlUpE4=" + }, + "operationCompartment": { + "$ref": "AAAAAAGGy9T4XmlVjc4=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGGy9T4X2lWlq0=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGGy9T4X2lXADU=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGGy9gyH2mJ5q8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGGy9gyH2mHYTA=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGGy9gyH2mKxoc=", + "_parent": { + "$ref": "AAAAAAGGy9gyH2mJ5q8=" + }, + "model": { + "$ref": "AAAAAAGGy9gyH2mHYTA=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGGy9gyH2mLH70=", + "_parent": { + "$ref": "AAAAAAGGy9gyH2mKxoc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -152, + "top": 884, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy9gyH2mMP0I=", + "_parent": { + "$ref": "AAAAAAGGy9gyH2mKxoc=" + }, + "font": "Arial;13;1", + "left": 365, + "top": 1151, + "width": 80.57080078125, + "height": 13, + "text": "LeftStair" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy9gyH2mNX44=", + "_parent": { + "$ref": "AAAAAAGGy9gyH2mKxoc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -152, + "top": 884, + "width": 80.9072265625, + "height": 13, + "text": "(from modele)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy9gyH2mOGUI=", + "_parent": { + "$ref": "AAAAAAGGy9gyH2mKxoc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -152, + "top": 884, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 360, + "top": 1144, + "width": 90.57080078125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGGy9gyH2mLH70=" + }, + "nameLabel": { + "$ref": "AAAAAAGGy9gyH2mMP0I=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGGy9gyH2mNX44=" + }, + "propertyLabel": { + "$ref": "AAAAAAGGy9gyH2mOGUI=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGGy9gyH2mPY4Q=", + "_parent": { + "$ref": "AAAAAAGGy9gyH2mJ5q8=" + }, + "model": { + "$ref": "AAAAAAGGy9gyH2mHYTA=" + }, + "subViews": [ + { + "_type": "UMLAttributeView", + "_id": "AAAAAAGGy+JTXqdkyg8=", + "_parent": { + "$ref": "AAAAAAGGy9gyH2mPY4Q=" + }, + "model": { + "$ref": "AAAAAAGGy+JTVKdhUnU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 365, + "top": 1174, + "width": 80.57080078125, + "height": 13, + "text": "+Attribute1", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 360, + "top": 1169, + "width": 90.57080078125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGGy9gyIGmQdkc=", + "_parent": { + "$ref": "AAAAAAGGy9gyH2mJ5q8=" + }, + "model": { + "$ref": "AAAAAAGGy9gyH2mHYTA=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy+FvWZdTSQo=", + "_parent": { + "$ref": "AAAAAAGGy9gyIGmQdkc=" + }, + "model": { + "$ref": "AAAAAAGGy+FvSZdQB1s=" + }, + "font": "Arial;13;0", + "left": 365, + "top": 1184, + "width": 80.57080078125, + "height": 13, + "text": "+setPoint()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 360, + "top": 1179, + "width": 90.57080078125, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGGy9gyIGmRxos=", + "_parent": { + "$ref": "AAAAAAGGy9gyH2mJ5q8=" + }, + "model": { + "$ref": "AAAAAAGGy9gyH2mHYTA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -56, + "top": 608, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGGy9gyIGmSkrE=", + "_parent": { + "$ref": "AAAAAAGGy9gyH2mJ5q8=" + }, + "model": { + "$ref": "AAAAAAGGy9gyH2mHYTA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -56, + "top": 608, + "width": 10, + "height": 10 + } + ], + "containerView": { + "$ref": "AAAAAAGGy9NvR2ktaPs=" + }, + "font": "Arial;13;0", + "containerChangeable": true, + "left": 360, + "top": 1144, + "width": 90.57080078125, + "height": 71, + "nameCompartment": { + "$ref": "AAAAAAGGy9gyH2mKxoc=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGGy9gyH2mPY4Q=" + }, + "operationCompartment": { + "$ref": "AAAAAAGGy9gyIGmQdkc=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGGy9gyIGmRxos=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGGy9gyIGmSkrE=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGGy9mUJWuqEqU=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGGy9mUJWum/zo=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9mUJWurVLE=", + "_parent": { + "$ref": "AAAAAAGGy9mUJWuqEqU=" + }, + "model": { + "$ref": "AAAAAAGGy9mUJWum/zo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 406, + "top": 1007, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGGy9mUJWuqEqU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9mUJWusnoU=", + "_parent": { + "$ref": "AAAAAAGGy9mUJWuqEqU=" + }, + "model": { + "$ref": "AAAAAAGGy9mUJWum/zo=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 405, + "top": 992, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGGy9mUJWuqEqU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9mUJmutZAI=", + "_parent": { + "$ref": "AAAAAAGGy9mUJWuqEqU=" + }, + "model": { + "$ref": "AAAAAAGGy9mUJWum/zo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 409, + "top": 1036, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGGy9mUJWuqEqU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9mUJmuup90=", + "_parent": { + "$ref": "AAAAAAGGy9mUJWuqEqU=" + }, + "model": { + "$ref": "AAAAAAGGy9mUJWunXnQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 369, + "top": 1010, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGGy9mUJWuqEqU=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9mUJmuvbYY=", + "_parent": { + "$ref": "AAAAAAGGy9mUJWuqEqU=" + }, + "model": { + "$ref": "AAAAAAGGy9mUJWunXnQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 370, + "top": 997, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGGy9mUJWuqEqU=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9mUJmuw8LM=", + "_parent": { + "$ref": "AAAAAAGGy9mUJWuqEqU=" + }, + "model": { + "$ref": "AAAAAAGGy9mUJWunXnQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 367, + "top": 1038, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGGy9mUJWuqEqU=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9mUJmuxKCw=", + "_parent": { + "$ref": "AAAAAAGGy9mUJWuqEqU=" + }, + "model": { + "$ref": "AAAAAAGGy9mUJWuobHc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 443, + "top": 1004, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGGy9mUJWuqEqU=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9mUJmuygmM=", + "_parent": { + "$ref": "AAAAAAGGy9mUJWuqEqU=" + }, + "model": { + "$ref": "AAAAAAGGy9mUJWuobHc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 440, + "top": 991, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGGy9mUJWuqEqU=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9mUJmuzMq0=", + "_parent": { + "$ref": "AAAAAAGGy9mUJWuqEqU=" + }, + "model": { + "$ref": "AAAAAAGGy9mUJWuobHc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 450, + "top": 1031, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGGy9mUJWuqEqU=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGGy9mUJmu0yDw=", + "_parent": { + "$ref": "AAAAAAGGy9mUJWuqEqU=" + }, + "model": { + "$ref": "AAAAAAGGy9mUJWunXnQ=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGGy9mUJmu1rB4=", + "_parent": { + "$ref": "AAAAAAGGy9mUJWuqEqU=" + }, + "model": { + "$ref": "AAAAAAGGy9mUJWuobHc=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGGy8uh+2ciucs=" + }, + "tail": { + "$ref": "AAAAAAGGy8cOYWbLVn0=" + }, + "lineStyle": 1, + "points": "345:1034;471:1023", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGGy9mUJWurVLE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGGy9mUJWusnoU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGGy9mUJmutZAI=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGGy9mUJmuup90=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGGy9mUJmuvbYY=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGGy9mUJmuw8LM=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGGy9mUJmuxKCw=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGGy9mUJmuygmM=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGGy9mUJmuzMq0=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGGy9mUJmu0yDw=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGGy9mUJmu1rB4=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGGy9uadG+H21E=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGGy9uadG+DNcE=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9uadG+Iots=", + "_parent": { + "$ref": "AAAAAAGGy9uadG+H21E=" + }, + "model": { + "$ref": "AAAAAAGGy9uadG+DNcE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 278, + "top": 948, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGGy9uadG+H21E=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9uadG+JKJ8=", + "_parent": { + "$ref": "AAAAAAGGy9uadG+H21E=" + }, + "model": { + "$ref": "AAAAAAGGy9uadG+DNcE=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 293, + "top": 948, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGGy9uadG+H21E=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9uadG+KtFM=", + "_parent": { + "$ref": "AAAAAAGGy9uadG+H21E=" + }, + "model": { + "$ref": "AAAAAAGGy9uadG+DNcE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 249, + "top": 949, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGGy9uadG+H21E=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9uadG+LvDc=", + "_parent": { + "$ref": "AAAAAAGGy9uadG+H21E=" + }, + "model": { + "$ref": "AAAAAAGGy9uadG+EFG4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 279, + "top": 947, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGGy9uadG+H21E=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9uadG+Mts0=", + "_parent": { + "$ref": "AAAAAAGGy9uadG+H21E=" + }, + "model": { + "$ref": "AAAAAAGGy9uadG+EFG4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 292, + "top": 950, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGGy9uadG+H21E=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9uadG+NbLg=", + "_parent": { + "$ref": "AAAAAAGGy9uadG+H21E=" + }, + "model": { + "$ref": "AAAAAAGGy9uadG+EFG4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 251, + "top": 943, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGGy9uadG+H21E=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9uadG+OZ90=", + "_parent": { + "$ref": "AAAAAAGGy9uadG+H21E=" + }, + "model": { + "$ref": "AAAAAAGGy9uadG+FU5c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 279, + "top": 951, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGGy9uadG+H21E=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9uadG+P4LE=", + "_parent": { + "$ref": "AAAAAAGGy9uadG+H21E=" + }, + "model": { + "$ref": "AAAAAAGGy9uadG+FU5c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 292, + "top": 948, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGGy9uadG+H21E=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9uadG+QDEY=", + "_parent": { + "$ref": "AAAAAAGGy9uadG+H21E=" + }, + "model": { + "$ref": "AAAAAAGGy9uadG+FU5c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 251, + "top": 955, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGGy9uadG+H21E=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGGy9uadG+R28E=", + "_parent": { + "$ref": "AAAAAAGGy9uadG+H21E=" + }, + "model": { + "$ref": "AAAAAAGGy9uadG+EFG4=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGGy9uadW+SShg=", + "_parent": { + "$ref": "AAAAAAGGy9uadG+H21E=" + }, + "model": { + "$ref": "AAAAAAGGy9uadG+FU5c=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGGy8cOYWbLVn0=" + }, + "tail": { + "$ref": "AAAAAAGGy70Ww2Y2yiE=" + }, + "lineStyle": 1, + "points": "264:928;264:983", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGGy9uadG+Iots=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGGy9uadG+JKJ8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGGy9uadG+KtFM=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGGy9uadG+LvDc=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGGy9uadG+Mts0=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGGy9uadG+NbLg=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGGy9uadG+OZ90=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGGy9uadG+P4LE=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGGy9uadG+QDEY=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGGy9uadG+R28E=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGGy9uadW+SShg=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGGy9wZqHFTFdo=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGGy9wZqHFPtN4=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9wZqHFU4dM=", + "_parent": { + "$ref": "AAAAAAGGy9wZqHFTFdo=" + }, + "model": { + "$ref": "AAAAAAGGy9wZqHFPtN4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 417, + "top": 886, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGGy9wZqHFTFdo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9wZqHFV2eY=", + "_parent": { + "$ref": "AAAAAAGGy9wZqHFTFdo=" + }, + "model": { + "$ref": "AAAAAAGGy9wZqHFPtN4=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 426, + "top": 874, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGGy9wZqHFTFdo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9wZqHFWcaY=", + "_parent": { + "$ref": "AAAAAAGGy9wZqHFTFdo=" + }, + "model": { + "$ref": "AAAAAAGGy9wZqHFPtN4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 398, + "top": 909, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGGy9wZqHFTFdo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9wZqHFXJaQ=", + "_parent": { + "$ref": "AAAAAAGGy9wZqHFTFdo=" + }, + "model": { + "$ref": "AAAAAAGGy9wZqHFQIOc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 374, + "top": 851, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGGy9wZqHFTFdo=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9wZqXFY1SE=", + "_parent": { + "$ref": "AAAAAAGGy9wZqHFTFdo=" + }, + "model": { + "$ref": "AAAAAAGGy9wZqHFQIOc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 384, + "top": 842, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGGy9wZqHFTFdo=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9wZqXFZ6Xs=", + "_parent": { + "$ref": "AAAAAAGGy9wZqHFTFdo=" + }, + "model": { + "$ref": "AAAAAAGGy9wZqHFQIOc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 353, + "top": 870, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGGy9wZqHFTFdo=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9wZqXFaf+I=", + "_parent": { + "$ref": "AAAAAAGGy9wZqHFTFdo=" + }, + "model": { + "$ref": "AAAAAAGGy9wZqHFRw3E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 460, + "top": 920, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGGy9wZqHFTFdo=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9wZqXFb4N4=", + "_parent": { + "$ref": "AAAAAAGGy9wZqHFTFdo=" + }, + "model": { + "$ref": "AAAAAAGGy9wZqHFRw3E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 466, + "top": 909, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGGy9wZqHFTFdo=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy9wZqXFc0n8=", + "_parent": { + "$ref": "AAAAAAGGy9wZqHFTFdo=" + }, + "model": { + "$ref": "AAAAAAGGy9wZqHFRw3E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 446, + "top": 945, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGGy9wZqHFTFdo=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGGy9wZqXFde5I=", + "_parent": { + "$ref": "AAAAAAGGy9wZqHFTFdo=" + }, + "model": { + "$ref": "AAAAAAGGy9wZqHFQIOc=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGGy9wZqXFeY74=", + "_parent": { + "$ref": "AAAAAAGGy9wZqHFTFdo=" + }, + "model": { + "$ref": "AAAAAAGGy9wZqHFRw3E=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGGy8uh+2ciucs=" + }, + "tail": { + "$ref": "AAAAAAGGy70Ww2Y2yiE=" + }, + "lineStyle": 1, + "points": "345:853;471:955", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGGy9wZqHFU4dM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGGy9wZqHFV2eY=" + }, + "propertyLabel": { + "$ref": "AAAAAAGGy9wZqHFWcaY=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGGy9wZqHFXJaQ=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGGy9wZqXFY1SE=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGGy9wZqXFZ6Xs=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGGy9wZqXFaf+I=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGGy9wZqXFb4N4=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGGy9wZqXFc0n8=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGGy9wZqXFde5I=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGGy9wZqXFeY74=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGGy97eeHmBsso=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGGy97eeHl/cng=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy97eeHmCMdQ=", + "_parent": { + "$ref": "AAAAAAGGy97eeHmBsso=" + }, + "model": { + "$ref": "AAAAAAGGy97eeHl/cng=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 484, + "top": 1140, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGGy97eeHmBsso=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy97eeHmDVrw=", + "_parent": { + "$ref": "AAAAAAGGy97eeHmBsso=" + }, + "model": { + "$ref": "AAAAAAGGy97eeHl/cng=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 470, + "top": 1135, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGGy97eeHmBsso=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy97eeHmE8nI=", + "_parent": { + "$ref": "AAAAAAGGy97eeHmBsso=" + }, + "model": { + "$ref": "AAAAAAGGy97eeHl/cng=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 513, + "top": 1151, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGGy97eeHmBsso=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGGy8uh+2ciucs=" + }, + "tail": { + "$ref": "AAAAAAGGy97eTHkraHU=" + }, + "lineStyle": 1, + "points": "478:1215;521:1090", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGGy97eeHmCMdQ=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGGy97eeHmDVrw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGGy97eeHmE8nI=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGGy97hLXoVQoY=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGGy97hLXoTfgU=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy97hLXoWpSY=", + "_parent": { + "$ref": "AAAAAAGGy97hLXoVQoY=" + }, + "model": { + "$ref": "AAAAAAGGy97hLXoTfgU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 556, + "top": 1140, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGGy97hLXoVQoY=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy97hLXoX76s=", + "_parent": { + "$ref": "AAAAAAGGy97hLXoVQoY=" + }, + "model": { + "$ref": "AAAAAAGGy97hLXoTfgU=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 541, + "top": 1143, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGGy97hLXoVQoY=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy97hLXoYsFo=", + "_parent": { + "$ref": "AAAAAAGGy97hLXoVQoY=" + }, + "model": { + "$ref": "AAAAAAGGy97hLXoTfgU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 585, + "top": 1135, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGGy97hLXoVQoY=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGGy8uh+2ciucs=" + }, + "tail": { + "$ref": "AAAAAAGGy97hBXm/JRI=" + }, + "lineStyle": 1, + "points": "582:1199;561:1090", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGGy97hLXoWpSY=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGGy97hLXoX76s=" + }, + "propertyLabel": { + "$ref": "AAAAAAGGy97hLXoYsFo=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGGy97kSXqpjRk=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGGy97kSXqn5Rw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy97kSnqqZQY=", + "_parent": { + "$ref": "AAAAAAGGy97kSXqpjRk=" + }, + "model": { + "$ref": "AAAAAAGGy97kSXqn5Rw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 613, + "top": 1119, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGGy97kSXqpjRk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy97kSnqrqxs=", + "_parent": { + "$ref": "AAAAAAGGy97kSXqpjRk=" + }, + "model": { + "$ref": "AAAAAAGGy97kSXqn5Rw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 601, + "top": 1128, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGGy97kSXqpjRk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy97kSnqsiIk=", + "_parent": { + "$ref": "AAAAAAGGy97kSXqpjRk=" + }, + "model": { + "$ref": "AAAAAAGGy97kSXqn5Rw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 636, + "top": 1100, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGGy97kSXqpjRk=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGGy8uh+2ciucs=" + }, + "tail": { + "$ref": "AAAAAAGGy97kG3pT5Rc=" + }, + "lineStyle": 1, + "points": "646:1143;604:1090", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGGy97kSnqqZQY=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGGy97kSnqrqxs=" + }, + "propertyLabel": { + "$ref": "AAAAAAGGy97kSnqsiIk=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGGy97mkns9+dw=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGGy97mkns7kEc=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy97mkns+ATY=", + "_parent": { + "$ref": "AAAAAAGGy97mkns9+dw=" + }, + "model": { + "$ref": "AAAAAAGGy97mkns7kEc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 662, + "top": 1102, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGGy97mkns9+dw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy97mkns/LyE=", + "_parent": { + "$ref": "AAAAAAGGy97mkns9+dw=" + }, + "model": { + "$ref": "AAAAAAGGy97mkns7kEc=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 654, + "top": 1115, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGGy97mkns9+dw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy97mkntAMrA=", + "_parent": { + "$ref": "AAAAAAGGy97mkns9+dw=" + }, + "model": { + "$ref": "AAAAAAGGy97mkns7kEc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 679, + "top": 1077, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGGy97mkns9+dw=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGGy8uh+2ciucs=" + }, + "tail": { + "$ref": "AAAAAAGGy97maXrnNpM=" + }, + "lineStyle": 1, + "points": "719:1127;624:1066", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGGy97mkns+ATY=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGGy97mkns/LyE=" + }, + "propertyLabel": { + "$ref": "AAAAAAGGy97mkntAMrA=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGGy97pKHvRFxM=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGGy97pJ3vPNSU=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy97pKHvSKL4=", + "_parent": { + "$ref": "AAAAAAGGy97pKHvRFxM=" + }, + "model": { + "$ref": "AAAAAAGGy97pJ3vPNSU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 718, + "top": 1083, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGGy97pKHvRFxM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy97pKHvTu0o=", + "_parent": { + "$ref": "AAAAAAGGy97pKHvRFxM=" + }, + "model": { + "$ref": "AAAAAAGGy97pJ3vPNSU=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 713, + "top": 1097, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGGy97pKHvRFxM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy97pKHvUs+Q=", + "_parent": { + "$ref": "AAAAAAGGy97pKHvRFxM=" + }, + "model": { + "$ref": "AAAAAAGGy97pJ3vPNSU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 727, + "top": 1054, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGGy97pKHvRFxM=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGGy8uh+2ciucs=" + }, + "tail": { + "$ref": "AAAAAAGGy97o93t7Jhk=" + }, + "lineStyle": 1, + "points": "823:1109;624:1042", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGGy97pKHvSKL4=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGGy97pKHvTu0o=" + }, + "propertyLabel": { + "$ref": "AAAAAAGGy97pKHvUs+Q=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGGy97o93t7Jhk=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGGy97o93t5Ek0=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGGy97o93t8O00=", + "_parent": { + "$ref": "AAAAAAGGy97o93t7Jhk=" + }, + "model": { + "$ref": "AAAAAAGGy97o93t5Ek0=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGGy97o93t9pZM=", + "_parent": { + "$ref": "AAAAAAGGy97o93t8O00=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1000, + "top": -160, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy97o93t+SZ4=", + "_parent": { + "$ref": "AAAAAAGGy97o93t8O00=" + }, + "font": "Arial;13;1", + "left": 829, + "top": 1103, + "width": 80.57080078125, + "height": 13, + "text": "TShape" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy97o93t/uCk=", + "_parent": { + "$ref": "AAAAAAGGy97o93t8O00=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1000, + "top": -160, + "width": 80.9072265625, + "height": 13, + "text": "(from modele)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy97o93uAq5k=", + "_parent": { + "$ref": "AAAAAAGGy97o93t8O00=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1000, + "top": -160, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 824, + "top": 1096, + "width": 90.57080078125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGGy97o93t9pZM=" + }, + "nameLabel": { + "$ref": "AAAAAAGGy97o93t+SZ4=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGGy97o93t/uCk=" + }, + "propertyLabel": { + "$ref": "AAAAAAGGy97o93uAq5k=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGGy97o93uBCAM=", + "_parent": { + "$ref": "AAAAAAGGy97o93t7Jhk=" + }, + "model": { + "$ref": "AAAAAAGGy97o93t5Ek0=" + }, + "font": "Arial;13;0", + "left": 824, + "top": 1121, + "width": 90.57080078125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGGy97o+HuC72o=", + "_parent": { + "$ref": "AAAAAAGGy97o93t7Jhk=" + }, + "model": { + "$ref": "AAAAAAGGy97o93t5Ek0=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy+GYWJrRwVQ=", + "_parent": { + "$ref": "AAAAAAGGy97o+HuC72o=" + }, + "model": { + "$ref": "AAAAAAGGy+GYTprFFVE=" + }, + "font": "Arial;13;0", + "left": 829, + "top": 1136, + "width": 80.57080078125, + "height": 13, + "text": "+setPoint()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 824, + "top": 1131, + "width": 90.57080078125, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGGy97o+HuDoEQ=", + "_parent": { + "$ref": "AAAAAAGGy97o93t7Jhk=" + }, + "model": { + "$ref": "AAAAAAGGy97o93t5Ek0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 640, + "top": -80, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGGy97o+HuEPMU=", + "_parent": { + "$ref": "AAAAAAGGy97o93t7Jhk=" + }, + "model": { + "$ref": "AAAAAAGGy97o93t5Ek0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 640, + "top": -80, + "width": 10, + "height": 10 + } + ], + "containerView": { + "$ref": "AAAAAAGGy9NvR2ktaPs=" + }, + "font": "Arial;13;0", + "containerChangeable": true, + "left": 824, + "top": 1096, + "width": 90.57080078125, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAGGy97o93t8O00=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGGy97o93uBCAM=" + }, + "operationCompartment": { + "$ref": "AAAAAAGGy97o+HuC72o=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGGy97o+HuDoEQ=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGGy97o+HuEPMU=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGGy97maXrnNpM=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGGy97maXrlxoI=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGGy97maXrovDM=", + "_parent": { + "$ref": "AAAAAAGGy97maXrnNpM=" + }, + "model": { + "$ref": "AAAAAAGGy97maXrlxoI=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGGy97maXrpesw=", + "_parent": { + "$ref": "AAAAAAGGy97maXrovDM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 696, + "top": -104, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy97maXrqwYM=", + "_parent": { + "$ref": "AAAAAAGGy97maXrovDM=" + }, + "font": "Arial;13;1", + "left": 725, + "top": 1135, + "width": 80.57080078125, + "height": 13, + "text": "LLeft" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy97maXrrQ8g=", + "_parent": { + "$ref": "AAAAAAGGy97maXrovDM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 696, + "top": -104, + "width": 80.9072265625, + "height": 13, + "text": "(from modele)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy97maXrsN2U=", + "_parent": { + "$ref": "AAAAAAGGy97maXrovDM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 696, + "top": -104, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 720, + "top": 1128, + "width": 90.57080078125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGGy97maXrpesw=" + }, + "nameLabel": { + "$ref": "AAAAAAGGy97maXrqwYM=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGGy97maXrrQ8g=" + }, + "propertyLabel": { + "$ref": "AAAAAAGGy97maXrsN2U=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGGy97manrtRuE=", + "_parent": { + "$ref": "AAAAAAGGy97maXrnNpM=" + }, + "model": { + "$ref": "AAAAAAGGy97maXrlxoI=" + }, + "font": "Arial;13;0", + "left": 720, + "top": 1153, + "width": 90.57080078125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGGy97manru32g=", + "_parent": { + "$ref": "AAAAAAGGy97maXrnNpM=" + }, + "model": { + "$ref": "AAAAAAGGy97maXrlxoI=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy+GQ8Jopd2Q=", + "_parent": { + "$ref": "AAAAAAGGy97manru32g=" + }, + "model": { + "$ref": "AAAAAAGGy+GQ5podsAo=" + }, + "font": "Arial;13;0", + "left": 725, + "top": 1168, + "width": 80.57080078125, + "height": 13, + "text": "+setPoint()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 720, + "top": 1163, + "width": 90.57080078125, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGGy97manrvnAg=", + "_parent": { + "$ref": "AAAAAAGGy97maXrnNpM=" + }, + "model": { + "$ref": "AAAAAAGGy97maXrlxoI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 440, + "top": -56, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGGy97manrw/QA=", + "_parent": { + "$ref": "AAAAAAGGy97maXrnNpM=" + }, + "model": { + "$ref": "AAAAAAGGy97maXrlxoI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 440, + "top": -56, + "width": 10, + "height": 10 + } + ], + "containerView": { + "$ref": "AAAAAAGGy9NvR2ktaPs=" + }, + "font": "Arial;13;0", + "containerChangeable": true, + "left": 720, + "top": 1128, + "width": 90.57080078125, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAGGy97maXrovDM=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGGy97manrtRuE=" + }, + "operationCompartment": { + "$ref": "AAAAAAGGy97manru32g=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGGy97manrvnAg=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGGy97manrw/QA=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGGy97kG3pT5Rc=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGGy97kGnpR8xE=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGGy97kG3pUt7E=", + "_parent": { + "$ref": "AAAAAAGGy97kG3pT5Rc=" + }, + "model": { + "$ref": "AAAAAAGGy97kGnpR8xE=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGGy97kG3pVemU=", + "_parent": { + "$ref": "AAAAAAGGy97kG3pUt7E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 424, + "top": -72, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy97kG3pW26k=", + "_parent": { + "$ref": "AAAAAAGGy97kG3pUt7E=" + }, + "font": "Arial;13;1", + "left": 629, + "top": 1151, + "width": 80.57080078125, + "height": 13, + "text": "LRight" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy97kG3pXIvw=", + "_parent": { + "$ref": "AAAAAAGGy97kG3pUt7E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 424, + "top": -72, + "width": 80.9072265625, + "height": 13, + "text": "(from modele)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy97kG3pYX2k=", + "_parent": { + "$ref": "AAAAAAGGy97kG3pUt7E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 424, + "top": -72, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 624, + "top": 1144, + "width": 90.57080078125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGGy97kG3pVemU=" + }, + "nameLabel": { + "$ref": "AAAAAAGGy97kG3pW26k=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGGy97kG3pXIvw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGGy97kG3pYX2k=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGGy97kG3pZlK8=", + "_parent": { + "$ref": "AAAAAAGGy97kG3pT5Rc=" + }, + "model": { + "$ref": "AAAAAAGGy97kGnpR8xE=" + }, + "font": "Arial;13;0", + "left": 624, + "top": 1169, + "width": 90.57080078125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGGy97kG3paWLQ=", + "_parent": { + "$ref": "AAAAAAGGy97kG3pT5Rc=" + }, + "model": { + "$ref": "AAAAAAGGy97kGnpR8xE=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy+GJYJmBnpk=", + "_parent": { + "$ref": "AAAAAAGGy97kG3paWLQ=" + }, + "model": { + "$ref": "AAAAAAGGy+GJVZl1an4=" + }, + "font": "Arial;13;0", + "left": 629, + "top": 1184, + "width": 80.57080078125, + "height": 13, + "text": "+setPoint()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 624, + "top": 1179, + "width": 90.57080078125, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGGy97kG3pbV6A=", + "_parent": { + "$ref": "AAAAAAGGy97kG3pT5Rc=" + }, + "model": { + "$ref": "AAAAAAGGy97kGnpR8xE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 264, + "top": -40, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGGy97kG3pcYQY=", + "_parent": { + "$ref": "AAAAAAGGy97kG3pT5Rc=" + }, + "model": { + "$ref": "AAAAAAGGy97kGnpR8xE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 264, + "top": -40, + "width": 10, + "height": 10 + } + ], + "containerView": { + "$ref": "AAAAAAGGy9NvR2ktaPs=" + }, + "font": "Arial;13;0", + "containerChangeable": true, + "left": 624, + "top": 1144, + "width": 90.57080078125, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAGGy97kG3pUt7E=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGGy97kG3pZlK8=" + }, + "operationCompartment": { + "$ref": "AAAAAAGGy97kG3paWLQ=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGGy97kG3pbV6A=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGGy97kG3pcYQY=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGGy97hBXm/JRI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGGy97hBXm9O8E=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGGy97hBXnAWkE=", + "_parent": { + "$ref": "AAAAAAGGy97hBXm/JRI=" + }, + "model": { + "$ref": "AAAAAAGGy97hBXm9O8E=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGGy97hBXnBemo=", + "_parent": { + "$ref": "AAAAAAGGy97hBXnAWkE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 184, + "top": 40, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy97hBXnCzGc=", + "_parent": { + "$ref": "AAAAAAGGy97hBXnAWkE=" + }, + "font": "Arial;13;1", + "left": 549, + "top": 1207, + "width": 80.57080078125, + "height": 13, + "text": "Square" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy97hBXnDah0=", + "_parent": { + "$ref": "AAAAAAGGy97hBXnAWkE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 184, + "top": 40, + "width": 80.9072265625, + "height": 13, + "text": "(from modele)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy97hBnnE3NM=", + "_parent": { + "$ref": "AAAAAAGGy97hBXnAWkE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 184, + "top": 40, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 544, + "top": 1200, + "width": 90.57080078125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGGy97hBXnBemo=" + }, + "nameLabel": { + "$ref": "AAAAAAGGy97hBXnCzGc=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGGy97hBXnDah0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGGy97hBnnE3NM=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGGy97hBnnF5Q4=", + "_parent": { + "$ref": "AAAAAAGGy97hBXm/JRI=" + }, + "model": { + "$ref": "AAAAAAGGy97hBXm9O8E=" + }, + "font": "Arial;13;0", + "left": 544, + "top": 1225, + "width": 90.57080078125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGGy97hBnnGuOY=", + "_parent": { + "$ref": "AAAAAAGGy97hBXm/JRI=" + }, + "model": { + "$ref": "AAAAAAGGy97hBXm9O8E=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy+GBXJjZzWc=", + "_parent": { + "$ref": "AAAAAAGGy97hBnnGuOY=" + }, + "model": { + "$ref": "AAAAAAGGy+GBUZjNKFw=" + }, + "font": "Arial;13;0", + "left": 549, + "top": 1240, + "width": 80.57080078125, + "height": 13, + "text": "+setPoint()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 544, + "top": 1235, + "width": 90.57080078125, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGGy97hBnnHHpE=", + "_parent": { + "$ref": "AAAAAAGGy97hBXm/JRI=" + }, + "model": { + "$ref": "AAAAAAGGy97hBXm9O8E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 104, + "top": 16, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGGy97hBnnIV1I=", + "_parent": { + "$ref": "AAAAAAGGy97hBXm/JRI=" + }, + "model": { + "$ref": "AAAAAAGGy97hBXm9O8E=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 104, + "top": 16, + "width": 10, + "height": 10 + } + ], + "containerView": { + "$ref": "AAAAAAGGy9NvR2ktaPs=" + }, + "font": "Arial;13;0", + "containerChangeable": true, + "left": 544, + "top": 1200, + "width": 90.57080078125, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAGGy97hBXnAWkE=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGGy97hBnnF5Q4=" + }, + "operationCompartment": { + "$ref": "AAAAAAGGy97hBnnGuOY=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGGy97hBnnHHpE=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGGy97hBnnIV1I=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGGy97eTHkraHU=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGGy97eTHkpeg8=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGGy97eTHks1kY=", + "_parent": { + "$ref": "AAAAAAGGy97eTHkraHU=" + }, + "model": { + "$ref": "AAAAAAGGy97eTHkpeg8=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGGy97eTHktqLc=", + "_parent": { + "$ref": "AAAAAAGGy97eTHks1kY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -96, + "top": 152, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy97eTHkuTjE=", + "_parent": { + "$ref": "AAAAAAGGy97eTHks1kY=" + }, + "font": "Arial;13;1", + "left": 429, + "top": 1223, + "width": 80.57080078125, + "height": 13, + "text": "RightStair" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy97eTXkvdwE=", + "_parent": { + "$ref": "AAAAAAGGy97eTHks1kY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -96, + "top": 152, + "width": 80.9072265625, + "height": 13, + "text": "(from modele)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGGy97eTXkw52g=", + "_parent": { + "$ref": "AAAAAAGGy97eTHks1kY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -96, + "top": 152, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 424, + "top": 1216, + "width": 90.57080078125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGGy97eTHktqLc=" + }, + "nameLabel": { + "$ref": "AAAAAAGGy97eTHkuTjE=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGGy97eTXkvdwE=" + }, + "propertyLabel": { + "$ref": "AAAAAAGGy97eTXkw52g=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGGy97eTXkxkpY=", + "_parent": { + "$ref": "AAAAAAGGy97eTHkraHU=" + }, + "model": { + "$ref": "AAAAAAGGy97eTHkpeg8=" + }, + "font": "Arial;13;0", + "left": 424, + "top": 1241, + "width": 90.57080078125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGGy97eTXkyrQk=", + "_parent": { + "$ref": "AAAAAAGGy97eTHkraHU=" + }, + "model": { + "$ref": "AAAAAAGGy97eTHkpeg8=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGGy+F5ZJgxQWQ=", + "_parent": { + "$ref": "AAAAAAGGy97eTXkyrQk=" + }, + "model": { + "$ref": "AAAAAAGGy+F5W5glTUE=" + }, + "font": "Arial;13;0", + "left": 429, + "top": 1256, + "width": 80.57080078125, + "height": 13, + "text": "+setPoint()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 424, + "top": 1251, + "width": 90.57080078125, + "height": 23 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGGy97eTXkz8sk=", + "_parent": { + "$ref": "AAAAAAGGy97eTHkraHU=" + }, + "model": { + "$ref": "AAAAAAGGy97eTHkpeg8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -56, + "top": 112, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGGy97eTXk0CtQ=", + "_parent": { + "$ref": "AAAAAAGGy97eTHkraHU=" + }, + "model": { + "$ref": "AAAAAAGGy97eTHkpeg8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -56, + "top": 112, + "width": 10, + "height": 10 + } + ], + "containerView": { + "$ref": "AAAAAAGGy9NvR2ktaPs=" + }, + "font": "Arial;13;0", + "containerChangeable": true, + "left": 424, + "top": 1216, + "width": 90.57080078125, + "height": 58, + "nameCompartment": { + "$ref": "AAAAAAGGy97eTHks1kY=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGGy97eTXkxkpY=" + }, + "operationCompartment": { + "$ref": "AAAAAAGGy97eTXkyrQk=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGGy97eTXkz8sk=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGGy97eTXk0CtQ=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGGy+MVa64Y0EM=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGGy+MVaq4UzvY=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy+MVa64Z/cE=", + "_parent": { + "$ref": "AAAAAAGGy+MVa64Y0EM=" + }, + "model": { + "$ref": "AAAAAAGGy+MVaq4UzvY=" + }, + "font": "Arial;13;0", + "left": 632, + "top": 975, + "width": 49.13720703125, + "height": 13, + "alpha": -3.553658115054366, + "distance": 36.138621999185304, + "hostEdge": { + "$ref": "AAAAAAGGy+MVa64Y0EM=" + }, + "edgePosition": 1, + "text": "-position" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy+MVa64aNpo=", + "_parent": { + "$ref": "AAAAAAGGy+MVa64Y0EM=" + }, + "model": { + "$ref": "AAAAAAGGy+MVaq4UzvY=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 686, + "top": 955, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGGy+MVa64Y0EM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy+MVa64bnrY=", + "_parent": { + "$ref": "AAAAAAGGy+MVa64Y0EM=" + }, + "model": { + "$ref": "AAAAAAGGy+MVaq4UzvY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 693, + "top": 999, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGGy+MVa64Y0EM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy+MVa64cJW8=", + "_parent": { + "$ref": "AAAAAAGGy+MVa64Y0EM=" + }, + "model": { + "$ref": "AAAAAAGGy+MVaq4V1pc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 647, + "top": 977, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGGy+MVa64Y0EM=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy+MVa64dQ6A=", + "_parent": { + "$ref": "AAAAAAGGy+MVa64Y0EM=" + }, + "model": { + "$ref": "AAAAAAGGy+MVaq4V1pc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 647, + "top": 964, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGGy+MVa64Y0EM=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy+MVa64elGY=", + "_parent": { + "$ref": "AAAAAAGGy+MVa64Y0EM=" + }, + "model": { + "$ref": "AAAAAAGGy+MVaq4V1pc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 647, + "top": 1005, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGGy+MVa64Y0EM=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy+MVa64fanQ=", + "_parent": { + "$ref": "AAAAAAGGy+MVa64Y0EM=" + }, + "model": { + "$ref": "AAAAAAGGy+MVaq4WzSk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 730, + "top": 963, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGGy+MVa64Y0EM=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy+MVa64geKQ=", + "_parent": { + "$ref": "AAAAAAGGy+MVa64Y0EM=" + }, + "model": { + "$ref": "AAAAAAGGy+MVaq4WzSk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 726, + "top": 950, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGGy+MVa64Y0EM=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy+MVa64hhq0=", + "_parent": { + "$ref": "AAAAAAGGy+MVa64Y0EM=" + }, + "model": { + "$ref": "AAAAAAGGy+MVaq4WzSk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 739, + "top": 989, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGGy+MVa64Y0EM=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGGy+MVa64iJnI=", + "_parent": { + "$ref": "AAAAAAGGy+MVa64Y0EM=" + }, + "model": { + "$ref": "AAAAAAGGy+MVaq4V1pc=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGGy+MVa64j6Ow=", + "_parent": { + "$ref": "AAAAAAGGy+MVa64Y0EM=" + }, + "model": { + "$ref": "AAAAAAGGy+MVaq4WzSk=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGGy9T4XmlOeXo=" + }, + "tail": { + "$ref": "AAAAAAGGy8uh+2ciucs=" + }, + "lineStyle": 1, + "points": "624:1003;759:980", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGGy+MVa64Z/cE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGGy+MVa64aNpo=" + }, + "propertyLabel": { + "$ref": "AAAAAAGGy+MVa64bnrY=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGGy+MVa64cJW8=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGGy+MVa64dQ6A=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGGy+MVa64elGY=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGGy+MVa64fanQ=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGGy+MVa64geKQ=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGGy+MVa64hhq0=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGGy+MVa64iJnI=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGGy+MVa64j6Ow=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGGy+QkZ7kuRuc=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGGy+QkZ7ksAKk=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy+QkZ7kv8sE=", + "_parent": { + "$ref": "AAAAAAGGy+QkZ7kuRuc=" + }, + "model": { + "$ref": "AAAAAAGGy+QkZ7ksAKk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 447, + "top": 1100, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGGy+QkZ7kuRuc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy+QkZ7kweKc=", + "_parent": { + "$ref": "AAAAAAGGy+QkZ7kuRuc=" + }, + "model": { + "$ref": "AAAAAAGGy+QkZ7ksAKk=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 436, + "top": 1090, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGGy+QkZ7kuRuc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGGy+QkZ7kxaOo=", + "_parent": { + "$ref": "AAAAAAGGy+QkZ7kuRuc=" + }, + "model": { + "$ref": "AAAAAAGGy+QkZ7ksAKk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 470, + "top": 1119, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGGy+QkZ7kuRuc=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGGy8uh+2ciucs=" + }, + "tail": { + "$ref": "AAAAAAGGy9gyH2mJ5q8=" + }, + "lineStyle": 1, + "points": "436:1143;482:1090", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGGy+QkZ7kv8sE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGGy+QkZ7kweKc=" + }, + "propertyLabel": { + "$ref": "AAAAAAGGy+QkZ7kxaOo=" + } + } + ] + }, + { + "_type": "UMLModel", + "_id": "AAAAAAGGy9NvRmkrx4w=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "modele", + "ownedElements": [ + { + "_type": "UMLClass", + "_id": "AAAAAAGGy8cOYWbJNIA=", + "_parent": { + "$ref": "AAAAAAGGy9NvRmkrx4w=" + }, + "name": "DashBoard", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGGy9mUJWum/zo=", + "_parent": { + "$ref": "AAAAAAGGy8cOYWbJNIA=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGGy9mUJWunXnQ=", + "_parent": { + "$ref": "AAAAAAGGy9mUJWum/zo=" + }, + "reference": { + "$ref": "AAAAAAGGy8cOYWbJNIA=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGGy9mUJWuobHc=", + "_parent": { + "$ref": "AAAAAAGGy9mUJWum/zo=" + }, + "reference": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + }, + "aggregation": "shared" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGGy8euF2b2+wE=", + "_parent": { + "$ref": "AAAAAAGGy8cOYWbJNIA=" + }, + "name": "grid", + "visibility": "private", + "type": "Array" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGGy8iJa2b9mbM=", + "_parent": { + "$ref": "AAAAAAGGy8cOYWbJNIA=" + }, + "name": "height", + "visibility": "private", + "type": "int" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGGy8iU0GcDVY0=", + "_parent": { + "$ref": "AAAAAAGGy8cOYWbJNIA=" + }, + "name": "width", + "visibility": "private", + "type": "int" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy8ksI2cO5Jc=", + "_parent": { + "$ref": "AAAAAAGGy8cOYWbJNIA=" + }, + "name": "isOccuped", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGGy8mDVmcciUc=", + "_parent": { + "$ref": "AAAAAAGGy8ksI2cO5Jc=" + }, + "type": "bool", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy8k362cUQFY=", + "_parent": { + "$ref": "AAAAAAGGy8cOYWbJNIA=" + }, + "name": "clearLine" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGGy70WwmY0WtY=", + "_parent": { + "$ref": "AAAAAAGGy9NvRmkrx4w=" + }, + "name": "Game", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGGy9uadG+DNcE=", + "_parent": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGGy9uadG+EFG4=", + "_parent": { + "$ref": "AAAAAAGGy9uadG+DNcE=" + }, + "reference": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGGy9uadG+FU5c=", + "_parent": { + "$ref": "AAAAAAGGy9uadG+DNcE=" + }, + "reference": { + "$ref": "AAAAAAGGy8cOYWbJNIA=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGGy9wZqHFPtN4=", + "_parent": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGGy9wZqHFQIOc=", + "_parent": { + "$ref": "AAAAAAGGy9wZqHFPtN4=" + }, + "reference": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGGy9wZqHFRw3E=", + "_parent": { + "$ref": "AAAAAAGGy9wZqHFPtN4=" + }, + "reference": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + } + }, + "visibility": "private" + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGGy71G62ZeKCU=", + "_parent": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + }, + "name": "dashBoard", + "visibility": "private", + "type": { + "$ref": "AAAAAAGGy8cOYWbJNIA=" + } + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGGy8BUemZmP00=", + "_parent": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + }, + "name": "currentPiece", + "visibility": "private", + "type": "Shape" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGGy8DmumZtgm8=", + "_parent": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + }, + "name": "score", + "visibility": "private", + "type": "int" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy8LQDGZ26bU=", + "_parent": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + }, + "name": "startGame", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGGy8MSgWZ+xHc=", + "_parent": { + "$ref": "AAAAAAGGy8LQDGZ26bU=" + }, + "type": "void", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy8NK7maATSs=", + "_parent": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + }, + "name": "pauseGame", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGGy8OFNGaHD+8=", + "_parent": { + "$ref": "AAAAAAGGy8NK7maATSs=" + }, + "type": "void", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy8OblWaJo9E=", + "_parent": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + }, + "name": "stopGame", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGGy8PFiWaQ7n8=", + "_parent": { + "$ref": "AAAAAAGGy8OblWaJo9E=" + }, + "type": "void", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy8QXiGaSGUQ=", + "_parent": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + }, + "name": "moveRight", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGGy8SqZ2axwaY=", + "_parent": { + "$ref": "AAAAAAGGy8QXiGaSGUQ=" + }, + "type": "void", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy8RXeWaYmI8=", + "_parent": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + }, + "name": "moveLeft", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGGy8TSyWa0MeI=", + "_parent": { + "$ref": "AAAAAAGGy8RXeWaYmI8=" + }, + "type": "void", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy8RjRGae5HQ=", + "_parent": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + }, + "name": "rotateRight", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGGy8VJEGa3qAk=", + "_parent": { + "$ref": "AAAAAAGGy8RjRGae5HQ=" + }, + "type": "void", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy8RvaWakSzM=", + "_parent": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + }, + "name": "rotateLeft", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGGy8Vp7Wa6lA0=", + "_parent": { + "$ref": "AAAAAAGGy8RvaWakSzM=" + }, + "type": "void", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy8R73maqR+o=", + "_parent": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + }, + "name": "dropPiece", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGGy8W67Wa+bIM=", + "_parent": { + "$ref": "AAAAAAGGy8R73maqR+o=" + }, + "type": "void", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy8XQqWbAmkg=", + "_parent": { + "$ref": "AAAAAAGGy70WwmY0WtY=" + }, + "name": "updateScore", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGGy8X1+GbHj1g=", + "_parent": { + "$ref": "AAAAAAGGy8XQqWbAmkg=" + }, + "type": "void", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGGy8uh+mcgY1w=", + "_parent": { + "$ref": "AAAAAAGGy9NvRmkrx4w=" + }, + "name": "Shape", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGGy9gyO2mwy/E=", + "_parent": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + }, + "source": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + }, + "target": { + "$ref": "AAAAAAGGy9gyH2mHYTA=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGGy+MVaq4UzvY=", + "_parent": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + }, + "name": "position", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGGy+MVaq4V1pc=", + "_parent": { + "$ref": "AAAAAAGGy+MVaq4UzvY=" + }, + "reference": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGGy+MVaq4WzSk=", + "_parent": { + "$ref": "AAAAAAGGy+MVaq4UzvY=" + }, + "reference": { + "$ref": "AAAAAAGGy9T4XmlM3lY=" + } + }, + "visibility": "private" + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGGy+HRLqJ7Quw=", + "_parent": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + }, + "name": "point", + "visibility": "private", + "type": "int" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy9oBCGwfli0=", + "_parent": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + }, + "name": "moveRight", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGGy9r/pm3uvzo=", + "_parent": { + "$ref": "AAAAAAGGy9oBCGwfli0=" + }, + "type": "void", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy9oDNGxAf3Y=", + "_parent": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + }, + "name": "moveLeft", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGGy9sOC24byIQ=", + "_parent": { + "$ref": "AAAAAAGGy9oDNGxAf3Y=" + }, + "type": "void", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy9oFRGxhW54=", + "_parent": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + }, + "name": "rotateRight", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGGy9sdlW5I0jM=", + "_parent": { + "$ref": "AAAAAAGGy9oFRGxhW54=" + }, + "type": "void", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy9oJvWyC7/k=", + "_parent": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + }, + "name": "rotateLeft", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGGy9srF251aF4=", + "_parent": { + "$ref": "AAAAAAGGy9oJvWyC7/k=" + }, + "type": "void", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy9onwGyjP2s=", + "_parent": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + }, + "name": "moveDown", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGGy9s3/26iZus=", + "_parent": { + "$ref": "AAAAAAGGy9onwGyjP2s=" + }, + "type": "void", + "direction": "return" + } + ] + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy+cgzc5htYo=", + "_parent": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + }, + "name": "changePoint", + "parameters": [ + { + "_type": "UMLParameter", + "_id": "AAAAAAGGy+dAg89xSzU=", + "_parent": { + "$ref": "AAAAAAGGy+cgzc5htYo=" + }, + "type": "void", + "direction": "return" + } + ] + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGGy9T4XmlM3lY=", + "_parent": { + "$ref": "AAAAAAGGy9NvRmkrx4w=" + }, + "name": "Position", + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGGy9UoxGl2GaQ=", + "_parent": { + "$ref": "AAAAAAGGy9T4XmlM3lY=" + }, + "name": "x", + "type": "int" + }, + { + "_type": "UMLAttribute", + "_id": "AAAAAAGGy9ch+2l84Bw=", + "_parent": { + "$ref": "AAAAAAGGy9T4XmlM3lY=" + }, + "name": "y", + "type": "int" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGGy9gyH2mHYTA=", + "_parent": { + "$ref": "AAAAAAGGy9NvRmkrx4w=" + }, + "name": "LeftStair", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGGy+QkZ7ksAKk=", + "_parent": { + "$ref": "AAAAAAGGy9gyH2mHYTA=" + }, + "source": { + "$ref": "AAAAAAGGy9gyH2mHYTA=" + }, + "target": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + } + } + ], + "attributes": [ + { + "_type": "UMLAttribute", + "_id": "AAAAAAGGy+JTVKdhUnU=", + "_parent": { + "$ref": "AAAAAAGGy9gyH2mHYTA=" + }, + "name": "Attribute1", + "type": "" + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy+FvSZdQB1s=", + "_parent": { + "$ref": "AAAAAAGGy9gyH2mHYTA=" + }, + "name": "setPoint" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGGy97o93t5Ek0=", + "_parent": { + "$ref": "AAAAAAGGy9NvRmkrx4w=" + }, + "name": "TShape", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGGy97pJ3vPNSU=", + "_parent": { + "$ref": "AAAAAAGGy97o93t5Ek0=" + }, + "source": { + "$ref": "AAAAAAGGy97o93t5Ek0=" + }, + "target": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy+GYTprFFVE=", + "_parent": { + "$ref": "AAAAAAGGy97o93t5Ek0=" + }, + "name": "setPoint" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGGy97maXrlxoI=", + "_parent": { + "$ref": "AAAAAAGGy9NvRmkrx4w=" + }, + "name": "LLeft", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGGy97mkns7kEc=", + "_parent": { + "$ref": "AAAAAAGGy97maXrlxoI=" + }, + "source": { + "$ref": "AAAAAAGGy97maXrlxoI=" + }, + "target": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy+GQ5podsAo=", + "_parent": { + "$ref": "AAAAAAGGy97maXrlxoI=" + }, + "name": "setPoint" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGGy97kGnpR8xE=", + "_parent": { + "$ref": "AAAAAAGGy9NvRmkrx4w=" + }, + "name": "LRight", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGGy97kSXqn5Rw=", + "_parent": { + "$ref": "AAAAAAGGy97kGnpR8xE=" + }, + "source": { + "$ref": "AAAAAAGGy97kGnpR8xE=" + }, + "target": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy+GJVZl1an4=", + "_parent": { + "$ref": "AAAAAAGGy97kGnpR8xE=" + }, + "name": "setPoint" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGGy97hBXm9O8E=", + "_parent": { + "$ref": "AAAAAAGGy9NvRmkrx4w=" + }, + "name": "Square", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGGy97hLXoTfgU=", + "_parent": { + "$ref": "AAAAAAGGy97hBXm9O8E=" + }, + "source": { + "$ref": "AAAAAAGGy97hBXm9O8E=" + }, + "target": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy+GBUZjNKFw=", + "_parent": { + "$ref": "AAAAAAGGy97hBXm9O8E=" + }, + "name": "setPoint" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGGy97eTHkpeg8=", + "_parent": { + "$ref": "AAAAAAGGy9NvRmkrx4w=" + }, + "name": "RightStair", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGGy97eeHl/cng=", + "_parent": { + "$ref": "AAAAAAGGy97eTHkpeg8=" + }, + "source": { + "$ref": "AAAAAAGGy97eTHkpeg8=" + }, + "target": { + "$ref": "AAAAAAGGy8uh+mcgY1w=" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGGy+F5W5glTUE=", + "_parent": { + "$ref": "AAAAAAGGy97eTHkpeg8=" + }, + "name": "setPoint" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/Tetris/build.gradle b/Tetris/build.gradle index 7cadbe8..6eba3d5 100644 --- a/Tetris/build.gradle +++ b/Tetris/build.gradle @@ -1,6 +1,6 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { - id 'com.android.application' version '7.4.0' apply false - id 'com.android.library' version '7.4.0' apply false + id 'com.android.application' version '7.4.1' apply false + id 'com.android.library' version '7.4.1' apply false id 'org.jetbrains.kotlin.android' version '1.7.21' apply false } \ No newline at end of file From e648c719c288b6a156dbe256a6bf8bf670f7824f Mon Sep 17 00:00:00 2001 From: Alexis1663 <92861778+Alexis1663@users.noreply.github.com> Date: Fri, 17 Mar 2023 11:35:41 +0100 Subject: [PATCH 3/4] ajout debut modele + modif diagramme de classe --- Tetris/app/src/main/java/modele/DashBoard.kt | 54 +++++++++++++++++++ Tetris/app/src/main/java/modele/Draw.kt | 10 ---- Tetris/app/src/main/java/modele/Game.kt | 6 +++ Tetris/app/src/main/java/modele/Position.kt | 14 +++++ Tetris/app/src/main/java/modele/Shape.kt | 23 ++++++++ Tetris/app/src/main/java/modele/TypeShape.kt | 14 +++++ .../src/main/res/layout/activity_option.xml | 2 + Tetris/app/src/main/res/values/strings.xml | 2 + Tetris/mylibrary/.gitignore | 1 + Tetris/mylibrary/build.gradle | 41 ++++++++++++++ Tetris/mylibrary/consumer-rules.pro | 0 Tetris/mylibrary/proguard-rules.pro | 21 ++++++++ .../mylibrary/ExampleInstrumentedTest.kt | 24 +++++++++ Tetris/mylibrary/src/main/AndroidManifest.xml | 4 ++ .../com/example/mylibrary/ExampleUnitTest.kt | 17 ++++++ Tetris/settings.gradle | 1 + 16 files changed, 224 insertions(+), 10 deletions(-) create mode 100644 Tetris/app/src/main/java/modele/DashBoard.kt delete mode 100644 Tetris/app/src/main/java/modele/Draw.kt create mode 100644 Tetris/app/src/main/java/modele/Game.kt create mode 100644 Tetris/app/src/main/java/modele/Position.kt create mode 100644 Tetris/app/src/main/java/modele/Shape.kt create mode 100644 Tetris/app/src/main/java/modele/TypeShape.kt create mode 100644 Tetris/mylibrary/.gitignore create mode 100644 Tetris/mylibrary/build.gradle create mode 100644 Tetris/mylibrary/consumer-rules.pro create mode 100644 Tetris/mylibrary/proguard-rules.pro create mode 100644 Tetris/mylibrary/src/androidTest/java/com/example/mylibrary/ExampleInstrumentedTest.kt create mode 100644 Tetris/mylibrary/src/main/AndroidManifest.xml create mode 100644 Tetris/mylibrary/src/test/java/com/example/mylibrary/ExampleUnitTest.kt diff --git a/Tetris/app/src/main/java/modele/DashBoard.kt b/Tetris/app/src/main/java/modele/DashBoard.kt new file mode 100644 index 0000000..247cb08 --- /dev/null +++ b/Tetris/app/src/main/java/modele/DashBoard.kt @@ -0,0 +1,54 @@ +package modele + +class DashBoard(private val width: Int,private val height: Int) { + private val gridOfGame = Array(this.height){IntArray(this.width)} + + // Our getter + fun getWidth(): Int = this.width + fun getHeight(): Int = this.height + + // To check if an position is occupied + fun isOccupied(col: Int,row: Int): Boolean = gridOfGame[row][col] != 0 + + fun isLineFull(row: Int): Boolean{ + for (col in 0 until this.width){ + if(gridOfGame[row][col] == 0){ + return false + } + } + return true + } + + fun clearLine(row: Int){ + for (col in 0 until this.width){ + gridOfGame[row][col] = 0 + } + } + + fun shiftDown(rowToBegin: Int){ + for (row in (height - 1)..rowToBegin){ + for (col in 0 until this.width){ + gridOfGame[row][col] = gridOfGame[row - rowToBegin][col] + } + } + for (row in 0 until rowToBegin){ + for (col in 0 until this.width){ + gridOfGame[row][col] = 0 + } + } + } + + //To check each grid line and remove if a line is full. Uses clearLine(), isLineFull() and shiftDown() + fun clearLines(){ + var nbRowCleared: Int = 0 + for (row in 0 until this.height){ + if(isLineFull(row)){ + clearLine(row) + ++nbRowCleared + } + } + if(nbRowCleared != 0){ + shiftDown(nbRowCleared) + } + } +} \ No newline at end of file diff --git a/Tetris/app/src/main/java/modele/Draw.kt b/Tetris/app/src/main/java/modele/Draw.kt deleted file mode 100644 index d4cfe30..0000000 --- a/Tetris/app/src/main/java/modele/Draw.kt +++ /dev/null @@ -1,10 +0,0 @@ -package modele - -import android.annotation.SuppressLint -import android.content.Context -import android.graphics.Paint -import android.graphics.Path -import android.view.View - -class Draw { -} \ No newline at end of file diff --git a/Tetris/app/src/main/java/modele/Game.kt b/Tetris/app/src/main/java/modele/Game.kt new file mode 100644 index 0000000..9aabde3 --- /dev/null +++ b/Tetris/app/src/main/java/modele/Game.kt @@ -0,0 +1,6 @@ +package modele +class Game(private val width: Int,private val height: Int) { + private val dashBoard: DashBoard = DashBoard(width,height) + private val currentShape: Shape? = null + +} \ No newline at end of file diff --git a/Tetris/app/src/main/java/modele/Position.kt b/Tetris/app/src/main/java/modele/Position.kt new file mode 100644 index 0000000..4d8cfad --- /dev/null +++ b/Tetris/app/src/main/java/modele/Position.kt @@ -0,0 +1,14 @@ +package modele + +class Position(private var x: Int,private var y: Int) { + fun getX() = this.x + fun getY() = this.y + + fun setX(newX: Int){ + this.x = newX + } + + fun setY(newY: Int){ + this.y = newY + } +} \ No newline at end of file diff --git a/Tetris/app/src/main/java/modele/Shape.kt b/Tetris/app/src/main/java/modele/Shape.kt new file mode 100644 index 0000000..cff686a --- /dev/null +++ b/Tetris/app/src/main/java/modele/Shape.kt @@ -0,0 +1,23 @@ +package modele + +class Shape(private var x: Int,private var y: Int) { + fun moveRight(){ + this.x += 1 + } + + fun moveLeft(){ + this.x -=1 + } + + fun moveDown(){ + this.y -= 1 + } + + /*fun rotateLeft(){ + + }*/ + + /*fun rotateRight(){ + + }*/ +} \ No newline at end of file diff --git a/Tetris/app/src/main/java/modele/TypeShape.kt b/Tetris/app/src/main/java/modele/TypeShape.kt new file mode 100644 index 0000000..8802b20 --- /dev/null +++ b/Tetris/app/src/main/java/modele/TypeShape.kt @@ -0,0 +1,14 @@ +package modele + +enum class TypeShape(private var shape: Array) { + ZStair(arrayOf(Position(-1, 1), Position(0, 1), Position(0, 0), Position(1, 1))), + SStair(arrayOf(Position(-1,0),Position(0,0),Position(0,1),Position(1,1))), + LRight(arrayOf(Position(-1,0),Position(0,0),Position(0,1),Position(0,2))), + LLeft(arrayOf(Position(0,2),Position(0,1),Position(0,0),Position(1,0))), + TShape(arrayOf(Position(-1,0),Position(0,0),Position(0,-1),Position(1,0))), + IShape(arrayOf(Position(0,0),Position(0,1),Position(0,2),Position(0,3))), + SquareShape(arrayOf(Position(0,0),Position(0,-1),Position(1,-1),Position(1,0))); + + // The getter of the array of position of the enum shape + fun getShape(): Array = this.shape.copyOf() +} \ No newline at end of file diff --git a/Tetris/app/src/main/res/layout/activity_option.xml b/Tetris/app/src/main/res/layout/activity_option.xml index 2fd06b3..e40e7ac 100644 --- a/Tetris/app/src/main/res/layout/activity_option.xml +++ b/Tetris/app/src/main/res/layout/activity_option.xml @@ -6,6 +6,8 @@ android:layout_height="match_parent" tools:context="activity.Menu"> + + Tetris + + Hello blank fragment \ No newline at end of file diff --git a/Tetris/mylibrary/.gitignore b/Tetris/mylibrary/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/Tetris/mylibrary/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/Tetris/mylibrary/build.gradle b/Tetris/mylibrary/build.gradle new file mode 100644 index 0000000..e2b9388 --- /dev/null +++ b/Tetris/mylibrary/build.gradle @@ -0,0 +1,41 @@ +plugins { + id 'com.android.library' + id 'org.jetbrains.kotlin.android' +} + +android { + namespace 'com.example.mylibrary' + compileSdk 33 + + defaultConfig { + minSdk 16 + targetSdk 33 + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles "consumer-rules.pro" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } +} + +dependencies { + + implementation 'androidx.core:core-ktx:1.7.0' + implementation 'androidx.appcompat:appcompat:1.6.1' + implementation 'com.google.android.material:material:1.8.0' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' +} \ No newline at end of file diff --git a/Tetris/mylibrary/consumer-rules.pro b/Tetris/mylibrary/consumer-rules.pro new file mode 100644 index 0000000..e69de29 diff --git a/Tetris/mylibrary/proguard-rules.pro b/Tetris/mylibrary/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/Tetris/mylibrary/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/Tetris/mylibrary/src/androidTest/java/com/example/mylibrary/ExampleInstrumentedTest.kt b/Tetris/mylibrary/src/androidTest/java/com/example/mylibrary/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..9bc1b73 --- /dev/null +++ b/Tetris/mylibrary/src/androidTest/java/com/example/mylibrary/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.example.mylibrary + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("com.example.mylibrary.test", appContext.packageName) + } +} \ No newline at end of file diff --git a/Tetris/mylibrary/src/main/AndroidManifest.xml b/Tetris/mylibrary/src/main/AndroidManifest.xml new file mode 100644 index 0000000..a5918e6 --- /dev/null +++ b/Tetris/mylibrary/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Tetris/mylibrary/src/test/java/com/example/mylibrary/ExampleUnitTest.kt b/Tetris/mylibrary/src/test/java/com/example/mylibrary/ExampleUnitTest.kt new file mode 100644 index 0000000..e9c2e27 --- /dev/null +++ b/Tetris/mylibrary/src/test/java/com/example/mylibrary/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package com.example.mylibrary + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/Tetris/settings.gradle b/Tetris/settings.gradle index 0b3e1b8..19ebe97 100644 --- a/Tetris/settings.gradle +++ b/Tetris/settings.gradle @@ -14,3 +14,4 @@ dependencyResolutionManagement { } rootProject.name = "Tetris" include ':app' +include ':mylibrary' From 1f89f63222d681b2140a972b358ee466ee780586 Mon Sep 17 00:00:00 2001 From: Alexis1663 <92861778+Alexis1663@users.noreply.github.com> Date: Fri, 24 Mar 2023 15:17:57 +0100 Subject: [PATCH 4/4] =?UTF-8?q?ajout=20mod=C3=A8le?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Tetris/.idea/gradle.xml | 1 + Tetris/app/build.gradle | 1 + Tetris/app/src/main/AndroidManifest.xml | 6 ++ Tetris/app/src/main/java/activity/Game.kt | 7 +++ .../src/main/java/activity/MainActivity.kt | 26 ++++++++ Tetris/app/src/main/java/activity/Option.kt | 2 +- .../but/androidstudio/tetris/MainFragment.kt | 21 +++++++ .../androidstudio/tetris/OptionFragment.kt | 59 +++++++++++++++++++ Tetris/app/src/main/java/modele/DashBoard.kt | 6 ++ Tetris/app/src/main/java/modele/Difficulty.kt | 7 +++ Tetris/app/src/main/java/modele/Draw.kt | 10 ++++ .../app/src/main/java/modele/EnumTypeShape.kt | 5 ++ Tetris/app/src/main/java/modele/Game.kt | 21 ++++++- Tetris/app/src/main/java/modele/Shape.kt | 38 ++++++++---- Tetris/app/src/main/java/modele/TypeShape.kt | 56 ++++++++++++++---- .../src/main/res/layout/activity_option.xml | 5 +- .../{activity_menu.xml => fragment_main.xml} | 9 +-- .../src/main/res/layout/fragment_option.xml | 41 +++++++++++++ .../app/src/main/res/layout/main_activity.xml | 11 ++++ Tetris/app/src/test/java/modele/Draw.kt | 4 ++ 20 files changed, 306 insertions(+), 30 deletions(-) create mode 100644 Tetris/app/src/main/java/activity/MainActivity.kt create mode 100644 Tetris/app/src/main/java/but/androidstudio/tetris/MainFragment.kt create mode 100644 Tetris/app/src/main/java/but/androidstudio/tetris/OptionFragment.kt create mode 100644 Tetris/app/src/main/java/modele/Difficulty.kt create mode 100644 Tetris/app/src/main/java/modele/Draw.kt create mode 100644 Tetris/app/src/main/java/modele/EnumTypeShape.kt rename Tetris/app/src/main/res/layout/{activity_menu.xml => fragment_main.xml} (90%) create mode 100644 Tetris/app/src/main/res/layout/fragment_option.xml create mode 100644 Tetris/app/src/main/res/layout/main_activity.xml create mode 100644 Tetris/app/src/test/java/modele/Draw.kt diff --git a/Tetris/.idea/gradle.xml b/Tetris/.idea/gradle.xml index a2d7c21..0d498f0 100644 --- a/Tetris/.idea/gradle.xml +++ b/Tetris/.idea/gradle.xml @@ -11,6 +11,7 @@ diff --git a/Tetris/app/build.gradle b/Tetris/app/build.gradle index ba3fe66..c68d295 100644 --- a/Tetris/app/build.gradle +++ b/Tetris/app/build.gradle @@ -38,6 +38,7 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.8.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' + implementation 'androidx.fragment:fragment:1.5.5' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' diff --git a/Tetris/app/src/main/AndroidManifest.xml b/Tetris/app/src/main/AndroidManifest.xml index 9519b36..3128eb6 100644 --- a/Tetris/app/src/main/AndroidManifest.xml +++ b/Tetris/app/src/main/AndroidManifest.xml @@ -29,6 +29,12 @@ + + + + + + \ No newline at end of file diff --git a/Tetris/app/src/main/java/activity/Game.kt b/Tetris/app/src/main/java/activity/Game.kt index ff6cd48..858b830 100644 --- a/Tetris/app/src/main/java/activity/Game.kt +++ b/Tetris/app/src/main/java/activity/Game.kt @@ -5,6 +5,7 @@ import android.os.Bundle import android.widget.ImageView import androidx.core.content.ContextCompat import but.androidstudio.tetris.R +import modele.Game class Game : AppCompatActivity() { @@ -13,5 +14,11 @@ class Game : AppCompatActivity() { setContentView(R.layout.activity_game) } + override fun onResume() { + super.onResume() + val myGame: modele.Game = Game(10,20) + myGame.startGame() + } + } \ No newline at end of file diff --git a/Tetris/app/src/main/java/activity/MainActivity.kt b/Tetris/app/src/main/java/activity/MainActivity.kt new file mode 100644 index 0000000..bac5d66 --- /dev/null +++ b/Tetris/app/src/main/java/activity/MainActivity.kt @@ -0,0 +1,26 @@ +package activity + +import android.os.Bundle +import android.os.PersistableBundle +import androidx.appcompat.app.AppCompatActivity +import androidx.fragment.app.FragmentContainerView +import but.androidstudio.tetris.MainFragment +import but.androidstudio.tetris.R + +class MainActivity : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.main_activity) + if(savedInstanceState == null){ + supportFragmentManager.beginTransaction() + .setReorderingAllowed(true) + .add(R.id.homeLayout,MainFragment()) + .commit() + } + + } + + override fun onResume() { + super.onResume() + } +} \ No newline at end of file diff --git a/Tetris/app/src/main/java/activity/Option.kt b/Tetris/app/src/main/java/activity/Option.kt index 485f166..9d74a23 100644 --- a/Tetris/app/src/main/java/activity/Option.kt +++ b/Tetris/app/src/main/java/activity/Option.kt @@ -18,7 +18,7 @@ class Option : AppCompatActivity() { super.onResume() val spinnerDifficulty:Spinner = findViewById(R.id.spinnerDifficulty) - val difficulty = arrayOf("Facile","Intermédiaire","Difficile") + val difficulty = arrayOf("Easy","Medium","Hard") val adaptateurSpinnerDifficulty = ArrayAdapter(this,android.R.layout.simple_spinner_dropdown_item,difficulty) spinnerDifficulty.adapter = adaptateurSpinnerDifficulty diff --git a/Tetris/app/src/main/java/but/androidstudio/tetris/MainFragment.kt b/Tetris/app/src/main/java/but/androidstudio/tetris/MainFragment.kt new file mode 100644 index 0000000..3660f53 --- /dev/null +++ b/Tetris/app/src/main/java/but/androidstudio/tetris/MainFragment.kt @@ -0,0 +1,21 @@ +package but.androidstudio.tetris + +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup + +class MainFragment : Fragment() { + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + } + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_main, container, false) + } +} \ No newline at end of file diff --git a/Tetris/app/src/main/java/but/androidstudio/tetris/OptionFragment.kt b/Tetris/app/src/main/java/but/androidstudio/tetris/OptionFragment.kt new file mode 100644 index 0000000..d4f6147 --- /dev/null +++ b/Tetris/app/src/main/java/but/androidstudio/tetris/OptionFragment.kt @@ -0,0 +1,59 @@ +package but.androidstudio.tetris + +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup + +// TODO: Rename parameter arguments, choose names that match +// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER +private const val ARG_PARAM1 = "param1" +private const val ARG_PARAM2 = "param2" + +/** + * A simple [Fragment] subclass. + * Use the [OptionFragment.newInstance] factory method to + * create an instance of this fragment. + */ +class OptionFragment : Fragment() { + // TODO: Rename and change types of parameters + private var param1: String? = null + private var param2: String? = null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + arguments?.let { + param1 = it.getString(ARG_PARAM1) + param2 = it.getString(ARG_PARAM2) + } + } + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_option, container, false) + } + + companion object { + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment OptionFragment. + */ + // TODO: Rename and change types and number of parameters + @JvmStatic + fun newInstance(param1: String, param2: String) = + OptionFragment().apply { + arguments = Bundle().apply { + putString(ARG_PARAM1, param1) + putString(ARG_PARAM2, param2) + } + } + } +} \ No newline at end of file diff --git a/Tetris/app/src/main/java/modele/DashBoard.kt b/Tetris/app/src/main/java/modele/DashBoard.kt index 247cb08..60ead99 100644 --- a/Tetris/app/src/main/java/modele/DashBoard.kt +++ b/Tetris/app/src/main/java/modele/DashBoard.kt @@ -7,6 +7,12 @@ class DashBoard(private val width: Int,private val height: Int) { fun getWidth(): Int = this.width fun getHeight(): Int = this.height + // To set something to occupied + + fun toOccupied(col: Int,row: Int){ + gridOfGame[row][col] = 1 + } + // To check if an position is occupied fun isOccupied(col: Int,row: Int): Boolean = gridOfGame[row][col] != 0 diff --git a/Tetris/app/src/main/java/modele/Difficulty.kt b/Tetris/app/src/main/java/modele/Difficulty.kt new file mode 100644 index 0000000..8b6b786 --- /dev/null +++ b/Tetris/app/src/main/java/modele/Difficulty.kt @@ -0,0 +1,7 @@ +package modele + +enum class Difficulty { + EASY, + MEDIUM, + HARD +} \ No newline at end of file diff --git a/Tetris/app/src/main/java/modele/Draw.kt b/Tetris/app/src/main/java/modele/Draw.kt new file mode 100644 index 0000000..d4cfe30 --- /dev/null +++ b/Tetris/app/src/main/java/modele/Draw.kt @@ -0,0 +1,10 @@ +package modele + +import android.annotation.SuppressLint +import android.content.Context +import android.graphics.Paint +import android.graphics.Path +import android.view.View + +class Draw { +} \ No newline at end of file diff --git a/Tetris/app/src/main/java/modele/EnumTypeShape.kt b/Tetris/app/src/main/java/modele/EnumTypeShape.kt new file mode 100644 index 0000000..5530eda --- /dev/null +++ b/Tetris/app/src/main/java/modele/EnumTypeShape.kt @@ -0,0 +1,5 @@ +package modele + +enum class EnumTypeShape { + IShape,SquareShape,TShape,LShape,JShape,ZShape,SShape +} \ No newline at end of file diff --git a/Tetris/app/src/main/java/modele/Game.kt b/Tetris/app/src/main/java/modele/Game.kt index 9aabde3..d7d0b9d 100644 --- a/Tetris/app/src/main/java/modele/Game.kt +++ b/Tetris/app/src/main/java/modele/Game.kt @@ -1,6 +1,25 @@ package modele class Game(private val width: Int,private val height: Int) { private val dashBoard: DashBoard = DashBoard(width,height) - private val currentShape: Shape? = null + private var currentShape: Shape? = null + private var difficulty: Difficulty = Difficulty.EASY + + // To get the current difficulty + fun getDifficulty(): Difficulty = this.difficulty + + // To get the current shape on the game + fun getCurrentShape(): Shape? = this.currentShape + + // To set the current shape + fun setCurrentShape(newCurrentShape: Shape){ + this.currentShape = newCurrentShape + } + + // The start game function + + fun startGame(){ + //this.setCurrentShape(TypeShape.SquareShape) + + } } \ No newline at end of file diff --git a/Tetris/app/src/main/java/modele/Shape.kt b/Tetris/app/src/main/java/modele/Shape.kt index cff686a..1624f03 100644 --- a/Tetris/app/src/main/java/modele/Shape.kt +++ b/Tetris/app/src/main/java/modele/Shape.kt @@ -1,23 +1,41 @@ package modele -class Shape(private var x: Int,private var y: Int) { +import java.lang.reflect.Type + +class Shape(private val typeShape: TypeShape,private var position: Position) { + + private var shapePosition : Array = emptyArray() + +/* init { + val + }*/ + fun moveRight(){ - this.x += 1 + this.position.setX(this.position.getX()+1) + //update } fun moveLeft(){ - this.x -=1 + this.position.setX(this.position.getX()-1) + //update } fun moveDown(){ - this.y -= 1 + this.position.setY(this.position.getY()-1) + //update } - /*fun rotateLeft(){ - - }*/ - - /*fun rotateRight(){ + fun rotateLeft(){ + val tmp = this.position.getX() + this.position.setX(this.position.getY() * -1) + this.position.setY(tmp) + //update + } - }*/ + fun rotateRight(){ + val tmp = this.position.getX() + this.position.setX(this.position.getY()) + this.position.setY(tmp * -1) + //update + } } \ No newline at end of file diff --git a/Tetris/app/src/main/java/modele/TypeShape.kt b/Tetris/app/src/main/java/modele/TypeShape.kt index 8802b20..819393b 100644 --- a/Tetris/app/src/main/java/modele/TypeShape.kt +++ b/Tetris/app/src/main/java/modele/TypeShape.kt @@ -1,14 +1,48 @@ package modele -enum class TypeShape(private var shape: Array) { - ZStair(arrayOf(Position(-1, 1), Position(0, 1), Position(0, 0), Position(1, 1))), - SStair(arrayOf(Position(-1,0),Position(0,0),Position(0,1),Position(1,1))), - LRight(arrayOf(Position(-1,0),Position(0,0),Position(0,1),Position(0,2))), - LLeft(arrayOf(Position(0,2),Position(0,1),Position(0,0),Position(1,0))), - TShape(arrayOf(Position(-1,0),Position(0,0),Position(0,-1),Position(1,0))), - IShape(arrayOf(Position(0,0),Position(0,1),Position(0,2),Position(0,3))), - SquareShape(arrayOf(Position(0,0),Position(0,-1),Position(1,-1),Position(1,0))); - - // The getter of the array of position of the enum shape - fun getShape(): Array = this.shape.copyOf() +import java.lang.reflect.Type +import kotlin.random.Random + +class TypeShape(private val type: EnumTypeShape,private val showShape: Array>>){ + + private var currentIndex = 0 + + fun getPoints(): Array{ + val positions = ArrayList() + val typeShape = getCurrentType() + for (i in typeShape.indices){ + for (j in typeShape[i].indices){ + if (typeShape[i][j] != 0) { + positions.add(Position(j, i)) + } + } + } + return positions.toTypedArray() + } + + //to augmente of 1 the current index + fun getNextType(): TypeShape { + currentIndex++ + return this + } + + //To get the next shape + fun getNextShape(){ + val random: Int = Random.nextInt(1,7) + when(random){ + 1 -> TypeShape(EnumTypeShape.IShape, arrayOf(arrayOf(arrayOf()))) + 2 -> TypeShape(EnumTypeShape.SquareShape, arrayOf(arrayOf(arrayOf()))) + 3 -> TypeShape(EnumTypeShape.JShape, arrayOf(arrayOf(arrayOf()))) + 4 -> TypeShape(EnumTypeShape.LShape, arrayOf(arrayOf(arrayOf()))) + 5 -> TypeShape(EnumTypeShape.SShape, arrayOf(arrayOf(arrayOf()))) + 6 -> TypeShape(EnumTypeShape.TShape, arrayOf(arrayOf(arrayOf()))) + 7 -> TypeShape(EnumTypeShape.ZShape, arrayOf(arrayOf(arrayOf()))) + else -> throw Exception("Problème de random getNextShape()") + } + } + + // To get the table of position of the current shape type + private fun getCurrentType(): Array> { + return showShape[currentIndex] + } } \ No newline at end of file diff --git a/Tetris/app/src/main/res/layout/activity_option.xml b/Tetris/app/src/main/res/layout/activity_option.xml index e40e7ac..f9433dd 100644 --- a/Tetris/app/src/main/res/layout/activity_option.xml +++ b/Tetris/app/src/main/res/layout/activity_option.xml @@ -1,13 +1,12 @@ - - - - + tools:context=".MainFragment"> - \ No newline at end of file + + \ No newline at end of file diff --git a/Tetris/app/src/main/res/layout/fragment_option.xml b/Tetris/app/src/main/res/layout/fragment_option.xml new file mode 100644 index 0000000..a164ace --- /dev/null +++ b/Tetris/app/src/main/res/layout/fragment_option.xml @@ -0,0 +1,41 @@ + + + + + +