Exemplo n.º 1
0
    def __init__(self,
                 parentBone,
                 tag,
                 isEditMode,
                 readonly=False,
                 multiLine=False,
                 *args,
                 **kwargs):
        super(Tag, self).__init__(*args, **kwargs)
        self["class"].append("tag")

        self.parentBone = parentBone

        if multiLine:
            self.input = html5.Textarea()
        else:
            self.input = html5.Input()
            self.input["type"] = "text"

        self.input["value"] = tag
        self.appendChild(self.input)

        if readonly:
            self.input["readonly"] = True
        else:
            self["draggable"] = True
            self.sinkEvent("onDrop", "onDragOver", "onDragStart", "onDragEnd")

            delBtn = html5.ext.Button(translate("Delete"), self.onDelBtnClick)
            delBtn["class"].append("icon delete tag")
            self.appendChild(delBtn)
Exemplo n.º 2
0
    def __init__(self,
                 text,
                 value="",
                 successHandler=None,
                 abortHandler=None,
                 successLbl="OK",
                 abortLbl="Cancel",
                 *args,
                 **kwargs):
        super(TextareaDialog, self).__init__(*args, **kwargs)
        self["class"].append("textareadialog")
        self.successHandler = successHandler
        self.abortHandler = abortHandler

        span = html5.Span()
        span.element.innerHTML = text
        self.appendChild(span)
        self.inputElem = html5.Textarea()
        self.inputElem["value"] = value
        self.appendChild(self.inputElem)
        okayBtn = Button(successLbl, self.onOkay)
        okayBtn["class"].append("btn_okay")
        self.appendChild(okayBtn)
        cancelBtn = Button(abortLbl, self.onCancel)
        cancelBtn["class"].append("btn_cancel")
        self.appendChild(cancelBtn)
        self.sinkEvent("onkeydown")
        self.inputElem.focus()
Exemplo n.º 3
0
Arquivo: text.py Projeto: Xeon2003/vi
    def __init__(self,
                 moduleName,
                 boneName,
                 readOnly,
                 isPlainText,
                 languages=None,
                 descrHint=None,
                 *args,
                 **kwargs):
        super(TextEditBone, self).__init__(*args, **kwargs)
        self.boneName = boneName
        self.readOnly = readOnly
        self.selectedLang = False
        self.isPlainText = isPlainText
        self.languages = languages
        self.descrHint = descrHint
        self.currentEditor = None
        self.valuesdict = dict()

        ##multilangbone
        if self.languages:
            if "currentlanguage" in conf and conf[
                    "currentlanguage"] in self.languages:
                self.selectedLang = conf["currentlanguage"]
            elif len(self.languages) > 0:
                self.selectedLang = self.languages[0]

            self.langButContainer = html5.Div()
            self.langButContainer["class"].append("languagebuttons")

            for lang in self.languages:
                abut = html5.ext.Button(lang, self.changeLang)
                abut["value"] = lang
                self.langButContainer.appendChild(abut)

            self.appendChild(self.langButContainer)
            self.refreshLangButContainer()

        self.input = html5.Textarea()
        self.appendChild(self.input)
        self.previewDiv = html5.Div()
        self.previewDiv["class"].append("preview")
        self.appendChild(self.previewDiv)

        if self.isPlainText:
            self.previewDiv["style"]["display"] = "none"
        else:
            self.input["style"]["display"] = "none"

        if readOnly:
            self.input["readonly"] = True

        elif not readOnly and not self.isPlainText:
            openEditorBtn = html5.ext.Button(translate("Edit Text"),
                                             self.openTxt)
            openEditorBtn["class"].append("textedit")
            openEditorBtn["class"].append("icon")
            self.appendChild(openEditorBtn)

        self.sinkEvent("onClick")
Exemplo n.º 4
0
    def __init__(self,
                 moduleName,
                 boneName,
                 readOnly,
                 isPlainText,
                 languages=None,
                 descrHint=None,
                 *args,
                 **kwargs):
        super(TextEditBone, self).__init__(*args, **kwargs)
        self.moduleName = moduleName
        self.boneName = boneName
        self.readOnly = readOnly
        self.selectedLang = False
        self.isPlainText = isPlainText
        self.languages = languages
        self.descrHint = descrHint
        self.value = {}

        # multilangbone
        if self.languages:
            if "currentlanguage" in conf and conf[
                    "currentlanguage"] in self.languages:
                self.selectedLang = conf["currentlanguage"]
            elif len(self.languages) > 0:
                self.selectedLang = self.languages[0]

            self.langButContainer = html5.Div()
            self.langButContainer["class"].append("languagebuttons")

            for lang in self.languages:
                abut = html5.ext.Button(lang, self.changeLang)
                abut["value"] = lang
                self.langButContainer.appendChild(abut)

            self.appendChild(self.langButContainer)
            self._refreshBtnStates()

        if not readOnly and not self.isPlainText:
            self.input = HtmlEditor()
            self.input.boneName = self.boneName
        else:
            self.input = html5.Textarea()
            if readOnly:
                self.input["readonly"] = True

        self.appendChild(self.input)

        self.sinkEvent("onKeyUp")

        self.changeEvent = EventDispatcher("boneChange")
Exemplo n.º 5
0
    def __init__(self,
                 moduleName,
                 boneName,
                 readOnly,
                 multiple=False,
                 languages=None,
                 multiLine=False,
                 *args,
                 **kwargs):
        super(StringEditBone, self).__init__(*args, **kwargs)
        self.moduleName = moduleName
        self.boneName = boneName
        self.readOnly = readOnly
        self.multiple = multiple
        self.languages = languages
        self.boneName = boneName
        self.currentTagToDrag = None
        self.currentLanguage = None

        if self.languages and self.multiple:
            self["class"].append("is_translated")
            self["class"].append("is_multiple")
            self.languagesContainer = html5.Div()
            self.appendChild(self.languagesContainer)
            self.buttonContainer = html5.Div()
            self.buttonContainer["class"] = "languagebuttons"
            self.appendChild(self.buttonContainer)
            self.langEdits = {}
            self.langBtns = {}

            for lang in self.languages:
                tagContainer = html5.Div()
                tagContainer["class"].append("lang_%s" % lang)
                tagContainer["class"].append("tagcontainer")
                tagContainer["style"]["display"] = "none"

                langBtn = html5.ext.Button(lang,
                                           callback=self.onLangBtnClicked)
                langBtn.lang = lang
                self.buttonContainer.appendChild(langBtn)

                if not self.readOnly:
                    addBtn = html5.ext.Button(translate("New"),
                                              callback=self.onBtnGenTag)
                    addBtn["class"].append("icon new tag")
                    addBtn.lang = lang
                    tagContainer.appendChild(addBtn)

                self.languagesContainer.appendChild(tagContainer)
                self.langEdits[lang] = tagContainer
                self.langBtns[lang] = langBtn

            self.setLang(self.languages[0])

        elif self.languages and not self.multiple:
            self["class"].append("is_translated")
            self.languagesContainer = html5.Div()
            self.appendChild(self.languagesContainer)
            self.buttonContainer = html5.Div()
            self.buttonContainer["class"] = "languagebuttons"
            self.appendChild(self.buttonContainer)
            self.langEdits = {}
            self.langBtns = {}

            for lang in self.languages:
                langBtn = html5.ext.Button(lang,
                                           callback=self.onLangBtnClicked)
                langBtn.lang = lang
                self.buttonContainer.appendChild(langBtn)

                if multiLine:
                    inputField = html5.Textarea()
                else:
                    inputField = html5.Input()
                    inputField["type"] = "text"

                inputField["style"]["display"] = "none"
                inputField["class"].append("lang_%s" % lang)

                if self.readOnly:
                    inputField["readonly"] = True

                self.languagesContainer.appendChild(inputField)
                self.langEdits[lang] = inputField
                self.langBtns[lang] = langBtn

            self.setLang(self.languages[0])

        elif not self.languages and self.multiple:
            self["class"].append("is_multiple")
            self.tagContainer = html5.Div()
            self.tagContainer["class"].append("tagcontainer")
            self.appendChild(self.tagContainer)

            if not self.readOnly:
                addBtn = html5.ext.Button(translate("New"),
                                          callback=self.onBtnGenTag)
                addBtn.lang = None
                addBtn["class"].append("icon new tag")

                self.tagContainer.appendChild(addBtn)

        else:  # not languages and not multiple:

            if multiLine:
                self.input = html5.Textarea()
            else:
                self.input = html5.Input()
                self.input["type"] = "text"

            self.appendChild(self.input)

            if self.readOnly:
                self.input["readonly"] = True