Exemple #1
0
 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;
 }