#Rationale Version 150.60 can_be_loaded_by 120.53 uses_features_from 120.53 #-- Start of Prelude -- Node = None Views = [] Loading = True ScratchpadTextSupported = CurrentFileFormat.IsLaterThan(130, 55) PictureSupported = CurrentFileFormat.IsLaterThan(140, 56) TagsSupported = CurrentFileFormat.IsLaterThan(140, 57) TypeSupported = CurrentFileFormat.IsLaterThan(140, 60) EditPromptSupported = CurrentFileFormat.IsLaterThan(140, 57) ShowOutlineSupported = CurrentFileFormat.IsLaterThan(140, 57) LockHeadingSupported = CurrentFileFormat.IsLaterThan(140, 58) OrientationSupported = CurrentFileFormat.IsLaterThan(140, 59) HideChildrenSupported = CurrentFileFormat.IsLaterThan(150, 60) MinimizeNodeSupported = CurrentFileFormat.IsLaterThan(150, 60) HyperlinkSupported = CurrentFileFormat.IsLaterThan(150, 60) if not CurrentFileFormat.IsLaterThan(130, 54): morphTarget = None def Create(type): global Node if morphTarget == None: Node = app.Create(type) else: Morph(morphTarget, type) Node = morphTarget return Node def CreateChild(parent, type): global Node Node = app.CreateChild(parent, type) return Node def CreateAnnotation(parent, type): global Node Node = app.CreateAnnotation(parent, type) return Node def SetText(text): app.SetText(Node, text) def SetTag(key, value): if TagsSupported: app.SetTag(Node, key, value) def SetCustomType(group, type): if TypeSupported: Node.CustomGroup = group Node.CustomType = type def SetEditPrompt(text): if EditPromptSupported: app.SetEditPrompt(Node, text) else: AddMissingFeature("helpful hint") def SetEvaluation(evaluation): app.SetEvaluation(Node, evaluation) def SetTint(tint): app.SetTint(Node, tint) def SetImageKey(key): if PictureSupported: app.SetImageKey(Node, key) else: AddMissingFeature("picture") def SetHyperlink(link, description, openExternally): if HyperlinkSupported: app.SetHyperlink(Node, link, description, openExternally) else: AddMissingFeature("Hyperlink") def MarkAsPureImage(): if PictureSupported and morphTarget == None: Node.IsPureImage = True def RegisterImage(name, image): if PictureSupported: app.RegisterImage(name, image) def StringToImage(guid, imageAsString): return app.StringToImage(guid, imageAsString) def Morph(node, flavor): global Node app.Morph(node, flavor) Node = node def GetFernViews(): global Views global View global Loading Views = [v for v in app.Views if v.TypeName == "FernView"] Loading = len(Views) == 0 if Loading: View = app.Gui.CreateView("FernView") Views = [ View ] else: View = app.CurrentView def SetLocation(node, x, y): for v in Views: v.SetLocation(node, x, y) def SetOffset(offsetFrom, node, x, y): if Loading: View.SetOffset(offsetFrom, node, x, y) else: for v in Views: v.SetOffset(offsetFrom, node, x, y) def SetSize(node, width, height): if Loading: View.SetSize(node, width, height) else: for v in Views: v.SetSize(node, width, height) def ShowPrintPagePreview(show): if Loading: View.ShowPrintPagePreview(show, False) def SetBackgroundImage(image): if Loading: View.SetBackgroundImage(image, False) def SetOpacity(opacity): if Loading: View.SetOpacity(opacity) def SetSelection(node): View.SetSelection(node) def SetScratchpadText(text): if ScratchpadTextSupported: app.Gui.SetScratchpadText(text) else: AddMissingFeature("saved scratchpad") def SetImageWidth(node, width): if PictureSupported: for v in Views: v.SetImageWidth(node, width) def SetShowOutline(node, show): if ShowOutlineSupported: for v in Views: v.SetShowOutline(node, show) def SetLockHeading(node, lockHeading): if LockHeadingSupported: for v in Views: v.SetLockHeading(node, lockHeading) def SetOrientation(node, orientation): if OrientationSupported: for v in Views: v.SetOrientation(node, orientation) else: AddMissingFeature("Sideways layout*") def HideChildren(node): if HideChildrenSupported: for v in Views: v.HideChildren(node) else: AddMissingFeature("Hidden children") def Minimize(node): if MinimizeNodeSupported: for v in Views: v.Minimize(node) else: AddMissingFeature("Minimized node") missing = {} def AddMissingFeature(feature): if feature not in missing: i = 1 else: i = missing[feature] + 1 missing[feature] = i def MissingFeaturesList(): list = '' for k in missing.keys(): n = missing[k] list = list + ' ' + str(n) + ' ' + k if n != 1: list = list + 's' list = list + CR() return list def GenerateMissingFeaturesReport(): if len(missing) > 0: Create("Note") SetSize(Node, 350, 100) SetText( MissingFeaturesHeader() + CR() \ + MissingFeaturesList() + CR() \ + MissingFeaturesFooter()) def MissingFeaturesHeader(): return '*' + 'Warning: This file was created with a more recent version of Rationale' + '*' + CR() \ + 'Unable to load:' def MissingFeaturesFooter(): return 'You can upgrade to the latest version of Rationale at www.austhink.com' def CR(): return '\r\n' #-- End of Prelude -- map0_0 = Create("Claim") SetText("PREV\n\nThe plant Greenus electricus (GE) has a nervous system") map0_1 = CreateChild(map0_0, "Reason") SetText("PREV\n\nThe plant Greenus electricus (GE) exhibits rapid behavioural responses best explained by the presence of a nervous system") map0_2 = CreateChild(map0_1, "Reason") SetText("PREV\n\nIn experimental conditions, changes in moisture levels around the root of GE result in responses (stomatal closure) at the leaf (1 metre distance away) after 1 sec.\n\nVoltij, B and Ampraj AL (1987). Does the plant Greenus electricus have a nervous system? J. Plant Elec. Physiol. 123: 82-97.") map0_3 = CreateChild(map0_0, "Reason") SetText("CURR AND PREV\n\nThe plant Greenus electricus (GE) has structures (phloem sieve tubes) which have structural and electrophysiological similarities to neurons") map0_4 = CreateChild(map0_3, "Reason") SetText("PREV\n\nPhloem sieve tubes of all plants are distributed throughout the plant as a network of interconnecting tubes.\n\nZimmermann, MH (1960) Transport in the Phloem. Ann.l Rev. Plant Physiol., 11: 167-190.") map0_5 = CreateChild(map0_3, "Reason") SetText("PREV\n\nPhloem sieve tubes of all plants are like axons because they are live, membrane bound cells.\n\nZimmermann, MH (1960) Transport in the Phloem. Ann.l Rev. Plant Physiol., 11: 167-190.") map0_6 = CreateChild(map0_3, "Objection") SetText("CURR\n\nNo phloem sieve tubes in GE had the myelin sheaths typical of long axons") map0_7 = CreateChild(map0_3, "Reason") SetText("CURR\n\nPhloem sieve tubes isolated from GE can conduct electrical signals along their length in similar fashion to neurons") map0_8 = CreateChild(map0_7, "Objection") SetText("CURR\n\nThe maximum speed of conduction was (0.1 m/s) is much slower than in neurons") map0_9 = CreateChild(map0_8, "Objection") SetText("This \"maximum speed\" has been measured in vitro, not in vivo") map0_10 = CreateChild(map0_9, "Reason") SetText("In vivo conduction speeds are likely to be higher") map0_11 = CreateChild(map0_3, "Reason") SetText("CURR\n\nPhloem sieve tubes of GE have an electrical potential difference across their plasma membrane of similar magnitude to that seen in neurons") GetFernViews() SetLocation(map0_0, -488, 742) SetSize(map0_0, 155, 90) SetSize(map0_1, 180, 182) SetSize(map0_2, 209, 182) SetSize(map0_3, 156, 200) SetSize(map0_4, 196, 62) SetSize(map0_5, 177, 62) SetSize(map0_6, 156, 145) SetSize(map0_7, 150, 145) SetSize(map0_8, 129, 127) SetSize(map0_9, 138, 62) SetSize(map0_10, 147, 62) SetSize(map0_11, 154, 219) SetSelection(map0_0) ShowPrintPagePreview(False) GenerateMissingFeaturesReport()