Viewing file: TableStatsDia.class.php (7.58 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php /* vim: set expandtab sw=4 ts=4 sts=4: */ /** * Contains Table_Stats_Dia class * * @package PhpMyAdmin */ if (! defined('PHPMYADMIN')) { exit; }
require_once 'libraries/plugins/schema/TableStats.class.php';
/** * Table preferences/statistics * * This class preserves the table co-ordinates,fields * and helps in drawing/generating the Tables in dia XML document. * * @package PhpMyAdmin * @name Table_Stats_Dia * @see PMA_DIA */ class Table_Stats_Dia extends TableStats { public $tableId; public $tableColor;
/** * The "Table_Stats_Dia" constructor * * @param string $tableName The table name * @param integer $pageNumber The current page number (from the * $cfg['Servers'][$i]['table_coords'] table) * @param boolean $showKeys Whether to display ONLY keys or not * @param boolean $offline Whether the coordinates are sent from the browser * * @global object $dia The current dia document * * @see PMA_DIA */ function __construct( $tableName, $pageNumber, $showKeys = false, $offline = false ) { global $dia; parent::__construct( $dia, $GLOBALS['db'], $pageNumber, $tableName, $showKeys, false, $offline );
/** * Every object in Dia document needs an ID to identify * so, we used a static variable to keep the things unique */ PMA_Dia_Relation_Schema::$objectId += 1; $this->tableId = PMA_Dia_Relation_Schema::$objectId; }
/** * Displays an error when the table cannot be found. * * @return void */ protected function showMissingTableError() { PMA_Export_Relation_Schema::dieSchema( $this->pageNumber, "DIA", sprintf(__('The %s table doesn\'t exist!'), $this->tableName) ); }
/** * Do draw the table * * Tables are generated using object type Database - Table * primary fields are underlined in tables. Dia object * is used to generate the XML of Dia Document. Database Table * Object and their attributes are involved in the combination * of displaying Database - Table on Dia Document. * * @param boolean $showColor Whether to show color for tables text or not * if showColor is true then an array of $listOfColors will be used to choose * the random colors for tables text we can change/add more colors to this array * * @return void * * @global object $dia The current Dia document * * @access public * @see PMA_DIA */ public function tableDraw($showColor) { global $dia;
if ($showColor) { $listOfColors = array( 'FF0000', '000099', '00FF00' ); shuffle($listOfColors); $this->tableColor = '#' . $listOfColors[0] . ''; } else { $this->tableColor = '#000000'; }
$factor = 0.1;
$dia->startElement('dia:object'); $dia->writeAttribute('type', 'Database - Table'); $dia->writeAttribute('version', '0'); $dia->writeAttribute('id', '' . $this->tableId . ''); $dia->writeRaw( '<dia:attribute name="obj_pos"> <dia:point val="' . ($this->x * $factor) . ',' . ($this->y * $factor) . '"/> </dia:attribute> <dia:attribute name="obj_bb"> <dia:rectangle val="' . ($this->x * $factor) . ',' . ($this->y * $factor) . ';9.97,9.2"/> </dia:attribute> <dia:attribute name="meta"> <dia:composite type="dict"/> </dia:attribute> <dia:attribute name="elem_corner"> <dia:point val="' . ($this->x * $factor) . ',' . ($this->y * $factor) . '"/> </dia:attribute> <dia:attribute name="elem_width"> <dia:real val="5.9199999999999999"/> </dia:attribute> <dia:attribute name="elem_height"> <dia:real val="3.5"/> </dia:attribute> <dia:attribute name="text_colour"> <dia:color val="' . $this->tableColor . '"/> </dia:attribute> <dia:attribute name="line_colour"> <dia:color val="#000000"/> </dia:attribute> <dia:attribute name="fill_colour"> <dia:color val="#ffffff"/> </dia:attribute> <dia:attribute name="line_width"> <dia:real val="0.10000000000000001"/> </dia:attribute> <dia:attribute name="name"> <dia:string>#' . $this->tableName . '#</dia:string> </dia:attribute> <dia:attribute name="comment"> <dia:string>##</dia:string> </dia:attribute> <dia:attribute name="visible_comment"> <dia:boolean val="false"/> </dia:attribute> <dia:attribute name="tagging_comment"> <dia:boolean val="false"/> </dia:attribute> <dia:attribute name="underline_primary_key"> <dia:boolean val="true"/> </dia:attribute> <dia:attribute name="bold_primary_keys"> <dia:boolean val="true"/> </dia:attribute> <dia:attribute name="normal_font"> <dia:font family="monospace" style="0" name="Courier"/> </dia:attribute> <dia:attribute name="name_font"> <dia:font family="sans" style="80" name="Helvetica-Bold"/> </dia:attribute> <dia:attribute name="comment_font"> <dia:font family="sans" style="0" name="Helvetica"/> </dia:attribute> <dia:attribute name="normal_font_height"> <dia:real val="0.80000000000000004"/> </dia:attribute> <dia:attribute name="name_font_height"> <dia:real val="0.69999999999999996"/> </dia:attribute> <dia:attribute name="comment_font_height"> <dia:real val="0.69999999999999996"/> </dia:attribute>' );
$dia->startElement('dia:attribute'); $dia->writeAttribute('name', 'attributes');
foreach ($this->fields as $field) { $dia->writeRaw( '<dia:composite type="table_attribute"> <dia:attribute name="name"> <dia:string>#' . $field . '#</dia:string> </dia:attribute> <dia:attribute name="type"> <dia:string>##</dia:string> </dia:attribute> <dia:attribute name="comment"> <dia:string>##</dia:string> </dia:attribute>' ); unset($pm); $pm = 'false'; if (in_array($field, $this->primary)) { $pm = 'true'; } if ($field == $this->displayfield) { $pm = 'false'; } $dia->writeRaw( '<dia:attribute name="primary_key"> <dia:boolean val="' . $pm . '"/> </dia:attribute> <dia:attribute name="nullable"> <dia:boolean val="false"/> </dia:attribute> <dia:attribute name="unique"> <dia:boolean val="' . $pm . '"/> </dia:attribute> </dia:composite>' ); } $dia->endElement(); $dia->endElement(); } } ?>
|