1 /* 2 * Copyright (C) 2011 The Android Open Source Project 3 * 4 * Licensed under the Eclipse Public License, Version 1.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.eclipse.org/org/documents/epl-v10.php 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package com.android.ide.common.layout; 17 18 import static com.android.SdkConstants.ATTR_CHECKED; 19 import static com.android.SdkConstants.ATTR_ID; 20 import static com.android.SdkConstants.VALUE_TRUE; 21 22 23 import com.android.SdkConstants; 24 import static com.android.SdkConstants.ANDROID_URI; 25 import com.android.annotations.NonNull; 26 import com.android.ide.common.api.INode; 27 import com.android.ide.common.api.IViewRule; 28 import com.android.ide.common.api.InsertType; 29 30 /** 31 * An {@link IViewRule} for android.widget.RadioGroup which initializes the radio group 32 * with some radio buttons 33 */ 34 public class RadioGroupRule extends LinearLayoutRule { 35 @Override onCreate(@onNull INode node, @NonNull INode parent, @NonNull InsertType insertType)36 public void onCreate(@NonNull INode node, @NonNull INode parent, 37 @NonNull InsertType insertType) { 38 super.onCreate(node, parent, insertType); 39 40 if (insertType.isCreate()) { 41 for (int i = 0; i < 3; i++) { 42 INode handle = node.appendChild(SdkConstants.FQCN_RADIO_BUTTON); 43 handle.setAttribute(ANDROID_URI, ATTR_ID, String.format("@+id/radio%d", i)); 44 if (i == 0) { 45 handle.setAttribute(ANDROID_URI, ATTR_CHECKED, VALUE_TRUE); 46 } 47 } 48 } 49 } 50 } 51