protected function Form_Create() { $this->Draggable = new QPanel($this); $this->Draggable->Text = 'Drag me'; $this->Draggable->CssClass = 'draggable'; $this->Draggable->Moveable = true; //$this->Draggable->AddAction(new QDraggable_StopEvent(), new QJavascriptAction("alert('Dragged to ' + ui.position.top + ',' + ui.position.left)")); $this->Draggable->AddAction(new QDraggable_StopEvent(), new QAjaxAction("drag_stop")); // Dropable $this->Droppable = new QPanel($this); $this->Droppable->Text = "Drop here"; //$this->Droppable->AddAction(new QDroppable_DropEvent(), new QJavascriptAction("alert('Dropped ' + ui.draggable.attr('id'))")); $this->Droppable->AddAction(new QDroppable_DropEvent(), new QAjaxAction("droppable_drop")); $this->Droppable->CssClass = 'droppable'; $this->Droppable->Droppable = true; // Resizable $this->Resizable = new QPanel($this); $this->Resizable->CssClass = 'resizable'; $this->Resizable->Resizable = true; $this->Resizable->AddAction(new QResizable_StopEvent(), new QAjaxAction('resizable_stop')); // Selectable $this->Selectable = new QSelectable($this); $this->Selectable->AutoRenderChildren = true; $this->Selectable->CssClass = 'selectable'; for ($i = 1; $i <= 5; ++$i) { $pnl = new QPanel($this->Selectable); $pnl->Text = 'Item ' . $i; $pnl->CssClass = 'selitem'; } $this->Selectable->Filter = 'div.selitem'; $this->Selectable->SelectedItems = array($pnl->ControlId); // pre-select last item $this->Selectable->AddAction(new QSelectable_StopEvent(), new QAjaxAction('selectable_stop')); // Sortable $this->Sortable = new QSortable($this); $this->Sortable->AutoRenderChildren = true; $this->Sortable->CssClass = 'sortable'; for ($i = 1; $i <= 5; ++$i) { $pnl = new QPanel($this->Sortable); $pnl->Text = 'Item ' . $i; $pnl->CssClass = 'sortitem'; } $this->Sortable->Items = 'div.sortitem'; $this->Sortable->AddAction(new QSortable_StopEvent(), new QAjaxAction('sortable_stop')); // Accordion $this->Accordion = new QAccordion($this); $lbl = new QLinkButton($this->Accordion); $lbl->Text = 'Header 1'; $pnl = new QPanel($this->Accordion); $pnl->Text = 'Section 1'; $lbl = new QLinkButton($this->Accordion); $lbl->Text = 'Header 2'; $pnl = new QPanel($this->Accordion); $pnl->Text = 'Section 2'; $lbl = new QLinkButton($this->Accordion); $lbl->Text = 'Header 3'; $pnl = new QPanel($this->Accordion); $pnl->Text = 'Section 3'; $this->Accordion->AddAction(new QChangeEvent(), new QAjaxAction('accordion_change')); // Autocomplete // Both autocomplete controls below will use the mode // "match only on the beginning of the word" QAutocomplete::UseFilter(QAutocomplete::FILTER_STARTS_WITH); // Client-side only autocomplete $this->Autocomplete1 = new QAutocomplete($this); $this->Autocomplete1->Source = self::$LANGUAGES; $this->Autocomplete1->Name = "Standard Autocomplete"; $this->Autocomplete2 = new QAutocomplete($this); $this->Autocomplete2->Source = self::$LANGUAGES; $this->Autocomplete2->AutoFocus = true; $this->Autocomplete2->MustMatch = true; $this->Autocomplete2->Name = "AutoFocus and MustMatch"; // Ajax Autocomplete // Note: To show the little spinner while the ajax search is happening, you // need to define the .ui-autocomplete-loading class in a style sheet. See // header.inc.php for an example. $this->AjaxAutocomplete = new QAutocomplete($this); $this->AjaxAutocomplete->SetDataBinder("update_autocompleteList"); $this->AjaxAutocomplete->AddAction(new QAutocomplete_ChangeEvent(), new QAjaxAction('ajaxautocomplete_change')); $this->AjaxAutocomplete->DisplayHtml = true; $this->AjaxAutocomplete->Name = 'With Html Display'; $this->AjaxAutocomplete2 = new QAutocomplete($this); $this->AjaxAutocomplete2->MultipleValueDelimiter = ','; $this->AjaxAutocomplete2->SetDataBinder("update_autocompleteList"); $this->AjaxAutocomplete2->Name = 'Multiple selection'; // Button $this->Button = new QJqButton($this); $this->Button->Label = "Click me"; // Label overrides Text $this->Button->AddAction(new QClickEvent(), new QServerAction("button_click")); $this->CheckBox = new QJqCheckBox($this); $this->CheckBox->Text = "CheckBox"; $this->RadioButton = new QJqRadioButton($this); $this->RadioButton->Text = "RadioButton"; $this->IconButton = new QJqButton($this); $this->IconButton->Text = "Sample"; $this->IconButton->ShowText = false; $this->IconButton->Icons = array("primary" => JqIcon::Lightbulb); // Lists $this->CheckList1 = new QCheckBoxList($this); $this->CheckList1->Name = "CheckBoxList with buttonset"; foreach (self::$LANGUAGES as $strLang) { $this->CheckList1->AddItem($strLang); } $this->CheckList1->ButtonMode = QCheckBoxList::ButtonModeSet; $this->CheckList2 = new QCheckBoxList($this); $this->CheckList2->Name = "CheckBoxList with button style"; foreach (self::$LANGUAGES as $strLang) { $this->CheckList2->AddItem($strLang); } $this->CheckList2->ButtonMode = QCheckBoxList::ButtonModeJq; $this->CheckList2->RepeatColumns = 4; $this->RadioList1 = new QRadioButtonList($this); $this->RadioList1->Name = "RadioButtonList with buttonset"; foreach (self::$LANGUAGES as $strLang) { $this->RadioList1->AddItem($strLang); } $this->RadioList1->ButtonMode = QCheckBoxList::ButtonModeSet; $this->RadioList2 = new QRadioButtonList($this); $this->RadioList2->Name = "RadioButtonList with button style"; foreach (self::$LANGUAGES as $strLang) { $this->RadioList2->AddItem($strLang); } $this->RadioList2->ButtonMode = QCheckBoxList::ButtonModeJq; $this->RadioList2->RepeatColumns = 4; // Datepicker $this->Datepicker = new QDatepicker($this); // DatepickerBox $this->DatepickerBox = new QDatepickerBox($this); // Dialog $this->Dialog = new QDialog($this); $this->Dialog->Text = 'a non modal dialog'; $this->Dialog->AddButton('Cancel', 'cancel'); $this->Dialog->AddButton('OK', 'ok'); $this->Dialog->AddAction(new QDialog_ButtonEvent(), new QAjaxAction('dialog_press')); $this->Dialog->AutoOpen = false; $this->btnShowDialog = new QJqButton($this); $this->btnShowDialog->Text = 'Show Dialog'; $this->btnShowDialog->AddAction(new QClickEvent(), new QShowDialog($this->Dialog)); $this->txtDlgTitle = new QTextBox($this); $this->txtDlgTitle->Name = "Set Title To:"; $this->txtDlgTitle->AddAction(new QKeyPressEvent(10), new QAjaxAction('dlgTitle_Change')); $this->txtDlgTitle->AddAction(new QBackspaceKeyEvent(10), new QAjaxAction('dlgTitle_Change')); $this->txtDlgText = new QTextBox($this); $this->txtDlgText->Name = "Set Text To:"; $this->txtDlgText->AddAction(new QKeyPressEvent(10), new QAjaxAction('dlgText_Change')); $this->txtDlgText->AddAction(new QBackspaceKeyEvent(10), new QAjaxAction('dlgText_Change')); // Progressbar $this->Progressbar = new QProgressbar($this); $this->Progressbar->Value = 37; // Slider $this->Slider = new QSlider($this); $this->Slider->AddAction(new QSlider_SlideEvent(), new QJavascriptAction('jQuery("#' . $this->Progressbar->ControlId . '").progressbar ("value", ui.value)')); $this->Slider->AddAction(new QSlider_ChangeEvent(), new QAjaxAction('slider_change')); $this->Slider2 = new QSlider($this); $this->Slider2->Range = true; $this->Slider2->Values = array(10, 50); $this->Slider2->AddAction(new QSlider_ChangeEvent(), new QAjaxAction('slider2_change')); // Tabs $this->Tabs = new QTabs($this); $tab1 = new QPanel($this->Tabs); $tab1->Text = 'First tab is active by default'; $tab2 = new QPanel($this->Tabs); $tab2->Text = 'Tab 2'; $tab3 = new QPanel($this->Tabs); $tab3->Text = 'Tab 3'; $this->Tabs->Headers = array('One', 'Two', 'Three'); }
/** * Create a message dialog. Automatically adds an OK button that closes the dialog. To detect the close, * add an action on the QDialog_CloseEvent. To change the message, use the return value and set ->Text. * To detect a button click, add a QDialog_ButtonEvent. * * If you specify no buttons, a close box in the corner will be created that will just close the dialog. If you * specify just a string in $strButtons, or just one string in the button array, one button will be shown that will just close the message. * * If you specify more than one button, the first button will be the default button (the one pressed if the user presses the return key). In * this case, you will need to detect the button by adding a QDialog_ButtonEvent. You will also be responsible for calling "Close()" on * the dialog after detecting a button. * * @param QForm $objForm // The parent object, which should always be the form itself. * @param string $strMessage // The message * @param string|string[]|null $strButtons * @param string|null $strControlId * @return QDialog */ public static function Alert($strMessage, $strButtons = null, $strControlId = null) { global $_FORM; $objForm = $_FORM; $dlg = new QDialog($objForm, $strControlId); $dlg->Modal = true; $dlg->Resizable = false; $dlg->Text = $strMessage; $dlg->AddAction(new QDialog_CloseEvent(), new QAjaxControlAction($dlg, 'alert_Close')); if ($strButtons) { $dlg->blnHasCloseButton = false; if (is_string($strButtons)) { $dlg->AddCloseButton($strButtons); } elseif (count($strButtons) == 1) { $dlg->AddCloseButton($strButtons[0]); } else { $strButton = array_shift($strButtons); $dlg->AddButton($strButton, null, false, true); // primary button foreach ($strButtons as $strButton) { $dlg->AddButton($strButton); } } } else { $dlg->blnHasCloseButton = true; $dlg->Height = 100; // fix problem with jquery ui dialog making space for buttons that don't exist } $dlg->Open(); return $dlg; }