1d6124a176326169bc87cb29823ca2dc906689680Tor Norbye/* 2d6124a176326169bc87cb29823ca2dc906689680Tor Norbye * Copyright (C) 2012 The Android Open Source Project 3d6124a176326169bc87cb29823ca2dc906689680Tor Norbye * 4d6124a176326169bc87cb29823ca2dc906689680Tor Norbye * Licensed under the Eclipse Public License, Version 1.0 (the "License"); 5d6124a176326169bc87cb29823ca2dc906689680Tor Norbye * you may not use this file except in compliance with the License. 6d6124a176326169bc87cb29823ca2dc906689680Tor Norbye * You may obtain a copy of the License at 7d6124a176326169bc87cb29823ca2dc906689680Tor Norbye * 8d6124a176326169bc87cb29823ca2dc906689680Tor Norbye * http://www.eclipse.org/org/documents/epl-v10.php 9d6124a176326169bc87cb29823ca2dc906689680Tor Norbye * 10d6124a176326169bc87cb29823ca2dc906689680Tor Norbye * Unless required by applicable law or agreed to in writing, software 11d6124a176326169bc87cb29823ca2dc906689680Tor Norbye * distributed under the License is distributed on an "AS IS" BASIS, 12d6124a176326169bc87cb29823ca2dc906689680Tor Norbye * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d6124a176326169bc87cb29823ca2dc906689680Tor Norbye * See the License for the specific language governing permissions and 14d6124a176326169bc87cb29823ca2dc906689680Tor Norbye * limitations under the License. 15d6124a176326169bc87cb29823ca2dc906689680Tor Norbye */ 16d6124a176326169bc87cb29823ca2dc906689680Tor Norbyepackage com.android.ide.eclipse.adt.internal.lint; 17d6124a176326169bc87cb29823ca2dc906689680Tor Norbye 1812d4581faa6438941e65a9dc83213be34c6ca970Tor Norbyeimport static com.android.SdkConstants.ANDROID_URI; 1912d4581faa6438941e65a9dc83213be34c6ca970Tor Norbyeimport static com.android.SdkConstants.ATTR_LAYOUT_HEIGHT; 2012d4581faa6438941e65a9dc83213be34c6ca970Tor Norbyeimport static com.android.SdkConstants.ATTR_LAYOUT_WIDTH; 2112d4581faa6438941e65a9dc83213be34c6ca970Tor Norbyeimport static com.android.SdkConstants.ATTR_ORIENTATION; 2212d4581faa6438941e65a9dc83213be34c6ca970Tor Norbyeimport static com.android.SdkConstants.VALUE_VERTICAL; 2312d4581faa6438941e65a9dc83213be34c6ca970Tor Norbyeimport static com.android.SdkConstants.VALUE_ZERO_DP; 24d6124a176326169bc87cb29823ca2dc906689680Tor Norbye 25d6124a176326169bc87cb29823ca2dc906689680Tor Norbyeimport org.eclipse.core.resources.IMarker; 26d6124a176326169bc87cb29823ca2dc906689680Tor Norbyeimport org.eclipse.jface.text.IDocument; 27d6124a176326169bc87cb29823ca2dc906689680Tor Norbyeimport org.eclipse.swt.graphics.Image; 28d6124a176326169bc87cb29823ca2dc906689680Tor Norbyeimport org.eclipse.ui.ISharedImages; 29d6124a176326169bc87cb29823ca2dc906689680Tor Norbyeimport org.eclipse.ui.PlatformUI; 30d6124a176326169bc87cb29823ca2dc906689680Tor Norbyeimport org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; 31d6124a176326169bc87cb29823ca2dc906689680Tor Norbyeimport org.w3c.dom.Element; 32d6124a176326169bc87cb29823ca2dc906689680Tor Norbyeimport org.w3c.dom.Node; 33d6124a176326169bc87cb29823ca2dc906689680Tor Norbye 34d6124a176326169bc87cb29823ca2dc906689680Tor Norbye@SuppressWarnings("restriction") // DOM model 35d6124a176326169bc87cb29823ca2dc906689680Tor Norbyefinal class LinearLayoutWeightFix extends DocumentFix { 36d6124a176326169bc87cb29823ca2dc906689680Tor Norbye private LinearLayoutWeightFix(String id, IMarker marker) { 37d6124a176326169bc87cb29823ca2dc906689680Tor Norbye super(id, marker); 38d6124a176326169bc87cb29823ca2dc906689680Tor Norbye } 39d6124a176326169bc87cb29823ca2dc906689680Tor Norbye 40d6124a176326169bc87cb29823ca2dc906689680Tor Norbye @Override 41d6124a176326169bc87cb29823ca2dc906689680Tor Norbye public boolean needsFocus() { 42d6124a176326169bc87cb29823ca2dc906689680Tor Norbye return false; 43d6124a176326169bc87cb29823ca2dc906689680Tor Norbye } 44d6124a176326169bc87cb29823ca2dc906689680Tor Norbye 45d6124a176326169bc87cb29823ca2dc906689680Tor Norbye @Override 46d6124a176326169bc87cb29823ca2dc906689680Tor Norbye public boolean isCancelable() { 47d6124a176326169bc87cb29823ca2dc906689680Tor Norbye return false; 48d6124a176326169bc87cb29823ca2dc906689680Tor Norbye } 49d6124a176326169bc87cb29823ca2dc906689680Tor Norbye 50d6124a176326169bc87cb29823ca2dc906689680Tor Norbye @Override 51d6124a176326169bc87cb29823ca2dc906689680Tor Norbye protected void apply(IDocument document, IStructuredModel model, Node node, int start, 52d6124a176326169bc87cb29823ca2dc906689680Tor Norbye int end) { 53d6124a176326169bc87cb29823ca2dc906689680Tor Norbye if (node instanceof Element && node.getParentNode() instanceof Element) { 54d6124a176326169bc87cb29823ca2dc906689680Tor Norbye Element element = (Element) node; 55d6124a176326169bc87cb29823ca2dc906689680Tor Norbye Element parent = (Element) node.getParentNode(); 56d6124a176326169bc87cb29823ca2dc906689680Tor Norbye String dimension; 57d6124a176326169bc87cb29823ca2dc906689680Tor Norbye if (VALUE_VERTICAL.equals(parent.getAttributeNS(ANDROID_URI, 58d6124a176326169bc87cb29823ca2dc906689680Tor Norbye ATTR_ORIENTATION))) { 59d6124a176326169bc87cb29823ca2dc906689680Tor Norbye dimension = ATTR_LAYOUT_HEIGHT; 60d6124a176326169bc87cb29823ca2dc906689680Tor Norbye } else { 61d6124a176326169bc87cb29823ca2dc906689680Tor Norbye dimension = ATTR_LAYOUT_WIDTH; 62d6124a176326169bc87cb29823ca2dc906689680Tor Norbye } 63d6124a176326169bc87cb29823ca2dc906689680Tor Norbye element.setAttributeNS(ANDROID_URI, dimension, VALUE_ZERO_DP); 64d6124a176326169bc87cb29823ca2dc906689680Tor Norbye } 65d6124a176326169bc87cb29823ca2dc906689680Tor Norbye } 66d6124a176326169bc87cb29823ca2dc906689680Tor Norbye 67d6124a176326169bc87cb29823ca2dc906689680Tor Norbye @Override 68d6124a176326169bc87cb29823ca2dc906689680Tor Norbye public String getDisplayString() { 69d6124a176326169bc87cb29823ca2dc906689680Tor Norbye return "Replace size attribute with 0dp"; 70d6124a176326169bc87cb29823ca2dc906689680Tor Norbye } 71d6124a176326169bc87cb29823ca2dc906689680Tor Norbye 72d6124a176326169bc87cb29823ca2dc906689680Tor Norbye @Override 73d6124a176326169bc87cb29823ca2dc906689680Tor Norbye public Image getImage() { 74d6124a176326169bc87cb29823ca2dc906689680Tor Norbye ISharedImages sharedImages = PlatformUI.getWorkbench().getSharedImages(); 75d6124a176326169bc87cb29823ca2dc906689680Tor Norbye // TODO: Need a better icon here 76d6124a176326169bc87cb29823ca2dc906689680Tor Norbye return sharedImages.getImage(ISharedImages.IMG_OBJ_ELEMENT); 77d6124a176326169bc87cb29823ca2dc906689680Tor Norbye } 78a881b0b34678ad76c9f5eba62fac7a00a22ac606Tor Norbye} 79