/* * (c) Copyright 2010-2011 AgileBirds * * This file is part of OpenFlexo. * * OpenFlexo is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * OpenFlexo 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with OpenFlexo. If not, see <http://www.gnu.org/licenses/>. * */ package org.openflexo.foundation.ie; import java.util.Vector; import java.util.logging.Level; import java.util.logging.Logger; import org.openflexo.foundation.DataFlexoObserver; import org.openflexo.foundation.ie.cl.ComponentDefinition; import org.openflexo.foundation.ie.widget.IEBlocWidget; import org.openflexo.foundation.ie.widget.IESequenceTab; import org.openflexo.foundation.ie.widget.IEWidget; import org.openflexo.foundation.rm.FlexoProject; import org.openflexo.foundation.xml.FlexoComponentBuilder; /** * @author bmangez * @deprecated <B>Class Description</B> */ @Deprecated public final class SingleWidgetComponent extends IEPartialComponent implements DataFlexoObserver { private static final Logger logger = Logger.getLogger(IETabComponent.class.getPackage().getName()); // ========================================================================== // ============================= Variables // ================================== // ========================================================================== private IEWidget _rootWidget; // ========================================================================== // ============================= Constructor // ================================ // ========================================================================== /** * Constructor invoked during deserialization for IEThumbnailComponent * * @param componentDefinition */ public SingleWidgetComponent(FlexoComponentBuilder builder) { super(builder); initializeDeserialization(builder); } /** * Default constructor for IEThumbnailComponent * * @param componentDefinition * @deprecated */ @Deprecated public SingleWidgetComponent(ComponentDefinition componentDefinition, FlexoProject prj) { super(componentDefinition, prj); } @Override public String getInspectorName() { return null; } public IEWidget getRootWidget() { if (!isDeserializing() && _rootWidget == null) { if (logger.isLoggable(Level.WARNING)) { logger.warning("Reusable component " + getComponentDefinition().getComponentName() + " has no root widget defined-->this component will be deleted"); } getFlexoResource().delete(); } return _rootWidget; } public void setRootWidget(IEWidget widget) { _rootWidget = widget; _rootWidget.setWOComponent(this); _rootWidget.setParent(this); } /** * Return a Vector of embedded IEObjects at this level. NOTE that this is NOT a recursive method * * @return a Vector of IEObject instances */ @Override public Vector<IObject> getEmbeddedIEObjects() { Vector answer = super.getEmbeddedIEObjects(); Object o = getRootWidget(); if (o != null) { answer.add(o); } return answer; } @Override public String getFullyQualifiedName() { return "ReusableComponent:" + getName(); } /** * Overrides getClassNameKey * * @see org.openflexo.foundation.FlexoModelObject#getClassNameKey() */ @Override public String getClassNameKey() { return "single_widget_component"; } public HTMLListDescriptorCollection getAllHTMLTableList() { HTMLListDescriptorCollection v = new HTMLListDescriptorCollection(); if (getRootWidget() instanceof IEBlocWidget) { IEBlocWidget w = (IEBlocWidget) getRootWidget(); HTMLListDescriptor d = HTMLListDescriptor.createInstanceForBloc(w); if (d != null) { v.add(d); } } return v; } @Override public Vector<IESequenceTab> getAllTabContainers() { if (getRootWidget() instanceof IETopComponent) { return ((IETopComponent) getRootWidget()).getAllTabContainers(); } return new Vector<IESequenceTab>(); } }