fml update
This commit is contained in:
@ -693,7 +693,43 @@ if (Event.Control.HasClass(\"" . self::CLASS_MENUBUTTON . "\")) {
|
||||
$this->setInclude('TextLib', 'TextLib');
|
||||
$pagesNumberPrefix = self::CLASS_PAGE . '-P';
|
||||
$pagesNumberPrefixLength = strlen($pagesNumberPrefix);
|
||||
$pagesScript = "
|
||||
|
||||
$pagesInitScript = "
|
||||
declare PageLabelControls = CMlControl[];
|
||||
Page.GetClassChildren(\"" . self::CLASS_PAGELABEL . "\", Page.MainFrame, True);
|
||||
foreach (PageLabelControl in Page.GetClassChildren_Result) {
|
||||
declare Temp = PageLabelControl;
|
||||
PageLabelControls.add(Temp);
|
||||
}
|
||||
declare FML_MinPageNumber for This = Integer[Text];
|
||||
declare FML_MaxPageNumber for This = Integer[Text];
|
||||
declare FML_PageNumber for This = Integer[Text];
|
||||
foreach (PageLabelControl in PageLabelControls) {
|
||||
foreach (ControlClass in PageLabelControl.ControlClasses) {
|
||||
Page.GetClassChildren(ControlClass, Page.MainFrame, True);
|
||||
foreach (PageControl in Page.GetClassChildren_Result) {
|
||||
if (!PageControl.HasClass(\"" . self::CLASS_PAGE . "\")) continue;
|
||||
foreach (PageControlClass in PageControl.ControlClasses) {
|
||||
if (TextLib::SubText(PageControlClass, 0, {$pagesNumberPrefixLength}) != \"{$pagesNumberPrefix}\") continue;
|
||||
declare PageNumber = TextLib::ToInteger(TextLib::SubText(PageControlClass, {$pagesNumberPrefixLength}, TextLib::Length(PageControlClass)));
|
||||
if (!FML_MinPageNumber.existskey(ControlClass) || PageNumber < FML_MinPageNumber[ControlClass]) {
|
||||
FML_MinPageNumber[ControlClass] = PageNumber;
|
||||
}
|
||||
if (!FML_MaxPageNumber.existskey(ControlClass) || PageNumber > FML_MaxPageNumber[ControlClass]) {
|
||||
FML_MaxPageNumber[ControlClass] = PageNumber;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (FML_MinPageNumber.existskey(ControlClass)) {
|
||||
FML_PageNumber[ControlClass] = FML_MinPageNumber[ControlClass];
|
||||
declare PageLabel <=> (PageLabelControl as CMlLabel);
|
||||
PageLabel.Value = FML_PageNumber[ControlClass]^\"/\"^FML_MaxPageNumber[ControlClass];
|
||||
}
|
||||
}
|
||||
}";
|
||||
|
||||
$pagesClickScript = "
|
||||
if (Event.Control.HasClass(\"" . self::CLASS_PAGER . "\")) {
|
||||
declare Text PagesId;
|
||||
declare Integer PagingAction;
|
||||
@ -710,28 +746,9 @@ if (Event.Control.HasClass(\"" . self::CLASS_PAGER . "\")) {
|
||||
}
|
||||
}
|
||||
}
|
||||
declare FML_PagesLastScriptStart for This = FML_ScriptStart;
|
||||
declare FML_MinPageNumber for This = Integer[Text];
|
||||
declare FML_MaxPageNumber for This = Integer[Text];
|
||||
declare FML_PageNumber for This = Integer[Text];
|
||||
if (FML_PagesLastScriptStart != FML_ScriptStart || !FML_PageNumber.existskey(PagesId) || !FML_MinPageNumber.existskey(PagesId) || !FML_MaxPageNumber.existskey(PagesId)) {
|
||||
Page.GetClassChildren(PagesId, Page.MainFrame, True);
|
||||
foreach (PageControl in Page.GetClassChildren_Result) {
|
||||
if (!PageControl.HasClass(\"" . self::CLASS_PAGE . "\")) continue;
|
||||
foreach (ControlClass in PageControl.ControlClasses) {
|
||||
if (TextLib::SubText(ControlClass, 0, {$pagesNumberPrefixLength}) != \"{$pagesNumberPrefix}\") continue;
|
||||
declare PageNumber = TextLib::ToInteger(TextLib::SubText(ControlClass, {$pagesNumberPrefixLength}, TextLib::Length(ControlClass)));
|
||||
if (!FML_MinPageNumber.existskey(PagesId) || PageNumber < FML_MinPageNumber[PagesId]) {
|
||||
FML_MinPageNumber[PagesId] = PageNumber;
|
||||
}
|
||||
if (!FML_MaxPageNumber.existskey(PagesId) || PageNumber > FML_MaxPageNumber[PagesId]) {
|
||||
FML_MaxPageNumber[PagesId] = PageNumber;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
FML_PageNumber[PagesId] = FML_MinPageNumber[PagesId];
|
||||
}
|
||||
FML_PageNumber[PagesId] += PagingAction;
|
||||
if (FML_PageNumber[PagesId] < FML_MinPageNumber[PagesId]) {
|
||||
FML_PageNumber[PagesId] = FML_MinPageNumber[PagesId];
|
||||
@ -739,7 +756,6 @@ if (Event.Control.HasClass(\"" . self::CLASS_PAGER . "\")) {
|
||||
if (FML_PageNumber[PagesId] > FML_MaxPageNumber[PagesId]) {
|
||||
FML_PageNumber[PagesId] = FML_MaxPageNumber[PagesId];
|
||||
}
|
||||
FML_PagesLastScriptStart = FML_ScriptStart;
|
||||
Page.GetClassChildren(PagesId, Page.MainFrame, True);
|
||||
foreach (PageControl in Page.GetClassChildren_Result) {
|
||||
if (!PageControl.HasClass(\"" . self::CLASS_PAGE . "\")) continue;
|
||||
@ -758,7 +774,9 @@ if (Event.Control.HasClass(\"" . self::CLASS_PAGER . "\")) {
|
||||
PageLabel.Value = FML_PageNumber[PagesId]^\"/\"^FML_MaxPageNumber[PagesId];
|
||||
}
|
||||
}";
|
||||
$pagesLabels = Builder::getLabelImplementationBlock(self::LABEL_MOUSECLICK, $pagesScript);
|
||||
|
||||
$pagesLabels = Builder::getLabelImplementationBlock(self::LABEL_ONINIT, $pagesInitScript);
|
||||
$pagesLabels .= Builder::getLabelImplementationBlock(self::LABEL_MOUSECLICK, $pagesClickScript);
|
||||
return $pagesLabels;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user