Override to display additional options in the dialog.<p>

@return html code to display additional options
14388
public String buildOptions() {

        StringBuffer result = new StringBuffer(128);

        result.append("<input type='checkbox' name='");
        result.append(PARAM_READTREE);
        result.append("' value='true' onclick=\"reloadReport();\"");
        if (Boolean.valueOf(getParamReadtree()).booleanValue()) {
            result.append(" checked='checked'");
        }
        result.append(">&nbsp;");
        result.append(key(Messages.GUI_DELETED_RESOURCES_READ_TREE_0));

        return result.toString();
    }
346727
protected void showElements() {
        view.clear(); 
        for (final Entry entry : entries) {
            final boolean selected = this.value == null || entry.getValue().equals(this.value);
            view.add(entry.getUri(), this.imageWidth, this.imageHeight, entry.getHeading(), entry.getText(), selected, () -> {
                ImageListEditor.this.setValue(entry.getValue(), true);
            });
         }
    }
450770
public function getCMSFields()
    {
        // Obtain Field Objects (from parent):
        
        $fields = parent::getCMSFields();
        
        // Create Main Fields:
        
        $fields->addFieldToTab(
            'Root.Main',
            HTMLEditorField::create(
                'Content',
                $this->fieldLabel('Content')
            ),
            'LinkTo'
        );
        
        // Create Options Fields:
        
        $fields->addFieldToTab(
            'Root.Options',
            FieldSection::create(
                'ContentOptions',
                $this->fieldLabel('ContentOptions'),
                [
                    DropdownField::create(
                        'LinkMode',
                        $this->fieldLabel('LinkMode'),
                        $this->getLinkModeOptions()
                    ),
                    TextField::create(
                        'ButtonLabel',
                        $this->fieldLabel('ButtonLabel')
                    )
                ]
            )
        );
        
        // Answer Field Objects:
        
        return $fields;
    }
583095
@Override
	public final String getMessage() {
        String additional = additionalInfo();
        return additional == null ? super.getMessage() : super.getMessage() + ": " + additional;
	}
437872
public void displayDialog() throws Exception {

        Map<String, String[]> params = initAdminTool();

        // explorer view dialogs
        if (CmsExplorerDialog.EXPLORER_TOOLS.contains(getCurrentToolPath())) {
            if (getAction() == CmsDialog.ACTION_CANCEL) {
                actionCloseDialog();
                return;
            }
            getToolManager().jspForwardPage(this, CmsToolManager.ADMINVIEW_ROOT_LOCATION + "/tool-fs.jsp", params);
            return;
        }

        // real tool
        if (!getAdminTool().getHandler().getLink().equals(getCms().getRequestContext().getUri())) {
            getToolManager().jspForwardPage(this, getAdminTool().getHandler().getLink(), params);
            return;
        }

        // just grouping
        if (getAction() == CmsDialog.ACTION_CANCEL) {
            actionCloseDialog();
            return;
        }

        JspWriter out = getJsp().getJspContext().getOut();
        out.print(htmlStart());
        out.print(bodyStart(null));
        out.print(dialogStart());
        out.print(dialogContentStart(getParamTitle()));
        out.print(dialogContentEnd());
        out.print(dialogEnd());
        out.print(bodyEnd());
        out.print(htmlEnd());
    }
1214955
public void showEditableListButtons() {

        m_checkingEditables = true;
        if (m_editables == null) {
            m_editables = new HashMap<Element, CmsListCollectorEditor>();
            List<Element> editables = getEditableElements();
            if ((editables != null) && (editables.size() > 0)) {
                for (Element editable : editables) {
                    addListCollectorEditorButtons(editable);
                }
            }
        } else {

            Iterator<Entry<Element, CmsListCollectorEditor>> it = m_editables.entrySet().iterator();
            while (it.hasNext()) {
                Entry<Element, CmsListCollectorEditor> entry = it.next();
                CmsListCollectorEditor editor = entry.getValue();
                if (!editor.isValid()) {
                    editor.removeFromParent();
                    it.remove();
                } else {
                    if (CmsDomUtil.hasDimension(editor.getElement().getParentElement())) {
                        editor.setParentHasDimensions(true);
                        editor.setPosition(
                            CmsDomUtil.getEditablePosition(entry.getValue().getMarkerTag()),
                            getElement());
                    } else {
                        editor.setParentHasDimensions(false);
                    }
                }
            }
            List<Element> editables = getEditableElements();
            if (editables.size() > m_editables.size()) {
                for (Element editable : editables) {
                    if (!m_editables.containsKey(editable)) {
                        addListCollectorEditorButtons(editable);
                    }
                }
            }
        }

        boolean editableContainer = true;
        if (m_parent instanceof CmsContainerPageContainer) {
            editableContainer = CmsContainerpageController.get().isContainerEditable(m_parent);
        }
        for (CmsListCollectorEditor editor : m_editables.values()) {
            editor.updateVisibility(editableContainer);
        }

        m_checkingEditables = false;
        resetNodeInsertedHandler();
    }
1318484
protected String htmlEnd() {

        StringBuffer html = new StringBuffer(512);
        html.append("\t\t\t</td></tr>\n");
        html.append("\t\t</table>\n");
        if (isBoxed()) {
            html.append(getWp().dialogBlock(CmsWorkplace.HTML_END, m_name.key(getWp().getLocale()), false));
        }
        html.append("</div>\n");
        return html.toString();
    }
681515
protected void openNewDialog() {

        final Window window = CmsBasicDialog.prepareWindow(DialogWidth.wide);
        CmsBasicDialog dialog = new CmsNewElementDialog(m_cms, m_stateBean.getPath(), window, this);
        window.setContent(dialog);
        window.setCaption(CmsVaadinUtils.getMessageText(Messages.GUI_USERMANAGEMENT_ADD_ELEMENT_0));
        A_CmsUI.get().addWindow(window);
    }
1079536
public static void showDialog() {

        final CmsPopup popup = new CmsPopup(
            Messages.get().key(Messages.GUI_PASSWORD_CHANGE_TITLE_1, CmsCoreProvider.get().getUserInfo().getName()));
        popup.setModal(true);
        popup.setGlassEnabled(true);
        CmsPushButton okButton = new CmsPushButton();
        okButton.setButtonStyle(ButtonStyle.TEXT, ButtonColor.RED);
        okButton.setText(Messages.get().key(Messages.GUI_OK_0));
        okButton.setUseMinWidth(true);
        CmsPushButton cancelButton = new CmsPushButton();
        cancelButton.setButtonStyle(ButtonStyle.TEXT, ButtonColor.BLUE);
        cancelButton.setText(Messages.get().key(Messages.GUI_CANCEL_0));
        cancelButton.setUseMinWidth(true);
        popup.addButton(cancelButton);
        popup.addButton(okButton);

        Runnable finishAction = new Runnable() {

            public void run() {

                popup.hide();
            }
        };
        final CmsChangePasswordWidget passwordWidget = new CmsChangePasswordWidget(finishAction);
        okButton.addClickHandler(new ClickHandler() {

            public void onClick(ClickEvent e) {

                passwordWidget.changePassword();
            }
        });

        cancelButton.addClickHandler(new ClickHandler() {

            public void onClick(ClickEvent e) {

                popup.hide();
            }
        });
        popup.setMainContent(passwordWidget);
        popup.center();

    }
686829
@Override
    protected void defineWidgets() {

        super.defineWidgets();

        // set default value if field is new
        if (m_field.getName() == null) {
            m_field.setStored(true);
            m_field.setIndexed(true);
            m_field.setDisplayed(true);
        }

        // widgets to display
        // new indexsource
        if (m_field.getName() == null) {
            addWidget(new CmsWidgetDialogParameter(m_field, "name", PAGES[0], new CmsInputWidget()));
        } else {
            addWidget(new CmsWidgetDialogParameter(m_field, "name", PAGES[0], new CmsDisplayWidget()));
        }
        addWidget(
            new CmsWidgetDialogParameter(
                this,
                "indexed",
                "true",
                PAGES[0],
                new CmsSelectWidget(getTokenizedWidgetConfiguration()),
                1,
                1));
        addWidget(new CmsWidgetDialogParameter(m_field, "stored", "true", PAGES[0], new CmsCheckboxWidget(), 1, 1));
        addWidget(new CmsWidgetDialogParameter(m_field, "inExcerpt", "", PAGES[0], new CmsCheckboxWidget(), 0, 1));
        addWidget(
            new CmsWidgetDialogParameter(
                m_field,
                "displayNameForConfiguration",
                "",
                PAGES[0],
                new CmsInputWidget(),
                0,
                1));
        addWidget(new CmsWidgetDialogParameter(m_field, "boostDisplay", "", PAGES[0], new CmsInputWidget(), 0, 1));
        addWidget(new CmsWidgetDialogParameter(m_field, "defaultValue", "", PAGES[0], new CmsInputWidget(), 0, 1));
    }
1018676
public String[] getSelectOptions() {
        List<WebElement> optionList = getElement().findElements(By.tagName("option"));
        String[] optionArray = new String[optionList.size()];
        for (int i = 0; i < optionList.size(); i++) {
            optionArray[i] = optionList.get(i).getText();
        }
        return optionArray;
    }
668720
public void displayDialog() throws Exception {

        if (getAction() == ACTION_CANCEL) {
            actionCloseDialog();
        }
        CmsFile resource1 = CmsResourceComparisonDialog.readFile(
            getCms(),
            new CmsUUID(getParamId1()),
            getParamVersion1());
        CmsFile resource2 = CmsResourceComparisonDialog.readFile(
            getCms(),
            new CmsUUID(getParamId2()),
            getParamVersion2());
        String linkTarget1 = new String(resource1.getContents());
        String linkTarget2 = new String(resource2.getContents());
        JspWriter out = getJsp().getJspContext().getOut();
        out.println(dialogBlockStart(key(Messages.GUI_COMPARE_CONTENT_0)));
        out.println(dialogContentStart(null));
        out.println("<table cellpadding='0' cellspacing='0' border='0' class='maxwidth'><tr align='center'><th>");
        out.println(
            key(
                Messages.GUI_COMPARE_VERSION_1,
                new String[] {CmsHistoryListUtil.getDisplayVersion(m_paramVersion1, getLocale())}));
        out.println("</th><th>");
        out.println(
            key(
                Messages.GUI_COMPARE_VERSION_1,
                new String[] {CmsHistoryListUtil.getDisplayVersion(m_paramVersion2, getLocale())}));
        out.println("</th></tr>");
        out.print("<tr><td><a href=\"");
        out.print(linkTarget1);
        out.print("\">");
        out.print(linkTarget1);
        out.print("</a>");
        out.print("</td><td width='50%'>\n");
        out.print("<a href=\"");
        out.print(linkTarget2);
        out.print("\">");
        out.print(linkTarget2);
        out.print("</a>");
        out.println("</td></td></table>");
        out.println(dialogBlockEnd());
        out.println(dialogContentEnd());
        out.println(dialogEnd());
        out.println(bodyEnd());
        out.println(htmlEnd());
    }
133977
protected List<I_CmsSearchConfigurationSortOption> getSortOptions() {

        List<I_CmsSearchConfigurationSortOption> options = new LinkedList<I_CmsSearchConfigurationSortOption>();
        try {
            JSONArray sortOptions = m_configObject.getJSONArray(JSON_KEY_SORTOPTIONS);
            for (int i = 0; i < sortOptions.length(); i++) {
                I_CmsSearchConfigurationSortOption option = parseSortOption(sortOptions.getJSONObject(i));
                if (option != null) {
                    options.add(option);
                }
            }
        } catch (JSONException e) {
            if (null == m_baseConfig) {
                if (LOG.isInfoEnabled()) {
                    LOG.info(Messages.get().getBundle().key(Messages.LOG_NO_SORT_CONFIG_0), e);
                }
            } else {
                options = m_baseConfig.getSortConfig().getSortOptions();
            }
        }
        return options;
    }
883521
public void actionToggleElement() {

        // get the necessary parameters to add/remove the element
        int index = 0;
        try {
            index = Integer.parseInt(getParamElementIndex());
        } catch (Exception e) {
            // ignore, should not happen
        }
        String name = getParamElementName();
        // get the base parameter definition
        CmsWidgetDialogParameter base = getParameterDefinition(name);
        if (base != null) {
            // the requested parameter is valid for this dialog
            List<CmsWidgetDialogParameter> params = getParameters().get(name);
            if (getAction() == ACTION_ELEMENT_REMOVE) {
                // remove the value
                params.remove(index);
            } else {
                List<CmsWidgetDialogParameter> sequence = getParameters().get(base.getName());
                if (sequence.size() > 0) {
                    // add the new value after the clicked element
                    index = index + 1;
                }
                CmsWidgetDialogParameter newParam = new CmsWidgetDialogParameter(base, index);
                params.add(index, newParam);
            }
            // reset all index value in the parameter list
            for (int i = 0; i < params.size(); i++) {
                CmsWidgetDialogParameter param = params.get(i);
                param.setindex(i);
            }
        }
    }
473015
public String dialogTabRow() {

        StringBuffer result = new StringBuffer(512);
        StringBuffer lineRow = new StringBuffer(256);
        List<String> tabNames = getTabs();
        if (tabNames.size() < 2) {
            // less than 2 tabs present, do not show them and create a border line
            result.append(
                "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"maxwidth\" style=\"empty-cells: show;\">\n");
            result.append("<tr>\n");
            result.append("\t<td class=\"dialogtabrow\"></td>\n");
            result.append("</tr>\n");
            result.append("</table>\n");
            return result.toString();
        }
        Iterator<String> i = tabNames.iterator();
        int counter = 1;
        int activeTab = getActiveTab();
        result.append(
            "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"maxwidth\" style=\"empty-cells: show;\">\n");
        result.append("<tr>\n");
        while (i.hasNext()) {
            // build a tab entry
            String curTab = i.next();
            String curTabLink = "javascript:openTab('" + counter + "');";
            if (counter == activeTab) {
                // create the currently active tab
                int addDelta = 0;
                result.append("\t<td class=\"dialogtabactive\"");
                if (counter == 1) {
                    // for first tab, add special html for correct layout
                    result.append(" style=\"border-left-width: 1px;\"");
                    addDelta = 1;
                }
                result.append(">");
                result.append("<span class=\"tabactive\" unselectable=\"on\"");
                result.append(" style=\"width: " + ((curTab.length() * 8) + addDelta) + "px;\"");
                result.append(">");
                result.append(curTab);
                result.append("</span></td>\n");
                lineRow.append("\t<td></td>\n");
            } else {
                // create an inactive tab
                result.append("\t<td class=\"dialogtab\" unselectable=\"on\">");
                result.append("<a class=\"tab\" href=\"" + curTabLink + "\"");
                result.append(" style=\"width: " + (curTab.length() * 8) + "px;\"");
                result.append(">");
                result.append(curTab);
                result.append("</a></td>\n");
                lineRow.append("\t<td class=\"dialogtabrow\"></td>\n");
            }

            counter++;
        }
        result.append("\t<td class=\"maxwidth\"></td>\n");
        result.append("</tr>\n");
        result.append("<tr>\n");
        result.append(lineRow);
        result.append("\t<td class=\"dialogtabrow\"></td>\n");
        result.append("</tr>\n");
        result.append("</table>\n");
        return result.toString();
    }
567678
@Override
    protected void defineWidgets() {

        super.defineWidgets();

        // widgets to display in first block (like edit view)
        addWidget(new CmsWidgetDialogParameter(getSearchIndexIndex(), "name", PAGES[0], new CmsDisplayWidget()));
        addWidget(new CmsWidgetDialogParameter(getSearchIndexIndex(), "rebuildMode", PAGES[0], new CmsDisplayWidget()));
        addWidget(new CmsWidgetDialogParameter(getSearchIndexIndex(), "locale", PAGES[0], new CmsDisplayWidget()));
        addWidget(new CmsWidgetDialogParameter(getSearchIndexIndex(), "project", PAGES[0], new CmsDisplayWidget()));
        addWidget(new CmsWidgetDialogParameter(
            getSearchIndexIndex(),
            "fieldConfigurationName",
            PAGES[0],
            new CmsDisplayWidget()));
    }
1234412
protected String htmlToolBar() {

        boolean showToolBar = getMetadata().isSearchable();
        Iterator<CmsListMultiAction> itMultiActions = getMetadata().getMultiActions().iterator();
        while (!showToolBar && itMultiActions.hasNext()) {
            CmsListMultiAction multiAction = itMultiActions.next();
            showToolBar = showToolBar || multiAction.isVisible();
        }
        if (!showToolBar) {
            // prevent empty table if there is nothing to display
            return "";
        }
        StringBuffer html = new StringBuffer(512);
        html.append("<table width='100%' cellspacing='0' style='margin-bottom: 5px'>\n");
        html.append("\t<tr>\n");
        html.append(m_metadata.htmlSearchBar());
        html.append(m_metadata.htmlMultiActionBar());
        html.append("\t</tr>\n");
        html.append("</table>\n");
        return html.toString();
    }