blob: f1a3f2aaaf7209099b36788331a2a22d6b1a76f5 [file] [log] [blame]
/*
* Copyright (C) 2012 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.layout.properties;
import com.android.ide.eclipse.adt.internal.editors.descriptors.AttributeDescriptor;
import com.android.ide.eclipse.adt.internal.editors.descriptors.ListAttributeDescriptor;
import org.eclipse.wb.core.controls.CCombo3;
import org.eclipse.wb.internal.core.model.property.Property;
import org.eclipse.wb.internal.core.model.property.editor.AbstractComboPropertyEditor;
import org.eclipse.wb.internal.core.model.property.editor.ITextValuePropertyEditor;
class EnumXmlPropertyEditor extends AbstractComboPropertyEditor implements
ITextValuePropertyEditor {
public static final EnumXmlPropertyEditor INSTANCE = new EnumXmlPropertyEditor();
private EnumXmlPropertyEditor() {
}
@Override
protected String getText(Property property) throws Exception {
Object value = property.getValue();
if (value == null) {
return "";
} else if (value instanceof String) {
return (String) value;
} else if (value == Property.UNKNOWN_VALUE) {
return "<varies>";
} else {
return "";
}
}
private String[] getItems(Property property) {
XmlProperty xmlProperty = (XmlProperty) property;
AttributeDescriptor descriptor = xmlProperty.getDescriptor();
assert descriptor instanceof ListAttributeDescriptor;
ListAttributeDescriptor list = (ListAttributeDescriptor) descriptor;
return list.getValues();
}
@Override
protected void addItems(Property property, CCombo3 combo) throws Exception {
for (String item : getItems(property)) {
combo.add(item);
}
}
@Override
protected void selectItem(Property property, CCombo3 combo) throws Exception {
combo.setText(getText(property));
}
@Override
protected void toPropertyEx(Property property, CCombo3 combo, int index) throws Exception {
property.setValue(getItems(property)[index]);
}
@Override
public void setText(Property property, String text) throws Exception {
property.setValue(text);
}
}