blob: 40f8d4bcdda5c4cdcec23d4a2f52c18164a18d98 [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 mx.controls.beads
{
import mx.controls.DataGrid;
import mx.controls.dataGridClasses.DataGridListArea;
import org.apache.royale.core.Bead;
import org.apache.royale.core.IDataProviderModel;
import org.apache.royale.core.IIndexedItemRenderer;
import org.apache.royale.core.IIndexedItemRendererInitializer;
import org.apache.royale.core.IItemRenderer;
import org.apache.royale.core.IListDataItemRenderer;
import org.apache.royale.core.ILabelFieldItemRenderer;
import org.apache.royale.core.IStrand;
import org.apache.royale.core.IUIBase;
import org.apache.royale.core.SimpleCSSStyles;
import org.apache.royale.core.UIBase;
import mx.controls.dataGridClasses.DataGridListData;
import mx.controls.dataGridClasses.DataGridColumnList;
import mx.controls.beads.models.DataGridColumnICollectionViewModel;
import mx.core.UIComponent;
/**
* The DataGridItemRendererInitializer class initializes item renderers
* in mx DataGrid classes.
*
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.0
*/
public class DataGridItemRendererInitializer extends ListItemRendererInitializer
{
/**
* constructor.
*
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.0
*/
public function DataGridItemRendererInitializer()
{
}
/**
* @private
* @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper
*/
override public function initializeIndexedItemRenderer(ir:IIndexedItemRenderer, data:Object, index:int):void
{
if (!dataProviderModel)
return;
super.initializeIndexedItemRenderer(ir, data, index);
var dgColumnList:DataGridColumnList = _strand as DataGridColumnList;
if (!dgColumnList.grid) return;
var dgColumnListModel:DataGridColumnICollectionViewModel = dgColumnList.getBeadByType(DataGridColumnICollectionViewModel) as DataGridColumnICollectionViewModel;
var dg:DataGrid = (dgColumnList.grid as DataGrid);
var dataField:String = dg.columns[dgColumnListModel.columnIndex].dataField;
var text:String = "";
try {
text = data[dataField];
} catch (e:Error)
{
}
// Set the listData with the depth of this item
var listData:DataGridListData = new DataGridListData(text, dataField, dgColumnListModel.columnIndex, "", (dgColumnList.grid as DataGrid), index);
(ir as IListDataItemRenderer).listData = listData;
}
override protected function setupVisualsForItemRenderer(ir:IIndexedItemRenderer):void
{
super.setupVisualsForItemRenderer(ir);
COMPILE::JS
{
if (ir is UIComponent)
{
(ir as UIComponent).isAbsolute = false;
(ir as UIComponent).element.style.position = 'relative';
}
}
}
}
}