import com.itmill.toolkit.demo.sampler.features.text.LabelRich;
import com.itmill.toolkit.demo.sampler.features.text.RichTextEditor;
import com.itmill.toolkit.demo.sampler.features.text.TextArea;
+import com.itmill.toolkit.demo.sampler.features.text.TextFieldSecret;
import com.itmill.toolkit.demo.sampler.features.text.TextFieldSingle;
import com.itmill.toolkit.demo.sampler.features.trees.TreeActions;
import com.itmill.toolkit.demo.sampler.features.trees.TreeMouseEvents;
new Feature[] {
//
new TextFieldSingle(), //
+ new TextFieldSecret(), //
new TextArea(), //
new RichTextEditor(), //
});
ActiveLink al = new ActiveLink(f.getName(),
new ExternalResource(getApplication().getURL()
+ "#" + path));
- al.setIcon(new ThemeResource("icons/sample.png"));
+ al.setIcon(new ThemeResource(
+ (f instanceof FeatureSet ? "icons/category.gif"
+ : "icons/sample.png")));
al.addListener(new LinkActivatedListener() {
public void linkActivated(LinkActivatedEvent event) {
if (event.isLinkOpened()) {
--- /dev/null
+package com.itmill.toolkit.demo.sampler.features.text;\r
+\r
+import com.itmill.toolkit.demo.sampler.APIResource;\r
+import com.itmill.toolkit.demo.sampler.Feature;\r
+import com.itmill.toolkit.demo.sampler.FeatureSet;\r
+import com.itmill.toolkit.demo.sampler.NamedExternalResource;\r
+import com.itmill.toolkit.demo.sampler.features.selects.ComboBoxNewItems;\r
+import com.itmill.toolkit.ui.TextField;\r
+\r
+public class TextFieldSecret extends Feature {\r
+ @Override\r
+ public String getName() {\r
+ return "Text field, secret (password)";\r
+ }\r
+\r
+ @Override\r
+ public String getDescription() {\r
+ return "For sensitive data input, such as passwords, the text field can"\r
+ + " also be set into secret mode where the input will not be"\r
+ + " echoed to display.";\r
+ }\r
+\r
+ @Override\r
+ public APIResource[] getRelatedAPI() {\r
+ return new APIResource[] { new APIResource(TextField.class) };\r
+ }\r
+\r
+ @Override\r
+ public Class[] getRelatedFeatures() {\r
+ // TODO update CB -ref to 'suggest' pattern, when available\r
+ return new Class[] { TextFieldSingle.class, ComboBoxNewItems.class,\r
+ FeatureSet.Texts.class };\r
+ }\r
+\r
+ @Override\r
+ public NamedExternalResource[] getRelatedResources() {\r
+ // TODO Auto-generated method stub\r
+ return null;\r
+ }\r
+\r
+}\r
--- /dev/null
+package com.itmill.toolkit.demo.sampler.features.text;\r
+\r
+import com.itmill.toolkit.ui.Button;\r
+import com.itmill.toolkit.ui.TextField;\r
+import com.itmill.toolkit.ui.VerticalLayout;\r
+import com.itmill.toolkit.ui.Button.ClickEvent;\r
+\r
+public class TextFieldSecretExample extends VerticalLayout {\r
+\r
+ private final TextField username;\r
+ private final TextField password;\r
+\r
+ public TextFieldSecretExample() {\r
+ setSizeUndefined(); // let content 'push' size\r
+ setSpacing(true);\r
+\r
+ // Username\r
+ username = new TextField("Username");\r
+ addComponent(username);\r
+\r
+ // Password\r
+ password = new TextField("Password");\r
+ password.setSecret(true);\r
+ addComponent(password);\r
+\r
+ // Login button\r
+ Button loginButton = new Button("Login", new Button.ClickListener() {\r
+ // inline click listener\r
+ public void buttonClick(ClickEvent event) {\r
+ getWindow().showNotification(\r
+ "User: " + username.getValue() + " Password: "\r
+ + password.getValue());\r
+\r
+ }\r
+ });\r
+ addComponent(loginButton);\r
+ setComponentAlignment(loginButton, "right");\r
+\r
+ }\r
+}\r
import com.itmill.toolkit.demo.sampler.Feature;\r
import com.itmill.toolkit.demo.sampler.FeatureSet;\r
import com.itmill.toolkit.demo.sampler.NamedExternalResource;\r
+import com.itmill.toolkit.demo.sampler.features.selects.ComboBoxNewItems;\r
import com.itmill.toolkit.ui.TextField;\r
\r
public class TextFieldSingle extends Feature {\r
@Override\r
public String getName() {\r
- return "Textfield";\r
+ return "Text field";\r
}\r
\r
@Override\r
public String getDescription() {\r
- return "For sensitive data input, the textfield can"\r
- + " also be set into secret mode where the input will not be"\r
- + " echoed to display.";\r
+ return "A single-line TextField is a fundamental UI building blocks"\r
+ + " with numerous uses.<br/>"\r
+ + "If the input would benefit from remembering previous values,"\r
+ + " you might want to consider using a ComboBox it it's "\r
+ + " 'suggesting mode' instead.";\r
}\r
\r
@Override\r
\r
@Override\r
public Class[] getRelatedFeatures() {\r
- return new Class[] { FeatureSet.Texts.class };\r
+ // TODO update CB -ref to 'suggest' pattern, when available\r
+ return new Class[] { TextFieldSecret.class, ComboBoxNewItems.class,\r
+ FeatureSet.Texts.class };\r
}\r
\r
@Override\r
editor.addListener(this);\r
editor.setImmediate(true);\r
// editor.setColumns(5); // guarantees that at least 5 chars fit\r
- // editor.setSecret(true); // e.g. for passwords\r
\r
addComponent(editor);\r
}\r