@eclipse-scout/core
Version:
Eclipse Scout runtime
57 lines (44 loc) • 1.69 kB
text/typescript
/*
* Copyright (c) 2010, 2025 BSI Business Systems Integration AG
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*/
import {Event, EventHandler, Form, FormTableControl, FormTableControlEventMap, icons} from '../../index';
export class SearchFormTableControl extends FormTableControl {
declare eventMap: SearchFormTableControlEventMap;
declare self: SearchFormTableControl;
protected _formSearchHandler: EventHandler<Event<Form>> = this._onFormSearch.bind(this);
protected _formResetHandler: EventHandler<Event<Form>> = this._onFormReset.bind(this);
constructor() {
super();
this.iconId = icons.SEARCH;
this.tooltipText = '${textKey:Search}';
this.enabled = false;
this.keyStroke = 'ctrl-shift-f';
}
protected _onFormSearch(event: Event<Form>) {
this.trigger('search');
}
protected _onFormReset(event: Event<Form>) {
this.trigger('reset');
}
protected override _setForm(form: Form) {
// disable search/reset listeners on old form
this.form?.off('search', this._formSearchHandler);
this.form?.off('reset', this._formResetHandler);
// enable search/reset listeners on new form
form?.on('search', this._formSearchHandler);
form?.on('reset', this._formResetHandler);
super._setForm(form);
// set enabled iff form is set
this.setEnabled(!!form);
}
}
export interface SearchFormTableControlEventMap extends FormTableControlEventMap {
'search': Event<SearchFormTableControl>;
'reset': Event<SearchFormTableControl>;
}