blob: be9faf1562862b7ac41dc53a06785c42350c9a65 [file] [log] [blame]
////////////////////////////////////////////////////////////////////////////////
//
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.
// The ASF licenses this file to You 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.apache.flex.html.staticControls.beads
{
import flash.display.DisplayObject;
import flash.display.DisplayObjectContainer;
import flash.display.Sprite;
import org.apache.flex.core.IBead;
import org.apache.flex.core.IBeadView;
import org.apache.flex.core.ILayoutParent;
import org.apache.flex.core.IStrand;
import org.apache.flex.core.UIBase;
import org.apache.flex.core.ValuesManager;
import org.apache.flex.html.staticControls.Container;
import org.apache.flex.html.staticControls.ContainerContentArea;
import org.apache.flex.html.common.supportClasses.Border;
import org.apache.flex.html.staticControls.supportClasses.ScrollBar;
public class ContainerView implements IBeadView, ILayoutParent
{
public function ContainerView()
{
}
protected var actualParent:DisplayObjectContainer;
private var _strand:IStrand;
public function set strand(value:IStrand):void
{
_strand = value;
var backgroundColor:Object = ValuesManager.valuesImpl.getValue(value, "background-color");
var backgroundImage:Object = ValuesManager.valuesImpl.getValue(value, "background-image");
if (backgroundColor != null || backgroundImage != null)
{
if (value.getBeadByType(IBackgroundBead) == null)
value.addBead(new (ValuesManager.valuesImpl.getValue(value, "iBackgroundBead")) as IBead);
}
var borderStyle:String;
var borderStyles:Object = ValuesManager.valuesImpl.getValue(value, "border");
if (borderStyles is Array)
{
borderStyle = borderStyles[1];
}
if (borderStyle == null)
{
borderStyle = ValuesManager.valuesImpl.getValue(value, "border-style") as String;
}
if (borderStyle != null && borderStyle != "none")
{
if (value.getBeadByType(IBorderBead) == null)
value.addBead(new (ValuesManager.valuesImpl.getValue(value, "iBorderBead")) as IBead);
}
var paddingLeft:Object;
var paddingTop:Object;
var padding:Object = ValuesManager.valuesImpl.getValue(value, "padding");
if (padding is Array)
{
if (padding.length == 1)
paddingLeft = paddingTop = padding[0];
else if (padding.length <= 3)
{
paddingLeft = padding[1];
paddingTop = padding[0];
}
else if (padding.length == 4)
{
paddingLeft = padding[3];
paddingTop = padding[0];
}
}
else if (padding == null)
{
paddingLeft = ValuesManager.valuesImpl.getValue(value, "padding-left");
paddingTop = ValuesManager.valuesImpl.getValue(value, "padding-top");
}
else
{
paddingLeft = paddingTop = padding;
}
var pl:Number = Number(paddingLeft);
var pt:Number = Number(paddingTop);
if ((!isNaN(pl) && pl > 0 ||
!isNaN(pt) && pt > 0))
{
actualParent = new ContainerContentArea();
DisplayObjectContainer(value).addChild(actualParent);
Container(value).setActualParent(actualParent);
actualParent.x = pl;
actualParent.y = pt;
}
else
{
actualParent = value as DisplayObjectContainer;
}
}
public function get contentView():DisplayObjectContainer
{
return actualParent;
}
public function get border():Border
{
return null;
}
public function get resizableView():DisplayObject
{
return _strand as DisplayObject;
}
public function get vScrollBar():ScrollBar
{
return null;
}
public function get hScrollBar():ScrollBar
{
return null;
}
}
}