示例#1
0
    def __init__(self, axis):
        super().__init__("Aux Jog")

        assert isinstance(axis, ControlAxis)

        self._axis = axis

        self.label = axis.get_name()

        self._value_field = ControlText(label="Target",
                                        default=str(axis.get_value()))

        self._set_button = ControlButton(label="Go to target")
        self._set_button.value = self._update_value

        self._saved_point_field = ControlCombo(label="Saved Point")

        self._saved_point_button = ControlButton(label="Go to saved point")
        self._saved_point_button.value = self._update_saved_point

        self._current_field = ControlLabel(
            label="Current Value ({})".format(axis.get_units()))

        self.setFrameShape(QFrame.StyledPanel)
        self.setSizePolicy(
            QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed))

        self.set_margin(10)

        self.formset = [("info:{0} ({1}):".format(axis.get_name(),
                                                  axis.get_units()), '', '',
                         '_current_field'), ('_value_field', '_set_button'),
                        ('_saved_point_field', '_saved_point_button')]
示例#2
0
	def __init__(self):
		super(DOE2py_Utility,self).__init__('DOE2py Utility')

		self._Input 	= ControlFile('Input file')
		self._Weather 	= ControlFile('Weather file')
		self._Library 	= ControlFile('User Library')
		self._Version	= ControlCombo('DOE-2 Version')
		#self._Status_1	= ControlLabel('Simulation Status:')
		#self._Status_2	= ControlLabel('-')
		self._Run		= ControlButton('Run Simulation')
		self._Close		= ControlButton('Close')

		self._formset = ['',('  ','_Input','  '),
		                    ('', '_Weather', '' ),
							('', '_Library', '' ),
							('','_Version', '' ),
							('', '_Run', '' ),
							('','_Close',''),''] #('','_Status_1','','_Status_2', '' )
	
		self._Run.value = self.__RunAction
		self._Close.value = self.__CloseAction	
		
		with open('settings-gui.json') as data_file:    
			data = json.load(data_file)
			self._Input.value = data["lastinput"]
			self._Weather.value = data["lastweather"]
			self._Library.value = data["lastlibrary"]
		for i in range(0,len(data["doe2versions"])):
			self._Version.add_item(data["doe2versions"][i])
示例#3
0
    def __init__(self, update_function=None):
        super().__init__("Jog Tab")

        self._update_function = update_function

        self._timer.timeout.connect(self._timer_update)
        self._timer.start(200)

        self._xy_panel = ControlEmptyWidget()
        self._xy_panel.setSizePolicy(
            QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed))
        self._xy_panel.value = ControlJog()

        self._aux_panel = ControlEmptyWidget()
        self._aux_panel.form.setSizePolicy(
            QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed))

        self._space = ControlEmptyWidget()

        self._enable_button = ControlButton(label='Enable LightSource')
        self._enable_button.value = self._enable_lightsource

        self._disable_button = ControlButton(label='Disable LightSource')
        self._disable_button.value = self._disable_lightsource

        self.formset = [
            '_xy_panel', '_aux_panel', '_space',
            ('_enable_button', '_disable_button')
        ]
示例#4
0
    def __init__(self, parent=None, parentWindow=None):
        BaseWidget.__init__(self, 'Events stats', parentWindow=parentWindow)
        self._parent = parent

        self._bounds = ControlBoundingSlider('Frames range', 1, 100, horizontal=True)
        self._nframes = ControlNumber('Merge in a group of', 1800)
        self._videofsp = ControlNumber('FPS', 30.0)
        self._analyseButton = ControlButton('Calculate graphs')
        self._events = ControlCheckBoxList()
        self._graph = ControlVisVis('Graph')
        self._showTotalCounts = ControlCheckBox('Show total events counting')
        self._showEvtsCounts = ControlCheckBox('Show events counting', True)
        self._progress = ControlProgress()
        self._exportDurations = ControlButton('Export durations')
        self._exportTotals = ControlButton('Export totals')

        self._formset = [
            (' ', '_showEvtsCounts', '|', '_showTotalCounts', '|', '_nframes', '_videofsp', '_analyseButton', '_exportDurations', '_exportTotals'),
            '_bounds',
            {'a:Graph': ['_graph'],
                'c:Events selection':['_events']},
            '_progress'
        ]

        self._analyseButton.value = self.__generate_graph
        self._exportDurations.value = self.__export_durations
        self._exportTotals.value = self.__export_totals
        self._progress.hide()

        self.__load_events()

        self.setMinimumWidth(800)
        self.setMinimumHeight(600)
示例#5
0
    def __init__(self):
        super(SimpleExample1, self).__init__('my_variant_api')

        #init clinvar
        self._clinvariants = ControlTextArea('rsvariants', 'rs12315123')
        self._clinbutton = ControlButton('Press this button')
        self._clinresult = ControlTextArea('result')

        self._clinbutton.value = self.__clinbuttonAction
        #init flanking site
        self._flancchrom = ControlText('chrom')
        self._flancpos = ControlText('pos')
        self._flancthree = ControlText('expand_3prime', 300)
        self._flancfive = ControlText('expand_5prime', 300)
        self._flancassembly = ControlCombo('assembly')
        self._flancassembly.add_item('GRCh37')
        self._flancassembly.add_item('GRCh38')
        self._flancbutton = ControlButton('Press this button')
        self._flancresult = ControlTextArea('result')
        self._flancbutton.value = self.__flancbuttonAction

        self.formset = [{
            "Clinvar": ('_clinvariants', '_clinbutton', '_clinresult'),
            "Flanking Site": [('_flancchrom', '_flancpos', '_flancthree',
                               '_flancfive', '_flancassembly'), '_flancbutton',
                              '_flancresult']
        }]
示例#6
0
文件: views.py 项目: dominic-dev/wol
    def __init__(self):
        super().__init__('Home')

        self.button_new = ControlButton('Nieuwe oogstlijst')
        self.button_open = ControlButton('Open bestaande oogstlijst')
        self.formset = ['button_new', 'button_open']

        self.button_new.value = self._new
        self.button_open.value = self._open
示例#7
0
文件: views.py 项目: dominic-dev/wol
    def __init__(self):
        super().__init__('Oogstlijst Manager')
        self._plan_button = ControlButton('Genereer planning')
        self._harvest_list_button = ControlButton('Genereer oogstlijst')
        self._save = ControlButton('Opslaan')

        self._plan_button.value = self.generate_plan
        self._harvest_list_button.value = self.generate_list
        self._save.value = self.save_pickle

        self.formset = ['_plan_button', '_harvest_list_button', '_save']
示例#8
0
	def __init__(self):
		super(MySettingsApp,self).__init__('My settings')
		
		self._user_uid = ControlText('API password')
		self._new_uid_btn = ControlButton('New password')
		self._save_btn = ControlButton('Save')

		self._formset = [
			('_user_uid','_new_uid_btn'), 
			('_save_btn', ' ')]

		self._save_btn.value = self.__save_form
		self._new_uid_btn.value = self.__new_uid
示例#9
0
    def __init__(self, name, target):
        super(PopUpGetText, self).__init__('Add {}'.format(name))

        self.target = target

        self._text = ControlText('')

        self._add_button = ControlButton('Add')
        self._add_button.value = self.__add_action

        self._cancel_button = ControlButton('Cancel')
        self._cancel_button.value = self.__cancel_action

        self._formset = [('', '_text', ''),
                         ('', '_add_button', '_cancel_button', '')]
    def __init__(self):

        super(VehTrajAnalytics, self).__init__('Vehicle Trajectory Analytics')

        #Definition of the forms fields
        self._firstname = ControlText('First name', 'Default value')
        self._middlename = ControlText('Middle name')
        self._lastname = ControlText('Lastname name')
        self._fullname = ControlText('Full name')
        self._button = ControlButton('Press this button')
        self._button2 = ControlButton('Press this button2')

        self._outputDir = ControlDir("Output Directory")
        self._inputFile = ControlFile("Input Trajectory File")

        self._load = ControlButton("Load")
        self._save = ControlButton("Save")

        self._vehicleId = ControlCombo("Vehicle id")
        self._time = ControlCombo("Time(sec)")
        self._positionX = ControlCombo("PositionX (feet)")
        self._positionY = ControlCombo("PositionY (feet)")

        # Instrumented vehicle trajectories
        self._radarRange = ControlCombo("Radar range (feet)")
        self._radarAngle = ControlCombo("Radar angle (degrees)")
        self._centerline = ControlFile("CenterlineFile")

        #all traffic stream
        self._lane = ControlCombo("Lane")
        self._vLength = ControlCombo("Vehicle Length")
        self._distanceAlong = ControlCombo("Distance Along Corridor")

        #Define the button action
        self._button.value = self.__buttonAction

        self.data = None
        self.outFolder = None

        self.formset = [[('_inputFile', '_load'), '_vehicleId', "_time",
                         '_positionX', "_positionY", "_distanceAlong"], "=", {
                             'All Vehicle Trajectories': ['_lane', '_vLength'],
                             'Instrumented Vehicle Trajectories':
                             ['_radarAngle', '_radarRange']
                         }, '=', ('_outputDir', '_save')]

        self._load.value = self.__loadAction
        self._save.value = self.__saveAction
    def __init__(self, timeline=None):
        super(GraphsEventsGenerator,
              self).__init__('Apply a function to the graph values',
                             parent_win=timeline)
        self.setContentsMargins(10, 10, 10, 10)
        self._timeline = timeline

        # Definition of the forms fields
        self._graphs_list = ControlList('Graphs list (try double click)')
        self._equation = ControlTextArea('Equation')
        self._graphname = ControlText('Graph name')
        self._genevts_btn = ControlButton('Generate graph')

        self._formset = [
            (['_graphs_list'], '||', [
                '_graphname',
                '_equation',
                '_genevts_btn',
            ]),
        ]

        self._graphs_list.cell_double_clicked_event = self.__cell_double_clicked_evt
        self._graphs_list.readonly = True
        self._graphs_list.select_entire_row = True
        self._genevts_btn.value = self.__generage_events_evt
示例#12
0
    def __init__(self, timelineWidget=None):
        super(GraphsProperties, self).__init__('Graphs properties')
        self.setContentsMargins(10, 10, 10, 10)
        self._timeline = timelineWidget

        # Definition of the forms fields
        self._graphs_list = ControlList('Graphs list')
        self._name = ControlText('Name')
        self._min_value = ControlNumber('Min')
        self._max_value = ControlNumber('Max')
        self._values_zoom = ControlSlider('Amplitude', 100, 60, 400)
        self._values_top = ControlNumber('Top position', 0, -1000, 1000)
        self._remove_graph_btn = ControlButton('Remove graph')

        self._formset = [
            (['_graphs_list', '_remove_graph_btn'], '||', [
                ' ', '_name', ('_min_value', '_max_value'),
                ('_values_top', ' '), '_values_zoom', ' '
            ]),
        ]

        self._graphs_list.itemSelectionChanged = self.__graphs_list_selection_changed

        self._loaded = False

        self._name.changed = self.__save_graphs_changes
        self._min_value.changed = self.__save_graphs_changes
        self._max_value.changed = self.__save_graphs_changes
        self._values_zoom.changed = self.__save_graphs_changes
        self._values_top.changed = self.__save_graphs_changes
示例#13
0
    def __init__(self):
        # Begin making the GUI shown when this sensor is selected
        self._widget = BaseWidget()

        self._widget.threshold = ControlSlider(
            label="Threshold",
            default=18,
            min=0,
            max=255
        )
        self._widget.threshold.changed_event = self._update_params

        self._widget.min_size = ControlSlider(
            label="Minimum Size",
            default=50,
            min=0,
            max=200,
        )
        self._widget.min_size.changed_event = self._update_params

        self._widget.on_threshold = ControlSlider(
            label="Frequency Threshold",
            default=17,
            min=0,
            max=255
        )
        self._widget.on_threshold.changed_event = self._update_params

        self._widget.x_bounds_label = ControlLabel(
            label="X Bounds"
        )

        self._widget.x_bounds = ControlBoundingSlider(
            label="X Bounds",
            default=[0, 640],
            min=0,
            max=640,
            horizontal=True
        )
        self._widget.x_bounds.convert_2_int = True
        self._widget.x_bounds.changed_event = self._update_params

        self._widget.y_bounds_label = ControlLabel(
            label="Y Bounds"
        )

        self._widget.y_bounds = ControlBoundingSlider(
            label="Y Bounds",
            default=[0, 512],
            min=0,
            max=512,
            horizontal=True
        )
        self._widget.y_bounds.convert_2_int = True
        self._widget.y_bounds.changed_event = self._update_params

        self._widget.save_background = ControlButton(
            label="Save background"
        )
        self._widget.save_background.value = self._save_background
示例#14
0
    def __init__(self):
        super(AdminStatsApp, self).__init__('Admin stats')

        self._totalExec_begin = ControlDate('Starting date', '2014-10-10')
        self._totalExec_end = ControlDate('Ending date', '2015-10-10')
        self._totalExec_btn = ControlButton('Refresh')

        self._totalExec_graph = ControlVisVis('Total execution time')

        self._apps_list = ControlCombo('Filter by application')
        self._totalExecApp_graph = ControlVisVis(
            'Total execution time per application')

        self._servers_list = ControlCombo('Filter by server')
        self._totalExecServer_graph = ControlVisVis(
            'Total execution time per server')

        self._formset = [
            ('_totalExec_begin', '_totalExec_end',
             '_totalExec_btn'), 'h3:Total execution time', '_totalExec_graph',
            'h3:Total execution time per application', '_apps_list',
            '_totalExecApp_graph', 'h3:Total execution time per server',
            '_servers_list', '_totalExecServer_graph'
        ]

        self._totalExec_btn.value = self.__total_exec_stats

        self._apps_list.addItem('--- All ---', '')
        for application in Algorithm.objects.all():
            self._apps_list.addItem(str(application.algorithm_name),
                                    str(application.algorithm_class))

        self._servers_list.addItem('--- All ---', '')
        for server in Server.objects.all().order_by('server_name'):
            self._servers_list.addItem(str(server.server_name), str(server.pk))
示例#15
0
文件: views.py 项目: dominic-dev/wol
    def __init__(self):
        super().__init__('Open oogstlijst')
        self._file = ControlFile('Project')
        self._file.filter = "OLM files (*.olm)"
        self._button_continue = ControlButton('Kies')

        self._button_continue.value = self.open_file
示例#16
0
    def __init__(self, timeline=None):
        super(Graph2Event, self).__init__('Graph to event',
                                          parent_win=timeline)
        self.setContentsMargins(10, 10, 10, 10)
        self._timeline = timeline

        # Definition of the forms fields
        self._graphs_list = ControlList('Graphs list (try double click)')
        self._equation = ControlTextArea('Equation')
        self._eventname = ControlText('Event name', 'New event')
        self._rownumber = ControlNumber('Row number', 0, 0, 1000)
        self._mindiff = ControlNumber('Minimum of frames', 0, 0, 1000000)
        self._genevts_btn = ControlButton('Generate events')

        self._formset = [
            (['_graphs_list'], '||', [
                ('_eventname', '_rownumber', '_mindiff'),
                '_equation',
                '_genevts_btn',
            ]),
        ]

        self._graphs_list.cell_double_clicked_event = self.__cell_double_clicked_evt
        self._graphs_list.readonly = True
        self._graphs_list.select_entire_row = True
        self._genevts_btn.value = self.__generage_events_evt
示例#17
0
	def __init__(self):
		super(BaseWindow, self).__init__('Test')

		#Definition of the forms fields
		self._mdiArea 			= ControlMdiArea()

		self._textField 		= ControlText("Example")
		self._projectTree  		= ControlDockWidget('Project tree', side=ControlDockWidget.SIDE_RIGHT)
		self._details  			= ControlDockWidget('Details', 		side=ControlDockWidget.SIDE_RIGHT)
		self._addWindow 		= ControlButton('Add window')

		self._formset = [ '_addWindow','_textField', '_mdiArea']

		self._details.value = SimpleExample1()


		#self._mdiArea.showCloseButton = False
		self._addWindow.value = self.__addWindow

		self.mainmenu.append(
				{ 'File': [
						{'Save as': self.saveWindow},
						{'Open as': self.loadWindow},
						'-',
						{'Exit': self.__exit},
					]
				}
			)
示例#18
0
    def __init__(self):
        # Begin making the GUI shown when this sensor is selected
        self._widget = BaseWidget()

        self._widget.threshold = ControlSlider(label="Threshold",
                                               default=18,
                                               min=0,
                                               max=255)
        self._widget.threshold.changed_event = self._update_params

        self._widget.min_size = ControlSlider(
            label="Minimum Size",
            default=50,
            min=0,
            max=200,
        )
        self._widget.min_size.changed_event = self._update_params

        self._widget.sample_radius = ControlSlider(label="Sample Radius",
                                                   default=17,
                                                   min=0,
                                                   max=200)
        self._widget.sample_radius.changed_event = self._update_params

        self._widget.show_button = ControlButton(label="Show Camera")
        self._widget.show_button.value = self._show_camera

        self._widget.before_close_event = self._hide_camera
示例#19
0
	def __init__(self, timeline=None):
		super(ImportWindow, self).__init__('Import file', parent_win=timeline)
		self.setContentsMargins(10, 10, 10, 10)
		self._timeline = timeline

		# Definition of the forms fields
		self._filetype = ControlCombo('Please select the type of file you would like to import:')
		self._importButton = ControlButton('Import')
		self._panel = ControlEmptyWidget('Panel')
		self._file = ControlFile('File to import')

		self._panel.value = self._file
		self._filetype.add_item('Events file', 0)
		self._filetype.add_item('Graph file', 1)
		self._filetype.add_item('Bonsai events file', 2)

		self._formset = [
			('_filetype', ' '),
			'_panel',
			(' ', '_importButton'), ' ']

		self._filetype.changed_event = self.__fileTypeChanged
		self._importButton.value = self.__importData

		from pyforms.gui.dialogs.csv_parser import CsvParserDialog
		self._graphCsvParserDlg = CsvParserDialog()
		self._graphCsvParserDlg.xField.label = "Value column"
		self._graphCsvParserDlg.yField.hide()
		self._graphCsvParserDlg.zField.hide()
		self._graphCsvParserDlg.loadButton.hide()

		self._bonsaiImportDlg = BonsaiImportFileDlg()
    def __init__(self):
        self._camera = ThorlabsDCx()
        self._measuring = False

        # Begin making the GUI shown when this sensor is selected
        self._widget = BaseWidget()

        self._widget.threshold = ControlSlider(label="Threshold",
                                               default=18,
                                               min=0,
                                               max=255)

        self._widget.min_size = ControlSlider(
            label="Minimum Size",
            default=50,
            min=0,
            max=200,
        )

        self._widget.sample_radius = ControlSlider(label="Sample Radius",
                                                   default=17,
                                                   min=0,
                                                   max=200)

        self._widget.show_button = ControlButton(label="Show Camera")
        self._widget.show_button.value = self._show_camera

        self._widget.before_close_event = self._hide_camera

        self._timer.timeout.connect(self._get_frame)
示例#21
0
    def __init__(self):
        super(SimpleExample1, self).__init__('Simple example 1')

        #Definition of the forms fields
        self._firstname = ControlText('Senetence', 'Default value')

        self._button = ControlButton('Press this button')
示例#22
0
	def __init__(self):
	        super(SimpleExample1,self).__init__('CoolStuff')
                self._filename = ControlText('Filename')
                self._readcard = ControlText('Readout Card Number')
                self._frames = ControlText('Number of Frames')
                self._datamode = ControlText('Data Mode')
                self._button = ControlButton('Start Data Acquisition')
示例#23
0
    def __init__(self, columns, parent=None):
        super(GenericCsvParserDialog, self).__init__('CSV Choose the columns',
                                                     parent_win=parent)

        self._filename = None
        self._columns = columns
        self._columns_indexes = []
        self._rownum = 0

        # Definition of the forms fields
        self._filename = ControlFile('CSV File')
        self._separator = ControlText('Separator', 'auto')
        self._startingrow = ControlNumber('Starting row', 0)

        for index, column in enumerate(columns):
            setattr(self, '_col_{0}'.format(index),
                    ControlNumber(column, index, -1, 1000))

        self._filePreview = ControlList('Preview')
        self._loadButton = ControlButton('Load')

        form_row = ['_separator'] + [
            '_col_{0}'.format(index) for index, column in enumerate(columns)
        ] + ['_loadButton']

        self._formset = [('_filename', '_startingrow'),
                         tuple(form_row), '_filePreview']
        self._separator.changed_event = self.__refreshPreview
        self._filename.changed_event = self.__refreshPreview
        self._startingrow.changed_event = self.__refreshPreview
        self._loadButton.value = self.load

        self._load_event = None
示例#24
0
文件: views.py 项目: dominic-dev/wol
    def __init__(self):
        super().__init__('Oogstlijst Manager')
        self._file = ControlSaveFile('Opslaan')
        self._file.filter = 'Oogstlijst Manager bestanden (*.olm)'
        self._select_button = ControlButton('Verder')
        self._select_button.value = self.select

        self.formset = ['_file', '_select_button']
示例#25
0
文件: views.py 项目: dominic-dev/wol
    def __init__(self):
        super().__init__('Nieuwe oogstlijst')

        self._nameField = ControlText('Naam')
        self._button_continue= ControlButton('Begin')
        self._button_continue.value = self._continue

        self.formset = ['_nameField', '_button_continue']
示例#26
0
 def __init__(self):
     super(SimpleExample1, self).__init__('Simple Example 1')
     self._firstname = ControlText('First Name', 'Default value')
     self._middlename = ControlText('Middle name')
     self._lastname = ControlText('Last name')
     self._fullname = ControlText('Full name')
     self._button = ControlButton("press this button")
     self._button.value = self._buttonAction
示例#27
0
    def __init__(self):
        super(SimpleExample1, self).__init__('Simple example 1')

        #Definition of the forms fields
        self._firstname = ControlText('First name', 'Default value')
        self._middlename = ControlText('Middle name')
        self._lastname = ControlText('Lastname name')
        self._fullname = ControlText('Full name')
        self._button = ControlButton('Press this button')
示例#28
0
    def __init__(self, parent=None):
        super(CsvParserDialog, self).__init__('CSV Choose the columns', parent_win = parent)
        self._filename = None

        # Definition of the forms fields
        self._filename = ControlFile('CSV File')
        self._separator = ControlText('Separator', ';')
        self._startingrow = ControlNumber('Starting row', 0)
        self._frameCol = ControlNumber('Frame column', 0, 0, 100)
        self._xCol = ControlNumber('X column', 1, 0, 100)
        self._yCol = ControlNumber('Y column', 2, 0, 100)
        self._zCol = ControlNumber('Z column', 3, 0, 100)
        self._filePreview = ControlList('Preview')
        self._loadButton = ControlButton('Load')

        self._formset = [('_filename','_startingrow'), ('_separator', '_frameCol', '_xCol', '_yCol', '_zCol', '_loadButton'), '_filePreview']
        self._separator.changed_event = self.__refreshPreview
        self._filename.changed_event  = self.__refreshPreview
        self._startingrow.changed_event = self.__refreshPreview
示例#29
0
    def __init__(self, update_function):
        super().__init__("New Saved Point")

        self._update_function = update_function

        self._text = ControlText(label="Name")

        self._done_button = ControlButton(label="Done")

        self._done_button.value = self._done
 def __init__(self, isCreating):
     Client.__init__(self, '', '')
     BaseWidget.__init__(self, 'Client')
     self.__isCreating = isCreating
     self._idField = ControlText("Id")
     if not isCreating:
         self._idField.enabled = False
     self._nameField = ControlText("Name")
     self._buttonField = ControlButton('Add a new client')
     self._buttonField.value = self._updateAction
     self._label = ControlLabel("")
示例#31
0
    def __init__(self, parent=None):
        super(CsvParserDialog, self).__init__('CSV Choose the columns', parentWindow = parent)
        self._filename = None

        # Definition of the forms fields
        self._filename = ControlFile('CSV File')
        self._separator = ControlText('Separator', ';')
        self._startingrow = ControlNumber('Starting row', 0)
        self._frameCol = ControlNumber('Frame column', 0, 0, 100)
        self._xCol = ControlNumber('X column', 1, 0, 100)
        self._yCol = ControlNumber('Y column', 2, 0, 100)
        self._zCol = ControlNumber('Z column', 3, 0, 100)
        self._filePreview = ControlList('Preview')
        self._loadButton = ControlButton('Load')

        self._formset = [('_filename','_startingrow'), ('_separator', '_frameCol', '_xCol', '_yCol', '_zCol', '_loadButton'), '_filePreview']
        self._separator.changed = self.__refreshPreview
        self._filename.changed  = self.__refreshPreview
        self._startingrow.changed = self.__refreshPreview
示例#32
0
class CsvParserDialog(BaseWidget):

    def __init__(self, parent=None):
        super(CsvParserDialog, self).__init__('CSV Choose the columns', parentWindow = parent)
        self._filename = None

        # Definition of the forms fields
        self._filename = ControlFile('CSV File')
        self._separator = ControlText('Separator', ';')
        self._startingrow = ControlNumber('Starting row', 0)
        self._frameCol = ControlNumber('Frame column', 0, 0, 100)
        self._xCol = ControlNumber('X column', 1, 0, 100)
        self._yCol = ControlNumber('Y column', 2, 0, 100)
        self._zCol = ControlNumber('Z column', 3, 0, 100)
        self._filePreview = ControlList('Preview')
        self._loadButton = ControlButton('Load')

        self._formset = [('_filename','_startingrow'), ('_separator', '_frameCol', '_xCol', '_yCol', '_zCol', '_loadButton'), '_filePreview']
        self._separator.changed = self.__refreshPreview
        self._filename.changed  = self.__refreshPreview
        self._startingrow.changed = self.__refreshPreview

        #self._filename.value = '/home/ricardo/Downloads/2012.12.01_13.48_3D_POSITIONS_version_03.06.2015.csv'

    @property
    def filename(self): return self._filename.value

    @filename.setter
    def filename(self, value):
        self._filename.value = value
        self.__refreshPreview()

    @property
    def loadFileEvent(self): return self._loadButton.value

    @loadFileEvent.setter
    def loadFileEvent(self, value): self._loadButton.value = value

    @property
    def separator(self): return self._separator.value

    @property
    def starting_row(self): return self._startingrow.value
    @starting_row.setter
    def starting_row(self, value): self._startingrow.value = value

    @property
    def frameColumn(self): return self._frameCol.value
    @frameColumn.setter
    def frameColumn(self, value): self._frameCol.value = value

    @property
    def xColumn(self): return self._xCol.value
    @xColumn.setter
    def xColumn(self, value): self._xCol.value = value

    @property
    def yColumn(self): return self._yCol.value
    @yColumn.setter
    def yColumn(self, value): self._yCol.value = value

    @property
    def zColumn(self): return self._zCol.value
    @zColumn.setter
    def zColumn(self, value): self._zCol.value = value

    @property
    def loadButton(self): return self._loadButton

    @property
    def xField(self): return self._xCol

    @property
    def yField(self): return self._yCol

    @property
    def zField(self): return self._zCol

    def __iter__(self):
        if self._filename.value != None and self._filename.value != '':

            csvfile = open(self._filename.value, 'U')
            self._spamreader = csv.reader(csvfile, delimiter=self._separator.value)
            for i in range(int(self._startingrow.value)): next(self._spamreader, None)  # skip the headers
            self._cols = [self.frameColumn]
            if self.xField.visible:
                self._cols.append(self.xColumn)
            if self.yField.visible:
                self._cols.append(self.yColumn)
            if self.zField.visible:
                self._cols.append(self.zColumn)
        else:
            self._spamreader = None
        return self

    # For compatibility with python 3
    def __next__(self): return self.next()

    def next(self):
        if self._spamreader != None:
            row = self._spamreader.next()
            return [row[int(col)] for col in self._cols]
        else:
            raise StopIteration()

    def __refreshPreview(self):
        if self._filename.value != None and self._filename.value != '':
            with open(self._filename.value, 'U') as csvfile:
                spamreader = csv.reader(csvfile, delimiter=self._separator.value)
                for i in range(int(self._startingrow.value)): next(spamreader, None)  # skip the headers
                self._filePreview.value = []
                self._filePreview.horizontalHeaders = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", ]
                for i, row in enumerate(spamreader):
                    self._filePreview += row
                    if i >= 10:
                        break

    def load(self): 
        self.__refreshPreview()
        self._loadButton.value()