package com.baselet.gwt.client.view.widgets.propertiespanel; import com.baselet.element.interfaces.HasPanelAttributes; import com.baselet.gwt.client.view.interfaces.Redrawable; import com.baselet.gwt.client.view.widgets.OwnTextArea; import com.baselet.gwt.client.view.widgets.OwnTextArea.InstantValueChangeHandler; import com.google.gwt.uibinder.client.UiConstructor; public class PropertiesTextArea extends MySuggestBox { private static final String DEFAULT_HELPTEXT = "Space for diagram notes"; private final OwnTextArea textArea; private final MySuggestOracle oracle; private HasPanelAttributes gridElement; private Redrawable activePanel = null; @UiConstructor public PropertiesTextArea() { this(new MySuggestOracle(), new OwnTextArea()); textArea.setInstantValueChangeHandler(new InstantValueChangeHandler() { @Override public void onValueChange(String value) { if (gridElement != null) { gridElement.setPanelAttributes(getValue()); } activePanel.redraw(); } }); } public PropertiesTextArea(final MySuggestOracle oracle, OwnTextArea textArea) { super(oracle, textArea); this.oracle = oracle; this.textArea = textArea; } public void setGridElement(HasPanelAttributes panelAttributeProvider, Redrawable panel) { activePanel = panel; gridElement = panelAttributeProvider; String panelAttributes = panelAttributeProvider.getPanelAttributes(); if (panelAttributes == null) { panelAttributes = DEFAULT_HELPTEXT; } textArea.setValue(panelAttributes); oracle.setAutocompletionList(panelAttributeProvider.getAutocompletionList()); } /** * also fire texthandlers if a text is inserted via choosing a selectionbox entry */ @Override public void setText(String text) { super.setText(text); textArea.fireHandler(); } }