Keymap data layer (#95)
This commit is contained in:
committed by
József Farkas
parent
fb8cd163ec
commit
b78bc5850f
@@ -145,8 +145,7 @@ export class SvgKeyboardKeyComponent implements OnInit, OnChanges {
|
||||
} else if (this.keyAction instanceof SwitchKeymapAction) {
|
||||
let keyAction: SwitchKeymapAction = this.keyAction as SwitchKeymapAction;
|
||||
this.labelType = LabelTypes.SwitchKeymap;
|
||||
let uhkConfiguration: UhkConfiguration = this.uhkConfigurationService.getUhkConfiguration();
|
||||
this.labelSource = uhkConfiguration.getKeymap(keyAction.keymapId).abbreviation;
|
||||
this.labelSource = keyAction.keymapAbbreviation;
|
||||
} else if (this.keyAction instanceof PlayMacroAction) {
|
||||
let keyAction: PlayMacroAction = this.keyAction as PlayMacroAction;
|
||||
this.labelType = LabelTypes.IconText;
|
||||
|
||||
@@ -1,11 +1,17 @@
|
||||
import {
|
||||
Component, Input, OnChanges, OnInit, animate,
|
||||
Component, Input, OnChanges, SimpleChanges, animate,
|
||||
state, style, transition, trigger
|
||||
} from '@angular/core';
|
||||
|
||||
import { Store } from '@ngrx/store';
|
||||
|
||||
import { KeyAction, NoneAction } from '../../../config-serializer/config-items/key-action';
|
||||
import { Keymap } from '../../../config-serializer/config-items/Keymap';
|
||||
import { Layer } from '../../../config-serializer/config-items/Layer';
|
||||
|
||||
import { AppState } from '../../../store';
|
||||
import { KeymapActions } from '../../../store/actions';
|
||||
|
||||
@Component({
|
||||
selector: 'svg-keyboard-wrap',
|
||||
template: require('./svg-keyboard-wrap.component.html'),
|
||||
@@ -74,8 +80,8 @@ import { Layer } from '../../../config-serializer/config-items/Layer';
|
||||
])
|
||||
]
|
||||
})
|
||||
export class SvgKeyboardWrapComponent implements OnInit, OnChanges {
|
||||
@Input() layers: Layer[];
|
||||
export class SvgKeyboardWrapComponent implements OnChanges {
|
||||
@Input() keymap: Keymap;
|
||||
@Input() popoverEnabled: boolean = true;
|
||||
@Input() tooltipEnabled: boolean = false;
|
||||
|
||||
@@ -84,8 +90,11 @@ export class SvgKeyboardWrapComponent implements OnInit, OnChanges {
|
||||
private popoverInitKeyAction: KeyAction;
|
||||
private currentLayer: number = 0;
|
||||
private tooltipData: { posTop: number, posLeft: number, content: {name: string, value: string}[], shown: boolean };
|
||||
private layers: Layer[];
|
||||
|
||||
constructor() {
|
||||
constructor(
|
||||
private store: Store<AppState>
|
||||
) {
|
||||
this.keyEditConfig = {
|
||||
keyActions: undefined,
|
||||
keyId: undefined
|
||||
@@ -99,15 +108,15 @@ export class SvgKeyboardWrapComponent implements OnInit, OnChanges {
|
||||
};
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
this.layers[0].animation = 'leftIn';
|
||||
}
|
||||
ngOnChanges(changes: SimpleChanges) {
|
||||
if (changes['keymap'].previousValue.abbreviation !== changes['keymap'].currentValue.abbreviation) {
|
||||
this.layers = this.keymap.layers.elements;
|
||||
this.currentLayer = 0;
|
||||
|
||||
ngOnChanges() {
|
||||
this.currentLayer = 0;
|
||||
if (this.layers.length > 0) {
|
||||
this.layers.forEach(element => element.animation = 'none');
|
||||
this.layers[0].animation = 'leftIn';
|
||||
if (this.layers.length > 0) {
|
||||
this.layers.forEach(element => element.animation = 'none');
|
||||
this.layers[0].animation = 'leftIn';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,6 +146,7 @@ export class SvgKeyboardWrapComponent implements OnInit, OnChanges {
|
||||
|
||||
onRemap(keyAction: KeyAction): void {
|
||||
this.changeKeyAction(keyAction);
|
||||
this.store.dispatch(KeymapActions.saveKey(this.keymap));
|
||||
this.hidePopover();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user