FileDocCategorySizeDatePackage
UiSeparatorAttributeNode.javaAPI DocAndroid 1.5 API5447Wed May 06 22:41:10 BST 2009com.android.ide.eclipse.editors.uimodel

UiSeparatorAttributeNode

public class UiSeparatorAttributeNode extends UiAttributeNode
{@link UiSeparatorAttributeNode} does not represent any real attribute.

It is used to separate groups of attributes visually.

Fields Summary
Constructors Summary
public UiSeparatorAttributeNode(com.android.ide.eclipse.editors.descriptors.SeparatorAttributeDescriptor attrDesc, UiElementNode uiParent)
Creates a new {@link UiAttributeNode} linked to a specific {@link AttributeDescriptor}

        super(attrDesc, uiParent);
    
Methods Summary
public voidcommit()
Called by the user interface when the editor is saved or its state changed and the modified attributes must be committed (i.e. written) to the XML model.

Important behaviors:

  • The caller *must* have called IStructuredModel.aboutToChangeModel before. The implemented methods must assume it is safe to modify the XML model.
  • On success, the implementation *must* call setDirty(false).
  • On failure, the implementation can fail with an exception, which is trapped and logged by the caller, or do nothing, whichever is more appropriate.

        // No value to commit.
    
public voidcreateUiControl(org.eclipse.swt.widgets.Composite parent, org.eclipse.ui.forms.IManagedForm managedForm)
Called once by the parent user interface to creates the necessary user interface to edit this attribute.

This method can be called more than once in the life cycle of an UI node, typically when the UI is part of a master-detail tree, as pages are swapped.

param
parent The composite where to create the user interface.
param
managedForm The managed form owning this part.

        FormToolkit toolkit = managedForm.getToolkit();
        Composite row = toolkit.createComposite(parent);
        
        TableWrapData twd = new TableWrapData(TableWrapData.FILL_GRAB);
        if (parent.getLayout() instanceof TableWrapLayout) {
            twd.colspan = ((TableWrapLayout) parent.getLayout()).numColumns;
        }
        row.setLayoutData(twd);
        row.setLayout(new GridLayout(3, false /* equal width */));

        Label sep = toolkit.createSeparator(row, SWT.HORIZONTAL);
        GridData gd = new GridData(SWT.LEFT, SWT.CENTER, false, false);
        gd.widthHint = 16;
        sep.setLayoutData(gd);

        Label label = toolkit.createLabel(row, getDescriptor().getXmlLocalName());
        label.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));

        sep = toolkit.createSeparator(row, SWT.HORIZONTAL);
        sep.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    
public java.lang.StringgetCurrentValue()
Returns the current value of the node.

        // There is no value here.
        return null;
    
public java.lang.String[]getPossibleValues(java.lang.String prefix)
No completion values for this UI attribute. {@inheritDoc}

        return null;
    
public voidsetDirty(boolean isDirty)
Sets whether the attribute is dirty and also notifies the editor some part's dirty flag as changed.

Subclasses should set the to true as a result of user interaction with the widgets in the section and then should set to false when the commit() method completed.

        // This is never dirty.
    
public voidupdateValue(org.w3c.dom.Node xml_attribute_node)
Called when the XML is being loaded or has changed to update the value held by this user interface attribute node.

The XML Node may be null, which denotes that the attribute is not specified in the XML model. In general, this means the "default" value of the attribute should be used.

The caller doesn't really know if attributes have changed, so it will call this to refresh the attribute anyway. It's up to the UI implementation to minimize refreshes.

param
xml_attribute_node

        // No value to update.