<?php
/**
* Entier Studio
*
* LICENSE
*
* Copyright 2006 Entier Studio team.
*
* 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 entier.studio
* @copyright Copyright (c) 2006 Entier Studio team. All rights reserved.
* @version $Id: html.ObjectoryComponentNamespaceDDL.php 85 2008-01-21 20:43:08Z yannromefort $
*/
//-----------------------------------------------------------------------------
// namespace
if (!defined("DefObjectoryComponentNamespaceDDL")) {
//-------------------------------------------------------------------------
// Define
define("DefObjectoryComponentNamespaceDDL", "1");
//-------------------------------------------------------------------------
// Include
@require_once (FRAMEWORK_DIR . "htmldropdownlist.php");
@include_once (COMPONENTS_DATA . "data.ObjectoryComponent.php");
@include_once (COMPONENTS_DATA . "data.ObjectoryComponentNamespace.php");
//
//-------------------------------------------------------------------------
//-------------------------------------------------------------------------
// Class
//
class ObjectoryComponentNamespaceDDL extends HTMLDropdownList {
//---------------------------------------------------------------------
// Attributes
/**
*
* @var integer
* @see
*/
var $m_ElemPkid = 0;
/**
*
* @var integer
* @see
*/
var $m_ElemRoot = 0;
/**
*
* @var integer
* @see
*/
var $m_ElemType = 0;
//---------------------------------------------------------------------
// Constructor
/**
*
*/
function ObjectoryComponentNamespaceDDL($layout, $class, $pkid, $root, $type) {
//
$this->m_layoutName = $layout;
$this->m_className = $class;
$this->m_defaultItem = false;
//
$this->m_ElemPkid = $pkid;
$this->m_ElemRoot = $root;
$this->m_ElemType = $type;
}
//---------------------------------------------------------------------
// Methods
/**
*
* @access private
*
* @param object DataSource object
* @param object DataObject object
* @param string dropdownlist text
* @param integer selected item value
* @return string
*/
function renderTree(&$datasource, &$dataobject, &$template, $value = 0, $mark = "..") {
//
$format1 = "<option value=\"%s\" selected>%s</option>";
$format2 = "<option value=\"%s\">%s</option>";
//
$type = $this->m_ElemType;
//
if ($dataobject->set_cursor_value($datasource, 0) == false) return (false);
//
for ($i = 0;$i < $dataobject->rowCount();$i++) {
//
if ($dataobject->fetchCursorRow($datasource) == false) return (false);
//
$pkid = $dataobject->get_field_value("OBJCOMPPKID");
$name = $dataobject->get_field_value("OBJCOMPNAME");
//
if ($pkid != $this->m_ElemPkid) {
//
if ($pkid == $value) $template.= @sprintf($format1, $pkid, $mark . $name);
else $template.= @sprintf($format2, $pkid, $mark . $name);
//
$namespace = new ObjectoryComponentNamespace($pkid, $type);
if ($namespace->selectSet($datasource, REFLECTKEY) == true) {
//
$template = $this->renderTree($datasource, $namespace, $template, $value, $mark . $mark);
}
}
}
//
return ($template);
}
/**
*
* @access public
*
* @param object DataSource object
* @param object DataObject object
* @param integer selected item value
* @return string
*/
function renderObject(&$datasource, &$dataobject, $value = 0) {
//
$format1 = "<option value=\"%s\" selected>%s</option>";
$format2 = "<option value=\"%s\">%s</option>";
//
$name = $this->m_layoutName;
$class = $this->m_className;
$default = $this->m_defaultItem;
//
if ($class != "") $template = "<select id=\"$name\" name=\"$name\" class=\"$class\">";
else $template = "<select id=\"$name\" name=\"$name\">";
//
/*
* 1- ObjectoryComponent
*/
//
@include_once (COMPONENTS_DATA . "data.ObjectoryComponent.php");
//
$element = new ObjectoryComponent($this->m_ElemRoot);
if ($element->selectRow($datasource) == false) {
//
return ("");
}
//
$pkid = $element->get_field_value("OBJCOMPPKID");
$name = $element->get_field_value("OBJCOMPNAME");
$type = $this->m_ElemType;
$mark = "..";
//
$template.= @sprintf($format2, $pkid, $name);
//
/*
* 2- ObjectoryComponentSet
*/
//
if ($dataobject->set_cursor_value($datasource, 0) == false) return (false);
//
for ($i = 0;$i < $dataobject->rowCount();$i++) {
//
if ($dataobject->fetchCursorRow($datasource) == false) return (false);
//
$pkid = $dataobject->get_field_value("OBJCOMPPKID");
$name = $dataobject->get_field_value("OBJCOMPNAME");
//
if ($pkid != $this->m_ElemPkid) {
//
if ($pkid == $value) $template.= @sprintf($format1, $pkid, $mark . $name);
else $template.= @sprintf($format2, $pkid, $mark . $name);
//
$namespace = new ObjectoryComponentNamespace($pkid, $type);
if ($namespace->selectSet($datasource, REFLECTKEY) == true) {
//
$template = $this->renderTree($datasource, $namespace, $template, $value, $mark . $mark);
}
}
}
//
return ($template . "</select>");
}
};
// Class
//-----------------------------------------------------------------------------
}
// namespace
//--------------------------------------------------------------------------
?>