- [1. Integration des Shapes Eckrad in die Library des RD Configurators](#1-integration-des-shapes-eckrad-in-die-library-des-rd-configurators)
  - [1.1 Declarations](#11-declarations)
  - [1.2 Definition des Modern User Interface (MUI)](#12-definition-des-modern-user-interface-mui)
  - [1.3 Initialisierung des Modern User Interfaces (MUI)](#13-initialisierung-des-modern-user-interfaces-mui)
- [2. Graphical 2d Editor Wizard](#2-graphical-2d-editor-wizard)
  - [Tab Icons](#tab-icons)
  - [Tab Rotation Class](#tab-rotation-class)
  - [Tab Connection Points](#tab-connection-points)
  - [Tab Events](#tab-events)

# 1. Integration des Shapes Eckrad in die Library des RD Configurators
Das folgende Dokument ist als Checkliste für die Integration eines neuen Shapes zu sehen. Hier wurde dies beispielhaft für ein Eckrad durchgeführt.
Jedes Kapitel bezieht sich auf die Gruppe im Code-Baum, welche um Bausteine ergänzt werden muss

## 1.1 Declarations

### 1.1.1 Main_SSG->Declarations->Types->SSG_Group

Typendeklaration des Eckrads. Welche Daten welcher Art soll es aufnehmen?
![](bilder/session4/Main_SSG-Declarations-Types-SSG_Group-EckradType.png)
Aufnahme der Definition in die Libary
![](bilder/session4/Main_SSG-Declarations-Types-SSG_Group-SSG_ShapeType.png)

Dabei ist unbedingt darauf zu achten, dass die Typendeklation vor der SSG_Shape Type im Baum existieren muss. Ansonsten ist der Typ in der Definition unser SSG Library nicht anwählbar.

### 1.1.2 Main_SSG->Declarations->GlobalVariables->MUI

EckradData_defaults: 
setzt die Default Data
![](bilder/session4/Main_SSG-Declarations-GlobalVariables-MUI-EckradData.png)

Render_Eckrad: 
- Wird in ``Declarations->Functions->MUI->Func EckradUI`` vom ModernUI Render verwendet. siehe [Kapitel](#12-definition-des-modern-user-interface-mui)
oder [Bild](bilder/session4/Main_SSG-Declarations-Functions-MUI-Function_EckradUI-RunModernUI_Render.png)
- Danach noch einmal in der Main Group zum Aufbau in deren INIT ``Main Group->INIT->MUI->EckradUI`` auch vom Renderer. siehe [Kapitel](#13-initialisierung-des-modern-user-interfaces-mui) oder [Bild](bilder/session4/Main_Group-INIT-MUI-EckradUI-KreiselUIPanels-ModernUIPanel.png)

Ein Verweis erfolgt dann noch einmal im jedem ControlElement dieser Gui
![](bilder/session4/Main_SSG-Declarations-GlobalVariables-MUI-Render_Eckrad.png)

### 1.1.3 Main_SSG->Declarations->Functions->SSG->Kreisel_PROTOTYPE_GROUP->Create Proto

CreatePrototype_Eckrad:
Wird deklariert unter ``Declarations->Functions->SSG->Kreisel Prototype Group->Function CreatePrototype_Eckrad``

![](bilder/session4/Main_SSG-Declarations-Functions-SSG-Kreisel_PROTOTYPE_GROUP-Function_CreatePrototype_Eckrad.png)
![](bilder/session4/Main_SSG-Declarations-Functions-SSG-Kreisel_PROTOTYPE_GROUP-Function_CreatePrototype_Eckrad-LocalVariables.png)
![](bilder/session4/Main_SSG-Declarations-Functions-SSG-Kreisel_PROTOTYPE_GROUP-Function_CreatePrototype_Eckrad-AngleDefinition.png)
![](bilder/session4/Main_SSG-Declarations-Functions-SSG-Kreisel_PROTOTYPE_GROUP-Function_CreatePrototype_Eckrad-SetProperty_Proto.png)
![](bilder/session4/Main_SSG-Declarations-Functions-SSG-Kreisel_PROTOTYPE_GROUP-Function_CreatePrototype-Eckrad-SetStruct.png)

wird aufgerufen und verwendet von 
- ``Declarations->Functions->MUI->Func EckradUI``, siehe [Bild](bilder/session4/Main_SSG-Declarations-Functions-MUI-Function_EckradUI-SwitchForButton_OK_CallCreatePrototype_Eckrad.png) und
- ``Declarations->Functions->Function OnEditor2DInserted->Switch for Shape_Prototype.family->CASE Eckrad`` siehe [Bild](bilder/session4/Main_SSG-Declarations-Functions-FunctionOnEditor2DInserted-SwitchForShapeFamily-Eckrad-SetShapeProto_KreiselDefinition.png)


### 1.1.4 Main_SSG->Declarations->Functions->SSG->Kreisel_PROTOTYPE_GROUP->Update Shape

Function 'Create/Update Shape'

![](bilder/session4/Main_SSG-Declarations-Functions-SSG-Kreisel_PROTOTYPE_GROUP-Function_CreateUpdateShape-Eckrad-EckradInLibAnlegen.png)
![](bilder/session4/Main_SSG-Declarations-Functions-SSG-Kreisel_PROTOTYPE_GROUP-Function_CreateUpdateShape_Switch_EckradInLibAnlegen-E2DE3D_ManageShape.png)
![](bilder/session4/Main_SSG-Declarations-Functions-SSG-Kreisel_PROTOTYPE_GROUP-Function_CreateUpdateShape_Switch_EckradPlatzieren-E2DE3D_ManageShape.png)

## 1.2 Definition des Modern User Interface (MUI)
### 1.2.1 Main_SSG->Declarations->Functions->MUI

![](bilder/session4/Main_SSG-Declarations-Functions-MUI-Function_EckradUI.png)
![](bilder/session4/Main_SSG-Declarations-Functions-MUI-Function_EckradUI-RunModernUI_Render.png)
![](bilder/session4/Main_SSG-Declarations-Functions-MUI-Function_EckradUI-SwitchForButton.png)
![](bilder/session4/Main_SSG-Declarations-Functions-MUI-Function_EckradUI-SwitchForButton_OK_CallCreatePrototype_Eckrad.png)
![](bilder/session4/Main_SSG-Declarations-Functions-MUI-Function_EckradUI-SwitchForButton_OK_CallCreateUpdate_Shape.png)
![](bilder/session4/Main_SSG-Declarations-Functions-MUI-Function_EckradUI-SwitchForButton_OK_TerminateLoop.png)
![](bilder/session4/Main_SSG-Declarations-Functions-MUI-Function_EckradUI-SwitchForButton_CLOSEPOPUP_Remove_ShapeList.png)
![](bilder/session4/Main_SSG-Declarations-Functions-MUI-Function_EckradUI-SwitchForButton_CLOSEPOPUP_GroupOnInsertedIsTrue.png)
![](bilder/session4/Main_SSG-Declarations-Functions-MUI-Function_EckradUI-SwitchForButton_CLOSEPOPUP_TerminateLoop.png)

### 1.2.2 Main_SSG->Declarations->FunctionOnEditor2DInserted->SwitchForShapeFamily

![](bilder/session4/Main_SSG-Declarations-Functions-FunctionOnEditor2DInserted-SwitchForShapeFamily.png)
![](bilder/session4/Main_SSG-Declarations-Functions-FunctionOnEditor2DInserted-SwitchForShapeFamily-Eckrad-SetShapeProto_KreiselDefinition.png)
![](bilder/session4/Main_SSG-Declarations-Functions-FunctionOnEditor2DInserted-SwitchForShapeFamily-Eckrad-SetShapeProto_Rotationsklasse.png)
![](bilder/session4/Main_SSG-Declarations-Functions-FunctionOnEditor2DInserted-SwitchForShapeFamily-Eckrad-SetShapeProto_Strecke.png)
![](bilder/session4/Main_SSG-Declarations-Functions-FunctionOnEditor2DInserted-SwitchForShapeFamily-Eckrad-SetShapeProto_name.png)
![](bilder/session4/Main_SSG-Declarations-Functions-FunctionOnEditor2DInserted-SwitchForShapeFamily-Eckrad-UI-WebBrowserAction_Show.png)
![](bilder/session4/Main_SSG-Declarations-Functions-FunctionOnEditor2DInserted-SwitchForShapeFamily-Eckrad-UI-While-CallEckradUI.png)
![](bilder/session4/Main_SSG-Declarations-Functions-FunctionOnEditor2DInserted-SwitchForShapeFamily-Eckrad-UI-WebBrowserAction_Hide.png)

## 1.3 Initialisierung des Modern User Interfaces (MUI)

### Main_Group->INIT->MUI->EckradUI->KreiselUIPanels

![](bilder/session4/Main_Group-INIT-MUI-EckradUI-KreiselUIPanels.png)
![](bilder/session4/Main_Group-INIT-MUI-EckradUI-KreiselUIPanels-ModernUIPanel.png)
![](bilder/session4/Main_Group-INIT-MUI-EckradUI-KreiselUIPanels-Controls-ModernUIControl_textboxBeschreibung.png)
![](bilder/session4/Main_Group-INIT-MUI-EckradUI-KreiselUIPanels-Controls-ModernUIControl_textboxHoehe.png)
![](bilder/session4/Main_Group-INIT-MUI-EckradUI-KreiselUIPanels-Controls-ModernUIControl_dropdownDrehung.png)
![](bilder/session4/Main_Group-INIT-MUI-EckradUI-KreiselUIPanels-Controls-ModernUIButtons-ModernUIPanel-KreiselType.png)
![](bilder/session4/Main_Group-INIT-MUI-EckradUI-KreiselUIPanels-Controls-ModernUIButtons-ModernUIControl-ButtonOK.png)
![](bilder/session4/Main_Group-INIT-MUI-EckradUI-KreiselUIPanels-Controls-ModernUIButtons-ModernUIControl-ButtonAbbrechen.png)

# 2. Graphical 2d Editor Wizard

Hier ist mit den Screenshots beschrieben, was man im 2d Editor Wizard deklarieren muss, um das neue Eckrad zu integrieren.

## Tab Icons

![](bilder/session4/WebGraphicalEditorWizard-Eckrad-Icons.png           )

## Tab Rotation Class

![](bilder/session4/WebGraphicalEditorWizard-Eckrad-RotationClass.png   )

## Tab Connection Points

![](bilder/session4/WebGraphicalEditorWizard-Eckrad-ConnectionPoints.png)

## Tab Events

![](bilder/session4/WebGraphicalEditorWizard-Eckrad-Events.png          )
