示例#1
0
def publishDraggedLayer(explorer, layer, workspace):
    cat = workspace.catalog
    ogcat = OGCatalog(cat)
    gslayers = [lyr.name for lyr in cat.get_layers()]
    layername = layer.name()
    if qgislayers.isPostGisLayer(layer):
        layername += "_table"
    try:
        lyrname = getGSLayerName(name=xmlNameFixUp(layername),
                                 names=gslayers,
                                 unique=False)
    except UserCanceledOperation:
        return False

    return explorer.run(ogcat.publishLayer,
                        "Publish layer from layer '" + lyrname + "'", [],
                        layer, workspace, True, lyrname)
示例#2
0
def publishDraggedLayer(explorer, layer, workspace):
    cat = workspace.catalog
    ogcat = OGCatalog(cat)
    gslayers = [lyr.name for lyr in cat.get_layers()]
    layername = layer.name()
    if qgislayers.isPostGisLayer(layer):
        layername += "_table"
    try:
        lyrname = getGSLayerName(name=xmlNameFixUp(layername),
                                 names=gslayers,
                                 unique=False)
    except UserCanceledOperation:
        return False

    return explorer.run(ogcat.publishLayer,
                        "Publish layer from layer '" + lyrname + "'",
                        [],
                        layer, workspace, True, lyrname)
示例#3
0
def publishDraggedTable(tree, explorer, table, workspace):
    if not xmlNameIsValid(table.name, xmlNameRegex()):
        QtGui.QMessageBox.warning(explorer, "Invalid name",
                                  ("The table name (%s) is not a valid XML name.\n"
                                  + "This could cause problems when published to GeoServer.\n"
                                  + "Please rename it and retry publishing.") % table.name)
        return False
    cat = workspace.catalog
    if int(table.srid) == 0:
        explorer.setWarning("PostGIS table '{0}' has no SRID; ESPG:4326 will "
                            "be assigned.".format(table.name))

    gslayers = [lyr.name for lyr in cat.get_layers()]
    try:
        lyrname = getGSLayerName(name=xmlNameFixUp(table.name + "_table"),
                                 names=gslayers,
                                 unique=False)
    except UserCanceledOperation:
        return False

    catItem = tree.findFirstItem(cat)
    toUpdate = [catItem.layersItem]
    res = explorer.run(publishTable,
                       "Publish table from table '" + table.name + "'",
                       toUpdate,
                       table, cat, workspace, True, lyrname)
    if res:
        # add existing style to layer, or later some operations may fail,
        # like malformed XML when getting capabilities for OWS connections
        pglyr = cat.get_layer(lyrname)
        pgitem = tree.findFirstItem(pglyr)
        if pgitem is None:
            print "pgitem not found"
            return False
        if not pgitem.addStyleToLayer(explorer):  # handles refresh of item
            # user cancelled AddStyleToLayerDialog
            noDefaultStyleError(explorer, lyrname)
            return False
        else:
            catItem.layersItem.refreshContent(explorer)
    return res
示例#4
0
def publishDraggedTable(tree, explorer, table, workspace):
    if not xmlNameIsValid(table.name, xmlNameRegex()):
        QtGui.QMessageBox.warning(
            explorer, "Invalid name",
            ("The table name (%s) is not a valid XML name.\n" +
             "This could cause problems when published to GeoServer.\n" +
             "Please rename it and retry publishing.") % table.name)
        return False
    cat = workspace.catalog
    if int(table.srid) == 0:
        explorer.setWarning("PostGIS table '{0}' has no SRID; ESPG:4326 will "
                            "be assigned.".format(table.name))

    gslayers = [lyr.name for lyr in cat.get_layers()]
    try:
        lyrname = getGSLayerName(name=xmlNameFixUp(table.name + "_table"),
                                 names=gslayers,
                                 unique=False)
    except UserCanceledOperation:
        return False

    catItem = tree.findFirstItem(cat)
    toUpdate = [catItem.layersItem]
    res = explorer.run(publishTable,
                       "Publish table from table '" + table.name + "'",
                       toUpdate, table, cat, workspace, True, lyrname)
    if res:
        # add existing style to layer, or later some operations may fail,
        # like malformed XML when getting capabilities for OWS connections
        pglyr = cat.get_layer(lyrname)
        pgitem = tree.findFirstItem(pglyr)
        if pgitem is None:
            print "pgitem not found"
            return False
        if not pgitem.addStyleToLayer(explorer):  # handles refresh of item
            # user cancelled AddStyleToLayerDialog
            noDefaultStyleError(explorer, lyrname)
            return False
        else:
            catItem.layersItem.refreshContent(explorer)
    return res