Ejemplo n.º 1
0
def publishDraggedStyle(explorer, layerName, catalogItem, name=None):
    catalog = catalogItem.element
    ogcat = OGCatalog(catalog)
    toUpdate = [catalogItem.stylesItem]
    if name is not None:
        stylename = name
    else:
        styles = [style.name for style in catalog.get_styles()]
        try:
            stylename = getGSStyleName(name=xmlNameFixUp(layerName),
                                       names=styles,
                                       unique=False)
        except UserCanceledOperation:
            return False
    return explorer.run(ogcat.publishStyle,
                        "Publish style from layer '" + layerName + "'",
                        toUpdate, layerName, True, stylename)
Ejemplo n.º 2
0
def publishDraggedStyle(explorer, layerName, catalogItem, name=None):
    catalog = catalogItem.element
    ogcat = OGCatalog(catalog)
    toUpdate = [catalogItem.stylesItem]
    if name is not None:
        stylename = name
    else:
        styles = [style.name for style in catalog.get_styles()]
        try:
            stylename = getGSStyleName(name=xmlNameFixUp(layerName),
                                       names=styles,
                                       unique=False)
        except UserCanceledOperation:
            return False
    return explorer.run(ogcat.publishStyle,
                        "Publish style from layer '" + layerName + "'",
                        toUpdate,
                        layerName, True, stylename)
Ejemplo n.º 3
0
def addDraggedStyleToLayer(tree, explorer, styleItem, layerItem):
    catalog = layerItem.element.catalog
    catItem = tree.findFirstItem(catalog)
    toUpdate = [catItem.layersItem]
    if isinstance(styleItem, QgsStyleItem):
        styleName = styleItem.element.name()  # = layer name
        styles = [style.name for style in catalog.get_styles()]
        try:
            stylname = getGSStyleName(name=xmlNameFixUp(styleName),
                                      names=styles,
                                      unique=False)
        except UserCanceledOperation:
            return False
        if not publishDraggedStyle(explorer, styleName, catItem,
                                   name=stylname):
            return False
        style = catalog.get_style(stylname)
        toUpdate.append(catItem.stylesItem)
    else:
        style = styleItem.element
    layer = layerItem.element

    if not hasattr(layer, "default_style") or layer.default_style is None:
        # if default style is missing, make dragged style the layer's default
        # without a default style, some GeoServer operations may fail
        layer.default_style = style
    else:
        # add to layer's additional styles
        styles = layer.styles
        styles.append(style)
        layer.styles = styles

    return explorer.run(
        catalog.save,
        "Add style '" + style.name + "' to layer '" + layer.name + "'",
        toUpdate,
        layer)
Ejemplo n.º 4
0
def addDraggedStyleToLayer(tree, explorer, styleItem, layerItem):
    catalog = layerItem.element.catalog
    catItem = tree.findFirstItem(catalog)
    toUpdate = [catItem.layersItem]
    if isinstance(styleItem, QgsStyleItem):
        styleName = styleItem.element.name()  # = layer name
        styles = [style.name for style in catalog.get_styles()]
        try:
            stylname = getGSStyleName(name=xmlNameFixUp(styleName),
                                      names=styles,
                                      unique=False)
        except UserCanceledOperation:
            return False
        if not publishDraggedStyle(explorer, styleName, catItem,
                                   name=stylname):
            return False
        style = catalog.get_style(stylname)
        toUpdate.append(catItem.stylesItem)
    else:
        style = styleItem.element
    layer = layerItem.element

    if not hasattr(layer, "default_style") or layer.default_style is None:
        # if default style is missing, make dragged style the layer's default
        # without a default style, some GeoServer operations may fail
        layer.default_style = style
    else:
        # add to layer's additional styles
        styles = layer.styles
        styles.append(style)
        layer.styles = styles

    return explorer.run(
        catalog.save,
        "Add style '" + style.name + "' to layer '" + layer.name + "'",
        toUpdate, layer)