public function GetObjectPickerDialog($oPage, $oCurrentObj)
 {
     $sHtml = "<div class=\"wizContainer\" style=\"vertical-align:top;\">\n";
     $oFilter = new DBObjectSearch($this->m_sRemoteClass);
     $this->SetSearchDefaultFromContext($oCurrentObj, $oFilter);
     $oBlock = new DisplayBlock($oFilter, 'search', false);
     $sHtml .= $oBlock->GetDisplay($oPage, "SearchFormToAdd_{$this->m_sAttCode}{$this->m_sNameSuffix}", array('open' => true));
     $sHtml .= "<form id=\"ObjectsAddForm_{$this->m_sAttCode}{$this->m_sNameSuffix}\" OnSubmit=\"return oWidget{$this->m_iInputId}.DoAddObjects(this.id);\">\n";
     $sHtml .= "<div id=\"SearchResultsToAdd_{$this->m_sAttCode}{$this->m_sNameSuffix}\" style=\"vertical-align:top;background: #fff;height:100%;overflow:auto;padding:0;border:0;\">\n";
     $sHtml .= "<div style=\"background: #fff; border:0; text-align:center; vertical-align:middle;\"><p>" . Dict::S('UI:Message:EmptyList:UseSearchForm') . "</p></div>\n";
     $sHtml .= "</div>\n";
     $sHtml .= "<input type=\"hidden\" id=\"count_{$this->m_sAttCode}{$this->m_sNameSuffix}\" value=\"0\"/>";
     $sHtml .= "<input type=\"button\" value=\"" . Dict::S('UI:Button:Cancel') . "\" onClick=\"\$('#dlg_{$this->m_sAttCode}{$this->m_sNameSuffix}').dialog('close');\">&nbsp;&nbsp;<input id=\"btn_ok_{$this->m_sAttCode}{$this->m_sNameSuffix}\" disabled=\"disabled\" type=\"submit\" value=\"" . Dict::S('UI:Button:Add') . "\">";
     $sHtml .= "</div>\n";
     $sHtml .= "</form>\n";
     $oPage->add($sHtml);
     $oPage->add_ready_script("\$('#dlg_{$this->m_sAttCode}{$this->m_sNameSuffix}').dialog({ width: \$(window).width()*0.8, height: \$(window).height()*0.8, autoOpen: false, modal: true, resizeStop: oWidget{$this->m_iInputId}.UpdateSizes });");
     $oPage->add_ready_script("\$('#dlg_{$this->m_sAttCode}{$this->m_sNameSuffix}').dialog('option', {title:'" . addslashes(Dict::Format('UI:AddObjectsOf_Class_LinkedWith_Class', MetaModel::GetName($this->m_sLinkedClass), MetaModel::GetName($this->m_sClass))) . "'});");
     $oPage->add_ready_script("\$('#SearchFormToAdd_{$this->m_sAttCode}{$this->m_sNameSuffix} form').bind('submit.uilinksWizard', oWidget{$this->m_iInputId}.SearchObjectsToAdd);");
     $oPage->add_ready_script("\$('#SearchFormToAdd_{$this->m_sAttCode}{$this->m_sNameSuffix}').resize(oWidget{$this->m_iInputId}.UpdateSizes);");
 }
    public function GetSearchDialog(WebPage $oPage, $sTitle, $oCurrObject = null)
    {
        $sHTML = '<div class="wizContainer" style="vertical-align:top;"><div id="dc_' . $this->iId . '">';
        if ($oCurrObject != null && $this->sAttCode != '') {
            $oAttDef = MetaModel::GetAttributeDef(get_class($oCurrObject), $this->sAttCode);
            $aArgs = array('this' => $oCurrObject);
            $aParams = array('query_params' => $aArgs);
            $oSet = $oAttDef->GetAllowedValuesAsObjectSet($aArgs);
            $oFilter = $oSet->GetFilter();
        } else {
            $aParams = array();
            $oFilter = new DBObjectSearch($this->sTargetClass);
        }
        $oFilter->SetModifierProperty('UserRightsGetSelectFilter', 'bSearchMode', $this->bSearchMode);
        $oBlock = new DisplayBlock($oFilter, 'search', false, $aParams);
        $sHTML .= $oBlock->GetDisplay($oPage, $this->iId, array('open' => true, 'currentId' => $this->iId));
        $sHTML .= "<form id=\"fr_{$this->iId}\" OnSubmit=\"return oACWidget_{$this->iId}.DoOk();\">\n";
        $sHTML .= "<div id=\"dr_{$this->iId}\" style=\"vertical-align:top;background: #fff;height:100%;overflow:auto;padding:0;border:0;\">\n";
        $sHTML .= "<div style=\"background: #fff; border:0; text-align:center; vertical-align:middle;\"><p>" . Dict::S('UI:Message:EmptyList:UseSearchForm') . "</p></div>\n";
        $sHTML .= "</div>\n";
        $sHTML .= "<input type=\"button\" id=\"btn_cancel_{$this->iId}\" value=\"" . Dict::S('UI:Button:Cancel') . "\" onClick=\"\$('#ac_dlg_{$this->iId}').dialog('close');\">&nbsp;&nbsp;";
        $sHTML .= "<input type=\"button\" id=\"btn_ok_{$this->iId}\" value=\"" . Dict::S('UI:Button:Ok') . "\"  onClick=\"oACWidget_{$this->iId}.DoOk();\">";
        $sHTML .= "<input type=\"hidden\" id=\"count_{$this->iId}\" value=\"0\">";
        $sHTML .= "</form>\n";
        $sHTML .= '</div></div>';
        $sDialogTitle = addslashes($sTitle);
        $oPage->add_ready_script(<<<EOF
\t\t\$('#ac_dlg_{$this->iId}').dialog({ width: \$(window).width()*0.8, height: \$(window).height()*0.8, autoOpen: false, modal: true, title: '{$sDialogTitle}', resizeStop: oACWidget_{$this->iId}.UpdateSizes, close: oACWidget_{$this->iId}.OnClose });
\t\t\$('#fs_{$this->iId}').bind('submit.uiAutocomplete', oACWidget_{$this->iId}.DoSearchObjects);
\t\t\$('#dc_{$this->iId}').resize(oACWidget_{$this->iId}.UpdateSizes);
EOF
);
        $oPage->add($sHTML);
    }
 public function GetObjectsSelectionDlg($oPage, $oCurrentObj)
 {
     $sHtml = "<div class=\"wizContainer\" style=\"vertical-align:top;\">\n";
     $oLinksetDef = MetaModel::GetAttributeDef($this->sClass, $this->sAttCode);
     $valuesDef = $oLinksetDef->GetValuesDef();
     if ($valuesDef === null) {
         $oFilter = new DBObjectSearch($this->sLinkedClass);
     } else {
         if (!$valuesDef instanceof ValueSetObjects) {
             throw new Exception('Error: only ValueSetObjects are supported for "allowed_values" in AttributeLinkedSet (' . $this->sClass . '/' . $this->sAttCode . ').');
         }
         $oFilter = DBObjectSearch::FromOQL($valuesDef->GetFilterExpression());
     }
     if ($oCurrentObj != null) {
         $this->SetSearchDefaultFromContext($oCurrentObj, $oFilter);
     }
     $oBlock = new DisplayBlock($oFilter, 'search', false);
     $sHtml .= $oBlock->GetDisplay($oPage, "SearchFormToAdd_{$this->sInputid}", array('open' => true));
     $sHtml .= "<form id=\"ObjectsAddForm_{$this->sInputid}\">\n";
     $sHtml .= "<div id=\"SearchResultsToAdd_{$this->sInputid}\" style=\"vertical-align:top;background: #fff;height:100%;overflow:auto;padding:0;border:0;\">\n";
     $sHtml .= "<div style=\"background: #fff; border:0; text-align:center; vertical-align:middle;\"><p>" . Dict::S('UI:Message:EmptyList:UseSearchForm') . "</p></div>\n";
     $sHtml .= "</div>\n";
     $sHtml .= "<input type=\"hidden\" id=\"count_{$this->sInputid}\" value=\"0\"/>";
     $sHtml .= "<button type=\"button\" class=\"cancel\">" . Dict::S('UI:Button:Cancel') . "</button>&nbsp;&nbsp;<button type=\"button\" class=\"ok\" disabled=\"disabled\">" . Dict::S('UI:Button:Add') . "</button>";
     $sHtml .= "</div>\n";
     $sHtml .= "</form>\n";
     $oPage->add($sHtml);
     //$oPage->add_ready_script("$('#SearchFormToAdd_{$this->sAttCode}{$this->sNameSuffix} form').bind('submit.uilinksWizard', oWidget{$this->sInputId}.SearchObjectsToAdd);");
     //$oPage->add_ready_script("$('#SearchFormToAdd_{$this->sAttCode}{$this->sNameSuffix}').resize(oWidget{$this->siInputId}.UpdateSizes);");
 }