/* * Copyright 2015 JBoss, by Red Hat, Inc * * 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 org.uberfire.ext.widgets.common.client.common; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.IsWidget; import org.gwtbootstrap3.client.ui.Column; import org.gwtbootstrap3.client.ui.Form; import org.gwtbootstrap3.client.ui.FormGroup; import org.gwtbootstrap3.client.ui.Legend; import org.gwtbootstrap3.client.ui.constants.ColumnSize; import org.gwtbootstrap3.client.ui.constants.FormType; public class FormStyleLayout extends Form { public FormStyleLayout() { setType(FormType.HORIZONTAL); } public FormStyleLayout(final String title) { this(); add(new Legend(title)); } public FormStyleLayout(final Image icon, final String title) { this(); add(new Legend() {{ getElement().appendChild(icon.getElement()); getElement().setInnerText(title); }}); } public FormStyleItem addAttribute(String label, IsWidget widget) { final FormStyleItem formStyleItem = GWT.create(FormStyleItem.class); formStyleItem.setup(label, widget, getWidgetCount()); add(formStyleItem); return formStyleItem; } public int addRow(final IsWidget widget) { final FormGroup formGroup; if (widget instanceof FormGroup) { formGroup = (FormGroup) widget; } else { formGroup = new FormGroup(); if (widget instanceof Column) { formGroup.add(widget); } else { formGroup.add(new Column(ColumnSize.MD_12) {{ add(widget); }}); } } add(formGroup); return getWidgetCount() - 1; } public void setAttributeVisibility(final int index, final boolean b) { try { final IsWidget widget = getWidget(index); if (widget != null) { getWidget(index).setVisible(b); } } catch (final IndexOutOfBoundsException ignore) { } } }