Example #1
0
 def populate(self):
     catalog = self.catalog
     self.element = Gwc(catalog)
     layers = self.element.layers()
     for layer in layers:
         item = GwcLayerItem(layer)
         self.addChild(item)
 def populate(self):
     catalog = self.catalog
     self.element = Gwc(catalog)
     layers = self.element.layers()
     for layer in layers:
         item = GwcLayerItem(layer)
         self.addChild(item)
class GwcLayersItem(GwcTreeItem):
    def __init__(self, catalog):
        self.catalog = catalog
        icon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/gwc.png")
        TreeItem.__init__(self, None, icon, "GeoWebCache Layers")
        self.setFlags(QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsDropEnabled)

    def populate(self):
        catalog = self.catalog
        self.element = Gwc(catalog)
        layers = self.element.layers()
        for layer in layers:
            item = GwcLayerItem(layer)
            self.addChild(item)

    def acceptDroppedItem(self, tree, explorer, item):
        from opengeo.gui.gsexploreritems import GsLayerItem
        if isinstance(item, GsLayerItem):
            if createGwcLayer(explorer, item.element):
                return [self]
        else:
            return []

    def contextMenuActions(self, tree, explorer):
        icon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/add.png")
        addGwcLayerAction = QtGui.QAction(icon, "New GWC layer...", explorer)
        addGwcLayerAction.triggered.connect(lambda: self.addGwcLayer(tree, explorer))
        return [addGwcLayerAction]


    def addGwcLayer(self, tree, explorer):
        cat = self.catalog
        layers = cat.get_layers()
        dlg = EditGwcLayerDialog(layers, None)
        dlg.exec_()
        if dlg.gridsets is not None:
            layer = dlg.layer
            gwc = Gwc(layer.catalog)

            #TODO: this is a hack that assumes the layer belongs to the same workspace
            typename = layer.resource.workspace.name + ":" + layer.name

            gwclayer = GwcLayer(gwc, typename, dlg.formats, dlg.gridsets, dlg.metaWidth, dlg.metaHeight)
            catItem = tree.findAllItems(cat)[0]
            explorer.run(gwc.addLayer,
                              "Create GWC layer '" + layer.name + "'",
                              [catItem.gwcItem],
                              gwclayer)
Example #4
0
class GwcLayersItem(GwcTreeItem):
    def __init__(self, catalog):
        self.catalog = catalog
        icon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/gwc.png")
        TreeItem.__init__(self, None, icon, "GeoWebCache Layers")
        self.setFlags(QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable
                      | QtCore.Qt.ItemIsDropEnabled)

    def populate(self):
        catalog = self.catalog
        self.element = Gwc(catalog)
        layers = self.element.layers()
        for layer in layers:
            item = GwcLayerItem(layer)
            self.addChild(item)

    def acceptDroppedItem(self, tree, explorer, item):
        from opengeo.gui.gsexploreritems import GsLayerItem
        if isinstance(item, GsLayerItem):
            if createGwcLayer(explorer, item.element):
                return [self]
        else:
            return []

    def contextMenuActions(self, tree, explorer):
        icon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/add.png")
        addGwcLayerAction = QtGui.QAction(icon, "New GWC layer...", explorer)
        addGwcLayerAction.triggered.connect(
            lambda: self.addGwcLayer(tree, explorer))
        return [addGwcLayerAction]

    def addGwcLayer(self, tree, explorer):
        cat = self.catalog
        layers = cat.get_layers()
        dlg = EditGwcLayerDialog(layers, None)
        dlg.exec_()
        if dlg.gridsets is not None:
            layer = dlg.layer
            gwc = Gwc(layer.catalog)

            #TODO: this is a hack that assumes the layer belongs to the same workspace
            typename = layer.resource.workspace.name + ":" + layer.name

            gwclayer = GwcLayer(gwc, typename, dlg.formats, dlg.gridsets,
                                dlg.metaWidth, dlg.metaHeight)
            catItem = tree.findAllItems(cat)[0]
            explorer.run(gwc.addLayer, "Create GWC layer '" + layer.name + "'",
                         [catItem.gwcItem], gwclayer)
Example #5
0
def createGwcLayer(explorer, layer):
    dlg = EditGwcLayerDialog([layer], None)
    dlg.exec_()
    if dlg.gridsets is not None:
        gwc = Gwc(layer.catalog)

        #TODO: this is a hack that assumes the layer belongs to the same workspace
        typename = layer.resource.workspace.name + ":" + layer.name

        gwclayer = GwcLayer(gwc, typename, dlg.formats, dlg.gridsets,
                            dlg.metaWidth, dlg.metaHeight)
        explorer.run(gwc.addLayer, "Create GWC layer '" + layer.name + "'", [],
                     gwclayer)
        return True
    else:
        return False
Example #6
0
    def addGwcLayer(self, tree, explorer):
        cat = self.catalog
        layers = cat.get_layers()
        dlg = EditGwcLayerDialog(layers, None)
        dlg.exec_()
        if dlg.gridsets is not None:
            layer = dlg.layer
            gwc = Gwc(layer.catalog)

            #TODO: this is a hack that assumes the layer belongs to the same workspace
            typename = layer.resource.workspace.name + ":" + layer.name

            gwclayer = GwcLayer(gwc, typename, dlg.formats, dlg.gridsets,
                                dlg.metaWidth, dlg.metaHeight)
            catItem = tree.findAllItems(cat)[0]
            explorer.run(gwc.addLayer, "Create GWC layer '" + layer.name + "'",
                         [catItem.gwcItem], gwclayer)
Example #7
0
 def fillTree(self):    
     self.tree.clear() 
     QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.WaitCursor)) 
     self.explorer.setProgressMaximum(7, "Filling explorer tree")      
     try:
         groups = self.catalog.get_layergroups()
         for group in groups:
             groupItem = GsGroupItem(group)
             groupItem.populate()                                
             self.tree.addTopLevelItem(groupItem)          
         self.explorer.setProgress(1)
         cat = self.catalog            
         try:
             defaultWorkspace = cat.get_default_workspace()
             defaultWorkspace.fetch()
             defaultName = defaultWorkspace.dom.find('name').text
         except:
             defaultName = None             
         self.explorer.setProgress(2)
         workspaces = cat.get_workspaces()
         for workspace in workspaces:
             workspaceItem = GsWorkspaceItem(workspace, workspace.name == defaultName)
             workspaceItem.populate()
             self.tree.addTopLevelItem(workspaceItem)
         self.explorer.setProgress(3)
         styles = self.catalog.get_styles()
         for style in styles:
             styleItem = GsStyleItem(style, False)                
             self.tree.addTopLevelItem(styleItem)
         self.explorer.setProgress(4)                    
         layers = self.catalog.get_layers()
         for layer in layers:
             layerItem = GsLayerItem(layer)            
             layerItem.populate()    
             self.tree.addTopLevelItem(layerItem)
         self.explorer.setProgress(5)                   
         gwc = Gwc(self.catalog)        
         layers = gwc.layers()
         for layer in layers:
             item = GwcLayerItem(layer)
             self.tree.addTopLevelItem(item)
         self.explorer.setProgress(6)
         self.element = Wps(self.catalog)        
         try:
             processes = self.catalog.processes()
             for process in processes:
                 item = GsProcessItem(process)
                 self.tree.addTopLevelItem(item)
             self.explorer.setProgress(7)                
         except:
             #ignore this section if catalog does not have WPS installed
             pass  
         self.explorer.resetActivity()
         self.tree.invisibleRootItem().sortChildren(0, QtCore.Qt.AscendingOrder)
         #we keep a list of container items, to use their actions
         self.containerItems = [GsLayersItem(self.catalog), GsWorkspacesItem(self.catalog),
                                GsStylesItem(self.catalog),GsGroupsItem(self.catalog), 
                                GwcLayersItem(self.catalog), GsProcessesItem(self.catalog)]
                       
     finally:
         self.explorer.setProgress(0)
         QtGui.QApplication.restoreOverrideCursor()
    def fillTree(self):
        self.tree.clear()
        QtGui.QApplication.setOverrideCursor(
            QtGui.QCursor(QtCore.Qt.WaitCursor))
        self.explorer.setProgressMaximum(7, "Filling explorer tree")
        try:
            groups = self.catalog.get_layergroups()
            for group in groups:
                groupItem = GsGroupItem(group)
                groupItem.populate()
                self.tree.addTopLevelItem(groupItem)
            self.explorer.setProgress(1)
            cat = self.catalog
            try:
                defaultWorkspace = cat.get_default_workspace()
                defaultWorkspace.fetch()
                defaultName = defaultWorkspace.dom.find('name').text
            except:
                defaultName = None
            self.explorer.setProgress(2)
            workspaces = cat.get_workspaces()
            for workspace in workspaces:
                workspaceItem = GsWorkspaceItem(workspace,
                                                workspace.name == defaultName)
                workspaceItem.populate()
                self.tree.addTopLevelItem(workspaceItem)
            self.explorer.setProgress(3)
            styles = self.catalog.get_styles()
            for style in styles:
                styleItem = GsStyleItem(style, False)
                self.tree.addTopLevelItem(styleItem)
            self.explorer.setProgress(4)
            layers = self.catalog.get_layers()
            for layer in layers:
                layerItem = GsLayerItem(layer)
                layerItem.populate()
                self.tree.addTopLevelItem(layerItem)
            self.explorer.setProgress(5)
            gwc = Gwc(self.catalog)
            layers = gwc.layers()
            for layer in layers:
                item = GwcLayerItem(layer)
                self.tree.addTopLevelItem(item)
            self.explorer.setProgress(6)
            self.element = Wps(self.catalog)
            try:
                processes = self.catalog.processes()
                for process in processes:
                    item = GsProcessItem(process)
                    self.tree.addTopLevelItem(item)
                self.explorer.setProgress(7)
            except:
                #ignore this section if catalog does not have WPS installed
                pass
            self.explorer.resetActivity()
            self.tree.invisibleRootItem().sortChildren(
                0, QtCore.Qt.AscendingOrder)
            #we keep a list of container items, to use their actions
            self.containerItems = [
                GsLayersItem(self.catalog),
                GsWorkspacesItem(self.catalog),
                GsStylesItem(self.catalog),
                GsGroupsItem(self.catalog),
                GwcLayersItem(self.catalog),
                GsProcessesItem(self.catalog)
            ]

        finally:
            self.explorer.setProgress(0)
            QtGui.QApplication.restoreOverrideCursor()