Skip to content

Commit 633c8ad

Browse files
authored
Fix problem when creating new instance on overlay (#188)
* Fix problem when creating new instance on overlay * Update entity-instance-table.component.ts
1 parent 09b0404 commit 633c8ad

File tree

5 files changed

+39
-8
lines changed

5 files changed

+39
-8
lines changed

core/libs/editor/src/lib/editor-dialog/components/entity-instance/entity-instance-table/entity-instance-table.component.ts

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import {InputFieldComponent} from '../../fields';
3737
import {map, Observable, of, startWith, Subscription} from 'rxjs';
3838
import * as locale from 'locale-codes';
3939
import {MatAutocompleteTrigger} from '@angular/material/autocomplete';
40+
import {isDataTypeLangString} from '@ame/shared';
4041

4142
@Component({
4243
selector: 'ame-entity-instance-table',
@@ -164,14 +165,28 @@ export class EntityInstanceTableComponent extends InputFieldComponent<DefaultEnt
164165
return propertiesFormArray;
165166
}
166167

167-
private createValueControl(propertyValue: string | number | boolean | DefaultEntityInstance, validators): FormControl {
168+
private createValueControl(
169+
propertyValue: string | number | boolean | DefaultEntityInstance,
170+
validators: ValidationErrors | null,
171+
): FormControl {
168172
const isEntityValue = propertyValue instanceof DefaultEntityInstance;
169173
return new FormControl({value: propertyValue, disabled: isEntityValue}, validators);
170174
}
171175

172-
private addLanguageControl(group: UntypedFormGroup, propertyLanguage: string, validators, property): void {
173-
if (propertyLanguage) {
174-
const languageControl = new FormControl({value: propertyLanguage, disabled: true}, validators);
176+
private addLanguageControl(
177+
group: UntypedFormGroup,
178+
propertyLanguage: string,
179+
validators: ValidationErrors | null,
180+
property: DefaultProperty,
181+
): void {
182+
if ((propertyLanguage || propertyLanguage === '') && isDataTypeLangString(property)) {
183+
const languageControl = new FormControl(
184+
{
185+
value: propertyLanguage,
186+
disabled: propertyLanguage !== '',
187+
},
188+
validators,
189+
);
175190
this.subscribeToLangValueChanges(languageControl, property);
176191
group.addControl('language', languageControl);
177192
}

core/libs/editor/src/lib/editor-dialog/editor-dialog.module.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,14 @@ import {SharedSettingsTitleComponent} from './components/shape-settings/shared-s
9898
import {LanguageTranslateModule} from '@ame/translation';
9999
import {ElementIconComponent} from '../../../../shared/src/lib/components/element/element.component';
100100
import {MatDividerModule} from '@angular/material/divider';
101-
import { EntityInstanceComponent, EntityInstanceModalComponent, EntityInstanceModalTableComponent, EntityInstanceSearchBarComponent, EntityInstanceTableComponent, EntityInstanceViewComponent } from './components/entity-instance';
101+
import {
102+
EntityInstanceComponent,
103+
EntityInstanceModalComponent,
104+
EntityInstanceModalTableComponent,
105+
EntityInstanceSearchBarComponent,
106+
EntityInstanceTableComponent,
107+
EntityInstanceViewComponent,
108+
} from './components/entity-instance';
102109

103110
@NgModule({
104111
providers: [EditorModelService],

core/libs/meta-model/src/lib/aspect-meta-model/default-entity-value.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export class DefaultEntityInstance extends Base implements EntityValue {
5454
this.properties = properties?.map(key => ({key, value: ''})) || [];
5555
}
5656

57-
public addProperty(overWrittenProperty: OverWrittenProperty<any>, value: string | DefaultEntityInstance = '', language?: string) {
57+
public addProperty(overWrittenProperty: OverWrittenProperty<any>, value: string | DefaultEntityInstance = '', language = '') {
5858
this.properties.push({key: overWrittenProperty, value, language});
5959
}
6060

core/libs/meta-model/src/lib/element-service/entity-model.service.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,14 @@ import {
2323
MxGraphShapeOverlayService,
2424
MxGraphVisitorHelper,
2525
} from '@ame/mx-graph';
26-
import {Base, BaseMetaModelElement, DefaultEntity, DefaultEntityInstance, DefaultEnumeration, OverWrittenPropertyKeys} from '@ame/meta-model';
26+
import {
27+
Base,
28+
BaseMetaModelElement,
29+
DefaultEntity,
30+
DefaultEntityInstance,
31+
DefaultEnumeration,
32+
OverWrittenPropertyKeys,
33+
} from '@ame/meta-model';
2734
import {SammLanguageSettingsService} from '@ame/settings-dialog';
2835
import {BaseEntityModelService} from './base-entity-model.service';
2936

core/libs/mx-graph/src/lib/services/mx-graph.service.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -551,7 +551,9 @@ export class MxGraphService {
551551
public updateEntityValuesWithCellReference(deletedEntityValueCells: Array<mxgraph.mxCell>): void {
552552
deletedEntityValueCells
553553
.filter(entityValueCell => entityValueCell.isVertex())
554-
.forEach(entityValueCell => this.updateEntityValuesWithReference(MxGraphHelper.getModelElement<DefaultEntityInstance>(entityValueCell)));
554+
.forEach(entityValueCell =>
555+
this.updateEntityValuesWithReference(MxGraphHelper.getModelElement<DefaultEntityInstance>(entityValueCell)),
556+
);
555557
}
556558

557559
private applyDelta(cell: mxgraph.mxCell, deltaX: number, deltaY: number, formattedCells: mxgraph.mxCell[]) {

0 commit comments

Comments
 (0)