instance->clear();
parent::tearDown();
}
public function testNotExistsEmpty(): void {
$this->assertFalse($this->instance->exists('foo'));
}
public function testExistsAfterSet(): void {
$this->instance->set('foo', 1);
$this->assertTrue($this->instance->exists('foo'));
}
public function testNotExistsAfterRemove(): void {
$this->instance->set('foo', 1);
$this->instance->remove('foo');
$this->assertFalse($this->instance->exists('foo'));
}
public function testGetNonExisting(): void {
$this->assertNull($this->instance->get('foo'));
}
public function testGetAfterSet(): void {
$this->instance->set('foo', 'bar');
$this->assertEquals('bar', $this->instance->get(('foo')));
}
public function testRemoveNonExisting(): void {
$this->assertFalse($this->instance->exists('foo'));
$this->instance->remove('foo');
$this->assertFalse($this->instance->exists('foo'));
}
public function testNotExistsAfterClear(): void {
$this->instance->set('foo', 1);
$this->instance->clear();
$this->assertFalse($this->instance->exists('foo'));
}
public function testArrayInterface(): void {
$this->assertFalse(isset($this->instance['foo']));
$this->instance['foo'] = 'bar';
$this->assertTrue(isset($this->instance['foo']));
$this->assertEquals('bar', $this->instance['foo']);
unset($this->instance['foo']);
$this->assertFalse(isset($this->instance['foo']));
}
}
ntax' selected='selected'>JS-RPC-docs-link-syntax
OlliTietavainenVaadin-patch-1
OlliTietavainenVaadin-patch-2
add-deprecation-warning-20241105
changelog-7.7.47-changes
changelog-8.27.1
changelog-8.27.2
changelog-8.27.3
changelog-8.27.4
changelog-8.27.6
changelog-8.28.1
chore-mention-8.14.4
chore-readme-8-14-4
context-menu
datefield-set-invalid-value
declarative
dependabot/maven/org.eclipse.jetty-jetty-server-10.0.14
dependabot/maven/org.eclipse.jetty-jetty-webapp-9.4.44.v20210927
dependabot/maven/org.eclipse.jgit-org.eclipse.jgit-3.5.3.201412180710-r
dependabot/maven/org.eclipse.jgit-org.eclipse.jgit-7.2.1.202505142326-r
dependabot/maven/org.hsqldb-hsqldb-2.7.1
documentation
documentation-7.6
downgrade-snapshot-version-20241105
exclude-element-screenshot
feature/atmosphere-pure-javascript
feature/bootstrap-annotation
feature/combobox-communication
feature/dalvik
feature/databinding
feature/dnd
feature/elements
feature/eventbus
feature/karaf-feature-file
feature/nullrepresentation
feature/standard-gwt
feature/standard-sass
feature/vaadin8
feature/vaadin8-book
feature/vaadin8-book-vol2
feature/vaadin8-sass-valo-only
fileToFilesReplacement
fix11576
fix_event_router_prototype
grid
grid_dnd_autoscroller
grid_dragger
issue/8307_select_using_collection
master
mobile_drag_image_offset
pr/11306
remote-run/flow-atmosphere-test
snapshot/7.5
snapshot/7.6
tmattsso-patch-1
update-minor-deps
vaadin-icons-3.0.1
wip-date-time-datatype
wip-java-10-compat
blob: a84ad92f6ee7a78514004a298056c9e8ea8e6c53 (
plain )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
---
title: Component Extensions
order: 6
layout: page
---
[[components.extensions]]
= Component Extensions
Components and UIs can have extensions which are attached to the component
dynamically. Especially, many add-ons are extensions.
How a component is extended depends on the extension. Typically, they have an
[methodname]#extend()# method that takes the component to be extended as the
parameter.
[source, java]
----
TextField tf = new TextField("Hello");
layout.addComponent(tf);
// Add a simple extension
new CapsLockWarning().extend(tf);
// Add an extension that requires some parameters
CSValidator validator = new CSValidator();
validator.setRegExp("[0-9]*");
validator.setErrorMessage("Must be a number");
validator.extend(tf);
----
Development of custom extensions is described in
<<dummy/../../../framework/gwt/gwt-extension#gwt.extension,"Component and UI
Extensions">>.