/** * Set the Label * * @api * @param Label $label Label * @return static */ public function setLabel(Label $label) { $label->checkId(); $label->setScriptEvents(true); $this->label = $label; return $this; }
public function testLabel() { $clock = new Clock(); $label = new Label(); $this->assertNull($clock->getLabel()); $this->assertNull($label->getId()); $this->assertSame($clock, $clock->setLabel($label)); $this->assertSame($label, $clock->getLabel()); $this->assertNotNull($label->getId()); }
public function testCollect() { $toggle1 = new Toggle(); $toggle2 = new Toggle(); $label = new Label(); $label->addScriptFeature($toggle2); $this->assertEmpty(ScriptFeature::collect(null)); $this->assertEquals(array($toggle1), ScriptFeature::collect($toggle1)); $this->assertEquals(array($toggle2), ScriptFeature::collect($label)); $this->assertEquals(array($toggle1, $toggle2), ScriptFeature::collect($toggle1, $label)); }
public function testControl() { $actionTrigger = new ActionTrigger(); $control = new Label(); $this->assertNull($actionTrigger->getControl()); $this->assertNull($control->getId()); $this->assertNull($control->getScriptEvents()); $this->assertSame($actionTrigger, $actionTrigger->setControl($control)); $this->assertEquals($control, $actionTrigger->getControl()); $this->assertNotNull($control->getId()); $this->assertTrue($control->getScriptEvents()); $this->assertSame($actionTrigger, $actionTrigger->setControl(null)); $this->assertNull($actionTrigger->getControl()); }
/** * Get the script text * * @return string */ protected function getScriptText() { $controlId = Builder::escapeText($this->label->getId()); $scriptText = "\ndeclare ClockLabel <=> (Page.GetFirstChild({$controlId}) as CMlLabel);\ndeclare TimeText = CurrentLocalDateText;"; if (!$this->showSeconds) { $scriptText .= "\nTimeText = TextLib::SubText(TimeText, 0, 16);"; } if (!$this->showFullDate) { $scriptText .= "\nTimeText = TextLib::SubText(TimeText, 11, 9);"; } $scriptText .= "\nClockLabel.Value = TimeText;"; return $scriptText; }
/** * @see ScriptFeature::prepare() */ public function prepare(Script $script) { if (empty($this->pages)) { return $this; } $script->setScriptInclude(ScriptInclude::TEXTLIB); $currentPageVariable = self::VAR_CURRENT_PAGE; $updatePageFunction = self::FUNCTION_UPDATE_CURRENT_PAGE; $minPageNumber = 1; $startPageNumber = is_int($this->startPageNumber) ? $this->startPageNumber : $minPageNumber; $maxPage = $this->getMaxPage(); $maxPageNumber = $this->customMaxPageNumber; if (!is_int($maxPageNumber)) { $maxPageNumber = $maxPage->getPageNumber(); } $pagingId = $maxPage->getControl()->getId(true, true); $pagingId = Builder::escapeText($maxPage->getControl()->getId()); $pageLabelId = Builder::EMPTY_STRING; if ($this->label) { $pageLabelId = Builder::escapeText($this->label->getId()); } $pagesArrayText = $this->getPagesArrayText(); $pageButtonsArrayText = $this->getPageButtonsArrayText(); $previousChunkAction = Builder::escapeText($this->previousChunkAction); $nextChunkAction = Builder::escapeText($this->nextChunkAction); $chunkActionAppendsPageNumber = Builder::getBoolean($this->chunkActionAppendsPageNumber); // Init $initScriptText = "\ndeclare {$currentPageVariable} for This = Integer[Text];\n{$currentPageVariable}[{$pagingId}] = {$startPageNumber};\n{$updatePageFunction}({$pagingId}, {$pageLabelId}, 0, {$minPageNumber}, {$maxPageNumber}, {$pagesArrayText}, {$previousChunkAction}, {$nextChunkAction}, {$chunkActionAppendsPageNumber});"; $script->appendGenericScriptLabel(ScriptLabel::ONINIT, $initScriptText, true); // MouseClick $clickScriptText = "\ndeclare PageButtons = {$pageButtonsArrayText};\nif (PageButtons.existskey(Event.Control.ControlId)) {\n\tdeclare BrowseAction = PageButtons[Event.Control.ControlId];\n\t{$updatePageFunction}({$pagingId}, {$pageLabelId}, BrowseAction, {$minPageNumber}, {$maxPageNumber}, {$pagesArrayText}, {$previousChunkAction}, {$nextChunkAction}, {$chunkActionAppendsPageNumber});\n}"; $script->appendGenericScriptLabel(ScriptLabel::MOUSECLICK, $clickScriptText, true); // Update function $functionText = "\nVoid {$updatePageFunction}(Text _PagingId, Text _PageLabelId, Integer _BrowseAction, Integer _MinPageNumber, Integer _MaxPageNumber, Text[Integer] _Pages, Text _PreviousChunkAction, Text _NextChunkAction, Boolean _ChunkActionAppendPageNumber) {\n\tdeclare {$currentPageVariable} for This = Integer[Text];\n\tif (!{$currentPageVariable}.existskey(_PagingId)) return;\n\tdeclare CurrentPage = {$currentPageVariable}[_PagingId] + _BrowseAction;\n\tif (CurrentPage < _MinPageNumber) {\n\t\tCurrentPage = _MinPageNumber;\n\t} else if (CurrentPage > _MaxPageNumber) {\n\t\tCurrentPage = _MaxPageNumber;\n\t}\n\t{$currentPageVariable}[_PagingId] = CurrentPage;\n\tdeclare PageFound = False;\n\tforeach (PageNumber => PageId in _Pages) {\n\t\tdeclare PageControl <=> Page.GetFirstChild(PageId);\n\t\tPageControl.Visible = (CurrentPage == PageNumber);\n\t\tif (PageControl.Visible) {\n\t\t\tPageFound = True;\n\t\t}\n\t}\n\tif (!PageFound && _BrowseAction != 0) {\n\t\tdeclare Text ChunkAction;\n\t\tif (_BrowseAction < 0) {\n\t\t\tChunkAction = _PreviousChunkAction;\n\t\t} else {\n\t\t\tChunkAction = _NextChunkAction;\n\t\t}\n\t\tif (_ChunkActionAppendPageNumber) {\n\t\t\tChunkAction ^= CurrentPage;\n\t\t}\n\t\tTriggerPageAction(ChunkAction);\n\t}\n\tif (_PageLabelId == " . Builder::EMPTY_STRING . ") return;\n\tdeclare PageLabel <=> (Page.GetFirstChild(_PageLabelId) as CMlLabel);\n\tif (PageLabel == Null) return;\n\tPageLabel.Value = CurrentPage^\"/\"^_MaxPageNumber;\n}"; $script->addScriptFunction($updatePageFunction, $functionText); return $this; }
public function testRender() { $domDocument = new \DOMDocument(); $label = new Label("test.label"); $label->clearAlign()->setText("some-text")->setTextId("some-id")->setTextPrefix("some-prefix")->setTextEmboss(true)->setTranslate(true)->setMaxLines(42)->setOpacity(0.5)->setAction("some-action")->setActionKey(42)->setUrl("some.url")->setUrlId("some.urlid")->setManialink("some-manialink")->setManialinkId("some-manialinkid")->setAutoNewLine(true)->setScriptEvents(true)->setStyle("some-style")->setTextSize(42)->setTextFont("some-font")->setTextColor("some-color")->setAreaColor("some-color")->setAreaFocusColor("some-color"); $domElement = $label->render($domDocument); $domDocument->appendChild($domElement); $this->assertEquals("<?xml version=\"1.0\"?>\n<label id=\"test.label\" text=\"some-text\" textid=\"some-id\" textprefix=\"some-prefix\" textemboss=\"1\" translate=\"1\" maxlines=\"42\" opacity=\"0.5\" action=\"some-action\" actionkey=\"42\" url=\"some.url\" urlid=\"some.urlid\" manialink=\"some-manialink\" manialinkid=\"some-manialinkid\" autonewline=\"1\" scriptevents=\"1\" style=\"some-style\" textsize=\"42\" textfont=\"some-font\" textcolor=\"some-color\" focusareacolor1=\"some-color\" focusareacolor2=\"some-color\"/>\n", $domDocument->saveXML()); }