def __showUpstreamDownstreamDialog(self):
     try:
         self.upstreamDownstreamDialog.deleteLater()
     except:
         pass
     self.upstreamDownstreamDialog = UpstreamDownstreamDialog(self.iface, self.iface.mainWindow())
     self.upstreamDownstreamDialog.show()
class REC2Plugin(QObject):
    def __init__(self, iface):
        QObject.__init__(self)
        self.iface = iface
        self.pluginDir = os.path.dirname(__file__)
        self.toolbar = self.iface.addToolBar(u'Rec2')
        self.toolbar.setObjectName(u'Rec2')

    def initGui(self):
        self.actionUpstreamDownstream = QAction(QIcon(':/plugins/rec2/icons/icon.png'), "NIWA Rec2", self)
        self.actionUpstreamDownstream.triggered.connect(self.__showUpstreamDownstreamDialog)

        self.toolbar.addAction(self.actionUpstreamDownstream)
        self.iface.addPluginToWebMenu("Rec2", self.actionUpstreamDownstream)
        setupDialog = SetupDialog(self.iface.mainWindow())

    def unload(self):
        try:
            self.menu.deleteLater()
        except:
            pass
        try:
            self.upstreamDownstreamDialog.deleteLater()
        except:
            pass
        try:
            self.toolbar.deleteLater()
        except:
            pass

    def __showUpstreamDownstreamDialog(self):
        try:
            self.upstreamDownstreamDialog.deleteLater()
        except:
            pass
        self.upstreamDownstreamDialog = UpstreamDownstreamDialog(self.iface, self.iface.mainWindow())
        self.upstreamDownstreamDialog.show()