/* This file belongs to the Servoy development and deployment environment, Copyright (C) 1997-2015 Servoy BV This program is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program; if not, see http://www.gnu.org/licenses or write to the Free Software Foundation,Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ package com.servoy.j2db.server.ngclient.property.types; import org.sablo.BaseWebObject; import org.sablo.WebComponent; import org.sablo.specification.property.IWrappingContext; import org.sablo.specification.property.types.EnabledSabloValue; import com.servoy.j2db.server.ngclient.IWebFormUI; import com.servoy.j2db.server.ngclient.WebFormComponent; import com.servoy.j2db.server.ngclient.WebFormUI; public class NGEnabledSabloValue extends EnabledSabloValue { /** * @param value * @param dataConverterContext */ public NGEnabledSabloValue(boolean value, IWrappingContext dataConverterContext) { super(value, dataConverterContext); } @Override public boolean getValue() { boolean val = super.getValue(); if (val) { BaseWebObject webObject = context.getWebObject(); if (webObject instanceof IWebFormUI && ((IWebFormUI)webObject).getParentContainer() instanceof WebComponent) { return ((WebComponent)((IWebFormUI)webObject).getParentContainer()).isEnabled(); } } return val; } @Override public void flagChanged(BaseWebObject comp, String propName) { super.flagChanged(comp, propName); if (comp instanceof WebFormComponent) { IWebFormUI[] visibleForms = ((WebFormComponent)comp).getVisibleForms(); for (IWebFormUI webFormUI : visibleForms) { flagChanged(((BaseWebObject)webFormUI), WebFormUI.ENABLED); } } } public boolean getComponentValue() { return value; } }