示例#1
0
    def research_entry_changed_cb(self, widget):
        """Callback executed when the user types some
        data in the research entry"""

        if self.vocabularyController.getCurrentProject() is None:
            return

        text = widget.get_text()
        tformat = self._view.research_format.get_active_text()

        if text == "":
            self.decolorizeAllResult()
            return

        # Stop current search process (and wit for it stops)
        self.stopSearch()
        while self.searchRunning:
            time.sleep(0.001)

        # Disallow nav in search results while none are computed
        self._view.research_previous.set_sensitive(False)
        self._view.research_next.set_sensitive(False)
        self._view.currentSelectedResultLabel.set_label("")

        if len(text) > 0:
            Job(self.startNewSearch(text, tformat))
    def sequence_execute_clicked_cb(self, widget):
        """Callback executed when the user request to start
        the alignment process"""

        self._view.sequence_cancel.set_sensitive(False)
        self._view.sequence_execute.set_sensitive(False)
        self._view.sequence_scale.set_sensitive(False)
        self._view.sequence_spinbutton.set_sensitive(False)
        self._view.radiobutton4bit.set_sensitive(False)
        self._view.radiobutton8bit.set_sensitive(False)
        self._view.orphanButton.set_sensitive(False)
        self._view.smoothButton.set_sensitive(False)

        # retrieves the alignment parameters
        similarityPercent = self._view.sequence_adjustment.get_value()
        if self._view.radiobutton8bit.get_mode():
            unitSize = 8
        else:
            unitSize = 4
        orphan = self._view.orphanButton.get_active()
        smooth = self._view.smoothButton.get_active()

        self.vocabularyController.getCurrentProject().getConfiguration().setVocabularyInferenceParameter(ProjectConfiguration.VOCABULARY_EQUIVALENCE_THRESHOLD, int(similarityPercent))
        self.vocabularyController.getCurrentProject().getConfiguration().setVocabularyInferenceParameter(ProjectConfiguration.VOCABULARY_ORPHAN_REDUCTION, orphan)
        self.vocabularyController.getCurrentProject().getConfiguration().setVocabularyInferenceParameter(ProjectConfiguration.VOCABULARY_DO_INTERNAL_SLICK, smooth)

        # Configure Needleman and Wunsch
        self.alignmentSolution = NeedlemanAndWunsch(unitSize, self.vocabularyController.getCurrentProject(), self.doUpgma, self.percentOfAlignmentProgessBar)

        # Define the alignment JOB
        self._view.sequence_stop.set_sensitive(True)
        Job(self.startSequenceAlignment(unitSize))
示例#3
0
    def simple_execute_clicked_cb(self, widget):
        self.flagStop = False
        # update widget
        self._view.simple_cancel.set_sensitive(False)
        self._view.simple_execute.set_sensitive(False)
        self._view.radiobutton4bits.set_sensitive(False)
        self._view.radiobutton8bits.set_sensitive(False)
        self._view.radiobutton16bits.set_sensitive(False)
        self._view.radiobutton32bits.set_sensitive(False)
        self._view.radiobutton64bits.set_sensitive(False)

        self._view.simple_stop.set_sensitive(True)

        #extract chosen value
        formatBits = UnitSize.BITS8
        if self._view.radiobutton4bits.get_active():
            formatBits = UnitSize.BITS4
        elif self._view.radiobutton16bits.get_active():
            formatBits = UnitSize.BITS16
        elif self._view.radiobutton32bits.get_active():
            formatBits = UnitSize.BITS32
        elif self._view.radiobutton64bits.get_active():
            formatBits = UnitSize.BITS64

        # create a job to execute the partitioning
        Job(self.startSimplePartitioning(formatBits))
    def executeButton_clicked_cb(self, event):
        """Callback executed when the user requests to start the execution"""
        self._view.cancelButton.set_sensitive(True)

        self.flagStop = False

        # create a job to execute the partitioning
        Job(self.startEnvDepsSearch())
示例#5
0
    def executeArbitrarySearch(self, searchTasks):
        """Special method to execute and displays results
        obtained after searching provided tasks"""

        if self.vocabularyController.getCurrentProject() is None:
            return
        self.show()

        Job(self.startArbitrarySearch(searchTasks))
    def importButton_clicked_cb(self, widget):
        """Callback executed when the user request to
        import the selected messages"""
        selectedMessages = self.selectedMessages
        selectedCount = len(selectedMessages)
        if selectedCount != 0:
            currentProjectName = self.getCurrentProject().getName()

            # Threaded import process
            Job(self.startImportMessages(selectedMessages))
示例#7
0
    def startInference(self, button):
        # We retrieve the specified value
        actorType = self.targetOfInferenceCombo.get_active_text()
        actorIP = self.IPEntry.get_text()
        actorNetworkProtocol = self.combo_protocolOfNetworkActor.get_active_text(
        )
        ourPort = int(self.ourPortEntry.get_text())
        targetPort = int(self.targetPortEntry.get_text())
        scriptFilename = self.scriptEntry.get_text()
        maxNumberOfState = int(self.MaxStatesEntry.get_text())

        inputDictionary = []
        for symbol in self.project.getVocabulary().getSymbols():
            #            if symbol.getName() == "LOGIN" or symbol.getName() == "EXECUTE" or symbol.getName() == "LOGOUT" or symbol.getName() == "DOWNLOAD":
            inputDictionary.append(symbol)
        inputDictionary.append(UnknownSymbol())
        # Close the current dialog
        self.dialog.destroy()

        anID = str(uuid.uuid4())
        memory = Memory()
        if actorType == "CLIENT":
            # Lets create a simple network oracle
            oracleCommunicationChannel = NetworkServer(anID, memory,
                                                       actorNetworkProtocol,
                                                       "127.0.0.1", ourPort,
                                                       actorIP, targetPort)
        else:
            # Lets create a simple network oracle
            oracleCommunicationChannel = NetworkClient(anID, memory,
                                                       actorNetworkProtocol,
                                                       "127.0.0.1", ourPort,
                                                       actorIP, targetPort)

        # Lets create an equivalence oracle
        equivalenceOracle = WMethodNetworkEquivalenceOracle(
            oracleCommunicationChannel, maxNumberOfState, scriptFilename)

        # Lets create the automatic inferer
        self.inferer = GrammarInferer(self.project.getVocabulary(),
                                      inputDictionary,
                                      oracleCommunicationChannel,
                                      equivalenceOracle, scriptFilename,
                                      self.callback_submitedQuery,
                                      self.callback_hypotheticalAutomaton)

        # Open the new dialog which shows the status of the inferring process
        self.createInferringStatusView()

        # Start the progress bar
        GObject.timeout_add(200, self.do_pulse)

        # Start the inferer
        self.job = Job(self.startInferer())
    def findSizeFields_cb(self, button, dialog, sizeFieldIdentifier, symbols, cancelButton, savedEncapsulationLevel):
        # first we deactivate the start button
        button.set_sensitive(False)
        # reactivate the cancel button
        cancelButton.set_sensitive(True)

        self.currentExecutionOfFindSizeFieldHasFinished = False
        # Start the progress bar
        GObject.timeout_add(100, self.do_pulse_for_findSizeField)
        # Start the findsize field JOB
        Job(self.startFindSizeField(sizeFieldIdentifier, symbols, dialog, savedEncapsulationLevel))
示例#9
0
    def smooth_execute_clicked_cb(self, widget):
        """Callback executed when the user
        requests to start the smooth
        operation"""
        # update widget
        self._view.smooth_cancel.set_sensitive(False)
        self._view.smooth_execute.set_sensitive(False)
        self._view.smooth_stop.set_sensitive(True)

        # Define the smooth JOB
        Job(self.startSmooth())

        #update button
        self._view.smooth_cancel.set_sensitive(True)
        self._view.smooth_execute.set_sensitive(False)
        self._view.smooth_stop.set_sensitive(False)
    def reset_execute_clicked_cb(self, widget):
        """Callback executed when the user
        requests to start the r
        operation"""
        # update widget
        self._view.reset_cancel.set_sensitive(False)
        self._view.reset_execute.set_sensitive(False)
        self._view.reset_stop.set_sensitive(True)

        # Define the reset JOB
        Job(self.startReset())

        #update button
        self._view.reset_cancel.set_sensitive(True)
        self._view.reset_execute.set_sensitive(False)
        self._view.reset_stop.set_sensitive(False)
示例#11
0
    def force_execute_clicked_cb(self, widget):
        #extract choose value
        delimiter = self._view.force_entry.get_text()
        if delimiter is None or delimiter == "":
            return
        #update widget
        self.flagStop = False
        self._view.force_stop.set_sensitive(True)
        self._view.force_cancel.set_sensitive(False)
        self._view.force_execute.set_sensitive(False)
        self._view.force_entry.set_sensitive(False)
        self._view.force_radiobutton_hexa.set_sensitive(False)
        self._view.force_radiobutton_string.set_sensitive(False)
        if self._view.force_radiobutton_hexa.get_active():
            delimiterType = Format.HEX
        else:
            delimiterType = Format.STRING

        # encode the delimiter
        encodedDelimiter = TypeConvertor.encodeGivenTypeToNetzobRaw(delimiter, delimiterType)

        # create a job to execute the partitioning
        Job(self.startForcePartitioning(encodedDelimiter, delimiterType))
    def advancedBugreportingTestkey_clicked_cb(self, button):
        """Called when the use clicks on the "Test Key" button."""

        self.view.testKeyUpdateSpinnerState(state=1)
        Job(self._startKeyValidation())