/* * Copyright (C) 2013 The Android Open Source Project * * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0 * * 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.tools.idea.designer; import com.intellij.designer.model.MetaModel; import com.intellij.designer.model.RadComponent; import com.intellij.designer.palette.PaletteItem; import org.jdom.Element; import org.jetbrains.annotations.NotNull; public class AndroidMetaModel extends MetaModel { static final String ATTR_RESIZE = "resize"; static final String ATTR_FILL = "fill"; private ResizePolicy myResizePolicy; private FillPolicy myFillPolicy; public AndroidMetaModel(Class<RadComponent> model, String target, String tag) { super(model, target, tag); } public void initializeFrom(@NotNull Element element) { String resize = element.getAttributeValue(ATTR_RESIZE); if (resize != null) { ResizePolicy resizePolicy = ResizePolicy.get(resize); if (resizePolicy != null) { myResizePolicy = resizePolicy; } } String fill = element.getAttributeValue(ATTR_FILL); if (fill != null) { FillPolicy fillPolicy = FillPolicy.get(fill); if (fillPolicy != null) { myFillPolicy = fillPolicy; } } } @NotNull public ResizePolicy getResizePolicy() { PaletteItem paletteItem = getPaletteItem(); if (paletteItem instanceof AndroidVariationPaletteItem) { AndroidVariationPaletteItem item = (AndroidVariationPaletteItem)paletteItem; ResizePolicy policy = item.getResizePolicy(); if (policy != null) { return policy; } } return myResizePolicy != null ? myResizePolicy : ResizePolicy.full(); } @NotNull public FillPolicy getFillPolicy() { PaletteItem paletteItem = getPaletteItem(); if (paletteItem instanceof AndroidVariationPaletteItem) { AndroidVariationPaletteItem item = (AndroidVariationPaletteItem)paletteItem; FillPolicy fill = item.getFillPolicy(); if (fill != null) { return fill; } } return myFillPolicy != null ? myFillPolicy : FillPolicy.NONE; } }