diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/uimodel/UiTextAttributeNode.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/uimodel/UiTextAttributeNode.java | 196 |
1 files changed, 0 insertions, 196 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/uimodel/UiTextAttributeNode.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/uimodel/UiTextAttributeNode.java deleted file mode 100644 index 504ac3122..000000000 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/uimodel/UiTextAttributeNode.java +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Eclipse Public License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.eclipse.org/org/documents/epl-v10.php - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.ide.eclipse.adt.internal.editors.uimodel; - -import com.android.ide.eclipse.adt.internal.editors.AndroidXmlEditor; -import com.android.ide.eclipse.adt.internal.editors.descriptors.AttributeDescriptor; -import com.android.ide.eclipse.adt.internal.editors.descriptors.DescriptorsUtils; -import com.android.ide.eclipse.adt.internal.editors.descriptors.TextAttributeDescriptor; -import com.android.ide.eclipse.adt.internal.editors.ui.SectionHelper; - -import org.eclipse.swt.events.DisposeEvent; -import org.eclipse.swt.events.DisposeListener; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.forms.IManagedForm; -import org.eclipse.ui.forms.widgets.TableWrapData; - -/** - * Represents an XML attribute in that can be modified using a simple text field - * in the XML editor's user interface. - * <p/> - * The XML attribute has no default value. When unset, the text field is blank. - * When updating the XML, if the field is empty, the attribute will be removed - * from the XML element. - * <p/> - * See {@link UiAttributeNode} for more information. - */ -public class UiTextAttributeNode extends UiAbstractTextAttributeNode { - - /** Text field */ - private Text mText; - /** The managed form, set only once createUiControl has been called. */ - private IManagedForm mManagedForm; - - public UiTextAttributeNode(AttributeDescriptor attributeDescriptor, UiElementNode uiParent) { - super(attributeDescriptor, uiParent); - } - - /* (non-java doc) - * Creates a label widget and an associated text field. - * <p/> - * As most other parts of the android manifest editor, this assumes the - * parent uses a table layout with 2 columns. - */ - @Override - public void createUiControl(Composite parent, IManagedForm managedForm) { - setManagedForm(managedForm); - TextAttributeDescriptor desc = (TextAttributeDescriptor) getDescriptor(); - Text text = SectionHelper.createLabelAndText(parent, managedForm.getToolkit(), - desc.getUiName(), getCurrentValue(), - DescriptorsUtils.formatTooltip(desc.getTooltip())); - - setTextWidget(text); - } - - /** - * No completion values for this UI attribute. - * - * {@inheritDoc} - */ - @Override - public String[] getPossibleValues(String prefix) { - return null; - } - - /** - * Sets the internal managed form. - * This is usually set by createUiControl. - */ - protected void setManagedForm(IManagedForm managedForm) { - mManagedForm = managedForm; - } - - /** - * @return The managed form, set only once createUiControl has been called. - */ - protected IManagedForm getManagedForm() { - return mManagedForm; - } - - /* (non-java doc) - * Returns if the attribute node is valid, and its UI has been created. - */ - @Override - public boolean isValid() { - return mText != null; - } - - @Override - public String getTextWidgetValue() { - if (mText != null) { - return mText.getText(); - } - - return null; - } - - @Override - public void setTextWidgetValue(String value) { - if (mText != null) { - mText.setText(value); - } - } - - /** - * Sets the Text widget object, and prepares it to handle modification and synchronization - * with the XML node. - * @param textWidget - */ - protected final void setTextWidget(Text textWidget) { - mText = textWidget; - - if (textWidget != null) { - // Sets the with hint for the text field. Derived classes can always override it. - // This helps the grid layout to resize correctly on smaller screen sizes. - Object data = textWidget.getLayoutData(); - if (data == null) { - } else if (data instanceof GridData) { - ((GridData)data).widthHint = AndroidXmlEditor.TEXT_WIDTH_HINT; - } else if (data instanceof TableWrapData) { - ((TableWrapData)data).maxWidth = 100; - } - - mText.addModifyListener(new ModifyListener() { - /** - * Sent when the text is modified, whether by the user via manual - * input or programmatic input via setText(). - * <p/> - * Simply mark the attribute as dirty if it really changed. - * The container SectionPart will collect these flag and manage them. - */ - @Override - public void modifyText(ModifyEvent e) { - if (!isInInternalTextModification() && - !isDirty() && - mText != null && - getCurrentValue() != null && - !mText.getText().equals(getCurrentValue())) { - setDirty(true); - } - } - }); - - // Remove self-reference when the widget is disposed - mText.addDisposeListener(new DisposeListener() { - @Override - public void widgetDisposed(DisposeEvent e) { - mText = null; - } - }); - } - - onAddValidators(mText); - } - - /** - * Called after the text widget as been created. - * <p/> - * Derived classes typically want to: - * <li> Create a new {@link ModifyListener} and attach it to the given {@link Text} widget. - * <li> In the modify listener, call getManagedForm().getMessageManager().addMessage() - * and getManagedForm().getMessageManager().removeMessage() as necessary. - * <li> Call removeMessage in a new text.addDisposeListener. - * <li> Call the validator once to setup the initial messages as needed. - * <p/> - * The base implementation does nothing. - * - * @param text The {@link Text} widget to validate. - */ - protected void onAddValidators(Text text) { - } - - /** - * Returns the text widget. - */ - protected final Text getTextWidget() { - return mText; - } -} |