Work with resources

This commit is contained in:
Alexander Lobas
2012-06-22 21:02:52 +04:00
parent d2c696ff6a
commit 74634277cf
2 changed files with 21 additions and 2 deletions
@@ -15,6 +15,7 @@
*/
package com.intellij.android.designer.propertyTable;
import com.android.resources.ResourceType;
import com.intellij.android.designer.model.RadViewComponent;
import com.intellij.android.designer.propertyTable.editors.ResourceEditor;
import com.intellij.android.designer.propertyTable.editors.StringsComboEditor;
@@ -27,6 +28,7 @@ import com.intellij.designer.propertyTable.renderers.LabelPropertyRenderer;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.xml.XmlAttribute;
import org.jetbrains.android.dom.AndroidDomUtil;
import org.jetbrains.android.dom.attrs.AttributeDefinition;
import org.jetbrains.android.dom.attrs.AttributeFormat;
import org.jetbrains.annotations.NotNull;
@@ -65,15 +67,23 @@ public class AttributeProperty extends Property<RadViewComponent> implements IXm
}
else {
myRenderer = new ResourceRenderer(formats);
myEditor = new ResourceEditor(formats, definition.getValues());
myEditor = createResourceEditor(definition, formats);
}
}
else {
myRenderer = new ResourceRenderer(formats);
myEditor = new ResourceEditor(formats, definition.getValues());
myEditor = createResourceEditor(definition, formats);
}
}
private static ResourceEditor createResourceEditor(AttributeDefinition definition, Set<AttributeFormat> formats) {
String type = AndroidDomUtil.SPECIAL_RESOURCE_TYPES.get(definition.getName());
if (type == null) {
return new ResourceEditor(formats, definition.getValues());
}
return new ResourceEditor(new ResourceType[]{ResourceType.getEnum(type)}, formats, definition.getValues());
}
@Override
public Property<RadViewComponent> createForNewPresentation(@Nullable Property parent, @NotNull String name) {
return new AttributeProperty(parent, name, myDefinition);
@@ -22,6 +22,9 @@ import com.intellij.designer.model.RadComponent;
import com.intellij.designer.propertyTable.InplaceContext;
import com.intellij.designer.propertyTable.PropertyEditor;
import com.intellij.designer.propertyTable.editors.ComboEditor;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.ComponentWithBrowseButton;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
@@ -111,6 +114,12 @@ public class ResourceEditor extends PropertyEditor {
}
else {
myEditor = new TextFieldWithBrowseButton() {
@Override
protected void installPathCompletion(@Nullable Project project,
FileChooserDescriptor fileChooserDescriptor,
@Nullable Disposable parent) {
}
@Override
public Dimension getPreferredSize() {
return getComponentPreferredSize();