def __init__(self, objt, environmentName, builder): self.window = builder.get_object("AssetAssociationNodeDialog") b = Borg() self.dbProxy = b.dbProxy self.theCurrentEnvironment = environmentName self.theHeadName = objt.name() self.decorator = NDImplementationDecorator(builder) assets = self.dbProxy.environmentAssets(self.theCurrentEnvironment) associationTypes = [ 'Inheritance', 'Association', 'Aggregation', 'Composition', 'Dependency' ] multiplicityTypes = ['1', '*', '1..*'] self.decorator.updateComboCtrl("assetAssociationHeadAdornmentCtrl", associationTypes, '') self.decorator.updateComboCtrl("assetAssociationHeadNryCtrl", multiplicityTypes, '') self.decorator.updateComboCtrl("assetAssociationTailNryCtrl", multiplicityTypes, '') self.decorator.updateComboCtrl("assetAssociationTailAdornmentCtrl", associationTypes, '') self.decorator.updateComboCtrl("assetAssociationTailNameCtrl", assets, '') self.decorator.updateButtonLabel("assetAssociationOkButton", "Create")
def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder): self.window = builder.get_object("ObstacleNodeDialog") b = Borg() self.dbProxy = b.dbProxy self.theEnvironmentName = environmentName self.theObstacleAssociation = None self.theObstacleId = -1 self.decorator = NDImplementationDecorator(builder) obstacleCategories = self.dbProxy.getDimensionNames('obstacle_category_type') self.obstacleAssociations = [] self.subObstacleAssociations = [] if (objt == None): self.decorator.updateComboCtrl("obstacleCategoryCtrl",obstacleCategories,'') self.decorator.updateButtonLabel("obstacleOkButton","Create") self.isCreate = True else: self.theObstacleId= objt.id() envProperty = objt.environmentProperty(self.theEnvironmentName) self.obstacleAssociations = envProperty.goalRefinements() self.subObstacleAssociations = envProperty.subGoalRefinements() self.decorator.updateTextCtrl("obstacleNameCtrl",objt.name()) self.decorator.updateComboCtrl("obstacleCategoryCtrl",obstacleCategories,objt.category(environmentName,dupProperty)) self.decorator.updateMLTextCtrl("obstacleDefinitionCtrl",objt.definition(environmentName,dupProperty)) self.decorator.updateButtonLabel("obstacleOkButton","Update") self.isCreate = False self.window.resize(350,600)
def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder): self.window = builder.get_object("GoalNodeDialog") b = Borg() self.dbProxy = b.dbProxy self.theEnvironmentName = environmentName self.theGoalAssociation = None self.theGoalId = -1 self.decorator = NDImplementationDecorator(builder) goalCategories = self.dbProxy.getDimensionNames('goal_category_type') priorityTypes = self.dbProxy.getDimensionNames('priority_type') self.goalAssociations = [] self.subGoalAssociations= [] if (objt == None): self.decorator.updateComboCtrl("goalCategoryCtrl",goalCategories,'') self.decorator.updateComboCtrl("goalPriorityCtrl",priorityTypes,'') self.decorator.updateButtonLabel("goalOkButton","Create") self.isCreate = True else: self.theGoalId = objt.id() envProperty = objt.environmentProperty(self.theEnvironmentName) self.goalAssociations = envProperty.goalRefinements() self.subGoalAssociations = envProperty.subGoalRefinements() self.decorator.updateTextCtrl("goalNameCtrl",objt.name()) self.decorator.updateMLTextCtrl("goalDefinitionCtrl",objt.definition(environmentName,dupProperty)) self.decorator.updateComboCtrl("goalCategoryCtrl",goalCategories,objt.category(environmentName,dupProperty)) self.decorator.updateComboCtrl("goalPriorityCtrl",priorityTypes,objt.priority(environmentName,dupProperty)) self.decorator.updateMLTextCtrl("goalFitCriterionCtrl",objt.fitCriterion(environmentName,dupProperty)) self.decorator.updateMLTextCtrl("goalIssueCtrl",objt.issue(environmentName,dupProperty)) self.decorator.updateButtonLabel("goalOkButton","Update") self.isCreate = False self.window.resize(350,600)
def __init__(self, objt, environmentName, dupProperty, overridingEnvironment, builder): self.window = builder.get_object("AttackerNodeDialog") self.decorator = NDImplementationDecorator(builder) self.decorator.updateTextCtrl("attackerNameCtrl", objt.name()) roles = [] for role in objt.roles(environmentName, dupProperty): roles.append([role]) self.decorator.updateListCtrl("attackerRolesCtrl", ['Role'], gtk.ListStore(str), roles) capabilities = [] for cap, value in objt.capability(environmentName, dupProperty): capabilities.append([cap, value]) self.decorator.updateListCtrl("attackerCapabilityCtrl", ['Capability', 'Value'], gtk.ListStore(str, str), capabilities) motives = [] for motive in objt.motives(environmentName, dupProperty): motives.append([motive]) self.decorator.updateListCtrl("attackerMotiveCtrl", ['Motive'], gtk.ListStore(str), motives) self.decorator.updateMLTextCtrl("attackerDescriptionCtrl", objt.description()) self.window.resize(350, 300)
def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder): self.window = builder.get_object("CountermeasureNodeDialog") self.decorator = NDImplementationDecorator(builder) self.decorator.updateTextCtrl("countermeasureNameCtrl",objt.name()) self.decorator.updateMLTextCtrl("countermeasureDescriptionCtrl",objt.description()) self.decorator.updateTextCtrl("countermeasureCostCtrl",objt.cost(environmentName,dupProperty,overridingEnvironment)) reqs = [] for req in set(objt.requirements(environmentName,dupProperty,overridingEnvironment)): reqs.append([req]) self.decorator.updateListCtrl("countermeasureRequirementsCtrl",['Requirement'],gtk.ListStore(str),reqs) targets = [] for target in objt.targets(environmentName,dupProperty,overridingEnvironment): targets.append([target.name(),target.effectiveness()]) self.decorator.updateListCtrl("countermeasureTargetsCtrl",['Target','Effectiveness'],gtk.ListStore(str,str),targets) self.decorator.updateListCtrl("countermeasurePropertiesCtrl",['Property','Value'],gtk.ListStore(str,str),objt.propertyList(environmentName,dupProperty,overridingEnvironment)) roles = [] for role in objt.roles(environmentName,dupProperty,overridingEnvironment): roles.append([role]) self.decorator.updateListCtrl("countermeasureRolesCtrl",['Role'],gtk.ListStore(str),roles) tps = [] for tp in objt.personas(environmentName,dupProperty,overridingEnvironment): tps.append([tp[0],tp[1],tp[2],tp[3],tp[4],tp[5]]) self.decorator.updateListCtrl("countermeasureTaskPersonasCtrl",['Task','Persona','Duration','Frequency','Demands','Goals'],gtk.ListStore(str,str,str,str,str,str),tps) self.window.resize(500,300)
def __init__(self, objt, environmentName, dupProperty, overridingEnvironment, builder): self.window = builder.get_object("ThreatNodeDialog") self.decorator = NDImplementationDecorator(builder) self.decorator.updateTextCtrl("threatNameCtrl", objt.name()) self.decorator.updateTextCtrl("threatTypeCtrl", objt.type()) self.decorator.updateTextCtrl( "threatLikelihoodCtrl", objt.likelihood(environmentName, dupProperty, overridingEnvironment)) self.decorator.updateMLTextCtrl("threatMethodCtrl", objt.method()) attackers = [] for attacker in objt.attackers(environmentName, dupProperty): attackers.append([attacker]) self.decorator.updateListCtrl("threatAttackersCtrl", ['Attacker'], gtk.ListStore(str), attackers) assets = [] for asset in objt.assets(environmentName, dupProperty): assets.append([asset]) self.decorator.updateListCtrl("threatAssetsCtrl", ['Asset'], gtk.ListStore(str), assets) self.decorator.updateListCtrl( "threatPropertiesCtrl", ['Property', 'Value'], gtk.ListStore(str, str), objt.propertyList(environmentName, dupProperty, overridingEnvironment)) self.window.resize(350, 350)
def __init__(self, objt, rating, environmentName, builder): self.builder = builder self.window = self.builder.get_object("RiskNodeDialog") self.decorator = NDImplementationDecorator(builder) self.decorator.updateTextCtrl("riskNameCtrl", objt.name()) self.decorator.updateTextCtrl("riskThreatCtrl", objt.threat()) self.detailsDict = {} self.decorator.updateTextCtrl("riskVulnerabilityCtrl", objt.vulnerability()) self.decorator.updateTextCtrl("riskRatingCtrl", rating) b = Borg() proxy = b.dbProxy riskDetails = [] riskScores = proxy.riskScore(objt.threat(), objt.vulnerability(), environmentName, objt.name()) for idx, riskScore in enumerate(riskScores): riskDetails.append([riskScore[0], riskScore[1]]) self.detailsDict[riskScore[0]] = riskScore[2] self.decorator.updateListCtrl("riskScoreCtrl", ['Response', 'Score'], gtk.ListStore(str, str), riskDetails) self.defaultSize = self.window.get_size() detailsCtrlWindow = self.builder.get_object("riskDetailsCtrl") detailsCtrlWindow.hide()
def __init__(self, objt, environmentName, dupProperty, overridingEnvironment, builder): self.window = builder.get_object("MisuseCaseNodeDialog") self.decorator = NDImplementationDecorator(builder) self.decorator.updateTextCtrl("misuseCaseNameCtrl", objt.name()) b = Borg() proxy = b.dbProxy environmentId = proxy.getDimensionId(environmentName, 'environment') threatName, vulName = proxy.riskComponents(objt.risk()) threatId = proxy.getDimensionId(threatName, 'threat') vulId = proxy.getDimensionId(vulName, 'vulnerability') self.decorator.updateTextCtrl("misuseCaseThreatCtrl", threatName) self.decorator.updateTextCtrl( "misuseCaseLikelihoodCtrl", proxy.threatLikelihood(threatId, environmentId)) self.decorator.updateTextCtrl("misuseCaseVulnerabilityCtrl", vulName) self.decorator.updateTextCtrl( "misuseCaseSeverityCtrl", proxy.vulnerabilitySeverity(vulId, environmentId)) self.decorator.updateTextCtrl( "misuseCaseRiskRatingCtrl", proxy.riskRating(threatName, vulName, environmentName)) attackers = proxy.threatAttackers(threatId, environmentId) attackerSet = set(attackers) attackers = [] for attacker in attackerSet: attackers.append([attacker]) self.decorator.updateListCtrl("misuseCaseAttackersCtrl", ['Attacker'], gtk.ListStore(str), attackers) threatenedAssets = proxy.threatenedAssets(threatId, environmentId) vulnerableAssets = proxy.vulnerableAssets(vulId, environmentId) assetSet = set(threatenedAssets + vulnerableAssets) assets = [] for asset in assetSet: assets.append([asset]) self.decorator.updateListCtrl("misuseCaseAssetsCtrl", ['Asset'], gtk.ListStore(str), assets) self.decorator.updateMLTextCtrl( "misuseCaseNarrativeCtrl", objt.narrative(environmentName, dupProperty)) objectiveText = 'Exploit vulnerabilities in ' for idx, vulAsset in enumerate(vulnerableAssets): objectiveText += vulAsset if (idx != (len(vulnerableAssets) - 1)): objectiveText += ',' objectiveText += ' to threaten ' for idx, thrAsset in enumerate(threatenedAssets): objectiveText += thrAsset if (idx != (len(threatenedAssets) - 1)): objectiveText += ',' objectiveText += '.' self.decorator.updateTextCtrl("misuseCaseObjectiveCtrl", objectiveText) self.window.resize(350, 100)
def __init__(self, objt, environmentName, builder, goalIndicator, gName, reqIndicator=False): self.window = builder.get_object("GoalRefinementNodeDialog") b = Borg() self.dbProxy = b.dbProxy self.theEnvironmentName = environmentName self.decorator = NDImplementationDecorator(builder) self.reqIndicator = reqIndicator refTypes = ['and', 'or'] goals = self.dbProxy.environmentGoals(self.theEnvironmentName) if (self.reqIndicator == True): refTypes = ['and'] goals = self.dbProxy.getDimensionNames('requirement') self.decorator.updateComboCtrl("goalRefNameCtrl", goals, '') self.decorator.updateComboCtrl("goalRefinementCtrl", refTypes, '') self.decorator.updateButtonLabel("goalRefinementOkButton", "Create") self.window.resize(350, 200) self.goalIndicator = goalIndicator self.inputGoalName = gName
def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder): self.window = builder.get_object("UseCaseNodeDialog") self.decorator = NDImplementationDecorator(builder) self.theSteps = objt.steps(environmentName) ucName = objt.name() self.decorator.updateTextCtrl("usecaseNameCtrl",ucName) self.decorator.updateMLTextCtrl("usecaseDescriptionCtrl",objt.description()) actors = [] for actor in objt.actors(): actors.append([actor]) self.decorator.updateListCtrl("usecaseActorsCtrl",['Actor'],gtk.ListStore(str),actors) self.decorator.updateMLTextCtrl("usecasePreconditionsCtrl",objt.preconditions(environmentName)) steps = [] for s in self.theSteps: steps.append([s]) self.decorator.updateListCtrl("usecaseStepsCtrl",['Step'],gtk.ListStore(str),steps) stepExceptions = (self.theSteps[0]).exceptions() excs = [] for e in stepExceptions: excs.append([e]) self.decorator.updateListCtrl("usecaseExceptionCtrl",['Exception'],gtk.ListStore(str),excs) self.decorator.updateMLTextCtrl("usecasePostconditionsCtrl",objt.postconditions(environmentName)) self.window.resize(350,300)
def __init__(self, objt, environmentName, dupProperty, overridingEnvironment, builder): self.window = builder.get_object("PersonaNodeDialog") self.decorator = NDImplementationDecorator(builder) self.decorator.updateTextCtrl("personaNameCtrl", objt.name()) self.decorator.updateMLTextCtrl("personaActivitiesCtrl", objt.activities()) self.decorator.updateMLTextCtrl("personaAttitudesCtrl", objt.attitudes()) self.decorator.updateMLTextCtrl("personaAptitudesCtrl", objt.aptitudes()) self.decorator.updateMLTextCtrl("personaMotivationsCtrl", objt.motivations()) self.decorator.updateMLTextCtrl("personaSkillsCtrl", objt.skills()) self.decorator.updateImageCtrl("personaImageCtrl", objt.image()) self.decorator.updateTextCtrl( "personaDirectCtrl", objt.directFlag(environmentName, dupProperty)) roles = [] for role in objt.roles(environmentName, dupProperty): roles.append([role]) self.decorator.updateListCtrl("personaRolesCtrl", ['Role'], gtk.ListStore(str), roles) self.decorator.updateMLTextCtrl( "personaNarrativeCtrl", objt.narrative(environmentName, dupProperty)) self.window.resize(400, 400)
def __init__(self, objt, builder): self.window = builder.get_object("ComponentNodeDialog") self.decorator = NDImplementationDecorator(builder) componentName = objt.name() self.decorator.updateTextCtrl("componentNameCtrl", componentName) self.decorator.updateMLTextCtrl("componentDescriptionCtrl", objt.description()) cifs = [] for cif in objt.interfaces(): cifs.append([cif[0], cif[1]]) self.decorator.updateListCtrl("componentInterfacesCtrl", ['Name', 'Type'], gtk.ListStore(str, str), cifs) cStructure = [] for csRow in objt.structure(): cStructure.append([ csRow[0], csRow[1], csRow[2], csRow[3], csRow[4], csRow[5], csRow[6], csRow[7], csRow[8], csRow[9] ]) self.decorator.updateListCtrl( "componentStructureCtrl", [ 'Head Asset', 'Type', 'Nav', 'Nry', 'Role', 'Tail Role', 'Tail Nry', 'Tail Nav', 'Tail Type', 'Tail Asset' ], gtk.ListStore(str, str, str, str, str, str, str, str, str, str), cStructure) reqs = [] for req in objt.requirements(): reqs.append([req]) self.decorator.updateListCtrl("componentRequirementsCtrl", ['Name'], gtk.ListStore(str), reqs) self.window.resize(350, 300)
def __init__(self, refName, docName, docExc, builder): self.window = builder.get_object("DocumentReferenceNodeDialog") self.decorator = NDImplementationDecorator(builder) self.decorator.updateTextCtrl("documentReferenceNameCtrl", refName) self.decorator.updateTextCtrl("documentReferenceDocumentCtrl", docName) self.decorator.updateMLTextCtrl("documentReferenceExcerptCtrl", docExc) self.window.resize(350, 200)
def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder): self.window = builder.get_object("AcceptNodeDialog") self.decorator = NDImplementationDecorator(builder) self.decorator.updateTextCtrl("acceptNameCtrl",objt.name()) self.decorator.updateTextCtrl("acceptRiskCtrl",objt.risk()) self.decorator.updateTextCtrl("acceptCostCtrl",objt.cost(environmentName,dupProperty,overridingEnvironment)) self.decorator.updateMLTextCtrl("acceptRationaleCtrl",objt.description(environmentName,dupProperty,overridingEnvironment)) self.window.resize(300,300)
def __init__(self, refName, dimName, objtName, refDesc, builder): self.window = builder.get_object("ConceptReferenceNodeDialog") self.decorator = NDImplementationDecorator(builder) self.decorator.updateTextCtrl("conceptReferenceNameCtrl", refName) self.decorator.updateTextCtrl("conceptReferenceTypeCtrl", dimName) self.decorator.updateTextCtrl("conceptReferenceArtifactCtrl", objtName) self.decorator.updateMLTextCtrl("conceptReferenceDescriptionCtrl", refDesc) self.window.resize(350, 200)
def __init__(self, objt, environmentName, dupProperty, overridingEnvironment, builder): self.window = builder.get_object("DomainPropertyNodeDialog") self.decorator = NDImplementationDecorator(builder) self.decorator.updateTextCtrl("domainPropertyNameCtrl", objt.name()) self.decorator.updateTextCtrl("domainPropertyTypeCtrl", objt.type()) self.decorator.updateMLTextCtrl("domainPropertyDescriptionCtrl", objt.description()) self.window.resize(200, 200)
def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder): self.window = builder.get_object("VulnerabilityNodeDialog") self.decorator = NDImplementationDecorator(builder) self.decorator.updateTextCtrl("vulnerabilityNameCtrl",objt.name()) self.decorator.updateTextCtrl("vulnerabilityTypeCtrl",objt.type()) self.decorator.updateTextCtrl("vulnerabilitySeverityCtrl",objt.severity(environmentName,dupProperty,overridingEnvironment)) self.decorator.updateMLTextCtrl("vulnerabilityDescriptionCtrl",objt.description()) assets = [] for asset in objt.assets(environmentName,dupProperty): assets.append([asset]) self.decorator.updateListCtrl("vulnerabilityAssetsCtrl",['Asset'],gtk.ListStore(str),assets) self.window.resize(300,325)
def __init__(self, objt, environmentName, builder, goalName, isGoal=True): self.window = builder.get_object("AssignResponsibilityNodeDialog") b = Borg() self.isGoalIndicator = isGoal self.dbProxy = b.dbProxy self.theEnvironmentName = environmentName self.theGoalName = goalName self.decorator = NDImplementationDecorator(builder) self.theObjtId = objt.id() roles = self.dbProxy.getDimensionNames('role') self.decorator.updateComboCtrl("roleRespNameCtrl", roles, '') self.window.resize(350, 200)
def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder): self.window = builder.get_object("TransferNodeDialog") self.decorator = NDImplementationDecorator(builder) self.decorator.updateTextCtrl("transferNameCtrl",objt.name()) self.decorator.updateTextCtrl("transferRiskCtrl",objt.risk()) roles = [] roleList = objt.roles(environmentName,dupProperty,overridingEnvironment) for role in roleList: roles.append([role[0],role[1]]) self.decorator.updateListCtrl("transferRolesCtrl",['Role','Cost'],gtk.ListStore(str,str),roles) self.decorator.updateMLTextCtrl("transferDescriptionCtrl",objt.description(environmentName,dupProperty,overridingEnvironment)) self.window.resize(300,300)
def __init__(self, objt, environmentName, dupProperty, overridingEnvironment, builder): self.window = builder.get_object("AssetNodeDialog") self.decorator = NDImplementationDecorator(builder) self.decorator.updateTextCtrl("assetNameCtrl", objt.name()) self.decorator.updateMLTextCtrl("assetDescriptionCtrl", objt.description()) self.decorator.updateMLTextCtrl("assetSignificanceCtrl", objt.significance()) self.decorator.updateListCtrl( "assetPropertiesCtrl", ['Property', 'Value'], gtk.ListStore(str, str), objt.propertyList(environmentName, dupProperty, overridingEnvironment)) self.window.resize(350, 350)
def __init__(self, objt, environmentName, dupProperty, overridingEnvironment, builder): self.window = builder.get_object("LinkAndNodeDialog") self.decorator = NDImplementationDecorator(builder) self.decorator.updateTextCtrl("goalNameCtrl", objt.name()) self.decorator.updateMLTextCtrl( "goalDefinitionCtrl", objt.definition(environmentName, dupProperty)) self.decorator.updateTextCtrl( "goalCategoryCtrl", objt.category(environmentName, dupProperty)) self.decorator.updateTextCtrl( "goalPriorityCtrl", objt.priority(environmentName, dupProperty)) self.decorator.updateMLTextCtrl( "goalFitCriterionCtrl", objt.fitCriterion(environmentName, dupProperty)) self.decorator.updateMLTextCtrl( "goalIssueCtrl", objt.issue(environmentName, dupProperty)) self.window.resize(350, 600)
def __init__(self, objt, environmentName, builder): self.window = builder.get_object("NewRequirementNodeDialog") b = Borg() self.dbProxy = b.dbProxy self.theGoalName = objt.name() self.theEnvironmentName = environmentName self.theGoalAssociation = None self.decorator = NDImplementationDecorator(builder) reqTypes = self.dbProxy.getDimensionNames('requirement_type') priorityTypes = ['1', '2', '3'] reqAssets = self.dbProxy.environmentAssets(self.theEnvironmentName) self.goalAssociations = [] self.subGoalAssociations = [] self.decorator.updateComboCtrl("newRequirementTypeCtrl", reqTypes, '') self.decorator.updateComboCtrl("requirementAssetCtrl", reqAssets, '') self.decorator.updateComboCtrl("newRequirementPriorityCtrl", priorityTypes, '') self.window.resize(350, 600)
def __init__(self, objt, environmentName, dupProperty, overridingEnvironment, builder): self.window = builder.get_object("TaskNodeDialog") self.decorator = NDImplementationDecorator(builder) taskName = objt.name() self.decorator.updateTextCtrl("taskNameCtrl", taskName) self.decorator.updateTextCtrl("taskObjectiveCtrl", objt.objective()) self.decorator.updateMLTextCtrl( "taskDependenciesCtrl", objt.dependencies(environmentName, dupProperty)) personas = [] for persona in objt.personas(environmentName, dupProperty, overridingEnvironment): personas.append( [persona[0], persona[1], persona[2], persona[3], persona[4]]) self.decorator.updateListCtrl( "taskPersonasCtrl", ['Persona', 'Duration', 'Frequency', 'Demands', 'Goal conflict'], gtk.ListStore(str, str, str, str, str), personas) assets = [] for asset in objt.assets(environmentName, dupProperty): assets.append([asset]) self.decorator.updateListCtrl("taskAssetsCtrl", ['Asset'], gtk.ListStore(str), assets) b = Borg() proxy = b.dbProxy self.decorator.updateTextCtrl( "taskUsabilityCtrl", str(proxy.taskUsabilityScore(taskName, environmentName))) taskId = proxy.getDimensionId(taskName, 'task') environmentId = proxy.getDimensionId(environmentName, 'environment') self.decorator.updateTextCtrl( "taskTaskLoadCtrl", str(proxy.taskLoad(taskId, environmentId))) self.decorator.updateTextCtrl( "taskCountermeasureLoadCtrl", str(proxy.countermeasureLoad(taskId, environmentId))) self.decorator.updateMLTextCtrl( "taskNarrativeCtrl", objt.narrative(environmentName, dupProperty)) self.window.resize(350, 300)
def __init__(self, objt, environmentName, dupProperty, overridingEnvironment, builder): self.window = builder.get_object("RoleNodeDialog") self.decorator = NDImplementationDecorator(builder) self.decorator.updateTextCtrl("roleNameCtrl", objt.name()) self.decorator.updateMLTextCtrl("roleDescriptionCtrl", objt.description()) responseCosts = [] for responseCost in objt.responses(environmentName, dupProperty, overridingEnvironment): responseCosts.append([responseCost[0], responseCost[1]]) self.decorator.updateListCtrl("roleResponseCtrl", ['Response', 'Cost'], gtk.ListStore(str, str), responseCosts) cms = [] for cm in objt.countermeasures(environmentName, dupProperty, overridingEnvironment): cms.append([cm[0]]) self.decorator.updateListCtrl("roleCountermeasureCtrl", ['Countermeasure'], gtk.ListStore(str), cms) self.window.resize(350, 200)
def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder): self.window = builder.get_object("MitigateNodeDialog") self.decorator = NDImplementationDecorator(builder) self.decorator.updateTextCtrl("mitigateNameCtrl",objt.name()) self.decorator.updateTextCtrl("mitigateRiskCtrl",objt.risk()) mitType = objt.type(environmentName,dupProperty,overridingEnvironment) self.decorator.updateTextCtrl("mitigateTypeCtrl",mitType) dpFrame = builder.get_object('mitigateDetectionPointFrame') dmFrame = builder.get_object('mitigateDetectionMechanismsFrame') if (mitType == 'Detect'): self.decorator.updateTextCtrl("mitigateDetectionPointCtrl",objt.detectionPoint(environmentName,dupProperty,overridingEnvironment)) dmFrame.hide() elif (mitType == 'React'): dms = [] for dm in objt.detectionMechanisms(environmentName,dupProperty,overridingEnvironment): dms.append([dm]) self.decorator.updateListCtrl("mitigateDetectionMechanismsCtrl",['Detection Mechanism'],gtk.ListStore(str),dms) dpFrame.hide() else: dpFrame.hide() dmFrame.hide() self.window.resize(300,300)