Source code for ccpn.plugins.development.Test
#### GUI IMPORTS
from ccpn.ui.gui.modules.PluginModule import PluginModule
from ccpn.ui.gui.widgets.Label import Label
from ccpn.ui.gui.widgets.LineEdit import LineEdit
from ccpn.ui.gui.widgets.Button import Button
from ccpn.ui.gui.widgets.CheckBox import CheckBox
from ccpn.ui.gui.widgets.PulldownList import PulldownList
#### NON GUI IMPORTS
from ccpn.framework.lib.Plugin import Plugin
########################################################################################################################
### Attributes:
### Used in setting the dictionary keys on _kwargs either in GuiPipe and Pipe
########################################################################################################################
BaseSpectrum = 'baseSpectrum'
RunName = 'Run_name'
RunPath = 'runPath'
Chains = {}
# for chain in sorted(project.chains):
# Chains[chain] = chain.shortName
CheckBoxName = 'checkBoxName'
CheckBoxNameDefaultValue = False
########################################################################################################################
########################################## ALGORITHM ########################################################
########################################################################################################################
[docs]def myAlgorithm(data):
# do something
return data
########################################################################################################################
########################################## GUI Plugin #############################################################
########################################################################################################################
[docs]class TsarGuiPlugin(PluginModule):
def __init__(self, mainWindow=None, plugin=None, application=None, **kwds):
super(TsarGuiPlugin, self)
PluginModule.__init__(self, mainWindow=mainWindow, plugin=plugin, application=application)
## add widgets to pipeFrame using Base grid=(i,ii) or self.pipeLayout.addWidget(widgetName)
## suggested to use setattr to give the same variable name as the one used in the pipe _kwarg.
## the guiPipe _kwarg is autogenerated from the variable name of widget and value.
self.plugin = plugin
self.spectrumLabel = Label(self.mainWidget, 'Reference Spectrum', grid=(0, 0))
setattr(self, BaseSpectrum, PulldownList(self.mainWidget, texts=['spectrum1', 'spectrum2'], grid=(0, 1)))
setattr(self, RunName, LineEdit(self.mainWidget, RunName, grid=(1, 2)))
setattr(self, CheckBoxName, CheckBox(self.mainWidget, checked=CheckBoxNameDefaultValue, callback=self._changeCheckBox, grid=(1, 1)))
self.runButton = Button(self.mainWidget, 'Run', callback=self.runPlugin, grid=(3, 1))
def _changeCheckBox(self):
cb = getattr(self, CheckBoxName)
print(cb)
[docs] def runPlugin(self):
self.plugin.run(self, **self.widgetsState)
# print(self._kwargs)
########################################################################################################################
########################################## Base Plugin ###########################################################
########################################################################################################################
[docs]class TestPlugin(Plugin):
PLUGINNAME = 'TSAR - Automated backbone assignment - V3'
guiModule = TsarGuiPlugin
# Set default values
_kwargs = {
BaseSpectrum: 'spectrum2',
CheckBoxName: CheckBoxNameDefaultValue
}
[docs] def run(self, **kwargs):
print(kwargs)
########################################################################################################################
########################################## RUN TEST GUI Plugin ##################################################
########################################################################################################################
#
# if __name__ == '__main__':
# from PyQt5 import QtGui
# from ccpn.ui.gui.widgets.Application import TestApplication
#
# plugin = TestPlugin()
# plugin.run(**plugin._kwargs)
# app = TestApplication()
# win = QtGui.QMainWindow()
#
# area = CcpnModuleArea(None)
# testPlugin = TestGuiPlugin(parent=area,plugin=TestPlugin,)
# area.addModule(testPlugin)
# win.setCentralWidget(area)
# win.resize(1000, 500)
# win.show()
#
# app.start()